本文汇总 HyperAcc 训练加速套件使用过程中的常见问题,涵盖安装、能力启用、训练加速、系统优化、硬件算子、自动编译、DataLoader 及日志等方面,提供排查思路与解决方案。
安装相关
安装 wheel 包失败怎么办?
请按以下顺序检查:
1. 确认 wheel 包文件完整,文件名通常为
hyperacc-*.whl。2. 确认 Python 版本为 3.8 及以上,并与 wheel 包匹配。
python --version#确认Python 版本
3. 确认当前环境已安装 PyTorch 2.0 及以上版本和训练任务所需依赖。
4. 使用绝对路径重新安装:
pip install /path/to/hyperacc-*.whl# path是wheel包所放置的路径
如何确认 HyperAcc 已安装成功?
执行以下命令:
python -c "import hyperacc.auto; print('hyperacc auto import ok')"
如果命令正常输出,说明 Python 包可被当前环境导入。
为什么 import hyperacc.auto 后没有启用能力?
这是预期行为。未设置环境变量时,
import hyperacc.auto 默认不做任何操作。如需启用能力,请先设置对应环境变量,再导入 hyperacc.auto:import hyperacc.auto
启用相关
如何一键启用全部能力?
export HA_USE_ALL=1python train.py
并确保训练入口中已导入:
import hyperacc.auto
如何只启用某一项能力?
设置单项环境变量即可,例如:
export HA_USE_COMPILE=1export HA_USE_GC=1python train.py
单项开关优先级高于总开关。
环境变量优先级是什么?
优先级从高到低依次为:
HA_USE_<FEATURE> > HA_USE_ALL_HOOKS > HA_USE_ALL > 默认关闭例如,设置
HA_USE_ALL=1 后,再设置 HA_USE_COMPILE=0,可单独关闭自动编译能力。为什么启用了环境变量仍未生效?
请逐项排查:
环境变量是否在启动训练进程前设置。
训练入口 Python 脚本是否导入了
hyperacc.auto。import hyperacc.auto 是否位于 torch、训练框架、模型和 DataLoader 相关导入之前(from __future__ 等必须位于文件开头的语句除外)。当前硬件平台是否支持对应能力。
日志级别是否过低,可尝试设置
HA_LOG_LEVEL=DEBUG 获取更多信息。训练加速相关
HyperAcc 会保证所有任务都有固定性能提升吗?
不会。优化效果受模型结构、数据加载瓶颈、硬件平台、PyTorch 版本及训练配置多重因素影响,建议结合自身业务任务开展实测验证。
是否需要改造训练框架?
不需要。推荐方式是通过环境变量启用所需能力,并在训练入口 Python 脚本开头导入
hyperacc.auto。能否在生产任务中直接启用 HA_USE_ALL=1?
可以用于快速验证,但生产任务建议先按单项能力逐步启用,确认训练正确性和稳定性后再组合启用。
系统优化相关
CPU/NUMA 绑核依赖哪些信息?
HyperAcc 会根据
LOCAL_RANK、LOCAL_WORLD_SIZE、CUDA_VISIBLE_DEVICES 或 HIP_VISIBLE_DEVICES 等环境变量,结合 GPU 与 NUMA 拓扑进行绑定。LOCAL_WORLD_SIZE 未设置时能否使用 NUMA 绑核?
可以。单卡直接运行时,HyperAcc 可按单卡场景处理,将进程绑定到 GPU 所在 NUMA 节点的 CPU。
透明大页为什么没有生效?
透明大页配置需要写入 Linux 系统配置,通常需要 root 或管理员预配置权限。权限不足时,对应能力可能无法完成配置。
/sys/kernel/mm/transparent_hugepage/enabled: Permission denied# 权限不足时的展示
GC 优化应该选择什么模式?
建议默认使用:
export HA_USE_GC=1export HA_GC_MODE=reduce_frequency
disable 模式会完全关闭 GC,建议仅在充分验证并监控内存使用后使用。NVIDIA/ DCU 相关
NVIDIA 和 DCU 支持的能力是否相同?
不完全相同。部分算子能力仅适用于 NVIDIA GPU,部分能力仅适用于 DCU。
如何启用 NVIDIA 相关算子能力?
算子能力是通过环境变量进行启用。
示例:
export HA_USE_VOXEL=1export HA_USE_DEFORM_AGG=1export HA_USE_RASTERIZER=1export HA_USE_SYNCBN=1python train.py
如何启用 DCU 相关算子能力?
示例:
export HA_USE_DEFORM_ATTN=1export HA_USE_DROPOUT=1export HA_USE_FOCAL_LOSS=1export HA_USE_RMSNORM=1export HA_USE_ROPE=1python train.py
torch.compile 相关
启用自动编译后首次启动变慢是否正常?
是正常现象。
torch.compile 可能在首次运行时产生编译开销,后续运行性能表现需结合具体任务评估。自动编译失败怎么办?
可先降低配置复杂度:
export HA_USE_COMPILE=1export HA_COMPILE_MODE=defaultexport HA_COMPILE_FULLGRAPH=falseexport HA_COMPILE_EXPLAIN=1export HA_LOG_LEVEL=INFOpython train.py
如果仍有问题,建议先关闭自动编译,确认其他能力是否正常:
export HA_USE_COMPILE=0python train.py
HA_COMPILE_MODE 应该如何选择?
模式 | 说明 |
default | 默认模式,平衡编译速度和性能。 |
reduce-overhead | 降低运行时开销,适合部分推理或小 batch 场景。 |
max-autotune | 更激进的优化策略,可能带来更长编译时间。 |
DataLoader 相关
HA_DATALOADER_WORKERS 应该设置多少?
可从默认值 16 开始,根据 CPU 核数、数据预处理开销和内存情况调整。过大的 worker 数可能造成 CPU 或内存压力。
什么时候设置 HA_DATALOADER_NO_PIN_MEMORY=1?
当容器共享内存不足、出现锁页内存相关报错,或
pin_memory 在当前环境中表现不稳定时,可尝试关闭。日志相关
查看日志
#查看更多的日志export HA_LOG_LEVEL=DEBUGexport HA_HOOKS_SILENT=0python train.py#查看更少的日志export HA_LOG_LEVEL=WARNINGexport HA_HOOKS_SILENT=1python train.py
问题定位建议
在问题定位时,建议提供以下信息:
HyperAcc 安装包版本。
Python 和 PyTorch 版本。
硬件平台。
已设置的
HA_* 环境变量。训练启动命令和关键日志。