PantheonSim / GPUs / NVIDIA GeForce RTX 4090

Simulated NVIDIA GeForce RTX 4090: a GPU profile for CUDA and ROCm testing

PantheonSim, the GPU simulator for CUDA and ROCm, simulates the NVIDIA GeForce RTX 4090 (Ada Lovelace, 8.9) as the profile nvidia/rtx4090. A 24 GB Ada Lovelace GeForce flagship. 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 nvidia-smi show for it. They come from the profile file in the simulator's repository, pinned to one commit of it.

PropertyValue
Profile idnvidia/rtx4090
Vendor and architectureNVIDIA, Ada Lovelace
Compute capability8.9
Device memory24.0 GiB, GDDR
Streaming multiprocessors128
Warp size32
Max threads per multiprocessor1536
Shared memory per block (opt-in maximum)99 KiB
L2 cache72 MiB
Memory bus width384-bit
Power limit (profile)450 W
Maximum clocks (profile)2520 MHz shader, 10500 MHz memory
ECC memoryno
PCIe link reportedGen4 x16
Tensor or matrix coresyes
Verified (measured on a physical card)not yet measured

What this GPU is for

A 24 GB Ada Lovelace GeForce flagship.

Ada Lovelace is compute capability 8.9. The L4 and L40S profiles were read from physical cards on AWS g6 and g6e instances, and the other Ada profiles are built from public documents.

Among the 37 NVIDIA profiles it ranks 25th by device memory (24.0 GiB) and 17th by SMs (128), 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. 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:

nvcc -cudart shared -arch=compute_89 my_app.cu -o my_app
vgpu run --gpu nvidia/rtx4090 ./my_app
vgpu shell -y --gpu nvidia/rtx4090 --count 4
vgpu info --gpu nvidia/rtx4090

This profile is compute capability 8.9. A kernel built for compute_75 runs on it and on every other NVIDIA profile; a kernel built for a newer architecture is refused by a profile that is older than it. Link the CUDA runtime shared (-cudart shared) so the simulator can stand in for it.

To use it every time, put gpu: nvidia/rtx4090 in a pantheonsim.yaml settings file, or in a GitHub Actions job give the PantheonSim action gpu: nvidia/rtx4090 (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 CUDA guide explains the rest.

Where the numbers come from

Each profile file begins with a note on its sources. This is the note for NVIDIA GeForce RTX 4090, as written in the file:

Source note for nvidia/rtx4090

Public values; verified: false, nothing here has been measured on a card. Where each value comes from: - compute capability 8.9: NVIDIA's CUDA GPUs table (developer.nvidia.com/cuda-gpus). - SMs 128: NVIDIA Ada GPU Architecture whitepaper (v2.1), Table 1 and Appendix A (RTX 4090: 128 SMs, 16384 CUDA Cores at 128 an SM, 512 Tensor Cores); the GeForce RTX 4090 page gives the same 16384 cores. - memory 24 GB GDDR6X, 21 Gbps, 384-bit, 1008 GB/s, boost clock 2520 MHz and 450 W Total Graphics Power: the whitepaper and the product page. NVIDIA's "GB" for graphics memory is binary (see rtx2080ti.yaml), so vram_bytes is 24576 MiB; a real card's nvidia-smi total is a little smaller, so this is an upper bound. - PCIe Gen4: the whitepaper's Table 2 and the product page; x16 is the slot the card is built for, not a figure NVIDIA states there. - PCI device 0x2684, "NVIDIA GeForce RTX 4090", from the name table in NVIDIA's open GPU kernel modules (g_nv_name_released.h). - Per-SM limits are compute capability 8.9's, the same as nvidia/l4 and nvidia/l40s, which were read from physical cards. - CUDA attributes (the `cuda:` section and l2_cache_bytes): L2 73728 KB and the 384-bit bus: Ada whitepaper; persisting L2 is 3/4 of the L2, nvidia/l40s's measured ratio.

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

Other Ada Lovelace profiles: