Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sorting 最佳排序OpenCL算法_Sorting_Opencl - Fatal编程技术网

Sorting 最佳排序OpenCL算法

Sorting 最佳排序OpenCL算法,sorting,opencl,Sorting,Opencl,我正在为AMD APU(北岛GPU)和AMD evergreen GPU编写OpenCL代码。我必须对一个庞大的整数数组进行排序,而且我必须高效地进行排序(更少的内存使用和最少的执行时间)。为此,我应该使用哪种排序算法?Mergesort似乎是一个合理的选择。它易于并行化,相当简单和轻量级,只需要顺序访问,不依赖随机性,并且具有最佳的最坏情况渐近复杂性(通常相当快)。谢谢你,托马斯!我应该自己编写还是已经有了任何快速示例实现?我想现有的实现是可用的,但是如果您有时间自己编写,在OpenCL中这将

我正在为AMD APU(北岛GPU)和AMD evergreen GPU编写OpenCL代码。我必须对一个庞大的整数数组进行排序,而且我必须高效地进行排序(更少的内存使用和最少的执行时间)。为此,我应该使用哪种排序算法?

Mergesort似乎是一个合理的选择。它易于并行化,相当简单和轻量级,只需要顺序访问,不依赖随机性,并且具有最佳的最坏情况渐近复杂性(通常相当快)。谢谢你,托马斯!我应该自己编写还是已经有了任何快速示例实现?我想现有的实现是可用的,但是如果您有时间自己编写,在OpenCL中这将是一个有趣的练习。该算法很好地映射到GPGPU的概念,所以它也不是非常困难。是的,你是对的。我为一个具有2个元素的倍数的数组编写了Mergesort。因为我的目标是使用排序数组并做更多的事情,所以我不想把时间花在已经完成的事情上。如果已经有了更高效的实现,我肯定会使用它们。Bitonic Sort非常适合于并行架构。示例代码随AMD SDK应用程序提供