问题标签 [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.
visual-studio-2010 - 无法在 Visual Studio 中调试 Thrust CUDA
我已经在 VS10 中编译了一个简单的 CUDA 项目(并且它可以工作),但奇怪的是我无法设置断点或跳过代码的某些部分,即那些涉及 Thrust 调用的部分,甚至不是主机端推力。通过 nvcc 并指定调试键:-D_NEXUS_DEBUG -g 和 -G0,有问题的部分对 F10 和断点不可见。
例如,在下面的函数中,步骤调试仅在星号(简单)行上跳转:
}
我可以进入 Disassembly 窗口,然后返回 Source 并且 Thrust 源被拾取。但是有些东西明显坏了。
问题2:为什么在构建日志下面的所有警告都打印了两次?
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。
我尝试了其他几种方法,例如
或者
甚至
没有任何效果。我在这里迷路了。
有人有类似的吗?所有帮助表示赞赏。
c++ - 从推力::设备向量到原始指针并返回?
我了解如何从向量转到原始指针,但我跳过了如何倒退的节拍。
有人可以解释/指出一个例子吗?
cuda - 使用 CUDA Thrust 查找最大元素值及其位置
如何不仅获取值,还获取最大(最小)元素(res.val
和res.pos
)的位置?
c - 如何以有效的方式并行化这个三重循环?
我正在尝试并行化一个函数,该函数将三个数组(x、y 和 prb)和一个标量作为输入,并输出三个数组(P1、Pt1 和 Px)。
原始 c 代码在这里(异常值和 E 无关紧要):
这是我并行化它的尝试:
然而,令我恐惧的是,它的运行速度比原始版本慢得多。如何让它运行得更快?请彻底解释一下,因为我对 CUDA 和并行编程非常陌生,并且没有算法经验。
请注意,c 版本具有列优先排序,而 CUDA 版本具有行优先排序。我做了几次测试以确保结果是正确的。它非常慢并且占用大量内存。
任何帮助是极大的赞赏!
编辑:更多信息:N 和 M 大约为几千(例如,300-3000),而 D 始终为 3。CUDA 版本期望数组是设备内存,但以 h_ 为前缀的变量除外。
cuda - 推力设备迭代器不起作用
我不知道为什么下面的代码没有输出 1,2 而是一些随机数
此外,如何使用 begin 和 end1 来遍历结果数组中的所有值
c++ - 实现推力二元谓词
我正在尝试将 min_element 用于结构数组,但我根本无法为该操作定义二进制函数。
我想隐式定义该结构,没有 , 但是
没事吧?我几乎尝试了所有方法,但似乎没有任何效果。
相反,我遇到了奇怪的错误,我没有正确实施它,并且其中一种类型存在重载问题,我不知道究竟是哪一种。
谢谢你的帮助。
MIN_ELEMENT
我只需要一个带有二进制谓词接受的工作函数的示例。
再次感谢!
cuda - cuda +推力项目可以拆分为1个以上的文件吗
我正在构建和项目,它同时使用 Thrust(cuda api)和 openMP 技术。我的程序的主要目的是提供一个接口来计算某些东西,同时说。为了做到这一点,我决定使用 STRATEGY 设计模式,这基本上意味着我们需要定义一个带有虚函数的基类,然后其他类从该基类派生并实现所需的功能。
我的问题从这里开始: 1。我的项目可以有超过 1 个 .CU 文件吗?2. CU 文件可以有分类吗?
3. 这个继续 2.,我认为 DEVICE 内核不能在类中声明,必须这样做:
这是正确的方法吗?4.最后一个问题是,我们使用THRUST,我也必须使用CU文件吗?
谢谢,伊格尔
cuda - 在推力矢量类型上创建常规 CUDA 内核
我有一个简单的问题,例如,如果我想使用我在推力矢量上编写的 cuda 内核,我必须将我的 device_vector 转换为常规指针类型吗?还是有其他方法?
哦,另一件事,关于 device_vector 构造,如果我在 GPU 上分配了一个指针,是否有一个快速的 device_vector 接受该指针,或者我应该先将所有内容传输到 CPU,然后才用适当的参数声明我的 device_vector (CPU 分配的变量) ?
谢谢,伊格尔!
c++ - 是否存在一些推力::device_vector 等效库,可在 CUDA 内核中使用?
Thrust::device_vector 的自动内存管理非常有用,唯一的缺点是不能在内核代码中使用它。
我在 Internet 上查看过,刚刚找到了处理来自主机代码的设备内存的向量库,例如推力。是否存在任何用于内核的向量库?如果没有,拥有这样的图书馆是不是一个坏主意?