简介
按照 费林分类法 规则,根据指令和数据进入 CPU 的方式,将计算机架构分成四种:
- 单指令流单数据流 Single Instruction stream Single Data stream, SISD;
- 单指令流多数据流 Single Instruction stream Multiple Data stream, SIMD;
- 多指令流单数据流 Multiple Instruction stream Single Data stream, MISD;
- 多指令流多数据流 Multiple Instruction stream Multiple Data stream, MIMD。
SIMD 架构的计算机通过特有的寄存器进行加速,这应该是最简单直接的计算加速方式了,而且大多数处理器都支持 SIMD 指令,甚至编译器会对一些场景自动进行 SIMD 指令加速,这里仅介绍最常用的 Intel 处理器。
从 1997 年 Intel 推出第一个 SIMD 指令集 MMX 以来已经不断更新了多个版本,最常用指令集包括了 SSE 和 AVX 。
参考
- Easy Perf Vectorization 基本概念介绍的不错。
- 在 CMU DB 课程,这两个向量化的 PPT 不错,可以参考 Vectorization 1、Vectorization 2 介绍。