Skip to content

Releases: pantheongpu/pantheonsim

PantheonSim v0.2.0

Choose a tag to compare

@saqibkh saqibkh released this 27 Oct 00:59
840bbf6

Getting started

  • make installs what is missing (it asks first) and builds; ./run starts a simulated GPU machine from a
    settings file. The README is those two commands; the rest is in docs/getting-started.md, docs/config.md
    and docs/cli.md. The simulator uses half your CPUs unless you say otherwise.
  • scripts/ci-setup.sh does for GitLab CI, CircleCI, Forgejo, Jenkins and Buildkite what the GitHub Action does
    (docs/ci-other-platforms.md).
  • Every document was checked against the code, and the profile counts, command lists, ROCm versions and
    limitations were corrected. 48 profiles (38 NVIDIA, 10 AMD); 14 NVIDIA and 3 AMD are read from physical cards.
  • CONTRIBUTING.md, CODE_OF_CONDUCT.md, issue templates (bug, something unsupported, a wrong GPU profile) and a
    pull request template say how to send a change and what it needs.

Faster

  • The SASS engine's pre-decoded tier is on by default; the AMD engine has a tier of its own, and matrix and
    packed-math fast paths. Atomics, kernel launch and the first launch of a fatbin cost less. A second tier that
    compiles hot straight-line code (VGPU_JIT=1) is available and off by default. Every fast path produces
    the same bits as the path it replaces, and the old path stays available through the documented VGPU_*
    switches so the two can be compared (docs/cli.md).
  • Blocks that wait on one another (grid-wide spins, decoupled look-back) now run together, taking turns when
    they cannot all be resident. This applies to SASS, PTX and AMD code.

NVIDIA

  • New profile: RTX PRO 4500 (read from a card).
  • CUPTI traces were compared with the real thing on 19 rented GPUs; torch.profiler traces are checked against a
    card in CI. VGPU_PLATFORM=linux switches CUPTI to the answers a Linux driver gives (the default is wsl,
    nvidia/docs/cupti.md).
  • SASS: a cloned device function runs its own copy; a yielding warp rotates through its lane groups.
  • LuisaCompute's CUDA backend runs (scalar suld/sust, txq, the device runtime library in cuLinkAddData);
    cuTensorNet and cuda-samples fixes.

AMD

  • rocprofv3 traces of small HIP programs match what it recorded on a real RX 6800 and RX 6700 XT.
  • gfx942 and gfx950 were swept against AMD's instruction guides; gfx90a images, kernel-to-host calls (hostcall),
    PC sampling, the ROCm Validation Suite and vLLM graphs run (amd/README.md).

Known limits

  • Functional only: there is no timing model, so a run on a physical GPU before shipping still counts.
  • Programs must link the shared CUDA runtime (nvcc -cudart shared); a statically linked runtime needs NVIDIA's
    undocumented driver export tables (this is why CuPy does not work).
  • Nsight Systems and Nsight Compute as NVIDIA ships them, and OptiX, are not supported. See docs/status.md.

PantheonSim v0.1.0

Choose a tag to compare

@saqibkh saqibkh released this 15 Oct 21:30
4bc102c

First tagged release of PantheonSim: simulated NVIDIA and AMD GPUs, so CUDA and HIP programs run unmodified on a machine with no GPU (development, teaching and CI).

Ways to use it

  • GitHub Actions: pantheongpu/setup-pantheonsim (@v0).
  • Container: docker run --rm ghcr.io/pantheongpu/pantheonsim:0.1.0 vgpu list-gpus (CUDA 13.0 build; 0.1.0-cuda12.8 for CUDA 12.8). See docs/docker.md.
  • From source: cmake -S . -B build -G Ninja && cmake --build build.

The simulator is functional, not cycle- or bit-accurate, so it complements testing on real hardware and does not replace it. NVIDIA's cuDNN headers are not part of this repository; the build downloads them from NVIDIA's nvidia-cudnn-cu12 wheel.