跳转至

Manycore 处理器架构分析

参考文档

Xeon Phi - Intel MIC

MIC: Many Integrated Core Architecture

Knights Corner:

4 路 SMT,AVX512 指令,32 KB L1I,32 KB L1D,每核心 512KB L2,乱序执行,一条 512 位计算流水线,每个周期双精度性能 512 / 64 * 2 = 16 FLOP/cycle。61 核 1.053GHz 双精度性能是 16 * 61 * 1.053 = 1028 GFLOPS

向量寄存器分为四组,每组 128 位,两个 DP/四个 SP。SP 和 DP 计算共享乘法器,来优化面积。

Knights Landing:

核心:4 路 SMT,AVX512 指令,乱序执行,两条 512 位计算流水线,每个周期双精度性能 512 / 64 * 2 * 2 = 32 FLOP/cycle,如果是 64 核 1.3 GHz,总双精度性能是 32 * 64 * 1.3 = 2662 GFLOPS。一共 36 个 Tile,每个 Tile 有 2 Core + 2 VPU/core + 1MB 16-way L2,最大 72 个核心。

内存:6-channel 384GB DDR4 2400 RAM(理论 2400 * 6 * 8 = 115.2 GB/s),8-16GB 3D MCDRAM(400+ GB/s)。

Fujitsu A64FX

内存:4 组,每组 8GB HBM2,带宽 256 GB/s(1024 bit * 2G),总共 32GB HBM2,带宽 1TB/s。Cache Line 大小 256 B。

核心:4 个 NUMA Node(Core Memory Group),每个 NUMA Node 包括 12 计算核,有 8MB 16 路的 L2 Cache。总共 48 计算核,4 辅助核。

指令集:ARMv8.2+SVE,512 位向量宽度,乱序执行,两个浮点流水线和两个整数流水线,每个周期双精度性能 512 / 64 * 2 * 2 = 32 FLOP/cycle,主频 2.2 GHz,按主频算理论双精度浮点性能 32 * 2.2 * 48 = 3.4 TFLOPS。文档里写的是双精度浮点性能 2.7 TFLOPS,单精度 5.4 TFLOPS,半精度 10.8 TFLOPS,8 位整数 21.6 TOPS,应该是按照实际测出来的算。TOP 500 配置是 7630848 核,对应 7630848 / 48 = 158976 个节点,Rpeak 是 537212 TFLOPS,那么每个节点是 537212 / 158976 = 3.38 TFLOPS,和上面的 3.4 接近。Linpack 跑出来的 Rmax 是 442010 TFLOPS,每个节点是 442010 / 158976 = 2.78 TFLOPS,和文档里说的比较接近。

部分主要特性:

  • Four-operand FMA: ARM FMA 指令只能是 R0=R0+R1*R2,A64FX 可以合并 R0=R3,R0=R0+R1*R2 两条为一条 R0=R3+R1*R2 指令
  • Gather/Scatter: 非连续访存,同一个 128B 内连续的 lane 可以合并访问,如果数据有局部性的话,可以得到两倍带宽

NVIDIA GPU

型号 工艺 Peak DP(TFLOPS) 功耗 (W) 性能功耗比 (TFLOPS/W)
P100 16 nm FinFET+ 4.7 250 0.019
V100 12 nm FFN 7 250-300 0.023-0.028
A100 7 nm N7 9.7 250-400 0.024-0.039
型号 内存容量 (GB) 内存带宽 (GB/s) 内存类型 L2 缓存大小 寄存器堆大小
P100 12-16 549-732 4096 bit HBM2 4096 KB 14336 KB
V100 16-32 900 4096 bit HBM2 6144 KB 20480 KB
A100 40-80 1555-2039 5120 bit HBM2 40960 KB 27648 KB
型号 SM 数量 CUDA 核心数 FP64 核心数 SM 频率 (MHz)
P100 56 3584 1792 1328
V100 80 5120 2560 1380
A100 108 6912 3456 1410
  • CUDA 核心数 = SM 数量 * 64
  • FP64 核心数 = SM 数量 * 32
  • Peak DP = FP64 核心数 * SM 频率 * 2
  • 寄存器堆大小 = SM 数量 * 256 KB

评论