Skip to content

About

本仓库基于上游 PyTorch 开展二次开发,用于适配和维护 PyTorch 在 HCU 环境下的编译、测试及 CI 流程,涵盖源码构建、依赖配置和全量单测等内容。仓库主要用于保障 PyTorch 在平台上的稳定集成与交付,并持续处理版本兼容性和测试问题。

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

103,916 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PyTorch for Hygon

开源声明

本仓库基于官方 PyTorch 项目,包含海光(Hygon)维护的定制修改。

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 简介

PyTorch 是一个基于 Python 的开源机器学习框架,以其强大的 GPU 加速张量计算能力和动态计算图技术,在深度学习领域占据重要地位。它广泛应用于计算机视觉、自然语言处理等人工智能关键领域。PyTorch 之所以备受青睐,得益于其易用性、灵活性和高效性,尤其适合快速原型开发、学术研究以及生产环境中的深度学习任务。

本软件栈中的 PyTorch 版本,不仅保证了 PyTorch 核心功能在 HCU 加速卡上的可用性,还针对 HCU 特有的硬件架构进行了深度定制优化。这使得开发者能够以极低的成本,轻松实现应用程序在 HCU 加速卡上的快速迁移和性能提升。

版本约束

  1. 暂不支持的官方版本或功能

    更高版本:当前仓库开源 PyTorch 2.12.0 版本,更高版本将在后续陆续开源,敬请期待。

  2. PyTorch 软件版本配套关系

    PyTorch 版本 HCU 适配版 PyTorch 软件包版本 HCU 加速卡型号 DTK 版本
    2.12.0 2.12.0+das.opt1.dtk2604 K100_AI、bw1000 等 26.04

前置条件

使用本 PyTorch 前,请前往开发者平台查看相关资料,并在主机系统安装以下组件:

  • HCU 驱动程序
  • DTK
  • Docker 引擎

使用命令安装 PyTorch

工具安装使用 pip 方式,从光源社区 - DAS中下载此工具的安装包。注意与 Python 版本匹配。

pip3 install torch-xxx.whl

验证

安装完成之后,可通过以下指令验证是否安装成功,指令执行后会显示当前 PyTorch 的版本号。

python -c "import torch; print(torch.__version__)"

从源码编译(HCU/DTK)

环境要求

  • 编译镜像:Rocky Linux 8(CentOS 8)及以上,自带 GCC 工具链,无需额外激活
  • Python 3.10(脚本默认 PYTHON_VERSION=3.10.12)
  • DTK 26.04(运行脚本前安装到 /opt/dtk,或通过 DTK_ROOT 指定安装目录)
  • 编译机需可访问代码仓库(Git 服务)与三方库下载服务器

编译步骤

  1. 拉取源码并进入仓库根目录(仓库地址与分支请以实际发布为准):

    git clone -b <分支名> <仓库地址>
    cd pytorch
  2. 确认 DTK 已安装:

    test -f /opt/dtk/env.sh

    如 DTK 安装在其他目录,请设置 DTK_ROOT。

  3. 执行编译脚本(脚本会自动完成:拉取/切换分支、加载已安装的 DTK、初始化三方库子模块并应用补丁、安装 Python 依赖、hipify 转码、setup.py 编译与 wheel 出包):

    bash scripts/build_hcu.sh

    如需跳过 MAGMA(USE_MAGMA=0,不下载、不链接 MAGMA):

    bash scripts/build_hcu.sh --no-magma
  4. 如需生成 manylinux wheel,编译完成后单独执行:

    bash scripts/build_hcu_manylinux.sh
  5. 编译产物:

    • wheel 包:dist/torch-*.whl
    • manylinux wheel:默认输出到 PYTORCH_ROOT,可通过 MANYLINUX_OUTPUT_DIR 指定目录
  6. 安装并验证:

    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 的更多信息,请参见:

参考链接

About

本仓库基于上游 PyTorch 开展二次开发,用于适配和维护 PyTorch 在 HCU 环境下的编译、测试及 CI 流程,涵盖源码构建、依赖配置和全量单测等内容。仓库主要用于保障 PyTorch 在平台上的稳定集成与交付,并持续处理版本兼容性和测试问题。

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages