Arm 通用SIMD技术

Arm 通用SIMD技术,arm,sse,simd,neon,mmx,Arm,Sse,Simd,Neon,Mmx,在哪里可以找到有关常见SIMD技巧的信息?我有一套指令集,知道如何编写非复杂的SIMD代码,但我知道,SIMD现在功能更强了。它可以保存复杂的条件无分支代码。 例如(ARMv6),以下指令序列将Rd的每个字节设置为Ra和Rb相应字节的无符号最小值: USUB8 Rd, Ra, Rb SEL Rd, Rb, Ra 教程/不常见SIMD技术的链接也不错:ARMv6对我来说是最有趣的,但是x86(SSE,…/Neon(在ARMv7中)/其他的也不错。有史以来最好的SIMD资源之一是旧的AltiVec

在哪里可以找到有关常见SIMD技巧的信息?我有一套指令集,知道如何编写非复杂的SIMD代码,但我知道,SIMD现在功能更强了。它可以保存复杂的条件无分支代码。
例如(
ARMv6
),以下指令序列将Rd的每个字节设置为Ra和Rb相应字节的无符号最小值:

USUB8 Rd, Ra, Rb
SEL Rd, Rb, Ra

教程/不常见SIMD技术的链接也不错:ARMv6对我来说是最有趣的,但是x86(SSE,…/Neon(在ARMv7中)/其他的也不错。

有史以来最好的SIMD资源之一是旧的AltiVec邮件列表。尽管PowerPC/AltiVec是特定的,但我怀疑此列表中的许多内容对任何使用其他SIMD体系结构的人都会有普遍的意义。不幸的是,这个列表在被转移到power.org上的一个论坛后,现在似乎已经不存在了,但你也许可以找到它的存档版本。(如果没有,请告诉我——我几乎拥有2000-2007年的所有帖子。)


还有很多关于AltiVec、SSE、SIMD矢量化和at总体性能的潜在有用信息,其中很多信息可以转移到其他SIMD体系结构。

尝试一下AMD在sourceforge上的项目。

在AltiVec页面上达成一致意见——“编写AltiVec代码”部分在一般向量编程最佳实践方面非常有用。不幸的是,截至目前,该页面现在重定向到苹果高级计算组。该页面仍在谷歌缓存中:子页面不会重定向,因此内容仍然可用,尽管我已将其存档以防万一(TM)。@Pierre:真是太遗憾了——我想苹果觉得没有人再关心AltiVec了。不幸的是,旧的AltiVec邮件列表似乎也消失了——它显然被移动到了power.org,但我现在找不到了。幸运的是,我把大部分都存档了。