EI-142: AMD 官宣 Day-0 支持 ERNIE-Image:Instinct MI355X 与 Radeon AI PRO R9700 完全部署指南

Jul 20, 2026

EI-142: AMD 官宣 Day-0 支持 ERNIE-Image:Instinct MI355X 与 Radeon AI PRO R9700 完全部署指南

日期:2026-07-20
目标平台:ernie-image.app
分类:AI Technology


从 Stable Diffusion 时代起,文生图模型的 GPU 选择就几乎等于 NVIDIA。CUDA、cuDNN、TensorRT——这些技术栈把 NVIDIA 变成了 AI 绘画的事实标准。如果你没有一张 NVIDIA 显卡,体验往往就是"能跑,但慢"或者"根本跑不了"。

2026 年 4 月 23 日,AMD 官方发布了一篇技术文章,正式宣布 Baidu ERNIE-Image 在 AMD Instinct MI355X(数据中心级)和 AMD Radeon AI PRO R9700(专业工作站级)两款 GPU 上完成 Day-0 支持验证。更令人意外的是结论:零修改核心推理代码——使用 HuggingFace Diffusers 和 ROCm 软件栈,ERNIE-Image 直接在 AMD GPU 上运行,无需任何 CUDA 到 HIP 的手动移植。

这对中国市场尤为重要:NVIDIA GPU 供应紧张、价格高昂,而 AMD GPU 在服务器端(Instinct 系列)和消费端(Radeon 系列)都有大量存量用户。ERNIE-Image 作为百度开源的 8B 参数文生图模型,也是第一个获得 AMD 官方 Day-0 支持的中国开源文生图模型。

本文基于 AMD 官方技术文章,详细解读 MI355X 和 R9700 上的 ERNIE-Image 部署流程、内存优化策略、性能表现,以及从 CUDA 迁移到 ROCm 的关键注意事项。

硬件与模型概览

ERNIE-Image 模型组成

在开始部署之前,先理解 ERNIE-Image 的组件构成。这是一个基于 Diffusion Transformer (DiT) 的单流架构,包含四个核心模块:

组件 类型 大小 作用
Transformer ErnieImageTransformer2DModel 15 GB Diffusion 骨干网络
Text Encoder Mistral3Model 7.2 GB 文本编码
Prompt Enhancer (PE) Ministral3ForCausalLM 7.2 GB 自动提示词扩展
VAE AutoencoderKLFlux2 161 MB 变分自编码器
Scheduler FlowMatchEulerDiscreteScheduler — 采样调度器
总计 ~29.5 GB

模型总大小约 29.5 GB。Prompt Enhancer 会自动将简短输入扩展为详细的中文描述,这是 ERNIE-Image 区别于其他开源模型的重要特性。

AMD Instinct MI355X

MI355X 是 AMD 最新一代数据中心 AI 加速器,基于 CDNA 4 架构(代号 gfx950)。单卡配备 288 GB HBM3e 显存,带宽高达 8 TB/s。它直接对标 NVIDIA Blackwell 系列,在 FP4/FP6/FP8 低精度计算上拥有极强的吞吐能力。

对于 ERNIE-Image 部署,288 GB 显存意味着整卡部署 29.5GB 的模型有巨大的余量——模型加载后还有超过 250 GB 的空闲空间供推理中间张量使用。

AMD Radeon AI PRO R9700

R9700 是 AMD 面向专业工作站推出的 AI 加速器,基于 RDNA 4 架构(代号 gfx1201),配备 32 GB GDDR6 显存。具体规格:

  • 64 个计算单元(CU),4096 个流处理器
  • 128 个 AI 加速器
  • 640 GB/s 峰值带宽
  • 64 MB Infinity Cache
  • PCIe 5.0 x16 接口
  • 300W TBP
  • Linux 下支持 ECC 内存纠错

对于 R9700,挑战在于 32 GB 显存装不下完整的 29.5 GB 模型加推理中间张量。AMD 官方测试显示,加载所有组件后,仅有约 1.17 GB 的剩余空间用于推理——远远不够。解决方案是 CPU offload。

环境搭建

软件栈版本

AMD 官方测试使用以下软件版本:

组件 版本
Docker rocm/pytorch:rocm7.2.1_ubuntu24.04_py3.12_pytorch_release_2.9.1
PyTorch 2.9.1+rocm7.2.1
ROCm (HIP) 7.2.53211
Diffusers 0.38.0.dev0
Transformers 5.5.3
Accelerate 1.13.0

需要注意的是 Diffusers 使用了 HsiaWinter/diffusers 仓库的 add-ernie-image 分支,因为 ERNIE-Image 的官方 Diffusers 支持是通过 PR #13432 合并的。

部署步骤

第一步:拉取 Docker 镜像

docker pull rocm/pytorch:rocm7.2.1_ubuntu24.04_py3.12_pytorch_release_2.9.1

第二步:创建容器并传递 GPU 设备

docker run -d --name ernie-image-test \
  --device=/dev/kfd --device=/dev/dri \
  --group-add video --group-add render \
  --shm-size=64G \
  -v /path/to/model:/workspace \
  rocm/pytorch:rocm7.2.1_ubuntu24.04_py3.12_pytorch_release_2.9.1 \
  sleep infinity

这里的关键参数:

  • --device=/dev/kfd --device=/dev/dri:传递 AMD GPU 设备
  • --group-add video --group-add render:赋予 GPU 权限
  • --shm-size=64G:避免数据加载瓶颈

第三步:验证 GPU 可用性

ROCm 通过 HIP 层实现了 CUDA API 兼容,因此 torch.cuda 接口可以直接使用:

import torch
print(f'CUDA available: {torch.cuda.is_available()}')
print(f'Device: {torch.cuda.get_device_name(0)}')
print(f'VRAM: {torch.cuda.get_device_properties(0).total_memory / 1024**3:.0f} GB')

预期输出:

CUDA available: True
Device: AMD Instinct MI355X
VRAM: 288 GB

第四步:安装 Diffusers 及相关依赖

git clone https://github.com/HsiaWinter/diffusers /workspace/diffusers-ernie
cd /workspace/diffusers-ernie
git checkout add-ernie-image
pip install -e .
pip install accelerate Pillow transformers

第五步:解压模型权重

将 ERNIE-Image 的模型文件(约 29.5 GB)放入工作目录,目录结构如下:

ERNIE-Image/
├── model_index.json
├── transformer/      # 15 GB
├── text_encoder/     # 7.2 GB
├── pe/               # 7.2 GB
├── pe_tokenizer/
├── tokenizer/
├── scheduler/
└── vae/              # 161 MB

MI355X 推理:全量加载

在 MI355X 上,288 GB 显存可以轻松容纳整个模型。推理脚本如下:

from diffusers import ErnieImagePipeline
import torch

pipe = ErnieImagePipeline.from_pretrained(
"/workspace/ERNIE-Image",
torch_dtype=torch.bfloat16
)
pipe = pipe.to("cuda")
pipe.transformer.eval()
pipe.vae.eval()
pipe.text_encoder.eval()
pipe.pe.eval()

generator = torch.Generator(device="cuda").manual_seed(42)
output = pipe(
prompt="一只黑白相间的中华田园犬在草地上奔跑",
height=1024,
width=1024,
num_inference_steps=50,
guidance_scale=5.0
)
output.images[0].save("ernie_output.png")

AMD 官方测试验证了中英文三种提示词,均正确生成了 1024×1024 的高质量图像。Prompt Enhancer 自动将英文输入扩展为详细的中文提示词描述,进一步提升了图像质量。

CUDA 迁移的微小调整:唯一需要修改的是移除 CUBLAS_WORKSPACE_CONFIG 环境变量和 torch.backends.cudnn.deterministic 设置——核心推理代码不需要任何修改。

R9700 推理:CPU Offload 策略

R9700 的 32 GB 显存是一个更现实的场景——很多内容创作者和专业设计师的工作站配备的就是这个级别的 GPU。

显存分析

逐组件加载分析:

组件 显存占用 累计
Text Encoder 7.18 GiB 7.18 GiB
Prompt Enhancer +6.38 GiB 13.56 GiB
VAE +0.17 GiB 13.73 GiB
Transformer +14.96 GiB 28.69 GiB

加载完所有组件后,仅剩约 1.17 GiB 的显存空间。对于 1024×1024 的推理,中间张量需要额外的显存,这 1.17 GiB 完全不够。

enable_model_cpu_offload

解决方案是使用 HuggingFace Accelerate 的 enable_model_cpu_offload() 方法。它会在推理时按需将模型组件加载到 GPU,推理完成后立即卸载回 CPU,从而大幅降低显存峰值。

from diffusers import ErnieImagePipeline
import torch

pipe = ErnieImagePipeline.from_pretrained(
"/workspace/ERNIE-Image",
torch_dtype=torch.bfloat16
)
pipe.enable_model_cpu_offload() # 关键:使用 CPU offload
pipe.transformer.eval()
pipe.vae.eval()
pipe.text_encoder.eval()
pipe.pe.eval()

推理代码与 MI355X 完全相同

output = pipe(
prompt="一只黑白相间的中华田园犬在草地上奔跑",
height=1024,
width=1024,
num_inference_steps=50,
guidance_scale=5.0
)
output.images[0].save("ernie_output_r9700.png")

核心变化:将 pipe.to("cuda") 替换为 pipe.enable_model_cpu_offload()。

启用 CPU offload 后,峰值显存占用降至约 15 GB,远低于 R9700 的 32 GB 上限,还有大约 17 GB 的余量。

CPU Offload 的代价

CPU offload 虽然解决了显存限制,但也会带来推理速度的下降——每次推理时,组件需要在 CPU 和 GPU 之间传输数据(PCIe 5.0 x16 双向约 64 GB/s)。对于单张图像生成,这种传输开销在几秒的量级,对于非批处理场景是可以接受的。

CUDA 到 ROCm 迁移参考

对于之前从 NVIDIA CUDA 环境迁移过来的用户,AMD 官方提供了以下对照表:

CUDA 特有项 ROCm 处理方式
CUBLAS_WORKSPACE_CONFIG 不适用,直接移除
torch.backends.cudnn.* 使用 MIOpen,移除相关设置
torch.use_deterministic_algorithms 部分支持,按需移除
torch.cuda.* API 无需任何修改(HIP 兼容层)
Flash Attention / cuDNN AOTriton(自动选择)

核心结论很简单:如果你的推理脚本只用了 torch.cuda 标准 API,从 CUDA 迁移到 ROCm 几乎不需要改代码。 ERNIE-Image 的 Diffusers 实现完全符合这一标准,因此实现了零修改移植。

Day-0 支持的市场意义

ERNIE-Image 的独特地位

ERNIE-Image 是百度开源的首款文生图 DiT 模型,仅在 HuggingFace 上就获得了 77.5K+ 下载量和 660+ 点赞。它也是第一个获得 AMD 官方 Day-0 支持的中国开源文生图模型。

Day-0 支持意味着:AMD 在 ERNIE-Image 开源发布的当天就完成了在其 GPU 上的验证和适配。这不仅是技术上的成就,更反映了 AMD 对中国开源 AI 生态的重视。

中国市场背景

中国 AI 市场面临一个独特的硬件格局:NVIDIA H100/B200 等高端 GPU 受出口管制限制,获取难度大、成本高。AMD Instinct MI355X 虽然没有类似的出口限制,但此前因为 CUDA 生态的绑定,很多中国开发者和企业难以迁移。

ERNIE-Image 的 AMD Day-0 支持打破了这一局面。对于一个只有 8B 参数、但在多项基准测试中达到开源模型领先水平的文生图模型,能够在 AMD GPU 上零修改运行,意味着:

  • 数据中心:已有的 AMD Instinct 基础设施可以直接部署 ERNIE-Image
  • 工作站:Radeon AI PRO 用户无需额外购买 NVIDIA 显卡
  • 开发者:ROCm 生态的成熟度验证——从 PyTorch 到 Diffusers 全链路兼容

性能与实用性

虽然 AMD 官方文章未提供详细的端到端推理速度对比(如秒/图),但根据公开的基准数据:

  • MI355X 的 8 TB/s 带宽远高于 H100 的 3.35 TB/s,在大模型推理中具有优势
  • R9700 的 640 GB/s 带宽相当于 NVIDIA RTX 4090(1,008 GB/s)的约 63%,但 32 GB 显存与 4090 的 24 GB 相比有容量优势
  • CPU offload 策略让 32 GB 级别的 GPU 也能运行完整模型

部署建议与最佳实践

GPU 选择建议

  • MI355X(288 GB):适合生产环境部署、批量推理、高并发服务。模型全量加载到显存,推理速度最快
  • R9700(32 GB):适合开发测试、个人工作站使用。必须使用 CPU offload,单张图像生成延迟可以接受
  • 其他 AMD GPU:如果显存小于 24 GB,可能需要使用 GGUF 量化或 NVFP4 量化版本(参照 EI-028/EI-015)

常见问题

  1. torch.cuda.is_available() 返回 False:检查 ROCm 是否安装正确,运行 rocminfo 确认 GPU 可见
  2. 显存不足:使用 enable_model_cpu_offload(),或升级到更高显存的 GPU
  3. 推理速度慢:检查是否开启了 CPU offload(会引入 PCIe 传输延迟),对于大批量推理建议使用 MI355X
  4. 精度问题:ROCm 下 AOTriton 自动选择 Attention 后端,一般无需手动指定

未来展望

ERNIE-Image 获得 AMD Day-0 支持,标志着中国开源文生图生态的一个重要里程碑。随着 ROCm 7.x 的持续成熟和 AMD GPU 在中国市场的渗透,可以预期:

  • 更多中国开源 AI 模型将获得 AMD Day-0 支持
  • AMD GPU 上的 ERNIE-Image 推理性能将进一步提升(通过 ROCm 的持续优化)
  • 编辑模型(预计 2026 年 7 月 Beta)很可能也会延续 Day-0 支持

对于内容创作者、开发者和企业用户来说,ERNIE-Image + AMD GPU 的组合提供了一个不依赖 NVIDIA 生态的高质量文生图解决方案——这是开源精神的最佳体现。


参考来源: AMD Developer Resources — "Day-0 Support for Baidu ERNIE-Image on AMD GPUs" (2026-04-23)

ERNIE-Image Team