PantheonSim / GPUs / AMD Radeon RX 6900 XT

Simulated AMD Radeon RX 6900 XT: a GPU profile for CUDA and ROCm testing

PantheonSim, the GPU simulator for CUDA and ROCm, simulates the AMD Radeon RX 6900 XT (RDNA 2, gfx1030) as the profile amd/rx6900xt. A Radeon RX 6900 XT (Navi 21, 80 compute units), the generation before the RX 7900 XTX. 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/rx6900xt
Vendor and architectureAMD, RDNA 2
GPU targetgfx1030
Device memory16.0 GiB, GDDR
Multiprocessors (as HIP reports them)40
Wavefront size32
Max threads per multiprocessor2048
Shared memory per block (opt-in maximum)64 KiB
L2 cache4 MiB
Power limit (profile)300 W
Maximum clocks (profile)2250 MHz shader, 2000 MHz memory
ECC memoryno
PCIe link reportedGen4 x16
Tensor or matrix coresno
Verified (measured on a physical card)not yet measured

What this GPU is for

A Radeon RX 6900 XT (Navi 21, 80 compute units), the generation before the RX 7900 XTX.

RDNA 2 is the Radeon RX 6000 generation, gfx1030 and gfx1031. Kernels run 32 lanes to a wave, and there are no matrix instructions, so PyTorch's matrix products run on the vector units.

Among the 10 AMD profiles it ranks 7th by device memory (16.0 GiB) and 7th by multiprocessors as HIP counts them (40), 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=gfx1030 my_app.hip -o my_app
vgpu run --gpu amd/rx6900xt ./my_app
vgpu shell -y --gpu amd/rx6900xt --count 4 --rocm 7.1.0
vgpu info --gpu amd/rx6900xt

Build for this card's own gfx target, gfx1030. 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/rx6900xt in a pantheonsim.yaml settings file, or in a GitHub Actions job give the PantheonSim action gpu: amd/rx6900xt (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 Radeon RX 6900 XT, as written in the file:

Source note for amd/rx6900xt

Values from public AMD documentation. verified: false means nothing here has been confirmed by hardware characterization yet, treat as placeholders. gfx1030 (RDNA2, Navi 21), the generation before the RX 7900 XTX: kernels run 32 lanes to a wave, and it has no matrix instructions, so PyTorch's matrix products run on its vector units. HIP counts its compute units in pairs (workgroup processors): 40 of the card's 80.

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

Other RDNA 2 profiles: