我正在寻找CUDA项目中用于高性能多行扫描/多前缀和(一次内核执行中的多行数据)的函数。我已经尝试了Thrust库中的一个功能,但速度太慢了。而且,在使用nvcc的调试标志(-g -G)编译后,Thrust会崩溃。在失败了Thrust之后,我关注了cuDPP库,它曾是CUDA工具包的一部分。cuDPP的性能非常好,但该库与最新的CUDA 5.5不兼容,并且在使用内存检查器进行调试时,cudppMultiScan()函数存在一些全局内存违规问题。(CUDA 5.5,nsight 3.1,Visual Studio 2010,GTX 260 cc 1.3)。有人知道除了这两个库以外还有什么可用吗?
inclusive_scan
。为每一行分配一个索引,并使用inclusive_scan_by_key
。您可以参考此示例进行适应。 - Jared Hoberock