SPMD和SIMD有什么区别?

16

我就是无法理解它们之间的区别...

SPMD 在编程级别,而 SIMD 在硬件级别吗?

举个例子会更好!

谢谢

1个回答

13

SIMD是指令级别的向量化 - 每个CPU指令可以处理多个数据元素。

SPMD是更高级别的抽象,其中进程或程序分布在多个处理器上,并对数据的不同子集进行操作。


如果SIMD是关于在一个CPU上执行能够处理多个数据的指令 - 那么这里的并行性在哪里?是能够操作多个数据的能力吗? - RanZilber
3
是的,使用SIMD指令可以一次处理N个数据点而不是1个,其中N通常为4、8或16,这是常见CPU上典型的SIMD实现。因此,在指令级别上实现了N路数据并行性。 - Paul R
@PaulR 或许,如果您增加一些精度会更清晰。使用SPMD,您有一个以线程ID作为参数的单个程序。例如,此ID可以在switch case语句中使用。 - user6547518

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接