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

在Radeon VII上用ROCm运行Disco Diffusion(PyTorch)时遇GPU内存访问故障

解决Radeon VII + ROCm环境下Disco Diffusion(PyTorch)的GPU内存访问故障

以下是针对你遇到的Memory access fault by GPU node-4... Reason: Page not present or supervisor privilege错误的可行修复方案:

  • 锁定兼容的ROCm版本
    Radeon VII作为较早的ROCm支持显卡,在ROCm 5.x及以上版本中存在兼容性退化问题。建议降级到ROCm 4.5.2或4.6版本:

    1. 卸载现有ROCm组件:sudo apt purge rocm*
    2. 安装指定版本的ROCm(确保系统内核版本匹配,推荐使用Linux 5.10或5.15)
  • 调整PyTorch内存配置
    禁用PyTorch的内存预分配机制,避免内存地址越界:

    • 在Disco Diffusion代码开头添加:
      import torch
      torch.cuda.set_per_process_memory_fraction(0.9, device=0)
      torch.cuda.empty_cache()
      
    • 或者在启动脚本前设置环境变量:export PYTORCH_NO_CUDA_MEMORY_CACHING=1
  • 降低生成参数负载
    从根源减少GPU内存占用,避免内存访问错误:

    • 降低输出图像分辨率,比如将width和height从1024调整为768或512
    • 减少单轮生成步数(steps参数),或降低batch size
    • 关闭不必要的模型组件,比如禁用CLIP的额外上下文分支
  • 修复内存页权限问题
    针对错误提示的“Page not present”问题,尝试以下操作:

    • 启用透明大页:echo always | sudo tee /sys/kernel/mm/transparent_hugepage/enabled
    • 禁用ROCm的SDMA功能:export HSA_ENABLE_SDMA=0,再重新运行Disco Diffusion
  • 验证PyTorch与ROCm的绑定状态
    运行以下命令确认PyTorch正确识别ROCm环境:

    python -c "import torch; print(torch.cuda.is_available()); print(torch.version.hip)"
    

    若输出True和对应ROCm版本号则正常;否则重新安装与ROCm版本匹配的PyTorch包。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 05:15:38