Skip to content

[Performance] Reuse a shared thread pool across serialization calls - #1741

Merged
vmoens merged 3 commits into
gh/vmoens/94/basefrom
gh/vmoens/94/head
Jul 9, 2026
Merged

[Performance] Reuse a shared thread pool across serialization calls#1741
vmoens merged 3 commits into
gh/vmoens/94/basefrom
gh/vmoens/94/head

Conversation

@vmoens

@vmoens vmoens commented Jul 9, 2026

Copy link
Copy Markdown
Collaborator

Stack from ghstack (oldest at bottom):

memmap_/memmap/memmap_like and consolidate spun up (and tore down) a
fresh ThreadPoolExecutor on every call, which costs ~0.3ms per call in
thread spawn/teardown - noticeable in checkpoint loops that save small
tensordicts at every iteration. Calls with return_early=True never shut
their executor down at all, abandoning a full thread pool to the GC on
every call.

Add tensordict.utils._get_shared_executor(num_threads): a process-wide,
lazily-created pool per thread count, reused across calls. Executors do
not survive a fork, so the cache is cleared in the child via
os.register_at_fork.

The serialization tasks submitted to the pool are leaf functions that
never submit to (and wait on) the pool themselves, so sharing it cannot
deadlock.

Co-Authored-By: Claude Fable 5 noreply@anthropic.com

[ghstack-poisoned]
@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 Jul 9, 2026
@github-actions

github-actions Bot commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

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

Total Benchmarks: 352. Improved: $\large\color{#35bf28}18$. Worsened: $\large\color{#d91a1a}15$.

Expand to view detailed results
Name Max Mean Ops Ops on Repo HEAD Change
test_collector_preallocated_write[stack_out-cpu-32-2] 0.2264ms 0.1725ms 5.7977 KOps/s 5.9634 KOps/s $\color{#d91a1a}-2.78\%$
test_collector_preallocated_write[stack_out-cpu-32-8] 0.3937ms 0.2959ms 3.3791 KOps/s 3.3769 KOps/s $\color{#35bf28}+0.06\%$
test_collector_preallocated_write[stack_out-cpu-32-32] 0.8422ms 0.7801ms 1.2819 KOps/s 1.2723 KOps/s $\color{#35bf28}+0.75\%$
test_collector_preallocated_write[stack_out-cpu-4096-2] 0.4101ms 0.3417ms 2.9267 KOps/s 2.9796 KOps/s $\color{#d91a1a}-1.78\%$
test_collector_preallocated_write[stack_out-cpu-4096-8] 1.3992ms 1.1491ms 870.2833 Ops/s 902.5665 Ops/s $\color{#d91a1a}-3.58\%$
test_collector_preallocated_write[stack_out-cpu-4096-32] 8.0539ms 7.6013ms 131.5559 Ops/s 129.2704 Ops/s $\color{#35bf28}+1.77\%$
test_collector_preallocated_write[stack_out-cuda-32-2] 0.2821ms 0.2469ms 4.0500 KOps/s 3.9939 KOps/s $\color{#35bf28}+1.40\%$
test_collector_preallocated_write[stack_out-cuda-32-8] 0.4568ms 0.3717ms 2.6903 KOps/s 2.6887 KOps/s $\color{#35bf28}+0.06\%$
test_collector_preallocated_write[stack_out-cuda-32-32] 0.9895ms 0.8361ms 1.1960 KOps/s 1.2040 KOps/s $\color{#d91a1a}-0.67\%$
test_collector_preallocated_write[stack_out-cuda-4096-2] 0.3074ms 0.2509ms 3.9851 KOps/s 3.8975 KOps/s $\color{#35bf28}+2.25\%$
test_collector_preallocated_write[stack_out-cuda-4096-8] 0.4503ms 0.3743ms 2.6719 KOps/s 2.6771 KOps/s $\color{#d91a1a}-0.19\%$
test_collector_preallocated_write[stack_out-cuda-4096-32] 1.0330ms 0.8914ms 1.1219 KOps/s 1.1210 KOps/s $\color{#35bf28}+0.08\%$
test_collector_preallocated_write[set_at_loop-cpu-32-2] 0.2714ms 0.2092ms 4.7809 KOps/s 4.8219 KOps/s $\color{#d91a1a}-0.85\%$
test_collector_preallocated_write[set_at_loop-cpu-32-8] 0.8857ms 0.8066ms 1.2398 KOps/s 1.2320 KOps/s $\color{#35bf28}+0.64\%$
test_collector_preallocated_write[set_at_loop-cpu-32-32] 4.0269ms 3.2377ms 308.8583 Ops/s 309.4353 Ops/s $\color{#d91a1a}-0.19\%$
test_collector_preallocated_write[set_at_loop-cpu-4096-2] 0.6622ms 0.3669ms 2.7255 KOps/s 2.7521 KOps/s $\color{#d91a1a}-0.97\%$
test_collector_preallocated_write[set_at_loop-cpu-4096-8] 1.8577ms 1.6585ms 602.9367 Ops/s 605.9362 Ops/s $\color{#d91a1a}-0.50\%$
test_collector_preallocated_write[set_at_loop-cpu-4096-32] 10.7750ms 10.4303ms 95.8741 Ops/s 96.6417 Ops/s $\color{#d91a1a}-0.79\%$
test_collector_preallocated_write[set_at_loop-cuda-32-2] 0.4549ms 0.3960ms 2.5251 KOps/s 2.4753 KOps/s $\color{#35bf28}+2.01\%$
test_collector_preallocated_write[set_at_loop-cuda-32-8] 1.8284ms 1.4411ms 693.9253 Ops/s 679.2501 Ops/s $\color{#35bf28}+2.16\%$
test_collector_preallocated_write[set_at_loop-cuda-32-32] 5.9202ms 5.6380ms 177.3689 Ops/s 169.4323 Ops/s $\color{#35bf28}+4.68\%$
test_collector_preallocated_write[set_at_loop-cuda-4096-2] 0.4982ms 0.3869ms 2.5845 KOps/s 2.5698 KOps/s $\color{#35bf28}+0.57\%$
test_collector_preallocated_write[set_at_loop-cuda-4096-8] 1.5838ms 1.4435ms 692.7555 Ops/s 693.2690 Ops/s $\color{#d91a1a}-0.07\%$
test_collector_preallocated_write[set_at_loop-cuda-4096-32] 5.9719ms 5.6663ms 176.4820 Ops/s 178.7576 Ops/s $\color{#d91a1a}-1.27\%$
test_collector_preallocated_write[copy_at-cpu-32-2] 0.2171ms 0.1685ms 5.9361 KOps/s 5.8588 KOps/s $\color{#35bf28}+1.32\%$
test_collector_preallocated_write[copy_at-cpu-32-8] 0.7285ms 0.6564ms 1.5234 KOps/s 1.5122 KOps/s $\color{#35bf28}+0.74\%$
test_collector_preallocated_write[copy_at-cpu-32-32] 3.1145ms 2.6230ms 381.2469 Ops/s 381.6729 Ops/s $\color{#d91a1a}-0.11\%$
test_collector_preallocated_write[copy_at-cpu-4096-2] 0.4062ms 0.3234ms 3.0919 KOps/s 3.1521 KOps/s $\color{#d91a1a}-1.91\%$
test_collector_preallocated_write[copy_at-cpu-4096-8] 1.6445ms 1.4822ms 674.6501 Ops/s 684.4257 Ops/s $\color{#d91a1a}-1.43\%$
test_collector_preallocated_write[copy_at-cpu-4096-32] 10.0734ms 9.7582ms 102.4780 Ops/s 102.7021 Ops/s $\color{#d91a1a}-0.22\%$
test_collector_preallocated_write[copy_at-cuda-32-2] 0.4015ms 0.3147ms 3.1779 KOps/s 3.1351 KOps/s $\color{#35bf28}+1.36\%$
test_collector_preallocated_write[copy_at-cuda-32-8] 1.3082ms 1.1715ms 853.6172 Ops/s 848.5242 Ops/s $\color{#35bf28}+0.60\%$
test_collector_preallocated_write[copy_at-cuda-32-32] 4.8569ms 4.5818ms 218.2553 Ops/s 216.3485 Ops/s $\color{#35bf28}+0.88\%$
test_collector_preallocated_write[copy_at-cuda-4096-2] 0.4149ms 0.3169ms 3.1552 KOps/s 3.1374 KOps/s $\color{#35bf28}+0.57\%$
test_collector_preallocated_write[copy_at-cuda-4096-8] 1.3077ms 1.1797ms 847.6834 Ops/s 843.1610 Ops/s $\color{#35bf28}+0.54\%$
test_collector_preallocated_write[copy_at-cuda-4096-32] 4.7352ms 4.6153ms 216.6718 Ops/s 214.5737 Ops/s $\color{#35bf28}+0.98\%$
test_collector_preallocated_write[manual_leaf_copy-cpu-32-2] 0.1687ms 0.1189ms 8.4131 KOps/s 8.3852 KOps/s $\color{#35bf28}+0.33\%$
test_collector_preallocated_write[manual_leaf_copy-cpu-32-8] 0.5315ms 0.4653ms 2.1493 KOps/s 2.1367 KOps/s $\color{#35bf28}+0.59\%$
test_collector_preallocated_write[manual_leaf_copy-cpu-32-32] 1.9026ms 1.8527ms 539.7507 Ops/s 533.7075 Ops/s $\color{#35bf28}+1.13\%$
test_collector_preallocated_write[manual_leaf_copy-cpu-4096-2] 0.3293ms 0.2632ms 3.7989 KOps/s 3.9097 KOps/s $\color{#d91a1a}-2.83\%$
test_collector_preallocated_write[manual_leaf_copy-cpu-4096-8] 1.4861ms 1.3439ms 744.0793 Ops/s 807.3390 Ops/s $\textbf{\color{#d91a1a}-7.84\%}$
test_collector_preallocated_write[manual_leaf_copy-cpu-4096-32] 9.1830ms 8.8799ms 112.6140 Ops/s 113.6658 Ops/s $\color{#d91a1a}-0.93\%$
test_collector_preallocated_write[manual_leaf_copy-cuda-32-2] 0.3418ms 0.2655ms 3.7662 KOps/s 3.7458 KOps/s $\color{#35bf28}+0.55\%$
test_collector_preallocated_write[manual_leaf_copy-cuda-32-8] 1.0843ms 0.9827ms 1.0176 KOps/s 1.0128 KOps/s $\color{#35bf28}+0.47\%$
test_collector_preallocated_write[manual_leaf_copy-cuda-32-32] 4.0608ms 3.8681ms 258.5261 Ops/s 256.9235 Ops/s $\color{#35bf28}+0.62\%$
test_collector_preallocated_write[manual_leaf_copy-cuda-4096-2] 0.3298ms 0.2652ms 3.7705 KOps/s 3.7622 KOps/s $\color{#35bf28}+0.22\%$
test_collector_preallocated_write[manual_leaf_copy-cuda-4096-8] 1.1460ms 0.9888ms 1.0113 KOps/s 1.0040 KOps/s $\color{#35bf28}+0.73\%$
test_collector_preallocated_write[manual_leaf_copy-cuda-4096-32] 3.9699ms 3.8791ms 257.7937 Ops/s 255.9685 Ops/s $\color{#35bf28}+0.71\%$
test_wide_nested_preallocated_write[stack_out-cpu-128-128] 16.5924ms 16.4194ms 60.9036 Ops/s 60.5563 Ops/s $\color{#35bf28}+0.57\%$
test_wide_nested_preallocated_write[stack_out-cpu-128-256] 33.4404ms 33.1296ms 30.1845 Ops/s 30.1343 Ops/s $\color{#35bf28}+0.17\%$
test_wide_nested_preallocated_write[stack_out-cpu-4096-128] 89.6202ms 87.9373ms 11.3717 Ops/s 11.4707 Ops/s $\color{#d91a1a}-0.86\%$
test_wide_nested_preallocated_write[stack_out-cpu-4096-256] 0.2086s 0.2069s 4.8334 Ops/s 4.8787 Ops/s $\color{#d91a1a}-0.93\%$
test_wide_nested_preallocated_write[stack_out-cuda-128-128] 14.3220ms 13.8445ms 72.2310 Ops/s 72.6383 Ops/s $\color{#d91a1a}-0.56\%$
test_wide_nested_preallocated_write[stack_out-cuda-128-256] 27.1962ms 27.0913ms 36.9122 Ops/s 37.0872 Ops/s $\color{#d91a1a}-0.47\%$
test_wide_nested_preallocated_write[stack_out-cuda-4096-128] 14.1437ms 13.9856ms 71.5021 Ops/s 71.6201 Ops/s $\color{#d91a1a}-0.16\%$
test_wide_nested_preallocated_write[stack_out-cuda-4096-256] 27.6681ms 27.5484ms 36.2998 Ops/s 36.6690 Ops/s $\color{#d91a1a}-1.01\%$
test_wide_nested_preallocated_write[set_at_loop-cpu-128-128] 51.9043ms 51.5156ms 19.4116 Ops/s 19.7523 Ops/s $\color{#d91a1a}-1.72\%$
test_wide_nested_preallocated_write[set_at_loop-cpu-128-256] 0.1046s 0.1038s 9.6375 Ops/s 9.7878 Ops/s $\color{#d91a1a}-1.54\%$
test_wide_nested_preallocated_write[set_at_loop-cpu-4096-128] 0.1539s 0.1482s 6.7483 Ops/s 6.6935 Ops/s $\color{#35bf28}+0.82\%$
test_wide_nested_preallocated_write[set_at_loop-cpu-4096-256] 0.3416s 0.3373s 2.9645 Ops/s 3.0218 Ops/s $\color{#d91a1a}-1.90\%$
test_wide_nested_preallocated_write[set_at_loop-cuda-128-128] 77.5778ms 76.5172ms 13.0690 Ops/s 13.3720 Ops/s $\color{#d91a1a}-2.27\%$
test_wide_nested_preallocated_write[set_at_loop-cuda-128-256] 0.1554s 0.1496s 6.6827 Ops/s 6.6238 Ops/s $\color{#35bf28}+0.89\%$
test_wide_nested_preallocated_write[set_at_loop-cuda-4096-128] 75.1718ms 73.4846ms 13.6083 Ops/s 13.1599 Ops/s $\color{#35bf28}+3.41\%$
test_wide_nested_preallocated_write[set_at_loop-cuda-4096-256] 0.1480s 0.1475s 6.7811 Ops/s 6.5953 Ops/s $\color{#35bf28}+2.82\%$
test_wide_nested_preallocated_write[copy_at-cpu-128-128] 30.2186ms 30.0711ms 33.2545 Ops/s 33.1510 Ops/s $\color{#35bf28}+0.31\%$
test_wide_nested_preallocated_write[copy_at-cpu-128-256] 60.8836ms 60.7459ms 16.4620 Ops/s 16.4362 Ops/s $\color{#35bf28}+0.16\%$
test_wide_nested_preallocated_write[copy_at-cpu-4096-128] 0.1236s 0.1222s 8.1861 Ops/s 8.0373 Ops/s $\color{#35bf28}+1.85\%$
test_wide_nested_preallocated_write[copy_at-cpu-4096-256] 0.2731s 0.2712s 3.6872 Ops/s 3.6474 Ops/s $\color{#35bf28}+1.09\%$
test_wide_nested_preallocated_write[copy_at-cuda-128-128] 42.8825ms 42.6134ms 23.4668 Ops/s 23.4646 Ops/s $+0.01\%$
test_wide_nested_preallocated_write[copy_at-cuda-128-256] 85.4790ms 85.1285ms 11.7469 Ops/s 11.7717 Ops/s $\color{#d91a1a}-0.21\%$
test_wide_nested_preallocated_write[copy_at-cuda-4096-128] 43.1556ms 42.8854ms 23.3180 Ops/s 23.2558 Ops/s $\color{#35bf28}+0.27\%$
test_wide_nested_preallocated_write[copy_at-cuda-4096-256] 86.8045ms 85.8669ms 11.6459 Ops/s 11.6791 Ops/s $\color{#d91a1a}-0.28\%$
test_wide_nested_preallocated_write[manual_leaf_copy-cpu-128-128] 20.4193ms 20.2494ms 49.3841 Ops/s 49.2668 Ops/s $\color{#35bf28}+0.24\%$
test_wide_nested_preallocated_write[manual_leaf_copy-cpu-128-256] 41.5108ms 41.3389ms 24.1903 Ops/s 24.3355 Ops/s $\color{#d91a1a}-0.60\%$
test_wide_nested_preallocated_write[manual_leaf_copy-cpu-4096-128] 0.1111s 0.1098s 9.1099 Ops/s 9.0981 Ops/s $\color{#35bf28}+0.13\%$
test_wide_nested_preallocated_write[manual_leaf_copy-cpu-4096-256] 0.2510s 0.2498s 4.0039 Ops/s 3.9943 Ops/s $\color{#35bf28}+0.24\%$
test_wide_nested_preallocated_write[manual_leaf_copy-cuda-128-128] 35.7805ms 35.4458ms 28.2121 Ops/s 28.0494 Ops/s $\color{#35bf28}+0.58\%$
test_wide_nested_preallocated_write[manual_leaf_copy-cuda-128-256] 71.2369ms 70.7476ms 14.1348 Ops/s 14.0850 Ops/s $\color{#35bf28}+0.35\%$
test_wide_nested_preallocated_write[manual_leaf_copy-cuda-4096-128] 35.7590ms 35.3642ms 28.2772 Ops/s 28.1679 Ops/s $\color{#35bf28}+0.39\%$
test_wide_nested_preallocated_write[manual_leaf_copy-cuda-4096-256] 71.7780ms 71.3648ms 14.0125 Ops/s 14.0858 Ops/s $\color{#d91a1a}-0.52\%$
test_plain_set_nested 45.9420μs 15.2585μs 65.5372 KOps/s 66.5450 KOps/s $\color{#d91a1a}-1.51\%$
test_plain_set_stack_nested 40.3030μs 14.8866μs 67.1747 KOps/s 67.8369 KOps/s $\color{#d91a1a}-0.98\%$
test_plain_set_nested_inplace 48.8630μs 16.4114μs 60.9333 KOps/s 60.5731 KOps/s $\color{#35bf28}+0.59\%$
test_plain_set_stack_nested_inplace 37.6320μs 16.1676μs 61.8520 KOps/s 61.8248 KOps/s $\color{#35bf28}+0.04\%$
test_items 30.9120μs 6.0872μs 164.2779 KOps/s 166.2391 KOps/s $\color{#d91a1a}-1.18\%$
test_items_nested 0.4938ms 0.4620ms 2.1644 KOps/s 2.1721 KOps/s $\color{#d91a1a}-0.35\%$
test_items_nested_locked 0.5582ms 0.4639ms 2.1558 KOps/s 2.1522 KOps/s $\color{#35bf28}+0.17\%$
test_items_nested_leaf 0.1696ms 97.7323μs 10.2320 KOps/s 10.2226 KOps/s $\color{#35bf28}+0.09\%$
test_items_stack_nested 0.5427ms 0.4618ms 2.1655 KOps/s 2.1556 KOps/s $\color{#35bf28}+0.46\%$
test_items_stack_nested_leaf 0.1239ms 98.8698μs 10.1143 KOps/s 10.1760 KOps/s $\color{#d91a1a}-0.61\%$
test_items_stack_nested_locked 0.5335ms 0.4686ms 2.1339 KOps/s 2.1527 KOps/s $\color{#d91a1a}-0.87\%$
test_keys 26.7610μs 4.1918μs 238.5632 KOps/s 242.8142 KOps/s $\color{#d91a1a}-1.75\%$
test_keys_nested 0.2309ms 0.1268ms 7.8841 KOps/s 7.8604 KOps/s $\color{#35bf28}+0.30\%$
test_keys_nested_locked 2.1542ms 0.1372ms 7.2905 KOps/s 7.3432 KOps/s $\color{#d91a1a}-0.72\%$
test_keys_nested_leaf 0.1659ms 0.1204ms 8.3065 KOps/s 8.4292 KOps/s $\color{#d91a1a}-1.46\%$
test_keys_stack_nested 0.1936ms 0.1285ms 7.7810 KOps/s 7.8251 KOps/s $\color{#d91a1a}-0.56\%$
test_keys_stack_nested_leaf 0.1491ms 0.1194ms 8.3744 KOps/s 8.4603 KOps/s $\color{#d91a1a}-1.02\%$
test_keys_stack_nested_locked 0.1766ms 0.1362ms 7.3411 KOps/s 7.3574 KOps/s $\color{#d91a1a}-0.22\%$
test_values 8.6030μs 1.0309μs 970.0631 KOps/s 993.6106 KOps/s $\color{#d91a1a}-2.37\%$
test_values_nested 84.5150μs 52.3541μs 19.1007 KOps/s 19.2227 KOps/s $\color{#d91a1a}-0.63\%$
test_values_nested_locked 82.0850μs 56.0455μs 17.8427 KOps/s 18.6044 KOps/s $\color{#d91a1a}-4.09\%$
test_values_nested_leaf 90.0750μs 60.1443μs 16.6267 KOps/s 16.8567 KOps/s $\color{#d91a1a}-1.36\%$
test_values_stack_nested 88.7750μs 51.8821μs 19.2745 KOps/s 19.1511 KOps/s $\color{#35bf28}+0.64\%$
test_values_stack_nested_leaf 89.2550μs 59.2266μs 16.8843 KOps/s 16.7212 KOps/s $\color{#35bf28}+0.98\%$
test_values_stack_nested_locked 86.9150μs 55.8485μs 17.9056 KOps/s 17.9467 KOps/s $\color{#d91a1a}-0.23\%$
test_membership 5.8320μs 0.8300μs 1.2048 MOps/s 1.1689 MOps/s $\color{#35bf28}+3.07\%$
test_membership_nested 28.0510μs 2.9547μs 338.4490 KOps/s 334.5456 KOps/s $\color{#35bf28}+1.17\%$
test_membership_nested_leaf 31.6420μs 2.9436μs 339.7211 KOps/s 334.7200 KOps/s $\color{#35bf28}+1.49\%$
test_membership_stacked_nested 32.6120μs 2.8544μs 350.3384 KOps/s 347.7316 KOps/s $\color{#35bf28}+0.75\%$
test_membership_stacked_nested_leaf 35.2420μs 2.8428μs 351.7637 KOps/s 347.7993 KOps/s $\color{#35bf28}+1.14\%$
test_membership_nested_last 35.0220μs 4.4550μs 224.4646 KOps/s 224.7666 KOps/s $\color{#d91a1a}-0.13\%$
test_membership_nested_leaf_last 35.9520μs 4.4288μs 225.7970 KOps/s 225.5179 KOps/s $\color{#35bf28}+0.12\%$
test_membership_stacked_nested_last 32.3120μs 4.3111μs 231.9572 KOps/s 233.2383 KOps/s $\color{#d91a1a}-0.55\%$
test_membership_stacked_nested_leaf_last 43.6520μs 4.2743μs 233.9569 KOps/s 232.6813 KOps/s $\color{#35bf28}+0.55\%$
test_nested_getleaf 47.8620μs 21.3349μs 46.8716 KOps/s 46.8918 KOps/s $\color{#d91a1a}-0.04\%$
test_nested_get 49.8930μs 19.9805μs 50.0488 KOps/s 49.4840 KOps/s $\color{#35bf28}+1.14\%$
test_stacked_getleaf 56.0330μs 20.6043μs 48.5335 KOps/s 47.5492 KOps/s $\color{#35bf28}+2.07\%$
test_stacked_get 57.4730μs 19.3057μs 51.7982 KOps/s 50.0011 KOps/s $\color{#35bf28}+3.59\%$
test_nested_getitemleaf 55.9830μs 21.6166μs 46.2607 KOps/s 45.6341 KOps/s $\color{#35bf28}+1.37\%$
test_nested_getitem 54.3730μs 20.3589μs 49.1186 KOps/s 48.0668 KOps/s $\color{#35bf28}+2.19\%$
test_stacked_getitemleaf 51.0530μs 21.2614μs 47.0335 KOps/s 46.7441 KOps/s $\color{#35bf28}+0.62\%$
test_stacked_getitem 52.8330μs 20.0077μs 49.9806 KOps/s 48.6431 KOps/s $\color{#35bf28}+2.75\%$
test_lock_nested 0.6209ms 0.4995ms 2.0021 KOps/s 1.9949 KOps/s $\color{#35bf28}+0.36\%$
test_lock_stack_nested 0.5401ms 0.5030ms 1.9880 KOps/s 1.9740 KOps/s $\color{#35bf28}+0.71\%$
test_unlock_nested 0.5579ms 0.3966ms 2.5215 KOps/s 2.5087 KOps/s $\color{#35bf28}+0.51\%$
test_unlock_stack_nested 0.5830ms 0.3979ms 2.5130 KOps/s 2.5078 KOps/s $\color{#35bf28}+0.21\%$
test_flatten_speed 0.1561ms 0.1228ms 8.1416 KOps/s 8.0198 KOps/s $\color{#35bf28}+1.52\%$
test_unflatten_speed 0.5973ms 0.5588ms 1.7895 KOps/s 1.7664 KOps/s $\color{#35bf28}+1.31\%$
test_common_ops 1.0113ms 0.6929ms 1.4433 KOps/s 1.4374 KOps/s $\color{#35bf28}+0.41\%$
test_creation 38.4720μs 3.1738μs 315.0834 KOps/s 324.0495 KOps/s $\color{#d91a1a}-2.77\%$
test_creation_empty 38.7720μs 7.0455μs 141.9342 KOps/s 147.8069 KOps/s $\color{#d91a1a}-3.97\%$
test_creation_nested_1 40.6420μs 11.4770μs 87.1308 KOps/s 86.8944 KOps/s $\color{#35bf28}+0.27\%$
test_creation_nested_2 48.0330μs 13.5300μs 73.9096 KOps/s 74.7890 KOps/s $\color{#d91a1a}-1.18\%$
test_creation_many_keys[10] 52.8830μs 20.9751μs 47.6755 KOps/s 46.6799 KOps/s $\color{#35bf28}+2.13\%$
test_creation_many_keys[50] 0.1195ms 90.2228μs 11.0837 KOps/s 10.8665 KOps/s $\color{#35bf28}+2.00\%$
test_creation_many_keys[100] 0.2434ms 0.1774ms 5.6381 KOps/s 5.5312 KOps/s $\color{#35bf28}+1.93\%$
test_creation_nested_many_keys[10] 81.4050μs 44.8393μs 22.3018 KOps/s 21.8344 KOps/s $\color{#35bf28}+2.14\%$
test_creation_nested_many_keys[50] 0.2098ms 0.1841ms 5.4321 KOps/s 5.3684 KOps/s $\color{#35bf28}+1.19\%$
test_clone 39.4520μs 13.0022μs 76.9100 KOps/s 77.6305 KOps/s $\color{#d91a1a}-0.93\%$
test_getitem[int] 1.5273ms 15.4673μs 64.6525 KOps/s 65.3902 KOps/s $\color{#d91a1a}-1.13\%$
test_getitem[slice_int] 0.1440ms 24.9922μs 40.0125 KOps/s 41.0690 KOps/s $\color{#d91a1a}-2.57\%$
test_getitem[range] 0.1791ms 62.5100μs 15.9974 KOps/s 16.1521 KOps/s $\color{#d91a1a}-0.96\%$
test_getitem[tuple] 0.1469ms 24.3367μs 41.0901 KOps/s 41.3392 KOps/s $\color{#d91a1a}-0.60\%$
test_getitem[list] 0.1812ms 56.3841μs 17.7355 KOps/s 17.6601 KOps/s $\color{#35bf28}+0.43\%$
test_setitem_dim[int] 43.6430μs 25.1374μs 39.7813 KOps/s 39.7777 KOps/s $+0.01\%$
test_setitem_dim[slice_int] 78.2040μs 43.8309μs 22.8150 KOps/s 22.7809 KOps/s $\color{#35bf28}+0.15\%$
test_setitem_dim[range] 0.1218ms 95.6491μs 10.4549 KOps/s 10.3949 KOps/s $\color{#35bf28}+0.58\%$
test_setitem_dim[tuple] 77.0940μs 38.8811μs 25.7194 KOps/s 26.0076 KOps/s $\color{#d91a1a}-1.11\%$
test_setitem 52.9830μs 17.1173μs 58.4203 KOps/s 58.4669 KOps/s $\color{#d91a1a}-0.08\%$
test_set 45.6720μs 16.3778μs 61.0581 KOps/s 61.2573 KOps/s $\color{#d91a1a}-0.33\%$
test_set_shared 0.6061ms 0.2059ms 4.8562 KOps/s 4.7961 KOps/s $\color{#35bf28}+1.25\%$
test_update 0.3116ms 21.3998μs 46.7295 KOps/s 47.8550 KOps/s $\color{#d91a1a}-2.35\%$
test_update_nested 66.7940μs 33.0503μs 30.2569 KOps/s 30.6103 KOps/s $\color{#d91a1a}-1.15\%$
test_update__nested 0.5472ms 32.5347μs 30.7364 KOps/s 30.5821 KOps/s $\color{#35bf28}+0.50\%$
test_set_nested 52.1530μs 18.0268μs 55.4728 KOps/s 55.4674 KOps/s $+0.01\%$
test_set_nested_new 59.1830μs 22.9501μs 43.5728 KOps/s 43.9599 KOps/s $\color{#d91a1a}-0.88\%$
test_select 76.1150μs 39.7043μs 25.1862 KOps/s 25.7465 KOps/s $\color{#d91a1a}-2.18\%$
test_select_nested 0.1100ms 74.4703μs 13.4282 KOps/s 13.6197 KOps/s $\color{#d91a1a}-1.41\%$
test_exclude_nested 0.1217ms 90.7284μs 11.0219 KOps/s 11.0076 KOps/s $\color{#35bf28}+0.13\%$
test_empty[True] 0.4292ms 0.3946ms 2.5342 KOps/s 2.5505 KOps/s $\color{#d91a1a}-0.64\%$
test_empty[False] 8.4603μs 1.3933μs 717.7046 KOps/s 711.6254 KOps/s $\color{#35bf28}+0.85\%$
test_to 0.1224ms 69.6555μs 14.3564 KOps/s 14.3118 KOps/s $\color{#35bf28}+0.31\%$
test_to_nonblocking 0.1038ms 69.2505μs 14.4403 KOps/s 14.5340 KOps/s $\color{#d91a1a}-0.64\%$
test_unbind_speed 0.3852ms 0.3347ms 2.9879 KOps/s 2.9997 KOps/s $\color{#d91a1a}-0.39\%$
test_unbind_speed_stack0 0.4469ms 0.3288ms 3.0414 KOps/s 3.0253 KOps/s $\color{#35bf28}+0.53\%$
test_unbind_speed_stack1 0.1182s 0.8519ms 1.1739 KOps/s 1.1637 KOps/s $\color{#35bf28}+0.87\%$
test_split 0.1191s 1.4571ms 686.2869 Ops/s 630.5461 Ops/s $\textbf{\color{#35bf28}+8.84\%}$
test_chunk 1.3432ms 1.2396ms 806.7332 Ops/s 818.4664 Ops/s $\color{#d91a1a}-1.43\%$
test_to_cpu_blocking 19.3207ms 18.9316ms 52.8218 Ops/s 52.2788 Ops/s $\color{#35bf28}+1.04\%$
test_to_cpu_global_sync 11.5764ms 11.3661ms 87.9812 Ops/s 87.0450 Ops/s $\color{#35bf28}+1.08\%$
test_to_cpu_event_sync 0.1307s 13.6686ms 73.1602 Ops/s 72.1443 Ops/s $\color{#35bf28}+1.41\%$
test_to_cpu_default 12.5174ms 12.1996ms 81.9702 Ops/s 80.9881 Ops/s $\color{#35bf28}+1.21\%$
test_consolidate[False-None] 4.2582ms 4.1713ms 239.7320 Ops/s 240.0719 Ops/s $\color{#d91a1a}-0.14\%$
test_consolidate[default-None] 3.2740ms 2.2435ms 445.7302 Ops/s 437.1566 Ops/s $\color{#35bf28}+1.96\%$
test_consolidate[reduce-overhead-None] 3.1862ms 2.1406ms 467.1614 Ops/s 451.6149 Ops/s $\color{#35bf28}+3.44\%$
test_consolidate_njt[False-None] 5.6558ms 5.0982ms 196.1495 Ops/s 192.5063 Ops/s $\color{#35bf28}+1.89\%$
test_to[False-False-None] 2.2754ms 2.1692ms 460.9920 Ops/s 455.4279 Ops/s $\color{#35bf28}+1.22\%$
test_to[True-False-None] 2.0781ms 1.9119ms 523.0412 Ops/s 509.6830 Ops/s $\color{#35bf28}+2.62\%$
test_to[within-False-None] 6.4416ms 6.1350ms 162.9997 Ops/s 161.0338 Ops/s $\color{#35bf28}+1.22\%$
test_to[True-default-None] 10.9285ms 10.1667ms 98.3604 Ops/s 96.1482 Ops/s $\color{#35bf28}+2.30\%$
test_to_njt[False-False-None] 7.0644ms 6.9014ms 144.8984 Ops/s 142.5568 Ops/s $\color{#35bf28}+1.64\%$
test_to_njt[True-False-None] 3.9832ms 3.8411ms 260.3433 Ops/s 259.1055 Ops/s $\color{#35bf28}+0.48\%$
test_to_njt[within-False-None] 9.4078ms 8.9930ms 111.1976 Ops/s 49.3702 Ops/s $\textbf{\color{#35bf28}+125.23\%}$
test_creation[device0] 0.3863ms 0.1127ms 8.8759 KOps/s 8.8150 KOps/s $\color{#35bf28}+0.69\%$
test_creation_from_tensor 0.4426ms 0.1122ms 8.9148 KOps/s 8.8767 KOps/s $\color{#35bf28}+0.43\%$
test_add_one[memmap_tensor0] 0.3482ms 6.0622μs 164.9573 KOps/s 162.9692 KOps/s $\color{#35bf28}+1.22\%$
test_contiguous[memmap_tensor0] 19.5110μs 0.7212μs 1.3866 MOps/s 2.0483 MOps/s $\textbf{\color{#d91a1a}-32.30\%}$
test_stack[memmap_tensor0] 64.0040μs 4.1367μs 241.7362 KOps/s 239.2494 KOps/s $\color{#35bf28}+1.04\%$
test_memmaptd_index 1.4035ms 0.2723ms 3.6729 KOps/s 3.6515 KOps/s $\color{#35bf28}+0.59\%$
test_memmaptd_index_astensor 0.5175ms 0.3733ms 2.6787 KOps/s 2.6906 KOps/s $\color{#d91a1a}-0.44\%$
test_memmaptd_index_op 0.7418ms 0.6138ms 1.6293 KOps/s 1.6149 KOps/s $\color{#35bf28}+0.89\%$
test_serialize_model 0.1369s 0.1357s 7.3713 Ops/s 7.3983 Ops/s $\color{#d91a1a}-0.37\%$
test_serialize_model_pickle 1.3488s 1.2105s 0.8261 Ops/s 0.8250 Ops/s $\color{#35bf28}+0.13\%$
test_serialize_weights 0.1360s 0.1345s 7.4371 Ops/s 7.4327 Ops/s $\color{#35bf28}+0.06\%$
test_serialize_weights_returnearly 0.3276s 47.4972ms 21.0539 Ops/s 15.7022 Ops/s $\textbf{\color{#35bf28}+34.08\%}$
test_serialize_weights_pickle 1.3716s 1.2139s 0.8238 Ops/s 0.8209 Ops/s $\color{#35bf28}+0.35\%$
test_consolidate[few_large-0] 53.9489ms 7.0884ms 141.0749 Ops/s 137.1231 Ops/s $\color{#35bf28}+2.88\%$
test_consolidate[few_large-8] 13.1601ms 5.7822ms 172.9436 Ops/s 98.8303 Ops/s $\textbf{\color{#35bf28}+74.99\%}$
test_consolidate[many_small-0] 0.1236s 0.1210s 8.2651 Ops/s 32.7740 Ops/s $\textbf{\color{#d91a1a}-74.78\%}$
test_consolidate[many_small-8] 43.0947ms 40.6749ms 24.5852 Ops/s 21.9939 Ops/s $\textbf{\color{#35bf28}+11.78\%}$
test_consolidate_to_file[few_large-0] 0.1247s 22.1684ms 45.1092 Ops/s 45.6788 Ops/s $\color{#d91a1a}-1.25\%$
test_consolidate_to_file[few_large-8] 0.2104s 64.6340ms 15.4717 Ops/s 28.6549 Ops/s $\textbf{\color{#d91a1a}-46.01\%}$
test_consolidate_to_file[many_small-0] 0.9022s 0.8064s 1.2402 Ops/s 1.9688 Ops/s $\textbf{\color{#d91a1a}-37.01\%}$
test_consolidate_to_file[many_small-8] 0.9853s 0.6944s 1.4401 Ops/s 1.6422 Ops/s $\textbf{\color{#d91a1a}-12.30\%}$
test_reshape_pytree 6.6871ms 32.5434μs 30.7282 KOps/s 30.6909 KOps/s $\color{#35bf28}+0.12\%$
test_reshape_td 82.5750μs 45.2265μs 22.1109 KOps/s 21.9926 KOps/s $\color{#35bf28}+0.54\%$
test_view_pytree 0.2158ms 32.0218μs 31.2287 KOps/s 31.4602 KOps/s $\color{#d91a1a}-0.74\%$
test_view_td 92.6660μs 54.0614μs 18.4975 KOps/s 18.4054 KOps/s $\color{#35bf28}+0.50\%$
test_unbind_pytree 0.2360ms 35.8538μs 27.8910 KOps/s 27.8288 KOps/s $\color{#35bf28}+0.22\%$
test_unbind_td 0.1504ms 49.7192μs 20.1130 KOps/s 19.7743 KOps/s $\color{#35bf28}+1.71\%$
test_split_pytree 0.2449ms 40.9689μs 24.4088 KOps/s 24.0515 KOps/s $\color{#35bf28}+1.49\%$
test_split_td 0.1936ms 71.7031μs 13.9464 KOps/s 14.1599 KOps/s $\color{#d91a1a}-1.51\%$
test_add_pytree 0.1913ms 39.4949μs 25.3198 KOps/s 25.2669 KOps/s $\color{#35bf28}+0.21\%$
test_add_td 90.8460μs 52.4120μs 19.0796 KOps/s 19.1429 KOps/s $\color{#d91a1a}-0.33\%$
test_compile_add_one_nested[tensordict-compile] 0.4822ms 0.2747ms 3.6402 KOps/s 3.7008 KOps/s $\color{#d91a1a}-1.64\%$
test_compile_add_one_nested[tensordict-eager] 0.2774ms 0.2047ms 4.8862 KOps/s 4.9511 KOps/s $\color{#d91a1a}-1.31\%$
test_compile_add_one_nested[pytree-compile] 0.3619ms 0.1551ms 6.4494 KOps/s 6.2850 KOps/s $\color{#35bf28}+2.62\%$
test_compile_add_one_nested[pytree-eager] 0.4897ms 0.1781ms 5.6160 KOps/s 5.5108 KOps/s $\color{#35bf28}+1.91\%$
test_compile_copy_nested[tensordict-compile] 0.1630ms 22.6510μs 44.1481 KOps/s 45.7338 KOps/s $\color{#d91a1a}-3.47\%$
test_compile_copy_nested[tensordict-eager] 0.1165ms 52.8579μs 18.9186 KOps/s 18.3608 KOps/s $\color{#35bf28}+3.04\%$
test_compile_copy_nested[pytree-compile] 0.1834ms 19.3705μs 51.6249 KOps/s 51.7569 KOps/s $\color{#d91a1a}-0.25\%$
test_compile_copy_nested[pytree-eager] 0.3628ms 66.8825μs 14.9516 KOps/s 14.9415 KOps/s $\color{#35bf28}+0.07\%$
test_compile_add_one_flat[tensordict-compile] 0.4528ms 0.3072ms 3.2557 KOps/s 3.0824 KOps/s $\textbf{\color{#35bf28}+5.62\%}$
test_compile_add_one_flat[tensordict-eager] 0.3962ms 0.2900ms 3.4487 KOps/s 3.4268 KOps/s $\color{#35bf28}+0.64\%$
test_compile_add_one_flat[tensorclass-compile] 0.3211ms 0.2096ms 4.7719 KOps/s 4.5051 KOps/s $\textbf{\color{#35bf28}+5.92\%}$
test_compile_add_one_flat[tensorclass-eager] 0.1265ms 75.9763μs 13.1620 KOps/s 12.8722 KOps/s $\color{#35bf28}+2.25\%$
test_compile_add_one_flat[pytree-compile] 0.6076ms 0.2430ms 4.1158 KOps/s 4.0299 KOps/s $\color{#35bf28}+2.13\%$
test_compile_add_one_flat[pytree-eager] 0.8387ms 0.5390ms 1.8554 KOps/s 1.8132 KOps/s $\color{#35bf28}+2.33\%$
test_compile_add_self_flat[tensordict-eager] 0.3981ms 0.3397ms 2.9435 KOps/s 2.8966 KOps/s $\color{#35bf28}+1.62\%$
test_compile_add_self_flat[tensordict-compile] 0.3841ms 0.3110ms 3.2156 KOps/s 3.0772 KOps/s $\color{#35bf28}+4.50\%$
test_compile_add_self_flat[tensorclass-eager] 0.2181ms 93.5013μs 10.6950 KOps/s 10.7945 KOps/s $\color{#d91a1a}-0.92\%$
test_compile_add_self_flat[tensorclass-compile] 0.3796ms 0.2111ms 4.7369 KOps/s 4.3640 KOps/s $\textbf{\color{#35bf28}+8.54\%}$
test_compile_add_self_flat[pytree-eager] 0.7107ms 0.4426ms 2.2592 KOps/s 2.2733 KOps/s $\color{#d91a1a}-0.62\%$
test_compile_add_self_flat[pytree-compile] 0.5879ms 0.2426ms 4.1220 KOps/s 4.0397 KOps/s $\color{#35bf28}+2.04\%$
test_compile_copy_flat[tensordict-compile] 89.2550μs 25.6025μs 39.0587 KOps/s 36.1744 KOps/s $\textbf{\color{#35bf28}+7.97\%}$
test_compile_copy_flat[tensordict-eager] 74.3940μs 41.4923μs 24.1008 KOps/s 24.3884 KOps/s $\color{#d91a1a}-1.18\%$
test_compile_copy_flat[pytree-compile] 0.1661ms 25.0564μs 39.9099 KOps/s 39.3693 KOps/s $\color{#35bf28}+1.37\%$
test_compile_copy_flat[pytree-eager] 0.3346ms 51.3448μs 19.4762 KOps/s 19.4049 KOps/s $\color{#35bf28}+0.37\%$
test_compile_assign_and_add[tensordict-compile] 2.0886ms 0.2513ms 3.9796 KOps/s 3.6981 KOps/s $\textbf{\color{#35bf28}+7.61\%}$
test_compile_assign_and_add[tensordict-eager] 3.4735ms 3.2719ms 305.6369 Ops/s 299.2608 Ops/s $\color{#35bf28}+2.13\%$
test_compile_assign_and_add[pytree-compile] 1.9306ms 0.1951ms 5.1256 KOps/s 5.0214 KOps/s $\color{#35bf28}+2.07\%$
test_compile_assign_and_add[pytree-eager] 2.9732ms 2.7597ms 362.3578 Ops/s 356.8045 Ops/s $\color{#35bf28}+1.56\%$
test_compile_indexing[tensor-tensordict-compile] 0.2766ms 0.1538ms 6.5027 KOps/s 6.2314 KOps/s $\color{#35bf28}+4.35\%$
test_compile_indexing[tensor-tensordict-eager] 0.3676ms 72.8335μs 13.7299 KOps/s 13.2428 KOps/s $\color{#35bf28}+3.68\%$
test_compile_indexing[tensor-tensorclass-compile] 0.2639ms 0.1336ms 7.4865 KOps/s 7.2598 KOps/s $\color{#35bf28}+3.12\%$
test_compile_indexing[tensor-tensorclass-eager] 0.3203ms 44.4231μs 22.5108 KOps/s 22.1880 KOps/s $\color{#35bf28}+1.46\%$
test_compile_indexing[tensor-pytree-compile] 0.1973ms 0.1344ms 7.4410 KOps/s 7.2831 KOps/s $\color{#35bf28}+2.17\%$
test_compile_indexing[tensor-pytree-eager] 0.2571ms 44.1379μs 22.6563 KOps/s 22.5337 KOps/s $\color{#35bf28}+0.54\%$
test_compile_indexing[slice-tensordict-compile] 0.1755ms 87.5880μs 11.4171 KOps/s 10.7259 KOps/s $\textbf{\color{#35bf28}+6.44\%}$
test_compile_indexing[slice-tensordict-eager] 0.2146ms 27.9799μs 35.7400 KOps/s 35.7185 KOps/s $\color{#35bf28}+0.06\%$
test_compile_indexing[slice-tensorclass-compile] 0.1836ms 70.9300μs 14.0984 KOps/s 13.9781 KOps/s $\color{#35bf28}+0.86\%$
test_compile_indexing[slice-tensorclass-eager] 0.2496ms 22.2758μs 44.8918 KOps/s 45.4314 KOps/s $\color{#d91a1a}-1.19\%$
test_compile_indexing[slice-pytree-compile] 0.1184ms 72.9872μs 13.7010 KOps/s 13.7969 KOps/s $\color{#d91a1a}-0.69\%$
test_compile_indexing[slice-pytree-eager] 0.2803ms 22.1182μs 45.2117 KOps/s 45.0631 KOps/s $\color{#35bf28}+0.33\%$
test_compile_indexing[int-tensordict-compile] 0.1335ms 88.8480μs 11.2552 KOps/s 10.9728 KOps/s $\color{#35bf28}+2.57\%$
test_compile_indexing[int-tensordict-eager] 0.2076ms 27.8986μs 35.8441 KOps/s 36.4385 KOps/s $\color{#d91a1a}-1.63\%$
test_compile_indexing[int-tensorclass-compile] 0.1172ms 72.6014μs 13.7738 KOps/s 13.8081 KOps/s $\color{#d91a1a}-0.25\%$
test_compile_indexing[int-tensorclass-eager] 0.2449ms 22.1688μs 45.1085 KOps/s 45.4874 KOps/s $\color{#d91a1a}-0.83\%$
test_compile_indexing[int-pytree-compile] 0.1128ms 72.0148μs 13.8860 KOps/s 13.5793 KOps/s $\color{#35bf28}+2.26\%$
test_compile_indexing[int-pytree-eager] 0.2484ms 22.1643μs 45.1175 KOps/s 45.1307 KOps/s $\color{#d91a1a}-0.03\%$
test_compile_replace[single-eager] 89.8660μs 48.5707μs 20.5886 KOps/s 20.2443 KOps/s $\color{#35bf28}+1.70\%$
test_compile_replace[single-compile] 0.2544ms 0.1439ms 6.9496 KOps/s 6.7467 KOps/s $\color{#35bf28}+3.01\%$
test_compile_replace[multi-eager] 0.6318ms 0.5727ms 1.7461 KOps/s 1.6716 KOps/s $\color{#35bf28}+4.46\%$
test_compile_replace[multi-compile] 0.2230ms 0.1571ms 6.3639 KOps/s 6.1893 KOps/s $\color{#35bf28}+2.82\%$
test_compile_tc_getattr_20[eager] 0.2298ms 0.1752ms 5.7073 KOps/s 5.6488 KOps/s $\color{#35bf28}+1.04\%$
test_compile_tc_getattr_20[compile] 0.2938ms 0.1753ms 5.7033 KOps/s 5.6249 KOps/s $\color{#35bf28}+1.39\%$
test_compile_clone_shallow[20-eager] 53.7730μs 19.4488μs 51.4169 KOps/s 53.3816 KOps/s $\color{#d91a1a}-3.68\%$
test_compile_clone_shallow[20-compile] 89.2550μs 22.9979μs 43.4822 KOps/s 40.4553 KOps/s $\textbf{\color{#35bf28}+7.48\%}$
test_compile_clone_shallow[40-eager] 64.5230μs 33.9649μs 29.4422 KOps/s 30.2891 KOps/s $\color{#d91a1a}-2.80\%$
test_compile_clone_shallow[40-compile] 81.0640μs 24.7766μs 40.3606 KOps/s 39.9526 KOps/s $\color{#35bf28}+1.02\%$
test_compile_clone_shallow[80-eager] 96.7850μs 62.9143μs 15.8946 KOps/s 16.1935 KOps/s $\color{#d91a1a}-1.85\%$
test_compile_clone_shallow[80-compile] 88.0150μs 29.0522μs 34.4208 KOps/s 34.2314 KOps/s $\color{#35bf28}+0.55\%$
test_compile_update_inplace[eager] 0.1010ms 62.6420μs 15.9637 KOps/s 16.1849 KOps/s $\color{#d91a1a}-1.37\%$
test_compile_update_inplace[compile] 0.5420ms 0.1195ms 8.3691 KOps/s 7.8712 KOps/s $\textbf{\color{#35bf28}+6.33\%}$
test_mod_add[eager] 0.2635ms 0.2254ms 4.4364 KOps/s 4.4299 KOps/s $\color{#35bf28}+0.15\%$
test_mod_add[compile] 0.2992ms 0.1184ms 8.4485 KOps/s 8.2440 KOps/s $\color{#35bf28}+2.48\%$
test_mod_add[compile-overhead] 0.2847ms 0.1940ms 5.1548 KOps/s 5.1015 KOps/s $\color{#35bf28}+1.04\%$
test_mod_wrap[eager] 0.5697ms 0.4656ms 2.1476 KOps/s 2.1321 KOps/s $\color{#35bf28}+0.73\%$
test_mod_wrap[compile] 0.4359ms 0.3578ms 2.7951 KOps/s 2.7516 KOps/s $\color{#35bf28}+1.58\%$
test_mod_wrap[compile-overhead] 5.4327ms 3.1609ms 316.3660 Ops/s 262.0954 Ops/s $\textbf{\color{#35bf28}+20.71\%}$
test_mod_wrap_and_backward[eager] 2.8570ms 1.7228ms 580.4596 Ops/s 596.3511 Ops/s $\color{#d91a1a}-2.66\%$
test_mod_wrap_and_backward[compile] 1.8723ms 1.3396ms 746.4726 Ops/s 748.0067 Ops/s $\color{#d91a1a}-0.21\%$
test_mod_wrap_and_backward[compile-overhead] 1.5634ms 0.9431ms 1.0603 KOps/s 1.0497 KOps/s $\color{#35bf28}+1.00\%$
test_seq_add[eager] 0.5674ms 0.5059ms 1.9767 KOps/s 1.9609 KOps/s $\color{#35bf28}+0.80\%$
test_seq_add[compile] 0.2932ms 0.1313ms 7.6181 KOps/s 7.0169 KOps/s $\textbf{\color{#35bf28}+8.57\%}$
test_seq_add[compile-overhead] 0.3747ms 0.2026ms 4.9350 KOps/s 4.6650 KOps/s $\textbf{\color{#35bf28}+5.79\%}$
test_seq_wrap[eager] 5.2415ms 1.4133ms 707.5465 Ops/s 701.1229 Ops/s $\color{#35bf28}+0.92\%$
test_seq_wrap[compile] 0.4563ms 0.3606ms 2.7733 KOps/s 2.6974 KOps/s $\color{#35bf28}+2.81\%$
test_seq_wrap[compile-overhead] 0.4569ms 0.3196ms 3.1290 KOps/s 3.0579 KOps/s $\color{#35bf28}+2.33\%$
test_func_call_runtime[False-eager] 0.8623ms 0.8003ms 1.2495 KOps/s 1.2304 KOps/s $\color{#35bf28}+1.55\%$
test_func_call_runtime[False-compile] 0.9605ms 0.7601ms 1.3156 KOps/s 1.3021 KOps/s $\color{#35bf28}+1.04\%$
test_func_call_runtime[False-compile-overhead] 0.6752ms 0.5122ms 1.9524 KOps/s 1.9538 KOps/s $\color{#d91a1a}-0.07\%$
test_func_call_runtime[True-eager] 1.1642ms 1.0536ms 949.1079 Ops/s 940.2692 Ops/s $\color{#35bf28}+0.94\%$
test_func_call_runtime[True-compile] 0.8203ms 0.7714ms 1.2963 KOps/s 1.2798 KOps/s $\color{#35bf28}+1.29\%$
test_func_call_runtime[True-compile-overhead] 0.7238ms 0.5239ms 1.9088 KOps/s 1.8897 KOps/s $\color{#35bf28}+1.01\%$
test_func_call_cm_runtime[False-eager] 1.0094ms 0.8187ms 1.2214 KOps/s 1.2427 KOps/s $\color{#d91a1a}-1.72\%$
test_func_call_cm_runtime[False-compile] 0.9012ms 0.7447ms 1.3429 KOps/s 1.3186 KOps/s $\color{#35bf28}+1.84\%$
test_func_call_cm_runtime[False-compile-overhead] 0.6895ms 0.4900ms 2.0408 KOps/s 2.0287 KOps/s $\color{#35bf28}+0.60\%$
test_func_call_cm_runtime[True-eager] 1.3220ms 1.2123ms 824.8938 Ops/s 826.3188 Ops/s $\color{#d91a1a}-0.17\%$
test_func_call_cm_runtime[True-compile] 0.9994ms 0.8486ms 1.1784 KOps/s 1.1596 KOps/s $\color{#35bf28}+1.62\%$
test_func_call_cm_runtime[True-compile-overhead] 1.1361ms 0.8610ms 1.1614 KOps/s 1.1213 KOps/s $\color{#35bf28}+3.58\%$
test_vmap_func_call_cm_runtime[eager] 3.2183ms 2.6597ms 375.9843 Ops/s 374.9020 Ops/s $\color{#35bf28}+0.29\%$
test_vmap_func_call_cm_runtime[compile] 4.1177ms 3.6467ms 274.2196 Ops/s 273.1119 Ops/s $\color{#35bf28}+0.41\%$
test_vmap_func_call_cm_runtime[compile-overhead] 4.1056ms 3.6348ms 275.1150 Ops/s 273.6526 Ops/s $\color{#35bf28}+0.53\%$
test_distributed 0.6154ms 0.1454ms 6.8772 KOps/s 5.7842 KOps/s $\textbf{\color{#35bf28}+18.90\%}$
test_tdmodule 0.2158ms 0.1943ms 5.1474 KOps/s 5.1547 KOps/s $\color{#d91a1a}-0.14\%$
test_tdmodule_dispatch 0.4195ms 0.3763ms 2.6574 KOps/s 2.6655 KOps/s $\color{#d91a1a}-0.31\%$
test_tdseq 47.1130μs 26.7597μs 37.3696 KOps/s 37.6335 KOps/s $\color{#d91a1a}-0.70\%$
test_tdseq_dispatch 0.2713ms 0.2183ms 4.5812 KOps/s 4.5543 KOps/s $\color{#35bf28}+0.59\%$
test_instantiation_functorch 2.1792ms 2.0477ms 488.3417 Ops/s 491.1486 Ops/s $\color{#d91a1a}-0.57\%$
test_exec_functorch 0.2449ms 0.1771ms 5.6478 KOps/s 5.7328 KOps/s $\color{#d91a1a}-1.48\%$
test_exec_functional_call 0.4690ms 0.1543ms 6.4815 KOps/s 6.4456 KOps/s $\color{#35bf28}+0.56\%$
test_exec_td_decorator 0.5102ms 0.2431ms 4.1138 KOps/s 4.0912 KOps/s $\color{#35bf28}+0.55\%$
test_vmap_mlp_speed_decorator[True-True] 1.3370ms 1.1169ms 895.3120 Ops/s 893.8656 Ops/s $\color{#35bf28}+0.16\%$
test_vmap_mlp_speed_decorator[True-False] 1.3126ms 1.1125ms 898.9060 Ops/s 893.6901 Ops/s $\color{#35bf28}+0.58\%$
test_vmap_mlp_speed_decorator[False-True] 1.0219ms 0.8217ms 1.2170 KOps/s 1.2173 KOps/s $\color{#d91a1a}-0.02\%$
test_vmap_mlp_speed_decorator[False-False] 1.0475ms 0.8152ms 1.2266 KOps/s 1.2155 KOps/s $\color{#35bf28}+0.92\%$
test_vmap_transformer_speed_decorator[True-True] 27.2433ms 24.9861ms 40.0223 Ops/s 39.8556 Ops/s $\color{#35bf28}+0.42\%$
test_vmap_transformer_speed_decorator[True-False] 25.0111ms 24.7921ms 40.3354 Ops/s 39.8986 Ops/s $\color{#35bf28}+1.09\%$
test_vmap_transformer_speed_decorator[False-True] 24.5888ms 24.4264ms 40.9393 Ops/s 40.5428 Ops/s $\color{#35bf28}+0.98\%$
test_vmap_transformer_speed_decorator[False-False] 24.6696ms 24.3652ms 41.0422 Ops/s 40.8814 Ops/s $\color{#35bf28}+0.39\%$
test_to_module_speed[True] 1.7192ms 1.6490ms 606.4273 Ops/s 609.2423 Ops/s $\color{#d91a1a}-0.46\%$
test_to_module_speed[False] 1.7505ms 1.6370ms 610.8887 Ops/s 621.0415 Ops/s $\color{#d91a1a}-1.63\%$
test_to_module_plain_tensor_speed[None] 2.5633ms 1.7472ms 572.3352 Ops/s 575.3829 Ops/s $\color{#d91a1a}-0.53\%$
test_to_module_plain_tensor_speed[False] 2.2752ms 1.5751ms 634.8824 Ops/s 633.1138 Ops/s $\color{#35bf28}+0.28\%$
test_to_module_plain_tensor_speed[True] 3.4484ms 3.3800ms 295.8602 Ops/s 293.7126 Ops/s $\color{#35bf28}+0.73\%$
test_tc_init 0.2018ms 43.1975μs 23.1495 KOps/s 22.6111 KOps/s $\color{#35bf28}+2.38\%$
test_tc_init_tensor_only 45.8530μs 9.6236μs 103.9111 KOps/s 109.0441 KOps/s $\color{#d91a1a}-4.71\%$
test_tc_init_nested 0.1369ms 86.9683μs 11.4984 KOps/s 11.4131 KOps/s $\color{#35bf28}+0.75\%$
test_tc_init_many_fields 88.4850μs 17.1832μs 58.1964 KOps/s 57.5399 KOps/s $\color{#35bf28}+1.14\%$
test_tc_first_layer_tensor 46.4220μs 1.7787μs 562.2140 KOps/s 549.6608 KOps/s $\color{#35bf28}+2.28\%$
test_tc_first_layer_tensor_only 3.7482μs 0.4048μs 2.4704 MOps/s 2.4089 MOps/s $\color{#35bf28}+2.55\%$
test_tc_first_layer_tensor_set 31.5020μs 4.1431μs 241.3680 KOps/s 232.0703 KOps/s $\color{#35bf28}+4.01\%$
test_tc_first_layer_tensor_only_set 32.8020μs 3.4636μs 288.7185 KOps/s 285.8458 KOps/s $\color{#35bf28}+1.00\%$
test_tc_first_layer_nontensor 34.5320μs 6.0434μs 165.4707 KOps/s 164.1526 KOps/s $\color{#35bf28}+0.80\%$
test_tc_second_layer_tensor 43.5320μs 4.2655μs 234.4374 KOps/s 229.5285 KOps/s $\color{#35bf28}+2.14\%$
test_tc_second_layer_nontensor 34.8820μs 8.5396μs 117.1022 KOps/s 115.3553 KOps/s $\color{#35bf28}+1.51\%$
test_unbind 0.2908s 14.1887ms 70.4786 Ops/s 63.8477 Ops/s $\textbf{\color{#35bf28}+10.39\%}$
test_full_like 4.9632ms 4.6894ms 213.2484 Ops/s 225.2860 Ops/s $\textbf{\color{#d91a1a}-5.34\%}$
test_zeros_like 4.9186ms 4.6882ms 213.3021 Ops/s 227.0240 Ops/s $\textbf{\color{#d91a1a}-6.04\%}$
test_ones_like 4.9381ms 4.7021ms 212.6729 Ops/s 225.6202 Ops/s $\textbf{\color{#d91a1a}-5.74\%}$
test_clone 7.5781ms 7.0980ms 140.8854 Ops/s 148.2774 Ops/s $\color{#d91a1a}-4.99\%$
test_squeeze 0.1660ms 14.2555μs 70.1482 KOps/s 70.0187 KOps/s $\color{#35bf28}+0.18\%$
test_unsqueeze 0.2944ms 0.1103ms 9.0646 KOps/s 8.7042 KOps/s $\color{#35bf28}+4.14\%$
test_split 0.2671ms 0.1888ms 5.2966 KOps/s 5.2070 KOps/s $\color{#35bf28}+1.72\%$
test_permute 0.2665ms 0.1938ms 5.1589 KOps/s 4.9141 KOps/s $\color{#35bf28}+4.98\%$
test_stack 29.3946ms 28.7155ms 34.8245 Ops/s 52.6262 Ops/s $\textbf{\color{#d91a1a}-33.83\%}$
test_cat 29.2312ms 28.5764ms 34.9938 Ops/s 52.8705 Ops/s $\textbf{\color{#d91a1a}-33.81\%}$
test_sequential_tensordict 0.9802ms 0.8909ms 1.1224 KOps/s 1.7648 KOps/s $\textbf{\color{#d91a1a}-36.40\%}$
test_sequential_graph_module 0.5202ms 0.4754ms 2.1035 KOps/s 8.9184 KOps/s $\textbf{\color{#d91a1a}-76.41\%}$
test_nested_tensordict 1.3733ms 1.3077ms 764.6951 Ops/s 1.2308 KOps/s $\textbf{\color{#d91a1a}-37.87\%}$
test_nested_graph_module 0.7326ms 0.5932ms 1.6858 KOps/s 7.9667 KOps/s $\textbf{\color{#d91a1a}-78.84\%}$

@github-actions

github-actions Bot commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

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

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

Expand to view detailed results
Name Max Mean Ops Ops on Repo HEAD Change
test_collector_preallocated_write[stack_out-cpu-32-2] 0.2350ms 0.1642ms 6.0916 KOps/s 6.1154 KOps/s $\color{#d91a1a}-0.39\%$
test_collector_preallocated_write[stack_out-cpu-32-8] 0.3636ms 0.2972ms 3.3644 KOps/s 3.4029 KOps/s $\color{#d91a1a}-1.13\%$
test_collector_preallocated_write[stack_out-cpu-32-32] 0.8866ms 0.7854ms 1.2733 KOps/s 1.2722 KOps/s $\color{#35bf28}+0.09\%$
test_collector_preallocated_write[stack_out-cpu-4096-2] 0.4207ms 0.3460ms 2.8898 KOps/s 2.9197 KOps/s $\color{#d91a1a}-1.02\%$
test_collector_preallocated_write[stack_out-cpu-4096-8] 1.3180ms 1.1538ms 866.6889 Ops/s 898.7121 Ops/s $\color{#d91a1a}-3.56\%$
test_collector_preallocated_write[stack_out-cpu-4096-32] 8.0481ms 7.4763ms 133.7569 Ops/s 133.2423 Ops/s $\color{#35bf28}+0.39\%$
test_collector_preallocated_write[stack_out-cuda-32-2] 0.3023ms 0.2514ms 3.9781 KOps/s 4.0202 KOps/s $\color{#d91a1a}-1.05\%$
test_collector_preallocated_write[stack_out-cuda-32-8] 0.5386ms 0.3731ms 2.6800 KOps/s 2.6270 KOps/s $\color{#35bf28}+2.02\%$
test_collector_preallocated_write[stack_out-cuda-32-32] 0.9387ms 0.8345ms 1.1983 KOps/s 1.1959 KOps/s $\color{#35bf28}+0.20\%$
test_collector_preallocated_write[stack_out-cuda-4096-2] 0.3184ms 0.2549ms 3.9229 KOps/s 4.0119 KOps/s $\color{#d91a1a}-2.22\%$
test_collector_preallocated_write[stack_out-cuda-4096-8] 0.5273ms 0.3705ms 2.6991 KOps/s 2.6799 KOps/s $\color{#35bf28}+0.71\%$
test_collector_preallocated_write[stack_out-cuda-4096-32] 1.0007ms 0.8921ms 1.1210 KOps/s 1.1126 KOps/s $\color{#35bf28}+0.76\%$
test_collector_preallocated_write[set_at_loop-cpu-32-2] 0.2506ms 0.2086ms 4.7933 KOps/s 4.7485 KOps/s $\color{#35bf28}+0.94\%$
test_collector_preallocated_write[set_at_loop-cpu-32-8] 0.8685ms 0.8035ms 1.2445 KOps/s 1.2465 KOps/s $\color{#d91a1a}-0.16\%$
test_collector_preallocated_write[set_at_loop-cpu-32-32] 3.2860ms 3.1859ms 313.8855 Ops/s 310.3519 Ops/s $\color{#35bf28}+1.14\%$
test_collector_preallocated_write[set_at_loop-cpu-4096-2] 0.4482ms 0.3604ms 2.7745 KOps/s 2.6909 KOps/s $\color{#35bf28}+3.11\%$
test_collector_preallocated_write[set_at_loop-cpu-4096-8] 1.9634ms 1.8161ms 550.6241 Ops/s 601.1276 Ops/s $\textbf{\color{#d91a1a}-8.40\%}$
test_collector_preallocated_write[set_at_loop-cpu-4096-32] 10.9119ms 10.5392ms 94.8837 Ops/s 97.7415 Ops/s $\color{#d91a1a}-2.92\%$
test_collector_preallocated_write[set_at_loop-cuda-32-2] 0.4556ms 0.4093ms 2.4431 KOps/s 2.5903 KOps/s $\textbf{\color{#d91a1a}-5.69\%}$
test_collector_preallocated_write[set_at_loop-cuda-32-8] 1.8980ms 1.5252ms 655.6536 Ops/s 677.3853 Ops/s $\color{#d91a1a}-3.21\%$
test_collector_preallocated_write[set_at_loop-cuda-32-32] 6.2126ms 5.9536ms 167.9645 Ops/s 173.5079 Ops/s $\color{#d91a1a}-3.19\%$
test_collector_preallocated_write[set_at_loop-cuda-4096-2] 0.5202ms 0.3918ms 2.5522 KOps/s 2.4964 KOps/s $\color{#35bf28}+2.24\%$
test_collector_preallocated_write[set_at_loop-cuda-4096-8] 1.6688ms 1.4427ms 693.1480 Ops/s 685.5524 Ops/s $\color{#35bf28}+1.11\%$
test_collector_preallocated_write[set_at_loop-cuda-4096-32] 5.8553ms 5.6907ms 175.7259 Ops/s 174.7786 Ops/s $\color{#35bf28}+0.54\%$
test_collector_preallocated_write[copy_at-cpu-32-2] 0.2217ms 0.1683ms 5.9406 KOps/s 5.8096 KOps/s $\color{#35bf28}+2.25\%$
test_collector_preallocated_write[copy_at-cpu-32-8] 0.7233ms 0.6583ms 1.5191 KOps/s 1.5146 KOps/s $\color{#35bf28}+0.30\%$
test_collector_preallocated_write[copy_at-cpu-32-32] 2.6957ms 2.6021ms 384.3066 Ops/s 375.8611 Ops/s $\color{#35bf28}+2.25\%$
test_collector_preallocated_write[copy_at-cpu-4096-2] 0.3655ms 0.3126ms 3.1990 KOps/s 3.0499 KOps/s $\color{#35bf28}+4.89\%$
test_collector_preallocated_write[copy_at-cpu-4096-8] 1.7449ms 1.4754ms 677.7792 Ops/s 692.0153 Ops/s $\color{#d91a1a}-2.06\%$
test_collector_preallocated_write[copy_at-cpu-4096-32] 9.8188ms 9.5534ms 104.6745 Ops/s 104.7828 Ops/s $\color{#d91a1a}-0.10\%$
test_collector_preallocated_write[copy_at-cuda-32-2] 0.3906ms 0.3212ms 3.1135 KOps/s 3.1195 KOps/s $\color{#d91a1a}-0.19\%$
test_collector_preallocated_write[copy_at-cuda-32-8] 1.3130ms 1.1799ms 847.4944 Ops/s 841.4899 Ops/s $\color{#35bf28}+0.71\%$
test_collector_preallocated_write[copy_at-cuda-32-32] 4.9492ms 4.6330ms 215.8426 Ops/s 214.8744 Ops/s $\color{#35bf28}+0.45\%$
test_collector_preallocated_write[copy_at-cuda-4096-2] 0.3718ms 0.3195ms 3.1303 KOps/s 3.0829 KOps/s $\color{#35bf28}+1.54\%$
test_collector_preallocated_write[copy_at-cuda-4096-8] 1.2322ms 1.1880ms 841.7288 Ops/s 834.6709 Ops/s $\color{#35bf28}+0.85\%$
test_collector_preallocated_write[copy_at-cuda-4096-32] 4.8315ms 4.6433ms 215.3647 Ops/s 212.9216 Ops/s $\color{#35bf28}+1.15\%$
test_collector_preallocated_write[manual_leaf_copy-cpu-32-2] 0.1530ms 0.1223ms 8.1799 KOps/s 8.4503 KOps/s $\color{#d91a1a}-3.20\%$
test_collector_preallocated_write[manual_leaf_copy-cpu-32-8] 0.5477ms 0.4855ms 2.0595 KOps/s 2.1668 KOps/s $\color{#d91a1a}-4.95\%$
test_collector_preallocated_write[manual_leaf_copy-cpu-32-32] 1.9825ms 1.9162ms 521.8528 Ops/s 541.4406 Ops/s $\color{#d91a1a}-3.62\%$
test_collector_preallocated_write[manual_leaf_copy-cpu-4096-2] 0.4119ms 0.2644ms 3.7815 KOps/s 3.9331 KOps/s $\color{#d91a1a}-3.85\%$
test_collector_preallocated_write[manual_leaf_copy-cpu-4096-8] 1.8495ms 1.2961ms 771.5410 Ops/s 794.0946 Ops/s $\color{#d91a1a}-2.84\%$
test_collector_preallocated_write[manual_leaf_copy-cpu-4096-32] 8.9801ms 8.6287ms 115.8917 Ops/s 117.3250 Ops/s $\color{#d91a1a}-1.22\%$
test_collector_preallocated_write[manual_leaf_copy-cuda-32-2] 0.3377ms 0.2717ms 3.6808 KOps/s 3.7187 KOps/s $\color{#d91a1a}-1.02\%$
test_collector_preallocated_write[manual_leaf_copy-cuda-32-8] 1.1003ms 1.0181ms 982.2652 Ops/s 999.3039 Ops/s $\color{#d91a1a}-1.71\%$
test_collector_preallocated_write[manual_leaf_copy-cuda-32-32] 4.2506ms 4.1181ms 242.8299 Ops/s 255.3261 Ops/s $\color{#d91a1a}-4.89\%$
test_collector_preallocated_write[manual_leaf_copy-cuda-4096-2] 0.3504ms 0.2907ms 3.4395 KOps/s 3.7078 KOps/s $\textbf{\color{#d91a1a}-7.24\%}$
test_collector_preallocated_write[manual_leaf_copy-cuda-4096-8] 1.1249ms 1.0675ms 936.7807 Ops/s 995.2400 Ops/s $\textbf{\color{#d91a1a}-5.87\%}$
test_collector_preallocated_write[manual_leaf_copy-cuda-4096-32] 4.2783ms 4.1993ms 238.1354 Ops/s 255.7736 Ops/s $\textbf{\color{#d91a1a}-6.90\%}$
test_wide_nested_preallocated_write[stack_out-cpu-128-128] 16.5895ms 16.4495ms 60.7923 Ops/s 60.3982 Ops/s $\color{#35bf28}+0.65\%$
test_wide_nested_preallocated_write[stack_out-cpu-128-256] 33.3697ms 33.1545ms 30.1618 Ops/s 29.9511 Ops/s $\color{#35bf28}+0.70\%$
test_wide_nested_preallocated_write[stack_out-cpu-4096-128] 86.3080ms 85.5208ms 11.6931 Ops/s 11.8037 Ops/s $\color{#d91a1a}-0.94\%$
test_wide_nested_preallocated_write[stack_out-cpu-4096-256] 0.2026s 0.2018s 4.9557 Ops/s 4.9839 Ops/s $\color{#d91a1a}-0.57\%$
test_wide_nested_preallocated_write[stack_out-cuda-128-128] 14.0952ms 13.8995ms 71.9452 Ops/s 72.2549 Ops/s $\color{#d91a1a}-0.43\%$
test_wide_nested_preallocated_write[stack_out-cuda-128-256] 27.5817ms 27.3107ms 36.6157 Ops/s 37.0005 Ops/s $\color{#d91a1a}-1.04\%$
test_wide_nested_preallocated_write[stack_out-cuda-4096-128] 14.2660ms 14.1010ms 70.9172 Ops/s 71.3257 Ops/s $\color{#d91a1a}-0.57\%$
test_wide_nested_preallocated_write[stack_out-cuda-4096-256] 27.7136ms 27.5634ms 36.2800 Ops/s 36.4302 Ops/s $\color{#d91a1a}-0.41\%$
test_wide_nested_preallocated_write[set_at_loop-cpu-128-128] 53.9674ms 52.9568ms 18.8833 Ops/s 19.3593 Ops/s $\color{#d91a1a}-2.46\%$
test_wide_nested_preallocated_write[set_at_loop-cpu-128-256] 0.1077s 0.1025s 9.7602 Ops/s 9.4301 Ops/s $\color{#35bf28}+3.50\%$
test_wide_nested_preallocated_write[set_at_loop-cpu-4096-128] 0.1470s 0.1457s 6.8629 Ops/s 6.8813 Ops/s $\color{#d91a1a}-0.27\%$
test_wide_nested_preallocated_write[set_at_loop-cpu-4096-256] 0.3199s 0.3191s 3.1341 Ops/s 3.1266 Ops/s $\color{#35bf28}+0.24\%$
test_wide_nested_preallocated_write[set_at_loop-cuda-128-128] 78.0203ms 77.7052ms 12.8692 Ops/s 12.8562 Ops/s $\color{#35bf28}+0.10\%$
test_wide_nested_preallocated_write[set_at_loop-cuda-128-256] 0.1559s 0.1537s 6.5055 Ops/s 6.3912 Ops/s $\color{#35bf28}+1.79\%$
test_wide_nested_preallocated_write[set_at_loop-cuda-4096-128] 89.6635ms 78.3796ms 12.7584 Ops/s 12.7257 Ops/s $\color{#35bf28}+0.26\%$
test_wide_nested_preallocated_write[set_at_loop-cuda-4096-256] 0.1575s 0.1569s 6.3738 Ops/s 6.3718 Ops/s $\color{#35bf28}+0.03\%$
test_wide_nested_preallocated_write[copy_at-cpu-128-128] 30.2678ms 30.0530ms 33.2746 Ops/s 33.2721 Ops/s $+0.01\%$
test_wide_nested_preallocated_write[copy_at-cpu-128-256] 61.0743ms 60.7845ms 16.4516 Ops/s 16.4652 Ops/s $\color{#d91a1a}-0.08\%$
test_wide_nested_preallocated_write[copy_at-cpu-4096-128] 0.1230s 0.1217s 8.2182 Ops/s 8.1915 Ops/s $\color{#35bf28}+0.33\%$
test_wide_nested_preallocated_write[copy_at-cpu-4096-256] 0.2770s 0.2763s 3.6196 Ops/s 3.7660 Ops/s $\color{#d91a1a}-3.89\%$
test_wide_nested_preallocated_write[copy_at-cuda-128-128] 43.2823ms 42.9192ms 23.2996 Ops/s 23.3703 Ops/s $\color{#d91a1a}-0.30\%$
test_wide_nested_preallocated_write[copy_at-cuda-128-256] 86.3068ms 86.1829ms 11.6032 Ops/s 11.7182 Ops/s $\color{#d91a1a}-0.98\%$
test_wide_nested_preallocated_write[copy_at-cuda-4096-128] 43.5599ms 43.4338ms 23.0235 Ops/s 23.1852 Ops/s $\color{#d91a1a}-0.70\%$
test_wide_nested_preallocated_write[copy_at-cuda-4096-256] 87.3842ms 87.0590ms 11.4865 Ops/s 11.6086 Ops/s $\color{#d91a1a}-1.05\%$
test_wide_nested_preallocated_write[manual_leaf_copy-cpu-128-128] 20.3498ms 20.1597ms 49.6038 Ops/s 50.3507 Ops/s $\color{#d91a1a}-1.48\%$
test_wide_nested_preallocated_write[manual_leaf_copy-cpu-128-256] 41.4025ms 41.2263ms 24.2564 Ops/s 24.5143 Ops/s $\color{#d91a1a}-1.05\%$
test_wide_nested_preallocated_write[manual_leaf_copy-cpu-4096-128] 0.1090s 0.1083s 9.2321 Ops/s 9.1136 Ops/s $\color{#35bf28}+1.30\%$
test_wide_nested_preallocated_write[manual_leaf_copy-cpu-4096-256] 0.2510s 0.2485s 4.0240 Ops/s 4.1070 Ops/s $\color{#d91a1a}-2.02\%$
test_wide_nested_preallocated_write[manual_leaf_copy-cuda-128-128] 38.6624ms 38.2017ms 26.1768 Ops/s 27.8215 Ops/s $\textbf{\color{#d91a1a}-5.91\%}$
test_wide_nested_preallocated_write[manual_leaf_copy-cuda-128-256] 77.0222ms 76.5563ms 13.0623 Ops/s 13.9593 Ops/s $\textbf{\color{#d91a1a}-6.43\%}$
test_wide_nested_preallocated_write[manual_leaf_copy-cuda-4096-128] 38.7576ms 38.3157ms 26.0990 Ops/s 27.9837 Ops/s $\textbf{\color{#d91a1a}-6.74\%}$
test_wide_nested_preallocated_write[manual_leaf_copy-cuda-4096-256] 77.0847ms 76.5192ms 13.0686 Ops/s 14.0017 Ops/s $\textbf{\color{#d91a1a}-6.66\%}$
test_plain_set_nested 39.1710μs 15.0901μs 66.2685 KOps/s 66.6331 KOps/s $\color{#d91a1a}-0.55\%$
test_plain_set_stack_nested 46.7510μs 14.5292μs 68.8270 KOps/s 68.2388 KOps/s $\color{#35bf28}+0.86\%$
test_plain_set_nested_inplace 44.5600μs 16.2473μs 61.5487 KOps/s 60.8923 KOps/s $\color{#35bf28}+1.08\%$
test_plain_set_stack_nested_inplace 47.3110μs 16.0859μs 62.1661 KOps/s 62.0885 KOps/s $\color{#35bf28}+0.12\%$
test_items 40.6910μs 5.8648μs 170.5085 KOps/s 166.5014 KOps/s $\color{#35bf28}+2.41\%$
test_items_nested 0.5186ms 0.4564ms 2.1910 KOps/s 2.1928 KOps/s $\color{#d91a1a}-0.08\%$
test_items_nested_locked 0.5360ms 0.4654ms 2.1485 KOps/s 2.1598 KOps/s $\color{#d91a1a}-0.52\%$
test_items_nested_leaf 0.1392ms 98.9909μs 10.1019 KOps/s 10.2201 KOps/s $\color{#d91a1a}-1.16\%$
test_items_stack_nested 0.4938ms 0.4560ms 2.1932 KOps/s 2.1962 KOps/s $\color{#d91a1a}-0.14\%$
test_items_stack_nested_leaf 0.1344ms 97.6291μs 10.2429 KOps/s 10.3182 KOps/s $\color{#d91a1a}-0.73\%$
test_items_stack_nested_locked 0.5611ms 0.4600ms 2.1740 KOps/s 2.1842 KOps/s $\color{#d91a1a}-0.47\%$
test_keys 33.2200μs 4.2154μs 237.2238 KOps/s 220.8618 KOps/s $\textbf{\color{#35bf28}+7.41\%}$
test_keys_nested 0.1617ms 0.1302ms 7.6799 KOps/s 7.8733 KOps/s $\color{#d91a1a}-2.46\%$
test_keys_nested_locked 2.0939ms 0.1389ms 7.1988 KOps/s 7.3639 KOps/s $\color{#d91a1a}-2.24\%$
test_keys_nested_leaf 0.1837ms 0.1208ms 8.2802 KOps/s 8.4756 KOps/s $\color{#d91a1a}-2.30\%$
test_keys_stack_nested 0.1740ms 0.1293ms 7.7317 KOps/s 7.8754 KOps/s $\color{#d91a1a}-1.82\%$
test_keys_stack_nested_leaf 0.1663ms 0.1197ms 8.3522 KOps/s 8.4655 KOps/s $\color{#d91a1a}-1.34\%$
test_keys_stack_nested_locked 0.1881ms 0.1384ms 7.2239 KOps/s 7.3610 KOps/s $\color{#d91a1a}-1.86\%$
test_values 5.8702μs 1.0104μs 989.7411 KOps/s 996.8153 KOps/s $\color{#d91a1a}-0.71\%$
test_values_nested 82.3520μs 53.4421μs 18.7118 KOps/s 19.0136 KOps/s $\color{#d91a1a}-1.59\%$
test_values_nested_locked 88.1320μs 56.2256μs 17.7855 KOps/s 17.9368 KOps/s $\color{#d91a1a}-0.84\%$
test_values_nested_leaf 0.1006ms 60.6554μs 16.4866 KOps/s 16.5651 KOps/s $\color{#d91a1a}-0.47\%$
test_values_stack_nested 94.6110μs 53.4804μs 18.6984 KOps/s 19.1663 KOps/s $\color{#d91a1a}-2.44\%$
test_values_stack_nested_leaf 98.3110μs 60.7568μs 16.4591 KOps/s 16.7756 KOps/s $\color{#d91a1a}-1.89\%$
test_values_stack_nested_locked 0.1046ms 55.7724μs 17.9300 KOps/s 17.9313 KOps/s $-0.01\%$
test_membership 5.1735μs 0.8443μs 1.1844 MOps/s 1.1843 MOps/s $+0.01\%$
test_membership_nested 22.7200μs 2.9572μs 338.1546 KOps/s 329.5594 KOps/s $\color{#35bf28}+2.61\%$
test_membership_nested_leaf 15.3650μs 2.8428μs 351.7598 KOps/s 336.2010 KOps/s $\color{#35bf28}+4.63\%$
test_membership_stacked_nested 35.5300μs 2.9210μs 342.3507 KOps/s 349.0352 KOps/s $\color{#d91a1a}-1.92\%$
test_membership_stacked_nested_leaf 24.8910μs 2.8517μs 350.6718 KOps/s 348.6510 KOps/s $\color{#35bf28}+0.58\%$
test_membership_nested_last 34.1700μs 4.4547μs 224.4797 KOps/s 224.8094 KOps/s $\color{#d91a1a}-0.15\%$
test_membership_nested_leaf_last 30.8610μs 4.4792μs 223.2534 KOps/s 224.3977 KOps/s $\color{#d91a1a}-0.51\%$
test_membership_stacked_nested_last 29.1610μs 4.3117μs 231.9246 KOps/s 235.0870 KOps/s $\color{#d91a1a}-1.35\%$
test_membership_stacked_nested_leaf_last 34.4310μs 4.2948μs 232.8373 KOps/s 235.1069 KOps/s $\color{#d91a1a}-0.97\%$
test_nested_getleaf 53.3210μs 21.2945μs 46.9604 KOps/s 47.6966 KOps/s $\color{#d91a1a}-1.54\%$
test_nested_get 46.3610μs 20.1328μs 49.6701 KOps/s 51.2189 KOps/s $\color{#d91a1a}-3.02\%$
test_stacked_getleaf 53.1120μs 21.0762μs 47.4469 KOps/s 48.1771 KOps/s $\color{#d91a1a}-1.52\%$
test_stacked_get 50.7010μs 20.0041μs 49.9898 KOps/s 50.5415 KOps/s $\color{#d91a1a}-1.09\%$
test_nested_getitemleaf 49.7810μs 22.1435μs 45.1600 KOps/s 45.4703 KOps/s $\color{#d91a1a}-0.68\%$
test_nested_getitem 49.9910μs 20.9830μs 47.6575 KOps/s 48.0268 KOps/s $\color{#d91a1a}-0.77\%$
test_stacked_getitemleaf 61.7410μs 21.7188μs 46.0431 KOps/s 46.4889 KOps/s $\color{#d91a1a}-0.96\%$
test_stacked_getitem 55.5010μs 20.5659μs 48.6241 KOps/s 48.5263 KOps/s $\color{#35bf28}+0.20\%$
test_lock_nested 0.6207ms 0.4991ms 2.0038 KOps/s 1.9955 KOps/s $\color{#35bf28}+0.42\%$
test_lock_stack_nested 0.6078ms 0.5041ms 1.9836 KOps/s 1.9744 KOps/s $\color{#35bf28}+0.47\%$
test_unlock_nested 0.5341ms 0.3941ms 2.5376 KOps/s 2.5249 KOps/s $\color{#35bf28}+0.51\%$
test_unlock_stack_nested 0.5423ms 0.3969ms 2.5194 KOps/s 2.5037 KOps/s $\color{#35bf28}+0.62\%$
test_flatten_speed 0.1551ms 0.1231ms 8.1218 KOps/s 8.0968 KOps/s $\color{#35bf28}+0.31\%$
test_unflatten_speed 0.6446ms 0.5601ms 1.7854 KOps/s 1.7675 KOps/s $\color{#35bf28}+1.01\%$
test_common_ops 0.8389ms 0.7029ms 1.4227 KOps/s 1.4326 KOps/s $\color{#d91a1a}-0.69\%$
test_creation 0.1330ms 3.1884μs 313.6372 KOps/s 310.4503 KOps/s $\color{#35bf28}+1.03\%$
test_creation_empty 32.0010μs 7.0692μs 141.4592 KOps/s 140.3862 KOps/s $\color{#35bf28}+0.76\%$
test_creation_nested_1 38.3100μs 11.6107μs 86.1274 KOps/s 85.9892 KOps/s $\color{#35bf28}+0.16\%$
test_creation_nested_2 41.9510μs 13.6306μs 73.3645 KOps/s 73.3765 KOps/s $\color{#d91a1a}-0.02\%$
test_creation_many_keys[10] 50.4500μs 21.3383μs 46.8642 KOps/s 46.6951 KOps/s $\color{#35bf28}+0.36\%$
test_creation_many_keys[50] 0.1585ms 91.3855μs 10.9427 KOps/s 10.9255 KOps/s $\color{#35bf28}+0.16\%$
test_creation_many_keys[100] 0.2382ms 0.1785ms 5.6031 KOps/s 5.5444 KOps/s $\color{#35bf28}+1.06\%$
test_creation_nested_many_keys[10] 73.6110μs 45.8583μs 21.8063 KOps/s 21.7090 KOps/s $\color{#35bf28}+0.45\%$
test_creation_nested_many_keys[50] 0.2471ms 0.1879ms 5.3218 KOps/s 5.3488 KOps/s $\color{#d91a1a}-0.50\%$
test_clone 32.9710μs 12.8824μs 77.6251 KOps/s 78.5734 KOps/s $\color{#d91a1a}-1.21\%$
test_getitem[int] 1.4748ms 15.3004μs 65.3579 KOps/s 65.0959 KOps/s $\color{#35bf28}+0.40\%$
test_getitem[slice_int] 0.1398ms 24.6504μs 40.5674 KOps/s 40.0636 KOps/s $\color{#35bf28}+1.26\%$
test_getitem[range] 0.1730ms 61.2451μs 16.3278 KOps/s 16.0165 KOps/s $\color{#35bf28}+1.94\%$
test_getitem[tuple] 0.1571ms 24.0765μs 41.5342 KOps/s 40.8631 KOps/s $\color{#35bf28}+1.64\%$
test_getitem[list] 0.1851ms 57.1293μs 17.5042 KOps/s 17.5394 KOps/s $\color{#d91a1a}-0.20\%$
test_setitem_dim[int] 57.6910μs 25.8353μs 38.7067 KOps/s 38.9035 KOps/s $\color{#d91a1a}-0.51\%$
test_setitem_dim[slice_int] 66.8510μs 42.5318μs 23.5118 KOps/s 23.1005 KOps/s $\color{#35bf28}+1.78\%$
test_setitem_dim[range] 0.1340ms 93.9568μs 10.6432 KOps/s 10.4816 KOps/s $\color{#35bf28}+1.54\%$
test_setitem_dim[tuple] 75.4120μs 39.2244μs 25.4944 KOps/s 25.8079 KOps/s $\color{#d91a1a}-1.21\%$
test_setitem 54.5410μs 17.2091μs 58.1086 KOps/s 59.0398 KOps/s $\color{#d91a1a}-1.58\%$
test_set 51.2310μs 16.6608μs 60.0210 KOps/s 60.9909 KOps/s $\color{#d91a1a}-1.59\%$
test_set_shared 0.4953ms 0.2093ms 4.7772 KOps/s 4.8244 KOps/s $\color{#d91a1a}-0.98\%$
test_update 0.2870ms 22.8539μs 43.7562 KOps/s 48.2977 KOps/s $\textbf{\color{#d91a1a}-9.40\%}$
test_update_nested 0.3494ms 34.9046μs 28.6495 KOps/s 30.4157 KOps/s $\textbf{\color{#d91a1a}-5.81\%}$
test_update__nested 0.5402ms 33.7469μs 29.6324 KOps/s 31.1210 KOps/s $\color{#d91a1a}-4.78\%$
test_set_nested 0.3474ms 19.0055μs 52.6164 KOps/s 55.3132 KOps/s $\color{#d91a1a}-4.88\%$
test_set_nested_new 59.8710μs 24.0730μs 41.5403 KOps/s 44.0843 KOps/s $\textbf{\color{#d91a1a}-5.77\%}$
test_select 0.3534ms 40.0288μs 24.9820 KOps/s 25.4003 KOps/s $\color{#d91a1a}-1.65\%$
test_select_nested 0.1142ms 74.5548μs 13.4130 KOps/s 13.4320 KOps/s $\color{#d91a1a}-0.14\%$
test_exclude_nested 0.1205ms 91.1285μs 10.9735 KOps/s 11.0223 KOps/s $\color{#d91a1a}-0.44\%$
test_empty[True] 0.4844ms 0.3942ms 2.5367 KOps/s 2.5337 KOps/s $\color{#35bf28}+0.12\%$
test_empty[False] 7.3800μs 1.4020μs 713.2479 KOps/s 706.9812 KOps/s $\color{#35bf28}+0.89\%$
test_to 0.1035ms 69.4269μs 14.4036 KOps/s 14.1924 KOps/s $\color{#35bf28}+1.49\%$
test_to_nonblocking 0.1127ms 70.0363μs 14.2783 KOps/s 14.3947 KOps/s $\color{#d91a1a}-0.81\%$
test_unbind_speed 0.3754ms 0.3356ms 2.9800 KOps/s 2.9559 KOps/s $\color{#35bf28}+0.82\%$
test_unbind_speed_stack0 0.4038ms 0.3322ms 3.0103 KOps/s 3.0348 KOps/s $\color{#d91a1a}-0.81\%$
test_unbind_speed_stack1 0.1173s 0.8547ms 1.1701 KOps/s 1.1545 KOps/s $\color{#35bf28}+1.35\%$
test_split 0.1167s 1.4525ms 688.4616 Ops/s 639.6485 Ops/s $\textbf{\color{#35bf28}+7.63\%}$
test_chunk 1.3154ms 1.2380ms 807.7563 Ops/s 814.7997 Ops/s $\color{#d91a1a}-0.86\%$
test_to_cpu_blocking 20.2088ms 19.7949ms 50.5181 Ops/s 50.1705 Ops/s $\color{#35bf28}+0.69\%$
test_to_cpu_global_sync 11.5633ms 11.4452ms 87.3732 Ops/s 86.7484 Ops/s $\color{#35bf28}+0.72\%$
test_to_cpu_event_sync 0.1290s 13.9204ms 71.8372 Ops/s 70.9674 Ops/s $\color{#35bf28}+1.23\%$
test_to_cpu_default 12.7551ms 12.4657ms 80.2203 Ops/s 79.8138 Ops/s $\color{#35bf28}+0.51\%$
test_consolidate[False-None] 4.2312ms 4.1441ms 241.3042 Ops/s 241.3373 Ops/s $\color{#d91a1a}-0.01\%$
test_consolidate[default-None] 3.2210ms 2.2252ms 449.4031 Ops/s 432.6326 Ops/s $\color{#35bf28}+3.88\%$
test_consolidate[reduce-overhead-None] 3.0268ms 2.1269ms 470.1681 Ops/s 447.5713 Ops/s $\textbf{\color{#35bf28}+5.05\%}$
test_consolidate_njt[False-None] 5.5793ms 5.1547ms 193.9969 Ops/s 193.1469 Ops/s $\color{#35bf28}+0.44\%$
test_to[False-False-None] 2.2846ms 2.1827ms 458.1580 Ops/s 457.7773 Ops/s $\color{#35bf28}+0.08\%$
test_to[True-False-None] 2.2401ms 1.9206ms 520.6775 Ops/s 518.3857 Ops/s $\color{#35bf28}+0.44\%$
test_to[within-False-None] 6.3637ms 6.1943ms 161.4386 Ops/s 160.2503 Ops/s $\color{#35bf28}+0.74\%$
test_to[True-default-None] 10.9099ms 10.3150ms 96.9461 Ops/s 95.6848 Ops/s $\color{#35bf28}+1.32\%$
test_to_njt[False-False-None] 7.2971ms 6.9286ms 144.3289 Ops/s 142.9465 Ops/s $\color{#35bf28}+0.97\%$
test_to_njt[True-False-None] 4.1610ms 3.9249ms 254.7804 Ops/s 261.9228 Ops/s $\color{#d91a1a}-2.73\%$
test_to_njt[within-False-None] 9.4977ms 9.1494ms 109.2971 Ops/s 110.7325 Ops/s $\color{#d91a1a}-1.30\%$
test_creation[device0] 0.3523ms 0.1163ms 8.5982 KOps/s 8.5251 KOps/s $\color{#35bf28}+0.86\%$
test_creation_from_tensor 0.3893ms 0.1146ms 8.7231 KOps/s 8.6741 KOps/s $\color{#35bf28}+0.56\%$
test_add_one[memmap_tensor0] 0.5291ms 6.2298μs 160.5192 KOps/s 162.8059 KOps/s $\color{#d91a1a}-1.40\%$
test_contiguous[memmap_tensor0] 34.3810μs 0.6755μs 1.4804 MOps/s 2.0968 MOps/s $\textbf{\color{#d91a1a}-29.40\%}$
test_stack[memmap_tensor0] 35.2310μs 4.1092μs 243.3569 KOps/s 243.6404 KOps/s $\color{#d91a1a}-0.12\%$
test_memmaptd_index 1.3691ms 0.2740ms 3.6502 KOps/s 3.6587 KOps/s $\color{#d91a1a}-0.23\%$
test_memmaptd_index_astensor 0.5280ms 0.3734ms 2.6784 KOps/s 2.6957 KOps/s $\color{#d91a1a}-0.64\%$
test_memmaptd_index_op 0.7734ms 0.6147ms 1.6269 KOps/s 1.6147 KOps/s $\color{#35bf28}+0.75\%$
test_serialize_model 0.1361s 0.1356s 7.3735 Ops/s 7.3399 Ops/s $\color{#35bf28}+0.46\%$
test_serialize_model_pickle 1.3804s 1.2159s 0.8224 Ops/s 0.8254 Ops/s $\color{#d91a1a}-0.36\%$
test_serialize_weights 0.1361s 0.1349s 7.4115 Ops/s 7.4870 Ops/s $\color{#d91a1a}-1.01\%$
test_serialize_weights_returnearly 0.2796s 46.1289ms 21.6784 Ops/s 11.7526 Ops/s $\textbf{\color{#35bf28}+84.46\%}$
test_serialize_weights_pickle 1.3661s 1.2130s 0.8244 Ops/s 0.8228 Ops/s $\color{#35bf28}+0.19\%$
test_consolidate[few_large-0] 60.4388ms 7.4246ms 134.6882 Ops/s 130.9566 Ops/s $\color{#35bf28}+2.85\%$
test_consolidate[few_large-8] 53.5058ms 7.4199ms 134.7730 Ops/s 107.3128 Ops/s $\textbf{\color{#35bf28}+25.59\%}$
test_consolidate[many_small-0] 0.1208s 0.1186s 8.4294 Ops/s 25.7257 Ops/s $\textbf{\color{#d91a1a}-67.23\%}$
test_consolidate[many_small-8] 0.2239s 51.4957ms 19.4191 Ops/s 22.3088 Ops/s $\textbf{\color{#d91a1a}-12.95\%}$
test_consolidate_to_file[few_large-0] 0.1306s 22.8679ms 43.7294 Ops/s 46.0182 Ops/s $\color{#d91a1a}-4.97\%$
test_consolidate_to_file[few_large-8] 0.1907s 45.6480ms 21.9068 Ops/s 23.9929 Ops/s $\textbf{\color{#d91a1a}-8.69\%}$
test_consolidate_to_file[many_small-0] 0.8097s 0.7509s 1.3317 Ops/s 1.8160 Ops/s $\textbf{\color{#d91a1a}-26.67\%}$
test_consolidate_to_file[many_small-8] 0.6883s 0.5843s 1.7114 Ops/s 1.4741 Ops/s $\textbf{\color{#35bf28}+16.10\%}$
test_reshape_pytree 6.6261ms 32.5885μs 30.6857 KOps/s 30.6255 KOps/s $\color{#35bf28}+0.20\%$
test_reshape_td 85.3520μs 45.2993μs 22.0754 KOps/s 21.2253 KOps/s $\color{#35bf28}+4.00\%$
test_view_pytree 0.2248ms 31.7310μs 31.5150 KOps/s 31.2612 KOps/s $\color{#35bf28}+0.81\%$
test_view_td 0.1387ms 53.7211μs 18.6147 KOps/s 17.5381 KOps/s $\textbf{\color{#35bf28}+6.14\%}$
test_unbind_pytree 0.2262ms 35.5149μs 28.1572 KOps/s 27.8584 KOps/s $\color{#35bf28}+1.07\%$
test_unbind_td 0.1684ms 50.4475μs 19.8226 KOps/s 19.7866 KOps/s $\color{#35bf28}+0.18\%$
test_split_pytree 0.2441ms 40.7361μs 24.5483 KOps/s 24.2225 KOps/s $\color{#35bf28}+1.34\%$
test_split_td 0.1589ms 70.6218μs 14.1599 KOps/s 13.9936 KOps/s $\color{#35bf28}+1.19\%$
test_add_pytree 0.2370ms 39.0763μs 25.5910 KOps/s 24.8125 KOps/s $\color{#35bf28}+3.14\%$
test_add_td 0.1321ms 52.6300μs 19.0006 KOps/s 18.8353 KOps/s $\color{#35bf28}+0.88\%$
test_compile_add_one_nested[tensordict-compile] 0.3621ms 0.2742ms 3.6464 KOps/s 3.6432 KOps/s $\color{#35bf28}+0.09\%$
test_compile_add_one_nested[tensordict-eager] 0.2967ms 0.2023ms 4.9423 KOps/s 4.9678 KOps/s $\color{#d91a1a}-0.51\%$
test_compile_add_one_nested[pytree-compile] 0.4649ms 0.1536ms 6.5122 KOps/s 6.0029 KOps/s $\textbf{\color{#35bf28}+8.48\%}$
test_compile_add_one_nested[pytree-eager] 0.5180ms 0.1787ms 5.5963 KOps/s 5.4508 KOps/s $\color{#35bf28}+2.67\%$
test_compile_copy_nested[tensordict-compile] 77.5210μs 23.2077μs 43.0892 KOps/s 44.6692 KOps/s $\color{#d91a1a}-3.54\%$
test_compile_copy_nested[tensordict-eager] 0.1064ms 54.0536μs 18.5002 KOps/s 18.6292 KOps/s $\color{#d91a1a}-0.69\%$
test_compile_copy_nested[pytree-compile] 0.1600ms 19.3674μs 51.6331 KOps/s 48.2732 KOps/s $\textbf{\color{#35bf28}+6.96\%}$
test_compile_copy_nested[pytree-eager] 0.3986ms 66.7949μs 14.9712 KOps/s 15.0078 KOps/s $\color{#d91a1a}-0.24\%$
test_compile_add_one_flat[tensordict-compile] 0.4967ms 0.3056ms 3.2718 KOps/s 2.9737 KOps/s $\textbf{\color{#35bf28}+10.02\%}$
test_compile_add_one_flat[tensordict-eager] 0.3691ms 0.2901ms 3.4474 KOps/s 3.4089 KOps/s $\color{#35bf28}+1.13\%$
test_compile_add_one_flat[tensorclass-compile] 0.3560ms 0.2076ms 4.8178 KOps/s 4.3494 KOps/s $\textbf{\color{#35bf28}+10.77\%}$
test_compile_add_one_flat[tensorclass-eager] 0.1189ms 76.2455μs 13.1155 KOps/s 12.7105 KOps/s $\color{#35bf28}+3.19\%$
test_compile_add_one_flat[pytree-compile] 0.6122ms 0.2425ms 4.1243 KOps/s 3.9835 KOps/s $\color{#35bf28}+3.54\%$
test_compile_add_one_flat[pytree-eager] 0.8184ms 0.5358ms 1.8664 KOps/s 1.8713 KOps/s $\color{#d91a1a}-0.26\%$
test_compile_add_self_flat[tensordict-eager] 0.4458ms 0.3391ms 2.9490 KOps/s 2.9341 KOps/s $\color{#35bf28}+0.51\%$
test_compile_add_self_flat[tensordict-compile] 0.4144ms 0.3087ms 3.2396 KOps/s 3.0288 KOps/s $\textbf{\color{#35bf28}+6.96\%}$
test_compile_add_self_flat[tensorclass-eager] 0.2174ms 91.9525μs 10.8752 KOps/s 10.6917 KOps/s $\color{#35bf28}+1.72\%$
test_compile_add_self_flat[tensorclass-compile] 0.3780ms 0.2101ms 4.7593 KOps/s 4.5369 KOps/s $\color{#35bf28}+4.90\%$
test_compile_add_self_flat[pytree-eager] 0.6904ms 0.4423ms 2.2609 KOps/s 2.2220 KOps/s $\color{#35bf28}+1.75\%$
test_compile_add_self_flat[pytree-compile] 0.5647ms 0.2424ms 4.1246 KOps/s 3.9915 KOps/s $\color{#35bf28}+3.33\%$
test_compile_copy_flat[tensordict-compile] 0.1072ms 26.5092μs 37.7227 KOps/s 37.3480 KOps/s $\color{#35bf28}+1.00\%$
test_compile_copy_flat[tensordict-eager] 67.9010μs 41.0326μs 24.3709 KOps/s 24.7649 KOps/s $\color{#d91a1a}-1.59\%$
test_compile_copy_flat[pytree-compile] 0.2313ms 25.0386μs 39.9384 KOps/s 37.9216 KOps/s $\textbf{\color{#35bf28}+5.32\%}$
test_compile_copy_flat[pytree-eager] 0.3425ms 51.7360μs 19.3289 KOps/s 19.6303 KOps/s $\color{#d91a1a}-1.54\%$
test_compile_assign_and_add[tensordict-compile] 2.0705ms 0.2545ms 3.9299 KOps/s 3.6485 KOps/s $\textbf{\color{#35bf28}+7.71\%}$
test_compile_assign_and_add[tensordict-eager] 3.5554ms 3.3399ms 299.4139 Ops/s 296.9821 Ops/s $\color{#35bf28}+0.82\%$
test_compile_assign_and_add[pytree-compile] 1.9327ms 0.1937ms 5.1615 KOps/s 4.8371 KOps/s $\textbf{\color{#35bf28}+6.71\%}$
test_compile_assign_and_add[pytree-eager] 3.0166ms 2.7856ms 358.9842 Ops/s 346.2368 Ops/s $\color{#35bf28}+3.68\%$
test_compile_indexing[tensor-tensordict-compile] 0.2872ms 0.1538ms 6.5000 KOps/s 6.1459 KOps/s $\textbf{\color{#35bf28}+5.76\%}$
test_compile_indexing[tensor-tensordict-eager] 0.3966ms 75.6832μs 13.2130 KOps/s 13.5612 KOps/s $\color{#d91a1a}-2.57\%$
test_compile_indexing[tensor-tensorclass-compile] 0.2781ms 0.1328ms 7.5306 KOps/s 7.3152 KOps/s $\color{#35bf28}+2.94\%$
test_compile_indexing[tensor-tensorclass-eager] 0.3090ms 45.0298μs 22.2075 KOps/s 22.8304 KOps/s $\color{#d91a1a}-2.73\%$
test_compile_indexing[tensor-pytree-compile] 0.1953ms 0.1339ms 7.4671 KOps/s 7.2200 KOps/s $\color{#35bf28}+3.42\%$
test_compile_indexing[tensor-pytree-eager] 0.2660ms 46.2085μs 21.6410 KOps/s 22.7582 KOps/s $\color{#d91a1a}-4.91\%$
test_compile_indexing[slice-tensordict-compile] 0.2232ms 88.5441μs 11.2938 KOps/s 11.1076 KOps/s $\color{#35bf28}+1.68\%$
test_compile_indexing[slice-tensordict-eager] 0.2074ms 27.1502μs 36.8322 KOps/s 35.6402 KOps/s $\color{#35bf28}+3.34\%$
test_compile_indexing[slice-tensorclass-compile] 0.1914ms 70.9242μs 14.0996 KOps/s 13.8127 KOps/s $\color{#35bf28}+2.08\%$
test_compile_indexing[slice-tensorclass-eager] 0.2638ms 22.2452μs 44.9535 KOps/s 45.3825 KOps/s $\color{#d91a1a}-0.95\%$
test_compile_indexing[slice-pytree-compile] 0.1372ms 73.5885μs 13.5891 KOps/s 13.6275 KOps/s $\color{#d91a1a}-0.28\%$
test_compile_indexing[slice-pytree-eager] 0.2982ms 21.6936μs 46.0966 KOps/s 45.3566 KOps/s $\color{#35bf28}+1.63\%$
test_compile_indexing[int-tensordict-compile] 0.1506ms 89.7575μs 11.1411 KOps/s 10.8595 KOps/s $\color{#35bf28}+2.59\%$
test_compile_indexing[int-tensordict-eager] 0.3317ms 28.0524μs 35.6476 KOps/s 36.4355 KOps/s $\color{#d91a1a}-2.16\%$
test_compile_indexing[int-tensorclass-compile] 0.1160ms 71.9025μs 13.9077 KOps/s 13.5873 KOps/s $\color{#35bf28}+2.36\%$
test_compile_indexing[int-tensorclass-eager] 0.2587ms 21.9755μs 45.5052 KOps/s 45.4973 KOps/s $\color{#35bf28}+0.02\%$
test_compile_indexing[int-pytree-compile] 0.1090ms 71.6989μs 13.9472 KOps/s 13.4199 KOps/s $\color{#35bf28}+3.93\%$
test_compile_indexing[int-pytree-eager] 0.2600ms 21.8715μs 45.7215 KOps/s 45.4522 KOps/s $\color{#35bf28}+0.59\%$
test_compile_replace[single-eager] 0.1023ms 48.6969μs 20.5352 KOps/s 20.8334 KOps/s $\color{#d91a1a}-1.43\%$
test_compile_replace[single-compile] 0.2510ms 0.1445ms 6.9185 KOps/s 6.6556 KOps/s $\color{#35bf28}+3.95\%$
test_compile_replace[multi-eager] 0.6337ms 0.5819ms 1.7187 KOps/s 1.7450 KOps/s $\color{#d91a1a}-1.51\%$
test_compile_replace[multi-compile] 0.3046ms 0.1546ms 6.4683 KOps/s 6.1727 KOps/s $\color{#35bf28}+4.79\%$
test_compile_tc_getattr_20[eager] 0.2359ms 0.1715ms 5.8322 KOps/s 5.8087 KOps/s $\color{#35bf28}+0.40\%$
test_compile_tc_getattr_20[compile] 0.4200ms 0.1740ms 5.7481 KOps/s 5.5203 KOps/s $\color{#35bf28}+4.13\%$
test_compile_clone_shallow[20-eager] 77.0210μs 18.8980μs 52.9157 KOps/s 52.7352 KOps/s $\color{#35bf28}+0.34\%$
test_compile_clone_shallow[20-compile] 91.3010μs 23.4213μs 42.6962 KOps/s 42.0372 KOps/s $\color{#35bf28}+1.57\%$
test_compile_clone_shallow[40-eager] 70.9410μs 33.2122μs 30.1095 KOps/s 30.2719 KOps/s $\color{#d91a1a}-0.54\%$
test_compile_clone_shallow[40-compile] 91.3810μs 25.6047μs 39.0553 KOps/s 36.5622 KOps/s $\textbf{\color{#35bf28}+6.82\%}$
test_compile_clone_shallow[80-eager] 0.1018ms 61.0523μs 16.3794 KOps/s 16.2306 KOps/s $\color{#35bf28}+0.92\%$
test_compile_clone_shallow[80-compile] 93.3320μs 28.1029μs 35.5836 KOps/s 33.9535 KOps/s $\color{#35bf28}+4.80\%$
test_compile_update_inplace[eager] 0.1180ms 62.3959μs 16.0267 KOps/s 16.0636 KOps/s $\color{#d91a1a}-0.23\%$
test_compile_update_inplace[compile] 0.2476ms 0.1193ms 8.3855 KOps/s 8.0726 KOps/s $\color{#35bf28}+3.88\%$
test_mod_add[eager] 0.2983ms 0.2256ms 4.4336 KOps/s 4.4251 KOps/s $\color{#35bf28}+0.19\%$
test_mod_add[compile] 0.2672ms 0.1173ms 8.5235 KOps/s 8.0147 KOps/s $\textbf{\color{#35bf28}+6.35\%}$
test_mod_add[compile-overhead] 0.3721ms 0.1933ms 5.1738 KOps/s 5.0341 KOps/s $\color{#35bf28}+2.78\%$
test_mod_wrap[eager] 0.5821ms 0.4709ms 2.1237 KOps/s 2.0873 KOps/s $\color{#35bf28}+1.75\%$
test_mod_wrap[compile] 0.4299ms 0.3542ms 2.8236 KOps/s 2.7513 KOps/s $\color{#35bf28}+2.63\%$
test_mod_wrap[compile-overhead] 7.1299ms 3.9970ms 250.1866 Ops/s 237.7136 Ops/s $\textbf{\color{#35bf28}+5.25\%}$
test_mod_wrap_and_backward[eager] 1.9379ms 1.7011ms 587.8592 Ops/s 599.8645 Ops/s $\color{#d91a1a}-2.00\%$
test_mod_wrap_and_backward[compile] 1.5080ms 1.3965ms 716.0595 Ops/s 747.8284 Ops/s $\color{#d91a1a}-4.25\%$
test_mod_wrap_and_backward[compile-overhead] 1.6622ms 0.9606ms 1.0410 KOps/s 1.0466 KOps/s $\color{#d91a1a}-0.54\%$
test_seq_add[eager] 0.5967ms 0.5130ms 1.9494 KOps/s 1.9697 KOps/s $\color{#d91a1a}-1.03\%$
test_seq_add[compile] 0.2843ms 0.1362ms 7.3425 KOps/s 7.0888 KOps/s $\color{#35bf28}+3.58\%$
test_seq_add[compile-overhead] 0.3129ms 0.2073ms 4.8235 KOps/s 4.6124 KOps/s $\color{#35bf28}+4.58\%$
test_seq_wrap[eager] 5.3971ms 1.4277ms 700.4373 Ops/s 700.6446 Ops/s $\color{#d91a1a}-0.03\%$
test_seq_wrap[compile] 0.4566ms 0.3726ms 2.6838 KOps/s 2.5819 KOps/s $\color{#35bf28}+3.95\%$
test_seq_wrap[compile-overhead] 0.4661ms 0.3349ms 2.9857 KOps/s 3.0520 KOps/s $\color{#d91a1a}-2.17\%$
test_func_call_runtime[False-eager] 0.9296ms 0.8254ms 1.2115 KOps/s 1.2471 KOps/s $\color{#d91a1a}-2.85\%$
test_func_call_runtime[False-compile] 0.9930ms 0.7643ms 1.3084 KOps/s 1.2804 KOps/s $\color{#35bf28}+2.19\%$
test_func_call_runtime[False-compile-overhead] 0.6977ms 0.5104ms 1.9593 KOps/s 1.9230 KOps/s $\color{#35bf28}+1.88\%$
test_func_call_runtime[True-eager] 1.1783ms 1.0709ms 933.7994 Ops/s 937.5129 Ops/s $\color{#d91a1a}-0.40\%$
test_func_call_runtime[True-compile] 0.8413ms 0.7769ms 1.2872 KOps/s 1.2723 KOps/s $\color{#35bf28}+1.17\%$
test_func_call_runtime[True-compile-overhead] 0.7004ms 0.5280ms 1.8940 KOps/s 1.8664 KOps/s $\color{#35bf28}+1.47\%$
test_func_call_cm_runtime[False-eager] 0.9333ms 0.8095ms 1.2354 KOps/s 1.1936 KOps/s $\color{#35bf28}+3.50\%$
test_func_call_cm_runtime[False-compile] 0.9023ms 0.7503ms 1.3328 KOps/s 1.3333 KOps/s $\color{#d91a1a}-0.04\%$
test_func_call_cm_runtime[False-compile-overhead] 0.5767ms 0.4927ms 2.0295 KOps/s 2.0291 KOps/s $\color{#35bf28}+0.02\%$
test_func_call_cm_runtime[True-eager] 1.3922ms 1.2303ms 812.8149 Ops/s 817.9714 Ops/s $\color{#d91a1a}-0.63\%$
test_func_call_cm_runtime[True-compile] 0.9404ms 0.8572ms 1.1666 KOps/s 1.1556 KOps/s $\color{#35bf28}+0.96\%$
test_func_call_cm_runtime[True-compile-overhead] 1.1357ms 0.8707ms 1.1485 KOps/s 1.1556 KOps/s $\color{#d91a1a}-0.61\%$
test_vmap_func_call_cm_runtime[eager] 3.1904ms 2.7082ms 369.2497 Ops/s 372.0845 Ops/s $\color{#d91a1a}-0.76\%$
test_vmap_func_call_cm_runtime[compile] 4.2082ms 3.6811ms 271.6547 Ops/s 269.2819 Ops/s $\color{#35bf28}+0.88\%$
test_vmap_func_call_cm_runtime[compile-overhead] 4.1700ms 3.6952ms 270.6213 Ops/s 269.4627 Ops/s $\color{#35bf28}+0.43\%$
test_distributed 2.0710ms 0.1563ms 6.3978 KOps/s 6.8915 KOps/s $\textbf{\color{#d91a1a}-7.16\%}$
test_tdmodule 0.2800ms 0.1948ms 5.1347 KOps/s 5.1290 KOps/s $\color{#35bf28}+0.11\%$
test_tdmodule_dispatch 0.4223ms 0.3771ms 2.6520 KOps/s 2.6494 KOps/s $\color{#35bf28}+0.10\%$
test_tdseq 48.1210μs 26.9901μs 37.0507 KOps/s 37.3735 KOps/s $\color{#d91a1a}-0.86\%$
test_tdseq_dispatch 0.2707ms 0.2187ms 4.5718 KOps/s 4.5616 KOps/s $\color{#35bf28}+0.22\%$
test_instantiation_functorch 2.2124ms 2.0418ms 489.7661 Ops/s 489.2096 Ops/s $\color{#35bf28}+0.11\%$
test_exec_functorch 0.2398ms 0.1768ms 5.6558 KOps/s 5.7720 KOps/s $\color{#d91a1a}-2.01\%$
test_exec_functional_call 0.2300ms 0.1573ms 6.3569 KOps/s 6.4194 KOps/s $\color{#d91a1a}-0.97\%$
test_exec_td_decorator 0.5083ms 0.2476ms 4.0385 KOps/s 4.1230 KOps/s $\color{#d91a1a}-2.05\%$
test_vmap_mlp_speed_decorator[True-True] 1.3311ms 1.1206ms 892.3906 Ops/s 886.6197 Ops/s $\color{#35bf28}+0.65\%$
test_vmap_mlp_speed_decorator[True-False] 1.3562ms 1.1165ms 895.6827 Ops/s 891.9336 Ops/s $\color{#35bf28}+0.42\%$
test_vmap_mlp_speed_decorator[False-True] 1.0340ms 0.8233ms 1.2146 KOps/s 1.2126 KOps/s $\color{#35bf28}+0.17\%$
test_vmap_mlp_speed_decorator[False-False] 1.0281ms 0.8227ms 1.2155 KOps/s 1.2179 KOps/s $\color{#d91a1a}-0.20\%$
test_vmap_transformer_speed_decorator[True-True] 25.4186ms 24.9725ms 40.0440 Ops/s 39.6973 Ops/s $\color{#35bf28}+0.87\%$
test_vmap_transformer_speed_decorator[True-False] 25.7184ms 24.9664ms 40.0538 Ops/s 40.0618 Ops/s $\color{#d91a1a}-0.02\%$
test_vmap_transformer_speed_decorator[False-True] 25.3855ms 24.6568ms 40.5568 Ops/s 40.6743 Ops/s $\color{#d91a1a}-0.29\%$
test_vmap_transformer_speed_decorator[False-False] 25.3823ms 24.5280ms 40.7698 Ops/s 40.7258 Ops/s $\color{#35bf28}+0.11\%$
test_to_module_speed[True] 1.7706ms 1.6612ms 601.9656 Ops/s 602.6638 Ops/s $\color{#d91a1a}-0.12\%$
test_to_module_speed[False] 1.7630ms 1.6374ms 610.7396 Ops/s 611.7271 Ops/s $\color{#d91a1a}-0.16\%$
test_to_module_plain_tensor_speed[None] 1.8739ms 1.7504ms 571.2904 Ops/s 575.2283 Ops/s $\color{#d91a1a}-0.68\%$
test_to_module_plain_tensor_speed[False] 1.7466ms 1.6008ms 624.6985 Ops/s 634.6892 Ops/s $\color{#d91a1a}-1.57\%$
test_to_module_plain_tensor_speed[True] 3.5397ms 3.4244ms 292.0225 Ops/s 299.3487 Ops/s $\color{#d91a1a}-2.45\%$
test_tc_init 89.8220μs 44.5557μs 22.4438 KOps/s 22.2372 KOps/s $\color{#35bf28}+0.93\%$
test_tc_init_tensor_only 36.3200μs 9.4945μs 105.3238 KOps/s 108.9631 KOps/s $\color{#d91a1a}-3.34\%$
test_tc_init_nested 0.1233ms 88.4080μs 11.3112 KOps/s 11.4604 KOps/s $\color{#d91a1a}-1.30\%$
test_tc_init_many_fields 46.3810μs 17.3939μs 57.4914 KOps/s 58.1448 KOps/s $\color{#d91a1a}-1.12\%$
test_tc_first_layer_tensor 20.1310μs 1.8126μs 551.6985 KOps/s 555.2717 KOps/s $\color{#d91a1a}-0.64\%$
test_tc_first_layer_tensor_only 13.2282μs 0.4014μs 2.4914 MOps/s 2.4560 MOps/s $\color{#35bf28}+1.44\%$
test_tc_first_layer_tensor_set 33.0400μs 4.2424μs 235.7169 KOps/s 234.9933 KOps/s $\color{#35bf28}+0.31\%$
test_tc_first_layer_tensor_only_set 26.4000μs 3.5101μs 284.8901 KOps/s 284.3326 KOps/s $\color{#35bf28}+0.20\%$
test_tc_first_layer_nontensor 31.9210μs 6.1353μs 162.9906 KOps/s 165.3073 KOps/s $\color{#d91a1a}-1.40\%$
test_tc_second_layer_tensor 29.7210μs 4.3262μs 231.1475 KOps/s 227.8696 KOps/s $\color{#35bf28}+1.44\%$
test_tc_second_layer_nontensor 33.9000μs 8.5997μs 116.2827 KOps/s 115.8666 KOps/s $\color{#35bf28}+0.36\%$
test_unbind 0.2834s 14.3120ms 69.8714 Ops/s 64.9449 Ops/s $\textbf{\color{#35bf28}+7.59\%}$
test_full_like 4.8236ms 4.6281ms 216.0710 Ops/s 228.1436 Ops/s $\textbf{\color{#d91a1a}-5.29\%}$
test_zeros_like 4.7087ms 4.5637ms 219.1184 Ops/s 228.6307 Ops/s $\color{#d91a1a}-4.16\%$
test_ones_like 4.8642ms 4.6454ms 215.2657 Ops/s 228.1678 Ops/s $\textbf{\color{#d91a1a}-5.65\%}$
test_clone 7.1958ms 6.9047ms 144.8291 Ops/s 152.1947 Ops/s $\color{#d91a1a}-4.84\%$
test_squeeze 0.1880ms 14.1368μs 70.7372 KOps/s 69.4961 KOps/s $\color{#35bf28}+1.79\%$
test_unsqueeze 0.1664ms 0.1102ms 9.0729 KOps/s 9.1603 KOps/s $\color{#d91a1a}-0.95\%$
test_split 0.2480ms 0.1892ms 5.2858 KOps/s 5.2664 KOps/s $\color{#35bf28}+0.37\%$
test_permute 0.2490ms 0.1978ms 5.0549 KOps/s 5.1877 KOps/s $\color{#d91a1a}-2.56\%$
test_stack 53.1186ms 52.7941ms 18.9415 Ops/s 54.4144 Ops/s $\textbf{\color{#d91a1a}-65.19\%}$
test_cat 53.1448ms 52.8119ms 18.9351 Ops/s 54.3606 Ops/s $\textbf{\color{#d91a1a}-65.17\%}$
test_sequential_tensordict 1.0003ms 0.9139ms 1.0942 KOps/s 1.7650 KOps/s $\textbf{\color{#d91a1a}-38.01\%}$
test_sequential_graph_module 0.5013ms 0.4124ms 2.4246 KOps/s 8.4523 KOps/s $\textbf{\color{#d91a1a}-71.31\%}$
test_nested_tensordict 1.3720ms 1.2452ms 803.0772 Ops/s 1.2270 KOps/s $\textbf{\color{#d91a1a}-34.55\%}$
test_nested_graph_module 0.7314ms 0.5369ms 1.8626 KOps/s 7.8594 KOps/s $\textbf{\color{#d91a1a}-76.30\%}$

[ghstack-poisoned]
[ghstack-poisoned]
vmoens added a commit that referenced this pull request Jul 9, 2026
memmap_/memmap/memmap_like and consolidate spun up (and tore down) a
fresh ThreadPoolExecutor on every call, which costs ~0.3ms per call in
thread spawn/teardown - noticeable in checkpoint loops that save small
tensordicts at every iteration. Calls with return_early=True never shut
their executor down at all, abandoning a full thread pool to the GC on
every call.

Add tensordict.utils._get_shared_executor(num_threads): a process-wide,
lazily-created pool per thread count, reused across calls. Executors do
not survive a fork, so the cache is cleared in the child via
os.register_at_fork.

The serialization tasks submitted to the pool are leaf functions that
never submit to (and wait on) the pool themselves, so sharing it cannot
deadlock.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
ghstack-source-id: 2ce66ab
Pull-Request: #1741
@vmoens
vmoens merged commit b61f4fd into gh/vmoens/94/base Jul 9, 2026
63 of 66 checks passed
@vmoens
vmoens deleted the gh/vmoens/94/head branch July 9, 2026 21:17
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. Performance Test

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant