当我们把 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 程序员习以为常的抽象能力。


