本文介绍了常见的 SIMD 技术的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

Where can I find information about common SIMD tricks? I have an instruction set and know, how to write non-tricky SIMD code, but I know, SIMD now is much more powerful. It can hold complex conditional branchless code.
For example (ARMv6), the following sequence of instructions sets each byte of Rd equal to the unsigned minimum of the corresponding bytes of Ra and Rb:

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

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

Links to tutorials / uncommon SIMD techniques are good too :) ARMv6 is the most interesting for me, but x86(SSE,...)/Neon(in ARMv7)/others are good too.

推荐答案

有史以来最好的 SIMD 资源之一是旧的 AltiVec 邮件列表.尽管 PowerPC/AltiVec 特定于我,但我怀疑此列表中的许多材料对使用其他 SIMD 架构的任何人来说都是普遍感兴趣的.遗憾的是,在移至 power.org 上的论坛后,此列表现在似乎已不复存在,但您或许可以找到它的存档版本.(如果没有,请告诉我 - 我几乎拥有 2000 年至 2007 年的所有帖子.)

One of the best SIMD resources ever was the old AltiVec mailing list. Although PowerPC/AltiVec-specific I suspect that a lot of the material on this list would be of general interest to anyone working with other SIMD architectures. Sadly this list seems now to be defunct after being moved to a forum on power.org, but you may be able to find archived versions of it. (If not then let me know - I have pretty much all the posts from 2000 - 2007.)

http://developer.apple.com/hardwaredrivers/ve/index.html,其中很多可以转移到其他 SIMD 架构.

There is also a lot of potentially useful info on AltiVec, SSE, SIMD vectorization and performance in general at http://developer.apple.com/hardwaredrivers/ve/index.html, a good deal of which may be transferable to other SIMD architectures.

这篇关于常见的 SIMD 技术的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

05-30 22:53