【问题标题】:SIMD vs Vector architecturesSIMD 与向量架构
【发布时间】:2012-10-09 13:03:51
【问题描述】:

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

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

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

【问题讨论】:

    标签: simd computer-architecture


    【解决方案1】:

    Flynn's Taxonomy 是计算机体系结构的分类。根据 Flynn 的分类法,向量处理属于 SIMD 类。有些架构不是矢量处理器,但属于 SIMD 类。例子是例如Connection Machine 和许多 GPUs,其中多个处理器执行相同的指令。

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

    CraySTAR 等传统矢量处理器使用更大且可变的矢量大小。

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2019-11-03
        • 1970-01-01
        • 2021-08-23
        • 1970-01-01
        • 2012-02-23
        • 2019-04-01
        • 2011-11-04
        • 2017-11-12
        • 1970-01-01
        相关资源
        最近更新 更多