要在GPU上使用CUDA进行数据并行算法,有两个标准库CUDPP和Thrust,它们实现了排序、约简、前缀和等功能。
那么这两个库在性能和功能方面的主要区别是什么?
我大约一年前使用过这两个库来进行排序和前缀求和操作(使用的是CUDA 4.1,但是我不记得Thrust和CUDPP的版本),我发现CUDPP要稍微快一些,但是Thrust更容易使用(使用大约20M条目的float数组)。
至于功能方面,就我所记得的而言,你可以使用Thrust来处理主机内存,不仅仅是设备内存(与CUDPP相反),但这可能已经过时了。