跳转至

PyTorch → NVIDIA GPU 全链路深度解析

📌 本系列讲的是 PyTorch 调用到 NVIDIA GPU 硬件之间的完整软件硬件桥接栈 与已有 nvidia-svm 内核源码系列 互补


本系列与已有的 nvidia-svm 内核源码系列 互补:

本系列 nvidia-svm 系列
PyTorch dispatcher、CUDA runtime、cuBLAS、vLLM HMM 缺页处理、VRAM 管理、GPU 调度器
软件层怎么调用 GPU GPU 在内核中怎么被管理
CUDA kernel launch 参数封装 CUDA kernel 在内核中怎么被调度执行

两条线在 CUDA kernel launch 处交汇——本系列讲上层的算子分发到 launch,nvidia-svm 系列讲 launch 之后的内核路径。

文章目录

文件 内容
1 PyTorch → CUDA:算子分发、流与事件 model.forward() → ATen dispatcher → CUDA kernel launch
2 CUDA 运行时与驱动:Memory Allocator、Graph、MPS cuMemAlloc、CUDA Graph capture/replay、多进程服务
3 加速库三剑客:cuBLAS、cuDNN、NCCL GEMM over Tensor Core、卷积算法选择、All-Reduce ring/tree
4 vLLM 推理引擎:PagedAttention、Continuous Batching KV Cache 虚拟页管理、动态组batch、为什么快 20x
5 GPU 硬件架构:SM、Warp、Tensor Core SM 调度、Warp scheduler、Tensor Core MMA、H100 TMA
6 完整管线图:从 PyTorch 到 GPU 硬件 端到端时序、每层的调用链和耗时

前置知识

  • PyTorch 的基本使用(model.forward()loss.backward()
  • CUDA 基本概念(kernel、grid、block、shared memory)
  • 内核源码系列的基础是可选的,但了解 HMM 和 GPU scheduler 会加深理解

完整管线总览

PyTorch (model.forward)
  → ATen dispatcher (native function dispatch)
    → cuBLAS / cuDNN (加速库选择)
      → CUDA Runtime (cudaLaunchKernel, cuMemAlloc)
        → CUDA Driver (ioctl, kernel params)
          → NVIDIA GPU 硬件
            → SM (Streaming Multiprocessor)
              → Warp Scheduler → Tensor Core (MMA 指令)
                → VRAM (HBM3)

💬 评论