Skip to content

[Feature] Add prepared TensorDict copy_at writer - #1692

Open
vmoens wants to merge 2 commits into
mainfrom
prepare-copy-at-writer
Open

[Feature] Add prepared TensorDict copy_at writer#1692
vmoens wants to merge 2 commits into
mainfrom
prepare-copy-at-writer

Conversation

@vmoens

@vmoens vmoens commented May 6, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Adds TensorDictBase.prepare_copy_at_(dim, source=None) for repeated indexed tensor copies into one fixed destination TensorDict.
  • The returned writer precomputes destination leaves and caches indexed destination tensor views for hashable indices, then copies source leaves with torch._foreach_copy_ when available.
  • Keeps this path intentionally strict: tensor leaves only, matching source/destination leaves, and collector-style repeated writes where metadata traversal and indexed view construction can be amortized.
  • Adds public docstrings, .pyi entries, and tensorclass forwarding for the writer API.

Built on top of merged #1691 and benchmarked by #1690.

Local CPU reference

TorchRL-like shape, batch=4096:

shape mode mean vs stack
T=2 stack_out 319.96 us 1.00x
T=2 copy_at_writer 274.13 us 1.17x
T=8 stack_out 1.45 ms 1.00x
T=8 copy_at_writer 1.51 ms 0.96x

Wide nested CPU, 25 leaves:

shape mode mean vs stack
batch=128, T=128 stack_out 6.66 ms 1.00x
batch=128, T=128 copy_at_writer 5.50 ms 1.21x
batch=4096, T=128 stack_out 74.20 ms 1.00x
batch=4096, T=128 copy_at_writer 103.27 ms 0.72x

This is intentionally not framed as a universal replacement for torch.stack(..., out=...); the benchmark shows stack still wins for large CPU bulk copies. The GPU collector case is the main open comparison.

Test plan

  • .venv/bin/python -m pytest test/test_tensorclass.py::test_tensorclass_instance_methods test/test_tensorclass.py::test_tensorclass_stub_methods -q
  • .venv/bin/python -m pytest test/test_tensordict.py -q -k "test_prepare_copy_at_ or test_copy_at_fast_transition or test_update_at_nontensor_data or test_update_at_ or test_update_at_nested_time_slice"
  • .venv/bin/python -m pytest test/test_tensordict.py::TestNonTensorData::test_shared_stack --runslow -q
  • .venv/bin/python -m ufmt check tensordict/base.py tensordict/_tensorcollection.pyi tensordict/tensorclass.py tensordict/tensorclass.pyi test/test_tensordict.py
  • git diff --check

@github-actions github-actions Bot added Feature New feature Test labels May 6, 2026
@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 6, 2026
@github-actions

github-actions Bot commented May 6, 2026

Copy link
Copy Markdown
Contributor

$\color{#D29922}\textsf{\Large⚠\kern{0.2cm}\normalsize Warning}$ Result of CPU Benchmark Tests

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

Expand to view detailed results
Name Max Mean Ops Ops on Repo HEAD Change
test_collector_preallocated_write[stack_out-cpu-32-2] 0.2418ms 0.1788ms 5.5930 KOps/s 5.8095 KOps/s $\color{#d91a1a}-3.73\%$
test_collector_preallocated_write[stack_out-cpu-32-8] 0.3922ms 0.3072ms 3.2555 KOps/s 3.4335 KOps/s $\textbf{\color{#d91a1a}-5.18\%}$
test_collector_preallocated_write[stack_out-cpu-32-32] 1.2128ms 0.7715ms 1.2961 KOps/s 1.3187 KOps/s $\color{#d91a1a}-1.71\%$
test_collector_preallocated_write[stack_out-cpu-4096-2] 0.4595ms 0.3504ms 2.8543 KOps/s 2.9331 KOps/s $\color{#d91a1a}-2.69\%$
test_collector_preallocated_write[stack_out-cpu-4096-8] 1.4027ms 1.1634ms 859.5167 Ops/s 921.9190 Ops/s $\textbf{\color{#d91a1a}-6.77\%}$
test_collector_preallocated_write[stack_out-cpu-4096-32] 7.6732ms 7.3551ms 135.9592 Ops/s 134.5391 Ops/s $\color{#35bf28}+1.06\%$
test_collector_preallocated_write[stack_out-cuda-32-2] 0.3086ms 0.2527ms 3.9579 KOps/s 3.7970 KOps/s $\color{#35bf28}+4.24\%$
test_collector_preallocated_write[stack_out-cuda-32-8] 0.5091ms 0.3740ms 2.6736 KOps/s 2.6898 KOps/s $\color{#d91a1a}-0.60\%$
test_collector_preallocated_write[stack_out-cuda-32-32] 0.9050ms 0.8077ms 1.2381 KOps/s 1.2475 KOps/s $\color{#d91a1a}-0.76\%$
test_collector_preallocated_write[stack_out-cuda-4096-2] 0.3246ms 0.2574ms 3.8857 KOps/s 3.8482 KOps/s $\color{#35bf28}+0.98\%$
test_collector_preallocated_write[stack_out-cuda-4096-8] 0.4807ms 0.3758ms 2.6609 KOps/s 2.6945 KOps/s $\color{#d91a1a}-1.25\%$
test_collector_preallocated_write[stack_out-cuda-4096-32] 0.9838ms 0.8643ms 1.1570 KOps/s 1.1611 KOps/s $\color{#d91a1a}-0.35\%$
test_collector_preallocated_write[set_at_loop-cpu-32-2] 0.3043ms 0.2036ms 4.9120 KOps/s 4.8459 KOps/s $\color{#35bf28}+1.36\%$
test_collector_preallocated_write[set_at_loop-cpu-32-8] 0.9451ms 0.7891ms 1.2672 KOps/s 1.2493 KOps/s $\color{#35bf28}+1.43\%$
test_collector_preallocated_write[set_at_loop-cpu-32-32] 3.3372ms 3.1261ms 319.8829 Ops/s 311.5831 Ops/s $\color{#35bf28}+2.66\%$
test_collector_preallocated_write[set_at_loop-cpu-4096-2] 0.6911ms 0.3531ms 2.8317 KOps/s 2.8029 KOps/s $\color{#35bf28}+1.03\%$
test_collector_preallocated_write[set_at_loop-cpu-4096-8] 2.0043ms 1.6658ms 600.3158 Ops/s 622.3573 Ops/s $\color{#d91a1a}-3.54\%$
test_collector_preallocated_write[set_at_loop-cpu-4096-32] 10.4687ms 10.2170ms 97.8765 Ops/s 98.6090 Ops/s $\color{#d91a1a}-0.74\%$
test_collector_preallocated_write[set_at_loop-cuda-32-2] 0.4457ms 0.3929ms 2.5450 KOps/s 2.5756 KOps/s $\color{#d91a1a}-1.19\%$
test_collector_preallocated_write[set_at_loop-cuda-32-8] 1.5275ms 1.4279ms 700.3383 Ops/s 677.5059 Ops/s $\color{#35bf28}+3.37\%$
test_collector_preallocated_write[set_at_loop-cuda-32-32] 5.7911ms 5.5594ms 179.8757 Ops/s 170.8356 Ops/s $\textbf{\color{#35bf28}+5.29\%}$
test_collector_preallocated_write[set_at_loop-cuda-4096-2] 0.4335ms 0.3796ms 2.6343 KOps/s 2.4190 KOps/s $\textbf{\color{#35bf28}+8.90\%}$
test_collector_preallocated_write[set_at_loop-cuda-4096-8] 1.5277ms 1.4239ms 702.2763 Ops/s 652.6790 Ops/s $\textbf{\color{#35bf28}+7.60\%}$
test_collector_preallocated_write[set_at_loop-cuda-4096-32] 5.8790ms 5.6131ms 178.1559 Ops/s 167.7330 Ops/s $\textbf{\color{#35bf28}+6.21\%}$
test_collector_preallocated_write[copy_at-cpu-32-2] 0.2303ms 0.1693ms 5.9084 KOps/s 5.8634 KOps/s $\color{#35bf28}+0.77\%$
test_collector_preallocated_write[copy_at-cpu-32-8] 0.7358ms 0.6584ms 1.5189 KOps/s 1.5078 KOps/s $\color{#35bf28}+0.74\%$
test_collector_preallocated_write[copy_at-cpu-32-32] 2.7336ms 2.6161ms 382.2515 Ops/s 383.4965 Ops/s $\color{#d91a1a}-0.32\%$
test_collector_preallocated_write[copy_at-cpu-4096-2] 0.6178ms 0.3112ms 3.2132 KOps/s 3.2036 KOps/s $\color{#35bf28}+0.30\%$
test_collector_preallocated_write[copy_at-cpu-4096-8] 1.7328ms 1.5159ms 659.6630 Ops/s 679.2810 Ops/s $\color{#d91a1a}-2.89\%$
test_collector_preallocated_write[copy_at-cpu-4096-32] 9.8459ms 9.5633ms 104.5668 Ops/s 106.7033 Ops/s $\color{#d91a1a}-2.00\%$
test_collector_preallocated_write[copy_at-cuda-32-2] 0.4280ms 0.3280ms 3.0486 KOps/s 3.0189 KOps/s $\color{#35bf28}+0.98\%$
test_collector_preallocated_write[copy_at-cuda-32-8] 1.3712ms 1.2182ms 820.9107 Ops/s 825.9459 Ops/s $\color{#d91a1a}-0.61\%$
test_collector_preallocated_write[copy_at-cuda-32-32] 4.9289ms 4.7509ms 210.4873 Ops/s 211.1897 Ops/s $\color{#d91a1a}-0.33\%$
test_collector_preallocated_write[copy_at-cuda-4096-2] 0.3899ms 0.3280ms 3.0490 KOps/s 3.0487 KOps/s $\color{#35bf28}+0.01\%$
test_collector_preallocated_write[copy_at-cuda-4096-8] 1.3169ms 1.2183ms 820.8440 Ops/s 820.5557 Ops/s $\color{#35bf28}+0.04\%$
test_collector_preallocated_write[copy_at-cuda-4096-32] 4.9218ms 4.7675ms 209.7525 Ops/s 208.1778 Ops/s $\color{#35bf28}+0.76\%$
test_collector_preallocated_write[manual_leaf_copy-cpu-32-2] 0.1503ms 0.1131ms 8.8385 KOps/s 8.9211 KOps/s $\color{#d91a1a}-0.93\%$
test_collector_preallocated_write[manual_leaf_copy-cpu-32-8] 0.5059ms 0.4395ms 2.2752 KOps/s 2.2815 KOps/s $\color{#d91a1a}-0.27\%$
test_collector_preallocated_write[manual_leaf_copy-cpu-32-32] 1.8278ms 1.7570ms 569.1575 Ops/s 573.3056 Ops/s $\color{#d91a1a}-0.72\%$
test_collector_preallocated_write[manual_leaf_copy-cpu-4096-2] 0.5997ms 0.2478ms 4.0360 KOps/s 3.9530 KOps/s $\color{#35bf28}+2.10\%$
test_collector_preallocated_write[manual_leaf_copy-cpu-4096-8] 1.5175ms 1.2971ms 770.9591 Ops/s 814.6757 Ops/s $\textbf{\color{#d91a1a}-5.37\%}$
test_collector_preallocated_write[manual_leaf_copy-cpu-4096-32] 8.9181ms 8.4906ms 117.7780 Ops/s 116.9646 Ops/s $\color{#35bf28}+0.70\%$
test_collector_preallocated_write[manual_leaf_copy-cuda-32-2] 0.3543ms 0.2680ms 3.7311 KOps/s 3.7544 KOps/s $\color{#d91a1a}-0.62\%$
test_collector_preallocated_write[manual_leaf_copy-cuda-32-8] 1.0908ms 0.9938ms 1.0062 KOps/s 1.0211 KOps/s $\color{#d91a1a}-1.45\%$
test_collector_preallocated_write[manual_leaf_copy-cuda-32-32] 4.0101ms 3.8921ms 256.9323 Ops/s 261.0378 Ops/s $\color{#d91a1a}-1.57\%$
test_collector_preallocated_write[manual_leaf_copy-cuda-4096-2] 0.3403ms 0.2681ms 3.7304 KOps/s 3.7673 KOps/s $\color{#d91a1a}-0.98\%$
test_collector_preallocated_write[manual_leaf_copy-cuda-4096-8] 1.0703ms 0.9979ms 1.0021 KOps/s 1.0138 KOps/s $\color{#d91a1a}-1.16\%$
test_collector_preallocated_write[manual_leaf_copy-cuda-4096-32] 4.0156ms 3.9068ms 255.9635 Ops/s 259.2821 Ops/s $\color{#d91a1a}-1.28\%$
test_wide_nested_preallocated_write[stack_out-cpu-128-128] 15.9335ms 15.8017ms 63.2844 Ops/s 64.5108 Ops/s $\color{#d91a1a}-1.90\%$
test_wide_nested_preallocated_write[stack_out-cpu-128-256] 32.0364ms 31.7698ms 31.4764 Ops/s 31.9125 Ops/s $\color{#d91a1a}-1.37\%$
test_wide_nested_preallocated_write[stack_out-cpu-4096-128] 84.3829ms 84.1677ms 11.8810 Ops/s 11.3252 Ops/s $\color{#35bf28}+4.91\%$
test_wide_nested_preallocated_write[stack_out-cpu-4096-256] 0.2022s 0.2015s 4.9621 Ops/s 4.8811 Ops/s $\color{#35bf28}+1.66\%$
test_wide_nested_preallocated_write[stack_out-cuda-128-128] 13.3185ms 13.1116ms 76.2686 Ops/s 76.4187 Ops/s $\color{#d91a1a}-0.20\%$
test_wide_nested_preallocated_write[stack_out-cuda-128-256] 25.9181ms 25.6537ms 38.9807 Ops/s 39.2062 Ops/s $\color{#d91a1a}-0.58\%$
test_wide_nested_preallocated_write[stack_out-cuda-4096-128] 13.4216ms 13.2724ms 75.3446 Ops/s 75.2059 Ops/s $\color{#35bf28}+0.18\%$
test_wide_nested_preallocated_write[stack_out-cuda-4096-256] 26.2840ms 26.0845ms 38.3369 Ops/s 38.5593 Ops/s $\color{#d91a1a}-0.58\%$
test_wide_nested_preallocated_write[set_at_loop-cpu-128-128] 49.3511ms 48.8756ms 20.4601 Ops/s 20.2193 Ops/s $\color{#35bf28}+1.19\%$
test_wide_nested_preallocated_write[set_at_loop-cpu-128-256] 99.5311ms 98.9770ms 10.1034 Ops/s 10.0359 Ops/s $\color{#35bf28}+0.67\%$
test_wide_nested_preallocated_write[set_at_loop-cpu-4096-128] 0.1464s 0.1461s 6.8456 Ops/s 6.6376 Ops/s $\color{#35bf28}+3.13\%$
test_wide_nested_preallocated_write[set_at_loop-cpu-4096-256] 0.3190s 0.3177s 3.1481 Ops/s 3.0866 Ops/s $\color{#35bf28}+1.99\%$
test_wide_nested_preallocated_write[set_at_loop-cuda-128-128] 75.5381ms 74.6438ms 13.3970 Ops/s 13.0162 Ops/s $\color{#35bf28}+2.93\%$
test_wide_nested_preallocated_write[set_at_loop-cuda-128-256] 0.1510s 0.1502s 6.6583 Ops/s 6.5509 Ops/s $\color{#35bf28}+1.64\%$
test_wide_nested_preallocated_write[set_at_loop-cuda-4096-128] 77.3663ms 75.8914ms 13.1767 Ops/s 13.5076 Ops/s $\color{#d91a1a}-2.45\%$
test_wide_nested_preallocated_write[set_at_loop-cuda-4096-256] 0.1526s 0.1517s 6.5937 Ops/s 6.7562 Ops/s $\color{#d91a1a}-2.40\%$
test_wide_nested_preallocated_write[copy_at-cpu-128-128] 29.8599ms 29.7026ms 33.6671 Ops/s 33.6318 Ops/s $\color{#35bf28}+0.10\%$
test_wide_nested_preallocated_write[copy_at-cpu-128-256] 60.2934ms 60.0291ms 16.6586 Ops/s 16.7096 Ops/s $\color{#d91a1a}-0.31\%$
test_wide_nested_preallocated_write[copy_at-cpu-4096-128] 0.1227s 0.1223s 8.1752 Ops/s 7.9488 Ops/s $\color{#35bf28}+2.85\%$
test_wide_nested_preallocated_write[copy_at-cpu-4096-256] 0.2658s 0.2650s 3.7741 Ops/s 3.6600 Ops/s $\color{#35bf28}+3.12\%$
test_wide_nested_preallocated_write[copy_at-cuda-128-128] 43.3088ms 43.1452ms 23.1776 Ops/s 23.3348 Ops/s $\color{#d91a1a}-0.67\%$
test_wide_nested_preallocated_write[copy_at-cuda-128-256] 86.6860ms 86.2291ms 11.5970 Ops/s 11.6654 Ops/s $\color{#d91a1a}-0.59\%$
test_wide_nested_preallocated_write[copy_at-cuda-4096-128] 43.5232ms 43.4254ms 23.0280 Ops/s 23.2842 Ops/s $\color{#d91a1a}-1.10\%$
test_wide_nested_preallocated_write[copy_at-cuda-4096-256] 86.8488ms 86.6809ms 11.5366 Ops/s 11.6063 Ops/s $\color{#d91a1a}-0.60\%$
test_wide_nested_preallocated_write[manual_leaf_copy-cpu-128-128] 19.3034ms 19.2094ms 52.0577 Ops/s 52.1088 Ops/s $\color{#d91a1a}-0.10\%$
test_wide_nested_preallocated_write[manual_leaf_copy-cpu-128-256] 40.3549ms 39.7400ms 25.1636 Ops/s 25.3836 Ops/s $\color{#d91a1a}-0.87\%$
test_wide_nested_preallocated_write[manual_leaf_copy-cpu-4096-128] 0.1121s 0.1110s 9.0094 Ops/s 8.9307 Ops/s $\color{#35bf28}+0.88\%$
test_wide_nested_preallocated_write[manual_leaf_copy-cpu-4096-256] 0.2441s 0.2436s 4.1052 Ops/s 3.8968 Ops/s $\textbf{\color{#35bf28}+5.35\%}$
test_wide_nested_preallocated_write[manual_leaf_copy-cuda-128-128] 36.2423ms 35.7210ms 27.9947 Ops/s 28.7794 Ops/s $\color{#d91a1a}-2.73\%$
test_wide_nested_preallocated_write[manual_leaf_copy-cuda-128-256] 71.7272ms 71.3041ms 14.0244 Ops/s 14.4232 Ops/s $\color{#d91a1a}-2.76\%$
test_wide_nested_preallocated_write[manual_leaf_copy-cuda-4096-128] 35.9149ms 35.6155ms 28.0776 Ops/s 28.7177 Ops/s $\color{#d91a1a}-2.23\%$
test_wide_nested_preallocated_write[manual_leaf_copy-cuda-4096-256] 71.5170ms 71.1486ms 14.0551 Ops/s 14.3286 Ops/s $\color{#d91a1a}-1.91\%$
test_plain_set_nested 48.1410μs 14.7872μs 67.6261 KOps/s 67.6055 KOps/s $\color{#35bf28}+0.03\%$
test_plain_set_stack_nested 48.8510μs 14.6188μs 68.4050 KOps/s 69.0319 KOps/s $\color{#d91a1a}-0.91\%$
test_plain_set_nested_inplace 42.5410μs 16.1545μs 61.9023 KOps/s 61.7068 KOps/s $\color{#35bf28}+0.32\%$
test_plain_set_stack_nested_inplace 48.7010μs 15.9021μs 62.8849 KOps/s 62.5188 KOps/s $\color{#35bf28}+0.59\%$
test_items 30.0510μs 5.4528μs 183.3910 KOps/s 180.4905 KOps/s $\color{#35bf28}+1.61\%$
test_items_nested 0.5377ms 0.4448ms 2.2480 KOps/s 2.2510 KOps/s $\color{#d91a1a}-0.14\%$
test_items_nested_locked 0.5445ms 0.4466ms 2.2393 KOps/s 2.2452 KOps/s $\color{#d91a1a}-0.26\%$
test_items_nested_leaf 0.1307ms 91.7081μs 10.9042 KOps/s 10.8795 KOps/s $\color{#35bf28}+0.23\%$
test_items_stack_nested 0.5411ms 0.4435ms 2.2550 KOps/s 2.2622 KOps/s $\color{#d91a1a}-0.32\%$
test_items_stack_nested_leaf 0.1325ms 91.0900μs 10.9781 KOps/s 10.9629 KOps/s $\color{#35bf28}+0.14\%$
test_items_stack_nested_locked 0.5338ms 0.4454ms 2.2450 KOps/s 2.2215 KOps/s $\color{#35bf28}+1.06\%$
test_keys 42.9310μs 4.1058μs 243.5587 KOps/s 241.8459 KOps/s $\color{#35bf28}+0.71\%$
test_keys_nested 0.1829ms 0.1279ms 7.8199 KOps/s 7.7204 KOps/s $\color{#35bf28}+1.29\%$
test_keys_nested_locked 0.7757ms 0.1375ms 7.2702 KOps/s 7.3314 KOps/s $\color{#d91a1a}-0.83\%$
test_keys_nested_leaf 0.1857ms 0.1198ms 8.3464 KOps/s 8.4312 KOps/s $\color{#d91a1a}-1.01\%$
test_keys_stack_nested 0.1778ms 0.1284ms 7.7902 KOps/s 7.7793 KOps/s $\color{#35bf28}+0.14\%$
test_keys_stack_nested_leaf 0.1686ms 0.1192ms 8.3921 KOps/s 8.3881 KOps/s $\color{#35bf28}+0.05\%$
test_keys_stack_nested_locked 0.1913ms 0.1370ms 7.2971 KOps/s 7.2977 KOps/s $-0.01\%$
test_values 5.8300μs 1.0069μs 993.1779 KOps/s 1.0021 MOps/s $\color{#d91a1a}-0.89\%$
test_values_nested 80.1520μs 51.4066μs 19.4528 KOps/s 19.1901 KOps/s $\color{#35bf28}+1.37\%$
test_values_nested_locked 85.2210μs 54.0840μs 18.4898 KOps/s 18.1776 KOps/s $\color{#35bf28}+1.72\%$
test_values_nested_leaf 88.5320μs 58.2676μs 17.1622 KOps/s 16.8444 KOps/s $\color{#35bf28}+1.89\%$
test_values_stack_nested 81.5610μs 51.0065μs 19.6054 KOps/s 19.2348 KOps/s $\color{#35bf28}+1.93\%$
test_values_stack_nested_leaf 0.1014ms 58.3012μs 17.1523 KOps/s 16.7993 KOps/s $\color{#35bf28}+2.10\%$
test_values_stack_nested_locked 87.7520μs 54.0597μs 18.4981 KOps/s 18.1396 KOps/s $\color{#35bf28}+1.98\%$
test_membership 4.8917μs 0.7801μs 1.2819 MOps/s 1.2680 MOps/s $\color{#35bf28}+1.10\%$
test_membership_nested 29.0600μs 2.7949μs 357.7940 KOps/s 352.9398 KOps/s $\color{#35bf28}+1.38\%$
test_membership_nested_leaf 36.5600μs 2.8000μs 357.1438 KOps/s 366.1826 KOps/s $\color{#d91a1a}-2.47\%$
test_membership_stacked_nested 18.8700μs 2.7524μs 363.3166 KOps/s 365.3153 KOps/s $\color{#d91a1a}-0.55\%$
test_membership_stacked_nested_leaf 35.2810μs 2.7081μs 369.2639 KOps/s 367.0128 KOps/s $\color{#35bf28}+0.61\%$
test_membership_nested_last 33.7600μs 4.2285μs 236.4913 KOps/s 235.1244 KOps/s $\color{#35bf28}+0.58\%$
test_membership_nested_leaf_last 35.3000μs 4.1945μs 238.4077 KOps/s 235.8256 KOps/s $\color{#35bf28}+1.09\%$
test_membership_stacked_nested_last 41.2800μs 4.0400μs 247.5262 KOps/s 243.2249 KOps/s $\color{#35bf28}+1.77\%$
test_membership_stacked_nested_leaf_last 31.9800μs 4.0559μs 246.5531 KOps/s 242.7283 KOps/s $\color{#35bf28}+1.58\%$
test_nested_getleaf 68.1710μs 20.5922μs 48.5620 KOps/s 49.0824 KOps/s $\color{#d91a1a}-1.06\%$
test_nested_get 47.0310μs 19.5160μs 51.2400 KOps/s 52.0507 KOps/s $\color{#d91a1a}-1.56\%$
test_stacked_getleaf 48.4510μs 20.5319μs 48.7048 KOps/s 49.1274 KOps/s $\color{#d91a1a}-0.86\%$
test_stacked_get 47.1510μs 19.4915μs 51.3043 KOps/s 51.6161 KOps/s $\color{#d91a1a}-0.60\%$
test_nested_getitemleaf 47.9010μs 21.0264μs 47.5593 KOps/s 48.3526 KOps/s $\color{#d91a1a}-1.64\%$
test_nested_getitem 47.7310μs 20.1361μs 49.6621 KOps/s 50.4221 KOps/s $\color{#d91a1a}-1.51\%$
test_stacked_getitemleaf 45.5010μs 20.8666μs 47.9235 KOps/s 47.8628 KOps/s $\color{#35bf28}+0.13\%$
test_stacked_getitem 53.2010μs 19.7630μs 50.5997 KOps/s 51.1821 KOps/s $\color{#d91a1a}-1.14\%$
test_lock_nested 8.0473ms 0.4630ms 2.1597 KOps/s 2.1694 KOps/s $\color{#d91a1a}-0.45\%$
test_lock_stack_nested 0.5585ms 0.4644ms 2.1532 KOps/s 2.1658 KOps/s $\color{#d91a1a}-0.58\%$
test_unlock_nested 0.4382ms 0.3734ms 2.6780 KOps/s 2.6980 KOps/s $\color{#d91a1a}-0.74\%$
test_unlock_stack_nested 0.4233ms 0.3771ms 2.6519 KOps/s 2.6859 KOps/s $\color{#d91a1a}-1.26\%$
test_flatten_speed 0.1979ms 0.1171ms 8.5371 KOps/s 8.6412 KOps/s $\color{#d91a1a}-1.21\%$
test_unflatten_speed 0.6221ms 0.5375ms 1.8605 KOps/s 1.8585 KOps/s $\color{#35bf28}+0.11\%$
test_common_ops 0.1003s 1.5145ms 660.2639 Ops/s 593.5882 Ops/s $\textbf{\color{#35bf28}+11.23\%}$
test_creation 0.1051ms 2.9484μs 339.1638 KOps/s 345.5974 KOps/s $\color{#d91a1a}-1.86\%$
test_creation_empty 26.4010μs 6.5996μs 151.5236 KOps/s 155.1540 KOps/s $\color{#d91a1a}-2.34\%$
test_creation_nested_1 32.1610μs 10.9591μs 91.2485 KOps/s 91.5231 KOps/s $\color{#d91a1a}-0.30\%$
test_creation_nested_2 39.9910μs 12.6433μs 79.0931 KOps/s 78.6858 KOps/s $\color{#35bf28}+0.52\%$
test_creation_many_keys[10] 48.5510μs 20.0463μs 49.8844 KOps/s 49.9745 KOps/s $\color{#d91a1a}-0.18\%$
test_creation_many_keys[50] 0.1161ms 85.4148μs 11.7076 KOps/s 11.8315 KOps/s $\color{#d91a1a}-1.05\%$
test_creation_many_keys[100] 0.2292ms 0.1670ms 5.9870 KOps/s 5.9968 KOps/s $\color{#d91a1a}-0.16\%$
test_creation_nested_many_keys[10] 78.4420μs 42.4347μs 23.5656 KOps/s 23.4208 KOps/s $\color{#35bf28}+0.62\%$
test_creation_nested_many_keys[50] 0.2411ms 0.1754ms 5.7017 KOps/s 5.7987 KOps/s $\color{#d91a1a}-1.67\%$
test_clone 45.0210μs 12.8105μs 78.0611 KOps/s 79.9005 KOps/s $\color{#d91a1a}-2.30\%$
test_getitem[int] 1.5933ms 14.7623μs 67.7401 KOps/s 68.6698 KOps/s $\color{#d91a1a}-1.35\%$
test_getitem[slice_int] 0.1380ms 23.7042μs 42.1866 KOps/s 39.8823 KOps/s $\textbf{\color{#35bf28}+5.78\%}$
test_getitem[range] 0.1719ms 61.1707μs 16.3477 KOps/s 15.5384 KOps/s $\textbf{\color{#35bf28}+5.21\%}$
test_getitem[tuple] 0.1417ms 23.2881μs 42.9403 KOps/s 42.9805 KOps/s $\color{#d91a1a}-0.09\%$
test_getitem[list] 0.1801ms 56.6285μs 17.6590 KOps/s 16.9679 KOps/s $\color{#35bf28}+4.07\%$
test_setitem_dim[int] 45.2710μs 24.7633μs 40.3824 KOps/s 41.1969 KOps/s $\color{#d91a1a}-1.98\%$
test_setitem_dim[slice_int] 60.8310μs 40.9128μs 24.4422 KOps/s 23.4244 KOps/s $\color{#35bf28}+4.34\%$
test_setitem_dim[range] 0.1283ms 90.3660μs 11.0661 KOps/s 10.8223 KOps/s $\color{#35bf28}+2.25\%$
test_setitem_dim[tuple] 58.7910μs 37.5596μs 26.6244 KOps/s 26.3541 KOps/s $\color{#35bf28}+1.03\%$
test_setitem 45.6200μs 17.1046μs 58.4637 KOps/s 59.2118 KOps/s $\color{#d91a1a}-1.26\%$
test_set 0.2723ms 16.3154μs 61.2917 KOps/s 61.6970 KOps/s $\color{#d91a1a}-0.66\%$
test_set_shared 0.4992ms 0.2013ms 4.9687 KOps/s 4.7930 KOps/s $\color{#35bf28}+3.67\%$
test_update 0.3515ms 21.4985μs 46.5149 KOps/s 46.6748 KOps/s $\color{#d91a1a}-0.34\%$
test_update_nested 73.3520μs 32.1852μs 31.0702 KOps/s 30.7888 KOps/s $\color{#35bf28}+0.91\%$
test_update__nested 0.5264ms 33.4381μs 29.9060 KOps/s 30.4806 KOps/s $\color{#d91a1a}-1.89\%$
test_set_nested 54.9710μs 18.0944μs 55.2656 KOps/s 55.2836 KOps/s $\color{#d91a1a}-0.03\%$
test_set_nested_new 60.4210μs 23.1425μs 43.2105 KOps/s 44.6722 KOps/s $\color{#d91a1a}-3.27\%$
test_select 73.5520μs 37.7655μs 26.4792 KOps/s 26.0144 KOps/s $\color{#35bf28}+1.79\%$
test_select_nested 99.3920μs 70.2436μs 14.2362 KOps/s 14.2180 KOps/s $\color{#35bf28}+0.13\%$
test_exclude_nested 0.1260ms 87.5807μs 11.4180 KOps/s 11.5763 KOps/s $\color{#d91a1a}-1.37\%$
test_empty[True] 0.5006ms 0.3846ms 2.6003 KOps/s 2.5753 KOps/s $\color{#35bf28}+0.97\%$
test_empty[False] 7.6328μs 1.2969μs 771.0477 KOps/s 763.8010 KOps/s $\color{#35bf28}+0.95\%$
test_to 0.1185ms 68.2344μs 14.6554 KOps/s 14.5485 KOps/s $\color{#35bf28}+0.73\%$
test_to_nonblocking 0.1075ms 66.6181μs 15.0109 KOps/s 14.8410 KOps/s $\color{#35bf28}+1.15\%$
test_unbind_speed 0.3552ms 0.3238ms 3.0879 KOps/s 3.0923 KOps/s $\color{#d91a1a}-0.14\%$
test_unbind_speed_stack0 0.3773ms 0.3231ms 3.0952 KOps/s 3.1175 KOps/s $\color{#d91a1a}-0.72\%$
test_unbind_speed_stack1 0.1085s 0.8210ms 1.2180 KOps/s 1.2016 KOps/s $\color{#35bf28}+1.36\%$
test_split 0.1084s 1.2169ms 821.7686 Ops/s 918.7190 Ops/s $\textbf{\color{#d91a1a}-10.55\%}$
test_chunk 1.0976ms 1.0463ms 955.7424 Ops/s 772.3975 Ops/s $\textbf{\color{#35bf28}+23.74\%}$
test_to_cpu_blocking 0.1282s 22.2633ms 44.9169 Ops/s 50.1602 Ops/s $\textbf{\color{#d91a1a}-10.45\%}$
test_to_cpu_global_sync 11.8617ms 11.7865ms 84.8430 Ops/s 85.3489 Ops/s $\color{#d91a1a}-0.59\%$
test_to_cpu_event_sync 13.0978ms 12.7940ms 78.1615 Ops/s 78.7376 Ops/s $\color{#d91a1a}-0.73\%$
test_to_cpu_default 13.1640ms 12.8139ms 78.0405 Ops/s 70.5585 Ops/s $\textbf{\color{#35bf28}+10.60\%}$
test_consolidate[False-None] 4.5606ms 3.9577ms 252.6713 Ops/s 253.2464 Ops/s $\color{#d91a1a}-0.23\%$
test_consolidate[default-None] 2.0546ms 1.9497ms 512.8985 Ops/s 503.3411 Ops/s $\color{#35bf28}+1.90\%$
test_consolidate[reduce-overhead-None] 2.0128ms 1.8828ms 531.1335 Ops/s 521.0404 Ops/s $\color{#35bf28}+1.94\%$
test_consolidate_njt[False-None] 8.6973ms 8.2650ms 120.9919 Ops/s 120.7334 Ops/s $\color{#35bf28}+0.21\%$
test_to[False-False-None] 2.2505ms 2.1786ms 459.0177 Ops/s 460.7891 Ops/s $\color{#d91a1a}-0.38\%$
test_to[True-False-None] 2.1779ms 1.8870ms 529.9451 Ops/s 531.8516 Ops/s $\color{#d91a1a}-0.36\%$
test_to[within-False-None] 6.2935ms 6.0057ms 166.5074 Ops/s 165.9737 Ops/s $\color{#35bf28}+0.32\%$
test_to[True-default-None] 10.2775ms 9.2826ms 107.7287 Ops/s 104.5066 Ops/s $\color{#35bf28}+3.08\%$
test_to_njt[False-False-None] 8.4123ms 8.2909ms 120.6136 Ops/s 116.2689 Ops/s $\color{#35bf28}+3.74\%$
test_to_njt[True-False-None] 7.2555ms 6.8005ms 147.0487 Ops/s 147.6946 Ops/s $\color{#d91a1a}-0.44\%$
test_to_njt[within-False-None] 15.8228ms 15.0546ms 66.4251 Ops/s 65.6432 Ops/s $\color{#35bf28}+1.19\%$
test_creation[device0] 0.3432ms 0.1173ms 8.5246 KOps/s 8.6065 KOps/s $\color{#d91a1a}-0.95\%$
test_creation_from_tensor 0.4208ms 0.1115ms 8.9721 KOps/s 8.9518 KOps/s $\color{#35bf28}+0.23\%$
test_add_one[memmap_tensor0] 0.4555ms 6.5235μs 153.2913 KOps/s 154.6221 KOps/s $\color{#d91a1a}-0.86\%$
test_contiguous[memmap_tensor0] 30.8310μs 0.5850μs 1.7094 MOps/s 2.3986 MOps/s $\textbf{\color{#d91a1a}-28.73\%}$
test_stack[memmap_tensor0] 32.9310μs 4.4373μs 225.3632 KOps/s 228.5958 KOps/s $\color{#d91a1a}-1.41\%$
test_memmaptd_index 1.1090ms 0.2635ms 3.7947 KOps/s 3.8201 KOps/s $\color{#d91a1a}-0.66\%$
test_memmaptd_index_astensor 0.5816ms 0.3645ms 2.7437 KOps/s 2.7589 KOps/s $\color{#d91a1a}-0.55\%$
test_memmaptd_index_op 0.8701ms 0.6328ms 1.5802 KOps/s 1.6344 KOps/s $\color{#d91a1a}-3.32\%$
test_serialize_model 0.1372s 0.1346s 7.4310 Ops/s 3.4062 Ops/s $\textbf{\color{#35bf28}+118.16\%}$
test_serialize_model_pickle 1.3501s 1.2100s 0.8264 Ops/s 0.8267 Ops/s $\color{#d91a1a}-0.04\%$
test_serialize_weights 0.3102s 0.1588s 6.2965 Ops/s 7.4938 Ops/s $\textbf{\color{#d91a1a}-15.98\%}$
test_serialize_weights_returnearly 76.9045ms 61.8812ms 16.1600 Ops/s 11.2557 Ops/s $\textbf{\color{#35bf28}+43.57\%}$
test_serialize_weights_pickle 1.3647s 1.2131s 0.8244 Ops/s 0.8216 Ops/s $\color{#35bf28}+0.34\%$
test_reshape_pytree 0.4392ms 30.9418μs 32.3188 KOps/s 32.6833 KOps/s $\color{#d91a1a}-1.12\%$
test_reshape_td 74.4420μs 43.3840μs 23.0500 KOps/s 23.2571 KOps/s $\color{#d91a1a}-0.89\%$
test_view_pytree 0.4545ms 30.7148μs 32.5576 KOps/s 32.9745 KOps/s $\color{#d91a1a}-1.26\%$
test_view_td 98.8720μs 55.2401μs 18.1028 KOps/s 19.1778 KOps/s $\textbf{\color{#d91a1a}-5.61\%}$
test_unbind_pytree 0.4499ms 34.5918μs 28.9086 KOps/s 28.6312 KOps/s $\color{#35bf28}+0.97\%$
test_unbind_td 0.1249ms 51.5822μs 19.3865 KOps/s 20.4203 KOps/s $\textbf{\color{#d91a1a}-5.06\%}$
test_split_pytree 0.4779ms 42.0473μs 23.7828 KOps/s 24.9515 KOps/s $\color{#d91a1a}-4.68\%$
test_split_td 0.2046ms 65.8454μs 15.1871 KOps/s 16.3547 KOps/s $\textbf{\color{#d91a1a}-7.14\%}$
test_add_pytree 0.4722ms 40.6704μs 24.5879 KOps/s 25.2622 KOps/s $\color{#d91a1a}-2.67\%$
test_add_td 0.1012ms 58.3081μs 17.1503 KOps/s 18.5961 KOps/s $\textbf{\color{#d91a1a}-7.77\%}$
test_compile_add_one_nested[tensordict-compile] 0.2672ms 0.1594ms 6.2753 KOps/s 5.9400 KOps/s $\textbf{\color{#35bf28}+5.65\%}$
test_compile_add_one_nested[tensordict-eager] 0.4251ms 0.1943ms 5.1468 KOps/s 4.9023 KOps/s $\color{#35bf28}+4.99\%$
test_compile_add_one_nested[pytree-compile] 0.3038ms 0.1236ms 8.0913 KOps/s 7.6885 KOps/s $\textbf{\color{#35bf28}+5.24\%}$
test_compile_add_one_nested[pytree-eager] 0.4134ms 0.1815ms 5.5092 KOps/s 5.6790 KOps/s $\color{#d91a1a}-2.99\%$
test_compile_copy_nested[tensordict-compile] 0.1578ms 16.5673μs 60.3598 KOps/s 62.7366 KOps/s $\color{#d91a1a}-3.79\%$
test_compile_copy_nested[tensordict-eager] 0.2480ms 50.3114μs 19.8762 KOps/s 19.5891 KOps/s $\color{#35bf28}+1.47\%$
test_compile_copy_nested[pytree-compile] 0.1667ms 15.2682μs 65.4956 KOps/s 66.0001 KOps/s $\color{#d91a1a}-0.76\%$
test_compile_copy_nested[pytree-eager] 0.3911ms 63.0759μs 15.8539 KOps/s 15.9279 KOps/s $\color{#d91a1a}-0.46\%$
test_compile_add_one_flat[tensordict-compile] 0.3134ms 0.1942ms 5.1491 KOps/s 4.9358 KOps/s $\color{#35bf28}+4.32\%$
test_compile_add_one_flat[tensordict-eager] 0.3189ms 0.2749ms 3.6381 KOps/s 3.6054 KOps/s $\color{#35bf28}+0.91\%$
test_compile_add_one_flat[tensorclass-compile] 0.3263ms 0.1341ms 7.4582 KOps/s 7.4195 KOps/s $\color{#35bf28}+0.52\%$
test_compile_add_one_flat[tensorclass-eager] 0.1309ms 73.4895μs 13.6074 KOps/s 13.6520 KOps/s $\color{#d91a1a}-0.33\%$
test_compile_add_one_flat[pytree-compile] 0.2518ms 0.1756ms 5.6952 KOps/s 5.5568 KOps/s $\color{#35bf28}+2.49\%$
test_compile_add_one_flat[pytree-eager] 0.8176ms 0.5370ms 1.8621 KOps/s 1.9033 KOps/s $\color{#d91a1a}-2.17\%$
test_compile_add_self_flat[tensordict-eager] 0.3895ms 0.3249ms 3.0783 KOps/s 3.0445 KOps/s $\color{#35bf28}+1.11\%$
test_compile_add_self_flat[tensordict-compile] 0.2408ms 0.1950ms 5.1285 KOps/s 4.7282 KOps/s $\textbf{\color{#35bf28}+8.47\%}$
test_compile_add_self_flat[tensorclass-eager] 0.1340ms 88.7442μs 11.2683 KOps/s 11.2065 KOps/s $\color{#35bf28}+0.55\%$
test_compile_add_self_flat[tensorclass-compile] 0.2771ms 0.1390ms 7.1930 KOps/s 7.1502 KOps/s $\color{#35bf28}+0.60\%$
test_compile_add_self_flat[pytree-eager] 0.7262ms 0.4724ms 2.1171 KOps/s 2.2725 KOps/s $\textbf{\color{#d91a1a}-6.84\%}$
test_compile_add_self_flat[pytree-compile] 0.4322ms 0.1758ms 5.6897 KOps/s 5.4907 KOps/s $\color{#35bf28}+3.62\%$
test_compile_copy_flat[tensordict-compile] 73.7720μs 19.7293μs 50.6860 KOps/s 50.3979 KOps/s $\color{#35bf28}+0.57\%$
test_compile_copy_flat[tensordict-eager] 88.4020μs 40.0554μs 24.9654 KOps/s 25.2068 KOps/s $\color{#d91a1a}-0.96\%$
test_compile_copy_flat[pytree-compile] 0.1361ms 16.3844μs 61.0337 KOps/s 61.1342 KOps/s $\color{#d91a1a}-0.16\%$
test_compile_copy_flat[pytree-eager] 0.3379ms 51.0132μs 19.6028 KOps/s 19.7671 KOps/s $\color{#d91a1a}-0.83\%$
test_compile_assign_and_add[tensordict-compile] 2.0131ms 0.1834ms 5.4521 KOps/s 4.7950 KOps/s $\textbf{\color{#35bf28}+13.70\%}$
test_compile_assign_and_add[tensordict-eager] 3.5813ms 3.3841ms 295.4991 Ops/s 296.9848 Ops/s $\color{#d91a1a}-0.50\%$
test_compile_assign_and_add[pytree-compile] 1.9814ms 0.1724ms 5.8003 KOps/s 5.6670 KOps/s $\color{#35bf28}+2.35\%$
test_compile_assign_and_add[pytree-eager] 3.0066ms 2.8226ms 354.2771 Ops/s 349.9072 Ops/s $\color{#35bf28}+1.25\%$
test_compile_indexing[tensor-tensordict-compile] 0.2461ms 0.1241ms 8.0570 KOps/s 7.7566 KOps/s $\color{#35bf28}+3.87\%$
test_compile_indexing[tensor-tensordict-eager] 0.2993ms 75.3420μs 13.2728 KOps/s 13.2185 KOps/s $\color{#35bf28}+0.41\%$
test_compile_indexing[tensor-tensorclass-compile] 0.2173ms 0.1098ms 9.1070 KOps/s 8.8082 KOps/s $\color{#35bf28}+3.39\%$
test_compile_indexing[tensor-tensorclass-eager] 0.2509ms 43.8581μs 22.8008 KOps/s 22.4198 KOps/s $\color{#35bf28}+1.70\%$
test_compile_indexing[tensor-pytree-compile] 0.1721ms 0.1111ms 9.0048 KOps/s 8.9339 KOps/s $\color{#35bf28}+0.79\%$
test_compile_indexing[tensor-pytree-eager] 0.2372ms 45.5076μs 21.9743 KOps/s 22.5361 KOps/s $\color{#d91a1a}-2.49\%$
test_compile_indexing[slice-tensordict-compile] 0.1994ms 67.4442μs 14.8271 KOps/s 14.1726 KOps/s $\color{#35bf28}+4.62\%$
test_compile_indexing[slice-tensordict-eager] 0.2010ms 26.2749μs 38.0591 KOps/s 37.3242 KOps/s $\color{#35bf28}+1.97\%$
test_compile_indexing[slice-tensorclass-compile] 0.1688ms 57.8517μs 17.2856 KOps/s 17.8862 KOps/s $\color{#d91a1a}-3.36\%$
test_compile_indexing[slice-tensorclass-eager] 0.2295ms 21.4617μs 46.5946 KOps/s 47.3392 KOps/s $\color{#d91a1a}-1.57\%$
test_compile_indexing[slice-pytree-compile] 0.1106ms 57.1950μs 17.4841 KOps/s 17.5783 KOps/s $\color{#d91a1a}-0.54\%$
test_compile_indexing[slice-pytree-eager] 0.2567ms 20.7488μs 48.1956 KOps/s 47.9813 KOps/s $\color{#35bf28}+0.45\%$
test_compile_indexing[int-tensordict-compile] 0.1315ms 68.8191μs 14.5309 KOps/s 14.0075 KOps/s $\color{#35bf28}+3.74\%$
test_compile_indexing[int-tensordict-eager] 0.2109ms 26.6424μs 37.5342 KOps/s 37.4260 KOps/s $\color{#35bf28}+0.29\%$
test_compile_indexing[int-tensorclass-compile] 0.1025ms 59.6130μs 16.7749 KOps/s 17.6629 KOps/s $\textbf{\color{#d91a1a}-5.03\%}$
test_compile_indexing[int-tensorclass-eager] 0.2386ms 21.1219μs 47.3443 KOps/s 48.2254 KOps/s $\color{#d91a1a}-1.83\%$
test_compile_indexing[int-pytree-compile] 0.1049ms 59.0410μs 16.9374 KOps/s 17.4329 KOps/s $\color{#d91a1a}-2.84\%$
test_compile_indexing[int-pytree-eager] 0.2690ms 20.9864μs 47.6498 KOps/s 47.8125 KOps/s $\color{#d91a1a}-0.34\%$
test_compile_replace[single-eager] 89.4510μs 46.2304μs 21.6308 KOps/s 21.4253 KOps/s $\color{#35bf28}+0.96\%$
test_compile_replace[single-compile] 0.1807ms 0.1184ms 8.4474 KOps/s 8.1856 KOps/s $\color{#35bf28}+3.20\%$
test_compile_replace[multi-eager] 0.7199ms 0.5474ms 1.8269 KOps/s 1.8385 KOps/s $\color{#d91a1a}-0.63\%$
test_compile_replace[multi-compile] 0.2973ms 0.1245ms 8.0348 KOps/s 7.7463 KOps/s $\color{#35bf28}+3.73\%$
test_compile_tc_getattr_20[eager] 0.2439ms 0.1731ms 5.7773 KOps/s 5.7341 KOps/s $\color{#35bf28}+0.75\%$
test_compile_tc_getattr_20[compile] 0.2555ms 0.1367ms 7.3155 KOps/s 7.2416 KOps/s $\color{#35bf28}+1.02\%$
test_compile_clone_shallow[20-eager] 50.7210μs 18.4768μs 54.1219 KOps/s 54.6451 KOps/s $\color{#d91a1a}-0.96\%$
test_compile_clone_shallow[20-compile] 80.9120μs 16.9643μs 58.9472 KOps/s 59.8904 KOps/s $\color{#d91a1a}-1.57\%$
test_compile_clone_shallow[40-eager] 72.1810μs 32.7034μs 30.5779 KOps/s 30.9939 KOps/s $\color{#d91a1a}-1.34\%$
test_compile_clone_shallow[40-compile] 82.2210μs 19.3686μs 51.6300 KOps/s 55.1887 KOps/s $\textbf{\color{#d91a1a}-6.45\%}$
test_compile_clone_shallow[80-eager] 92.7510μs 60.3526μs 16.5693 KOps/s 16.4266 KOps/s $\color{#35bf28}+0.87\%$
test_compile_clone_shallow[80-compile] 81.6820μs 21.4216μs 46.6819 KOps/s 46.7956 KOps/s $\color{#d91a1a}-0.24\%$
test_compile_update_inplace[eager] 0.2238ms 58.8832μs 16.9828 KOps/s 17.5945 KOps/s $\color{#d91a1a}-3.48\%$
test_compile_update_inplace[compile] 0.3283ms 0.1479ms 6.7599 KOps/s 6.7105 KOps/s $\color{#35bf28}+0.74\%$
test_mod_add[eager] 0.3205ms 0.2195ms 4.5562 KOps/s 4.5200 KOps/s $\color{#35bf28}+0.80\%$
test_mod_add[compile] 0.5593ms 0.1197ms 8.3550 KOps/s 8.5337 KOps/s $\color{#d91a1a}-2.09\%$
test_mod_add[compile-overhead] 0.4660ms 0.1637ms 6.1079 KOps/s 6.0259 KOps/s $\color{#35bf28}+1.36\%$
test_mod_wrap[eager] 0.5554ms 0.4670ms 2.1411 KOps/s 2.1196 KOps/s $\color{#35bf28}+1.01\%$
test_mod_wrap[compile] 0.4657ms 0.3592ms 2.7837 KOps/s 2.6416 KOps/s $\textbf{\color{#35bf28}+5.38\%}$
test_mod_wrap[compile-overhead] 9.2950ms 5.0512ms 197.9723 Ops/s 204.0393 Ops/s $\color{#d91a1a}-2.97\%$
test_mod_wrap_and_backward[eager] 1.8314ms 1.6734ms 597.5805 Ops/s 590.4367 Ops/s $\color{#35bf28}+1.21\%$
test_mod_wrap_and_backward[compile] 1.8881ms 1.4454ms 691.8417 Ops/s 689.2536 Ops/s $\color{#35bf28}+0.38\%$
test_mod_wrap_and_backward[compile-overhead] 1.7387ms 0.8927ms 1.1203 KOps/s 1.0950 KOps/s $\color{#35bf28}+2.30\%$
test_seq_add[eager] 0.5793ms 0.4921ms 2.0319 KOps/s 2.0133 KOps/s $\color{#35bf28}+0.93\%$
test_seq_add[compile] 0.3190ms 0.1299ms 7.6998 KOps/s 7.6622 KOps/s $\color{#35bf28}+0.49\%$
test_seq_add[compile-overhead] 0.2337ms 0.1731ms 5.7754 KOps/s 5.7687 KOps/s $\color{#35bf28}+0.12\%$
test_seq_wrap[eager] 1.5003ms 1.3801ms 724.5691 Ops/s 719.2918 Ops/s $\color{#35bf28}+0.73\%$
test_seq_wrap[compile] 0.4931ms 0.3941ms 2.5373 KOps/s 2.5858 KOps/s $\color{#d91a1a}-1.88\%$
test_seq_wrap[compile-overhead] 0.3610ms 0.2845ms 3.5155 KOps/s 3.4711 KOps/s $\color{#35bf28}+1.28\%$
test_func_call_runtime[False-eager] 0.9384ms 0.8556ms 1.1688 KOps/s 1.2102 KOps/s $\color{#d91a1a}-3.42\%$
test_func_call_runtime[False-compile] 1.2102ms 0.9285ms 1.0770 KOps/s 1.1046 KOps/s $\color{#d91a1a}-2.50\%$
test_func_call_runtime[False-compile-overhead] 0.7448ms 0.4741ms 2.1092 KOps/s 2.1131 KOps/s $\color{#d91a1a}-0.18\%$
test_func_call_runtime[True-eager] 1.0980ms 1.0408ms 960.7904 Ops/s 942.9192 Ops/s $\color{#35bf28}+1.90\%$
test_func_call_runtime[True-compile] 1.0401ms 0.9134ms 1.0948 KOps/s 1.0773 KOps/s $\color{#35bf28}+1.63\%$
test_func_call_runtime[True-compile-overhead] 0.6108ms 0.4830ms 2.0706 KOps/s 2.0388 KOps/s $\color{#35bf28}+1.56\%$
test_func_call_cm_runtime[False-eager] 0.9032ms 0.8183ms 1.2220 KOps/s 1.1360 KOps/s $\textbf{\color{#35bf28}+7.57\%}$
test_func_call_cm_runtime[False-compile] 1.2303ms 0.9072ms 1.1023 KOps/s 1.0782 KOps/s $\color{#35bf28}+2.24\%$
test_func_call_cm_runtime[False-compile-overhead] 0.8304ms 0.4565ms 2.1906 KOps/s 2.2099 KOps/s $\color{#d91a1a}-0.87\%$
test_func_call_cm_runtime[True-eager] 1.3310ms 1.1877ms 841.9921 Ops/s 833.5896 Ops/s $\color{#35bf28}+1.01\%$
test_func_call_cm_runtime[True-compile] 1.0287ms 0.9467ms 1.0563 KOps/s 1.0223 KOps/s $\color{#35bf28}+3.33\%$
test_func_call_cm_runtime[True-compile-overhead] 0.5912ms 0.4929ms 2.0288 KOps/s 1.9912 KOps/s $\color{#35bf28}+1.89\%$
test_vmap_func_call_cm_runtime[eager] 2.9575ms 2.3576ms 424.1530 Ops/s 420.2141 Ops/s $\color{#35bf28}+0.94\%$
test_vmap_func_call_cm_runtime[compile] 1.0526ms 0.9547ms 1.0475 KOps/s 1.0561 KOps/s $\color{#d91a1a}-0.81\%$
test_vmap_func_call_cm_runtime[compile-overhead] 0.5625ms 0.4961ms 2.0158 KOps/s 1.9789 KOps/s $\color{#35bf28}+1.86\%$
test_distributed 3.1632ms 0.1508ms 6.6313 KOps/s 6.8166 KOps/s $\color{#d91a1a}-2.72\%$
test_tdmodule 0.7027ms 0.1876ms 5.3311 KOps/s 5.1378 KOps/s $\color{#35bf28}+3.76\%$
test_tdmodule_dispatch 3.7923ms 0.3661ms 2.7318 KOps/s 2.7523 KOps/s $\color{#d91a1a}-0.74\%$
test_tdseq 45.9100μs 26.0309μs 38.4158 KOps/s 38.2696 KOps/s $\color{#35bf28}+0.38\%$
test_tdseq_dispatch 0.2537ms 0.2091ms 4.7826 KOps/s 4.7459 KOps/s $\color{#35bf28}+0.77\%$
test_instantiation_functorch 2.1194ms 1.9721ms 507.0820 Ops/s 505.2388 Ops/s $\color{#35bf28}+0.36\%$
test_exec_functorch 0.2202ms 0.1727ms 5.7892 KOps/s 5.8549 KOps/s $\color{#d91a1a}-1.12\%$
test_exec_functional_call 0.2135ms 0.1542ms 6.4856 KOps/s 6.4899 KOps/s $\color{#d91a1a}-0.07\%$
test_exec_td_decorator 0.4433ms 0.2301ms 4.3451 KOps/s 4.3817 KOps/s $\color{#d91a1a}-0.84\%$
test_vmap_mlp_speed_decorator[True-True] 1.1913ms 0.9828ms 1.0175 KOps/s 1.0075 KOps/s $\color{#35bf28}+0.99\%$
test_vmap_mlp_speed_decorator[True-False] 1.1746ms 0.9823ms 1.0180 KOps/s 1.0082 KOps/s $\color{#35bf28}+0.97\%$
test_vmap_mlp_speed_decorator[False-True] 0.8707ms 0.6901ms 1.4491 KOps/s 1.4317 KOps/s $\color{#35bf28}+1.22\%$
test_vmap_mlp_speed_decorator[False-False] 0.8544ms 0.6927ms 1.4436 KOps/s 1.4323 KOps/s $\color{#35bf28}+0.79\%$
test_vmap_transformer_speed_decorator[True-True] 20.6764ms 20.5446ms 48.6745 Ops/s 48.4825 Ops/s $\color{#35bf28}+0.40\%$
test_vmap_transformer_speed_decorator[True-False] 21.0955ms 20.4729ms 48.8451 Ops/s 48.5095 Ops/s $\color{#35bf28}+0.69\%$
test_vmap_transformer_speed_decorator[False-True] 20.8519ms 20.1354ms 49.6637 Ops/s 49.2652 Ops/s $\color{#35bf28}+0.81\%$
test_vmap_transformer_speed_decorator[False-False] 20.8804ms 20.1348ms 49.6652 Ops/s 49.6275 Ops/s $\color{#35bf28}+0.08\%$
test_to_module_speed[True] 2.0171ms 1.4175ms 705.4813 Ops/s 698.5320 Ops/s $\color{#35bf28}+0.99\%$
test_to_module_speed[False] 1.9276ms 1.3808ms 724.2128 Ops/s 718.6964 Ops/s $\color{#35bf28}+0.77\%$
test_tc_init 0.1011ms 42.7370μs 23.3989 KOps/s 23.3277 KOps/s $\color{#35bf28}+0.31\%$
test_tc_init_tensor_only 37.3000μs 9.0762μs 110.1784 KOps/s 108.7970 KOps/s $\color{#35bf28}+1.27\%$
test_tc_init_nested 0.1194ms 85.0984μs 11.7511 KOps/s 11.7430 KOps/s $\color{#35bf28}+0.07\%$
test_tc_init_many_fields 52.4610μs 15.4921μs 64.5491 KOps/s 63.3247 KOps/s $\color{#35bf28}+1.93\%$
test_tc_first_layer_tensor 29.4400μs 1.7169μs 582.4298 KOps/s 586.7677 KOps/s $\color{#d91a1a}-0.74\%$
test_tc_first_layer_tensor_only 1.7375μs 0.3784μs 2.6425 MOps/s 2.5750 MOps/s $\color{#35bf28}+2.62\%$
test_tc_first_layer_tensor_set 36.4410μs 3.6206μs 276.2006 KOps/s 267.8181 KOps/s $\color{#35bf28}+3.13\%$
test_tc_first_layer_tensor_only_set 23.7100μs 3.0860μs 324.0430 KOps/s 323.3363 KOps/s $\color{#35bf28}+0.22\%$
test_tc_first_layer_nontensor 33.1600μs 5.7727μs 173.2278 KOps/s 171.2828 KOps/s $\color{#35bf28}+1.14\%$
test_tc_second_layer_tensor 43.6510μs 4.4108μs 226.7147 KOps/s 237.8192 KOps/s $\color{#d91a1a}-4.67\%$
test_tc_second_layer_nontensor 33.1010μs 8.1693μs 122.4099 KOps/s 120.1882 KOps/s $\color{#35bf28}+1.85\%$
test_unbind 0.2772s 15.9508ms 62.6929 Ops/s 65.5264 Ops/s $\color{#d91a1a}-4.32\%$
test_full_like 4.5791ms 4.3914ms 227.7165 Ops/s 229.8458 Ops/s $\color{#d91a1a}-0.93\%$
test_zeros_like 4.5517ms 4.3743ms 228.6095 Ops/s 232.5042 Ops/s $\color{#d91a1a}-1.68\%$
test_ones_like 4.4910ms 4.3812ms 228.2500 Ops/s 230.3635 Ops/s $\color{#d91a1a}-0.92\%$
test_clone 6.7051ms 6.5113ms 153.5803 Ops/s 153.4805 Ops/s $\color{#35bf28}+0.07\%$
test_squeeze 62.7720μs 13.3001μs 75.1876 KOps/s 73.8833 KOps/s $\color{#35bf28}+1.77\%$
test_unsqueeze 0.1767ms 0.1101ms 9.0843 KOps/s 9.0062 KOps/s $\color{#35bf28}+0.87\%$
test_split 0.3752ms 0.1759ms 5.6858 KOps/s 5.6731 KOps/s $\color{#35bf28}+0.22\%$
test_permute 0.2551ms 0.2080ms 4.8074 KOps/s 4.9013 KOps/s $\color{#d91a1a}-1.92\%$
test_stack 18.7453ms 18.3239ms 54.5735 Ops/s 19.3816 Ops/s $\textbf{\color{#35bf28}+181.57\%}$
test_cat 18.7011ms 18.2561ms 54.7761 Ops/s 19.3227 Ops/s $\textbf{\color{#35bf28}+183.48\%}$
test_sequential_tensordict 0.6538ms 0.5500ms 1.8183 KOps/s 1.7369 KOps/s $\color{#35bf28}+4.69\%$
test_sequential_graph_module 0.2010ms 0.1167ms 8.5718 KOps/s 8.5007 KOps/s $\color{#35bf28}+0.84\%$
test_nested_tensordict 0.9410ms 0.7893ms 1.2670 KOps/s 1.2590 KOps/s $\color{#35bf28}+0.64\%$
test_nested_graph_module 0.2083ms 0.1325ms 7.5450 KOps/s 7.7331 KOps/s $\color{#d91a1a}-2.43\%$

@github-actions

github-actions Bot commented May 6, 2026

Copy link
Copy Markdown
Contributor

$\color{#D29922}\textsf{\Large⚠\kern{0.2cm}\normalsize Warning}$ Result of GPU Benchmark Tests

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

Expand to view detailed results
Name Max Mean Ops Ops on Repo HEAD Change
test_collector_preallocated_write[stack_out-cpu-32-2] 0.2239ms 0.1754ms 5.7024 KOps/s 5.6762 KOps/s $\color{#35bf28}+0.46\%$
test_collector_preallocated_write[stack_out-cpu-32-8] 0.3917ms 0.3040ms 3.2897 KOps/s 3.3271 KOps/s $\color{#d91a1a}-1.12\%$
test_collector_preallocated_write[stack_out-cpu-32-32] 0.8661ms 0.7882ms 1.2687 KOps/s 1.2685 KOps/s $\color{#35bf28}+0.02\%$
test_collector_preallocated_write[stack_out-cpu-4096-2] 0.4282ms 0.3602ms 2.7764 KOps/s 2.7931 KOps/s $\color{#d91a1a}-0.60\%$
test_collector_preallocated_write[stack_out-cpu-4096-8] 1.4039ms 1.1656ms 857.9277 Ops/s 849.8053 Ops/s $\color{#35bf28}+0.96\%$
test_collector_preallocated_write[stack_out-cpu-4096-32] 7.8276ms 7.4390ms 134.4273 Ops/s 131.5760 Ops/s $\color{#35bf28}+2.17\%$
test_collector_preallocated_write[stack_out-cuda-32-2] 0.3095ms 0.2618ms 3.8198 KOps/s 3.7650 KOps/s $\color{#35bf28}+1.45\%$
test_collector_preallocated_write[stack_out-cuda-32-8] 0.4622ms 0.3780ms 2.6453 KOps/s 2.5870 KOps/s $\color{#35bf28}+2.25\%$
test_collector_preallocated_write[stack_out-cuda-32-32] 0.8868ms 0.8312ms 1.2031 KOps/s 1.1932 KOps/s $\color{#35bf28}+0.83\%$
test_collector_preallocated_write[stack_out-cuda-4096-2] 0.3190ms 0.2657ms 3.7634 KOps/s 3.8099 KOps/s $\color{#d91a1a}-1.22\%$
test_collector_preallocated_write[stack_out-cuda-4096-8] 0.4408ms 0.3804ms 2.6288 KOps/s 2.6371 KOps/s $\color{#d91a1a}-0.31\%$
test_collector_preallocated_write[stack_out-cuda-4096-32] 1.0417ms 0.8912ms 1.1221 KOps/s 1.1286 KOps/s $\color{#d91a1a}-0.58\%$
test_collector_preallocated_write[set_at_loop-cpu-32-2] 0.2709ms 0.2088ms 4.7902 KOps/s 4.8069 KOps/s $\color{#d91a1a}-0.35\%$
test_collector_preallocated_write[set_at_loop-cpu-32-8] 0.9583ms 0.8072ms 1.2388 KOps/s 1.2310 KOps/s $\color{#35bf28}+0.63\%$
test_collector_preallocated_write[set_at_loop-cpu-32-32] 3.3766ms 3.2356ms 309.0657 Ops/s 311.0116 Ops/s $\color{#d91a1a}-0.63\%$
test_collector_preallocated_write[set_at_loop-cpu-4096-2] 0.4267ms 0.3608ms 2.7715 KOps/s 2.7866 KOps/s $\color{#d91a1a}-0.54\%$
test_collector_preallocated_write[set_at_loop-cpu-4096-8] 2.1521ms 1.7525ms 570.6209 Ops/s 581.7745 Ops/s $\color{#d91a1a}-1.92\%$
test_collector_preallocated_write[set_at_loop-cpu-4096-32] 10.6713ms 10.3847ms 96.2956 Ops/s 95.7042 Ops/s $\color{#35bf28}+0.62\%$
test_collector_preallocated_write[set_at_loop-cuda-32-2] 0.4412ms 0.3914ms 2.5546 KOps/s 2.5488 KOps/s $\color{#35bf28}+0.23\%$
test_collector_preallocated_write[set_at_loop-cuda-32-8] 1.7204ms 1.4362ms 696.2854 Ops/s 690.7098 Ops/s $\color{#35bf28}+0.81\%$
test_collector_preallocated_write[set_at_loop-cuda-32-32] 6.0703ms 5.6184ms 177.9852 Ops/s 176.5624 Ops/s $\color{#35bf28}+0.81\%$
test_collector_preallocated_write[set_at_loop-cuda-4096-2] 0.5296ms 0.3882ms 2.5758 KOps/s 2.5489 KOps/s $\color{#35bf28}+1.06\%$
test_collector_preallocated_write[set_at_loop-cuda-4096-8] 1.5144ms 1.4454ms 691.8464 Ops/s 685.8702 Ops/s $\color{#35bf28}+0.87\%$
test_collector_preallocated_write[set_at_loop-cuda-4096-32] 6.4947ms 5.6749ms 176.2139 Ops/s 174.7421 Ops/s $\color{#35bf28}+0.84\%$
test_collector_preallocated_write[copy_at-cpu-32-2] 0.2491ms 0.1730ms 5.7804 KOps/s 5.7516 KOps/s $\color{#35bf28}+0.50\%$
test_collector_preallocated_write[copy_at-cpu-32-8] 0.8105ms 0.6720ms 1.4880 KOps/s 1.4821 KOps/s $\color{#35bf28}+0.40\%$
test_collector_preallocated_write[copy_at-cpu-32-32] 2.7100ms 2.6590ms 376.0849 Ops/s 374.8802 Ops/s $\color{#35bf28}+0.32\%$
test_collector_preallocated_write[copy_at-cpu-4096-2] 0.7790ms 0.3226ms 3.0998 KOps/s 3.0596 KOps/s $\color{#35bf28}+1.31\%$
test_collector_preallocated_write[copy_at-cpu-4096-8] 2.0345ms 1.5582ms 641.7652 Ops/s 644.2196 Ops/s $\color{#d91a1a}-0.38\%$
test_collector_preallocated_write[copy_at-cpu-4096-32] 9.9452ms 9.5500ms 104.7122 Ops/s 104.1703 Ops/s $\color{#35bf28}+0.52\%$
test_collector_preallocated_write[copy_at-cuda-32-2] 0.4053ms 0.3297ms 3.0334 KOps/s 3.0278 KOps/s $\color{#35bf28}+0.18\%$
test_collector_preallocated_write[copy_at-cuda-32-8] 1.3207ms 1.2197ms 819.8444 Ops/s 820.2000 Ops/s $\color{#d91a1a}-0.04\%$
test_collector_preallocated_write[copy_at-cuda-32-32] 4.8230ms 4.7589ms 210.1344 Ops/s 210.1645 Ops/s $\color{#d91a1a}-0.01\%$
test_collector_preallocated_write[copy_at-cuda-4096-2] 0.3791ms 0.3309ms 3.0222 KOps/s 3.0254 KOps/s $\color{#d91a1a}-0.10\%$
test_collector_preallocated_write[copy_at-cuda-4096-8] 1.2598ms 1.2263ms 815.4594 Ops/s 815.8926 Ops/s $\color{#d91a1a}-0.05\%$
test_collector_preallocated_write[copy_at-cuda-4096-32] 4.8596ms 4.7894ms 208.7958 Ops/s 209.1888 Ops/s $\color{#d91a1a}-0.19\%$
test_collector_preallocated_write[manual_leaf_copy-cpu-32-2] 0.1469ms 0.1167ms 8.5703 KOps/s 8.6191 KOps/s $\color{#d91a1a}-0.57\%$
test_collector_preallocated_write[manual_leaf_copy-cpu-32-8] 0.5384ms 0.4569ms 2.1886 KOps/s 2.2033 KOps/s $\color{#d91a1a}-0.67\%$
test_collector_preallocated_write[manual_leaf_copy-cpu-32-32] 1.9016ms 1.8140ms 551.2578 Ops/s 552.9608 Ops/s $\color{#d91a1a}-0.31\%$
test_collector_preallocated_write[manual_leaf_copy-cpu-4096-2] 0.2978ms 0.2430ms 4.1154 KOps/s 4.0671 KOps/s $\color{#35bf28}+1.19\%$
test_collector_preallocated_write[manual_leaf_copy-cpu-4096-8] 1.7122ms 1.3005ms 768.9108 Ops/s 782.8764 Ops/s $\color{#d91a1a}-1.78\%$
test_collector_preallocated_write[manual_leaf_copy-cpu-4096-32] 9.1184ms 8.8157ms 113.4335 Ops/s 114.5953 Ops/s $\color{#d91a1a}-1.01\%$
test_collector_preallocated_write[manual_leaf_copy-cuda-32-2] 0.3470ms 0.2891ms 3.4588 KOps/s 3.7021 KOps/s $\textbf{\color{#d91a1a}-6.57\%}$
test_collector_preallocated_write[manual_leaf_copy-cuda-32-8] 1.1262ms 1.0596ms 943.7587 Ops/s 1.0027 KOps/s $\textbf{\color{#d91a1a}-5.88\%}$
test_collector_preallocated_write[manual_leaf_copy-cuda-32-32] 4.4137ms 4.1773ms 239.3867 Ops/s 257.2158 Ops/s $\textbf{\color{#d91a1a}-6.93\%}$
test_collector_preallocated_write[manual_leaf_copy-cuda-4096-2] 0.3680ms 0.2886ms 3.4652 KOps/s 3.7251 KOps/s $\textbf{\color{#d91a1a}-6.98\%}$
test_collector_preallocated_write[manual_leaf_copy-cuda-4096-8] 1.2740ms 1.0616ms 941.9741 Ops/s 1.0029 KOps/s $\textbf{\color{#d91a1a}-6.07\%}$
test_collector_preallocated_write[manual_leaf_copy-cuda-4096-32] 4.2546ms 4.1558ms 240.6256 Ops/s 256.0437 Ops/s $\textbf{\color{#d91a1a}-6.02\%}$
test_wide_nested_preallocated_write[stack_out-cpu-128-128] 16.7624ms 16.3939ms 60.9983 Ops/s 60.8432 Ops/s $\color{#35bf28}+0.26\%$
test_wide_nested_preallocated_write[stack_out-cpu-128-256] 33.1848ms 32.8487ms 30.4426 Ops/s 30.3775 Ops/s $\color{#35bf28}+0.21\%$
test_wide_nested_preallocated_write[stack_out-cpu-4096-128] 86.1377ms 85.2085ms 11.7359 Ops/s 11.2498 Ops/s $\color{#35bf28}+4.32\%$
test_wide_nested_preallocated_write[stack_out-cpu-4096-256] 0.2035s 0.2017s 4.9574 Ops/s 4.9114 Ops/s $\color{#35bf28}+0.94\%$
test_wide_nested_preallocated_write[stack_out-cuda-128-128] 13.9508ms 13.7440ms 72.7590 Ops/s 72.8360 Ops/s $\color{#d91a1a}-0.11\%$
test_wide_nested_preallocated_write[stack_out-cuda-128-256] 27.8954ms 26.8849ms 37.1956 Ops/s 37.1067 Ops/s $\color{#35bf28}+0.24\%$
test_wide_nested_preallocated_write[stack_out-cuda-4096-128] 14.0312ms 13.9459ms 71.7057 Ops/s 71.6677 Ops/s $\color{#35bf28}+0.05\%$
test_wide_nested_preallocated_write[stack_out-cuda-4096-256] 27.4950ms 27.3410ms 36.5751 Ops/s 36.3922 Ops/s $\color{#35bf28}+0.50\%$
test_wide_nested_preallocated_write[set_at_loop-cpu-128-128] 51.6108ms 51.4741ms 19.4273 Ops/s 19.6308 Ops/s $\color{#d91a1a}-1.04\%$
test_wide_nested_preallocated_write[set_at_loop-cpu-128-256] 0.1039s 0.1037s 9.6441 Ops/s 9.6913 Ops/s $\color{#d91a1a}-0.49\%$
test_wide_nested_preallocated_write[set_at_loop-cpu-4096-128] 0.1471s 0.1463s 6.8340 Ops/s 6.5893 Ops/s $\color{#35bf28}+3.71\%$
test_wide_nested_preallocated_write[set_at_loop-cpu-4096-256] 0.3217s 0.3202s 3.1232 Ops/s 2.9927 Ops/s $\color{#35bf28}+4.36\%$
test_wide_nested_preallocated_write[set_at_loop-cuda-128-128] 73.0142ms 72.6223ms 13.7699 Ops/s 13.7942 Ops/s $\color{#d91a1a}-0.18\%$
test_wide_nested_preallocated_write[set_at_loop-cuda-128-256] 0.1455s 0.1450s 6.8978 Ops/s 6.9559 Ops/s $\color{#d91a1a}-0.83\%$
test_wide_nested_preallocated_write[set_at_loop-cuda-4096-128] 77.5947ms 75.7649ms 13.1987 Ops/s 13.7099 Ops/s $\color{#d91a1a}-3.73\%$
test_wide_nested_preallocated_write[set_at_loop-cuda-4096-256] 0.1551s 0.1537s 6.5064 Ops/s 6.9359 Ops/s $\textbf{\color{#d91a1a}-6.19\%}$
test_wide_nested_preallocated_write[copy_at-cpu-128-128] 30.8291ms 30.5072ms 32.7791 Ops/s 33.0971 Ops/s $\color{#d91a1a}-0.96\%$
test_wide_nested_preallocated_write[copy_at-cpu-128-256] 61.7809ms 61.5455ms 16.2481 Ops/s 16.3652 Ops/s $\color{#d91a1a}-0.72\%$
test_wide_nested_preallocated_write[copy_at-cpu-4096-128] 0.1229s 0.1217s 8.2140 Ops/s 8.2650 Ops/s $\color{#d91a1a}-0.62\%$
test_wide_nested_preallocated_write[copy_at-cpu-4096-256] 0.2671s 0.2663s 3.7559 Ops/s 3.5473 Ops/s $\textbf{\color{#35bf28}+5.88\%}$
test_wide_nested_preallocated_write[copy_at-cuda-128-128] 45.0689ms 43.8331ms 22.8138 Ops/s 22.8773 Ops/s $\color{#d91a1a}-0.28\%$
test_wide_nested_preallocated_write[copy_at-cuda-128-256] 89.2702ms 87.6427ms 11.4100 Ops/s 11.5075 Ops/s $\color{#d91a1a}-0.85\%$
test_wide_nested_preallocated_write[copy_at-cuda-4096-128] 44.2371ms 43.9167ms 22.7704 Ops/s 22.7513 Ops/s $\color{#35bf28}+0.08\%$
test_wide_nested_preallocated_write[copy_at-cuda-4096-256] 88.9268ms 87.8538ms 11.3825 Ops/s 11.4470 Ops/s $\color{#d91a1a}-0.56\%$
test_wide_nested_preallocated_write[manual_leaf_copy-cpu-128-128] 20.0622ms 19.9429ms 50.1432 Ops/s 50.0366 Ops/s $\color{#35bf28}+0.21\%$
test_wide_nested_preallocated_write[manual_leaf_copy-cpu-128-256] 41.0592ms 40.8658ms 24.4703 Ops/s 24.4562 Ops/s $\color{#35bf28}+0.06\%$
test_wide_nested_preallocated_write[manual_leaf_copy-cpu-4096-128] 0.1109s 0.1098s 9.1075 Ops/s 9.2038 Ops/s $\color{#d91a1a}-1.05\%$
test_wide_nested_preallocated_write[manual_leaf_copy-cpu-4096-256] 0.2437s 0.2417s 4.1380 Ops/s 4.0450 Ops/s $\color{#35bf28}+2.30\%$
test_wide_nested_preallocated_write[manual_leaf_copy-cuda-128-128] 35.7890ms 35.5901ms 28.0977 Ops/s 28.2080 Ops/s $\color{#d91a1a}-0.39\%$
test_wide_nested_preallocated_write[manual_leaf_copy-cuda-128-256] 71.0808ms 70.7797ms 14.1283 Ops/s 14.0623 Ops/s $\color{#35bf28}+0.47\%$
test_wide_nested_preallocated_write[manual_leaf_copy-cuda-4096-128] 35.7833ms 35.4579ms 28.2025 Ops/s 28.1919 Ops/s $\color{#35bf28}+0.04\%$
test_wide_nested_preallocated_write[manual_leaf_copy-cuda-4096-256] 71.5808ms 71.1341ms 14.0580 Ops/s 14.0526 Ops/s $\color{#35bf28}+0.04\%$
test_plain_set_nested 35.8310μs 15.7223μs 63.6039 KOps/s 64.5593 KOps/s $\color{#d91a1a}-1.48\%$
test_plain_set_stack_nested 33.9000μs 15.2449μs 65.5956 KOps/s 65.7220 KOps/s $\color{#d91a1a}-0.19\%$
test_plain_set_nested_inplace 44.4010μs 17.1243μs 58.3966 KOps/s 59.5442 KOps/s $\color{#d91a1a}-1.93\%$
test_plain_set_stack_nested_inplace 44.5210μs 16.6881μs 59.9228 KOps/s 60.4454 KOps/s $\color{#d91a1a}-0.86\%$
test_items 30.4410μs 6.0387μs 165.5987 KOps/s 166.6962 KOps/s $\color{#d91a1a}-0.66\%$
test_items_nested 0.5419ms 0.4647ms 2.1517 KOps/s 2.1612 KOps/s $\color{#d91a1a}-0.44\%$
test_items_nested_locked 0.5385ms 0.4691ms 2.1315 KOps/s 2.1652 KOps/s $\color{#d91a1a}-1.55\%$
test_items_nested_leaf 0.1347ms 98.1579μs 10.1877 KOps/s 10.2495 KOps/s $\color{#d91a1a}-0.60\%$
test_items_stack_nested 0.5041ms 0.4657ms 2.1472 KOps/s 2.1708 KOps/s $\color{#d91a1a}-1.08\%$
test_items_stack_nested_leaf 0.1463ms 96.7114μs 10.3400 KOps/s 10.2894 KOps/s $\color{#35bf28}+0.49\%$
test_items_stack_nested_locked 0.5029ms 0.4652ms 2.1498 KOps/s 2.1525 KOps/s $\color{#d91a1a}-0.13\%$
test_keys 26.7810μs 4.2125μs 237.3909 KOps/s 236.5796 KOps/s $\color{#35bf28}+0.34\%$
test_keys_nested 0.1812ms 0.1318ms 7.5879 KOps/s 7.5765 KOps/s $\color{#35bf28}+0.15\%$
test_keys_nested_locked 0.7540ms 0.1401ms 7.1382 KOps/s 7.1125 KOps/s $\color{#35bf28}+0.36\%$
test_keys_nested_leaf 2.3232ms 0.1203ms 8.3121 KOps/s 8.1582 KOps/s $\color{#35bf28}+1.89\%$
test_keys_stack_nested 0.2344ms 0.1295ms 7.7237 KOps/s 7.6084 KOps/s $\color{#35bf28}+1.52\%$
test_keys_stack_nested_leaf 0.2239ms 0.1207ms 8.2850 KOps/s 8.2620 KOps/s $\color{#35bf28}+0.28\%$
test_keys_stack_nested_locked 0.2460ms 0.1398ms 7.1551 KOps/s 7.1454 KOps/s $\color{#35bf28}+0.13\%$
test_values 23.1984μs 1.0233μs 977.2367 KOps/s 978.5709 KOps/s $\color{#d91a1a}-0.14\%$
test_values_nested 0.1203ms 52.7064μs 18.9730 KOps/s 18.9535 KOps/s $\color{#35bf28}+0.10\%$
test_values_nested_locked 0.1714ms 54.9280μs 18.2057 KOps/s 17.8092 KOps/s $\color{#35bf28}+2.23\%$
test_values_nested_leaf 0.1719ms 60.5342μs 16.5196 KOps/s 16.3925 KOps/s $\color{#35bf28}+0.78\%$
test_values_stack_nested 0.1781ms 52.5176μs 19.0413 KOps/s 18.8008 KOps/s $\color{#35bf28}+1.28\%$
test_values_stack_nested_leaf 0.1838ms 60.4774μs 16.5351 KOps/s 16.6475 KOps/s $\color{#d91a1a}-0.68\%$
test_values_stack_nested_locked 0.1612ms 56.2780μs 17.7689 KOps/s 17.8560 KOps/s $\color{#d91a1a}-0.49\%$
test_membership 17.0835μs 0.8344μs 1.1984 MOps/s 1.1881 MOps/s $\color{#35bf28}+0.87\%$
test_membership_nested 19.5100μs 2.9713μs 336.5543 KOps/s 333.5654 KOps/s $\color{#35bf28}+0.90\%$
test_membership_nested_leaf 0.1102ms 2.9414μs 339.9739 KOps/s 331.4619 KOps/s $\color{#35bf28}+2.57\%$
test_membership_stacked_nested 26.8810μs 2.8476μs 351.1779 KOps/s 347.7845 KOps/s $\color{#35bf28}+0.98\%$
test_membership_stacked_nested_leaf 0.1041ms 2.8262μs 353.8301 KOps/s 347.8178 KOps/s $\color{#35bf28}+1.73\%$
test_membership_nested_last 28.1510μs 4.4206μs 226.2129 KOps/s 223.9222 KOps/s $\color{#35bf28}+1.02\%$
test_membership_nested_leaf_last 0.1143ms 4.4224μs 226.1207 KOps/s 222.5450 KOps/s $\color{#35bf28}+1.61\%$
test_membership_stacked_nested_last 27.2010μs 4.3250μs 231.2123 KOps/s 233.2452 KOps/s $\color{#d91a1a}-0.87\%$
test_membership_stacked_nested_leaf_last 0.1112ms 4.2913μs 233.0316 KOps/s 231.3037 KOps/s $\color{#35bf28}+0.75\%$
test_nested_getleaf 72.1910μs 21.7483μs 45.9806 KOps/s 45.4839 KOps/s $\color{#35bf28}+1.09\%$
test_nested_get 50.4910μs 20.6578μs 48.4078 KOps/s 47.9684 KOps/s $\color{#35bf28}+0.92\%$
test_stacked_getleaf 0.1340ms 21.8984μs 45.6655 KOps/s 45.7188 KOps/s $\color{#d91a1a}-0.12\%$
test_stacked_get 0.1258ms 20.5200μs 48.7328 KOps/s 48.8690 KOps/s $\color{#d91a1a}-0.28\%$
test_nested_getitemleaf 53.9910μs 22.6137μs 44.2210 KOps/s 44.3519 KOps/s $\color{#d91a1a}-0.30\%$
test_nested_getitem 0.1275ms 21.2788μs 46.9951 KOps/s 47.0139 KOps/s $\color{#d91a1a}-0.04\%$
test_stacked_getitemleaf 0.1311ms 22.5073μs 44.4301 KOps/s 45.5911 KOps/s $\color{#d91a1a}-2.55\%$
test_stacked_getitem 0.1229ms 21.0988μs 47.3961 KOps/s 46.6337 KOps/s $\color{#35bf28}+1.63\%$
test_lock_nested 7.9119ms 0.4846ms 2.0634 KOps/s 2.0581 KOps/s $\color{#35bf28}+0.26\%$
test_lock_stack_nested 0.5322ms 0.4851ms 2.0615 KOps/s 2.0696 KOps/s $\color{#d91a1a}-0.39\%$
test_unlock_nested 0.5212ms 0.3887ms 2.5729 KOps/s 2.5965 KOps/s $\color{#d91a1a}-0.91\%$
test_unlock_stack_nested 0.5190ms 0.3921ms 2.5505 KOps/s 2.5569 KOps/s $\color{#d91a1a}-0.25\%$
test_flatten_speed 0.2264ms 0.1218ms 8.2092 KOps/s 8.2132 KOps/s $\color{#d91a1a}-0.05\%$
test_unflatten_speed 0.6720ms 0.5671ms 1.7634 KOps/s 1.7790 KOps/s $\color{#d91a1a}-0.88\%$
test_common_ops 99.4894ms 1.8413ms 543.1056 Ops/s 528.9264 Ops/s $\color{#35bf28}+2.68\%$
test_creation 0.1283ms 3.1763μs 314.8302 KOps/s 326.0884 KOps/s $\color{#d91a1a}-3.45\%$
test_creation_empty 40.5410μs 7.0539μs 141.7662 KOps/s 144.3881 KOps/s $\color{#d91a1a}-1.82\%$
test_creation_nested_1 46.4310μs 11.5687μs 86.4404 KOps/s 86.9528 KOps/s $\color{#d91a1a}-0.59\%$
test_creation_nested_2 0.1006ms 13.3948μs 74.6556 KOps/s 75.7509 KOps/s $\color{#d91a1a}-1.45\%$
test_creation_many_keys[10] 94.3820μs 21.2950μs 46.9594 KOps/s 47.3750 KOps/s $\color{#d91a1a}-0.88\%$
test_creation_many_keys[50] 0.1933ms 91.7952μs 10.8938 KOps/s 11.0180 KOps/s $\color{#d91a1a}-1.13\%$
test_creation_many_keys[100] 0.2785ms 0.1798ms 5.5630 KOps/s 5.5993 KOps/s $\color{#d91a1a}-0.65\%$
test_creation_nested_many_keys[10] 81.8320μs 45.3871μs 22.0327 KOps/s 22.1515 KOps/s $\color{#d91a1a}-0.54\%$
test_creation_nested_many_keys[50] 0.2809ms 0.1860ms 5.3756 KOps/s 5.3731 KOps/s $\color{#35bf28}+0.05\%$
test_clone 84.4710μs 13.1416μs 76.0941 KOps/s 76.8054 KOps/s $\color{#d91a1a}-0.93\%$
test_getitem[int] 1.7260ms 15.2781μs 65.4533 KOps/s 67.0482 KOps/s $\color{#d91a1a}-2.38\%$
test_getitem[slice_int] 0.4931ms 24.5512μs 40.7312 KOps/s 41.7580 KOps/s $\color{#d91a1a}-2.46\%$
test_getitem[range] 0.4630ms 63.5013μs 15.7477 KOps/s 16.0403 KOps/s $\color{#d91a1a}-1.82\%$
test_getitem[tuple] 0.1626ms 23.9700μs 41.7188 KOps/s 42.0577 KOps/s $\color{#d91a1a}-0.81\%$
test_getitem[list] 0.5379ms 60.1362μs 16.6289 KOps/s 17.4587 KOps/s $\color{#d91a1a}-4.75\%$
test_setitem_dim[int] 51.7010μs 25.5429μs 39.1499 KOps/s 39.3835 KOps/s $\color{#d91a1a}-0.59\%$
test_setitem_dim[slice_int] 66.8510μs 42.3414μs 23.6175 KOps/s 24.0359 KOps/s $\color{#d91a1a}-1.74\%$
test_setitem_dim[range] 0.1279ms 95.2506μs 10.4986 KOps/s 10.6694 KOps/s $\color{#d91a1a}-1.60\%$
test_setitem_dim[tuple] 60.5610μs 38.7712μs 25.7924 KOps/s 25.7465 KOps/s $\color{#35bf28}+0.18\%$
test_setitem 96.3910μs 17.4847μs 57.1929 KOps/s 57.4940 KOps/s $\color{#d91a1a}-0.52\%$
test_set 0.1023ms 16.7511μs 59.6976 KOps/s 61.0424 KOps/s $\color{#d91a1a}-2.20\%$
test_set_shared 0.6659ms 0.2091ms 4.7831 KOps/s 4.9350 KOps/s $\color{#d91a1a}-3.08\%$
test_update 0.3285ms 21.7890μs 45.8947 KOps/s 46.0989 KOps/s $\color{#d91a1a}-0.44\%$
test_update_nested 68.2210μs 33.1571μs 30.1594 KOps/s 30.4345 KOps/s $\color{#d91a1a}-0.90\%$
test_update__nested 0.4418ms 33.3471μs 29.9876 KOps/s 29.9627 KOps/s $\color{#35bf28}+0.08\%$
test_set_nested 55.9610μs 18.2900μs 54.6746 KOps/s 54.1019 KOps/s $\color{#35bf28}+1.06\%$
test_set_nested_new 0.3834ms 23.6619μs 42.2621 KOps/s 42.6383 KOps/s $\color{#d91a1a}-0.88\%$
test_select 71.8510μs 39.5107μs 25.3096 KOps/s 25.5324 KOps/s $\color{#d91a1a}-0.87\%$
test_select_nested 0.4360ms 74.3106μs 13.4570 KOps/s 13.5090 KOps/s $\color{#d91a1a}-0.38\%$
test_exclude_nested 0.2018ms 91.7640μs 10.8975 KOps/s 10.9477 KOps/s $\color{#d91a1a}-0.46\%$
test_empty[True] 0.8442ms 0.4021ms 2.4872 KOps/s 2.4918 KOps/s $\color{#d91a1a}-0.18\%$
test_empty[False] 19.9602μs 1.3919μs 718.4368 KOps/s 717.8140 KOps/s $\color{#35bf28}+0.09\%$
test_to 0.4874ms 72.6560μs 13.7635 KOps/s 14.6578 KOps/s $\textbf{\color{#d91a1a}-6.10\%}$
test_to_nonblocking 0.5261ms 71.9467μs 13.8992 KOps/s 14.7996 KOps/s $\textbf{\color{#d91a1a}-6.08\%}$
test_unbind_speed 0.4803ms 0.3378ms 2.9601 KOps/s 2.9650 KOps/s $\color{#d91a1a}-0.16\%$
test_unbind_speed_stack0 0.7474ms 0.3348ms 2.9870 KOps/s 3.0096 KOps/s $\color{#d91a1a}-0.75\%$
test_unbind_speed_stack1 0.1104s 0.8624ms 1.1596 KOps/s 1.3053 KOps/s $\textbf{\color{#d91a1a}-11.16\%}$
test_split 0.1106s 1.2895ms 775.4732 Ops/s 778.3008 Ops/s $\color{#d91a1a}-0.36\%$
test_chunk 1.2642ms 1.1017ms 907.7098 Ops/s 918.4487 Ops/s $\color{#d91a1a}-1.17\%$
test_to_cpu_blocking 0.1302s 22.6226ms 44.2035 Ops/s 49.7528 Ops/s $\textbf{\color{#d91a1a}-11.15\%}$
test_to_cpu_global_sync 12.2076ms 11.9705ms 83.5387 Ops/s 85.7052 Ops/s $\color{#d91a1a}-2.53\%$
test_to_cpu_event_sync 13.3621ms 12.9731ms 77.0827 Ops/s 78.8392 Ops/s $\color{#d91a1a}-2.23\%$
test_to_cpu_default 13.3299ms 13.0033ms 76.9038 Ops/s 70.3877 Ops/s $\textbf{\color{#35bf28}+9.26\%}$
test_consolidate[False-None] 4.3461ms 4.2167ms 237.1543 Ops/s 242.4873 Ops/s $\color{#d91a1a}-2.20\%$
test_consolidate[default-None] 2.1532ms 2.0418ms 489.7521 Ops/s 478.4003 Ops/s $\color{#35bf28}+2.37\%$
test_consolidate[reduce-overhead-None] 2.1280ms 1.9726ms 506.9560 Ops/s 493.6497 Ops/s $\color{#35bf28}+2.70\%$
test_consolidate_njt[False-None] 9.1525ms 8.6440ms 115.6866 Ops/s 118.0109 Ops/s $\color{#d91a1a}-1.97\%$
test_to[False-False-None] 2.3646ms 2.2299ms 448.4598 Ops/s 454.9671 Ops/s $\color{#d91a1a}-1.43\%$
test_to[True-False-None] 2.2687ms 1.9147ms 522.2795 Ops/s 523.0028 Ops/s $\color{#d91a1a}-0.14\%$
test_to[within-False-None] 6.5215ms 6.1868ms 161.6355 Ops/s 161.8061 Ops/s $\color{#d91a1a}-0.11\%$
test_to[True-default-None] 9.3102ms 9.0603ms 110.3716 Ops/s 107.9184 Ops/s $\color{#35bf28}+2.27\%$
test_to_njt[False-False-None] 8.6719ms 8.5344ms 117.1728 Ops/s 116.6101 Ops/s $\color{#35bf28}+0.48\%$
test_to_njt[True-False-None] 7.2477ms 6.8961ms 145.0088 Ops/s 143.1590 Ops/s $\color{#35bf28}+1.29\%$
test_to_njt[within-False-None] 15.6558ms 15.4733ms 64.6276 Ops/s 64.5138 Ops/s $\color{#35bf28}+0.18\%$
test_creation[device0] 0.4068ms 0.1158ms 8.6346 KOps/s 8.3570 KOps/s $\color{#35bf28}+3.32\%$
test_creation_from_tensor 0.4518ms 0.1143ms 8.7493 KOps/s 8.7767 KOps/s $\color{#d91a1a}-0.31\%$
test_add_one[memmap_tensor0] 0.3911ms 6.6308μs 150.8122 KOps/s 150.5330 KOps/s $\color{#35bf28}+0.19\%$
test_contiguous[memmap_tensor0] 24.6710μs 0.6511μs 1.5359 MOps/s 2.2807 MOps/s $\textbf{\color{#d91a1a}-32.66\%}$
test_stack[memmap_tensor0] 42.1610μs 4.6859μs 213.4040 KOps/s 211.9036 KOps/s $\color{#35bf28}+0.71\%$
test_memmaptd_index 1.0514ms 0.2660ms 3.7590 KOps/s 3.7785 KOps/s $\color{#d91a1a}-0.52\%$
test_memmaptd_index_astensor 0.5347ms 0.3707ms 2.6977 KOps/s 2.7180 KOps/s $\color{#d91a1a}-0.75\%$
test_memmaptd_index_op 0.8226ms 0.6220ms 1.6077 KOps/s 1.6010 KOps/s $\color{#35bf28}+0.42\%$
test_serialize_model 0.1361s 0.1339s 7.4659 Ops/s 7.3597 Ops/s $\color{#35bf28}+1.44\%$
test_serialize_model_pickle 1.3582s 1.2117s 0.8253 Ops/s 0.8239 Ops/s $\color{#35bf28}+0.17\%$
test_serialize_weights 0.3157s 0.1588s 6.2953 Ops/s 3.7384 Ops/s $\textbf{\color{#35bf28}+68.39\%}$
test_serialize_weights_returnearly 84.3069ms 64.6533ms 15.4671 Ops/s 15.1766 Ops/s $\color{#35bf28}+1.91\%$
test_serialize_weights_pickle 1.3647s 1.2166s 0.8220 Ops/s 0.8238 Ops/s $\color{#d91a1a}-0.23\%$
test_reshape_pytree 0.2030ms 32.3353μs 30.9259 KOps/s 31.3184 KOps/s $\color{#d91a1a}-1.25\%$
test_reshape_td 65.8910μs 45.5260μs 21.9655 KOps/s 22.4883 KOps/s $\color{#d91a1a}-2.32\%$
test_view_pytree 0.2155ms 31.9435μs 31.3052 KOps/s 31.4427 KOps/s $\color{#d91a1a}-0.44\%$
test_view_td 84.6910μs 53.7727μs 18.5968 KOps/s 18.7167 KOps/s $\color{#d91a1a}-0.64\%$
test_unbind_pytree 0.2356ms 35.9322μs 27.8302 KOps/s 27.6802 KOps/s $\color{#35bf28}+0.54\%$
test_unbind_td 90.2610μs 50.3483μs 19.8616 KOps/s 19.8279 KOps/s $\color{#35bf28}+0.17\%$
test_split_pytree 0.2092ms 41.9808μs 23.8204 KOps/s 23.9343 KOps/s $\color{#d91a1a}-0.48\%$
test_split_td 0.1696ms 64.4027μs 15.5273 KOps/s 15.6311 KOps/s $\color{#d91a1a}-0.66\%$
test_add_pytree 0.2350ms 41.1920μs 24.2766 KOps/s 24.4898 KOps/s $\color{#d91a1a}-0.87\%$
test_add_td 96.6420μs 54.3445μs 18.4011 KOps/s 18.4309 KOps/s $\color{#d91a1a}-0.16\%$
test_compile_add_one_nested[tensordict-compile] 0.2988ms 0.1623ms 6.1625 KOps/s 5.8283 KOps/s $\textbf{\color{#35bf28}+5.73\%}$
test_compile_add_one_nested[tensordict-eager] 0.3900ms 0.2039ms 4.9035 KOps/s 4.9683 KOps/s $\color{#d91a1a}-1.30\%$
test_compile_add_one_nested[pytree-compile] 0.2568ms 0.1256ms 7.9607 KOps/s 7.7168 KOps/s $\color{#35bf28}+3.16\%$
test_compile_add_one_nested[pytree-eager] 0.4437ms 0.1767ms 5.6579 KOps/s 5.5505 KOps/s $\color{#35bf28}+1.94\%$
test_compile_copy_nested[tensordict-compile] 0.1031ms 16.3064μs 61.3257 KOps/s 63.6165 KOps/s $\color{#d91a1a}-3.60\%$
test_compile_copy_nested[tensordict-eager] 0.3102ms 53.4643μs 18.7041 KOps/s 18.3873 KOps/s $\color{#35bf28}+1.72\%$
test_compile_copy_nested[pytree-compile] 0.2160ms 15.3805μs 65.0172 KOps/s 64.9852 KOps/s $\color{#35bf28}+0.05\%$
test_compile_copy_nested[pytree-eager] 0.3505ms 68.0073μs 14.7043 KOps/s 14.8775 KOps/s $\color{#d91a1a}-1.16\%$
test_compile_add_one_flat[tensordict-compile] 0.2844ms 0.1974ms 5.0662 KOps/s 4.8975 KOps/s $\color{#35bf28}+3.44\%$
test_compile_add_one_flat[tensordict-eager] 0.3374ms 0.2886ms 3.4653 KOps/s 3.5613 KOps/s $\color{#d91a1a}-2.70\%$
test_compile_add_one_flat[tensorclass-compile] 0.2590ms 0.1333ms 7.5030 KOps/s 7.3243 KOps/s $\color{#35bf28}+2.44\%$
test_compile_add_one_flat[tensorclass-eager] 0.1144ms 74.6144μs 13.4022 KOps/s 13.7094 KOps/s $\color{#d91a1a}-2.24\%$
test_compile_add_one_flat[pytree-compile] 0.2205ms 0.1779ms 5.6212 KOps/s 5.5621 KOps/s $\color{#35bf28}+1.06\%$
test_compile_add_one_flat[pytree-eager] 0.7911ms 0.5193ms 1.9256 KOps/s 1.8993 KOps/s $\color{#35bf28}+1.39\%$
test_compile_add_self_flat[tensordict-eager] 0.4330ms 0.3398ms 2.9426 KOps/s 3.0140 KOps/s $\color{#d91a1a}-2.37\%$
test_compile_add_self_flat[tensordict-compile] 0.2486ms 0.1986ms 5.0361 KOps/s 4.7149 KOps/s $\textbf{\color{#35bf28}+6.81\%}$
test_compile_add_self_flat[tensorclass-eager] 0.1287ms 89.8125μs 11.1343 KOps/s 11.3103 KOps/s $\color{#d91a1a}-1.56\%$
test_compile_add_self_flat[tensorclass-compile] 0.2537ms 0.1359ms 7.3591 KOps/s 6.9602 KOps/s $\textbf{\color{#35bf28}+5.73\%}$
test_compile_add_self_flat[pytree-eager] 0.6508ms 0.4327ms 2.3110 KOps/s 2.2289 KOps/s $\color{#35bf28}+3.69\%$
test_compile_add_self_flat[pytree-compile] 0.2508ms 0.1783ms 5.6070 KOps/s 5.3668 KOps/s $\color{#35bf28}+4.48\%$
test_compile_copy_flat[tensordict-compile] 75.5320μs 18.9341μs 52.8147 KOps/s 51.7092 KOps/s $\color{#35bf28}+2.14\%$
test_compile_copy_flat[tensordict-eager] 70.3910μs 41.1712μs 24.2888 KOps/s 23.8000 KOps/s $\color{#35bf28}+2.05\%$
test_compile_copy_flat[pytree-compile] 0.1268ms 16.3449μs 61.1811 KOps/s 59.9515 KOps/s $\color{#35bf28}+2.05\%$
test_compile_copy_flat[pytree-eager] 0.3421ms 52.4537μs 19.0644 KOps/s 18.9001 KOps/s $\color{#35bf28}+0.87\%$
test_compile_assign_and_add[tensordict-compile] 2.0970ms 0.1886ms 5.3020 KOps/s 4.8597 KOps/s $\textbf{\color{#35bf28}+9.10\%}$
test_compile_assign_and_add[tensordict-eager] 3.5935ms 3.3609ms 297.5364 Ops/s 304.3286 Ops/s $\color{#d91a1a}-2.23\%$
test_compile_assign_and_add[pytree-compile] 2.0889ms 0.1762ms 5.6743 KOps/s 5.5554 KOps/s $\color{#35bf28}+2.14\%$
test_compile_assign_and_add[pytree-eager] 2.9440ms 2.7986ms 357.3174 Ops/s 359.3642 Ops/s $\color{#d91a1a}-0.57\%$
test_compile_indexing[tensor-tensordict-compile] 0.2723ms 0.1255ms 7.9686 KOps/s 7.5788 KOps/s $\textbf{\color{#35bf28}+5.14\%}$
test_compile_indexing[tensor-tensordict-eager] 0.3116ms 72.5462μs 13.7843 KOps/s 13.7390 KOps/s $\color{#35bf28}+0.33\%$
test_compile_indexing[tensor-tensorclass-compile] 0.2229ms 0.1123ms 8.9055 KOps/s 8.7591 KOps/s $\color{#35bf28}+1.67\%$
test_compile_indexing[tensor-tensorclass-eager] 0.2150s 54.4333μs 18.3711 KOps/s 22.9356 KOps/s $\textbf{\color{#d91a1a}-19.90\%}$
test_compile_indexing[tensor-pytree-compile] 0.1585ms 0.1138ms 8.7843 KOps/s 8.6293 KOps/s $\color{#35bf28}+1.80\%$
test_compile_indexing[tensor-pytree-eager] 0.2491ms 43.2646μs 23.1136 KOps/s 23.1155 KOps/s $-0.01\%$
test_compile_indexing[slice-tensordict-compile] 0.2031ms 68.5606μs 14.5856 KOps/s 13.8531 KOps/s $\textbf{\color{#35bf28}+5.29\%}$
test_compile_indexing[slice-tensordict-eager] 0.2125ms 27.1940μs 36.7729 KOps/s 37.5087 KOps/s $\color{#d91a1a}-1.96\%$
test_compile_indexing[slice-tensorclass-compile] 0.1542ms 57.4544μs 17.4051 KOps/s 17.3409 KOps/s $\color{#35bf28}+0.37\%$
test_compile_indexing[slice-tensorclass-eager] 0.2488ms 21.8159μs 45.8381 KOps/s 46.3968 KOps/s $\color{#d91a1a}-1.20\%$
test_compile_indexing[slice-pytree-compile] 0.1006ms 57.8677μs 17.2808 KOps/s 17.2394 KOps/s $\color{#35bf28}+0.24\%$
test_compile_indexing[slice-pytree-eager] 0.2527ms 21.8557μs 45.7547 KOps/s 46.7175 KOps/s $\color{#d91a1a}-2.06\%$
test_compile_indexing[int-tensordict-compile] 0.1244ms 70.1164μs 14.2620 KOps/s 13.5955 KOps/s $\color{#35bf28}+4.90\%$
test_compile_indexing[int-tensordict-eager] 0.2396ms 27.4631μs 36.4125 KOps/s 37.4460 KOps/s $\color{#d91a1a}-2.76\%$
test_compile_indexing[int-tensorclass-compile] 95.5120μs 57.7514μs 17.3156 KOps/s 17.1916 KOps/s $\color{#35bf28}+0.72\%$
test_compile_indexing[int-tensorclass-eager] 0.2560ms 21.7882μs 45.8965 KOps/s 46.6725 KOps/s $\color{#d91a1a}-1.66\%$
test_compile_indexing[int-pytree-compile] 0.1097ms 58.1298μs 17.2029 KOps/s 17.0609 KOps/s $\color{#35bf28}+0.83\%$
test_compile_indexing[int-pytree-eager] 0.2619ms 21.9205μs 45.6194 KOps/s 46.4121 KOps/s $\color{#d91a1a}-1.71\%$
test_compile_replace[single-eager] 83.7210μs 46.6825μs 21.4213 KOps/s 21.4121 KOps/s $\color{#35bf28}+0.04\%$
test_compile_replace[single-compile] 0.2054ms 0.1206ms 8.2904 KOps/s 8.0152 KOps/s $\color{#35bf28}+3.43\%$
test_compile_replace[multi-eager] 0.6422ms 0.5557ms 1.7994 KOps/s 1.7941 KOps/s $\color{#35bf28}+0.30\%$
test_compile_replace[multi-compile] 0.1987ms 0.1274ms 7.8499 KOps/s 7.8092 KOps/s $\color{#35bf28}+0.52\%$
test_compile_tc_getattr_20[eager] 0.2132ms 0.1676ms 5.9681 KOps/s 6.0179 KOps/s $\color{#d91a1a}-0.83\%$
test_compile_tc_getattr_20[compile] 0.3225ms 0.1361ms 7.3500 KOps/s 7.2575 KOps/s $\color{#35bf28}+1.28\%$
test_compile_clone_shallow[20-eager] 48.5710μs 18.9231μs 52.8454 KOps/s 51.8850 KOps/s $\color{#35bf28}+1.85\%$
test_compile_clone_shallow[20-compile] 79.6510μs 16.7800μs 59.5948 KOps/s 59.8739 KOps/s $\color{#d91a1a}-0.47\%$
test_compile_clone_shallow[40-eager] 58.7910μs 33.1292μs 30.1848 KOps/s 29.9878 KOps/s $\color{#35bf28}+0.66\%$
test_compile_clone_shallow[40-compile] 74.3610μs 17.9740μs 55.6360 KOps/s 55.6561 KOps/s $\color{#d91a1a}-0.04\%$
test_compile_clone_shallow[80-eager] 87.4210μs 61.8348μs 16.1721 KOps/s 15.7864 KOps/s $\color{#35bf28}+2.44\%$
test_compile_clone_shallow[80-compile] 85.3310μs 20.3696μs 49.0927 KOps/s 48.7681 KOps/s $\color{#35bf28}+0.67\%$
test_compile_update_inplace[eager] 0.2032ms 58.9078μs 16.9757 KOps/s 16.9926 KOps/s $\color{#d91a1a}-0.10\%$
test_compile_update_inplace[compile] 0.2378ms 0.1511ms 6.6192 KOps/s 6.4502 KOps/s $\color{#35bf28}+2.62\%$
test_mod_add[eager] 0.2945ms 0.2252ms 4.4403 KOps/s 4.4105 KOps/s $\color{#35bf28}+0.68\%$
test_mod_add[compile] 0.5685ms 0.1170ms 8.5498 KOps/s 8.4811 KOps/s $\color{#35bf28}+0.81\%$
test_mod_add[compile-overhead] 0.3299ms 0.1651ms 6.0555 KOps/s 5.9911 KOps/s $\color{#35bf28}+1.07\%$
test_mod_wrap[eager] 0.5673ms 0.4754ms 2.1035 KOps/s 2.0803 KOps/s $\color{#35bf28}+1.12\%$
test_mod_wrap[compile] 0.4508ms 0.3665ms 2.7285 KOps/s 2.6574 KOps/s $\color{#35bf28}+2.67\%$
test_mod_wrap[compile-overhead] 9.6953ms 5.0902ms 196.4571 Ops/s 198.1035 Ops/s $\color{#d91a1a}-0.83\%$
test_mod_wrap_and_backward[eager] 1.9050ms 1.8207ms 549.2282 Ops/s 578.9991 Ops/s $\textbf{\color{#d91a1a}-5.14\%}$
test_mod_wrap_and_backward[compile] 2.1562ms 1.5269ms 654.9347 Ops/s 678.1462 Ops/s $\color{#d91a1a}-3.42\%$
test_mod_wrap_and_backward[compile-overhead] 1.3510ms 1.0164ms 983.8436 Ops/s 1.0719 KOps/s $\textbf{\color{#d91a1a}-8.21\%}$
test_seq_add[eager] 0.5726ms 0.5109ms 1.9572 KOps/s 1.9807 KOps/s $\color{#d91a1a}-1.19\%$
test_seq_add[compile] 0.7163ms 0.1259ms 7.9443 KOps/s 7.4255 KOps/s $\textbf{\color{#35bf28}+6.99\%}$
test_seq_add[compile-overhead] 0.2277ms 0.1690ms 5.9170 KOps/s 5.5403 KOps/s $\textbf{\color{#35bf28}+6.80\%}$
test_seq_wrap[eager] 1.5491ms 1.4148ms 706.8171 Ops/s 690.6922 Ops/s $\color{#35bf28}+2.33\%$
test_seq_wrap[compile] 0.5240ms 0.3895ms 2.5674 KOps/s 2.5190 KOps/s $\color{#35bf28}+1.92\%$
test_seq_wrap[compile-overhead] 0.3611ms 0.2862ms 3.4939 KOps/s 3.3781 KOps/s $\color{#35bf28}+3.43\%$
test_func_call_runtime[False-eager] 0.9354ms 0.8261ms 1.2105 KOps/s 1.1733 KOps/s $\color{#35bf28}+3.17\%$
test_func_call_runtime[False-compile] 1.0479ms 0.9258ms 1.0801 KOps/s 1.0956 KOps/s $\color{#d91a1a}-1.41\%$
test_func_call_runtime[False-compile-overhead] 0.6120ms 0.4872ms 2.0526 KOps/s 2.0286 KOps/s $\color{#35bf28}+1.18\%$
test_func_call_runtime[True-eager] 1.1733ms 1.0694ms 935.0740 Ops/s 934.8611 Ops/s $\color{#35bf28}+0.02\%$
test_func_call_runtime[True-compile] 1.0441ms 0.9415ms 1.0621 KOps/s 1.0766 KOps/s $\color{#d91a1a}-1.34\%$
test_func_call_runtime[True-compile-overhead] 0.5554ms 0.4999ms 2.0004 KOps/s 1.9585 KOps/s $\color{#35bf28}+2.14\%$
test_func_call_cm_runtime[False-eager] 0.9181ms 0.8298ms 1.2052 KOps/s 1.1887 KOps/s $\color{#35bf28}+1.39\%$
test_func_call_cm_runtime[False-compile] 1.0133ms 0.9044ms 1.1057 KOps/s 1.1187 KOps/s $\color{#d91a1a}-1.17\%$
test_func_call_cm_runtime[False-compile-overhead] 0.5307ms 0.4663ms 2.1446 KOps/s 2.1346 KOps/s $\color{#35bf28}+0.46\%$
test_func_call_cm_runtime[True-eager] 1.3841ms 1.2247ms 816.5258 Ops/s 818.4235 Ops/s $\color{#d91a1a}-0.23\%$
test_func_call_cm_runtime[True-compile] 1.0842ms 0.9942ms 1.0058 KOps/s 1.0616 KOps/s $\textbf{\color{#d91a1a}-5.25\%}$
test_func_call_cm_runtime[True-compile-overhead] 0.5732ms 0.5132ms 1.9486 KOps/s 1.9246 KOps/s $\color{#35bf28}+1.25\%$
test_vmap_func_call_cm_runtime[eager] 2.8995ms 2.3822ms 419.7731 Ops/s 419.5071 Ops/s $\color{#35bf28}+0.06\%$
test_vmap_func_call_cm_runtime[compile] 1.0416ms 0.9687ms 1.0323 KOps/s 1.0400 KOps/s $\color{#d91a1a}-0.74\%$
test_vmap_func_call_cm_runtime[compile-overhead] 0.9695ms 0.5198ms 1.9239 KOps/s 1.9006 KOps/s $\color{#35bf28}+1.23\%$
test_distributed 3.0160ms 0.1698ms 5.8888 KOps/s 6.5680 KOps/s $\textbf{\color{#d91a1a}-10.34\%}$
test_tdmodule 0.5623ms 0.1937ms 5.1624 KOps/s 5.1349 KOps/s $\color{#35bf28}+0.53\%$
test_tdmodule_dispatch 3.8226ms 0.3742ms 2.6720 KOps/s 2.6922 KOps/s $\color{#d91a1a}-0.75\%$
test_tdseq 52.4810μs 26.2336μs 38.1191 KOps/s 38.2383 KOps/s $\color{#d91a1a}-0.31\%$
test_tdseq_dispatch 0.2548ms 0.2150ms 4.6517 KOps/s 4.6267 KOps/s $\color{#35bf28}+0.54\%$
test_instantiation_functorch 2.1517ms 2.0514ms 487.4749 Ops/s 486.2183 Ops/s $\color{#35bf28}+0.26\%$
test_exec_functorch 0.2393ms 0.1794ms 5.5744 KOps/s 5.6526 KOps/s $\color{#d91a1a}-1.38\%$
test_exec_functional_call 0.2686ms 0.1579ms 6.3341 KOps/s 6.3287 KOps/s $\color{#35bf28}+0.09\%$
test_exec_td_decorator 0.4435ms 0.2336ms 4.2811 KOps/s 4.2872 KOps/s $\color{#d91a1a}-0.14\%$
test_vmap_mlp_speed_decorator[True-True] 1.1852ms 1.0006ms 999.4292 Ops/s 997.1080 Ops/s $\color{#35bf28}+0.23\%$
test_vmap_mlp_speed_decorator[True-False] 1.2005ms 1.0008ms 999.1965 Ops/s 999.5889 Ops/s $\color{#d91a1a}-0.04\%$
test_vmap_mlp_speed_decorator[False-True] 0.8959ms 0.7052ms 1.4181 KOps/s 1.4229 KOps/s $\color{#d91a1a}-0.34\%$
test_vmap_mlp_speed_decorator[False-False] 0.8891ms 0.7070ms 1.4144 KOps/s 1.4248 KOps/s $\color{#d91a1a}-0.73\%$
test_vmap_transformer_speed_decorator[True-True] 21.5672ms 20.8185ms 48.0343 Ops/s 48.1355 Ops/s $\color{#d91a1a}-0.21\%$
test_vmap_transformer_speed_decorator[True-False] 21.4884ms 20.8385ms 47.9881 Ops/s 48.3241 Ops/s $\color{#d91a1a}-0.70\%$
test_vmap_transformer_speed_decorator[False-True] 20.5399ms 20.4118ms 48.9913 Ops/s 49.0842 Ops/s $\color{#d91a1a}-0.19\%$
test_vmap_transformer_speed_decorator[False-False] 20.5130ms 20.3949ms 49.0318 Ops/s 49.1669 Ops/s $\color{#d91a1a}-0.27\%$
test_to_module_speed[True] 1.5892ms 1.4888ms 671.6986 Ops/s 678.0329 Ops/s $\color{#d91a1a}-0.93\%$
test_to_module_speed[False] 1.5423ms 1.4535ms 687.9959 Ops/s 694.5540 Ops/s $\color{#d91a1a}-0.94\%$
test_tc_init 77.5010μs 45.5067μs 21.9748 KOps/s 22.6919 KOps/s $\color{#d91a1a}-3.16\%$
test_tc_init_tensor_only 47.0710μs 9.7675μs 102.3803 KOps/s 102.7884 KOps/s $\color{#d91a1a}-0.40\%$
test_tc_init_nested 0.1491ms 89.3533μs 11.1915 KOps/s 11.6575 KOps/s $\color{#d91a1a}-4.00\%$
test_tc_init_many_fields 48.5610μs 16.4054μs 60.9554 KOps/s 61.1872 KOps/s $\color{#d91a1a}-0.38\%$
test_tc_first_layer_tensor 21.5100μs 1.8032μs 554.5728 KOps/s 554.5121 KOps/s $\color{#35bf28}+0.01\%$
test_tc_first_layer_tensor_only 2.0975μs 0.3929μs 2.5453 MOps/s 2.5312 MOps/s $\color{#35bf28}+0.56\%$
test_tc_first_layer_tensor_set 32.3610μs 3.9580μs 252.6541 KOps/s 252.9829 KOps/s $\color{#d91a1a}-0.13\%$
test_tc_first_layer_tensor_only_set 25.0710μs 3.2905μs 303.9053 KOps/s 304.9818 KOps/s $\color{#d91a1a}-0.35\%$
test_tc_first_layer_nontensor 35.4610μs 6.1987μs 161.3245 KOps/s 163.2268 KOps/s $\color{#d91a1a}-1.17\%$
test_tc_second_layer_tensor 33.2210μs 4.4312μs 225.6737 KOps/s 229.3685 KOps/s $\color{#d91a1a}-1.61\%$
test_tc_second_layer_nontensor 36.5510μs 8.7076μs 114.8424 KOps/s 114.8291 KOps/s $\color{#35bf28}+0.01\%$
test_unbind 0.2739s 16.8072ms 59.4982 Ops/s 64.5213 Ops/s $\textbf{\color{#d91a1a}-7.79\%}$
test_full_like 4.7144ms 4.3981ms 227.3689 Ops/s 227.3849 Ops/s $-0.01\%$
test_zeros_like 4.5010ms 4.3818ms 228.2145 Ops/s 228.3663 Ops/s $\color{#d91a1a}-0.07\%$
test_ones_like 4.4571ms 4.3141ms 231.7969 Ops/s 227.9165 Ops/s $\color{#35bf28}+1.70\%$
test_clone 6.7072ms 6.5567ms 152.5161 Ops/s 153.7223 Ops/s $\color{#d91a1a}-0.78\%$
test_squeeze 62.4210μs 14.0310μs 71.2706 KOps/s 71.1662 KOps/s $\color{#35bf28}+0.15\%$
test_unsqueeze 0.1602ms 0.1122ms 8.9132 KOps/s 9.2191 KOps/s $\color{#d91a1a}-3.32\%$
test_split 0.2603ms 0.1818ms 5.5013 KOps/s 5.5802 KOps/s $\color{#d91a1a}-1.41\%$
test_permute 0.2514ms 0.2089ms 4.7859 KOps/s 4.7833 KOps/s $\color{#35bf28}+0.05\%$
test_stack 51.9864ms 51.6115ms 19.3755 Ops/s 54.3400 Ops/s $\textbf{\color{#d91a1a}-64.34\%}$
test_cat 51.9996ms 51.6446ms 19.3631 Ops/s 54.6872 Ops/s $\textbf{\color{#d91a1a}-64.59\%}$
test_sequential_tensordict 0.6953ms 0.5626ms 1.7776 KOps/s 1.7498 KOps/s $\color{#35bf28}+1.59\%$
test_sequential_graph_module 0.2075ms 0.1141ms 8.7666 KOps/s 8.7113 KOps/s $\color{#35bf28}+0.63\%$
test_nested_tensordict 0.9624ms 0.8242ms 1.2133 KOps/s 1.2241 KOps/s $\color{#d91a1a}-0.88\%$
test_nested_graph_module 0.5515ms 0.1282ms 7.8020 KOps/s 7.9632 KOps/s $\color{#d91a1a}-2.03\%$

@vmoens
vmoens force-pushed the prepare-copy-at-writer branch from 244424e to aa7a101 Compare May 7, 2026 12:23
@vmoens
vmoens force-pushed the update-at-fastpath branch 2 times, most recently from 7eac383 to 8f6391e Compare May 7, 2026 13:44
@vmoens
vmoens force-pushed the prepare-copy-at-writer branch 2 times, most recently from 6af24f5 to 44a6e2f Compare May 7, 2026 13:55
@vmoens
vmoens force-pushed the update-at-fastpath branch from 8f6391e to 02e0c6a Compare May 7, 2026 13:55
Base automatically changed from update-at-fastpath to main May 7, 2026 15:28
@github-actions github-actions Bot added documentation Improvements or additions to documentation Benchmarks labels May 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Benchmarks 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 tensorclass Test

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant