SIMD 学习

1.认识CPU架构

CPU的全称是“中央处理单元”,它是计算机的核心,计算都由它完成。不同的CPU架构有不同的指令集(汇编),彼此不通用这就导致运行在上面的软件不兼容,必须重新编译。如果没有做适配,一个架构下的软件就无法移植到另一个架构。
目前市面上的CPU架构主要分为X86架构和arm架构。
intel 与 amd 厂商使用的是基于X86架构的CPU,X86架构使用的是复杂指令集即指令一步到位,而arm使用的是精简指令集即指令由几个指令完成。
X86架构性能好,但是耗电多、电压高,主要用于桌面合服务器。
然而ARM架构耗电少、电压低,但是单核性能不如X86,主要用于移动设备。
近几年来,X86架构发展迟缓,ARM架构进步显著,已经从移动设备向桌面电脑和服务器进军了。

2. 另外就是平时所说的amd64 、X86_64 与X64啥区别?

首先这些一般指的是 CPU架构,不同公司的CPU采用的架构一般不同。不同CPU采用的指令集也一般不同。

不同的公司称呼不一样,其实是一个东西,如amd64 与 X86_64 和 X64。
这个标准是amd公司制定的标准可以兼容32位,intel采用了这个标准,有时又称为intel64。
这几个名词只能叫相关。
1.Intel是个芯片公司,说白了,主业是设计并制造CPU的(当然还有别的产品,这里不表),架构是x86架构,x86_64架构,和IA64安腾架构。
2.AMD也是个芯片公司,主业除了设计CPU(AMD不流片,所以没有制造)还有设计显卡(收购的ATI),AMD设计的CPU和intel x86/x86_64系列兼容。
3.x86是Intel的概念,从8086到奔腾4,都是x86架构。AMD的K5到阿斯龙也是一样。不过x86_64其实是AMD提出来的,所以也叫amd64,目前应用广泛。Intel对应的64位是IA64,没有民用。
4.ARM可以指一家嵌入式芯片设计公司,也可以指该公司的架构,指令集和Intel/amd不兼容。另外arm还有嵌入式的GPU Mali。
5.MIPS是个指令集,应该是由英国的Imagination持有,和ARM架构还有x86架构均不兼容。
更详细的请参考

3.指令集

上面我们已经提到多种架构的CPU,常用的两类可以分为
1)Intel , amd
2)Arm
其中Intel , amd的simd指令集包括sse系列和avx系列,一般电脑使用的是intel的cpu
Arm的指令集是NEON,主要用于手机移动端
关于 sse,avx指令集的发展历史可以参考 文章

4.如何判断自己的设备cpu支持哪种指令集呢?

通过cpuz软件查看 通过下图克制,cpu是intel i7系列

支持的指令集如红框所示

cpu架构 和 系统 处理器的关系 cpu不同架构的区别_服务器