给予一个登记册的4个字节(或16单指令),必须有一个高效率的方式进行排序的字节登记有一些说明。

在此先感谢。

有帮助吗?

解决方案

查找的有效排序网络获得N =你所关心的字节数(4或16)。将其转换成的比较和交换指令序列。 (对于N = 16,其会超过 '几',虽然。)

其他提示

找到啦!这是在2007年的论文“使用SIMD寄存器和指令启用指令级并行的排序算法”通过Furtak,阿马拉尔和Niewiadomski。部4。

它使用4个SSE寄存器,有12个步骤,以及在运行19点指示,包括加载和存储。

同样的纸具有与SIMD动态使排序网络一些出色的工作。

加速排序的串,最后我打包7字节每双和排序(排名)一系列的16倍SSE2,使用bitonic排序,以创建两个运行的8和二元合并合并两个运行。你可以看到的第一部分在这里 http://mischasan.wordpress.com/2011/07/29/okay-one-more-poke-at-sse2-sorting-doubles/ (asm)和这里 http://mischasan.wordpress.com/2011/09/02/update-on-bitonic-sse2-sort-of-16-doubles/ (C),并bitonic合并的步骤(如果你想要去上证所有的方式): http://mischasan.wordpress.com/2012/11/04/sse2-odd-even-merge-the-last-step-in-sorting/ .我替换插入排序的底部时,qsort这样,这是大约5倍觉时,qsort.禾田

我没有看到UofA文件;该bitonic逻辑的是从旧的学校(CTM)器编程。

对不起关于嵌入式的链接串;我不知道如何增加可点击的链接在意见计算器.

所有的排序算法需要从一个地方到另一个“交换”的值。既然你在谈论文字CPU寄存器,这意味着任何形式将需要另一个寄存器用作临时的地方举行字节被交换。

我从未见过的芯片具有一个内置的寄存器内的排序字节方法。不是说没有这样做,但我不能为这样的指令想很多用途。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top