CUDA-如何对积木做平均值?

时间:2012-08-09 21:58:26

标签: cuda average

我有一个关于块平均的问题。我输入的数据大小为256 * 512,我在一个块中放了256个线程,所以总共有512个块。输出的大小应为256,每个元素是不同块中相同线程ID的平均值。换句话说,来自所有512个块的线程1被平均,并且结果被给予输出数组的线程1。类似地,对来自所有512个块的线程2进行平均,并将其提供给输出数组的线程2。我知道通过使用共享内存在块内进行平均非常快速和高效,但这不是这里的条件。使用NPP函数允许我在for循环中执行它,虽然它非常耗时。任何人都可以提出如何有效地进行平均块数的建议吗?非常感谢!

1 个答案:

答案 0 :(得分:2)

为什么不翻转它,每块执行512个线程并执行共享内存总和减少以计算块内的总和然后除以512并存储到全局内存?

您也可以使用thrust使用逐个缩减操作快速编码。