本仓库基于官方 PyTorch 项目,包含海光(Hygon)维护的定制修改。
- 上游项目:PyTorch
- 上游 Tag:v2.12.0
- 上游 Commit:0d62256a2b23365f8e1604297eb23a6545102aa8
- 上游源码:https://github.com/pytorch/pytorch
- 上游文档:https://pytorch.org/docs/stable/
- 上游 README 保留在本仓库:README_ORIGIN.md
- 许可证:BSD-3-Clause
README_ORIGIN.md 作为上游参考副本保留,用于对照与审查。其内容保持上游原文不变,不代表本仓库对外发布的说明。
官方 PyTorch 的版权、许可条款与免责声明保留在 LICENSE 中,第三方声明见 THIRD_PARTY_NOTICES.md。
Modified by Hygon Information Technology Co., Ltd. Copyright (c) 2026 Hygon Information Technology Co., Ltd.
本仓库中 Hygon 的修改旨在使 PyTorch 适配海光软件与硬件环境,包括但不限于 HCU 后端集成、构建与打包调整、算子与内核适配,以及相关文档和元数据更新。
除源码文件或第三方声明中另有说明外,源自上游 PyTorch 的文件仍受上游 PyTorch 许可条款约束。
PyTorch 是一个基于 Python 的开源机器学习框架,以其强大的 GPU 加速张量计算能力和动态计算图技术,在深度学习领域占据重要地位。它广泛应用于计算机视觉、自然语言处理等人工智能关键领域。PyTorch 之所以备受青睐,得益于其易用性、灵活性和高效性,尤其适合快速原型开发、学术研究以及生产环境中的深度学习任务。
本软件栈中的 PyTorch 版本,不仅保证了 PyTorch 核心功能在 HCU 加速卡上的可用性,还针对 HCU 特有的硬件架构进行了深度定制优化。这使得开发者能够以极低的成本,轻松实现应用程序在 HCU 加速卡上的快速迁移和性能提升。
-
暂不支持的官方版本或功能
更高版本:当前仓库开源 PyTorch 2.12.0 版本,更高版本将在后续陆续开源,敬请期待。
-
PyTorch 软件版本配套关系
PyTorch 版本 HCU 适配版 PyTorch 软件包版本 HCU 加速卡型号 DTK 版本 2.12.0 2.12.0+das.opt1.dtk2604 K100_AI、bw1000 等 26.04
使用本 PyTorch 前,请前往开发者平台查看相关资料,并在主机系统安装以下组件:
- HCU 驱动程序
- DTK
- Docker 引擎
工具安装使用 pip 方式,从光源社区 - DAS中下载此工具的安装包。注意与 Python 版本匹配。
pip3 install torch-xxx.whl
安装完成之后,可通过以下指令验证是否安装成功,指令执行后会显示当前 PyTorch 的版本号。
python -c "import torch; print(torch.__version__)"
- 编译镜像:Rocky Linux 8(CentOS 8)及以上,自带 GCC 工具链,无需额外激活
- Python 3.10(脚本默认
PYTHON_VERSION=3.10.12) - DTK 26.04(运行脚本前安装到
/opt/dtk,或通过DTK_ROOT指定安装目录) - 编译机需可访问代码仓库(Git 服务)与三方库下载服务器
-
拉取源码并进入仓库根目录(仓库地址与分支请以实际发布为准):
git clone -b <分支名> <仓库地址> cd pytorch
-
确认 DTK 已安装:
test -f /opt/dtk/env.sh如 DTK 安装在其他目录,请设置
DTK_ROOT。 -
执行编译脚本(脚本会自动完成:拉取/切换分支、加载已安装的 DTK、初始化三方库子模块并应用补丁、安装 Python 依赖、hipify 转码、
setup.py编译与 wheel 出包):bash scripts/build_hcu.sh
如需跳过 MAGMA(
USE_MAGMA=0,不下载、不链接 MAGMA):bash scripts/build_hcu.sh --no-magma
-
如需生成 manylinux wheel,编译完成后单独执行:
bash scripts/build_hcu_manylinux.sh
-
编译产物:
- wheel 包:
dist/torch-*.whl - manylinux wheel:默认输出到
PYTORCH_ROOT,可通过MANYLINUX_OUTPUT_DIR指定目录
- wheel 包:
-
安装并验证:
pip3 install dist/torch-*.whl python -c "import torch; print(torch.__version__)"
编译脚本 scripts/build_hcu.sh 中的关键参数均在脚本开头变量区配置,便于每次编译前确认修改:
| 参数 | 说明 | 默认值 |
|---|---|---|
PYTORCH_REPO_URL |
PyTorch 代码仓库地址 | 由使用者指定 |
PYTORCH_BRANCH |
编译分支 | 由使用者指定 |
DTK_ROOT |
已安装的 DTK 目录 | /opt/dtk |
MAGMA_URL |
MAGMA 库下载地址(--no-magma 时忽略) |
由使用者指定 |
AMDGPU_TARGETS |
编译目标算力架构 | gfx906;gfx926;gfx928;gfx936;gfx938 |
manylinux 脚本 scripts/build_hcu_manylinux.sh 使用以下参数:
| 参数 | 说明 | 默认值 |
|---|---|---|
PYTORCH_ROOT |
已完成编译的 PyTorch 源码目录 | /workspace/pytorch |
DTK_ROOT |
已安装的 DTK 目录 | /opt/dtk |
MANYLINUX_OUTPUT_DIR |
manylinux wheel 输出目录 | PYTORCH_ROOT |
三方库与上游 PyTorch 保持一致,以 Git 子模块方式管理。编译脚本会自动执行:
git submodule update --init --recursive
bash tools/third_party/apply_patches.sh各三方库的许可证见其对应仓库。
有关 PyTorch 的更多信息,请参见: