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

RX7600XT执行AMD Torchtune训练报HIP invalid device function错误求助

解决RX7600XT(gfx1102)运行Torchtune分布式训练的HIP错误问题

1. 修正Docker容器内的ROCm编译参数

你之前本地编译PyTorch的操作无法影响Docker容器内的独立环境,而AMD官方Torchtune镜像默认只包含官方兼容GPU的预编译内核。需要在容器层面指定架构参数:

  • 运行容器时直接传递环境变量:
    docker run -it --rm --device=/dev/kfd --device=/dev/dri --group-add video --ipc=host --cap-add=SYS_PTRACE --security-opt seccomp=unconfined -e PYTORCH_ROCM_ARCH=gfx1102 -e HSA_OVERRIDE_GFX_VERSION=11.0.2 <你的Torchtune镜像名>
    
  • 或者重新构建自定义镜像,确保内核编译时适配gfx1102:
    FROM amd/pytorch:rocm6.0_ubuntu22.04_py3.10_pytorch_2.2.0
    ENV PYTORCH_ROCM_ARCH=gfx1102
    ENV HSA_OVERRIDE_GFX_VERSION=11.0.2
    RUN pip install --upgrade pip && pip install torchtune
    

2. 调整训练配置与启动参数

HIP error: invalid device function多因内核未适配当前GPU架构导致,可通过以下方式规避:

  • 修改my_custom_config_distributed.yaml,禁用高要求精度并明确设备类型:
    device: "hip"
    mixed_precision: "fp16" # 避免使用FP8等仅官方GPU支持的精度模式
    per_device_train_batch_size: 1 # 降低单卡batch size,同时缓解OOM风险
    init_method: "tcp://localhost:23456"
    
  • 启动训练前强制设置环境变量,绕过官方兼容检查:
    export HSA_OVERRIDE_GFX_VERSION=11.0.2
    export PYTORCH_ROCM_ARCH=gfx1102
    export HIP_VISIBLE_DEVICES=0,1
    tune run --nproc_per_node 2 full_finetune_distributed --config /workspace/notebooks/my_custom_config_distributed.yaml
    

3. 先验证单GPU训练可行性

分布式训练的复杂度会放大环境问题,先从单GPU运行确认基础环境正常:

export HSA_OVERRIDE_GFX_VERSION=11.0.2
export PYTORCH_ROCM_ARCH=gfx1102
tune run full_finetune_single_device --config /workspace/notebooks/my_custom_config.yaml

如果单GPU能正常运行,再逐步扩展到分布式,同时调整batch size避免OOM。

4. 验证容器内ROCm环境正确性

进入容器后执行以下命令,确认GPU被正确识别:

rocminfo | grep gfx
python -c "import torch; print(torch.cuda.is_available()); print(torch.cuda.device_count()); print(torch.cuda.get_device_name(0))"

输出需显示gfx1102且PyTorch能正常识别GPU,否则说明环境变量未生效,需检查容器启动参数或镜像构建逻辑。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 12:30:01