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)
常见问题
- torch.cuda.is_available() 返回 False:检查 ROCm 是否安装正确,运行
rocminfo确认 GPU 可见 - 显存不足:使用
enable_model_cpu_offload(),或升级到更高显存的 GPU - 推理速度慢:检查是否开启了 CPU offload(会引入 PCIe 传输延迟),对于大批量推理建议使用 MI355X
- 精度问题: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)