【问题标题】:Does AVX or AVX2 support 256 bit string instructions and mullo for unsigned short?AVX 或 AVX2 是否支持 256 位字符串指令和 mullo for unsigned short?
【发布时间】:2016-08-12 19:08:11
【问题描述】:

我研究了 AVXAVX2 ISA 支持的字符串指令,但我找不到任何 256 位字符串比较指令,如 SSE4.2 如果有任何我找不到的字符串比较,我在哪里可以找到他们?否则为什么 AVX/AVX2 ISA 不支持 256 位字符串指令? 我还发现 AVX2 不支持 mullo for unsigned short 作为 16 位无符号整数,我不知道原因。因为SSE4.2已经支持了。

【问题讨论】:

  • 每个问题一个问题。

标签: x86 intrinsics avx avx2 sse4


【解决方案1】:

256 位字符串比较指令 - 不,在 AVX/AVX2(或 AVX-512 中没有) - 只有 SSE 4.2 中的 128 位指令。

mullo 用于 unsigned short - 这不是必需的,因为结果与签名 short mullo 相同。只有nulhi 指令需要存在于有符号和无符号变体中。

【讨论】:

  • 他们不向英特尔 AVX 添加字符串指令集的原因是什么?因为它没有用,或者因为在通用处理器中添加特殊用途指令是不可接受的?
  • @ADMS:好吧,我不为英特尔工作,但我敢猜测这可能没什么意义——这种类型的操作无论如何都倾向于 I/O 绑定(因为不太可能它将成为其他 SIMD 指令序列的一部分),因此实现现有 128 位字符串指令的更广泛版本几乎没有什么好处。
  • 它们不是还有用吗?尤其是 16 位 RANGES 模式,它没有那么多范围,但也有 ANY,如果有一个更大的集合可能会很好.. OTOH 无疑会比现在更慢
  • @harold 你什么意思?
  • @harold 我猜这些指令真的很复杂。即使是伪代码也很丑陋。我不知道这有多重要,但其中一些还具有交叉路口的依赖性,这可能会使事情复杂化。根据我几年前学习的 CPU 设计课程,路由拥塞是一件大事。这可能就是为什么端口 5 是唯一具有任何真正跨通道路由的端口的原因。在 Sandy/Ivy 上,所有超过 128 位的东西都进入了端口 5。在 Haswell 和后来,它变得更加严格。跨越 64 位的所有内容都进入端口 5。(不包括加载/存储端口)
猜你喜欢
  • 2016-09-25
  • 2019-04-25
  • 1970-01-01
  • 2011-12-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多