Skip to content

[Feature] GPUDirect Storage support for consolidated TensorDicts - #1702

Draft
vmoens wants to merge 1 commit into
mainfrom
gds-direct-storage
Draft

[Feature] GPUDirect Storage support for consolidated TensorDicts#1702
vmoens wants to merge 1 commit into
mainfrom
gds-direct-storage

Conversation

@vmoens

@vmoens vmoens commented May 15, 2026

Copy link
Copy Markdown
Collaborator

Summary

Adds opt-in GPUDirect Storage (NVIDIA cuFile) support to consolidate() and from_consolidated(). When a tensordict is laid out as a single contiguous storage with per-leaf offsets — which is exactly what consolidate() already produces — cuFile can DMA the whole payload between disk and a registered CUDA buffer without going through host RAM. One buffer registration, one cuFileRead / cuFileWrite, views are then free.

New API (both default False, no silent fallback):

# Load: DMA file → CUDA without host bounce
td = TensorDict.from_consolidated("td.pt", device="cuda", use_gds=True)

# Save: DMA CUDA → file without host bounce
td.consolidate(filename="td.pt", use_gds=True)

Requires PyTorch ≥ 2.7 (cuFile bindings), a CUDA device, nvidia-fs kernel module loaded, and a GDS-supported filesystem (ext4 w/ direct I/O, GPFS, Lustre, WekaFS, …). Any failure raises with an actionable hint; there is no fallback in v1.

What's in scope

  • Load + save paths, synchronous (matching torch.cuda.gds).
  • A small private tensordict/_gds.py with capability probe, _require_gds, and the load/save helpers. torch.cuda.gds is imported function-locally so importing tensordict stays free on installs without it.
  • Buffer-lifetime management via weakref.finalize so the cuFile registration outlives all leaves and gets cleaned up at GC.
  • Tests in test/test_memmap.py::TestGDS with an end-to-end smoke probe gating the round-trip tests via pytest.mark.skipif.
  • A "GPU-direct loading and saving with GPUDirect Storage" subsection in docs/source/saving.rst.

Non-goals (deferred)

  • Per-leaf .memmap files (would require N buffer registrations).
  • Async / threaded multi-file concurrency.
  • Windows support.

Test plan

  • pytest test/test_memmap.py on macOS: 563 pass, 5 GDS tests skip correctly (no CUDA).
  • Broader sweep: pytest -k "consolidate or memmap" across test_memmap.py, test_compatibility.py, test_tensordict.py, test_tensorclass.py — 583 pass, no regressions in the unchanged paths.
  • On an H100 node with PyTorch nightly cu128: 4 error-surface tests pass on CUDA. test_gds_raises_when_unavailable confirms that on a CUDA host without nvidia-fs, use_gds=True raises a clear cuFile error rather than silently corrupting data.
  • Needs a GDS-capable node: the 4 round-trip tests (test_gds_load_roundtrip_small, test_gds_save_roundtrip_small, test_gds_save_then_gds_load, test_gds_leaf_outlives_td) require nvidia-fs loaded + supported FS. They skip cleanly otherwise.

🤖 Generated with Claude Code

…orDicts

Add opt-in load and save paths that DMA the consolidated data region
directly between disk and a CUDA buffer via NVIDIA's cuFile, bypassing
host RAM. The single-storage / many-views layout produced by
`consolidate()` is a natural fit for GDS: one buffer registration, one
cuFileRead/cuFileWrite, views are then free.

New API:
- `TensorDict.from_consolidated(filename, *, device=None, use_gds=False)`
- `TensorDict.consolidate(filename=..., use_gds=True)`

Both paths are synchronous (matching `torch.cuda.gds`), disabled by
default, and raise on any failure (no silent fallback). Requires
PyTorch >= 2.7 with cuFile bindings, a CUDA device, nvidia-fs, and a
GDS-supported filesystem.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@meta-cla meta-cla Bot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label May 15, 2026
@github-actions github-actions Bot added Feature New feature documentation Improvements or additions to documentation Test memmap MemoryMappedTensor labels May 15, 2026
@github-actions

Copy link
Copy Markdown
Contributor

$\color{#D29922}\textsf{\Large&amp;#x26A0;\kern{0.2cm}\normalsize Warning}$ Result of CPU Benchmark Tests

Total Benchmarks: 341. Improved: $\large\color{#35bf28}19$. Worsened: $\large\color{#d91a1a}35$.

Expand to view detailed results
Name Max Mean Ops Ops on Repo HEAD Change
test_collector_preallocated_write[stack_out-cpu-32-2] 0.2156ms 0.1648ms 6.0683 KOps/s 6.0283 KOps/s $\color{#35bf28}+0.66\%$
test_collector_preallocated_write[stack_out-cpu-32-8] 0.3679ms 0.2953ms 3.3869 KOps/s 3.4721 KOps/s $\color{#d91a1a}-2.46\%$
test_collector_preallocated_write[stack_out-cpu-32-32] 0.8503ms 0.7516ms 1.3306 KOps/s 1.3289 KOps/s $\color{#35bf28}+0.12\%$
test_collector_preallocated_write[stack_out-cpu-4096-2] 0.3948ms 0.3458ms 2.8921 KOps/s 3.0388 KOps/s $\color{#d91a1a}-4.83\%$
test_collector_preallocated_write[stack_out-cpu-4096-8] 1.3476ms 1.1641ms 859.0442 Ops/s 904.0397 Ops/s $\color{#d91a1a}-4.98\%$
test_collector_preallocated_write[stack_out-cpu-4096-32] 7.3563ms 7.1707ms 139.4572 Ops/s 136.8181 Ops/s $\color{#35bf28}+1.93\%$
test_collector_preallocated_write[stack_out-cuda-32-2] 0.3170ms 0.2570ms 3.8917 KOps/s 4.0869 KOps/s $\color{#d91a1a}-4.78\%$
test_collector_preallocated_write[stack_out-cuda-32-8] 0.4868ms 0.3813ms 2.6224 KOps/s 2.7752 KOps/s $\textbf{\color{#d91a1a}-5.51\%}$
test_collector_preallocated_write[stack_out-cuda-32-32] 0.8745ms 0.7982ms 1.2528 KOps/s 1.2663 KOps/s $\color{#d91a1a}-1.06\%$
test_collector_preallocated_write[stack_out-cuda-4096-2] 0.3632ms 0.2608ms 3.8346 KOps/s 4.1478 KOps/s $\textbf{\color{#d91a1a}-7.55\%}$
test_collector_preallocated_write[stack_out-cuda-4096-8] 0.4697ms 0.3823ms 2.6159 KOps/s 2.7662 KOps/s $\textbf{\color{#d91a1a}-5.43\%}$
test_collector_preallocated_write[stack_out-cuda-4096-32] 0.9585ms 0.8599ms 1.1629 KOps/s 1.1672 KOps/s $\color{#d91a1a}-0.37\%$
test_collector_preallocated_write[set_at_loop-cpu-32-2] 0.2724ms 0.2194ms 4.5581 KOps/s 4.8426 KOps/s $\textbf{\color{#d91a1a}-5.87\%}$
test_collector_preallocated_write[set_at_loop-cpu-32-8] 0.9366ms 0.8568ms 1.1672 KOps/s 1.2553 KOps/s $\textbf{\color{#d91a1a}-7.02\%}$
test_collector_preallocated_write[set_at_loop-cpu-32-32] 3.5794ms 3.4009ms 294.0431 Ops/s 310.5140 Ops/s $\textbf{\color{#d91a1a}-5.30\%}$
test_collector_preallocated_write[set_at_loop-cpu-4096-2] 0.7647ms 0.3773ms 2.6507 KOps/s 2.7731 KOps/s $\color{#d91a1a}-4.41\%$
test_collector_preallocated_write[set_at_loop-cpu-4096-8] 1.9920ms 1.8103ms 552.3834 Ops/s 619.0731 Ops/s $\textbf{\color{#d91a1a}-10.77\%}$
test_collector_preallocated_write[set_at_loop-cpu-4096-32] 10.5725ms 10.2502ms 97.5589 Ops/s 98.9065 Ops/s $\color{#d91a1a}-1.36\%$
test_collector_preallocated_write[set_at_loop-cuda-32-2] 0.4547ms 0.3947ms 2.5336 KOps/s 2.5965 KOps/s $\color{#d91a1a}-2.42\%$
test_collector_preallocated_write[set_at_loop-cuda-32-8] 1.5939ms 1.4792ms 676.0432 Ops/s 698.9140 Ops/s $\color{#d91a1a}-3.27\%$
test_collector_preallocated_write[set_at_loop-cuda-32-32] 6.0685ms 5.8063ms 172.2253 Ops/s 176.2793 Ops/s $\color{#d91a1a}-2.30\%$
test_collector_preallocated_write[set_at_loop-cuda-4096-2] 0.5217ms 0.4002ms 2.4988 KOps/s 2.5920 KOps/s $\color{#d91a1a}-3.60\%$
test_collector_preallocated_write[set_at_loop-cuda-4096-8] 1.6127ms 1.4929ms 669.8563 Ops/s 694.8796 Ops/s $\color{#d91a1a}-3.60\%$
test_collector_preallocated_write[set_at_loop-cuda-4096-32] 6.1132ms 5.8241ms 171.6997 Ops/s 176.6076 Ops/s $\color{#d91a1a}-2.78\%$
test_collector_preallocated_write[copy_at-cpu-32-2] 0.2385ms 0.1682ms 5.9456 KOps/s 5.8945 KOps/s $\color{#35bf28}+0.87\%$
test_collector_preallocated_write[copy_at-cpu-32-8] 0.7442ms 0.6557ms 1.5250 KOps/s 1.5191 KOps/s $\color{#35bf28}+0.39\%$
test_collector_preallocated_write[copy_at-cpu-32-32] 2.6883ms 2.5952ms 385.3219 Ops/s 384.4170 Ops/s $\color{#35bf28}+0.24\%$
test_collector_preallocated_write[copy_at-cpu-4096-2] 0.4284ms 0.3167ms 3.1576 KOps/s 3.2465 KOps/s $\color{#d91a1a}-2.74\%$
test_collector_preallocated_write[copy_at-cpu-4096-8] 1.8610ms 1.4210ms 703.7168 Ops/s 703.2508 Ops/s $\color{#35bf28}+0.07\%$
test_collector_preallocated_write[copy_at-cpu-4096-32] 9.7779ms 9.3521ms 106.9273 Ops/s 106.9117 Ops/s $\color{#35bf28}+0.01\%$
test_collector_preallocated_write[copy_at-cuda-32-2] 0.4229ms 0.3231ms 3.0948 KOps/s 3.1694 KOps/s $\color{#d91a1a}-2.35\%$
test_collector_preallocated_write[copy_at-cuda-32-8] 1.2752ms 1.2039ms 830.6038 Ops/s 851.0484 Ops/s $\color{#d91a1a}-2.40\%$
test_collector_preallocated_write[copy_at-cuda-32-32] 4.8087ms 4.7099ms 212.3178 Ops/s 217.5082 Ops/s $\color{#d91a1a}-2.39\%$
test_collector_preallocated_write[copy_at-cuda-4096-2] 0.4501ms 0.3247ms 3.0802 KOps/s 3.1510 KOps/s $\color{#d91a1a}-2.25\%$
test_collector_preallocated_write[copy_at-cuda-4096-8] 1.3049ms 1.2086ms 827.3914 Ops/s 845.4689 Ops/s $\color{#d91a1a}-2.14\%$
test_collector_preallocated_write[copy_at-cuda-4096-32] 4.8512ms 4.7343ms 211.2228 Ops/s 216.2736 Ops/s $\color{#d91a1a}-2.34\%$
test_collector_preallocated_write[manual_leaf_copy-cpu-32-2] 0.1804ms 0.1195ms 8.3711 KOps/s 8.6591 KOps/s $\color{#d91a1a}-3.33\%$
test_collector_preallocated_write[manual_leaf_copy-cpu-32-8] 0.5367ms 0.4665ms 2.1434 KOps/s 2.2039 KOps/s $\color{#d91a1a}-2.74\%$
test_collector_preallocated_write[manual_leaf_copy-cpu-32-32] 1.9216ms 1.8537ms 539.4485 Ops/s 552.7055 Ops/s $\color{#d91a1a}-2.40\%$
test_collector_preallocated_write[manual_leaf_copy-cpu-4096-2] 0.3178ms 0.2574ms 3.8846 KOps/s 3.9314 KOps/s $\color{#d91a1a}-1.19\%$
test_collector_preallocated_write[manual_leaf_copy-cpu-4096-8] 1.7398ms 1.2406ms 806.0313 Ops/s 853.5921 Ops/s $\textbf{\color{#d91a1a}-5.57\%}$
test_collector_preallocated_write[manual_leaf_copy-cpu-4096-32] 8.7087ms 8.5056ms 117.5698 Ops/s 119.1013 Ops/s $\color{#d91a1a}-1.29\%$
test_collector_preallocated_write[manual_leaf_copy-cuda-32-2] 0.3552ms 0.2823ms 3.5421 KOps/s 3.7287 KOps/s $\textbf{\color{#d91a1a}-5.01\%}$
test_collector_preallocated_write[manual_leaf_copy-cuda-32-8] 1.1354ms 1.0478ms 954.3677 Ops/s 995.4730 Ops/s $\color{#d91a1a}-4.13\%$
test_collector_preallocated_write[manual_leaf_copy-cuda-32-32] 4.2366ms 4.1288ms 242.2036 Ops/s 254.9777 Ops/s $\textbf{\color{#d91a1a}-5.01\%}$
test_collector_preallocated_write[manual_leaf_copy-cuda-4096-2] 0.3699ms 0.2793ms 3.5802 KOps/s 3.6980 KOps/s $\color{#d91a1a}-3.19\%$
test_collector_preallocated_write[manual_leaf_copy-cuda-4096-8] 1.2181ms 1.0432ms 958.6205 Ops/s 989.7785 Ops/s $\color{#d91a1a}-3.15\%$
test_collector_preallocated_write[manual_leaf_copy-cuda-4096-32] 4.3764ms 4.1399ms 241.5517 Ops/s 252.7816 Ops/s $\color{#d91a1a}-4.44\%$
test_wide_nested_preallocated_write[stack_out-cpu-128-128] 15.8659ms 15.6323ms 63.9703 Ops/s 64.4001 Ops/s $\color{#d91a1a}-0.67\%$
test_wide_nested_preallocated_write[stack_out-cpu-128-256] 32.0146ms 31.4967ms 31.7494 Ops/s 31.9124 Ops/s $\color{#d91a1a}-0.51\%$
test_wide_nested_preallocated_write[stack_out-cpu-4096-128] 84.3733ms 83.9142ms 11.9169 Ops/s 12.1585 Ops/s $\color{#d91a1a}-1.99\%$
test_wide_nested_preallocated_write[stack_out-cpu-4096-256] 0.1982s 0.1977s 5.0570 Ops/s 4.8989 Ops/s $\color{#35bf28}+3.23\%$
test_wide_nested_preallocated_write[stack_out-cuda-128-128] 13.2687ms 13.0765ms 76.4730 Ops/s 76.2735 Ops/s $\color{#35bf28}+0.26\%$
test_wide_nested_preallocated_write[stack_out-cuda-128-256] 26.2505ms 25.9381ms 38.5533 Ops/s 39.0313 Ops/s $\color{#d91a1a}-1.22\%$
test_wide_nested_preallocated_write[stack_out-cuda-4096-128] 13.4878ms 13.2926ms 75.2297 Ops/s 75.4914 Ops/s $\color{#d91a1a}-0.35\%$
test_wide_nested_preallocated_write[stack_out-cuda-4096-256] 26.2671ms 26.1260ms 38.2760 Ops/s 38.3841 Ops/s $\color{#d91a1a}-0.28\%$
test_wide_nested_preallocated_write[set_at_loop-cpu-128-128] 50.2687ms 50.0308ms 19.9877 Ops/s 19.7694 Ops/s $\color{#35bf28}+1.10\%$
test_wide_nested_preallocated_write[set_at_loop-cpu-128-256] 0.1015s 0.1010s 9.9022 Ops/s 9.8394 Ops/s $\color{#35bf28}+0.64\%$
test_wide_nested_preallocated_write[set_at_loop-cpu-4096-128] 0.1433s 0.1430s 6.9926 Ops/s 6.7387 Ops/s $\color{#35bf28}+3.77\%$
test_wide_nested_preallocated_write[set_at_loop-cpu-4096-256] 0.3267s 0.3198s 3.1268 Ops/s 3.0969 Ops/s $\color{#35bf28}+0.97\%$
test_wide_nested_preallocated_write[set_at_loop-cuda-128-128] 80.1735ms 79.5197ms 12.5755 Ops/s 13.9370 Ops/s $\textbf{\color{#d91a1a}-9.77\%}$
test_wide_nested_preallocated_write[set_at_loop-cuda-128-256] 0.1599s 0.1591s 6.2864 Ops/s 6.9593 Ops/s $\textbf{\color{#d91a1a}-9.67\%}$
test_wide_nested_preallocated_write[set_at_loop-cuda-4096-128] 80.3165ms 79.7254ms 12.5431 Ops/s 13.8401 Ops/s $\textbf{\color{#d91a1a}-9.37\%}$
test_wide_nested_preallocated_write[set_at_loop-cuda-4096-256] 0.1604s 0.1598s 6.2590 Ops/s 6.5117 Ops/s $\color{#d91a1a}-3.88\%$
test_wide_nested_preallocated_write[copy_at-cpu-128-128] 30.0637ms 29.5861ms 33.7997 Ops/s 33.8695 Ops/s $\color{#d91a1a}-0.21\%$
test_wide_nested_preallocated_write[copy_at-cpu-128-256] 60.4106ms 60.0388ms 16.6559 Ops/s 16.6525 Ops/s $\color{#35bf28}+0.02\%$
test_wide_nested_preallocated_write[copy_at-cpu-4096-128] 0.1217s 0.1190s 8.4016 Ops/s 8.1374 Ops/s $\color{#35bf28}+3.25\%$
test_wide_nested_preallocated_write[copy_at-cpu-4096-256] 0.2622s 0.2617s 3.8217 Ops/s 3.7200 Ops/s $\color{#35bf28}+2.73\%$
test_wide_nested_preallocated_write[copy_at-cuda-128-128] 43.1565ms 42.9381ms 23.2893 Ops/s 23.7786 Ops/s $\color{#d91a1a}-2.06\%$
test_wide_nested_preallocated_write[copy_at-cuda-128-256] 86.2087ms 85.9633ms 11.6329 Ops/s 11.8776 Ops/s $\color{#d91a1a}-2.06\%$
test_wide_nested_preallocated_write[copy_at-cuda-4096-128] 43.7089ms 43.1931ms 23.1518 Ops/s 23.6817 Ops/s $\color{#d91a1a}-2.24\%$
test_wide_nested_preallocated_write[copy_at-cuda-4096-256] 86.6120ms 86.4589ms 11.5662 Ops/s 11.8024 Ops/s $\color{#d91a1a}-2.00\%$
test_wide_nested_preallocated_write[manual_leaf_copy-cpu-128-128] 20.6907ms 20.4449ms 48.9118 Ops/s 50.8598 Ops/s $\color{#d91a1a}-3.83\%$
test_wide_nested_preallocated_write[manual_leaf_copy-cpu-128-256] 42.1240ms 41.7376ms 23.9592 Ops/s 24.8336 Ops/s $\color{#d91a1a}-3.52\%$
test_wide_nested_preallocated_write[manual_leaf_copy-cpu-4096-128] 0.1129s 0.1096s 9.1218 Ops/s 8.9568 Ops/s $\color{#35bf28}+1.84\%$
test_wide_nested_preallocated_write[manual_leaf_copy-cpu-4096-256] 0.2428s 0.2424s 4.1254 Ops/s 4.0838 Ops/s $\color{#35bf28}+1.02\%$
test_wide_nested_preallocated_write[manual_leaf_copy-cuda-128-128] 40.7354ms 40.4963ms 24.6936 Ops/s 27.8952 Ops/s $\textbf{\color{#d91a1a}-11.48\%}$
test_wide_nested_preallocated_write[manual_leaf_copy-cuda-128-256] 80.9660ms 79.9513ms 12.5076 Ops/s 14.0791 Ops/s $\textbf{\color{#d91a1a}-11.16\%}$
test_wide_nested_preallocated_write[manual_leaf_copy-cuda-4096-128] 40.7561ms 40.0585ms 24.9635 Ops/s 27.8830 Ops/s $\textbf{\color{#d91a1a}-10.47\%}$
test_wide_nested_preallocated_write[manual_leaf_copy-cuda-4096-256] 81.3818ms 80.1806ms 12.4719 Ops/s 14.1113 Ops/s $\textbf{\color{#d91a1a}-11.62\%}$
test_plain_set_nested 40.6810μs 14.9196μs 67.0261 KOps/s 67.2507 KOps/s $\color{#d91a1a}-0.33\%$
test_plain_set_stack_nested 32.3100μs 14.6235μs 68.3831 KOps/s 68.5118 KOps/s $\color{#d91a1a}-0.19\%$
test_plain_set_nested_inplace 45.0710μs 16.1297μs 61.9976 KOps/s 61.4062 KOps/s $\color{#35bf28}+0.96\%$
test_plain_set_stack_nested_inplace 46.2310μs 15.9653μs 62.6358 KOps/s 63.4201 KOps/s $\color{#d91a1a}-1.24\%$
test_items 29.1710μs 5.3660μs 186.3572 KOps/s 182.7463 KOps/s $\color{#35bf28}+1.98\%$
test_items_nested 0.5489ms 0.4547ms 2.1992 KOps/s 2.2824 KOps/s $\color{#d91a1a}-3.64\%$
test_items_nested_locked 0.5141ms 0.4534ms 2.2055 KOps/s 2.2932 KOps/s $\color{#d91a1a}-3.83\%$
test_items_nested_leaf 0.1338ms 91.6746μs 10.9082 KOps/s 10.7992 KOps/s $\color{#35bf28}+1.01\%$
test_items_stack_nested 0.5193ms 0.4543ms 2.2013 KOps/s 2.2640 KOps/s $\color{#d91a1a}-2.77\%$
test_items_stack_nested_leaf 0.1962ms 91.2307μs 10.9612 KOps/s 10.9762 KOps/s $\color{#d91a1a}-0.14\%$
test_items_stack_nested_locked 0.7499ms 0.4543ms 2.2011 KOps/s 2.2618 KOps/s $\color{#d91a1a}-2.69\%$
test_keys 28.0410μs 4.1084μs 243.4017 KOps/s 242.6034 KOps/s $\color{#35bf28}+0.33\%$
test_keys_nested 0.1666ms 0.1279ms 7.8173 KOps/s 7.7641 KOps/s $\color{#35bf28}+0.68\%$
test_keys_nested_locked 0.7606ms 0.1359ms 7.3596 KOps/s 7.3528 KOps/s $\color{#35bf28}+0.09\%$
test_keys_nested_leaf 0.1750ms 0.1174ms 8.5164 KOps/s 8.3805 KOps/s $\color{#35bf28}+1.62\%$
test_keys_stack_nested 0.1791ms 0.1276ms 7.8339 KOps/s 7.8965 KOps/s $\color{#d91a1a}-0.79\%$
test_keys_stack_nested_leaf 0.1461ms 0.1173ms 8.5284 KOps/s 8.5370 KOps/s $\color{#d91a1a}-0.10\%$
test_keys_stack_nested_locked 0.1899ms 0.1353ms 7.3893 KOps/s 7.3502 KOps/s $\color{#35bf28}+0.53\%$
test_values 5.4620μs 1.0078μs 992.2489 KOps/s 999.8070 KOps/s $\color{#d91a1a}-0.76\%$
test_values_nested 80.9120μs 52.1222μs 19.1857 KOps/s 19.5598 KOps/s $\color{#d91a1a}-1.91\%$
test_values_nested_locked 83.5920μs 55.5623μs 17.9978 KOps/s 18.3241 KOps/s $\color{#d91a1a}-1.78\%$
test_values_nested_leaf 94.1220μs 59.3215μs 16.8573 KOps/s 17.0572 KOps/s $\color{#d91a1a}-1.17\%$
test_values_stack_nested 87.1720μs 51.9593μs 19.2458 KOps/s 19.4392 KOps/s $\color{#d91a1a}-0.99\%$
test_values_stack_nested_leaf 94.0020μs 58.9341μs 16.9681 KOps/s 17.0415 KOps/s $\color{#d91a1a}-0.43\%$
test_values_stack_nested_locked 93.6910μs 54.6746μs 18.2900 KOps/s 18.3230 KOps/s $\color{#d91a1a}-0.18\%$
test_membership 4.8183μs 0.7916μs 1.2633 MOps/s 1.2562 MOps/s $\color{#35bf28}+0.56\%$
test_membership_nested 27.4510μs 2.7659μs 361.5467 KOps/s 348.0838 KOps/s $\color{#35bf28}+3.87\%$
test_membership_nested_leaf 30.2800μs 2.7693μs 361.1019 KOps/s 366.8595 KOps/s $\color{#d91a1a}-1.57\%$
test_membership_stacked_nested 32.2610μs 2.7041μs 369.8114 KOps/s 366.7008 KOps/s $\color{#35bf28}+0.85\%$
test_membership_stacked_nested_leaf 28.8910μs 2.7228μs 367.2707 KOps/s 366.9011 KOps/s $\color{#35bf28}+0.10\%$
test_membership_nested_last 30.2510μs 4.1624μs 240.2473 KOps/s 235.2411 KOps/s $\color{#35bf28}+2.13\%$
test_membership_nested_leaf_last 29.0810μs 4.1921μs 238.5454 KOps/s 237.2423 KOps/s $\color{#35bf28}+0.55\%$
test_membership_stacked_nested_last 33.1310μs 4.0578μs 246.4368 KOps/s 244.6638 KOps/s $\color{#35bf28}+0.72\%$
test_membership_stacked_nested_leaf_last 32.9710μs 4.0515μs 246.8209 KOps/s 246.2732 KOps/s $\color{#35bf28}+0.22\%$
test_nested_getleaf 50.4510μs 20.7261μs 48.2482 KOps/s 47.5873 KOps/s $\color{#35bf28}+1.39\%$
test_nested_get 48.7810μs 19.3297μs 51.7339 KOps/s 50.2022 KOps/s $\color{#35bf28}+3.05\%$
test_stacked_getleaf 43.7510μs 20.3623μs 49.1104 KOps/s 47.6708 KOps/s $\color{#35bf28}+3.02\%$
test_stacked_get 49.6610μs 19.5324μs 51.1970 KOps/s 50.8814 KOps/s $\color{#35bf28}+0.62\%$
test_nested_getitemleaf 50.1510μs 21.0528μs 47.4997 KOps/s 47.0792 KOps/s $\color{#35bf28}+0.89\%$
test_nested_getitem 43.9710μs 20.0120μs 49.9700 KOps/s 49.8467 KOps/s $\color{#35bf28}+0.25\%$
test_stacked_getitemleaf 54.1210μs 20.7290μs 48.2416 KOps/s 46.7427 KOps/s $\color{#35bf28}+3.21\%$
test_stacked_getitem 42.3910μs 20.0184μs 49.9539 KOps/s 49.4388 KOps/s $\color{#35bf28}+1.04\%$
test_lock_nested 8.1785ms 0.4780ms 2.0921 KOps/s 2.1806 KOps/s $\color{#d91a1a}-4.06\%$
test_lock_stack_nested 0.5552ms 0.4637ms 2.1566 KOps/s 2.1837 KOps/s $\color{#d91a1a}-1.24\%$
test_unlock_nested 0.4520ms 0.3722ms 2.6867 KOps/s 2.7320 KOps/s $\color{#d91a1a}-1.66\%$
test_unlock_stack_nested 0.4691ms 0.3758ms 2.6612 KOps/s 2.6889 KOps/s $\color{#d91a1a}-1.03\%$
test_flatten_speed 0.1535ms 0.1159ms 8.6314 KOps/s 8.7508 KOps/s $\color{#d91a1a}-1.36\%$
test_unflatten_speed 0.6117ms 0.5382ms 1.8581 KOps/s 1.8391 KOps/s $\color{#35bf28}+1.03\%$
test_common_ops 99.8859ms 1.4921ms 670.2061 Ops/s 288.8815 Ops/s $\textbf{\color{#35bf28}+132.00\%}$
test_creation 0.1307ms 2.9235μs 342.0606 KOps/s 348.9870 KOps/s $\color{#d91a1a}-1.98\%$
test_creation_empty 27.8610μs 6.5156μs 153.4775 KOps/s 152.7283 KOps/s $\color{#35bf28}+0.49\%$
test_creation_nested_1 30.5200μs 10.7863μs 92.7103 KOps/s 91.5741 KOps/s $\color{#35bf28}+1.24\%$
test_creation_nested_2 53.2310μs 12.5851μs 79.4591 KOps/s 80.6621 KOps/s $\color{#d91a1a}-1.49\%$
test_creation_many_keys[10] 92.4510μs 19.9068μs 50.2341 KOps/s 50.5930 KOps/s $\color{#d91a1a}-0.71\%$
test_creation_many_keys[50] 0.1454ms 84.9517μs 11.7714 KOps/s 11.6970 KOps/s $\color{#35bf28}+0.64\%$
test_creation_many_keys[100] 0.2182ms 0.1669ms 5.9917 KOps/s 5.9750 KOps/s $\color{#35bf28}+0.28\%$
test_creation_nested_many_keys[10] 72.6210μs 42.7366μs 23.3991 KOps/s 23.5513 KOps/s $\color{#d91a1a}-0.65\%$
test_creation_nested_many_keys[50] 0.2802ms 0.1745ms 5.7320 KOps/s 5.7535 KOps/s $\color{#d91a1a}-0.37\%$
test_clone 33.3000μs 12.9648μs 77.1320 KOps/s 77.5566 KOps/s $\color{#d91a1a}-0.55\%$
test_getitem[int] 1.5026ms 14.6993μs 68.0306 KOps/s 69.4377 KOps/s $\color{#d91a1a}-2.03\%$
test_getitem[slice_int] 0.1374ms 23.6197μs 42.3375 KOps/s 43.2004 KOps/s $\color{#d91a1a}-2.00\%$
test_getitem[range] 0.1710ms 62.2568μs 16.0625 KOps/s 15.9983 KOps/s $\color{#35bf28}+0.40\%$
test_getitem[tuple] 0.1634ms 23.2992μs 42.9199 KOps/s 43.6480 KOps/s $\color{#d91a1a}-1.67\%$
test_getitem[list] 0.1882ms 57.0581μs 17.5260 KOps/s 17.3357 KOps/s $\color{#35bf28}+1.10\%$
test_setitem_dim[int] 35.6600μs 24.6609μs 40.5501 KOps/s 39.6848 KOps/s $\color{#35bf28}+2.18\%$
test_setitem_dim[slice_int] 64.0010μs 40.2905μs 24.8198 KOps/s 23.0492 KOps/s $\textbf{\color{#35bf28}+7.68\%}$
test_setitem_dim[range] 0.1344ms 91.6826μs 10.9072 KOps/s 10.2405 KOps/s $\textbf{\color{#35bf28}+6.51\%}$
test_setitem_dim[tuple] 67.0810μs 37.9469μs 26.3526 KOps/s 25.9869 KOps/s $\color{#35bf28}+1.41\%$
test_setitem 51.5310μs 16.8678μs 59.2847 KOps/s 54.8435 KOps/s $\textbf{\color{#35bf28}+8.10\%}$
test_set 40.7410μs 16.1413μs 61.9530 KOps/s 57.5038 KOps/s $\textbf{\color{#35bf28}+7.74\%}$
test_set_shared 0.5037ms 0.2021ms 4.9476 KOps/s 4.9861 KOps/s $\color{#d91a1a}-0.77\%$
test_update 0.3934ms 20.8606μs 47.9373 KOps/s 44.8521 KOps/s $\textbf{\color{#35bf28}+6.88\%}$
test_update_nested 72.3710μs 32.5623μs 30.7103 KOps/s 30.7265 KOps/s $\color{#d91a1a}-0.05\%$
test_update__nested 0.4584ms 31.6375μs 31.6081 KOps/s 31.3354 KOps/s $\color{#35bf28}+0.87\%$
test_set_nested 45.2710μs 17.9592μs 55.6817 KOps/s 54.1950 KOps/s $\color{#35bf28}+2.74\%$
test_set_nested_new 55.9910μs 22.3705μs 44.7018 KOps/s 41.7272 KOps/s $\textbf{\color{#35bf28}+7.13\%}$
test_select 0.1410ms 38.5919μs 25.9122 KOps/s 24.8233 KOps/s $\color{#35bf28}+4.39\%$
test_select_nested 0.1259ms 70.1492μs 14.2553 KOps/s 14.0616 KOps/s $\color{#35bf28}+1.38\%$
test_exclude_nested 0.1479ms 86.1198μs 11.6117 KOps/s 11.5023 KOps/s $\color{#35bf28}+0.95\%$
test_empty[True] 0.4373ms 0.3843ms 2.6021 KOps/s 2.5991 KOps/s $\color{#35bf28}+0.12\%$
test_empty[False] 9.2027μs 1.2917μs 774.1953 KOps/s 763.8739 KOps/s $\color{#35bf28}+1.35\%$
test_to 99.1420μs 67.5090μs 14.8128 KOps/s 14.9723 KOps/s $\color{#d91a1a}-1.07\%$
test_to_nonblocking 0.2122ms 66.5835μs 15.0187 KOps/s 15.0847 KOps/s $\color{#d91a1a}-0.44\%$
test_unbind_speed 0.4059ms 0.3245ms 3.0821 KOps/s 3.0875 KOps/s $\color{#d91a1a}-0.18\%$
test_unbind_speed_stack0 0.4098ms 0.3170ms 3.1546 KOps/s 3.1616 KOps/s $\color{#d91a1a}-0.22\%$
test_unbind_speed_stack1 0.1155s 0.8314ms 1.2028 KOps/s 1.2145 KOps/s $\color{#d91a1a}-0.97\%$
test_split 1.1451ms 1.0895ms 917.8113 Ops/s 746.4093 Ops/s $\textbf{\color{#35bf28}+22.96\%}$
test_chunk 0.1153s 1.1723ms 853.0327 Ops/s 968.5089 Ops/s $\textbf{\color{#d91a1a}-11.92\%}$
test_to_cpu_blocking 20.2248ms 20.0662ms 49.8350 Ops/s 50.4916 Ops/s $\color{#d91a1a}-1.30\%$
test_to_cpu_global_sync 11.8395ms 11.7042ms 85.4397 Ops/s 85.7264 Ops/s $\color{#d91a1a}-0.33\%$
test_to_cpu_event_sync 13.0227ms 12.7148ms 78.6483 Ops/s 79.1317 Ops/s $\color{#d91a1a}-0.61\%$
test_to_cpu_default 13.1909ms 12.6966ms 78.7611 Ops/s 70.3637 Ops/s $\textbf{\color{#35bf28}+11.93\%}$
test_consolidate[False-None] 0.1433s 4.5543ms 219.5729 Ops/s 250.6262 Ops/s $\textbf{\color{#d91a1a}-12.39\%}$
test_consolidate[default-None] 2.0697ms 1.9611ms 509.9196 Ops/s 500.6683 Ops/s $\color{#35bf28}+1.85\%$
test_consolidate[reduce-overhead-None] 1.9661ms 1.8740ms 533.6281 Ops/s 519.9341 Ops/s $\color{#35bf28}+2.63\%$
test_consolidate_njt[False-None] 8.5010ms 8.2103ms 121.7988 Ops/s 121.2265 Ops/s $\color{#35bf28}+0.47\%$
test_to[False-False-None] 2.2499ms 2.1337ms 468.6756 Ops/s 468.9573 Ops/s $\color{#d91a1a}-0.06\%$
test_to[True-False-None] 2.0406ms 1.8604ms 537.5094 Ops/s 556.2555 Ops/s $\color{#d91a1a}-3.37\%$
test_to[within-False-None] 6.2784ms 6.0189ms 166.1431 Ops/s 167.8348 Ops/s $\color{#d91a1a}-1.01\%$
test_to[True-default-None] 10.5948ms 10.3743ms 96.3922 Ops/s 94.1823 Ops/s $\color{#35bf28}+2.35\%$
test_to_njt[False-False-None] 8.5489ms 8.4808ms 117.9138 Ops/s 117.0447 Ops/s $\color{#35bf28}+0.74\%$
test_to_njt[True-False-None] 6.9250ms 6.6965ms 149.3323 Ops/s 146.4577 Ops/s $\color{#35bf28}+1.96\%$
test_to_njt[within-False-None] 15.4027ms 15.1957ms 65.8079 Ops/s 65.1672 Ops/s $\color{#35bf28}+0.98\%$
test_creation[device0] 0.4561ms 0.1147ms 8.7207 KOps/s 8.4614 KOps/s $\color{#35bf28}+3.06\%$
test_creation_from_tensor 0.4278ms 0.1128ms 8.8635 KOps/s 8.6872 KOps/s $\color{#35bf28}+2.03\%$
test_add_one[memmap_tensor0] 0.3497ms 6.6534μs 150.2980 KOps/s 151.1029 KOps/s $\color{#d91a1a}-0.53\%$
test_contiguous[memmap_tensor0] 13.7700μs 0.6363μs 1.5715 MOps/s 2.3319 MOps/s $\textbf{\color{#d91a1a}-32.61\%}$
test_stack[memmap_tensor0] 32.3810μs 4.0439μs 247.2860 KOps/s 242.5814 KOps/s $\color{#35bf28}+1.94\%$
test_memmaptd_index 1.1433ms 0.2648ms 3.7764 KOps/s 3.7918 KOps/s $\color{#d91a1a}-0.40\%$
test_memmaptd_index_astensor 0.5126ms 0.3588ms 2.7870 KOps/s 2.7866 KOps/s $\color{#35bf28}+0.01\%$
test_memmaptd_index_op 0.8081ms 0.6142ms 1.6280 KOps/s 1.6070 KOps/s $\color{#35bf28}+1.31\%$
test_serialize_model 0.1383s 0.1338s 7.4715 Ops/s 7.4068 Ops/s $\color{#35bf28}+0.87\%$
test_serialize_model_pickle 1.3495s 1.2103s 0.8262 Ops/s 0.8247 Ops/s $\color{#35bf28}+0.19\%$
test_serialize_weights 0.3181s 0.1595s 6.2687 Ops/s 7.5358 Ops/s $\textbf{\color{#d91a1a}-16.81\%}$
test_serialize_weights_returnearly 73.8458ms 63.5784ms 15.7286 Ops/s 7.0501 Ops/s $\textbf{\color{#35bf28}+123.10\%}$
test_serialize_weights_pickle 1.3763s 1.2184s 0.8207 Ops/s 0.8230 Ops/s $\color{#d91a1a}-0.27\%$
test_reshape_pytree 0.2098ms 31.4399μs 31.8067 KOps/s 31.9170 KOps/s $\color{#d91a1a}-0.35\%$
test_reshape_td 0.4574ms 42.7001μs 23.4191 KOps/s 23.5764 KOps/s $\color{#d91a1a}-0.67\%$
test_view_pytree 0.2223ms 30.7828μs 32.4857 KOps/s 32.0801 KOps/s $\color{#35bf28}+1.26\%$
test_view_td 0.4867ms 50.6147μs 19.7571 KOps/s 18.5192 KOps/s $\textbf{\color{#35bf28}+6.68\%}$
test_unbind_pytree 0.2383ms 35.3035μs 28.3258 KOps/s 28.0099 KOps/s $\color{#35bf28}+1.13\%$
test_unbind_td 0.4904ms 47.7355μs 20.9487 KOps/s 20.8125 KOps/s $\color{#35bf28}+0.65\%$
test_split_pytree 0.2478ms 40.2359μs 24.8534 KOps/s 24.1238 KOps/s $\color{#35bf28}+3.02\%$
test_split_td 0.1128ms 61.2221μs 16.3340 KOps/s 15.7338 KOps/s $\color{#35bf28}+3.81\%$
test_add_pytree 0.2284ms 40.5094μs 24.6856 KOps/s 23.8018 KOps/s $\color{#35bf28}+3.71\%$
test_add_td 98.3520μs 53.3382μs 18.7483 KOps/s 18.0652 KOps/s $\color{#35bf28}+3.78\%$
test_compile_add_one_nested[tensordict-compile] 0.3719ms 0.2268ms 4.4091 KOps/s 4.3454 KOps/s $\color{#35bf28}+1.47\%$
test_compile_add_one_nested[tensordict-eager] 0.3640ms 0.1945ms 5.1401 KOps/s 5.1389 KOps/s $\color{#35bf28}+0.02\%$
test_compile_add_one_nested[pytree-compile] 0.3924ms 0.1315ms 7.6032 KOps/s 7.3368 KOps/s $\color{#35bf28}+3.63\%$
test_compile_add_one_nested[pytree-eager] 0.4009ms 0.1741ms 5.7445 KOps/s 5.7012 KOps/s $\color{#35bf28}+0.76\%$
test_compile_copy_nested[tensordict-compile] 71.6610μs 15.8797μs 62.9735 KOps/s 69.3738 KOps/s $\textbf{\color{#d91a1a}-9.23\%}$
test_compile_copy_nested[tensordict-eager] 0.4815ms 51.8550μs 19.2845 KOps/s 19.7533 KOps/s $\color{#d91a1a}-2.37\%$
test_compile_copy_nested[pytree-compile] 0.4454ms 15.3151μs 65.2951 KOps/s 66.0927 KOps/s $\color{#d91a1a}-1.21\%$
test_compile_copy_nested[pytree-eager] 0.4950ms 64.9235μs 15.4027 KOps/s 15.5737 KOps/s $\color{#d91a1a}-1.10\%$
test_compile_add_one_flat[tensordict-compile] 0.6928ms 0.2499ms 4.0024 KOps/s 3.7343 KOps/s $\textbf{\color{#35bf28}+7.18\%}$
test_compile_add_one_flat[tensordict-eager] 0.7181ms 0.2769ms 3.6120 KOps/s 3.5960 KOps/s $\color{#35bf28}+0.45\%$
test_compile_add_one_flat[tensorclass-compile] 0.2759ms 0.1781ms 5.6156 KOps/s 4.9275 KOps/s $\textbf{\color{#35bf28}+13.97\%}$
test_compile_add_one_flat[tensorclass-eager] 0.5234ms 74.3603μs 13.4480 KOps/s 13.0922 KOps/s $\color{#35bf28}+2.72\%$
test_compile_add_one_flat[pytree-compile] 0.4802ms 0.1878ms 5.3247 KOps/s 4.9284 KOps/s $\textbf{\color{#35bf28}+8.04\%}$
test_compile_add_one_flat[pytree-eager] 0.8142ms 0.5136ms 1.9472 KOps/s 1.9340 KOps/s $\color{#35bf28}+0.68\%$
test_compile_add_self_flat[tensordict-eager] 0.4594ms 0.3222ms 3.1033 KOps/s 3.0516 KOps/s $\color{#35bf28}+1.70\%$
test_compile_add_self_flat[tensordict-compile] 0.6680ms 0.2463ms 4.0607 KOps/s 3.7468 KOps/s $\textbf{\color{#35bf28}+8.38\%}$
test_compile_add_self_flat[tensorclass-eager] 0.5509ms 94.8710μs 10.5406 KOps/s 11.2302 KOps/s $\textbf{\color{#d91a1a}-6.14\%}$
test_compile_add_self_flat[tensorclass-compile] 1.1599ms 0.1853ms 5.3974 KOps/s 5.1284 KOps/s $\textbf{\color{#35bf28}+5.24\%}$
test_compile_add_self_flat[pytree-eager] 0.6557ms 0.4249ms 2.3534 KOps/s 2.3275 KOps/s $\color{#35bf28}+1.11\%$
test_compile_add_self_flat[pytree-compile] 0.5168ms 0.1894ms 5.2785 KOps/s 5.1622 KOps/s $\color{#35bf28}+2.25\%$
test_compile_copy_flat[tensordict-compile] 71.5910μs 19.0767μs 52.4200 KOps/s 52.9024 KOps/s $\color{#d91a1a}-0.91\%$
test_compile_copy_flat[tensordict-eager] 78.9720μs 39.9186μs 25.0510 KOps/s 25.2349 KOps/s $\color{#d91a1a}-0.73\%$
test_compile_copy_flat[pytree-compile] 0.1624ms 21.8881μs 45.6869 KOps/s 48.1531 KOps/s $\textbf{\color{#d91a1a}-5.12\%}$
test_compile_copy_flat[pytree-eager] 0.3285ms 50.3971μs 19.8424 KOps/s 19.7422 KOps/s $\color{#35bf28}+0.51\%$
test_compile_assign_and_add[tensordict-compile] 2.2458ms 0.2455ms 4.0735 KOps/s 4.0102 KOps/s $\color{#35bf28}+1.58\%$
test_compile_assign_and_add[tensordict-eager] 3.4892ms 3.1850ms 313.9672 Ops/s 311.9786 Ops/s $\color{#35bf28}+0.64\%$
test_compile_assign_and_add[pytree-compile] 2.0597ms 0.1765ms 5.6643 KOps/s 5.5408 KOps/s $\color{#35bf28}+2.23\%$
test_compile_assign_and_add[pytree-eager] 2.8429ms 2.7055ms 369.6107 Ops/s 368.5285 Ops/s $\color{#35bf28}+0.29\%$
test_compile_indexing[tensor-tensordict-compile] 0.3365ms 0.1303ms 7.6724 KOps/s 7.3181 KOps/s $\color{#35bf28}+4.84\%$
test_compile_indexing[tensor-tensordict-eager] 0.3273ms 75.6184μs 13.2243 KOps/s 13.8450 KOps/s $\color{#d91a1a}-4.48\%$
test_compile_indexing[tensor-tensorclass-compile] 0.2609ms 0.1211ms 8.2546 KOps/s 8.4058 KOps/s $\color{#d91a1a}-1.80\%$
test_compile_indexing[tensor-tensorclass-eager] 0.2640ms 47.0990μs 21.2319 KOps/s 21.9413 KOps/s $\color{#d91a1a}-3.23\%$
test_compile_indexing[tensor-pytree-compile] 0.1666ms 0.1228ms 8.1404 KOps/s 8.3819 KOps/s $\color{#d91a1a}-2.88\%$
test_compile_indexing[tensor-pytree-eager] 0.2977ms 46.7539μs 21.3886 KOps/s 21.9443 KOps/s $\color{#d91a1a}-2.53\%$
test_compile_indexing[slice-tensordict-compile] 0.1801ms 85.8895μs 11.6429 KOps/s 12.2316 KOps/s $\color{#d91a1a}-4.81\%$
test_compile_indexing[slice-tensordict-eager] 0.2113ms 33.1066μs 30.2055 KOps/s 38.3619 KOps/s $\textbf{\color{#d91a1a}-21.26\%}$
test_compile_indexing[slice-tensorclass-compile] 0.1972ms 72.9554μs 13.7070 KOps/s 14.1577 KOps/s $\color{#d91a1a}-3.18\%$
test_compile_indexing[slice-tensorclass-eager] 0.2367ms 22.7249μs 44.0046 KOps/s 46.8225 KOps/s $\textbf{\color{#d91a1a}-6.02\%}$
test_compile_indexing[slice-pytree-compile] 0.1501ms 72.9593μs 13.7063 KOps/s 14.5811 KOps/s $\textbf{\color{#d91a1a}-6.00\%}$
test_compile_indexing[slice-pytree-eager] 0.2830ms 22.4501μs 44.5432 KOps/s 47.1312 KOps/s $\textbf{\color{#d91a1a}-5.49\%}$
test_compile_indexing[int-tensordict-compile] 0.1359ms 86.9845μs 11.4963 KOps/s 11.7523 KOps/s $\color{#d91a1a}-2.18\%$
test_compile_indexing[int-tensordict-eager] 0.2684ms 29.6509μs 33.7258 KOps/s 38.1717 KOps/s $\textbf{\color{#d91a1a}-11.65\%}$
test_compile_indexing[int-tensorclass-compile] 0.1135ms 73.0214μs 13.6946 KOps/s 14.2790 KOps/s $\color{#d91a1a}-4.09\%$
test_compile_indexing[int-tensorclass-eager] 0.2482ms 22.3881μs 44.6666 KOps/s 47.9101 KOps/s $\textbf{\color{#d91a1a}-6.77\%}$
test_compile_indexing[int-pytree-compile] 0.1059ms 69.1505μs 14.4612 KOps/s 14.2266 KOps/s $\color{#35bf28}+1.65\%$
test_compile_indexing[int-pytree-eager] 0.2653ms 21.4542μs 46.6108 KOps/s 47.4436 KOps/s $\color{#d91a1a}-1.76\%$
test_compile_replace[single-eager] 94.6620μs 49.2991μs 20.2843 KOps/s 21.3649 KOps/s $\textbf{\color{#d91a1a}-5.06\%}$
test_compile_replace[single-compile] 0.2910ms 0.1258ms 7.9495 KOps/s 7.6300 KOps/s $\color{#35bf28}+4.19\%$
test_compile_replace[multi-eager] 0.6940ms 0.5477ms 1.8258 KOps/s 1.7965 KOps/s $\color{#35bf28}+1.63\%$
test_compile_replace[multi-compile] 0.3421ms 0.1336ms 7.4842 KOps/s 7.1287 KOps/s $\color{#35bf28}+4.99\%$
test_compile_tc_getattr_20[eager] 0.2429ms 0.1754ms 5.7028 KOps/s 6.0368 KOps/s $\textbf{\color{#d91a1a}-5.53\%}$
test_compile_tc_getattr_20[compile] 0.3419ms 0.1442ms 6.9353 KOps/s 6.9091 KOps/s $\color{#35bf28}+0.38\%$
test_compile_clone_shallow[20-eager] 53.0410μs 18.3571μs 54.4750 KOps/s 54.8263 KOps/s $\color{#d91a1a}-0.64\%$
test_compile_clone_shallow[20-compile] 74.4220μs 16.3505μs 61.1602 KOps/s 61.7010 KOps/s $\color{#d91a1a}-0.88\%$
test_compile_clone_shallow[40-eager] 71.9010μs 32.4472μs 30.8193 KOps/s 30.8663 KOps/s $\color{#d91a1a}-0.15\%$
test_compile_clone_shallow[40-compile] 89.2920μs 18.9968μs 52.6404 KOps/s 55.4010 KOps/s $\color{#d91a1a}-4.98\%$
test_compile_clone_shallow[80-eager] 92.4920μs 60.0279μs 16.6589 KOps/s 16.5794 KOps/s $\color{#35bf28}+0.48\%$
test_compile_clone_shallow[80-compile] 75.1310μs 22.0243μs 45.4045 KOps/s 46.6288 KOps/s $\color{#d91a1a}-2.63\%$
test_compile_update_inplace[eager] 0.2171ms 60.5668μs 16.5107 KOps/s 17.0934 KOps/s $\color{#d91a1a}-3.41\%$
test_compile_update_inplace[compile] 0.4314ms 0.1411ms 7.0882 KOps/s 6.8314 KOps/s $\color{#35bf28}+3.76\%$
test_mod_add[eager] 0.3664ms 0.2198ms 4.5487 KOps/s 4.5340 KOps/s $\color{#35bf28}+0.32\%$
test_mod_add[compile] 0.3042ms 0.1343ms 7.4446 KOps/s 7.4383 KOps/s $\color{#35bf28}+0.09\%$
test_mod_add[compile-overhead] 0.2796ms 0.1724ms 5.8012 KOps/s 5.6411 KOps/s $\color{#35bf28}+2.84\%$
test_mod_wrap[eager] 0.5596ms 0.4568ms 2.1890 KOps/s 2.1416 KOps/s $\color{#35bf28}+2.21\%$
test_mod_wrap[compile] 0.4707ms 0.3890ms 2.5705 KOps/s 2.5543 KOps/s $\color{#35bf28}+0.63\%$
test_mod_wrap[compile-overhead] 8.6523ms 4.7189ms 211.9123 Ops/s 214.5386 Ops/s $\color{#d91a1a}-1.22\%$
test_mod_wrap_and_backward[eager] 1.7929ms 1.6777ms 596.0612 Ops/s 601.4862 Ops/s $\color{#d91a1a}-0.90\%$
test_mod_wrap_and_backward[compile] 2.3344ms 1.5698ms 637.0262 Ops/s 662.2697 Ops/s $\color{#d91a1a}-3.81\%$
test_mod_wrap_and_backward[compile-overhead] 1.3248ms 0.9891ms 1.0110 KOps/s 1.0604 KOps/s $\color{#d91a1a}-4.66\%$
test_seq_add[eager] 0.5892ms 0.4941ms 2.0239 KOps/s 2.0078 KOps/s $\color{#35bf28}+0.80\%$
test_seq_add[compile] 0.2552ms 0.1369ms 7.3032 KOps/s 6.7375 KOps/s $\textbf{\color{#35bf28}+8.40\%}$
test_seq_add[compile-overhead] 0.2996ms 0.1817ms 5.5051 KOps/s 5.4168 KOps/s $\color{#35bf28}+1.63\%$
test_seq_wrap[eager] 1.4673ms 1.3710ms 729.3743 Ops/s 728.6325 Ops/s $\color{#35bf28}+0.10\%$
test_seq_wrap[compile] 0.5850ms 0.4106ms 2.4356 KOps/s 2.3365 KOps/s $\color{#35bf28}+4.24\%$
test_seq_wrap[compile-overhead] 0.3943ms 0.2945ms 3.3959 KOps/s 3.2592 KOps/s $\color{#35bf28}+4.19\%$
test_func_call_runtime[False-eager] 0.9088ms 0.8403ms 1.1901 KOps/s 1.2926 KOps/s $\textbf{\color{#d91a1a}-7.93\%}$
test_func_call_runtime[False-compile] 1.1335ms 0.9698ms 1.0312 KOps/s 1.0455 KOps/s $\color{#d91a1a}-1.37\%$
test_func_call_runtime[False-compile-overhead] 0.5782ms 0.4923ms 2.0313 KOps/s 2.0073 KOps/s $\color{#35bf28}+1.19\%$
test_func_call_runtime[True-eager] 1.1174ms 1.0221ms 978.3594 Ops/s 989.4769 Ops/s $\color{#d91a1a}-1.12\%$
test_func_call_runtime[True-compile] 1.0976ms 0.9632ms 1.0382 KOps/s 1.0294 KOps/s $\color{#35bf28}+0.86\%$
test_func_call_runtime[True-compile-overhead] 0.6841ms 0.5071ms 1.9721 KOps/s 1.9449 KOps/s $\color{#35bf28}+1.40\%$
test_func_call_cm_runtime[False-eager] 0.9254ms 0.8023ms 1.2464 KOps/s 1.2841 KOps/s $\color{#d91a1a}-2.94\%$
test_func_call_cm_runtime[False-compile] 1.0768ms 0.9293ms 1.0761 KOps/s 1.0582 KOps/s $\color{#35bf28}+1.69\%$
test_func_call_cm_runtime[False-compile-overhead] 0.6217ms 0.4725ms 2.1166 KOps/s 2.0863 KOps/s $\color{#35bf28}+1.45\%$
test_func_call_cm_runtime[True-eager] 1.2633ms 1.1648ms 858.5308 Ops/s 860.1764 Ops/s $\color{#d91a1a}-0.19\%$
test_func_call_cm_runtime[True-compile] 1.1199ms 0.9812ms 1.0192 KOps/s 1.0129 KOps/s $\color{#35bf28}+0.62\%$
test_func_call_cm_runtime[True-compile-overhead] 0.6458ms 0.5193ms 1.9258 KOps/s 1.8981 KOps/s $\color{#35bf28}+1.46\%$
test_vmap_func_call_cm_runtime[eager] 2.8100ms 2.3228ms 430.5206 Ops/s 429.7596 Ops/s $\color{#35bf28}+0.18\%$
test_vmap_func_call_cm_runtime[compile] 1.1359ms 0.9936ms 1.0065 KOps/s 1.0022 KOps/s $\color{#35bf28}+0.42\%$
test_vmap_func_call_cm_runtime[compile-overhead] 0.6149ms 0.5146ms 1.9434 KOps/s 1.9092 KOps/s $\color{#35bf28}+1.79\%$
test_distributed 0.5675ms 0.1462ms 6.8411 KOps/s 6.6436 KOps/s $\color{#35bf28}+2.97\%$
test_tdmodule 0.4637ms 0.1873ms 5.3399 KOps/s 5.2521 KOps/s $\color{#35bf28}+1.67\%$
test_tdmodule_dispatch 0.4033ms 0.3579ms 2.7940 KOps/s 2.7327 KOps/s $\color{#35bf28}+2.24\%$
test_tdseq 39.3510μs 25.8119μs 38.7418 KOps/s 38.5678 KOps/s $\color{#35bf28}+0.45\%$
test_tdseq_dispatch 0.2557ms 0.2082ms 4.8034 KOps/s 4.7456 KOps/s $\color{#35bf28}+1.22\%$
test_instantiation_functorch 2.0444ms 1.9540ms 511.7582 Ops/s 504.3295 Ops/s $\color{#35bf28}+1.47\%$
test_exec_functorch 0.3013ms 0.1769ms 5.6522 KOps/s 5.6027 KOps/s $\color{#35bf28}+0.88\%$
test_exec_functional_call 0.2170ms 0.1571ms 6.3643 KOps/s 6.3887 KOps/s $\color{#d91a1a}-0.38\%$
test_exec_td_decorator 0.4439ms 0.2281ms 4.3847 KOps/s 4.3649 KOps/s $\color{#35bf28}+0.45\%$
test_vmap_mlp_speed_decorator[True-True] 1.1750ms 0.9843ms 1.0159 KOps/s 1.0077 KOps/s $\color{#35bf28}+0.82\%$
test_vmap_mlp_speed_decorator[True-False] 1.1559ms 0.9812ms 1.0192 KOps/s 1.0103 KOps/s $\color{#35bf28}+0.87\%$
test_vmap_mlp_speed_decorator[False-True] 0.8677ms 0.6957ms 1.4375 KOps/s 1.4314 KOps/s $\color{#35bf28}+0.43\%$
test_vmap_mlp_speed_decorator[False-False] 0.8702ms 0.6977ms 1.4332 KOps/s 1.4346 KOps/s $\color{#d91a1a}-0.09\%$
test_vmap_transformer_speed_decorator[True-True] 20.5331ms 20.4226ms 48.9655 Ops/s 48.9758 Ops/s $\color{#d91a1a}-0.02\%$
test_vmap_transformer_speed_decorator[True-False] 20.5240ms 20.4247ms 48.9604 Ops/s 48.9161 Ops/s $\color{#35bf28}+0.09\%$
test_vmap_transformer_speed_decorator[False-True] 20.6552ms 20.0514ms 49.8719 Ops/s 49.8182 Ops/s $\color{#35bf28}+0.11\%$
test_vmap_transformer_speed_decorator[False-False] 20.7654ms 20.0435ms 49.8914 Ops/s 49.8385 Ops/s $\color{#35bf28}+0.11\%$
test_to_module_speed[True] 1.9965ms 1.3941ms 717.3060 Ops/s 707.0271 Ops/s $\color{#35bf28}+1.45\%$
test_to_module_speed[False] 1.9547ms 1.3573ms 736.7404 Ops/s 730.0895 Ops/s $\color{#35bf28}+0.91\%$
test_tc_init 81.0010μs 43.3030μs 23.0931 KOps/s 23.0643 KOps/s $\color{#35bf28}+0.12\%$
test_tc_init_tensor_only 42.5910μs 9.2521μs 108.0834 KOps/s 107.6698 KOps/s $\color{#35bf28}+0.38\%$
test_tc_init_nested 0.1333ms 85.7305μs 11.6645 KOps/s 11.4813 KOps/s $\color{#35bf28}+1.60\%$
test_tc_init_many_fields 46.5510μs 15.3642μs 65.0866 KOps/s 64.2300 KOps/s $\color{#35bf28}+1.33\%$
test_tc_first_layer_tensor 17.2300μs 1.6979μs 588.9617 KOps/s 581.9442 KOps/s $\color{#35bf28}+1.21\%$
test_tc_first_layer_tensor_only 2.0170μs 0.3809μs 2.6253 MOps/s 2.6207 MOps/s $\color{#35bf28}+0.17\%$
test_tc_first_layer_tensor_set 22.1010μs 3.6920μs 270.8564 KOps/s 265.5259 KOps/s $\color{#35bf28}+2.01\%$
test_tc_first_layer_tensor_only_set 34.2900μs 3.1151μs 321.0208 KOps/s 318.6113 KOps/s $\color{#35bf28}+0.76\%$
test_tc_first_layer_nontensor 39.6510μs 5.8417μs 171.1829 KOps/s 159.8196 KOps/s $\textbf{\color{#35bf28}+7.11\%}$
test_tc_second_layer_tensor 21.6900μs 4.2164μs 237.1693 KOps/s 238.4981 KOps/s $\color{#d91a1a}-0.56\%$
test_tc_second_layer_nontensor 36.9410μs 8.2732μs 120.8717 KOps/s 114.7991 KOps/s $\textbf{\color{#35bf28}+5.29\%}$
test_unbind 0.2816s 16.2978ms 61.3578 Ops/s 73.2345 Ops/s $\textbf{\color{#d91a1a}-16.22\%}$
test_full_like 4.5628ms 4.3339ms 230.7373 Ops/s 229.1224 Ops/s $\color{#35bf28}+0.70\%$
test_zeros_like 4.5350ms 4.2868ms 233.2726 Ops/s 234.1267 Ops/s $\color{#d91a1a}-0.36\%$
test_ones_like 4.5226ms 4.3329ms 230.7926 Ops/s 232.1183 Ops/s $\color{#d91a1a}-0.57\%$
test_clone 6.6248ms 6.3899ms 156.4970 Ops/s 157.3411 Ops/s $\color{#d91a1a}-0.54\%$
test_squeeze 67.1420μs 14.2682μs 70.0861 KOps/s 74.7673 KOps/s $\textbf{\color{#d91a1a}-6.26\%}$
test_unsqueeze 0.1577ms 0.1084ms 9.2249 KOps/s 9.1971 KOps/s $\color{#35bf28}+0.30\%$
test_split 0.3844ms 0.1727ms 5.7909 KOps/s 5.6752 KOps/s $\color{#35bf28}+2.04\%$
test_permute 0.3014ms 0.2020ms 4.9499 KOps/s 4.9942 KOps/s $\color{#d91a1a}-0.89\%$
test_stack 51.5037ms 51.1270ms 19.5591 Ops/s 19.5609 Ops/s $-0.01\%$
test_cat 51.4221ms 51.0353ms 19.5943 Ops/s 19.5574 Ops/s $\color{#35bf28}+0.19\%$
test_sequential_tensordict 1.1792ms 0.5776ms 1.7314 KOps/s 1.7784 KOps/s $\color{#d91a1a}-2.64\%$
test_sequential_graph_module 0.3175ms 0.1196ms 8.3599 KOps/s 8.7091 KOps/s $\color{#d91a1a}-4.01\%$
test_nested_tensordict 1.8046ms 0.7987ms 1.2520 KOps/s 1.2524 KOps/s $\color{#d91a1a}-0.04\%$
test_nested_graph_module 0.1739ms 0.1247ms 8.0168 KOps/s 8.0203 KOps/s $\color{#d91a1a}-0.04\%$

@github-actions

Copy link
Copy Markdown
Contributor

$\color{#D29922}\textsf{\Large&amp;#x26A0;\kern{0.2cm}\normalsize Warning}$ Result of GPU Benchmark Tests

Total Benchmarks: 341. Improved: $\large\color{#35bf28}23$. Worsened: $\large\color{#d91a1a}10$.

Expand to view detailed results
Name Max Mean Ops Ops on Repo HEAD Change
test_collector_preallocated_write[stack_out-cpu-32-2] 0.2301ms 0.1727ms 5.7889 KOps/s 5.6964 KOps/s $\color{#35bf28}+1.62\%$
test_collector_preallocated_write[stack_out-cpu-32-8] 0.3520ms 0.2990ms 3.3448 KOps/s 3.3451 KOps/s $-0.01\%$
test_collector_preallocated_write[stack_out-cpu-32-32] 0.8474ms 0.7795ms 1.2828 KOps/s 1.2699 KOps/s $\color{#35bf28}+1.02\%$
test_collector_preallocated_write[stack_out-cpu-4096-2] 0.4397ms 0.3441ms 2.9058 KOps/s 2.9592 KOps/s $\color{#d91a1a}-1.80\%$
test_collector_preallocated_write[stack_out-cpu-4096-8] 1.2765ms 1.1071ms 903.2226 Ops/s 915.7994 Ops/s $\color{#d91a1a}-1.37\%$
test_collector_preallocated_write[stack_out-cpu-4096-32] 7.4446ms 7.2582ms 137.7751 Ops/s 136.6493 Ops/s $\color{#35bf28}+0.82\%$
test_collector_preallocated_write[stack_out-cuda-32-2] 0.3003ms 0.2443ms 4.0931 KOps/s 3.8237 KOps/s $\textbf{\color{#35bf28}+7.05\%}$
test_collector_preallocated_write[stack_out-cuda-32-8] 0.4752ms 0.3678ms 2.7190 KOps/s 2.6829 KOps/s $\color{#35bf28}+1.35\%$
test_collector_preallocated_write[stack_out-cuda-32-32] 0.8950ms 0.8164ms 1.2248 KOps/s 1.2134 KOps/s $\color{#35bf28}+0.94\%$
test_collector_preallocated_write[stack_out-cuda-4096-2] 0.3286ms 0.2457ms 4.0699 KOps/s 4.0194 KOps/s $\color{#35bf28}+1.25\%$
test_collector_preallocated_write[stack_out-cuda-4096-8] 0.4575ms 0.3693ms 2.7078 KOps/s 2.6904 KOps/s $\color{#35bf28}+0.65\%$
test_collector_preallocated_write[stack_out-cuda-4096-32] 1.0345ms 0.8842ms 1.1309 KOps/s 1.1230 KOps/s $\color{#35bf28}+0.71\%$
test_collector_preallocated_write[set_at_loop-cpu-32-2] 0.2699ms 0.2104ms 4.7530 KOps/s 4.6606 KOps/s $\color{#35bf28}+1.98\%$
test_collector_preallocated_write[set_at_loop-cpu-32-8] 0.8945ms 0.8326ms 1.2011 KOps/s 1.1940 KOps/s $\color{#35bf28}+0.59\%$
test_collector_preallocated_write[set_at_loop-cpu-32-32] 3.6005ms 3.2996ms 303.0630 Ops/s 301.3230 Ops/s $\color{#35bf28}+0.58\%$
test_collector_preallocated_write[set_at_loop-cpu-4096-2] 0.8069ms 0.3745ms 2.6703 KOps/s 2.7220 KOps/s $\color{#d91a1a}-1.90\%$
test_collector_preallocated_write[set_at_loop-cpu-4096-8] 2.1252ms 1.7505ms 571.2592 Ops/s 588.2503 Ops/s $\color{#d91a1a}-2.89\%$
test_collector_preallocated_write[set_at_loop-cpu-4096-32] 10.7553ms 10.3147ms 96.9494 Ops/s 97.0641 Ops/s $\color{#d91a1a}-0.12\%$
test_collector_preallocated_write[set_at_loop-cuda-32-2] 0.4351ms 0.3908ms 2.5588 KOps/s 2.5626 KOps/s $\color{#d91a1a}-0.15\%$
test_collector_preallocated_write[set_at_loop-cuda-32-8] 1.7401ms 1.5268ms 654.9650 Ops/s 681.3768 Ops/s $\color{#d91a1a}-3.88\%$
test_collector_preallocated_write[set_at_loop-cuda-32-32] 6.1427ms 5.7467ms 174.0132 Ops/s 175.3078 Ops/s $\color{#d91a1a}-0.74\%$
test_collector_preallocated_write[set_at_loop-cuda-4096-2] 0.5572ms 0.4134ms 2.4188 KOps/s 2.5384 KOps/s $\color{#d91a1a}-4.71\%$
test_collector_preallocated_write[set_at_loop-cuda-4096-8] 1.5955ms 1.4748ms 678.0380 Ops/s 680.8212 Ops/s $\color{#d91a1a}-0.41\%$
test_collector_preallocated_write[set_at_loop-cuda-4096-32] 6.1067ms 5.7381ms 174.2734 Ops/s 173.0473 Ops/s $\color{#35bf28}+0.71\%$
test_collector_preallocated_write[copy_at-cpu-32-2] 0.2206ms 0.1722ms 5.8073 KOps/s 5.7909 KOps/s $\color{#35bf28}+0.28\%$
test_collector_preallocated_write[copy_at-cpu-32-8] 0.7693ms 0.6652ms 1.5032 KOps/s 1.4844 KOps/s $\color{#35bf28}+1.27\%$
test_collector_preallocated_write[copy_at-cpu-32-32] 2.8346ms 2.7172ms 368.0193 Ops/s 374.9426 Ops/s $\color{#d91a1a}-1.85\%$
test_collector_preallocated_write[copy_at-cpu-4096-2] 0.6268ms 0.3114ms 3.2116 KOps/s 3.1380 KOps/s $\color{#35bf28}+2.34\%$
test_collector_preallocated_write[copy_at-cpu-4096-8] 1.6169ms 1.4851ms 673.3753 Ops/s 679.7385 Ops/s $\color{#d91a1a}-0.94\%$
test_collector_preallocated_write[copy_at-cpu-4096-32] 9.7080ms 9.3527ms 106.9211 Ops/s 105.4666 Ops/s $\color{#35bf28}+1.38\%$
test_collector_preallocated_write[copy_at-cuda-32-2] 0.4687ms 0.3215ms 3.1101 KOps/s 3.0778 KOps/s $\color{#35bf28}+1.05\%$
test_collector_preallocated_write[copy_at-cuda-32-8] 1.3428ms 1.2006ms 832.9277 Ops/s 829.2738 Ops/s $\color{#35bf28}+0.44\%$
test_collector_preallocated_write[copy_at-cuda-32-32] 4.8565ms 4.7052ms 212.5328 Ops/s 211.3405 Ops/s $\color{#35bf28}+0.56\%$
test_collector_preallocated_write[copy_at-cuda-4096-2] 0.4560ms 0.3258ms 3.0689 KOps/s 3.0689 KOps/s $+0.00\%$
test_collector_preallocated_write[copy_at-cuda-4096-8] 1.3751ms 1.2068ms 828.6674 Ops/s 823.7758 Ops/s $\color{#35bf28}+0.59\%$
test_collector_preallocated_write[copy_at-cuda-4096-32] 4.8403ms 4.7102ms 212.3055 Ops/s 210.3317 Ops/s $\color{#35bf28}+0.94\%$
test_collector_preallocated_write[manual_leaf_copy-cpu-32-2] 0.1587ms 0.1218ms 8.2132 KOps/s 8.3448 KOps/s $\color{#d91a1a}-1.58\%$
test_collector_preallocated_write[manual_leaf_copy-cpu-32-8] 0.5196ms 0.4782ms 2.0914 KOps/s 2.1120 KOps/s $\color{#d91a1a}-0.98\%$
test_collector_preallocated_write[manual_leaf_copy-cpu-32-32] 2.0030ms 1.8957ms 527.5056 Ops/s 531.1474 Ops/s $\color{#d91a1a}-0.69\%$
test_collector_preallocated_write[manual_leaf_copy-cpu-4096-2] 0.4093ms 0.2568ms 3.8934 KOps/s 3.8906 KOps/s $\color{#35bf28}+0.07\%$
test_collector_preallocated_write[manual_leaf_copy-cpu-4096-8] 1.7347ms 1.2519ms 798.7585 Ops/s 781.9112 Ops/s $\color{#35bf28}+2.15\%$
test_collector_preallocated_write[manual_leaf_copy-cpu-4096-32] 8.8566ms 8.5140ms 117.4535 Ops/s 117.0701 Ops/s $\color{#35bf28}+0.33\%$
test_collector_preallocated_write[manual_leaf_copy-cuda-32-2] 0.4442ms 0.2940ms 3.4015 KOps/s 3.6441 KOps/s $\textbf{\color{#d91a1a}-6.66\%}$
test_collector_preallocated_write[manual_leaf_copy-cuda-32-8] 1.1384ms 1.0554ms 947.5109 Ops/s 972.3248 Ops/s $\color{#d91a1a}-2.55\%$
test_collector_preallocated_write[manual_leaf_copy-cuda-32-32] 4.2543ms 4.0390ms 247.5884 Ops/s 249.3475 Ops/s $\color{#d91a1a}-0.71\%$
test_collector_preallocated_write[manual_leaf_copy-cuda-4096-2] 0.3948ms 0.2774ms 3.6054 KOps/s 3.6355 KOps/s $\color{#d91a1a}-0.83\%$
test_collector_preallocated_write[manual_leaf_copy-cuda-4096-8] 1.2167ms 1.0422ms 959.5481 Ops/s 976.5741 Ops/s $\color{#d91a1a}-1.74\%$
test_collector_preallocated_write[manual_leaf_copy-cuda-4096-32] 4.1550ms 4.0649ms 246.0097 Ops/s 247.5377 Ops/s $\color{#d91a1a}-0.62\%$
test_wide_nested_preallocated_write[stack_out-cpu-128-128] 16.5600ms 16.2993ms 61.3524 Ops/s 61.2871 Ops/s $\color{#35bf28}+0.11\%$
test_wide_nested_preallocated_write[stack_out-cpu-128-256] 33.2676ms 32.8651ms 30.4274 Ops/s 30.4569 Ops/s $\color{#d91a1a}-0.10\%$
test_wide_nested_preallocated_write[stack_out-cpu-4096-128] 84.8237ms 83.8516ms 11.9258 Ops/s 11.9347 Ops/s $\color{#d91a1a}-0.07\%$
test_wide_nested_preallocated_write[stack_out-cpu-4096-256] 0.1999s 0.1996s 5.0110 Ops/s 5.1179 Ops/s $\color{#d91a1a}-2.09\%$
test_wide_nested_preallocated_write[stack_out-cuda-128-128] 14.0301ms 13.8607ms 72.1466 Ops/s 72.2503 Ops/s $\color{#d91a1a}-0.14\%$
test_wide_nested_preallocated_write[stack_out-cuda-128-256] 27.4834ms 27.2795ms 36.6576 Ops/s 36.8085 Ops/s $\color{#d91a1a}-0.41\%$
test_wide_nested_preallocated_write[stack_out-cuda-4096-128] 14.1215ms 13.9952ms 71.4532 Ops/s 71.2840 Ops/s $\color{#35bf28}+0.24\%$
test_wide_nested_preallocated_write[stack_out-cuda-4096-256] 27.4961ms 27.3440ms 36.5711 Ops/s 36.5137 Ops/s $\color{#35bf28}+0.16\%$
test_wide_nested_preallocated_write[set_at_loop-cpu-128-128] 52.7778ms 52.5433ms 19.0319 Ops/s 19.2125 Ops/s $\color{#d91a1a}-0.94\%$
test_wide_nested_preallocated_write[set_at_loop-cpu-128-256] 0.1062s 0.1058s 9.4532 Ops/s 9.5898 Ops/s $\color{#d91a1a}-1.42\%$
test_wide_nested_preallocated_write[set_at_loop-cpu-4096-128] 0.1442s 0.1432s 6.9809 Ops/s 6.9771 Ops/s $\color{#35bf28}+0.06\%$
test_wide_nested_preallocated_write[set_at_loop-cpu-4096-256] 0.3242s 0.3235s 3.0913 Ops/s 3.1810 Ops/s $\color{#d91a1a}-2.82\%$
test_wide_nested_preallocated_write[set_at_loop-cuda-128-128] 75.1206ms 74.4824ms 13.4260 Ops/s 13.2323 Ops/s $\color{#35bf28}+1.46\%$
test_wide_nested_preallocated_write[set_at_loop-cuda-128-256] 0.1614s 0.1590s 6.2901 Ops/s 6.6349 Ops/s $\textbf{\color{#d91a1a}-5.20\%}$
test_wide_nested_preallocated_write[set_at_loop-cuda-4096-128] 81.3604ms 76.9348ms 12.9980 Ops/s 13.2262 Ops/s $\color{#d91a1a}-1.73\%$
test_wide_nested_preallocated_write[set_at_loop-cuda-4096-256] 0.1622s 0.1587s 6.3030 Ops/s 6.6405 Ops/s $\textbf{\color{#d91a1a}-5.08\%}$
test_wide_nested_preallocated_write[copy_at-cpu-128-128] 30.3214ms 30.1951ms 33.1180 Ops/s 32.9368 Ops/s $\color{#35bf28}+0.55\%$
test_wide_nested_preallocated_write[copy_at-cpu-128-256] 61.4444ms 61.2933ms 16.3150 Ops/s 16.2239 Ops/s $\color{#35bf28}+0.56\%$
test_wide_nested_preallocated_write[copy_at-cpu-4096-128] 0.1183s 0.1176s 8.5042 Ops/s 8.5146 Ops/s $\color{#d91a1a}-0.12\%$
test_wide_nested_preallocated_write[copy_at-cpu-4096-256] 0.2665s 0.2647s 3.7781 Ops/s 3.8446 Ops/s $\color{#d91a1a}-1.73\%$
test_wide_nested_preallocated_write[copy_at-cuda-128-128] 43.4590ms 43.3210ms 23.0835 Ops/s 23.1871 Ops/s $\color{#d91a1a}-0.45\%$
test_wide_nested_preallocated_write[copy_at-cuda-128-256] 86.6442ms 86.5740ms 11.5508 Ops/s 11.5843 Ops/s $\color{#d91a1a}-0.29\%$
test_wide_nested_preallocated_write[copy_at-cuda-4096-128] 43.6716ms 43.5615ms 22.9561 Ops/s 23.0702 Ops/s $\color{#d91a1a}-0.49\%$
test_wide_nested_preallocated_write[copy_at-cuda-4096-256] 87.2462ms 87.0703ms 11.4850 Ops/s 11.5257 Ops/s $\color{#d91a1a}-0.35\%$
test_wide_nested_preallocated_write[manual_leaf_copy-cpu-128-128] 20.7598ms 20.6070ms 48.5271 Ops/s 48.9057 Ops/s $\color{#d91a1a}-0.77\%$
test_wide_nested_preallocated_write[manual_leaf_copy-cpu-128-256] 42.1917ms 41.9848ms 23.8181 Ops/s 23.9603 Ops/s $\color{#d91a1a}-0.59\%$
test_wide_nested_preallocated_write[manual_leaf_copy-cpu-4096-128] 0.1060s 0.1056s 9.4668 Ops/s 9.4864 Ops/s $\color{#d91a1a}-0.21\%$
test_wide_nested_preallocated_write[manual_leaf_copy-cpu-4096-256] 0.2422s 0.2417s 4.1374 Ops/s 4.2275 Ops/s $\color{#d91a1a}-2.13\%$
test_wide_nested_preallocated_write[manual_leaf_copy-cuda-128-128] 37.2702ms 37.0530ms 26.9884 Ops/s 27.3859 Ops/s $\color{#d91a1a}-1.45\%$
test_wide_nested_preallocated_write[manual_leaf_copy-cuda-128-256] 74.5207ms 74.2058ms 13.4760 Ops/s 13.6635 Ops/s $\color{#d91a1a}-1.37\%$
test_wide_nested_preallocated_write[manual_leaf_copy-cuda-4096-128] 37.4313ms 36.9965ms 27.0296 Ops/s 27.2845 Ops/s $\color{#d91a1a}-0.93\%$
test_wide_nested_preallocated_write[manual_leaf_copy-cuda-4096-256] 74.7577ms 74.2576ms 13.4666 Ops/s 13.7223 Ops/s $\color{#d91a1a}-1.86\%$
test_plain_set_nested 40.7610μs 15.5214μs 64.4274 KOps/s 64.6896 KOps/s $\color{#d91a1a}-0.41\%$
test_plain_set_stack_nested 38.9300μs 15.3694μs 65.0645 KOps/s 66.6645 KOps/s $\color{#d91a1a}-2.40\%$
test_plain_set_nested_inplace 42.5710μs 16.9705μs 58.9256 KOps/s 59.4324 KOps/s $\color{#d91a1a}-0.85\%$
test_plain_set_stack_nested_inplace 52.4310μs 16.6894μs 59.9183 KOps/s 60.8344 KOps/s $\color{#d91a1a}-1.51\%$
test_items 28.0610μs 6.0097μs 166.3966 KOps/s 166.8529 KOps/s $\color{#d91a1a}-0.27\%$
test_items_nested 0.5164ms 0.4661ms 2.1457 KOps/s 2.1306 KOps/s $\color{#35bf28}+0.71\%$
test_items_nested_locked 0.5187ms 0.4667ms 2.1425 KOps/s 2.1063 KOps/s $\color{#35bf28}+1.72\%$
test_items_nested_leaf 0.1344ms 96.1836μs 10.3968 KOps/s 10.3117 KOps/s $\color{#35bf28}+0.82\%$
test_items_stack_nested 0.5167ms 0.4610ms 2.1691 KOps/s 2.1180 KOps/s $\color{#35bf28}+2.41\%$
test_items_stack_nested_leaf 0.1370ms 96.4298μs 10.3702 KOps/s 10.2549 KOps/s $\color{#35bf28}+1.12\%$
test_items_stack_nested_locked 0.5217ms 0.4675ms 2.1392 KOps/s 2.1015 KOps/s $\color{#35bf28}+1.80\%$
test_keys 30.5900μs 4.2316μs 236.3196 KOps/s 236.2826 KOps/s $\color{#35bf28}+0.02\%$
test_keys_nested 0.1958ms 0.1300ms 7.6925 KOps/s 7.6793 KOps/s $\color{#35bf28}+0.17\%$
test_keys_nested_locked 0.7773ms 0.1389ms 7.2006 KOps/s 7.2088 KOps/s $\color{#d91a1a}-0.11\%$
test_keys_nested_leaf 0.1555ms 0.1205ms 8.2981 KOps/s 8.3121 KOps/s $\color{#d91a1a}-0.17\%$
test_keys_stack_nested 0.1615ms 0.1298ms 7.7040 KOps/s 7.7538 KOps/s $\color{#d91a1a}-0.64\%$
test_keys_stack_nested_leaf 0.1713ms 0.1200ms 8.3299 KOps/s 8.3522 KOps/s $\color{#d91a1a}-0.27\%$
test_keys_stack_nested_locked 0.2312ms 0.1387ms 7.2111 KOps/s 7.2630 KOps/s $\color{#d91a1a}-0.71\%$
test_values 8.1120μs 1.0191μs 981.2413 KOps/s 984.8991 KOps/s $\color{#d91a1a}-0.37\%$
test_values_nested 75.6210μs 52.8916μs 18.9066 KOps/s 19.0996 KOps/s $\color{#d91a1a}-1.01\%$
test_values_nested_locked 92.2710μs 55.9928μs 17.8594 KOps/s 17.9267 KOps/s $\color{#d91a1a}-0.38\%$
test_values_nested_leaf 86.0410μs 59.9309μs 16.6859 KOps/s 16.8833 KOps/s $\color{#d91a1a}-1.17\%$
test_values_stack_nested 80.4110μs 52.4174μs 19.0777 KOps/s 19.1138 KOps/s $\color{#d91a1a}-0.19\%$
test_values_stack_nested_leaf 88.2420μs 60.5489μs 16.5156 KOps/s 16.6525 KOps/s $\color{#d91a1a}-0.82\%$
test_values_stack_nested_locked 83.9420μs 55.9366μs 17.8774 KOps/s 18.0237 KOps/s $\color{#d91a1a}-0.81\%$
test_membership 4.9183μs 0.8462μs 1.1818 MOps/s 1.2074 MOps/s $\color{#d91a1a}-2.12\%$
test_membership_nested 27.7100μs 2.9980μs 333.5565 KOps/s 338.7319 KOps/s $\color{#d91a1a}-1.53\%$
test_membership_nested_leaf 26.3600μs 2.9894μs 334.5174 KOps/s 335.0799 KOps/s $\color{#d91a1a}-0.17\%$
test_membership_stacked_nested 30.0210μs 2.9114μs 343.4765 KOps/s 348.0885 KOps/s $\color{#d91a1a}-1.32\%$
test_membership_stacked_nested_leaf 35.5210μs 2.9078μs 343.9040 KOps/s 348.1683 KOps/s $\color{#d91a1a}-1.22\%$
test_membership_nested_last 30.4810μs 4.5099μs 221.7330 KOps/s 222.9879 KOps/s $\color{#d91a1a}-0.56\%$
test_membership_nested_leaf_last 40.9010μs 4.5052μs 221.9638 KOps/s 223.9017 KOps/s $\color{#d91a1a}-0.87\%$
test_membership_stacked_nested_last 33.4710μs 4.4045μs 227.0383 KOps/s 228.6983 KOps/s $\color{#d91a1a}-0.73\%$
test_membership_stacked_nested_leaf_last 40.6210μs 4.3328μs 230.7987 KOps/s 231.2086 KOps/s $\color{#d91a1a}-0.18\%$
test_nested_getleaf 46.2810μs 21.9890μs 45.4772 KOps/s 45.3052 KOps/s $\color{#35bf28}+0.38\%$
test_nested_get 53.7410μs 20.6866μs 48.3406 KOps/s 49.1759 KOps/s $\color{#d91a1a}-1.70\%$
test_stacked_getleaf 73.5610μs 22.0554μs 45.3404 KOps/s 45.3253 KOps/s $\color{#35bf28}+0.03\%$
test_stacked_get 46.9810μs 20.9283μs 47.7822 KOps/s 48.1151 KOps/s $\color{#d91a1a}-0.69\%$
test_nested_getitemleaf 52.0600μs 22.1566μs 45.1333 KOps/s 44.5535 KOps/s $\color{#35bf28}+1.30\%$
test_nested_getitem 45.0110μs 21.3751μs 46.7834 KOps/s 48.0780 KOps/s $\color{#d91a1a}-2.69\%$
test_stacked_getitemleaf 71.8320μs 21.9379μs 45.5831 KOps/s 45.1653 KOps/s $\color{#35bf28}+0.93\%$
test_stacked_getitem 49.2500μs 21.2894μs 46.9718 KOps/s 46.9841 KOps/s $\color{#d91a1a}-0.03\%$
test_lock_nested 8.1102ms 0.4815ms 2.0767 KOps/s 2.0883 KOps/s $\color{#d91a1a}-0.55\%$
test_lock_stack_nested 0.5306ms 0.4791ms 2.0874 KOps/s 2.0870 KOps/s $\color{#35bf28}+0.02\%$
test_unlock_nested 0.4540ms 0.3861ms 2.5902 KOps/s 2.6008 KOps/s $\color{#d91a1a}-0.41\%$
test_unlock_stack_nested 0.4376ms 0.3875ms 2.5806 KOps/s 2.5800 KOps/s $\color{#35bf28}+0.02\%$
test_flatten_speed 0.1517ms 0.1213ms 8.2426 KOps/s 8.2170 KOps/s $\color{#35bf28}+0.31\%$
test_unflatten_speed 0.6495ms 0.5735ms 1.7436 KOps/s 1.7438 KOps/s $\color{#d91a1a}-0.01\%$
test_common_ops 99.9083ms 1.5341ms 651.8471 Ops/s 993.2861 Ops/s $\textbf{\color{#d91a1a}-34.37\%}$
test_creation 0.1175ms 3.1644μs 316.0174 KOps/s 322.3392 KOps/s $\color{#d91a1a}-1.96\%$
test_creation_empty 33.1900μs 6.9953μs 142.9537 KOps/s 146.2471 KOps/s $\color{#d91a1a}-2.25\%$
test_creation_nested_1 44.7910μs 11.5423μs 86.6381 KOps/s 88.2904 KOps/s $\color{#d91a1a}-1.87\%$
test_creation_nested_2 31.0000μs 13.3519μs 74.8956 KOps/s 76.2059 KOps/s $\color{#d91a1a}-1.72\%$
test_creation_many_keys[10] 51.3610μs 20.8973μs 47.8530 KOps/s 48.3051 KOps/s $\color{#d91a1a}-0.94\%$
test_creation_many_keys[50] 0.1321ms 90.1153μs 11.0969 KOps/s 11.0944 KOps/s $\color{#35bf28}+0.02\%$
test_creation_many_keys[100] 0.2247ms 0.1775ms 5.6345 KOps/s 5.6422 KOps/s $\color{#d91a1a}-0.14\%$
test_creation_nested_many_keys[10] 74.5020μs 45.0851μs 22.1803 KOps/s 22.3480 KOps/s $\color{#d91a1a}-0.75\%$
test_creation_nested_many_keys[50] 0.2275ms 0.1848ms 5.4120 KOps/s 5.4360 KOps/s $\color{#d91a1a}-0.44\%$
test_clone 54.0910μs 13.3582μs 74.8606 KOps/s 74.3042 KOps/s $\color{#35bf28}+0.75\%$
test_getitem[int] 1.5424ms 15.1757μs 65.8950 KOps/s 66.5395 KOps/s $\color{#d91a1a}-0.97\%$
test_getitem[slice_int] 0.1361ms 24.5167μs 40.7886 KOps/s 40.1318 KOps/s $\color{#35bf28}+1.64\%$
test_getitem[range] 0.2361ms 65.2291μs 15.3306 KOps/s 14.5019 KOps/s $\textbf{\color{#35bf28}+5.71\%}$
test_getitem[tuple] 0.1398ms 24.2773μs 41.1908 KOps/s 41.3871 KOps/s $\color{#d91a1a}-0.47\%$
test_getitem[list] 0.1893ms 60.1669μs 16.6204 KOps/s 15.8844 KOps/s $\color{#35bf28}+4.63\%$
test_setitem_dim[int] 47.3710μs 26.2215μs 38.1366 KOps/s 36.4220 KOps/s $\color{#35bf28}+4.71\%$
test_setitem_dim[slice_int] 64.8010μs 43.3719μs 23.0564 KOps/s 22.5645 KOps/s $\color{#35bf28}+2.18\%$
test_setitem_dim[range] 0.1367ms 96.2299μs 10.3918 KOps/s 9.7686 KOps/s $\textbf{\color{#35bf28}+6.38\%}$
test_setitem_dim[tuple] 70.3910μs 39.8455μs 25.0969 KOps/s 23.9008 KOps/s $\textbf{\color{#35bf28}+5.00\%}$
test_setitem 53.6310μs 17.8633μs 55.9807 KOps/s 51.8086 KOps/s $\textbf{\color{#35bf28}+8.05\%}$
test_set 41.5400μs 16.9444μs 59.0166 KOps/s 54.3385 KOps/s $\textbf{\color{#35bf28}+8.61\%}$
test_set_shared 0.4891ms 0.2037ms 4.9087 KOps/s 4.7360 KOps/s $\color{#35bf28}+3.65\%$
test_update 0.3187ms 22.0608μs 45.3293 KOps/s 45.5071 KOps/s $\color{#d91a1a}-0.39\%$
test_update_nested 73.7310μs 33.5865μs 29.7738 KOps/s 29.3148 KOps/s $\color{#35bf28}+1.57\%$
test_update__nested 0.4651ms 33.6073μs 29.7554 KOps/s 29.9980 KOps/s $\color{#d91a1a}-0.81\%$
test_set_nested 0.1391ms 19.1399μs 52.2470 KOps/s 52.4721 KOps/s $\color{#d91a1a}-0.43\%$
test_set_nested_new 56.5700μs 23.8666μs 41.8996 KOps/s 41.8073 KOps/s $\color{#35bf28}+0.22\%$
test_select 74.1820μs 39.8448μs 25.0974 KOps/s 24.6331 KOps/s $\color{#35bf28}+1.88\%$
test_select_nested 0.1020ms 74.1261μs 13.4905 KOps/s 13.5271 KOps/s $\color{#d91a1a}-0.27\%$
test_exclude_nested 0.1197ms 91.7110μs 10.9038 KOps/s 10.9314 KOps/s $\color{#d91a1a}-0.25\%$
test_empty[True] 0.4303ms 0.3994ms 2.5039 KOps/s 2.4928 KOps/s $\color{#35bf28}+0.45\%$
test_empty[False] 7.8325μs 1.3871μs 720.9348 KOps/s 655.5245 KOps/s $\textbf{\color{#35bf28}+9.98\%}$
test_to 96.1510μs 68.4768μs 14.6035 KOps/s 14.3968 KOps/s $\color{#35bf28}+1.44\%$
test_to_nonblocking 0.1932ms 68.1136μs 14.6814 KOps/s 14.5794 KOps/s $\color{#35bf28}+0.70\%$
test_unbind_speed 1.8665ms 0.3397ms 2.9438 KOps/s 3.0099 KOps/s $\color{#d91a1a}-2.20\%$
test_unbind_speed_stack0 0.3958ms 0.3323ms 3.0097 KOps/s 3.0051 KOps/s $\color{#35bf28}+0.15\%$
test_unbind_speed_stack1 0.1150s 0.8507ms 1.1756 KOps/s 1.1631 KOps/s $\color{#35bf28}+1.07\%$
test_split 1.2576ms 1.1436ms 874.3994 Ops/s 716.8670 Ops/s $\textbf{\color{#35bf28}+21.98\%}$
test_chunk 0.1149s 1.2131ms 824.3574 Ops/s 918.1053 Ops/s $\textbf{\color{#d91a1a}-10.21\%}$
test_to_cpu_blocking 20.1740ms 19.9655ms 50.0863 Ops/s 49.0784 Ops/s $\color{#35bf28}+2.05\%$
test_to_cpu_global_sync 12.0790ms 11.8984ms 84.0449 Ops/s 83.9107 Ops/s $\color{#35bf28}+0.16\%$
test_to_cpu_event_sync 13.1612ms 12.9071ms 77.4765 Ops/s 77.5199 Ops/s $\color{#d91a1a}-0.06\%$
test_to_cpu_default 13.1606ms 12.9413ms 77.2721 Ops/s 68.8181 Ops/s $\textbf{\color{#35bf28}+12.28\%}$
test_consolidate[False-None] 0.1446s 4.8200ms 207.4667 Ops/s 239.3616 Ops/s $\textbf{\color{#d91a1a}-13.32\%}$
test_consolidate[default-None] 2.1147ms 2.0319ms 492.1440 Ops/s 483.9473 Ops/s $\color{#35bf28}+1.69\%$
test_consolidate[reduce-overhead-None] 2.0447ms 1.9397ms 515.5422 Ops/s 499.9637 Ops/s $\color{#35bf28}+3.12\%$
test_consolidate_njt[False-None] 8.7791ms 8.5868ms 116.4578 Ops/s 114.4098 Ops/s $\color{#35bf28}+1.79\%$
test_to[False-False-None] 2.2892ms 2.2159ms 451.2935 Ops/s 456.1987 Ops/s $\color{#d91a1a}-1.08\%$
test_to[True-False-None] 2.1859ms 1.8842ms 530.7370 Ops/s 531.6556 Ops/s $\color{#d91a1a}-0.17\%$
test_to[within-False-None] 6.2469ms 6.1463ms 162.6986 Ops/s 161.9298 Ops/s $\color{#35bf28}+0.47\%$
test_to[True-default-None] 10.7264ms 10.4997ms 95.2411 Ops/s 91.5917 Ops/s $\color{#35bf28}+3.98\%$
test_to_njt[False-False-None] 8.7894ms 8.6515ms 115.5874 Ops/s 113.7357 Ops/s $\color{#35bf28}+1.63\%$
test_to_njt[True-False-None] 7.1028ms 6.9104ms 144.7084 Ops/s 142.2621 Ops/s $\color{#35bf28}+1.72\%$
test_to_njt[within-False-None] 15.8369ms 15.6799ms 63.7759 Ops/s 62.9409 Ops/s $\color{#35bf28}+1.33\%$
test_creation[device0] 0.3431ms 0.1156ms 8.6471 KOps/s 8.5350 KOps/s $\color{#35bf28}+1.31\%$
test_creation_from_tensor 0.4405ms 0.1126ms 8.8839 KOps/s 8.6634 KOps/s $\color{#35bf28}+2.55\%$
test_add_one[memmap_tensor0] 0.2357ms 6.8443μs 146.1075 KOps/s 145.0891 KOps/s $\color{#35bf28}+0.70\%$
test_contiguous[memmap_tensor0] 12.9410μs 0.6603μs 1.5145 MOps/s 2.1784 MOps/s $\textbf{\color{#d91a1a}-30.48\%}$
test_stack[memmap_tensor0] 35.8110μs 4.2548μs 235.0303 KOps/s 234.4575 KOps/s $\color{#35bf28}+0.24\%$
test_memmaptd_index 1.1225ms 0.2713ms 3.6866 KOps/s 3.6732 KOps/s $\color{#35bf28}+0.36\%$
test_memmaptd_index_astensor 0.5377ms 0.3751ms 2.6662 KOps/s 2.6395 KOps/s $\color{#35bf28}+1.01\%$
test_memmaptd_index_op 0.7989ms 0.6337ms 1.5781 KOps/s 1.5420 KOps/s $\color{#35bf28}+2.34\%$
test_serialize_model 0.1372s 0.1343s 7.4434 Ops/s 7.3600 Ops/s $\color{#35bf28}+1.13\%$
test_serialize_model_pickle 1.3469s 1.2103s 0.8263 Ops/s 0.8265 Ops/s $\color{#d91a1a}-0.02\%$
test_serialize_weights 0.3176s 0.1599s 6.2530 Ops/s 7.5054 Ops/s $\textbf{\color{#d91a1a}-16.69\%}$
test_serialize_weights_returnearly 82.4430ms 64.6564ms 15.4664 Ops/s 6.3055 Ops/s $\textbf{\color{#35bf28}+145.28\%}$
test_serialize_weights_pickle 1.3719s 1.2134s 0.8242 Ops/s 0.8195 Ops/s $\color{#35bf28}+0.57\%$
test_reshape_pytree 0.2121ms 32.6326μs 30.6442 KOps/s 30.9494 KOps/s $\color{#d91a1a}-0.99\%$
test_reshape_td 78.3710μs 44.6531μs 22.3949 KOps/s 22.6019 KOps/s $\color{#d91a1a}-0.92\%$
test_view_pytree 0.1755s 41.5422μs 24.0719 KOps/s 31.0373 KOps/s $\textbf{\color{#d91a1a}-22.44\%}$
test_view_td 93.9210μs 53.4170μs 18.7206 KOps/s 18.8897 KOps/s $\color{#d91a1a}-0.90\%$
test_unbind_pytree 0.2219ms 36.4099μs 27.4651 KOps/s 27.0561 KOps/s $\color{#35bf28}+1.51\%$
test_unbind_td 0.1912ms 49.6966μs 20.1221 KOps/s 19.7235 KOps/s $\color{#35bf28}+2.02\%$
test_split_pytree 0.1970ms 42.2995μs 23.6410 KOps/s 23.6044 KOps/s $\color{#35bf28}+0.15\%$
test_split_td 0.1047ms 64.0833μs 15.6047 KOps/s 15.2308 KOps/s $\color{#35bf28}+2.45\%$
test_add_pytree 0.2316ms 42.1080μs 23.7485 KOps/s 23.6278 KOps/s $\color{#35bf28}+0.51\%$
test_add_td 91.2020μs 55.8080μs 17.9186 KOps/s 17.7855 KOps/s $\color{#35bf28}+0.75\%$
test_compile_add_one_nested[tensordict-compile] 0.2948ms 0.2232ms 4.4813 KOps/s 4.1076 KOps/s $\textbf{\color{#35bf28}+9.10\%}$
test_compile_add_one_nested[tensordict-eager] 0.3354ms 0.2032ms 4.9222 KOps/s 4.9684 KOps/s $\color{#d91a1a}-0.93\%$
test_compile_add_one_nested[pytree-compile] 0.3478ms 0.1348ms 7.4182 KOps/s 7.3317 KOps/s $\color{#35bf28}+1.18\%$
test_compile_add_one_nested[pytree-eager] 0.4200ms 0.1792ms 5.5818 KOps/s 5.5494 KOps/s $\color{#35bf28}+0.59\%$
test_compile_copy_nested[tensordict-compile] 60.8410μs 14.8699μs 67.2498 KOps/s 66.2279 KOps/s $\color{#35bf28}+1.54\%$
test_compile_copy_nested[tensordict-eager] 0.3098ms 53.0736μs 18.8418 KOps/s 18.3461 KOps/s $\color{#35bf28}+2.70\%$
test_compile_copy_nested[pytree-compile] 0.1411ms 15.2151μs 65.7241 KOps/s 63.2860 KOps/s $\color{#35bf28}+3.85\%$
test_compile_copy_nested[pytree-eager] 0.3702ms 67.6325μs 14.7858 KOps/s 14.7991 KOps/s $\color{#d91a1a}-0.09\%$
test_compile_add_one_flat[tensordict-compile] 0.3194ms 0.2459ms 4.0664 KOps/s 3.6282 KOps/s $\textbf{\color{#35bf28}+12.08\%}$
test_compile_add_one_flat[tensordict-eager] 0.4194ms 0.2829ms 3.5349 KOps/s 3.5333 KOps/s $\color{#35bf28}+0.05\%$
test_compile_add_one_flat[tensorclass-compile] 0.3540ms 0.1894ms 5.2804 KOps/s 4.9379 KOps/s $\textbf{\color{#35bf28}+6.94\%}$
test_compile_add_one_flat[tensorclass-eager] 0.1188ms 76.7875μs 13.0230 KOps/s 12.8449 KOps/s $\color{#35bf28}+1.39\%$
test_compile_add_one_flat[pytree-compile] 0.4502ms 0.1918ms 5.2138 KOps/s 3.5642 KOps/s $\textbf{\color{#35bf28}+46.28\%}$
test_compile_add_one_flat[pytree-eager] 0.8349ms 0.5212ms 1.9188 KOps/s 1.9404 KOps/s $\color{#d91a1a}-1.11\%$
test_compile_add_self_flat[tensordict-eager] 0.4969ms 0.3321ms 3.0107 KOps/s 3.0035 KOps/s $\color{#35bf28}+0.24\%$
test_compile_add_self_flat[tensordict-compile] 0.3697ms 0.2495ms 4.0075 KOps/s 3.7113 KOps/s $\textbf{\color{#35bf28}+7.98\%}$
test_compile_add_self_flat[tensorclass-eager] 0.1315ms 90.7086μs 11.0243 KOps/s 10.5563 KOps/s $\color{#35bf28}+4.43\%$
test_compile_add_self_flat[tensorclass-compile] 0.3386ms 0.1915ms 5.2231 KOps/s 4.9722 KOps/s $\textbf{\color{#35bf28}+5.04\%}$
test_compile_add_self_flat[pytree-eager] 0.6462ms 0.4308ms 2.3211 KOps/s 2.3394 KOps/s $\color{#d91a1a}-0.78\%$
test_compile_add_self_flat[pytree-compile] 0.5003ms 0.1960ms 5.1012 KOps/s 5.0831 KOps/s $\color{#35bf28}+0.36\%$
test_compile_copy_flat[tensordict-compile] 0.1521ms 19.9021μs 50.2461 KOps/s 48.6520 KOps/s $\color{#35bf28}+3.28\%$
test_compile_copy_flat[tensordict-eager] 69.7210μs 40.7893μs 24.5162 KOps/s 24.3986 KOps/s $\color{#35bf28}+0.48\%$
test_compile_copy_flat[pytree-compile] 0.1525ms 21.2965μs 46.9561 KOps/s 46.5650 KOps/s $\color{#35bf28}+0.84\%$
test_compile_copy_flat[pytree-eager] 0.3373ms 52.0390μs 19.2164 KOps/s 19.1413 KOps/s $\color{#35bf28}+0.39\%$
test_compile_assign_and_add[tensordict-compile] 2.1855ms 0.2370ms 4.2196 KOps/s 3.9052 KOps/s $\textbf{\color{#35bf28}+8.05\%}$
test_compile_assign_and_add[tensordict-eager] 3.4939ms 3.2791ms 304.9594 Ops/s 298.1585 Ops/s $\color{#35bf28}+2.28\%$
test_compile_assign_and_add[pytree-compile] 2.0859ms 0.1784ms 5.6040 KOps/s 5.4221 KOps/s $\color{#35bf28}+3.35\%$
test_compile_assign_and_add[pytree-eager] 2.9570ms 2.7957ms 357.6954 Ops/s 356.8386 Ops/s $\color{#35bf28}+0.24\%$
test_compile_indexing[tensor-tensordict-compile] 0.2814ms 0.1326ms 7.5419 KOps/s 7.1428 KOps/s $\textbf{\color{#35bf28}+5.59\%}$
test_compile_indexing[tensor-tensordict-eager] 0.3456ms 74.8194μs 13.3655 KOps/s 13.3915 KOps/s $\color{#d91a1a}-0.19\%$
test_compile_indexing[tensor-tensorclass-compile] 0.2198ms 0.1177ms 8.4986 KOps/s 8.3741 KOps/s $\color{#35bf28}+1.49\%$
test_compile_indexing[tensor-tensorclass-eager] 0.2583ms 45.5824μs 21.9383 KOps/s 22.0197 KOps/s $\color{#d91a1a}-0.37\%$
test_compile_indexing[tensor-pytree-compile] 0.1714ms 0.1187ms 8.4262 KOps/s 8.3126 KOps/s $\color{#35bf28}+1.37\%$
test_compile_indexing[tensor-pytree-eager] 0.2181s 56.8367μs 17.5943 KOps/s 22.1776 KOps/s $\textbf{\color{#d91a1a}-20.67\%}$
test_compile_indexing[slice-tensordict-compile] 0.2555ms 83.2612μs 12.0104 KOps/s 11.5301 KOps/s $\color{#35bf28}+4.17\%$
test_compile_indexing[slice-tensordict-eager] 0.2205ms 28.5427μs 35.0352 KOps/s 36.2276 KOps/s $\color{#d91a1a}-3.29\%$
test_compile_indexing[slice-tensorclass-compile] 0.2426ms 70.8358μs 14.1172 KOps/s 14.2616 KOps/s $\color{#d91a1a}-1.01\%$
test_compile_indexing[slice-tensorclass-eager] 0.2361ms 22.1898μs 45.0658 KOps/s 44.8025 KOps/s $\color{#35bf28}+0.59\%$
test_compile_indexing[slice-pytree-compile] 0.1088ms 70.4201μs 14.2005 KOps/s 14.1025 KOps/s $\color{#35bf28}+0.69\%$
test_compile_indexing[slice-pytree-eager] 0.2536ms 22.1161μs 45.2160 KOps/s 45.3093 KOps/s $\color{#d91a1a}-0.21\%$
test_compile_indexing[int-tensordict-compile] 0.1384ms 82.8365μs 12.0720 KOps/s 11.4889 KOps/s $\textbf{\color{#35bf28}+5.07\%}$
test_compile_indexing[int-tensordict-eager] 0.2254ms 28.1560μs 35.5164 KOps/s 35.5853 KOps/s $\color{#d91a1a}-0.19\%$
test_compile_indexing[int-tensorclass-compile] 0.2020ms 70.0471μs 14.2761 KOps/s 14.0257 KOps/s $\color{#35bf28}+1.79\%$
test_compile_indexing[int-tensorclass-eager] 0.2611ms 22.2785μs 44.8862 KOps/s 45.0876 KOps/s $\color{#d91a1a}-0.45\%$
test_compile_indexing[int-pytree-compile] 0.1059ms 69.8974μs 14.3067 KOps/s 14.2190 KOps/s $\color{#35bf28}+0.62\%$
test_compile_indexing[int-pytree-eager] 0.2375ms 22.2413μs 44.9613 KOps/s 45.2179 KOps/s $\color{#d91a1a}-0.57\%$
test_compile_replace[single-eager] 87.1620μs 47.4701μs 21.0659 KOps/s 20.6504 KOps/s $\color{#35bf28}+2.01\%$
test_compile_replace[single-compile] 0.2592ms 0.1284ms 7.7911 KOps/s 7.5577 KOps/s $\color{#35bf28}+3.09\%$
test_compile_replace[multi-eager] 0.6871ms 0.5677ms 1.7616 KOps/s 1.7712 KOps/s $\color{#d91a1a}-0.54\%$
test_compile_replace[multi-compile] 0.2996ms 0.1355ms 7.3794 KOps/s 7.2399 KOps/s $\color{#35bf28}+1.93\%$
test_compile_tc_getattr_20[eager] 0.2203ms 0.1694ms 5.9015 KOps/s 6.0581 KOps/s $\color{#d91a1a}-2.58\%$
test_compile_tc_getattr_20[compile] 0.4480ms 0.1462ms 6.8418 KOps/s 6.4162 KOps/s $\textbf{\color{#35bf28}+6.63\%}$
test_compile_clone_shallow[20-eager] 50.9510μs 19.1663μs 52.1749 KOps/s 51.7593 KOps/s $\color{#35bf28}+0.80\%$
test_compile_clone_shallow[20-compile] 74.2710μs 16.4924μs 60.6339 KOps/s 46.0071 KOps/s $\textbf{\color{#35bf28}+31.79\%}$
test_compile_clone_shallow[40-eager] 59.8010μs 33.8861μs 29.5106 KOps/s 29.3795 KOps/s $\color{#35bf28}+0.45\%$
test_compile_clone_shallow[40-compile] 64.0710μs 18.2090μs 54.9180 KOps/s 53.3808 KOps/s $\color{#35bf28}+2.88\%$
test_compile_clone_shallow[80-eager] 99.0710μs 62.7487μs 15.9366 KOps/s 16.0453 KOps/s $\color{#d91a1a}-0.68\%$
test_compile_clone_shallow[80-compile] 79.2010μs 21.4736μs 46.5688 KOps/s 45.6217 KOps/s $\color{#35bf28}+2.08\%$
test_compile_update_inplace[eager] 0.2043ms 61.0580μs 16.3779 KOps/s 16.3124 KOps/s $\color{#35bf28}+0.40\%$
test_compile_update_inplace[compile] 0.3160ms 0.1450ms 6.8947 KOps/s 6.7283 KOps/s $\color{#35bf28}+2.47\%$
test_mod_add[eager] 0.3308ms 0.2259ms 4.4266 KOps/s 4.3988 KOps/s $\color{#35bf28}+0.63\%$
test_mod_add[compile] 0.3228ms 0.1302ms 7.6786 KOps/s 7.1366 KOps/s $\textbf{\color{#35bf28}+7.60\%}$
test_mod_add[compile-overhead] 0.2700ms 0.1757ms 5.6903 KOps/s 5.5589 KOps/s $\color{#35bf28}+2.36\%$
test_mod_wrap[eager] 0.5554ms 0.4698ms 2.1284 KOps/s 2.1048 KOps/s $\color{#35bf28}+1.12\%$
test_mod_wrap[compile] 0.5389ms 0.3936ms 2.5404 KOps/s 2.4287 KOps/s $\color{#35bf28}+4.60\%$
test_mod_wrap[compile-overhead] 8.9018ms 4.7087ms 212.3748 Ops/s 215.3377 Ops/s $\color{#d91a1a}-1.38\%$
test_mod_wrap_and_backward[eager] 1.8943ms 1.7059ms 586.1840 Ops/s 580.1403 Ops/s $\color{#35bf28}+1.04\%$
test_mod_wrap_and_backward[compile] 2.4456ms 1.5998ms 625.0720 Ops/s 641.8659 Ops/s $\color{#d91a1a}-2.62\%$
test_mod_wrap_and_backward[compile-overhead] 1.3712ms 0.9445ms 1.0588 KOps/s 1.0365 KOps/s $\color{#35bf28}+2.15\%$
test_seq_add[eager] 0.6380ms 0.5141ms 1.9453 KOps/s 1.9445 KOps/s $\color{#35bf28}+0.04\%$
test_seq_add[compile] 0.2800ms 0.1437ms 6.9567 KOps/s 6.6900 KOps/s $\color{#35bf28}+3.99\%$
test_seq_add[compile-overhead] 0.3402ms 0.1848ms 5.4100 KOps/s 5.0940 KOps/s $\textbf{\color{#35bf28}+6.20\%}$
test_seq_wrap[eager] 1.5396ms 1.4406ms 694.1491 Ops/s 704.2453 Ops/s $\color{#d91a1a}-1.43\%$
test_seq_wrap[compile] 0.5603ms 0.4290ms 2.3307 KOps/s 2.2877 KOps/s $\color{#35bf28}+1.88\%$
test_seq_wrap[compile-overhead] 0.4322ms 0.3044ms 3.2849 KOps/s 3.2143 KOps/s $\color{#35bf28}+2.20\%$
test_func_call_runtime[False-eager] 0.9720ms 0.8561ms 1.1681 KOps/s 1.1895 KOps/s $\color{#d91a1a}-1.80\%$
test_func_call_runtime[False-compile] 1.2494ms 0.9720ms 1.0289 KOps/s 1.0052 KOps/s $\color{#35bf28}+2.36\%$
test_func_call_runtime[False-compile-overhead] 0.6525ms 0.5104ms 1.9593 KOps/s 1.9375 KOps/s $\color{#35bf28}+1.13\%$
test_func_call_runtime[True-eager] 1.2448ms 1.0531ms 949.5358 Ops/s 950.6077 Ops/s $\color{#d91a1a}-0.11\%$
test_func_call_runtime[True-compile] 1.1481ms 0.9991ms 1.0009 KOps/s 991.7029 Ops/s $\color{#35bf28}+0.92\%$
test_func_call_runtime[True-compile-overhead] 0.6268ms 0.5246ms 1.9063 KOps/s 1.8794 KOps/s $\color{#35bf28}+1.43\%$
test_func_call_cm_runtime[False-eager] 0.9262ms 0.8146ms 1.2276 KOps/s 1.2447 KOps/s $\color{#d91a1a}-1.37\%$
test_func_call_cm_runtime[False-compile] 1.1129ms 0.9511ms 1.0514 KOps/s 1.0221 KOps/s $\color{#35bf28}+2.86\%$
test_func_call_cm_runtime[False-compile-overhead] 0.6316ms 0.4935ms 2.0262 KOps/s 2.0142 KOps/s $\color{#35bf28}+0.59\%$
test_func_call_cm_runtime[True-eager] 1.3125ms 1.1963ms 835.8763 Ops/s 822.8583 Ops/s $\color{#35bf28}+1.58\%$
test_func_call_cm_runtime[True-compile] 1.1535ms 1.0028ms 997.1995 Ops/s 977.9950 Ops/s $\color{#35bf28}+1.96\%$
test_func_call_cm_runtime[True-compile-overhead] 0.6579ms 0.5437ms 1.8393 KOps/s 1.8156 KOps/s $\color{#35bf28}+1.30\%$
test_vmap_func_call_cm_runtime[eager] 2.8818ms 2.3904ms 418.3344 Ops/s 418.8829 Ops/s $\color{#d91a1a}-0.13\%$
test_vmap_func_call_cm_runtime[compile] 1.1284ms 1.0371ms 964.1839 Ops/s 971.9049 Ops/s $\color{#d91a1a}-0.79\%$
test_vmap_func_call_cm_runtime[compile-overhead] 0.6402ms 0.5370ms 1.8621 KOps/s 1.8514 KOps/s $\color{#35bf28}+0.58\%$
test_distributed 0.5644ms 0.1466ms 6.8195 KOps/s 6.6991 KOps/s $\color{#35bf28}+1.80\%$
test_tdmodule 0.7148ms 0.1943ms 5.1465 KOps/s 5.0920 KOps/s $\color{#35bf28}+1.07\%$
test_tdmodule_dispatch 0.4249ms 0.3723ms 2.6863 KOps/s 2.6591 KOps/s $\color{#35bf28}+1.02\%$
test_tdseq 53.4110μs 27.1779μs 36.7946 KOps/s 37.2160 KOps/s $\color{#d91a1a}-1.13\%$
test_tdseq_dispatch 0.3388ms 0.2149ms 4.6523 KOps/s 4.6254 KOps/s $\color{#35bf28}+0.58\%$
test_instantiation_functorch 2.1837ms 2.0865ms 479.2788 Ops/s 481.2610 Ops/s $\color{#d91a1a}-0.41\%$
test_exec_functorch 0.3097ms 0.1800ms 5.5569 KOps/s 5.5156 KOps/s $\color{#35bf28}+0.75\%$
test_exec_functional_call 0.1992ms 0.1615ms 6.1925 KOps/s 6.2035 KOps/s $\color{#d91a1a}-0.18\%$
test_exec_td_decorator 0.4605ms 0.2372ms 4.2150 KOps/s 4.1956 KOps/s $\color{#35bf28}+0.46\%$
test_vmap_mlp_speed_decorator[True-True] 1.1963ms 1.0151ms 985.0813 Ops/s 979.9818 Ops/s $\color{#35bf28}+0.52\%$
test_vmap_mlp_speed_decorator[True-False] 1.1933ms 1.0113ms 988.8289 Ops/s 979.1763 Ops/s $\color{#35bf28}+0.99\%$
test_vmap_mlp_speed_decorator[False-True] 0.8922ms 0.7126ms 1.4033 KOps/s 1.3697 KOps/s $\color{#35bf28}+2.46\%$
test_vmap_mlp_speed_decorator[False-False] 0.9053ms 0.7130ms 1.4026 KOps/s 1.3842 KOps/s $\color{#35bf28}+1.33\%$
test_vmap_transformer_speed_decorator[True-True] 21.9170ms 20.8933ms 47.8623 Ops/s 47.3297 Ops/s $\color{#35bf28}+1.13\%$
test_vmap_transformer_speed_decorator[True-False] 21.0319ms 20.8801ms 47.8924 Ops/s 47.0657 Ops/s $\color{#35bf28}+1.76\%$
test_vmap_transformer_speed_decorator[False-True] 20.7766ms 20.5200ms 48.7329 Ops/s 47.9621 Ops/s $\color{#35bf28}+1.61\%$
test_vmap_transformer_speed_decorator[False-False] 20.6768ms 20.5027ms 48.7741 Ops/s 47.8864 Ops/s $\color{#35bf28}+1.85\%$
test_to_module_speed[True] 1.6277ms 1.4771ms 677.0070 Ops/s 668.6247 Ops/s $\color{#35bf28}+1.25\%$
test_to_module_speed[False] 1.5504ms 1.4415ms 693.7288 Ops/s 687.7837 Ops/s $\color{#35bf28}+0.86\%$
test_tc_init 77.6710μs 44.4047μs 22.5201 KOps/s 22.4207 KOps/s $\color{#35bf28}+0.44\%$
test_tc_init_tensor_only 42.5210μs 9.6288μs 103.8555 KOps/s 102.8437 KOps/s $\color{#35bf28}+0.98\%$
test_tc_init_nested 0.1292ms 88.3785μs 11.3150 KOps/s 11.4394 KOps/s $\color{#d91a1a}-1.09\%$
test_tc_init_many_fields 37.1310μs 16.2605μs 61.4988 KOps/s 60.4090 KOps/s $\color{#35bf28}+1.80\%$
test_tc_first_layer_tensor 30.5000μs 1.7996μs 555.6904 KOps/s 548.2004 KOps/s $\color{#35bf28}+1.37\%$
test_tc_first_layer_tensor_only 1.6820μs 0.3972μs 2.5178 MOps/s 2.5135 MOps/s $\color{#35bf28}+0.17\%$
test_tc_first_layer_tensor_set 25.1710μs 3.8872μs 257.2533 KOps/s 255.8173 KOps/s $\color{#35bf28}+0.56\%$
test_tc_first_layer_tensor_only_set 20.9210μs 3.2593μs 306.8113 KOps/s 302.2718 KOps/s $\color{#35bf28}+1.50\%$
test_tc_first_layer_nontensor 75.9920μs 6.3651μs 157.1065 KOps/s 163.2258 KOps/s $\color{#d91a1a}-3.75\%$
test_tc_second_layer_tensor 32.0800μs 4.3959μs 227.4838 KOps/s 227.8731 KOps/s $\color{#d91a1a}-0.17\%$
test_tc_second_layer_nontensor 35.2700μs 8.9384μs 111.8764 KOps/s 116.5525 KOps/s $\color{#d91a1a}-4.01\%$
test_unbind 0.2821s 14.2686ms 70.0839 Ops/s 69.4808 Ops/s $\color{#35bf28}+0.87\%$
test_full_like 4.5829ms 4.3928ms 227.6452 Ops/s 227.3490 Ops/s $\color{#35bf28}+0.13\%$
test_zeros_like 4.5478ms 4.3717ms 228.7416 Ops/s 228.7707 Ops/s $\color{#d91a1a}-0.01\%$
test_ones_like 4.8261ms 4.3804ms 228.2884 Ops/s 228.3550 Ops/s $\color{#d91a1a}-0.03\%$
test_clone 6.6437ms 6.4429ms 155.2088 Ops/s 156.1177 Ops/s $\color{#d91a1a}-0.58\%$
test_squeeze 67.6910μs 14.4160μs 69.3675 KOps/s 70.1032 KOps/s $\color{#d91a1a}-1.05\%$
test_unsqueeze 0.1704ms 0.1164ms 8.5941 KOps/s 8.9865 KOps/s $\color{#d91a1a}-4.37\%$
test_split 0.4075ms 0.1837ms 5.4450 KOps/s 5.5784 KOps/s $\color{#d91a1a}-2.39\%$
test_permute 0.2804ms 0.2115ms 4.7283 KOps/s 4.8752 KOps/s $\color{#d91a1a}-3.01\%$
test_stack 51.5396ms 51.2305ms 19.5196 Ops/s 19.5725 Ops/s $\color{#d91a1a}-0.27\%$
test_cat 43.0672ms 42.9066ms 23.3064 Ops/s 23.2798 Ops/s $\color{#35bf28}+0.11\%$
test_sequential_tensordict 0.9535ms 0.5907ms 1.6930 KOps/s 1.7413 KOps/s $\color{#d91a1a}-2.77\%$
test_sequential_graph_module 0.1750ms 0.1227ms 8.1519 KOps/s 8.1628 KOps/s $\color{#d91a1a}-0.13\%$
test_nested_tensordict 1.1057ms 0.8228ms 1.2154 KOps/s 1.2202 KOps/s $\color{#d91a1a}-0.39\%$
test_nested_graph_module 0.1836ms 0.1318ms 7.5885 KOps/s 7.6193 KOps/s $\color{#d91a1a}-0.40\%$

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. documentation Improvements or additions to documentation Feature New feature memmap MemoryMappedTensor Test

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant