平台/platform | 处理器 | 架构 | 厂商 | 定义 | 存储系统 | 指令 |
---|---|---|---|---|---|---|
CPU | X86 | Intel | L1Cache/L2Cache/L3Cache/DRAM | SSE | ||
CPU | ARM | ARM | NEON | |||
GPU | Intel | L1Cache/L2Cache/L3Cache/DRAM | SSE | |||
GPU | Midgard/ Utgard | ARM | NEON | |||
GPU | CUDA | 英伟达/NVIDIA | ||||
FPGA(现场可编程逻辑门阵列Field Programmable Gate Array) | Intel | |||||
FPGA | Xilinx |
NEON
NEON具有16个长度为128位的向量寄存器(这些寄存器以q开头,也可表示为32个64位寄存器,以d开头),可同时操作向量寄存器的16个字节,因此使用向量指令可获得更高的性能和带宽。
SSE
SSE是X86多核向量处理器支持的向量指令,
向量寄存器:具有16个长度为128位(16个字节)的向量寄存器,处理器能够同时操作向量寄存器中的16个字节,因此具有更高的带宽和计算性能。
AVX将SSE的向量长度延长为256位(32字节),并支持浮点乘加。
在不久的将来,Intel会将向量长度增加到512位。
由于采用显式的SIMD编程模型,SSE/AVX的使用比较困难,范围比较有限,使用其编程实在是一件痛苦的事情。
L1Cache/L2Cache/L3Cache/DRAM
多核的每个核心里面具有独立的一级缓存,共享的或独立的二级缓存,有些机器还有独立或共享的三级/四级缓存,所有核心共享内存DRAM。通常第一级缓存是多核处理器的一个核心独享的,而最后一级缓存(Last Level Cache,LLC)是多核处理器的所有核心共享的,大多数多核处理器的中间各层也是独享的。如Intel Core i7处理器具有4~8个核,一些版本支持超线程,其中每个核心具有独立的一级数据缓存和指令缓存、统一的二级缓存,并且所有的核心共享统一的三级缓存。