问题标签 [cub]
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.
cuda - 如果我使用 31 个块,为什么这种 CUDA 缩减会失败?
以下 CUDA 代码采用标签列表 (0, 1, 2, 3, ...) 并找到这些标签的权重之和。
为了加速计算,我使用共享内存,以便每个线程都保持自己的运行总和。在计算结束时,我执行 CUB 块范围的缩减,然后对全局内存进行原子添加。
如果我使用少于 30 个块,CPU 和 GPU 会同意结果,但如果我使用更多,则不同意。为什么会这样,我该如何解决?
检查代码中的错误代码不会产生任何结果,并且 cuda-gdb 和 cuda-memcheck 不会显示任何未捕获的错误或内存问题。
我正在使用 NVCC v10.1.243 并在 Nvidia Quadro P2000 上运行。
MWE
python-3.x - 在 cupy 中启用 cub 的正确方法是什么?
我正在尝试找出启用cub
in的正确方法cupy
,但到目前为止还没有成功。我查看了文档,但找不到任何东西。目前我cub
这样启用:
在执行上述代码之前,cub
被禁用。我通过运行确认:
它返回一个空列表 ( []
)。运行第一个片段中的代码后,上述函数返回[1]
(无论这意味着什么)。此外,我可以注意到像cupy.nansum
.
正如您所看到的,这些函数cupy.set_routine_accelerators
和cupy.set_reduction_accelerators
属于私有 API ( cupy.core._accelerator
),这意味着我不应该调用它们。
cub
启用in的正确方法是cupy
什么?
我正在使用Python 3.7.6
和cupy 8.1.0
谢谢
cuda - 使用 2D 间距阵列减少 CUB 和
我正在尝试使用 CUB 和 float/double 类型的二维数组来执行减和。虽然它适用于某些行+列的组合,但对于相对较大的数组,我在上次传输期间遇到非法内存访问错误。一个最小的例子如下:
错误在“复制最终 ::”处引发。我对为什么某些行 x 列有效而其他行无效感到有些困惑。我确实注意到这是导致它的较大值,但无法理解。任何建议将不胜感激。
c++ - 用clang作为CUDA编译器编译CUB库
我clang++-12
在 CMake 中设置为 CUDA 编译器如下:
我尝试用它编译一个大型代码库,但基本上它对于.cu
包含 CUB 的文件失败并使用一些纹理并出现以下错误:
如何解决这个问题?我应该向 NVIDIA 或 LLVM 提交错误吗?
环境是带有 LLVM/Clang 12 和 CUDA Toolkit 11.4.1 的 Ubuntu 20.04。CUB 与 CUDA 工具包捆绑在一起。
cuda - cub::DeviceRadixSort 指定结束位时失败
我正在使用 CUB 库的 GPU 基数排序算法对 N 个 32 位无符号整数进行排序,这些整数的值都仅使用其 32 位中的 k 个,从最低有效位开始。
因此,我在调用cub::DeviceRadixSort::SortKeys时指定了位子范围 [begin_bit, end_bit),以期提高排序性能。我正在使用最新版本的CUB (1.16.0)。
但是,SortKeys 崩溃(不是确定性的,但几乎总是)并在尝试对具有某些指定位范围 [begin_bit=0, end_bit=k) 且 k = {20,19, 的 10 亿个键进行排序时报告非法内存访问错误18},例如./cub_sort_test 1000000000 0 20
我分别在具有 CUDA 版本 11.4 和 11.2 的 Volta 和 Ampere NVIDIA GPU 上对此进行了测试。有没有人以前遇到过这种情况,和/或知道解决方法?这是最小的、可重现的示例代码: