术语表

概述

本术语表收录了 PyTorch 源码分析中常见的专业术语和缩写,按字母顺序排列。

A

Allocator(分配器)

负责管理 Tensor 内存分配和释放的组件。PyTorch 支持多种分配器,包括 CPU 分配器和 CUDA 缓存分配器。

AOT(Ahead-of-Time)

提前编译,与 JIT(即时编译)相对。AOT Autograd 是 PyTorch 2.0 编译器栈的一部分。

Autograd(自动微分)

PyTorch 的自动求导系统,负责自动计算梯度。核心组件包括计算图、反向传播引擎。

B

Backward(反向传播)

从损失函数开始,沿计算图反向计算梯度的过程。

Boxing(装箱)

将具体类型的参数转换为通用类型(如 IValue)的过程,用于算子分发系统。

C

C10(Core 10)

PyTorch 的核心 C++ 库,提供基础数据结构和工具(Tensor、Device、DispatchKey 等)。

CUDA Caching Allocator(CUDA 缓存分配器)

PyTorch 用于管理 GPU 内存的高性能分配器,通过缓存机制减少 cudaMalloc/cudaFree 调用。

Computational Graph(计算图)

表示张量操作和依赖关系的有向无环图(DAG),是 Autograd 的核心数据结构。

D

DDP(DistributedDataParallel)

PyTorch 的数据并行分布式训练策略,通过 AllReduce 同步梯度。

Device(设备)

Tensor 存储的硬件位置,如 cpucuda:0mps

DispatchKey(分发键)

算子分发系统中用于路由算子实现的键,如 CPUCUDAAutograd

Dispatcher(分发器)

PyTorch 的算子分发系统核心,根据 DispatchKey 选择正确的算子实现。

Dtype(数据类型)

Tensor 元素的数据类型,如 float32int64bfloat16

Dynamo(TorchDynamo)

PyTorch 2.0 的图捕获引擎,通过拦截 Python 字节码动态追踪模型执行。

E

Engine(引擎)

Autograd 的反向传播引擎,负责执行 backward pass。

F

Forward(前向传播)

模型从输入到输出的计算过程。

FSDP(FullyShardedDataParallel)

全分片数据并行,一种更高效的分布式训练策略,分片模型参数、梯度和优化器状态。

FX(Torch FX)

PyTorch 的图表示和变换框架,提供 Python-level 的 IR(中间表示)。

G

Grad(梯度)

损失函数对参数的导数,通过反向传播计算得到。

GradFn(梯度函数)

计算图中每个操作对应的反向传播函数。

Graph(图)

FX 中表示计算流程的数据结构,由 Node 组成。

Guard(保护条件)

TorchDynamo 中用于验证编译图有效性的条件,如输入形状、类型检查。

H

Hook(钩子)

在特定事件发生时执行的回调函数。PyTorch 支持 Tensor hook、Module hook、Optimizer hook 等。

I

Inductor(TorchInductor)

PyTorch 2.0 的代码生成后端,将 FX 图编译为高性能的 Triton(GPU)或 C++(CPU)代码。

In-place Operation(原地操作)

直接修改 Tensor 数据而不创建副本的操作,如 add_(), relu_()

IR(Intermediate Representation)

中间表示,编译器中介于源码和机器码之间的表示形式。FX Graph 是 PyTorch 的一种 IR。

J

JIT(Just-In-Time)

即时编译,在运行时动态编译代码。torch.jit 是 PyTorch 早期的 JIT 编译器。

K

Kernel(核函数)

在 GPU 或 CPU 上执行的底层计算函数。

KV Cache(键值缓存)

在 Transformer 模型推理中缓存注意力机制的 Key 和 Value,避免重复计算。

L

Layout(布局)

Tensor 的内存布局方式,如 strided(跨步)、sparse_coo(稀疏坐标格式)。

LR Scheduler(学习率调度器)

动态调整学习率的组件,如 StepLRCosineAnnealingLR

M

Meta Tensor(元张量)

不包含实际数据,仅存储形状、类型等元信息的 Tensor,用于编译优化。

Mixed Precision(混合精度)

结合使用不同精度(如 FP16 和 FP32)进行训练,以加速计算并减少显存占用。

Module(模块)

PyTorch 中构建神经网络的基础单元,nn.Module 是所有网络层的基类。

N

Node(节点)

FX Graph 中的基本单元,表示一个操作或占位符。

O

Operator(算子)

PyTorch 中的基本计算单元,如 torch.addtorch.matmul

Optimizer(优化器)

更新模型参数的算法实现,如 SGDAdamAdamW

P

Parameter(参数)

模型中需要学习的权重,继承自 Tensor 并自动注册到 Module

R

Requires Grad(需要梯度)

标记 Tensor 是否需要计算梯度,控制 Autograd 是否追踪该 Tensor。

S

Storage(存储)

Tensor 的底层数据存储,多个 Tensor 可以共享同一个 Storage。

Stride(步长)

访问 Tensor 多维数组时,每个维度的偏移量。

Symbolic Shape(符号化形状)

用符号表示 Tensor 形状而非具体数值,支持动态形状推导。

T

Tensor(张量)

PyTorch 的核心数据结构,多维数组的抽象。

TensorImpl(张量实现)

Tensor 的底层实现类,包含 Storage、Stride、Dtype 等信息。

Tracing(追踪)

通过执行模型并记录操作序列来构建计算图的方法。

Triton

NVIDIA 开发的 Python-based GPU 编程语言,TorchInductor 用其生成 GPU kernel。

V

View(视图)

共享底层 Storage 但具有不同形状或步长的 Tensor。

缩写对照表

缩写 全称 中文
AOT Ahead-of-Time 提前编译
AMP Automatic Mixed Precision 自动混合精度
BF16 Brain Floating Point 16 16位脑浮点数
C10 Core 10 核心库
CUDA Compute Unified Device Architecture 统一计算设备架构
DAG Directed Acyclic Graph 有向无环图
DDP DistributedDataParallel 分布式数据并行
FP16/32 Floating Point 16/32 16/32位浮点数
FSDP FullyShardedDataParallel 全分片数据并行
FX Torch FX 图变换框架
IR Intermediate Representation 中间表示
JIT Just-In-Time 即时编译
LR Learning Rate 学习率
SGD Stochastic Gradient Descent 随机梯度下降

参考资源