指令级并行与 SIMD

Posted

技术标签:

【中文标题】指令级并行与 SIMD【英文标题】:Instruction level parallelism vs SIMD 【发布时间】:2016-08-14 14:23:26 【问题描述】:

指令级并行与SIMD(单指令多数据)有什么异同?我知道它们都可以使用多个指令,但这是我能想到的唯一相似之处。

【问题讨论】:

【参考方案1】:

SIMD 让每条指令处理多个项目。 ILP 是关于拥有multiple dependency chains 以便可以同时运行多个指令。

它们是正交的;为了最大限度地提高 Haswell 的 FMA 吞吐量,您需要保持 10 个 FMA 处于运行状态,每个 FMA 在一个由 8 个单精度元素组成的向量上运行。

x86 标签 wiki 有很多链接,尤其是 Agner Fog 的 Optimizing Assembly 和微架构指南,以了解有关吞吐量与延迟的更多信息。

【讨论】:

以上是关于指令级并行与 SIMD的主要内容,如果未能解决你的问题,请参考以下文章

并行计算:并行计算机与并行模型的分类

指令级并行

指令级并行

计算机系统结构的基础知识

指令级并行探索

x86 - 指令级并行性 - 指令的最佳顺序