首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SIMD和VLIW指令是一回事吗?

SIMD和VLIW指令是一回事吗?
EN

Stack Overflow用户
提问于 2021-12-18 00:46:10
回答 1查看 846关注 0票数 0

单指令多数据( SIMD )和超长指令字( VLIW )究竟有什么区别?其中一个是另一个的子集吗?或者他们是完全不同的东西?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-18 01:12:40

完全不相关而且是正交的。一台机器可以有一个或两者都可以,或者两者都不能。SIMD指令可以作为扩展添加到VLIW中。(但VLIW采用的是机器代码格式和ISA。)

VLIW是一个块中的多条指令,在不检查它们之间的危险/依赖的情况下一起解码和执行:编译器需要这样做,所以VLIW的思想是将一些寻找指令级并行性的工作卸载给编译器。

最著名的例子之一是英特尔/惠普的Itanium ISA。https://www.realworldtech.com/mckinley/介绍了它的一些细节,以及第一代Merced微体系结构(这不是很好)。https://www.realworldtech.com/ev8-mckinley/5/有更多关于第二代微架构,McKinley的详细信息。

VLIW是提供一些MIMD功能的一种方法(对多个数据进行多个指令,对不同的数据执行不同的操作)。

SIMD是一条对多个数据元素进行相同操作的指令,因此每个时钟通过CPU流水线获得更多的工作只需要扩展执行单元,而不是整个流水线。(单指令,多个数据。)大量的数据并行问题可以同时以SIMD、ILP和线程级并行的形式暴露给CPU。

(例如,使用多个累加器创建独立依赖链(ILP)的矩阵乘法或点积,其中每个累加器是4、8或16浮点数的向量(SIMD)。你可以把这些工作分成多个核心,所以你可以在Skylake或Zen2上每个时钟得到2x8个FMA。)

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70400206

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档