我正在将一些代码移植到GPU上,并且我已经实现了大部分代码,除了我的算法需要执行列归一化步骤(或者它应该在没有它的情况下算法也可以工作,但为了算法的稳定性,最好是进行归一化)。
我正在努力想出实现这一点的最好方法。我已经有了一个内核,它可以进行归约,所以我可以重用它来获得列总和。列的数量可以少到几千个元素的几十个列,多到几千个列,每个列都有几千个元素。如果我在每一列上反复调用缩减内核,我认为性能会很差,所以我正在尝试更好的方法,并希望其他人已经以更优化的方式解决了问题。
发布于 2012-08-29 23:30:26
你可能想看看加州大学戴维斯分校/Nvidia团队的开源CUDA Data-Parallel Primitives Library (CUDPP)。它包括快速分段扫描以及并行缩减。
https://stackoverflow.com/questions/12079683
复制