PantheonSim / GPUs / AMD Instinct MI250X
Simulated AMD Instinct MI250X: a GPU profile for CUDA and ROCm testing
PantheonSim, the GPU simulator for CUDA and ROCm, simulates the AMD Instinct MI250X (CDNA 2, gfx90a) as the profile amd/mi250x.
One of the two graphics compute dies of an MI250X. HIP, rocm-smi and rocminfo each see a die as a device of its own, so a whole MI250X is a count of 2 here. 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.
| Property | Value |
|---|---|
| Profile id | amd/mi250x |
| Vendor and architecture | AMD, CDNA 2 |
| GPU target | gfx90a |
| Device memory | 64.0 GiB, HBM |
| Multiprocessors (as HIP reports them) | 110 |
| Wavefront size | 64 |
| Max threads per multiprocessor | 2048 |
| Shared memory per block (opt-in maximum) | 64 KiB |
| L2 cache | 8 MiB |
| Power limit (profile) | 560 W |
| Maximum clocks (profile) | 1700 MHz shader, 1600 MHz memory |
| ECC memory | yes |
| PCIe link reported | Gen4 x16 |
| Tensor or matrix cores | yes |
| Verified (measured on a physical card) | not yet measured |
What this GPU is for
One of the two graphics compute dies of an MI250X. HIP, rocm-smi and rocminfo each see a die as a device of its own, so a whole MI250X is a count of 2 here.
CDNA 2 is the architecture of the Instinct MI200 series, built for gfx90a. Kernels run in 64-lane wavefronts.
Among the 10 AMD profiles it ranks 5th by device memory (64.0 GiB) and 5th by multiprocessors as HIP counts them (110), 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=gfx90a my_app.hip -o my_app vgpu run --gpu amd/mi250x ./my_app vgpu shell -y --gpu amd/mi250x --count 2 --rocm 7.1.0 vgpu info --gpu amd/mi250x
Build for this card's own gfx target, gfx90a. A program built for another target is refused by name, as the real runtime refuses it, and hipErrorNoBinaryForGpu means exactly this.
An MI250X is two devices to HIP, so --count 2 is one whole package.
To use it every time, put gpu: amd/mi250x in a pantheonsim.yaml settings file, or in a GitHub Actions job give the PantheonSim action gpu: amd/mi250x (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 MI250X, as written in the file:
Source note for amd/mi250x
Values from public AMD documentation. verified: false means nothing here has been confirmed by hardware characterization yet, treat as placeholders. An MI250X is two graphics compute dies (GCDs) in one package, and HIP, rocm-smi and rocminfo each see a GCD as a device of its own: 110 compute units and 64 GB of HBM2e each. So a device here is one GCD, and an MI250X is VGPU_DEVICE_COUNT=2. Kernels built for gfx90a (CDNA2) run on it.
The GPU index lists every profile, and this one is not yet measured.
Related GPUs
Other AMD profiles: