feat: add host range profiling - #817
Merged
Merged
Conversation
voltjia
force-pushed
the
feat/host-range-profiling
branch
from
July 28, 2026 04:05
c4ff40f to
f8d63bb
Compare
voltjia
force-pushed
the
feat/host-range-profiling
branch
from
July 28, 2026 06:38
f8d63bb to
072e796
Compare
voltjia
marked this pull request as ready for review
July 28, 2026 07:07
19 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
INFINI_OPS_ENABLE_HOST_RANGE_PROFILING, disabled by default.HostRangeScopeRAII objects at call sites; no instrumentation macro is required.--host-range-profile, cold/warm JSONL reports, calibration/control tooling, and focused regression tests.Motivation
The existing pytest benchmark path measures end-to-end operator latency but cannot attribute CPU-side overhead across Python binding, conversion, dispatch, cache, operator, and backend-submission layers.
This PR adds coarse host attribution without introducing a separate C++ benchmark framework or timing device execution. It is an opt-in diagnostic facility, not a kernel profiler or performance gate.
Related issue: N/A - follows the performance-testing design discussion.
Type of Change
feat- new feature / new operator / new platformfix- bug fixperf- performance improvement (no behavioral change)refactor- code restructuring without behavior changetest- adding or fixing tests onlydocs- documentation onlybuild/ci- build system or CI configurationchore- tooling, formatting, or other non-code changesPlatforms Affected
WITH_CPU)WITH_NVIDIA)WITH_ILUVATAR)WITH_METAX)WITH_CAMBRICON)WITH_MOORE)WITH_ASCEND)WITH_TORCH)Smoke Test Result
Final NVIDIA validation ran in
accelerator-dev/nvidia:latestonssh nvidiaagainst commit072e79680588a535dda9a1f50d0ca40d7436e0fc(tree2cba932a0c92e06d08f1fca51e40b9ad1bacf74d). Physical GPU 4 was exposed as logicalcuda:0.Earlier CPU validation on pre-RAII commit
c4ff40fpassed its profiling build/install, focused suite (41 passed), and smoke suite (54 passed, 8 skipped). It was not rerun on the final SHA, so it is retained only as earlier evidence rather than a final-SHA platform claim.Test Results on Supported Platforms
54 passed, 8 skipped)Focused pytest output for final SHA
Benchmark / Performance Impact
Final-report measurements used one NVIDIA A100-SXM4-80GB (physical
CUDA_VISIBLE_DEVICES=4, logicalcuda:0) and the profiling-ONRelWithDebInfobuild. Device synchronization occurs only outside collection windows.(13, 4), implementation 0.(4, 48, 64) x (4, 64, 6), cuBLASLt implementation 1.end_to_endbinding.bodyinclusivedispatch.callinclusiveoperator.invokeinclusivebackend.submitinclusiveThe two final-SHA JSONL reports contain 39 rows each.
add-raii-072e796.jsonlSHA256 is682b9846e366bb674535beb6a4a5a28b753a005706f8f994201db922973c413f;gemm-raii-072e796.jsonlSHA256 is2ebfae447276cbc4b1212cba36d50f3295ac03d8fb90f783aabb4ef85e423a10.An earlier same-process alternating control on the same A100 characterized active-collection overhead at approximately
+9.7%for Add and+6.6%to+7.0%for GEMM, with a conservative complete-scope calibration of 134.12 ns. Those values came from a pre-refactor experiment and are observer-effect guidance, not final-tree performance claims.Complete `add-raii-072e796.jsonl` output
{"nodeid":"tests/test_add.py::test_add[cuda-0-input_shape0-other_shape0-out_shape0-None-None-None-None-dtype0-1e-07-1e-07]","operator":"add","backend":"nvidia","phase":"cold","range":"binding.body","metric":"inclusive","count":1,"unit":"ns","mean":775383.0,"median":775383.0} {"nodeid":"tests/test_add.py::test_add[cuda-0-input_shape0-other_shape0-out_shape0-None-None-None-None-dtype0-1e-07-1e-07]","operator":"add","backend":"nvidia","phase":"cold","range":"binding.body","metric":"self","count":1,"unit":"ns","mean":2123.0,"median":2123.0} {"nodeid":"tests/test_add.py::test_add[cuda-0-input_shape0-other_shape0-out_shape0-None-None-None-None-dtype0-1e-07-1e-07]","operator":"add","backend":"nvidia","phase":"cold","range":"binding.tensor_conversion","metric":"inclusive","count":3,"unit":"ns","mean":10765.666666666666,"median":6305.0} {"nodeid":"tests/test_add.py::test_add[cuda-0-input_shape0-other_shape0-out_shape0-None-None-None-None-dtype0-1e-07-1e-07]","operator":"add","backend":"nvidia","phase":"cold","range":"binding.tensor_conversion","metric":"self","count":3,"unit":"ns","mean":10765.666666666666,"median":6305.0} {"nodeid":"tests/test_add.py::test_add[cuda-0-input_shape0-other_shape0-out_shape0-None-None-None-None-dtype0-1e-07-1e-07]","operator":"add","backend":"nvidia","phase":"cold","range":"binding.device_conversion","metric":"inclusive","count":1,"unit":"ns","mean":7986.0,"median":7986.0} {"nodeid":"tests/test_add.py::test_add[cuda-0-input_shape0-other_shape0-out_shape0-None-None-None-None-dtype0-1e-07-1e-07]","operator":"add","backend":"nvidia","phase":"cold","range":"binding.device_conversion","metric":"self","count":1,"unit":"ns","mean":7986.0,"median":7986.0} {"nodeid":"tests/test_add.py::test_add[cuda-0-input_shape0-other_shape0-out_shape0-None-None-None-None-dtype0-1e-07-1e-07]","operator":"add","backend":"nvidia","phase":"cold","range":"dispatch.call","metric":"inclusive","count":1,"unit":"ns","mean":732977.0,"median":732977.0} {"nodeid":"tests/test_add.py::test_add[cuda-0-input_shape0-other_shape0-out_shape0-None-None-None-None-dtype0-1e-07-1e-07]","operator":"add","backend":"nvidia","phase":"cold","range":"dispatch.call","metric":"self","count":1,"unit":"ns","mean":1485.0,"median":1485.0} {"nodeid":"tests/test_add.py::test_add[cuda-0-input_shape0-other_shape0-out_shape0-None-None-None-None-dtype0-1e-07-1e-07]","operator":"add","backend":"nvidia","phase":"cold","range":"operator.call","metric":"inclusive","count":1,"unit":"ns","mean":731492.0,"median":731492.0} {"nodeid":"tests/test_add.py::test_add[cuda-0-input_shape0-other_shape0-out_shape0-None-None-None-None-dtype0-1e-07-1e-07]","operator":"add","backend":"nvidia","phase":"cold","range":"operator.call","metric":"self","count":1,"unit":"ns","mean":229161.0,"median":229161.0} {"nodeid":"tests/test_add.py::test_add[cuda-0-input_shape0-other_shape0-out_shape0-None-None-None-None-dtype0-1e-07-1e-07]","operator":"add","backend":"nvidia","phase":"cold","range":"cache.key","metric":"inclusive","count":1,"unit":"ns","mean":3643.0,"median":3643.0} {"nodeid":"tests/test_add.py::test_add[cuda-0-input_shape0-other_shape0-out_shape0-None-None-None-None-dtype0-1e-07-1e-07]","operator":"add","backend":"nvidia","phase":"cold","range":"cache.key","metric":"self","count":1,"unit":"ns","mean":3643.0,"median":3643.0} {"nodeid":"tests/test_add.py::test_add[cuda-0-input_shape0-other_shape0-out_shape0-None-None-None-None-dtype0-1e-07-1e-07]","operator":"add","backend":"nvidia","phase":"cold","range":"cache.lookup","metric":"inclusive","count":1,"unit":"ns","mean":551.0,"median":551.0} {"nodeid":"tests/test_add.py::test_add[cuda-0-input_shape0-other_shape0-out_shape0-None-None-None-None-dtype0-1e-07-1e-07]","operator":"add","backend":"nvidia","phase":"cold","range":"cache.lookup","metric":"self","count":1,"unit":"ns","mean":551.0,"median":551.0} {"nodeid":"tests/test_add.py::test_add[cuda-0-input_shape0-other_shape0-out_shape0-None-None-None-None-dtype0-1e-07-1e-07]","operator":"add","backend":"nvidia","phase":"cold","range":"cache.construct","metric":"inclusive","count":1,"unit":"ns","mean":478299.0,"median":478299.0} {"nodeid":"tests/test_add.py::test_add[cuda-0-input_shape0-other_shape0-out_shape0-None-None-None-None-dtype0-1e-07-1e-07]","operator":"add","backend":"nvidia","phase":"cold","range":"cache.construct","metric":"self","count":1,"unit":"ns","mean":478299.0,"median":478299.0} {"nodeid":"tests/test_add.py::test_add[cuda-0-input_shape0-other_shape0-out_shape0-None-None-None-None-dtype0-1e-07-1e-07]","operator":"add","backend":"nvidia","phase":"cold","range":"operator.invoke","metric":"inclusive","count":1,"unit":"ns","mean":19838.0,"median":19838.0} {"nodeid":"tests/test_add.py::test_add[cuda-0-input_shape0-other_shape0-out_shape0-None-None-None-None-dtype0-1e-07-1e-07]","operator":"add","backend":"nvidia","phase":"cold","range":"operator.invoke","metric":"self","count":1,"unit":"ns","mean":2157.0,"median":2157.0} {"nodeid":"tests/test_add.py::test_add[cuda-0-input_shape0-other_shape0-out_shape0-None-None-None-None-dtype0-1e-07-1e-07]","operator":"add","backend":"nvidia","phase":"cold","range":"backend.submit","metric":"inclusive","count":1,"unit":"ns","mean":17681.0,"median":17681.0} {"nodeid":"tests/test_add.py::test_add[cuda-0-input_shape0-other_shape0-out_shape0-None-None-None-None-dtype0-1e-07-1e-07]","operator":"add","backend":"nvidia","phase":"cold","range":"backend.submit","metric":"self","count":1,"unit":"ns","mean":17681.0,"median":17681.0} {"nodeid":"tests/test_add.py::test_add[cuda-0-input_shape0-other_shape0-out_shape0-None-None-None-None-dtype0-1e-07-1e-07]","operator":"add","backend":"nvidia","phase":"warm","range":"binding.body","metric":"inclusive","count":6500,"unit":"ns","mean":19124.904615384614,"median":18887.0} {"nodeid":"tests/test_add.py::test_add[cuda-0-input_shape0-other_shape0-out_shape0-None-None-None-None-dtype0-1e-07-1e-07]","operator":"add","backend":"nvidia","phase":"warm","range":"binding.body","metric":"self","count":6500,"unit":"ns","mean":775.2773846153846,"median":674.0} {"nodeid":"tests/test_add.py::test_add[cuda-0-input_shape0-other_shape0-out_shape0-None-None-None-None-dtype0-1e-07-1e-07]","operator":"add","backend":"nvidia","phase":"warm","range":"binding.tensor_conversion","metric":"inclusive","count":19500,"unit":"ns","mean":3287.0886153846154,"median":3166.0} {"nodeid":"tests/test_add.py::test_add[cuda-0-input_shape0-other_shape0-out_shape0-None-None-None-None-dtype0-1e-07-1e-07]","operator":"add","backend":"nvidia","phase":"warm","range":"binding.tensor_conversion","metric":"self","count":19500,"unit":"ns","mean":3287.0886153846154,"median":3166.0} {"nodeid":"tests/test_add.py::test_add[cuda-0-input_shape0-other_shape0-out_shape0-None-None-None-None-dtype0-1e-07-1e-07]","operator":"add","backend":"nvidia","phase":"warm","range":"binding.device_conversion","metric":"inclusive","count":6500,"unit":"ns","mean":1399.406923076923,"median":1395.0} {"nodeid":"tests/test_add.py::test_add[cuda-0-input_shape0-other_shape0-out_shape0-None-None-None-None-dtype0-1e-07-1e-07]","operator":"add","backend":"nvidia","phase":"warm","range":"binding.device_conversion","metric":"self","count":6500,"unit":"ns","mean":1399.406923076923,"median":1395.0} {"nodeid":"tests/test_add.py::test_add[cuda-0-input_shape0-other_shape0-out_shape0-None-None-None-None-dtype0-1e-07-1e-07]","operator":"add","backend":"nvidia","phase":"warm","range":"dispatch.call","metric":"inclusive","count":6500,"unit":"ns","mean":7088.954461538461,"median":6947.5} {"nodeid":"tests/test_add.py::test_add[cuda-0-input_shape0-other_shape0-out_shape0-None-None-None-None-dtype0-1e-07-1e-07]","operator":"add","backend":"nvidia","phase":"warm","range":"dispatch.call","metric":"self","count":6500,"unit":"ns","mean":244.76738461538463,"median":229.0} {"nodeid":"tests/test_add.py::test_add[cuda-0-input_shape0-other_shape0-out_shape0-None-None-None-None-dtype0-1e-07-1e-07]","operator":"add","backend":"nvidia","phase":"warm","range":"operator.call","metric":"inclusive","count":6500,"unit":"ns","mean":6844.187076923077,"median":6714.5} {"nodeid":"tests/test_add.py::test_add[cuda-0-input_shape0-other_shape0-out_shape0-None-None-None-None-dtype0-1e-07-1e-07]","operator":"add","backend":"nvidia","phase":"warm","range":"operator.call","metric":"self","count":6500,"unit":"ns","mean":486.9393846153846,"median":449.0} {"nodeid":"tests/test_add.py::test_add[cuda-0-input_shape0-other_shape0-out_shape0-None-None-None-None-dtype0-1e-07-1e-07]","operator":"add","backend":"nvidia","phase":"warm","range":"cache.key","metric":"inclusive","count":6500,"unit":"ns","mean":522.2975384615385,"median":512.0} {"nodeid":"tests/test_add.py::test_add[cuda-0-input_shape0-other_shape0-out_shape0-None-None-None-None-dtype0-1e-07-1e-07]","operator":"add","backend":"nvidia","phase":"warm","range":"cache.key","metric":"self","count":6500,"unit":"ns","mean":522.2975384615385,"median":512.0} {"nodeid":"tests/test_add.py::test_add[cuda-0-input_shape0-other_shape0-out_shape0-None-None-None-None-dtype0-1e-07-1e-07]","operator":"add","backend":"nvidia","phase":"warm","range":"cache.lookup","metric":"inclusive","count":6500,"unit":"ns","mean":256.622,"median":257.0} {"nodeid":"tests/test_add.py::test_add[cuda-0-input_shape0-other_shape0-out_shape0-None-None-None-None-dtype0-1e-07-1e-07]","operator":"add","backend":"nvidia","phase":"warm","range":"cache.lookup","metric":"self","count":6500,"unit":"ns","mean":256.622,"median":257.0} {"nodeid":"tests/test_add.py::test_add[cuda-0-input_shape0-other_shape0-out_shape0-None-None-None-None-dtype0-1e-07-1e-07]","operator":"add","backend":"nvidia","phase":"warm","range":"operator.invoke","metric":"inclusive","count":6500,"unit":"ns","mean":5578.328153846154,"median":5486.0} {"nodeid":"tests/test_add.py::test_add[cuda-0-input_shape0-other_shape0-out_shape0-None-None-None-None-dtype0-1e-07-1e-07]","operator":"add","backend":"nvidia","phase":"warm","range":"operator.invoke","metric":"self","count":6500,"unit":"ns","mean":917.5878461538462,"median":886.0} {"nodeid":"tests/test_add.py::test_add[cuda-0-input_shape0-other_shape0-out_shape0-None-None-None-None-dtype0-1e-07-1e-07]","operator":"add","backend":"nvidia","phase":"warm","range":"backend.submit","metric":"inclusive","count":6500,"unit":"ns","mean":4660.740307692307,"median":4594.0} {"nodeid":"tests/test_add.py::test_add[cuda-0-input_shape0-other_shape0-out_shape0-None-None-None-None-dtype0-1e-07-1e-07]","operator":"add","backend":"nvidia","phase":"warm","range":"backend.submit","metric":"self","count":6500,"unit":"ns","mean":4660.740307692307,"median":4594.0} {"nodeid":"tests/test_add.py::test_add[cuda-0-input_shape0-other_shape0-out_shape0-None-None-None-None-dtype0-1e-07-1e-07]","operator":"add","backend":"nvidia","phase":"warm","range":"end_to_end","metric":"inclusive","count":6500,"unit":"ns","mean":30906.074895308568,"median":30913.334339857105}Complete `gemm-raii-072e796.jsonl` output
{"nodeid":"tests/test_gemm.py::test_gemm[cuda-1-dtype0-0.001-0.001-False-False-0-1-a_shape4-b_shape4-c_shape4-None-None-None]","operator":"gemm","backend":"nvidia","phase":"cold","range":"binding.body","metric":"inclusive","count":1,"unit":"ns","mean":113921.0,"median":113921.0} {"nodeid":"tests/test_gemm.py::test_gemm[cuda-1-dtype0-0.001-0.001-False-False-0-1-a_shape4-b_shape4-c_shape4-None-None-None]","operator":"gemm","backend":"nvidia","phase":"cold","range":"binding.body","metric":"self","count":1,"unit":"ns","mean":1824.0,"median":1824.0} {"nodeid":"tests/test_gemm.py::test_gemm[cuda-1-dtype0-0.001-0.001-False-False-0-1-a_shape4-b_shape4-c_shape4-None-None-None]","operator":"gemm","backend":"nvidia","phase":"cold","range":"binding.tensor_conversion","metric":"inclusive","count":3,"unit":"ns","mean":12624.0,"median":7883.0} {"nodeid":"tests/test_gemm.py::test_gemm[cuda-1-dtype0-0.001-0.001-False-False-0-1-a_shape4-b_shape4-c_shape4-None-None-None]","operator":"gemm","backend":"nvidia","phase":"cold","range":"binding.tensor_conversion","metric":"self","count":3,"unit":"ns","mean":12624.0,"median":7883.0} {"nodeid":"tests/test_gemm.py::test_gemm[cuda-1-dtype0-0.001-0.001-False-False-0-1-a_shape4-b_shape4-c_shape4-None-None-None]","operator":"gemm","backend":"nvidia","phase":"cold","range":"binding.device_conversion","metric":"inclusive","count":1,"unit":"ns","mean":8177.0,"median":8177.0} {"nodeid":"tests/test_gemm.py::test_gemm[cuda-1-dtype0-0.001-0.001-False-False-0-1-a_shape4-b_shape4-c_shape4-None-None-None]","operator":"gemm","backend":"nvidia","phase":"cold","range":"binding.device_conversion","metric":"self","count":1,"unit":"ns","mean":8177.0,"median":8177.0} {"nodeid":"tests/test_gemm.py::test_gemm[cuda-1-dtype0-0.001-0.001-False-False-0-1-a_shape4-b_shape4-c_shape4-None-None-None]","operator":"gemm","backend":"nvidia","phase":"cold","range":"dispatch.call","metric":"inclusive","count":1,"unit":"ns","mean":66048.0,"median":66048.0} {"nodeid":"tests/test_gemm.py::test_gemm[cuda-1-dtype0-0.001-0.001-False-False-0-1-a_shape4-b_shape4-c_shape4-None-None-None]","operator":"gemm","backend":"nvidia","phase":"cold","range":"dispatch.call","metric":"self","count":1,"unit":"ns","mean":845.0,"median":845.0} {"nodeid":"tests/test_gemm.py::test_gemm[cuda-1-dtype0-0.001-0.001-False-False-0-1-a_shape4-b_shape4-c_shape4-None-None-None]","operator":"gemm","backend":"nvidia","phase":"cold","range":"operator.call","metric":"inclusive","count":1,"unit":"ns","mean":65203.0,"median":65203.0} {"nodeid":"tests/test_gemm.py::test_gemm[cuda-1-dtype0-0.001-0.001-False-False-0-1-a_shape4-b_shape4-c_shape4-None-None-None]","operator":"gemm","backend":"nvidia","phase":"cold","range":"operator.call","metric":"self","count":1,"unit":"ns","mean":3445.0,"median":3445.0} {"nodeid":"tests/test_gemm.py::test_gemm[cuda-1-dtype0-0.001-0.001-False-False-0-1-a_shape4-b_shape4-c_shape4-None-None-None]","operator":"gemm","backend":"nvidia","phase":"cold","range":"cache.key","metric":"inclusive","count":1,"unit":"ns","mean":3257.0,"median":3257.0} {"nodeid":"tests/test_gemm.py::test_gemm[cuda-1-dtype0-0.001-0.001-False-False-0-1-a_shape4-b_shape4-c_shape4-None-None-None]","operator":"gemm","backend":"nvidia","phase":"cold","range":"cache.key","metric":"self","count":1,"unit":"ns","mean":3257.0,"median":3257.0} {"nodeid":"tests/test_gemm.py::test_gemm[cuda-1-dtype0-0.001-0.001-False-False-0-1-a_shape4-b_shape4-c_shape4-None-None-None]","operator":"gemm","backend":"nvidia","phase":"cold","range":"cache.lookup","metric":"inclusive","count":1,"unit":"ns","mean":268.0,"median":268.0} {"nodeid":"tests/test_gemm.py::test_gemm[cuda-1-dtype0-0.001-0.001-False-False-0-1-a_shape4-b_shape4-c_shape4-None-None-None]","operator":"gemm","backend":"nvidia","phase":"cold","range":"cache.lookup","metric":"self","count":1,"unit":"ns","mean":268.0,"median":268.0} {"nodeid":"tests/test_gemm.py::test_gemm[cuda-1-dtype0-0.001-0.001-False-False-0-1-a_shape4-b_shape4-c_shape4-None-None-None]","operator":"gemm","backend":"nvidia","phase":"cold","range":"cache.construct","metric":"inclusive","count":1,"unit":"ns","mean":6145.0,"median":6145.0} {"nodeid":"tests/test_gemm.py::test_gemm[cuda-1-dtype0-0.001-0.001-False-False-0-1-a_shape4-b_shape4-c_shape4-None-None-None]","operator":"gemm","backend":"nvidia","phase":"cold","range":"cache.construct","metric":"self","count":1,"unit":"ns","mean":6145.0,"median":6145.0} {"nodeid":"tests/test_gemm.py::test_gemm[cuda-1-dtype0-0.001-0.001-False-False-0-1-a_shape4-b_shape4-c_shape4-None-None-None]","operator":"gemm","backend":"nvidia","phase":"cold","range":"operator.invoke","metric":"inclusive","count":1,"unit":"ns","mean":52088.0,"median":52088.0} {"nodeid":"tests/test_gemm.py::test_gemm[cuda-1-dtype0-0.001-0.001-False-False-0-1-a_shape4-b_shape4-c_shape4-None-None-None]","operator":"gemm","backend":"nvidia","phase":"cold","range":"operator.invoke","metric":"self","count":1,"unit":"ns","mean":799.0,"median":799.0} {"nodeid":"tests/test_gemm.py::test_gemm[cuda-1-dtype0-0.001-0.001-False-False-0-1-a_shape4-b_shape4-c_shape4-None-None-None]","operator":"gemm","backend":"nvidia","phase":"cold","range":"backend.submit","metric":"inclusive","count":1,"unit":"ns","mean":51289.0,"median":51289.0} {"nodeid":"tests/test_gemm.py::test_gemm[cuda-1-dtype0-0.001-0.001-False-False-0-1-a_shape4-b_shape4-c_shape4-None-None-None]","operator":"gemm","backend":"nvidia","phase":"cold","range":"backend.submit","metric":"self","count":1,"unit":"ns","mean":51289.0,"median":51289.0} {"nodeid":"tests/test_gemm.py::test_gemm[cuda-1-dtype0-0.001-0.001-False-False-0-1-a_shape4-b_shape4-c_shape4-None-None-None]","operator":"gemm","backend":"nvidia","phase":"warm","range":"binding.body","metric":"inclusive","count":5000,"unit":"ns","mean":27977.3664,"median":25542.5} {"nodeid":"tests/test_gemm.py::test_gemm[cuda-1-dtype0-0.001-0.001-False-False-0-1-a_shape4-b_shape4-c_shape4-None-None-None]","operator":"gemm","backend":"nvidia","phase":"warm","range":"binding.body","metric":"self","count":5000,"unit":"ns","mean":896.288,"median":734.0} {"nodeid":"tests/test_gemm.py::test_gemm[cuda-1-dtype0-0.001-0.001-False-False-0-1-a_shape4-b_shape4-c_shape4-None-None-None]","operator":"gemm","backend":"nvidia","phase":"warm","range":"binding.tensor_conversion","metric":"inclusive","count":15000,"unit":"ns","mean":3718.7997333333333,"median":3262.0} {"nodeid":"tests/test_gemm.py::test_gemm[cuda-1-dtype0-0.001-0.001-False-False-0-1-a_shape4-b_shape4-c_shape4-None-None-None]","operator":"gemm","backend":"nvidia","phase":"warm","range":"binding.tensor_conversion","metric":"self","count":15000,"unit":"ns","mean":3718.7997333333333,"median":3262.0} {"nodeid":"tests/test_gemm.py::test_gemm[cuda-1-dtype0-0.001-0.001-False-False-0-1-a_shape4-b_shape4-c_shape4-None-None-None]","operator":"gemm","backend":"nvidia","phase":"warm","range":"binding.device_conversion","metric":"inclusive","count":5000,"unit":"ns","mean":1573.5644,"median":1426.0} {"nodeid":"tests/test_gemm.py::test_gemm[cuda-1-dtype0-0.001-0.001-False-False-0-1-a_shape4-b_shape4-c_shape4-None-None-None]","operator":"gemm","backend":"nvidia","phase":"warm","range":"binding.device_conversion","metric":"self","count":5000,"unit":"ns","mean":1573.5644,"median":1426.0} {"nodeid":"tests/test_gemm.py::test_gemm[cuda-1-dtype0-0.001-0.001-False-False-0-1-a_shape4-b_shape4-c_shape4-None-None-None]","operator":"gemm","backend":"nvidia","phase":"warm","range":"dispatch.call","metric":"inclusive","count":5000,"unit":"ns","mean":14351.1148,"median":13213.0} {"nodeid":"tests/test_gemm.py::test_gemm[cuda-1-dtype0-0.001-0.001-False-False-0-1-a_shape4-b_shape4-c_shape4-None-None-None]","operator":"gemm","backend":"nvidia","phase":"warm","range":"dispatch.call","metric":"self","count":5000,"unit":"ns","mean":245.727,"median":209.0} {"nodeid":"tests/test_gemm.py::test_gemm[cuda-1-dtype0-0.001-0.001-False-False-0-1-a_shape4-b_shape4-c_shape4-None-None-None]","operator":"gemm","backend":"nvidia","phase":"warm","range":"operator.call","metric":"inclusive","count":5000,"unit":"ns","mean":14105.3878,"median":13003.0} {"nodeid":"tests/test_gemm.py::test_gemm[cuda-1-dtype0-0.001-0.001-False-False-0-1-a_shape4-b_shape4-c_shape4-None-None-None]","operator":"gemm","backend":"nvidia","phase":"warm","range":"operator.call","metric":"self","count":5000,"unit":"ns","mean":545.413,"median":463.0} {"nodeid":"tests/test_gemm.py::test_gemm[cuda-1-dtype0-0.001-0.001-False-False-0-1-a_shape4-b_shape4-c_shape4-None-None-None]","operator":"gemm","backend":"nvidia","phase":"warm","range":"cache.key","metric":"inclusive","count":5000,"unit":"ns","mean":844.6874,"median":771.0} {"nodeid":"tests/test_gemm.py::test_gemm[cuda-1-dtype0-0.001-0.001-False-False-0-1-a_shape4-b_shape4-c_shape4-None-None-None]","operator":"gemm","backend":"nvidia","phase":"warm","range":"cache.key","metric":"self","count":5000,"unit":"ns","mean":844.6874,"median":771.0} {"nodeid":"tests/test_gemm.py::test_gemm[cuda-1-dtype0-0.001-0.001-False-False-0-1-a_shape4-b_shape4-c_shape4-None-None-None]","operator":"gemm","backend":"nvidia","phase":"warm","range":"cache.lookup","metric":"inclusive","count":5000,"unit":"ns","mean":253.9402,"median":226.0} {"nodeid":"tests/test_gemm.py::test_gemm[cuda-1-dtype0-0.001-0.001-False-False-0-1-a_shape4-b_shape4-c_shape4-None-None-None]","operator":"gemm","backend":"nvidia","phase":"warm","range":"cache.lookup","metric":"self","count":5000,"unit":"ns","mean":253.9402,"median":226.0} {"nodeid":"tests/test_gemm.py::test_gemm[cuda-1-dtype0-0.001-0.001-False-False-0-1-a_shape4-b_shape4-c_shape4-None-None-None]","operator":"gemm","backend":"nvidia","phase":"warm","range":"operator.invoke","metric":"inclusive","count":5000,"unit":"ns","mean":12461.3472,"median":11538.0} {"nodeid":"tests/test_gemm.py::test_gemm[cuda-1-dtype0-0.001-0.001-False-False-0-1-a_shape4-b_shape4-c_shape4-None-None-None]","operator":"gemm","backend":"nvidia","phase":"warm","range":"operator.invoke","metric":"self","count":5000,"unit":"ns","mean":709.7614,"median":639.0} {"nodeid":"tests/test_gemm.py::test_gemm[cuda-1-dtype0-0.001-0.001-False-False-0-1-a_shape4-b_shape4-c_shape4-None-None-None]","operator":"gemm","backend":"nvidia","phase":"warm","range":"backend.submit","metric":"inclusive","count":5000,"unit":"ns","mean":11751.5858,"median":10890.0} {"nodeid":"tests/test_gemm.py::test_gemm[cuda-1-dtype0-0.001-0.001-False-False-0-1-a_shape4-b_shape4-c_shape4-None-None-None]","operator":"gemm","backend":"nvidia","phase":"warm","range":"backend.submit","metric":"self","count":5000,"unit":"ns","mean":11751.5858,"median":10890.0} {"nodeid":"tests/test_gemm.py::test_gemm[cuda-1-dtype0-0.001-0.001-False-False-0-1-a_shape4-b_shape4-c_shape4-None-None-None]","operator":"gemm","backend":"nvidia","phase":"warm","range":"end_to_end","metric":"inclusive","count":5000,"unit":"ns","mean":40760.25132089853,"median":39868.587628006935}Notes for Reviewers
backend.submitmeasures host API work through API return; it does not measure device execution or kernel duration. CUDA APIs may still block on queue/device progress.end_to_endand replayed C++ ranges use separate populations and must not be subtracted from one another.host_range_profiler.ccselects the implementation,host_range_profiler.hselects the real or empty scope, andoperator.hpreserves the exact profiling-OFF cache hot path.HostRangeScopesymbols.host_range_profiler.his internal and is excluded from both installed headers and the generated publicoperator.h, avoiding an ON/OFF class-definition contract for downstream consumers.pytest-xdistis intentionally rejected when host-range output is enabled.docs/superpowers/were removed from the final branch.