常见的SIMD技术

zxc*_*cat 17 arm sse simd neon mmx

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

USUB8 Rd, Ra, Rb
SEL Rd, Rb, Ra
Run Code Online (Sandbox Code Playgroud)

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

Pau*_*l R 12

有史以来最好的SIMD资源之一是旧的AltiVec邮件列表.虽然PowerPC/AltiVec特定的,我怀疑这个列表中的很多材料对于使用其他SIMD架构的任何人来说都是普遍感兴趣的.遗憾的是,这个列表在转移到power.org上的论坛后现在似乎已经不复存在了,但您可以找到它的存档版本.(如果不是那么让我知道 - 我几乎有2000 - 2007年的所有帖子.)

http://developer.apple.com/hardwaredrivers/ve/index.html上也有很多关于AltiVec,SSE,SIMD矢量化和性能的潜在有用信息,其中很多可能转移到其他SIMD架构.

  • 不幸的是,截至目前该页面现在重定向到Apple Advanced Conmputation Group.该页面仍在Google缓存中:http://209.85.229.132/search?q=cache:eHR6ni6SROoJ:developer.apple.com/hardware/ve/index.html+site:developer.apple.com+Velocity+Engine&cd = 1&hl = fr&ct = clnk&gl = fr且子页面没有重定向,所以内容仍然可用,尽管我已将其存档为Just In Case(TM). (3认同)

Jac*_*ock 6

在sourceforge上试用AMD的SSEPlus项目