PyTorch 深度实践(06):C++ 扩展与自定义算子
C++ Extensions and Custom Operators in PyTorch
上一篇把算子系统拆成两个维度:开发者在构建时定义 → 注册 → 实现,用户在运行时入口 → 分发 → 执行,两者通过 Operator Table 交汇。那一篇站在使用者的角度观察原生算子 add。
这一篇换到开发者的位置:自己写一个算子,把它接入 PyTorch 的算子系统1 。
这是从“阅读框架”走向“扩展框架”的关键一步。AI-Infra 工作中大量的实际需求都落在这里:一个融合 Kernel、一个新硬件的后端适配、一个推理引擎的定制算子,最终都要经过同样的路径。
本文用一个刻意简单的算子贯穿全文:scale_shift(x, alpha, beta) = alpha * x + beta。它简单到不会分散注意力,又足够涉及 Tensor 元数据、dty...