有没有支持MIMD arch的指令集?

xjk*_*xjk 1 c++ simd

我已经知道 SIMD 指令集包含 SSE1 到 SSE5。
不过没找到太多讲什么指令集支持MIMD arch。
在c++代码中,我们可以使用intrinsic来编写“SIMD运行”代码。
有没有办法编写“MIMD运行”代码?
如果 MIMD 比 SIMD 更强大,最好编写支持 MIMD 的 C++ 代码。
我的想法正确吗?

Tob*_*ght 5

维基百科页面弗林的分类法将 MIMD 描述为:

多个自主处理器同时对不同的数据执行不同的指令。MIMD 架构包括多核超标量处理器和分布式系统,使用一个共享内存空间或分布式内存空间。

任何时候您划分算法(例如使用 OpenMP 划分线程),您都可能使用 MIMD。通常,您不需要特殊的“MIMD 指令集” - ISA 与 SISD 相同,因为每个指令流都独立于其他指令流,在其自己的数据上运行。EPIC(显式并行指令计算)是一种替代方法,其中功能单元以锁步方式运行,但具有独立的(ish)指令和数据。

至于哪个“更强大”(或更节能,或最低延迟,或您的用例中的任何重要事项),没有单一的答案。与许多复杂的问题一样,“视情况而定”。