Historical two-example experiment. The current article uses the single RMS-scaled softmax workload.
Run 20261019T175825Z, collected October 19, 2026 on one NVIDIA H100 80GB HBM3. The article keeps its original February 22 date.
- Protocol: workload definitions, controls, fixed tolerances, and measurement scopes.
- Full results: all shapes, cuDNN reference, timing distributions, and profiling limitations.
- Article figure provenance: exact configuration mapping and input/output hashes.
- Latest factual and narrative review: manuscript hash, exact latency mapping, graph counts, resources, and freshly checked data.
- Fresh timing and trace recheck: 12 timing cases and 24 dependency traces recomputed from saved samples.
- All timing summaries, saved validation summary, and profiler counter exports.
- Selected site bundle manifest, distinct from the complete raw-run manifest.
The baseline uses ordinary stream launches with no graph replay or fusion; normal compiler optimizations still apply. The tiled comparison labels the cooperative phase-barrier kernel as fusion, and the ready-task kernel as a megakernel toy. Both can run inside a graph. This toy is not a model-scale megakernel performance result, and its queue initialization is included.
The complete raw run retains 1,741 files / 9.37 GB in Modal Volume cuda-graphs-softmax-evidence, directory /20261019T175825Z/, with an archive at /20261019T175825Z.tar.gz. This site contains selected source, samples, traces, and text exports; large binary arrays and original profiler databases remain in that archive. Local review verified 1,372 files, with 369 remote-only files explicitly recorded. No GPU rerun was needed for the article restructuring.
Reproduction
The CUDA source, analyzer, build script, and Modal runner below are the captured run versions. Figure and export scripts are subsequent CPU postprocessing. With the complete review bundle, run python article_figures.py RUN_DIRECTORY OUTPUT_DIRECTORY to rebuild the four-way figures. It verifies hashes, recomputes timing summaries, and checks trace coverage and ordering. The selected website bundle is not a substitute for the full review bundle when rerunning that command.
Selected files
- artifacts/bench/dag-128-0-balanced/analysis.json
- artifacts/bench/dag-128-0-balanced/dag.dot
- artifacts/bench/dag-128-0-balanced/metadata.jsonl
- artifacts/bench/dag-128-0-balanced/phased.dot
- artifacts/bench/dag-128-0-balanced/samples.jsonl
- artifacts/bench/dag-128-0-balanced/separate.dot
- artifacts/bench/dag-128-0-ragged/analysis.json
- artifacts/bench/dag-128-0-ragged/dag.dot
- artifacts/bench/dag-128-0-ragged/metadata.jsonl
- artifacts/bench/dag-128-0-ragged/phased.dot
- artifacts/bench/dag-128-0-ragged/samples.jsonl
- artifacts/bench/dag-128-0-ragged/separate.dot
- artifacts/bench/dag-2048-0-balanced/analysis.json
- artifacts/bench/dag-2048-0-balanced/dag.dot
- artifacts/bench/dag-2048-0-balanced/metadata.jsonl
- artifacts/bench/dag-2048-0-balanced/phased.dot
- artifacts/bench/dag-2048-0-balanced/samples.jsonl
- artifacts/bench/dag-2048-0-balanced/separate.dot
- artifacts/bench/dag-2048-0-ragged/analysis.json
- artifacts/bench/dag-2048-0-ragged/dag.dot
- artifacts/bench/dag-2048-0-ragged/metadata.jsonl
- artifacts/bench/dag-2048-0-ragged/phased.dot
- artifacts/bench/dag-2048-0-ragged/samples.jsonl
- artifacts/bench/dag-2048-0-ragged/separate.dot
- artifacts/bench/dag-512-0-balanced/analysis.json
- artifacts/bench/dag-512-0-balanced/dag.dot
- artifacts/bench/dag-512-0-balanced/metadata.jsonl
- artifacts/bench/dag-512-0-balanced/phased.dot
- artifacts/bench/dag-512-0-balanced/samples.jsonl
- artifacts/bench/dag-512-0-balanced/separate.dot
- artifacts/bench/dag-512-0-ragged/analysis.json
- artifacts/bench/dag-512-0-ragged/dag.dot
- artifacts/bench/dag-512-0-ragged/metadata.jsonl
- artifacts/bench/dag-512-0-ragged/phased.dot
- artifacts/bench/dag-512-0-ragged/samples.jsonl
- artifacts/bench/dag-512-0-ragged/separate.dot
- artifacts/bench/row-1-128-balanced/analysis.json
- artifacts/bench/row-1-128-balanced/cudnn.dot
- artifacts/bench/row-1-128-balanced/fused.dot
- artifacts/bench/row-1-128-balanced/metadata.jsonl
- artifacts/bench/row-1-128-balanced/samples.jsonl
- artifacts/bench/row-1-128-balanced/staged.dot
- artifacts/bench/row-16384-1024-balanced/analysis.json
- artifacts/bench/row-16384-1024-balanced/cudnn.dot
- artifacts/bench/row-16384-1024-balanced/fused.dot
- artifacts/bench/row-16384-1024-balanced/metadata.jsonl
- artifacts/bench/row-16384-1024-balanced/samples.jsonl
- artifacts/bench/row-16384-1024-balanced/staged.dot
- artifacts/bench/row-32-1024-balanced/analysis.json
- artifacts/bench/row-32-1024-balanced/cudnn.dot
- artifacts/bench/row-32-1024-balanced/fused.dot
- artifacts/bench/row-32-1024-balanced/metadata.jsonl
- artifacts/bench/row-32-1024-balanced/samples.jsonl
- artifacts/bench/row-32-1024-balanced/staged.dot
- artifacts/bench/row-4096-1024-balanced/analysis.json
- artifacts/bench/row-4096-1024-balanced/cudnn.dot
- artifacts/bench/row-4096-1024-balanced/fused.dot
- artifacts/bench/row-4096-1024-balanced/metadata.jsonl
- artifacts/bench/row-4096-1024-balanced/samples.jsonl
- artifacts/bench/row-4096-1024-balanced/staged.dot
- artifacts/bench/row-4096-128-balanced/analysis.json
- artifacts/bench/row-4096-128-balanced/cudnn.dot
- artifacts/bench/row-4096-128-balanced/fused.dot
- artifacts/bench/row-4096-128-balanced/metadata.jsonl
- artifacts/bench/row-4096-128-balanced/samples.jsonl
- artifacts/bench/row-4096-128-balanced/staged.dot
- artifacts/bench/row-4096-4096-balanced/analysis.json
- artifacts/bench/row-4096-4096-balanced/cudnn.dot
- artifacts/bench/row-4096-4096-balanced/fused.dot
- artifacts/bench/row-4096-4096-balanced/metadata.jsonl
- artifacts/bench/row-4096-4096-balanced/samples.jsonl
- artifacts/bench/row-4096-4096-balanced/staged.dot
- artifacts/bench.ptx
- artifacts/bench.sass
- artifacts/build.json
- artifacts/compile.log
- artifacts/config.json
- artifacts/device-after.stdout
- artifacts/device-before.stdout
- artifacts/manifest.json
- artifacts/memcheck-dag.stderr
- artifacts/memcheck-dag.stdout
- artifacts/memcheck-row.stderr
- artifacts/memcheck-row.stdout
- artifacts/summary.json
- artifacts/synccheck-dag.stderr
- artifacts/synccheck-dag.stdout
- artifacts/trace/dag-128-0-balanced/analysis.json
- artifacts/trace/dag-128-0-balanced/dag_graph_2_trace.csv
- artifacts/trace/dag-128-0-balanced/dag_graph_3_trace.csv
- artifacts/trace/dag-128-0-balanced/dag_stream_2_trace.csv
- artifacts/trace/dag-128-0-balanced/dag_stream_3_trace.csv
- artifacts/trace/dag-128-0-balanced/metadata.jsonl
- artifacts/trace/dag-128-0-balanced/phased_graph_2_trace.csv
- artifacts/trace/dag-128-0-balanced/phased_graph_3_trace.csv
- artifacts/trace/dag-128-0-balanced/phased_stream_2_trace.csv
- artifacts/trace/dag-128-0-balanced/phased_stream_3_trace.csv
- artifacts/trace/dag-128-0-balanced/separate_graph_2_trace.csv
- artifacts/trace/dag-128-0-balanced/separate_graph_3_trace.csv
- artifacts/trace/dag-128-0-balanced/separate_stream_2_trace.csv
- artifacts/trace/dag-128-0-balanced/separate_stream_3_trace.csv
- artifacts/trace/dag-128-0-balanced/tile_offsets.i32
- artifacts/trace/dag-128-0-ragged/analysis.json
- artifacts/trace/dag-128-0-ragged/dag_graph_2_trace.csv
- artifacts/trace/dag-128-0-ragged/dag_graph_3_trace.csv
- artifacts/trace/dag-128-0-ragged/dag_stream_2_trace.csv
- artifacts/trace/dag-128-0-ragged/dag_stream_3_trace.csv
- artifacts/trace/dag-128-0-ragged/metadata.jsonl
- artifacts/trace/dag-128-0-ragged/phased_graph_2_trace.csv
- artifacts/trace/dag-128-0-ragged/phased_graph_3_trace.csv
- artifacts/trace/dag-128-0-ragged/phased_stream_2_trace.csv
- artifacts/trace/dag-128-0-ragged/phased_stream_3_trace.csv
- artifacts/trace/dag-128-0-ragged/separate_graph_2_trace.csv
- artifacts/trace/dag-128-0-ragged/separate_graph_3_trace.csv
- artifacts/trace/dag-128-0-ragged/separate_stream_2_trace.csv
- artifacts/trace/dag-128-0-ragged/separate_stream_3_trace.csv
- artifacts/trace/dag-128-0-ragged/tile_offsets.i32
- code/analyze.py
- code/article_figures.py
- code/bench.cu
- code/build.py
- code/modal_app.py
- code/profile_exports.py
- code/report.py
- code/site_evidence.py
- figure-provenance.json
- figures/dag-completion.png
- figures/dag-completion.svg
- figures/profile-traffic.png
- figures/profile-traffic.svg
- figures/row-completion.png
- figures/row-completion.svg
- figures/task-ordering.png
- figures/task-ordering.svg
- local-review.json
- profile-exports/compute-dag-dag_graph-metrics.csv
- profile-exports/compute-dag-separate_graph-metrics.csv
- profile-exports/compute-row-cudnn_graph-metrics.csv
- profile-exports/compute-row-fused_graph-metrics.csv
- profile-exports/compute-row-staged_graph-metrics.csv
- profile-summary.json
- protocol.md
- results.md
- softmax-figure-provenance.json
- softmax-recheck.json
- timings.csv
- trace-validation.json