How to Scale Diffusion Inference Across AMD RDNA 4 GPUs AMD published a guide showing how to run diffusion transformer inference across one, two, or four AMD Radeon AI PRO R9700S GPUs using xDiT, the open-source inference engine packaged in AMD's Diffusion Model Inference repository. A four-GPU system pools 128GB of aggregate GPU memory (32GB per card) to run workloads including FLUX.2, Qwen-Image, Wan 2.2, Stable Diffusion 3.5, and Z-Image, with tuned RDNA 4 configurations that limit PCIe transfers, use native FP8 execution, and distribute VAE decoding. AMD advises splitting a single request across GPUs for lower latency or when a model exceeds 32GB, while independent requests per GPU yield higher throughput when the workload fits on each card. How to Scale Diffusion Inference Across AMD RDNA 4 GPUs how-to-scale-diffusion-inference-across-amd-rdna-4-gpus Each AMD Radeon AI PRO R9700S GPU combines 32GB of memory with RDNA 4 compute. A four-GPU system has 128GB of aggregate GPU memory, allowing it to run large image and video generation workloads such as FLUX.2, Qwen-Image, Wan 2.2, Stable Diffusion 3.5, and Z-Image. This blog shows how to use xDiT, an open-source inference engine for diffusion transformers, to run image or video generation requests across one, two, or four Radeon AI PRO R9700S GPUs. It explains when multiple GPUs help, how to fit larger models, and how to reduce the PCIe communication that can limit scaling. AMD’s Diffusion Model Inference repository https://github.com/AMD-AGI/diffusion-models-inference packages xDiT in a container and provides tuned RDNA 4 configurations for the featured workloads. The following figure shows how a four-GPU system combines distributed memory capacity while exchanging data over PCIe. Bring Multi-GPU Diffusion Inference to RDNA 4 bring-multi-gpu-diffusion-inference-to-rdna-4 Using multiple GPUs can accommodate a model that exceeds 32GB and can reduce generation time. The gain depends on how much data the GPUs exchange: frequent PCIe transfers can erase the time saved by splitting the work. The tuned RDNA 4 configurations limit these transfers, place model weights without creating a host-memory spike, use native FP8 execution, reuse suitable denoising work, and distribute VAE decoding when beneficial. Split one request across GPUs when you need lower latency for an image or video, or when the model does not fit on one GPU. When the workload fits on each GPU and you want more generations per hour, independent requests usually provide higher throughput because they avoid inter-GPU communication. Understanding the Inference Pipeline understanding-the-inference-pipeline A diffusion model turns a prompt into pixels in three stages: 1. A text encoder converts the prompt into a numerical representation. 2. A diffusion transformer DiT iteratively refines a compressed image representation called a latent. 3. A variational autoencoder VAE decodes the final latent into pixels. The repeated transformer passes account for most of the inference time in many diffusion workloads. At high image resolutions and for video generation, VAE decoding can also become a significant memory and latency bottleneck. The following figure traces these stages and highlights the repeated transformer work. Quickstart Example: Generate a 2048 by 2048 Image quickstart-example-generate-a-2048-by-2048-image Prerequisites prerequisites Before you begin, prepare a Linux system with the following: - One, two, or four AMD Radeon AI PRO R9700S GPUs with a host AMD GPU driver that supports ROCm 10.0. The results in this post were measured with amdgpu-dkms 6.19.14 31.40 . - Docker installed and configured for ROCm workloads, including access to /dev/kfd and /dev/dri . Follow the official Run ROCm Docker containers https://rocm.docs.amd.com/en/latest/install/docker-containers.html guide to prepare and verify the host. - A Hugging Face account, an HF TOKEN environment variable, and accepted model terms where required. - Sufficient local storage for the Hugging Face cache, generated outputs, and first-run compilation artifacts. The commands use the published amdsiloai/pytorch-xdit-custom https://hub.docker.com/r/amdsiloai/pytorch-xdit-custom/tags image. export XDIT IMAGE=amdsiloai/pytorch-xdit-custom:rdna4-rocm10.0.0-ubuntu24.04-py3.12-torch2.13.0-xdit-ecf0f58-20261016 docker pull "$XDIT IMAGE" export HF TOKEN=