源码构建支持AMD GPU的Python包遇hipcc报错:退出码127,ROCM路径未找到
解决AMD ROCM环境下编译lietorch/pytorch-scatter等Python包的错误
问题分析
你遇到的核心错误是参数传递方式错误:将--rocm-path嵌套在CMAKE_CXX_FLAGS中传递给hipcc,导致hipcc误将该参数解析为要执行的命令,而非编译选项。同时环境变量的路径不一致也加剧了路径识别问题。这些包本身对AMD ROCM是有支持的,问题并非来自包的支持不足。
解决步骤
1. 统一ROCM环境变量
当前你的ROCM_PATH、ROCM_HOME路径不一致,先统一为实际安装路径/opt/rocm-6.0.2,并补充必要的路径变量:
export ROCM_PATH=/opt/rocm-6.0.2 export ROCM_ROOT=/opt/rocm-6.0.2 export ROCM_HOME=/opt/rocm-6.0.2 export HIP_PATH=/opt/rocm-6.0.2/hip export HCC_HOME=/opt/rocm-6.0.2/hcc export PATH=$ROCM_PATH/bin:$PATH export LD_LIBRARY_PATH=$ROCM_PATH/lib:$LD_LIBRARY_PATH
执行后重新打开终端,或运行source ~/.bashrc(bash环境)使变量生效。
2. 修正参数传递方式
不要通过CMAKE_CXX_FLAGS传递--rocm-path,直接给hipcc指定该参数:
- 方法一:通过环境变量传递
安装前设置HIPCC_FLAGS:export HIPCC_FLAGS="--rocm-path=/opt/rocm-6.0.2" python setup.py install - 方法二:修改setup.py
找到setup.py中extra_compile_args的配置段,直接添加--rocm-path参数(不要嵌套在-DCMAKE_CXX_FLAGS内):extra_compile_args = { 'cxx': [...], 'nvcc': [ '--rocm-path=/opt/rocm-6.0.2', # 保留原有其他参数 ] }
3. 验证ROCM安装完整性
检查报错中提到的clang路径是否存在:
ls /opt/rocm-6.0.2/llvm/bin/clang
如果文件不存在,说明ROCM安装不完整,需要重新安装ROCM 6.0.2,确保勾选LLVM相关组件。
4. 尝试预编译包(针对pytorch-scatter)
pytorch-scatter提供适配ROCM的预编译包,可直接安装对应PyTorch和ROCM版本的whl包,跳过编译步骤。
内容的提问来源于stack exchange,提问作者quaqui
相关产品推荐
相关产品推荐

