cost 70 ms
我如何使用原始指针 thrust::sort() 或 thrust::sort_by_key()

[英]How do I thrust::sort() or thrust::sort_by_key() with raw pointers

我想使用带有 thrust::sort() 和 thrust::sort_by_key() 的原始设备指针对数组进行排序,因为它使用基数排序。 数据位于原始 uint64_t 设备指针中,我使用随机元素进行初始化以进行测试。 我查看了推力库,看到了一些简单地传入一个数组变量和数组变量加上大小的示例 ...

由推力变换组成的 for 循环的并行化

[英]Parallelization of a for loop consisting of Thrust Transforms

我已经实现了一个由多个 Thrust 转换组成的 for 循环。 我的目标是为i从 0 到N的每个值计算r[i] 。 简单来说, r是一个列向量,它的每一个元素都可以独立计算。 因此,我正在寻找一种并行化下面给出的 for 循环的方法:for(int i=0; i < N; i++) { ...

如何使用 thrust::remove_if 一起检查和删除块 2×i 和 2×i+1

[英]How to use thrust::remove_if to check and remove blocks 2×i and 2×i+1 together

我使用的是 Cuda C++,我有一个大数组Arr ,其中包含如下形式的 64 位无符号整数: Arr中的项目数是2n ,这是一个偶数。 现在,给定一个 boolean function f(int a, int b),我想知道我是否可以使用 thrust::remove_if 来检查 f(a1 ...

2022-12-08 15:35:40   1   26    cuda / thrust  
CUDA,如何找到使 function 最大的数组中的第一项

[英]CUDA, how to find the first item in an array that makes a function maximal

在Cuda C++中,我有一个很大的整数数组Arr和一个 function F: int -> int 。 我想在Arr中找到使F最大的某些项目的第一个索引。 我如何编写一个 kernel 始终保持最大值(在F中)与其他使用原子的东西进行比较以避免面临竞争条件问题? 顺便说一句,我想知道我是否 ...

2022-12-06 23:01:11   1   57    cuda / thrust  
使用推力处理 CUDA 类中的向量?

[英]Using thrust to handle vectors in CUDA classes?

我对推力在 c++ 类中的适用性有疑问。 我正在尝试实现一个 class object 接收 (x,y,z) 顶点坐标作为 ver1、ver2 和 ver3。 然后,分配给一个三角形并计算面积和法向量。 但是,我不太明白如何创建 class 的推力矢量。 这是我从文件中读取的顶点坐标,我想将它们发 ...

2022-10-23 12:47:13   1   109    cuda / thrust  
如何将两个迭代器相乘并将乘积返回到 thrust::reduce 算法?

[英]How to multiply two iterators and return the product to a thrust::reduce algorithm?

我有这个 reduce_by_key 工作正常,除了我想将 dv_Vals 与另一个包含 0 或 1 值的向量 (dv_Active) 相乘,以便生成的产品是一个新的迭代器,其值来自 dv_Vals 或 0。 我尝试重写 reduce_by_key(用 make_transform_iterato ...

2022-10-01 18:10:37   1   107    cuda / thrust  
推力::sort_by_key() 不适用于 zip_iterator 值

[英]thrust::sort_by_key() does not work for zip_iterator value

我正在尝试使用 sort_by_key() 对键值对进行排序,其中值是zip_iterator 。 但是使用这个,只有键被排序,而不是值。 这是我的示例代码#include <stdio.h> #include <thrust/iterator/zip_iterator.h> ...

2022-09-26 08:22:53   1   18    cuda / thrust  
如何在从较小向量派生的较大向量上使用推力::变换?

[英]How to use thrust::transform on larger Vector derived from smaller Vector?

输入和启动 arrays: 预期 output: 对于 dv_A{} 中的每个元素,在 dv_B{} 中有 (dv_A.size - 1) 个元素。 这是因为 dv_A 的每个元素都应该在 dv_B 中为每个其他dv_A 元素有一个子元素(即应该排除自身)。 因此,如果 dv_A 中有 4 个元素 ...

2022-09-25 09:03:10   2   46    cuda / thrust  
推力 device_vector resize 编译错误,不明白为什么需要.cu代码

[英]thrust device_vector resize compilation error, don't understand why it requires .cu code

假设我有一个 main.cpp 我得到上面的错误。 我明白这个错误想说什么,我应该使用 .cu 文件,使用 nvcc 编译器等......但是......为什么? 为什么调整大小需要kernel 调用。 没有理由推力矢量不能在这里使用驱动程序或运行时 api,那是什么? 不应该有与矢量的简单调整大小 ...

Cuda lambda vs 仿函数使用

[英]Cuda lambda vs functor usage

我在 CUDA 中有一个简单的 function 使用函子 然而,这个等价的例子会崩溃(很好地符合 --extended-lambda flat)。 是否有另一种标志或不同的方式来表达它以使其运行。 函子很好,但 lambda 看起来更整洁。 错误是 ...

如何防止thrust::copy_if非法memory访问

[英]How to prevent thrust::copy_if illegal memory access

在 CUDA C++ 代码中,我使用thrust::copy_if copy_if 将那些 integer 值从数组 x 复制到 y: 我将代码放在 try/catch 中,并定期更新数组 x,然后再次将非 -1 的数字推送到 y 的末尾,直到它访问数组外并返回 由于我不知道每次迭代中有多少值不是 ...

2022-08-07 21:32:22   1   44    cuda / thrust  
推力 cuda,使用 lambda 中的元组

[英]thrust cuda, using tuple in lambda

我的代码编译和链接很好,但结果是错误的。 我不明白为什么 lambda function 没有改变 tupla 值。 这里是样本。 高级感谢 ...

推力就地 copy_if 操作

[英]Thrust inplace copy_if operation

我想知道您是否可以将 copy_if 用作就地操作? IE void copy(thrust::device_vector<int> & input){ auto end = thrust::copy_if(input.begin(), input.end(), in ...

如何让推力::unique() 与推力::对的向量一起工作

[英]How to get thrust::unique() to work with a vector of thrust::pair

我正在尝试使用推力::unique() 制作推力::pair<int, int> 的唯一推力设备向量,但结果输出似乎没有按应有的方式排序。 这是有问题的代码: 输出看起来像: 等等,还有八百万个条目。 文档说数组的第一个 N = num_unique_elements 应该是所有 ...

2022-05-10 23:15:11   1   54    cuda / thrust  
阵列缩减推力很慢

[英]Thrust is very slow for array reduction

我正在尝试使用 thrust 将 1M 元素的数组减少为单个值。 我的代码如下: 问题是,仅thrust::reduce在我的 RTX 3070 笔记本电脑 GPU 上运行就需要大约 4 毫秒。这比我根据Mark Harris CUDA 参考中的 reduction#4 编写的代码慢得多,后者大约需 ...

在 CPU 和 GPU 中比较 memory 范围的规范方法是什么

[英]What is the canonical way to compare memory ranges in the CPU and in the GPU

我必须连续范围(指针 + 大小),一个在 GPU 中,一个在 CPU 中,我想比较它们是否相等。 比较这些范围是否相等的规范方法是什么? 提供非法的 memory 访问权限。 我也试过 ...

哪个更快? 原始指针与推力向量

[英]Which one is faster? raw pointers vs thrust vectors

我是Cuda的初学者,我只是想问一个简单的问题,我找不到任何明确的答案。 我知道我们可以使用原始指针在设备 memory 中定义我们的数组: 而且,我们还可以使用 Thrust 来定义一个向量并 push_back 我们的项目: 实际上,我需要大量的 memory(比如 500M int 变量)来并 ...


 
粤ICP备18138465号  © 2020-2023 STACKOOM.COM