11

SIMD 和向量处理器有什么区别?我目前的理解是向量处理是 SIMD 的一个子集。但有人告诉我“SIMD 不限于向量”,我不知道这到底是什么意思。有什么具体的例子吗?

另外,为什么标量架构比向量架构更受欢迎?是因为它们更容易实现和编程吗?

我知道我们有 SISD(常规 1 核 CPU)、SIMD(单核/多核处理器上的 SSE 扩展)、MIMD(errmm .. 我猜大概类似于 MPI,所以集群!)和 MISD(已被视为不切实际/不可行)。除此之外,我读过的其他一些内容是向量处理和超标量架构。有什么我错过并且应该知道的新架构吗?谢谢!

4

2 回答 2

10

弗林分类法是计算机体系结构的分类。根据 Flynn 的分类法,向量处理属于 SIMD 类。有些架构不是矢量处理器,但属于 SIMD 类。示例是连接机器和许多GPU,其中多个处理器执行相同的指令。

MMX、SSE、Altivec 等属于矢量处理以及 SIMD 类。有许多名称指代相同的概念:子字并行、小规模 SIMD、短向量处理、寄存器内的 SIMD (SWAR) 或最常见的多媒体扩展。

传统上,像CraySTAR这样的矢量处理器使用更大且可变的矢量大小。

超标量是一种实现处理器的方法,但不像 Flynn 的分类法那样对其指令集做出任何声明。

于 2012-10-19T13:22:57.320 回答
4

从 ARM Neon 与 ARM VFP 的比较中可以找到一个实际示例。第一个是更经典的 SIMD 并行评估 2、4、8 或 16 个项目(或大部分并行)。另一个是浮点扩展,它被编程为顺序迭代两组连续的寄存器(可能允许跳过 2),例如。S0..S3, S8..S11 并将结果写入 S12..S15。

后一种架构使用相同的指令处理可变数量(1-4)的操作,使用 1-4 个时钟周期来完成任务。如果该架构允许每条指令执行 128 次操作,那么系统之间的概念差异会更加清晰——即使两者都是向量和 SIMD 架构。

于 2012-11-20T21:02:37.753 回答