Benchmark suite¶
The benchmarks/ tree is the executable evidence base behind every row in
measured results. It is grouped by workload
semantics, never by provider: Triton, Torch, vendor libraries and
Tiga-generated code are peers inside a case, not top-level categories.
Historical figures use the committed input archive. Original revision/environment metadata is incomplete; the commands below are not exact reruns of every old measurement. Start with chart reproduction.
Layout¶
| Directory | Scope | Entry points |
|---|---|---|
sparse_compute/ |
SpMV/SpMM, sparse reductions, diffusion, fusion | weighted_aggregation, cpu_relation, diffusion_roofline, fusion |
graph_operations/ |
topology build/rebuild and generated relations | radius_build, radius_pipeline, radius_roofline, knn_build |
graph_algorithms/ |
representative compiler probes, not NetworkX coverage | PageRank (loop/convergence), BFS (frontier), triangle counting (intersection) |
neural_networks/ |
NN workloads with generic Tiga semantics | dense_attention, linear_attention, sparse_attention, online_softmax, dense_matmul |
compiler/ |
compile/JIT/cache/provider translation — not an algorithm result | provider_gate, jit_latency, tensor_fusion, cpu_pointwise |
memory_hierarchy/ |
register/shared/HBM/RAM/NVMe placement and pipeline | pinned↔HBM DMA and RAM↔NVMe spill |
distributed/ |
partition/halo/collective/overlap | stdlib and real-MPI two-process exact halo exchange |
large_graphs/ |
billion-edge datasets, validation contracts, memory-tier planning | plan, declarative suite.json |
autograd/ |
generated reverse kernels vs framework and handwritten backward | message_passing_backward, reducer_product_backward, dynamic_radius_backward |
visualization/ |
rendering-adjacent prep kernels | heatmap |
providers/ |
provider conformance, not performance | conformance |
common/ |
roof calibration, fairness gates, output schema, plotting | support modules |
kernels/ |
handwritten performance oracles | never imported by tiga |
Running cases¶
Use a source checkout: benchmark modules are not installed by the library wheel.
Run the following commands from the repository root, after installing Tiga using
the installation guide. The benchmarks extra supplies
Torch and Matplotlib; CUDA cases also need the cuda extra and supported hardware.
Install a matching Torch build first. Missing optional peers (for example SciPy,
PyG or Warp) must be recorded as skipped, not counted as wins.
Entry points run as modules from the repository root. Most accept --quick for a
reduced sample count and --fail-on-gate to turn the acceptance gate into a
non-zero exit:
python -m benchmarks.sparse_compute.weighted_aggregation --quick
python -m benchmarks.sparse_compute.weighted_aggregation --topology lognormal --locality random --features 1
python -m benchmarks.graph_operations.radius_pipeline --quick --fail-on-gate
python -m benchmarks.graph_operations.knn_build --quick --fail-on-gate
python -m benchmarks.neural_networks.dense_attention --quick --fail-on-gate
python -m benchmarks.neural_networks.dense_attention --quick --causal --fail-on-gate
python -m benchmarks.neural_networks.linear_attention --quick --fail-on-gate
python -m benchmarks.neural_networks.sparse_attention --quick --fail-on-gate
python -m benchmarks.neural_networks.radius_edge_mlp --quick
python -m benchmarks.compiler.provider_gate --quick
python -m benchmarks.autograd.message_passing_backward --quick
python -m benchmarks.autograd.dynamic_radius_backward --quick
python -m benchmarks.memory_hierarchy.transfer --quick
python -m benchmarks.distributed.halo_exchange --quick
python -m benchmarks.distributed.automatic_overlap --quick
python -m benchmarks.providers.conformance
python -m benchmarks.large_graphs.plan
python -m benchmarks.common.check_outputs
benchmarks.compiler.provider_gate additionally needs the built gf-opt and
gf-translate; they are auto-discovered from build/*/bin/ or can be set
explicitly with TIGA_OPT / TIGA_TRANSLATE.
benchmarks.neural_networks.radius_edge_mlp additionally needs the
warp-lang package (pip install warp-lang); NVIDIA Warp is a handwritten
peer kernel, never a Tiga dependency.
Artifact and fairness rules¶
- Every performance claim compares identical semantics and keeps its
artifacts under
output/roofline/<operation>/<case>/— raw samples, median, bootstrap confidence interval, device/software metadata, and the arithmetic-intensity model. - Machine JSON is the source of truth but not the human interface: every
measured directory gets an SVG visualization with a PNG fallback, and
formal roofline cases get an operation-level
summary.svg. - Handwritten oracle code under
kernels/may set a performance target but is never reported as Tiga compiler output. evidence_manifest.jsondeclares the panel filters, provider order and baseline of the aggregate compiler report; rendering fails if an exact matched bucket or provider is absent, so a favorable measurement cannot be substituted silently.- Static sparse generators cover fixed, bounded-uniform, discrete power-law, continuous log-normal and exponential degree families. Continuous cases are seeded, rescaled to the requested mean, explicitly capped, and record min/mean/p50/p95/p99/max, zero-degree fraction and coefficient of variation in every result.
The methodology page defines semantic matching, cache states, cold-JIT accounting, the acceptance gate, the common artifact layout and reproduction commands.