Parallel Radix Sort
来源:互联网 发布:托福模考软件 编辑:程序博客网 时间:2024/06/03 22:06
感觉在GPU上面写排序差不多现在都是这个,不知道Keplar3.5出了Dynamic Parallel Thread之后会不会出现那种排序网络的排序算法更高效,反正现在就是这个了,Fermi就能跑的并行排序。
Radix Sort算是一种外排序吧,大家都了解了估计,首先要算定一个Radix的长度,然后根据Radix的长度对每个可能值进行统计数目,然后根据统计的数目进行Prefix Sum,之后把数放到另一个数组里,根据刚才统计的位置
这个并行算法分三个阶段,根据GPU Gems III Broad-Phase Detection里面讲的,他使用了16(Num_Block_Num)个线程块,每个线程块还分成了16(Num_Group_Num)个线程组,这主要是权衡排序所需要的趟数和寄存器有限,具体请见GPU Gems III Broad-Phase Detection里面的具体情况。
第一个阶段,由于每个线程块中的线程组共享同样的Shared_memory,所以每个线程组的访问是序列化进行的,如图:
为了保证排序的稳定性,每个线程块依次处理连续的数据段,每个线程组也连续处理连续的数据块,这样就可以防止后面的数据出现在前方,这个是有之后的Prefix Sum决定的,后面讨论。
线程组中的线程对分配到的数据段采取交织访问的方法,这样可以使用并行处理,提高效率,这样对内存寻址的公式可以写为:
其中Num_Elements_Per_Group表示每个线程组分配到的数据的数量。
- Parallel Radix Sort
- Radix sort
- Radix Sort
- radix sort
- Radix Sort
- radix-sort
- radix sort
- radix sort
- Radix Sort
- radix sort &&bucket sort
- Radix Sort 基数排序
- radix sort 基数排序
- 基数排序(Radix Sort)
- 基数排序 (Radix sort)
- Foundation: Radix List Sort
- 基数排序(radix sort)
- 基数排序(Radix Sort)
- 基数排序 (Radix Sort)
- cocos2d-x 类大全及其概要,难点
- 代码生成利器-NCodeGenerate 教程(2) NCodeGenerate的代码公用之一
- Zstack杂乱笔记1
- ASP.NET验证控件
- contentSize、contentInset和contentOffset区别
- Parallel Radix Sort
- flash 遮挡页面中元素 ( flash wmode参数详解 )
- spring 集成测试
- 采集音频和摄像头视频并实时H264编码及AAC编码
- spring 单元测试
- strut2,模型驱动验证框架
- 排序算法总结
- 观察者模式demo
- Elf32_auxv_t