You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu22.04+ROCm5.7环境下import torch触发非法指令(core dumped)求助

问题描述

在Ubuntu 22.04系统中,按ROCm官方文档步骤通过预安装PyTorch的Docker镜像部署环境,操作如下:

  • 拉取镜像:~$ docker pull rocm/pytorch:latest
  • 启动容器:~$ docker run -it --cap-add=SYS_PTRACE --security-opt seccomp=unconfined --device=/dev/kfd --device=/dev/dri --group-add video --ipc=host --shm-size 8G rocm/pytorch:latest

运行测试命令时出现错误:

~$ python3 -c 'import torch' 2> /dev/null && echo 'Success' || echo 'Failure'

错误信息:illegal instruction (core dumped)

已完成的排查:

  • 通过rocminfo检测到ROCk模块加载正常
  • GPU为Radeon RX Vega(gfx900)
  • 通过dpkg --list | grep amdgpu确认amdgpu驱动已安装

问题排查与解决

核心原因

你的Radeon RX Vega属于gfx900架构,而rocm/pytorch:latest镜像默认编译时启用了你的CPU不支持的指令集(比如AVX2、AVX-512),导致导入PyTorch时触发非法指令错误。

解决步骤

  1. 更换兼容的ROCm版本镜像
    放弃latest标签,选择适配gfx900且兼容旧CPU的稳定版本,比如ROCm 5.6.x版本:

    docker pull rocm/pytorch:rocm5.6_ubuntu22.04_py3.10_pytorch_2.0.1
    

    启动容器时替换镜像标签,其余参数保持不变:

    docker run -it --cap-add=SYS_PTRACE --security-opt seccomp=unconfined --device=/dev/kfd --device=/dev/dri --group-add video --ipc=host --shm-size 8G rocm/pytorch:rocm5.6_ubuntu22.04_py3.10_pytorch_2.0.1
    
  2. 验证修复效果
    进入容器后重新运行测试命令:

    python3 -c 'import torch' 2> /dev/null && echo 'Success' || echo 'Failure'
    
  3. 确认GPU识别情况
    进一步验证PyTorch能否正常调用AMD GPU:

    python3 -c "import torch; print(torch.cuda.is_available()); print(torch.cuda.device_count()); print(torch.cuda.get_device_name(0))"
    

补充提示

  • gfx900架构在ROCm 5.7及以上版本仍受支持,但部分新版本镜像的编译优化会默认启用高端CPU指令集,旧CPU无法兼容,所以选择稍旧的稳定版本更稳妥。
  • 若想确认自身CPU支持的指令集,可在宿主机执行cat /proc/cpuinfo | grep flags,查看输出中是否包含avx2等标识;如果没有,必须选择未强制启用这些指令集的镜像。

内容的提问来源于stack exchange,提问作者busman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 06:42:26