登录社区云,与社区用户共同成长
邀请您加入社区
随着深度学习模型规模的不断扩大,模型训练和推理的性能优化变得越来越重要。PyTorch 2.x 引入了机制,通过即时编译技术将 Python 级别的算子图转换为高效的 NPU 内核代码,从而显著提升模型执行效率。理解的整体工作流程,对于开发者优化模型性能、排查性能瓶颈具有重要意义。本文以一个简单的张量运算示例为切入点,详细剖析从 FX 图生成到最终 Inductor IR 产出的完整流程,重点介绍
TorchDynamo 是 PyTorch 2.x 中负责将 Python 字节码转换为计算图的核心组件。其设计目标是在不修改用户代码的前提下,通过符号执行的方式捕获模型计算图,进而交由后端编译器进行优化。理解 TorchDynamo 的虚拟机(VM)执行机制,对于深入掌握 PyTorch 编译优化原理、排查图捕获问题以及进行二次开发都至关重要。
*语言识别机制**:原生通过**文件后缀**识别源语言,通过 `_write_ninja_file` 里**硬编码的编译器变量**(`$cxx`/`$nvcc`/`$sycl`)和**硬编码的编译规则**(`compile`/`cuda_compile`/`sycl_compile`)路由编译。| 注册 `.asc` 到 `src_extensions` | NPU 适配层(`_LazyBuild
随着大模型训练对计算效率和显存利用率的要求不断提高,PyTorch 的 torch.compile 机制成为优化模型执行的关键技术。DeepSeek V4 作为新一代大规模语言模型,在 Ascend NPU 上进行训练时,需要适配 torch_npu 的 DVM(Dynamic Vector Machine)编译后端,以充分发挥硬件性能。本文记录了在适配过程中遇到的一系列问题、分析思路及解决方案,
先采集、再定界;先 device、后 host;先微基准、后端到端;每项 env 门控、逐项验证、负结果入档。这套纪律让性能优化从「凭经验试」变成了可测量、可复现、可回退的工程流程——这正是科研模型最需要的。
在 PyTorch 的优化路径中,图捕获(Graph Capture)是实现性能提升的关键环节。当前 PyTorch 社区对图捕获的实现主要围绕 CUDA 设备展开,但随着 NPU 等其他加速器的接入需求日益增长,我们需要设计一套可扩展的图捕获架构,使得不同硬件后端能够以统一的方式接入这一优化路径。本文介绍的是“使用契约、但不迁移 CUDA”的实现变体。该方案的核心思路是:NPU 及其他已注册后端
随着大模型训练场景的多样化发展,模型需要在不同硬件平台上保持一致的训练精度。本工作旨在将 GLM-5.2 模型结构接入 MindFormers PyNative 框架,并以 GPU 上的 Megatron-LM 为参考基准,验证 Ascend NPU 与 NVIDIA GPU 在单卡训练场景下的精度一致性。通过系统化的对齐流程,确保模型在不同硬件平台上的训练行为可复现、可预期,为后续多卡扩展和实际
在大型语言模型(LLM)的训练与推理实践中,框架生态的兼容性是一个关键挑战。在无 MindSpore 环境的情况下,实现单卡 PyNative(动态图)模式的预训练闭环。目标平台为 Ascend NPU(通过torch_npu),同时需向下兼容 CUDA 和 CPU。本次单卡改造必须为后续平滑放大到多卡并行训练铺平道路,避免未来大规模重构。因此,所有设计决策都以“单卡即多卡 world_size=
在 PyTorch 框架中,是一个通过和 Triton 生成代码来运行的内部接口,用于实现灵活的注意力机制。NPU 环境下该接口在部分场景下存在兼容性问题。本文记录了在 NPU 环境下适配接口的完整过程,包括问题定位、解决方案及最终结论。本文详细记录了在 NPU 环境下适配 PyTorch设备类型检查的绕过与补丁triton 依赖的安装与版本适配设备属性检查的兼容性修改模块路径变更的适配编译优化阶
**同步很关键** | 不同步到 site-packages,实际运行仍会加载旧逻辑,表现为报错仍在 `torch.distributed._state_dict_utils` 的 `cudaHostRegister` 行 || **直接原因** | 对 `None` 对象调用 `cudaHostRegister(...)` / `cudaHostUnregister(...)` 导致 `Attr
在 Ascend NPU 环境下运行 PyTorch 模型时,需要正确配置 PyTorch、torch_npu 插件以及 CANN 基础软件栈。由于各组件之间存在严格的版本依赖关系,配置过程若操作不当,容易导致运行时错误。本文旨在提供一套清晰、可复现的配置流程,帮助开发者快速搭建或定制开发环境。快速二进制包安装(适用于日常开发和快速部署)和源码编译安装(适用于源码级问题定位与功能增强)。
在多机分布式训练场景中,通信域的建立是模型训练启动的关键步骤。近期在模型拉起过程中,遇到了通信域建链耗时异常的问题,表现为建链时间远超预期,严重影响了训练任务的启动效率。本文记录了该问题的现象、排查过程及最终解决方案,供相关开发者参考。本文针对多机分布式训练中通信域建链超时的问题,从现象、官方修复、根因分析到解决方案进行了完整梳理。核心问题在于DNS配置错误导致接口反复重试,进而引发建链耗时异常。
在深度学习分布式训练场景中,多线程多流并发下发算子是提升训练效率的常见手段。然而,当多个线程在不同设备(卡)上并发执行计算与通信任务时,由于各线程执行速度不一致,算子下发顺序可能出现交叉,进而引发PTA TaskQueue卡死或HCCL通信算子卡死等问题。本文基于实际开发中遇到的问题,详细分析该现象的根因,并给出有效的解决方案与最佳实践。保序原则:在多线程多流并发下发算子的场景中,务必保证算子下发
昇思 Web 与 API 推理云托管模型服务,是深度学习模型从实验室走向生产环境的核心环节,也是鲲鹏国产化算力平台实现 AI 业务规模化的关键支撑。依托 FastAPI 轻量化框架与昇思全场景推理能力,开发者可快速将 AI 模型封装为标准化云服务,实现跨平台、跨系统、跨设备的远程调用。服务原生适配鲲鹏 ARMv8 架构,无需指令集迁移、无需依赖改造,具备高性能、低延迟、高稳定、易部署等优势。