You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Benchmark rather than an example please — a new benchmark/latency/. No test needed, benchmarks only.
Use iris.bench for the sweep: @bench.register with @bench.axis(...) gives you the grid, arg parsing and CSV for free. benchmark/ccl/bench_all_gather.py is a short example.
I'd make everything an axis — message size, source rank, destination rank, and the op. Loads and stores are enough to start. Sizes 4 B to ~4 MB log-spaced.
For the timing, use read_realtime() from iris/mem/utils.py (wraps s_memrealtime, 100 MHz constant clock) and read it either side of the op inside the kernel. iris/mem/triton/tracing.py shows the pattern.
ib_write_lat is a good model worth copying — a ping-pong where half the round trip is the one-way latency, reporting min/median/99% rather than a mean. See run_iter_lat_write in src/perftest_resources.c.
Activity
arcusbuilds commentedon Oct 12, 2026
Hi, I'd like to work on this. Before I start, some scope questions:
examples/NN_latency/) or live underbenchmark/?load/store, or alsoget/put/atomics?I'll add a test like
tests/examples/test_jacobi.pytoo.mawad-amd commentedon Oct 12, 2026
Thanks @arcusbuilds!
Benchmark rather than an example please — a new
benchmark/latency/. No test needed, benchmarks only.Use
iris.benchfor the sweep:@bench.registerwith@bench.axis(...)gives you the grid, arg parsing and CSV for free.benchmark/ccl/bench_all_gather.pyis a short example.I'd make everything an axis — message size, source rank, destination rank, and the op. Loads and stores are enough to start. Sizes 4 B to ~4 MB log-spaced.
For the timing, use
read_realtime()fromiris/mem/utils.py(wrapss_memrealtime, 100 MHz constant clock) and read it either side of the op inside the kernel.iris/mem/triton/tracing.pyshows the pattern.ib_write_latis a good model worth copying — a ping-pong where half the round trip is the one-way latency, reporting min/median/99% rather than a mean. Seerun_iter_lat_writeinsrc/perftest_resources.c.Let me know if you have questions.