问题标签 [thrust]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
479 浏览

visual-studio-2010 - 无法在 Visual Studio 中调试 Thrust CUDA

我已经在 VS10 中编译了一个简单的 CUDA 项目(并且它可以工作),但奇怪的是我无法设置断点或跳过代码的某些部分,即那些涉及 Thrust 调用的部分,甚至不是主机端推力。通过 nvcc 并指定调试键:-D_NEXUS_DEBUG -g 和 -G0,有问题的部分对 F10 和断点不可见。

例如,在下面的函数中,步骤调试仅在星号(简单)行上跳转:

}

我可以进入 Disassembly 窗口,然后返回 Source 并且 Thrust 源被拾取。但是有些东西明显坏了。

问题2:为什么在构建日志下面的所有警告都打印了两次?

0 投票
1 回答
1669 浏览

visual-studio-2010 - 将数据从设备复制到主机不起作用

我在 Windows 7 x64 上使用 vs2010,在我的大学项目中使用 CUDA 工具包 v4.0。我想实现一个简单的 gpu-vs-cpu 测试,大部分都完成了,但是我的 cuda 测试都没有返回任何结果。我用调试器检查了内存,设备内存包含了我需要的一切,只有内存复制失败。

注意代码行“h_c=d_c;”。在推力上,这应该将数据从 d_c(设备向量)复制到 h_c(主机向量)。此行不会失败,但也不会正确执行。h_c 一直保持为 0。

我尝试了其他几种方法,例如

或者

甚至

没有任何效果。我在这里迷路了。

有人有类似的吗?所有帮助表示赞赏。

0 投票
3 回答
25207 浏览

c++ - 从推力::设备向量到原始指针并返回?

我了解如何从向量转到原始指针,但我跳过了如何倒退的节拍。

有人可以解释/指出一个例子吗?

0 投票
2 回答
9832 浏览

cuda - 使用 CUDA Thrust 查找最大元素值及其位置

如何不仅获取值,还获取最大(最小)元素(res.valres.pos)的位置?

0 投票
2 回答
507 浏览

c - 如何以有效的方式并行化这个三重循环?

我正在尝试并行化一个函数,该函数将三个数组(x、y 和 prb)和一个标量作为输入,并输出三个数组(P1、Pt1 和 Px)。

原始 c 代码在这里(异常值和 E 无关紧要):

这是我并行化它的尝试:

然而,令我恐惧的是,它的运行速度比原始版本慢得多。如何让它运行得更快?请彻底解释一下,因为我对 CUDA 和并行编程非常陌生,并且没有算法经验。

请注意,c 版本具有列优先排序,而 CUDA 版本具有行优先排序。我做了几次测试以确保结果是正确的。它非常慢并且占用大量内存。

任何帮助是极大的赞赏!

编辑:更多信息:N 和 M 大约为几千(例如,300-3000),而 D 始终为 3。CUDA 版本期望数组是设备内存,但以 h_ 为前缀的变量除外。

0 投票
1 回答
795 浏览

cuda - 推力设备迭代器不起作用

我不知道为什么下面的代码没有输出 1,2 而是一些随机数

此外,如何使用 begin 和 end1 来遍历结果数组中的所有值

0 投票
1 回答
1246 浏览

c++ - 实现推力二元谓词

我正在尝试将 min_element 用于结构数组,但我根本无法为该操作定义二进制函数。

我想隐式定义该结构,没有 , 但是

没事吧?我几乎尝试了所有方法,但似乎没有任何效果。

相反,我遇到了奇怪的错误,我没有正确实施它,并且其中一种类型存在重载问题,我不知道究竟是哪一种。

谢谢你的帮助。

MIN_ELEMENT我只需要一个带有二进制谓词接受的工作函数的示例。

再次感谢!

0 投票
1 回答
223 浏览

cuda - cuda +推力项目可以拆分为1个以上的文件吗

我正在构建和项目,它同时使用 Thrust(cuda api)和 openMP 技术。我的程序的主要目的是提供一个接口来计算某些东西,同时说。为了做到这一点,我决定使用 STRATEGY 设计模式,这基本上意味着我们需要定义一个带有虚函数的基类,然后其他类从该基类派生并实现所需的功能。

我的问题从这里开始: 1。我的项目可以有超过 1 个 .CU 文件吗?2. CU 文件可以有分类吗?

3. 这个继续 2.,我认为 DEVICE 内核不能在类中声明,必须这样做:

这是正确的方法吗?4.最后一个问题是,我们使用THRUST,我也必须使用CU文件吗?

谢谢,伊格尔

0 投票
1 回答
1694 浏览

cuda - 在推力矢量类型上创建常规 CUDA 内核

我有一个简单的问题,例如,如果我想使用我在推力矢量上编写的 cuda 内核,我必须将我的 device_vector 转换为常规指针类型吗?还是有其他方法?

哦,另一件事,关于 device_vector 构造,如果我在 GPU 上分配了一个指针,是否有一个快速的 device_vector 接受该指针,或者我应该先将所有内容传输到 CPU,然后才用适当的参数声明我的 device_vector (CPU 分配的变量) ?

谢谢,伊格尔!

0 投票
2 回答
654 浏览

c++ - 是否存在一些推力::device_vector 等效库,可在 CUDA 内核中使用?

Thrust::device_vector 的自动内存管理非常有用,唯一的缺点是不能在内核代码中使用它。

我在 Internet 上查看过,刚刚找到了处理来自主机代码的设备内存的向量库,例如推力。是否存在任何用于内核的向量库?如果没有,拥有这样的图书馆是不是一个坏主意?