torch.compile 支持【免费下载链接】torchtitan-npuAscend Extension for torchtitan项目地址: https://gitcode.com/cann/torchtitan-nputorch.compile 是 PyTorch 2.0 的核心特性。通过 JIT 即时编译将 PyTorch 代码转化为高度优化的融合算子在几乎不改动原有代码的前提下显著提升性能。作为 PyTorch 原生的分布式训练框架torchtitan 的一大优势便是可以便捷、充分地发挥 torch.compile 的性能收益。在此基础上torchtitan_npu 结合 CANN 生态的编译能力在 NPU 平台上的分布式训练任务中为 torch.compile 提供支持。NPU 上的 torch.compile在 torch.compile 的工作流程中PyTorch 代码依次经过 Dynamo 成图 Inductor 图编译优化、Codegen生成在硬件 runtime 上执行的优化 DSL 代码。为了在 NPU 平台上充分利用torch.compile原生的编译能力torchtitan_npu在保留 Dynamo 与 Inductor 既有编译流程的基础上接入了 Codegen 后端inductor-npu-ext。该后端借助 AutoFuse 的自动融合能力从 Inductor IR 生成 AscendC 融合 Kernel。torch.compile 示例inductor_npu_ext 需要从源码安装。在运行环境内执行以下命令git clone https://gitcode.com/Ascend/torchair.git cd torchair/experimental/_inductor_npu_ext/ pip3 install -e ./python/ cd -在训练任务的 TOML 配置文件例如torchtitan_npu/models/deepseek_v3/train_configs/deepseek_v3_671b_debug.toml或实际启动训练时--job.config_file所指向的 TOML 配置文件中找到对应的[compile]节添加以下配置以完整编译模型[compile] # 启用编译 enable true # 编译完整模型而不是只编译 loss 。 components [model, loss]启动训练任务前设置以下环境变量export TORCHINDUCTOR_SIZE_ASSERTS0 bash run_train.sh支持范围torchtitan-npu 当前支持 DeepSeek-V3 模型的全流程编译。 其他模型的 Codegen 处于待调试状态启用 torch.compile时需要引入补丁npu_bypass_triton_codegen以跳过 Codegen 流程[model] converters [..., npu_bypass_triton_codegen]注意事项⚠️修改模型结构后需要清理缓存重新 compiletorch.compile 会缓存编译结果。当模型结构发生变化如修改代码、切换分支、更新算子实现等后旧的缓存可能导致编译失败或运行异常。请执行以下命令清理缓存rm -rf /root/.cache rm -rf /tmp/* rm -rf ./torchinductor_root rm -rf ./torch_compile_debug rm -rf .npu_kernels_root【免费下载链接】torchtitan-npuAscend Extension for torchtitan项目地址: https://gitcode.com/cann/torchtitan-npu创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考