v8.4.111 - Add Huawei Ascend NPU training support (#25500)
Ultralytics 8.4.111 版本新增华为昇腾 NPU 训练支持,支持单卡和多卡训练与验证,通过 torch_npu 实现,多卡训练使用华为 HCCL 分布式后端。设备行为现在从所选 PyTorch 设备派生,而非硬编码为 CUDA,提升了与华为昇腾、英特尔 XPU、AMD ROCm 的兼容性。分布式训练后端选择:NVIDIA 用 NCCL,昇腾用 HCCL,英特尔用 XCCL。文档新增昇腾从训练到 .om 导出和部署的流程,以及 AMD ROCm 集成指南。
Development
- First Reportv8.4.111 - Add Huawei Ascend NPU training support (#25500)Ultralytics
- Current AssessmentUltralytics 作为流行的 YOLO 实现,支持昇腾 NPU 表明 AI 训练硬件生态正在多元化,不再局限于 NVIDIA。华为昇腾在 AI 训练市场的地位得到增强,可能吸引更多开发者使用昇腾平台。这也反映了中国在 AI 硬件自主可控方面的努力,可能对全球 AI 基础设施格局产生影响。Agent Pulse · analysis
Ultralytics 8.4.111 版本扩展了硬件支持,新增华为昇腾 NPU 训练支持,包括单卡和多卡训练与验证,通过 torch_npu 实现,多卡训练使用华为 HCCL 分布式后端。设备行为现在从所选 PyTorch 设备派生,而非硬编码为 CUDA,提升了与华为昇腾、英特尔 XPU、AMD ROCm 的兼容性。分布式训练后端选择:NVIDIA 用 NCCL,昇腾用 HCCL,英特尔用 XCCL。文档新增昇腾从训练到 .om 导出和部署的流程,以及 AMD ROCm 集成指南。
该版本将设备处理从硬编码 CUDA 改为基于 PyTorch 设备派生,这降低了添加新硬件加速器的门槛。对于昇腾 NPU,通过 torch_npu 支持标准训练特性,如 AMP、检查点、恢复、AutoBatch、性能分析、内存管理和验证。多卡训练使用 HCCL 后端,表明华为在分布式训练方面有成熟的通信库。这一变化可能使 Ultralytics 能够更轻松地支持未来硬件,并可能影响其他依赖 CUDA 硬编码的库。
Ultralytics 作为流行的 YOLO 实现,支持昇腾 NPU 表明 AI 训练硬件生态正在多元化,不再局限于 NVIDIA。华为昇腾在 AI 训练市场的地位得到增强,可能吸引更多开发者使用昇腾平台。这也反映了中国在 AI 硬件自主可控方面的努力,可能对全球 AI 基础设施格局产生影响。
对于使用华为昇腾 NPU 的企业,该版本降低了在昇腾上训练 YOLO 模型的成本,无需额外适配。Ultralytics 通过支持更多硬件,扩大了其用户基础,增强了在 AI 训练框架市场的竞争力。华为昇腾生态的完善可能吸引更多企业采用昇腾解决方案,推动昇腾的商业化。
未来,Ultralytics 可能会继续扩展对其他硬件加速器的支持,如 AMD ROCm 和英特尔 XPU 的更多功能。昇腾 NPU 的支持可能会推动更多模型和框架适配昇腾,促进昇腾生态的成熟。随着硬件多样性的增加,开发者可能需要考虑跨平台兼容性,而 PyTorch 的统一设备接口可能成为标准。