Skip to content

Add an optional workflow that runs the tests on a simulated H100 - #3

Open
saqibkh wants to merge 1 commit into
szcompressor:mainfrom
saqibkh:add-gpu-sim-ci
Open

saqibkh wants to merge 1 commit into
szcompressor:mainfrom
saqibkh:add-gpu-sim-ci

Conversation

@saqibkh

@saqibkh saqibkh commented Nov 10, 2026

Copy link
Copy Markdown

build.yml only compiles the code, because the hosted runners have no GPU, so the ctest suites (roundtrip, hostptr, fortran) are never executed in CI. This adds a separate, optional workflow .github/workflows/gpu-sim.yml that builds the library and runs them on a simulated NVIDIA H100 using PantheonSim (no GPU needed). I am the author of PantheonSim, so please weigh this accordingly.

It does not touch any source file, leaves build.yml as it is, and is not meant to be a required check. A simulator cannot reproduce hardware-specific behavior or timing, so it complements real-GPU testing and does not replace it.

What it does:

  • installs gfortran, the CUDA 13.0 toolkit and the simulated H100
  • configures with -DCMAKE_CUDA_ARCHITECTURES=90-virtual (the simulator runs the embedded PTX, so the default 80 90 is not used) and -DCMAKE_CUDA_RUNTIME_LIBRARY=Shared (the simulator needs a shared CUDA runtime)
  • builds, then runs ctest --test-dir build --output-on-failure under vgpu run
  • runs on manual dispatch and on pull requests to main that touch src/, include/, tests/, tools/, examples/, fortran/ or CMakeLists.txt, with a concurrency group that cancels superseded runs

Measured:

  • Run on my fork: https://github.com/saqibkh/SZ-GPU/actions/runs/42745621146 . All 3 ctest tests passed (roundtrip 7.2 s, hostptr 0.7 s, fortran 0.5 s). The roundtrip cases include the 32M-element float and double fields, all within the error bound.
  • The job took about 16 minutes, almost all of it the simulator and toolkit setup; configure and build took about 10 seconds and the tests about 9 seconds.
  • The Python tests are not part of this workflow.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant