PantheonSim / GPUs / AMD Instinct MI350X

Simulated AMD Instinct MI350X: a GPU profile for CUDA and ROCm testing

PantheonSim, the GPU simulator for CUDA and ROCm, simulates the AMD Instinct MI350X (CDNA 4, gfx950) as the profile amd/mi350x. The CDNA 4 Instinct accelerator, built for gfx950, with 288 GiB of HBM and 160 KB of LDS per work-group. Its profile is built from public documents and not yet measured against a physical card.

The profile at a glance

These are the numbers a program can ask this simulated GPU, and the values rocm-smi and amd-smi show for it. They come from the profile file in the simulator's repository, pinned to one commit of it.

PropertyValue
Profile idamd/mi350x
Vendor and architectureAMD, CDNA 4
GPU targetgfx950
Device memory288.0 GiB, HBM
Multiprocessors (as HIP reports them)256
Wavefront size64
Max threads per multiprocessor2048
Shared memory per block (opt-in maximum)160 KiB
L2 cache4 MiB
Power limit (profile)1000 W
Maximum clocks (profile)2100 MHz shader, 5200 MHz memory
ECC memoryyes
PCIe link reportedGen5 x16
Tensor or matrix coresyes
Verified (measured on a physical card)not yet measured

What this GPU is for

The CDNA 4 Instinct accelerator, built for gfx950, with 288 GiB of HBM and 160 KB of LDS per work-group.

CDNA 4 is the architecture of the Instinct MI350 series, built for gfx950. Kernels run in 64-lane wavefronts.

Among the 10 AMD profiles it ranks 2nd by device memory (288.0 GiB) and 3rd by multiprocessors as HIP counts them (256), counting the largest as first.

Is this profile verified?

No. This profile is marked not verified: it is built from public documents only, and nothing in it was measured on a physical card. Some figures are derived or copied from the nearest profile where the vendor publishes none, so treat them as approximate, and memory sizes as upper bounds. The profile file itself calls some of its values placeholders. Programs still run on it, and it still answers every call as the architecture's rules require, but a value such as a clock or a limit may differ from a real card's.

Simulate this GPU

Build the simulator (see the docs) or open the playground, then:

hipcc --offload-arch=gfx950 my_app.hip -o my_app
vgpu run --gpu amd/mi350x ./my_app
vgpu shell -y --gpu amd/mi350x --count 4 --rocm 7.1.0
vgpu info --gpu amd/mi350x

Build for this card's own gfx target, gfx950. A program built for another target is refused by name, as the real runtime refuses it, and hipErrorNoBinaryForGpu means exactly this.

To use it every time, put gpu: amd/mi350x in a pantheonsim.yaml settings file, or in a GitHub Actions job give the PantheonSim action gpu: amd/mi350x (see CUDA and HIP tests in GitHub Actions). The simulator checks behaviour and has no timing model, so a run on a physical GPU before a release still counts. The ROCm and HIP guide explains the rest.

Where the numbers come from

Each profile file begins with a note on its sources. This is the note for AMD Instinct MI350X, as written in the file:

Source note for amd/mi350x

Values from public AMD documentation. verified: false means nothing here has been confirmed by hardware characterization yet, treat as placeholders. Kernels built for gfx950 run on it (amd/README.md, "gfx950"). Its LDS is CDNA4's 160 KB a work-group, the 163840 bytes LLVM's gfx950 target gives as addressable local memory.

The GPU index lists every profile, and this one is not yet measured.

Other AMD profiles: