8得票1回答
CUDA:如何直接在GPU上使用thrust :: sort_by_key?

Thrust库可以用于对数据进行排序。调用可能看起来像这样(有键值和值向量): Thrust库可以用于对数据进行排序。调用可能看起来像这样(有键值和值向量): thrust::sort_by_key(d_keys.begin(), d_keys.end(), d_values.begin()...

8得票1回答
CUDA Thrust与原始内核相比如何?

我对GPU编程还不熟悉,不确定如何编写最有效的代码。使用Thrust和编写自定义内核并自己管理内存有什么优缺点? 如果需要详细说明我的目标是什么:我有一个大矩阵,在每个值上需要执行几个向量操作。我知道这个任务需要动态并行性,并且目前有一个自定义内核来遍历矩阵并调用其他内核。我正在考虑是否应该...

7得票1回答
STL推进多向量变换?

我想知道是否有更高效的方法来写 a = a + b + c? thrust::transform(b.begin(), b.end(), c.begin(), b.begin(), thrust::plus<int>()); thrust::transform(a.begin...

7得票3回答
在CUDA中通过关键字对3个数组进行排序(可能使用Thrust)

我有3个相同大小的数组(超过300,000个元素)。一个是浮点数数组,另外两个是索引数组,每个数字对应2个ID。 这3个数组都已经在GPU全局内存中了。我想按照ID的顺序对所有数字进行排序。是否可以使用Thrust库完成这个任务?有比Thrust库更好的方法吗? 当然,我不希望将它们多次复...

7得票2回答
高效地对给定由元素、子列表的偏移量和长度构成的数组进行部分约简

我的应用需要处理一堆对象(比如说 int),这些对象会被逐步分割并排序到更小的桶中。为了达成这个目的,我把元素存储在一个单一连续的数组中。 arr = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14...} 桶(子列表)的信息是通过相应桶中第一个元素的偏移量和子列...

7得票2回答
OpenCV GPU库在矩阵操作方面表现如何?

我正在使用OpenCV进行计算机视觉应用程序开发。我想在GPU上加速一些矩阵运算(矩阵相当大),如果可能的话,希望避免直接使用CUDA C编码。OpenCV 2.4.1具有许多GPU加速函数。根据您的经验,它们的性能如何?我最好使用另一个库(例如Thrust)吗? 编辑 示例应用程序:在GP...

7得票2回答
在线程中使用thrust::sort。

我想知道是否可以在一个线程中使用thrust::sort()。 __global__ void mykernel(float* array, int arrayLength) { int threadID = blockIdx.x * blockDim.x + threadIdx.x...

7得票2回答
使用带有步长的Thrust计数迭代器

我正在寻找一种使用 thrust::counting_iterator 函数并以此来并行化下方 for 循环的方法: for (int stride = 0 ; stride < N * M ; stride+=M) // N iterations { // Body of t...

7得票2回答
让CUDA Thrust使用您选择的CUDA流

在CUDA Thrust的代码中查看内核启动时,似乎它们总是使用默认流。我能否让Thrust使用我选择的流?我是否在API中遗漏了什么?

7得票2回答
高性能的 CUDA 前缀和/扫描函数,寻找替代 thrust、cuDPP 库

我正在寻找CUDA项目中用于高性能多行扫描/多前缀和(一次内核执行中的多行数据)的函数。我已经尝试了Thrust库中的一个功能,但速度太慢了。而且,在使用nvcc的调试标志(-g -G)编译后,Thrust会崩溃。在失败了Thrust之后,我关注了cuDPP库,它曾是CUDA工具包的一部分。c...