举例:
每个数大小为8字节(64位)
计算:
1+2
3+4
5+6
7+8 四对数的和
SISD,单指令单数据流
计算机有一个计算单元,多个8字节(64位)寄存器;
需要顺序执行,每次计算时每个寄存器只能容纳一个数;
那么计算次数为:顺序执行4次;SIMD,单指令多数据流
SIMD的同SISD的最大区别是寄存器的变大了,一次计算可以容纳更多的数据(空间换时间),SSE指令集的寄存器大小为128位,AVX2指令集的寄存器大小为256位,AVX512指令集的寄存器大小为512位

image.png
计算机有一个计算单元,多个32字节(256位,AVX2规格)寄存器;
每次计算时每个寄存器能容纳4个数字;
那么计算次数为:顺序执行4次;
- MISD,多指令单数据流
计算机有多个计算单元,多个8字节(64位)寄存器;
可以并行执行,单每次计算时每个寄存器只能容纳一个数;
那么计算次数为:并行执行4次; - MIMD,多指令多数据流
很多计算机都采用这种形式
计算机有多个计算单元,多个32字节(256位,AVX2规格)寄存器;
可以并行执行,每次计算时每个寄存器能容纳4个数字;;
那么计算次数为:不确定,但是耗时理论上更少;
什么是向量计算机?
一个命令一次性能计算多组数据的计算机就是向量计算机,即支持SIMD、MIMD就是向量计算机
参考
https://zhuanlan.zhihu.com/p/31271788
https://zhuanlan.zhihu.com/p/55327037