人工智能时代的并发编程

人工智能时代的并发编程

2024 南京大学《操作系统:设计与实现》
人工智能时代的并发编程

NVIDIA DGX-1 (2016)

8 x Tesla V100

  • 170 TFLOPS @ 3.2kW (CRAY-1: 138 MFLOPS @ 115kW)

center

2024 南京大学《操作系统:设计与实现》
人工智能时代的并发编程

NVIDIA DGX B200 (2024)

8 x Blackwell GPUs

  • 72 PFLOPS (训练), 144 PFLOS (推理) @ 14.3kW

center

2024 南京大学《操作系统:设计与实现》
人工智能时代的并发编程

大语言模型背后的计算

Attention Is All You Need

  • “Transformers”

center w:full

Figure: https://udlbook.github.io/udlbook/
2024 南京大学《操作系统:设计与实现》
人工智能时代的并发编程

机器学习系统中的并发编程

Challenge: 既计算密集,又数据密集

  • 推理
    • GPT-3: 175B 参数 (~300GB VRAM, FP-16)
      • GPT-3 single training run cost: ~$5,000,000
    • LLaMA2: 70B 参数 (~65GB VRAM, FP-16)
      • 美国人断供芯片 = 三体人行为
  • 训练
    • 320TB 语料
    • 相比图片和视频,还是小弟弟

解决:所有能想到的技术,全部都用上了!

2024 南京大学《操作系统:设计与实现》
人工智能时代的并发编程

并行化:Dependency Graph Is All You Need

center

2024 南京大学《操作系统:设计与实现》
人工智能时代的并发编程

单个计算密集的切片 (1):SIMD

Single Instruction, Multiple Data

  • Tensor 指令 (Tensor Core):混合精度 A×B+CA \times B + C
    • 单条指令完成 4×4×44\times4\times4 个乘法运算

center

  • x86: MMX (MultiMedia eXtension, 64-bit MM) → SSE (Streaming SIMD Extensions, 128-bit) → AVX (Advanced Vector eXtensions, 256-bit) → AVX512 (512-bit)
2024 南京大学《操作系统:设计与实现》
人工智能时代的并发编程

单个计算密集的切片 (2):SIMT

Single Instruction, Multiple Threads

  • 一个 PC,控制 32 个执行流同时执行
    • 逻辑线程可以更多
  • 执行流有独立的寄存器
    • x,y,zx, y, z 三个寄存器用于标记 “线程号”
    • 然后,堆海量的线程

center

2024 南京大学《操作系统:设计与实现》
人工智能时代的并发编程