问题标签 [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.

0 投票
1 回答
57 浏览

cuda - 如果我使用 31 个块,为什么这种 CUDA 缩减会失败?

以下 CUDA 代码采用标签列表 (0, 1, 2, 3, ...) 并找到这些标签的权重之和。

为了加速计算,我使用共享内存,以便每个线程都保持自己的运行总和。在计算结束时,我执行 CUB 块范围的缩减,然后对全局内存进行原子添加。

如果我使用少于 30 个块,CPU 和 GPU 会同意结果,但如果我使用更多,则不同意。为什么会这样,我该如何解决?

检查代码中的错误代码不会产生任何结果,并且 cuda-gdb 和 cuda-memcheck 不会显示任何未捕获的错误或内存问题。

我正在使用 NVCC v10.1.243 并在 Nvidia Quadro P2000 上运行。

MWE

0 投票
1 回答
105 浏览

python-3.x - 在 cupy 中启用 cub 的正确方法是什么?

我正在尝试找出启用cubin的正确方法cupy,但到目前为止还没有成功。我查看了文档,但找不到任何东西。目前我cub这样启用:

在执行上述代码之前,cub被禁用。我通过运行确认:

它返回一个空列表 ( [])。运行第一个片段中的代码后,上述函数返回[1](无论这意味着什么)。此外,我可以注意到像cupy.nansum.

正如您所看到的,这些函数cupy.set_routine_acceleratorscupy.set_reduction_accelerators属于私有 API ( cupy.core._accelerator),这意味着我不应该调用它们。

  • cub启用in的正确方法是cupy什么?

我正在使用Python 3.7.6cupy 8.1.0

谢谢

0 投票
1 回答
51 浏览

cuda - 使用 2D 间距阵列减少 CUB 和

我正在尝试使用 CUB 和 float/double 类型的二维数组来执行减和。虽然它适用于某些行+列的组合,但对于相对较大的数组,我在上次传输期间遇到非法内存访问错误。一个最小的例子如下:

错误在“复制最终 ::”处引发。我对为什么某些行 x 列有效而其他行无效感到有些困惑。我确实注意到这是导致它的较大值,但无法理解。任何建议将不胜感激。

0 投票
1 回答
260 浏览

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 工具包捆绑在一起。

0 投票
1 回答
27 浏览

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 上对此进行了测试。有没有人以前遇到过这种情况,和/或知道解决方法?这是最小的、可重现的示例代码: