问题标签 [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 回答
155 浏览

c++ - CUB 的 TexRefInputIterator 是如何工作的?

CUB为纹理引用提供了一个迭代器,它的实现很容易访问

由于我自己无法弄清楚如何实现可模板化的纹理引用——它们“只能被声明为静态全局变量” ——我现在正试图了解它是如何在 CUB 中完成的。但其中一些超出了我的 C++ 知识范围,我无法在其他地方找到答案(再说一次,我真的不知道要搜索什么)。

具体来说:

未命名的namespace周围是否IteratorTexRef重要?我只能认为这是限制IteratorTexRef::TexId::ref在文件/翻译单元范围内。

目的是IteratorTexRef什么?它只 wraps TexId,但删除它会导致(对我而言)难以理解的编译时错误。

此代码是链接到实现的精简版本,编译并运行:

根据人们通常如何访问静态模板成员,我得到的最接近的是类似于下面的内容。为清楚起见,下面简单地IteratorTexRef从上面消除:

它给出了这些有点深奥的编译时错误。nvcc iter.cu(使用CUDA 7.0编译):

0 投票
1 回答
924 浏览

sorting - 如何对 CUDA 向量类型的数组进行排序

具体来说,我如何对数组进行排序float3?这样.x组件是主要排序标准,.y组件是次要排序标准,.z组件是三级排序标准。

是否有一个简单的解决方案可以对cub:: DeviceRadixSortor进行一次调用thrust::sort_by_key

目前我在想也许我可以创建一个uint32键数组,其中每个元素的前三分之一的数字取自输入数组的前三分之一的.x组件,后三分之一的数字取自输入数组的前三分之一的.y组件,其最后三分之一的数字取自输入数组.z组件的前三分之一。还是有更好的解决方案?

0 投票
1 回答
406 浏览

cuda - cub 库支持的最大大小

有谁知道 cub::scan 支持的最大大小是多少?我得到了超过 5 亿输入大小的核心转储。我想确保我没有做错什么...

这是我的代码:

0 投票
1 回答
528 浏览

cuda - 同时使用 CUB 和 Thrust 进行并行和扫描

我正在尝试对测试向量进行并行求和扫描。为此,我同时使用 Thrust 和 CUB 库

我得到的错误是

我无法正确解释该错误,并且我确信我处理原始指针的方式存在问题。任何帮助表示赞赏。

相关链接:如何在一个 CUDA 代码中使用 CUB 和 Thrust

0 投票
1 回答
217 浏览

cuda - 指定 gencode 时 CUB ReduceByKey 的结果不正确

在我的一个项目中,我在使用 CUB 的 DeviceReduce::ReduceByKey 时看到了一些不正确的结果。但是,使用带有thrust::reduce_by_key 的相同输入/输出会产生预期的结果。

当我包含“-gencode arch=compute_35,code=sm_35”(对于 Kepler GTX Titan)时,它会产生错误的结果,但是当我完全忽略这些标志时,它会起作用。

我使用了一些其他 CUB 调用没有问题,只是这个行为不端。我还尝试在 GTX 1080 Ti(使用 compute_61、sm_61)上运行此代码并看到相同的行为。

省略这些编译器标志是正确的解决方案吗?

在一台机器上试过:

  • 库达 8.0
  • Ubuntu 16.04
  • 海合会 5.4.0
  • 幼崽 1.6.4
  • Kepler GTX Titan(计算能力 3.5)

另一个是:

  • 库达 8.0
  • Ubuntu 16.04
  • 海合会 5.4.0
  • 幼崽 1.6.4
  • Pascal GTX 1080 Ti(计算能力 6.1)
0 投票
0 回答
159 浏览

sorting - 在 cub 中对共享内存数组进行排序

我想使用 cub 为我在每个块中排序一个数组。我用多个块调用内核,每个块有 32 个线程,每个线程都有一个 27 个整数的数组。根据 cubs github 页面的标准排序如下所示:

稍后我需要将单元格放在共享内存中,如下所示:

是否可以在 cub 中对已经驻留在共享内存中的数组进行排序?还是我必须在排序后将所有数组加载到共享内存中。

或者是否可以选择将所有单元格存储在全局内存中,并通过 cub 设备函数对它们进行排序,但由特定大小的块分隔?

0 投票
1 回答
151 浏览

c++ - 类似于推力的CUB模板

以下是推力代码:

这里,thrust::reduce接受第一个和最后一个输入迭代器,推力将值返回给 CPU(复制到 h_in_value)

可以使用 CUB 获得此功能吗?

  1. First 和 Last 迭代器作为输入
  2. 将结果返回给主机
0 投票
1 回答
1004 浏览

cuda - 在 nvidia nsight 中安装 CUB

我想将 CUB 与 NVIDIA Nsight 一起使用。我在互联网上寻找了这样做的教程,但我没有找到任何东西,即使在官方页面 pf CUB 中也是如此。

为了在使用 NVIDIA Nsight 编写的代码中使用 CUB,我需要做什么?

0 投票
1 回答
727 浏览

cuda - CUB分段减少不产生结果

我正在尝试使用CUB分段归约和原语,但我坚持使用它。

这是我的代码:

但结果我得到了这个:

我无法弄清楚到底是什么问题。在实际示例中,我有一个非常大的数组,其中段等于 400。我可以优化代码,这样我就不需要为d_offsets.

0 投票
1 回答
441 浏览

visual-studio-2015 - 包含 CUB 标头会触发许多 Visual Studio Intellisense 错误

每当我包含<cub/cub.cuh>头文件时,Visual Studio 的 IntelliSense 都会报告数以千计的错误。

正如您在随附的屏幕截图中所见,应用程序由空main()函数和include一行组成。

我在项目属性中定义了额外的包含目录和额外的库目录。我没有进行任何其他更改。

我的设置包括visual studio community 2015,cuda 8.0.61cub 1.7.0库。

我能做些什么来解决这个错误吗?

智能感知行为