A03·2026-09-17

GPU 的 15 层抽象阶梯:从晶体管到云原生

GPU 不是 CPU 的替代品,而是抽象阶梯的并行分支。从 L0 到 L14,GPU 在每一层都有对应的实现——从 CUDA 核心到 MIG 虚拟化,揭示 GPU 计算的全栈抽象。

GPUCUDASIMT抽象层级并行计算

当我们把 GPU 放入抽象阶梯,每一层都有对应的实现。GPU 不是 CPU 的替代品,而是抽象阶梯的并行分支。

GPU 的 15 层抽象对应表

| 层级 | 抽象 | GPU 的对应 |

|------|------|-----------|

| L0 | 晶体管 | 同样——GPU 由数十亿晶体管构成 |

| L1 | 逻辑门(NAND) | 同样——GPU 的逻辑门规模远超 CPU |

| L2 | ALU | GPU 有海量向量 ALU(CUDA 核心) |

| L3 | 寄存器 / 存储 | GPU 寄存器、共享内存、显存(HBM) |

| L4 | 机器指令 / ISA | CPU ISA + GPU ISA(SASS/GCN) |

| L5 | 计算机体系结构 | CPU 架构 + GPU 架构(SIMT) |

| L6 | 汇编语言 | CPU 汇编 + GPU 汇编(PTX/SASS) |

| L7 | 汇编器 | CPU 汇编器 + GPU 汇编器 |

| L8 | 虚拟机 | JVM/CLR + GPU 运行时(CUDA/OpenCL) |

| L9 | 高级语言 | C/C++/Python + CUDA/OpenCL/SYCL |

| L10 | 编译器 | GCC/LLVM + NVCC/LLVM GPU 后端 |

| L11 | 操作系统 | OS + GPU 驱动 + 命令调度 |

| L12 | 系统库 / 运行时 | libc + cuDNN/cuBLAS/ROCm |

| L13 | 容器 / 编排 | Docker + NVIDIA Container Toolkit + K8s Device Plugin |

| L14 | 云原生应用 | 分布式训练/推理、GPU 池化、MIG/vGPU |

从物理到云原生的并行分支

从 L0 到 L3,GPU 和 CPU 共享相同的物理基础——晶体管、逻辑门、ALU、寄存器。区别从规模开始:GPU 的 ALU 数量是 CPU 的数百倍,但每个 ALU 的功能更简单。

从 L4 开始,两者分道扬镳。CPU 走向复杂的乱序执行和分支预测,GPU 走向 SIMT 和海量并行。CPU 的 ISA(如 x86-64)强调通用性,GPU 的 ISA(如 SASS)强调并行吞吐量。

到了 L8-L10,两条路径在高级抽象层面重新交汇。CUDA/OpenCL 提供跨平台的 GPU 编程模型,NVCC/LLVM 将高级语言编译为 GPU 机器码。

最终在 L13-L14,CPU 和 GPU 在云原生层面完全融合。Kubernetes 同时编排 CPU 和 GPU 工作负载,NVIDIA Container Toolkit 让容器访问 GPU 资源,MIG(Multi-Instance GPU)将一块物理 GPU 虚拟化为多个独立实例——就像 CPU 的进程虚拟化一样。

关键洞察

这张表揭示了一个关键洞察:抽象阶梯不是线性的,而是树状的。从 L4 开始,计算架构分化为 CPU 路径和 GPU 路径,但它们在每一层都保持着对应关系。理解这种对应关系,才能在 GPU 编程时做出正确的抽象选择——什么时候用共享内存,什么时候用全局内存,什么时候用 CUDA 核心,什么时候用 Tensor 核心。

GPU 编程的本质,是在并行分支上重建 CPU 程序员习以为常的抽象能力。

相关文章