This document defines a minimal reproducibility baseline for performance and validation claims.
Record the following in every benchmark or validation report:
- Git commit hash
- GPU model and compute capability
- Driver version (
nvidia-smi) - CUDA toolkit version (
nvcc --version) - Host CPU, RAM, and OS
- CMake preset and build type
- N-body initialization uses fixed seed
42by default. - Any new randomized initialization must expose a seed parameter.
- Reports must state the seed used.
conan install . --build=missing -s build_type=Release -s compiler.cppstd=17 --output-folder=build/conan
cmake -B build/release -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=build/conan/conan_toolchain.cmake
cmake --build build/release --parallel
ctest --test-dir build/release --output-on-failure
./build/release/bin/nbody_bench --benchmark_format=json --benchmark_out=nbody_results.json
./build/release/bin/sph_bench --benchmark_format=json --benchmark_out=sph_results.jsonUse the acceptance criteria in README.md:
- N-body energy drift below 0.1% over 1000 steps
- Plummer sphere profile statistical pass criteria
- Fused vs two-pass agreement below 1e-3 per particle
Include this table in every benchmark report:
| Metric | Value | Baseline | Delta |
|---|---|---|---|
| N-body steps/s (10K) | |||
| N-body steps/s (32K) | |||
| SPH steps/s (30K) | |||
| Energy drift (%) |
If a metric regresses by more than 5%, attach Nsight evidence and root-cause analysis.