PantheonSim / GPUs / NVIDIA L40
Simulated NVIDIA L40: a GPU profile for CUDA and ROCm testing
PantheonSim, the GPU simulator for CUDA and ROCm, simulates the NVIDIA L40 (Ada Lovelace, 8.9) as the profile nvidia/l40.
A 48 GB Ada Lovelace data-center GPU for graphics, rendering and AI. 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.
| Property | Value |
|---|---|
| Profile id | nvidia/l40 |
| Vendor and architecture | NVIDIA, Ada Lovelace |
| Compute capability | 8.9 |
| Device memory | 48.0 GiB, GDDR |
| Streaming multiprocessors | 142 |
| Warp size | 32 |
| Max threads per multiprocessor | 1536 |
| Shared memory per block (opt-in maximum) | 99 KiB |
| L2 cache | 96 MiB |
| Memory bus width | 384-bit |
| Power limit (profile) | 300 W |
| Maximum clocks (profile) | 2520 MHz shader, 9000 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
A 48 GB Ada Lovelace data-center GPU for graphics, rendering and AI.
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 18th by device memory (48.0 GiB) and 9th by SMs (142), 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/l40 ./my_app vgpu shell -y --gpu nvidia/l40 --count 4 vgpu info --gpu nvidia/l40
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/l40 in a pantheonsim.yaml settings file, or in a GitHub Actions job give the PantheonSim action gpu: nvidia/l40 (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 L40, as written in the file:
Source note for nvidia/l40
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 142: NVIDIA Ada GPU Architecture whitepaper (v2.1), Appendix C, Table 4 (L40: 142 SMs, 18176 CUDA Cores at 128 an SM, 568 Tensor Cores). - memory 48 GB GDDR6 with ECC, 864 GB/s, 300 W, PCIe Gen4: the same table and NVIDIA's L40 page. NVIDIA's "GB" for graphics memory is binary (see rtx2080ti.yaml), so vram_bytes is 49152 MiB; a real card's nvidia-smi total is a little smaller, so this is an upper bound. - memory clock: 864 GB/s on the 384-bit bus the AD102 has is 18 Gbps (derived; NVIDIA's L40 page gives the bandwidth only). - SM clock: NVIDIA does not publish the L40's boost clock in the documents read here; nvidia/l40s's measured 2520 MHz (the same die) stands in until measured. - PCI device 0x26B5, "NVIDIA L40", 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/l40s, which was read from a physical card. - CUDA attributes (the `cuda:` section and l2_cache_bytes): L2 98304 KB and the 384-bit bus: Ada whitepaper; persisting L2 copied from nvidia/l40s.
The GPU index lists every profile, and this one is not yet measured.
Related GPUs
Other Ada Lovelace profiles: