一、概述
如果要考虑算法,我们需要先思考如下问题:
(1)、如何将问题分解成块或片,然后如何将这些块分解成线程;
(2)、线程如何访问数据以及产生什么样的内存模式;
(3)、算法总共要执行多少工作以及串行化的实现方法有何显著不同;
二、排序
可用的排序算法有很多,其中有一些可以轻松、高效地在GPU 上实现,但也有很多不适合GPU 实现。
三、归约
归约是并行程序中一种常用的技巧。我们将通过不同的方法执行归约。可以有基于全局内存的原子加法、线程内归约、基于块数目的归约、使用共享内存的归约。