Skip to content

[Distributed] Consolidated send / recv for steady-state transfers - #1587

Merged
vmoens merged 3 commits into
gh/vmoens/70/basefrom
gh/vmoens/70/head
Feb 19, 2026
Merged

[Distributed] Consolidated send / recv for steady-state transfers#1587
vmoens merged 3 commits into
gh/vmoens/70/basefrom
gh/vmoens/70/head

Conversation

@vmoens

@vmoens vmoens commented Feb 18, 2026

Copy link
Copy Markdown
Collaborator

Stack from ghstack (oldest at bottom):

Add consolidated=False kwarg to send() and recv(). When True, send
consolidates the tensordict (if needed) and sends the storage as a
single tensor. recv receives directly into the existing consolidated
storage buffer, updating all leaf tensor views in-place (zero-copy).

This enables the fast steady-state pattern:
td.init_remote(dst=1) # setup: schema + first payload
td_recv = TensorDict.from_remote_init(src=0)
td.send(dst=1, consolidated=True) # 1 message
td_recv.recv(src=0, consolidated=True) # 1 message, zero-copy

Co-authored-by: Cursor cursoragent@cursor.com

[ghstack-poisoned]
@github-actions

github-actions Bot commented Feb 18, 2026

Copy link
Copy Markdown
Contributor

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

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

Expand to view detailed results
Name Max Mean Ops Ops on Repo HEAD Change
test_plain_set_nested 46.8930μs 14.3996μs 69.4463 KOps/s 71.1992 KOps/s $\color{#d91a1a}-2.46\%$
test_plain_set_stack_nested 33.7620μs 14.6400μs 68.3061 KOps/s 69.7763 KOps/s $\color{#d91a1a}-2.11\%$
test_plain_set_nested_inplace 42.5430μs 16.0873μs 62.1609 KOps/s 63.5949 KOps/s $\color{#d91a1a}-2.25\%$
test_plain_set_stack_nested_inplace 45.8320μs 15.9689μs 62.6217 KOps/s 63.8203 KOps/s $\color{#d91a1a}-1.88\%$
test_items 63.3740μs 5.5958μs 178.7067 KOps/s 181.2629 KOps/s $\color{#d91a1a}-1.41\%$
test_items_nested 0.5254ms 0.4404ms 2.2709 KOps/s 2.2792 KOps/s $\color{#d91a1a}-0.36\%$
test_items_nested_locked 0.5073ms 0.4423ms 2.2608 KOps/s 2.2664 KOps/s $\color{#d91a1a}-0.25\%$
test_items_nested_leaf 0.1334ms 92.3292μs 10.8308 KOps/s 10.9842 KOps/s $\color{#d91a1a}-1.40\%$
test_items_stack_nested 0.5132ms 0.4442ms 2.2515 KOps/s 2.2761 KOps/s $\color{#d91a1a}-1.08\%$
test_items_stack_nested_leaf 0.1264ms 91.9026μs 10.8811 KOps/s 10.9272 KOps/s $\color{#d91a1a}-0.42\%$
test_items_stack_nested_locked 0.4992ms 0.4493ms 2.2258 KOps/s 2.2567 KOps/s $\color{#d91a1a}-1.37\%$
test_keys 24.6120μs 4.1097μs 243.3263 KOps/s 243.7125 KOps/s $\color{#d91a1a}-0.16\%$
test_keys_nested 0.1558ms 0.1178ms 8.4869 KOps/s 8.5582 KOps/s $\color{#d91a1a}-0.83\%$
test_keys_nested_locked 87.8366ms 0.1390ms 7.1960 KOps/s 8.0013 KOps/s $\textbf{\color{#d91a1a}-10.06\%}$
test_keys_nested_leaf 0.1542ms 0.1089ms 9.1831 KOps/s 9.2760 KOps/s $\color{#d91a1a}-1.00\%$
test_keys_stack_nested 0.1777ms 0.1188ms 8.4150 KOps/s 8.6239 KOps/s $\color{#d91a1a}-2.42\%$
test_keys_stack_nested_leaf 0.1639ms 0.1097ms 9.1117 KOps/s 9.2727 KOps/s $\color{#d91a1a}-1.74\%$
test_keys_stack_nested_locked 0.1911ms 0.1259ms 7.9420 KOps/s 8.0061 KOps/s $\color{#d91a1a}-0.80\%$
test_values 6.5004μs 1.0008μs 999.1783 KOps/s 1.0129 MOps/s $\color{#d91a1a}-1.35\%$
test_values_nested 66.9350μs 47.4185μs 21.0888 KOps/s 21.5313 KOps/s $\color{#d91a1a}-2.06\%$
test_values_nested_locked 93.1260μs 50.3710μs 19.8527 KOps/s 20.2789 KOps/s $\color{#d91a1a}-2.10\%$
test_values_nested_leaf 92.1560μs 54.1637μs 18.4625 KOps/s 19.0903 KOps/s $\color{#d91a1a}-3.29\%$
test_values_stack_nested 77.7740μs 47.3555μs 21.1169 KOps/s 21.4841 KOps/s $\color{#d91a1a}-1.71\%$
test_values_stack_nested_leaf 86.6550μs 53.6332μs 18.6452 KOps/s 18.9624 KOps/s $\color{#d91a1a}-1.67\%$
test_values_stack_nested_locked 84.3050μs 50.0673μs 19.9731 KOps/s 20.3588 KOps/s $\color{#d91a1a}-1.89\%$
test_membership 91.4940μs 0.7895μs 1.2666 MOps/s 1.2346 MOps/s $\color{#35bf28}+2.59\%$
test_membership_nested 23.3520μs 2.7247μs 367.0129 KOps/s 363.0032 KOps/s $\color{#35bf28}+1.10\%$
test_membership_nested_leaf 26.8220μs 2.7120μs 368.7342 KOps/s 362.5872 KOps/s $\color{#35bf28}+1.70\%$
test_membership_stacked_nested 44.3720μs 2.7793μs 359.8021 KOps/s 360.9830 KOps/s $\color{#d91a1a}-0.33\%$
test_membership_stacked_nested_leaf 29.5520μs 2.7667μs 361.4476 KOps/s 362.4802 KOps/s $\color{#d91a1a}-0.28\%$
test_membership_nested_last 45.7530μs 4.2374μs 235.9930 KOps/s 244.3398 KOps/s $\color{#d91a1a}-3.42\%$
test_membership_nested_leaf_last 39.7530μs 4.2173μs 237.1184 KOps/s 244.7595 KOps/s $\color{#d91a1a}-3.12\%$
test_membership_stacked_nested_last 59.4440μs 4.2211μs 236.9037 KOps/s 241.4923 KOps/s $\color{#d91a1a}-1.90\%$
test_membership_stacked_nested_leaf_last 28.8010μs 4.2197μs 236.9834 KOps/s 244.3394 KOps/s $\color{#d91a1a}-3.01\%$
test_nested_getleaf 66.7340μs 20.0785μs 49.8044 KOps/s 49.4510 KOps/s $\color{#35bf28}+0.71\%$
test_nested_get 80.2140μs 19.0568μs 52.4746 KOps/s 51.9409 KOps/s $\color{#35bf28}+1.03\%$
test_stacked_getleaf 53.0230μs 20.6365μs 48.4579 KOps/s 48.6786 KOps/s $\color{#d91a1a}-0.45\%$
test_stacked_get 50.3630μs 19.5486μs 51.1547 KOps/s 51.5852 KOps/s $\color{#d91a1a}-0.83\%$
test_nested_getitemleaf 65.6340μs 21.2560μs 47.0456 KOps/s 47.8320 KOps/s $\color{#d91a1a}-1.64\%$
test_nested_getitem 50.4830μs 20.0403μs 49.8995 KOps/s 49.9730 KOps/s $\color{#d91a1a}-0.15\%$
test_stacked_getitemleaf 50.6930μs 21.2798μs 46.9929 KOps/s 47.4291 KOps/s $\color{#d91a1a}-0.92\%$
test_stacked_getitem 53.7930μs 19.9817μs 50.0459 KOps/s 50.9940 KOps/s $\color{#d91a1a}-1.86\%$
test_lock_nested 7.9834ms 0.4650ms 2.1507 KOps/s 2.1891 KOps/s $\color{#d91a1a}-1.75\%$
test_lock_stack_nested 0.4860ms 0.4568ms 2.1893 KOps/s 2.1628 KOps/s $\color{#35bf28}+1.22\%$
test_unlock_nested 0.4559ms 0.3699ms 2.7033 KOps/s 2.7167 KOps/s $\color{#d91a1a}-0.49\%$
test_unlock_stack_nested 0.4077ms 0.3693ms 2.7076 KOps/s 2.6677 KOps/s $\color{#35bf28}+1.50\%$
test_flatten_speed 0.1536ms 0.1169ms 8.5527 KOps/s 8.6125 KOps/s $\color{#d91a1a}-0.69\%$
test_unflatten_speed 0.5997ms 0.5569ms 1.7957 KOps/s 1.8181 KOps/s $\color{#d91a1a}-1.23\%$
test_common_ops 0.8274ms 0.6738ms 1.4841 KOps/s 1.4743 KOps/s $\color{#35bf28}+0.66\%$
test_creation 71.9540μs 2.7429μs 364.5758 KOps/s 365.8996 KOps/s $\color{#d91a1a}-0.36\%$
test_creation_empty 28.4320μs 5.8281μs 171.5821 KOps/s 174.4138 KOps/s $\color{#d91a1a}-1.62\%$
test_creation_nested_1 35.2320μs 10.2345μs 97.7087 KOps/s 100.1151 KOps/s $\color{#d91a1a}-2.40\%$
test_creation_nested_2 44.2030μs 11.2754μs 88.6889 KOps/s 89.1785 KOps/s $\color{#d91a1a}-0.55\%$
test_creation_many_keys[10] 45.5130μs 17.2655μs 57.9189 KOps/s 59.6712 KOps/s $\color{#d91a1a}-2.94\%$
test_creation_many_keys[50] 0.1230ms 72.7947μs 13.7373 KOps/s 13.7694 KOps/s $\color{#d91a1a}-0.23\%$
test_creation_many_keys[100] 0.1850ms 0.1438ms 6.9562 KOps/s 7.0552 KOps/s $\color{#d91a1a}-1.40\%$
test_creation_nested_many_keys[10] 66.6040μs 36.9831μs 27.0394 KOps/s 27.2169 KOps/s $\color{#d91a1a}-0.65\%$
test_creation_nested_many_keys[50] 0.2119ms 0.1503ms 6.6533 KOps/s 6.6448 KOps/s $\color{#35bf28}+0.13\%$
test_clone 53.0430μs 13.2563μs 75.4360 KOps/s 73.6663 KOps/s $\color{#35bf28}+2.40\%$
test_getitem[int] 1.7574ms 14.0201μs 71.3263 KOps/s 59.2739 KOps/s $\textbf{\color{#35bf28}+20.33\%}$
test_getitem[slice_int] 0.1361ms 23.8486μs 41.9312 KOps/s 42.1908 KOps/s $\color{#d91a1a}-0.62\%$
test_getitem[range] 0.1726ms 60.4860μs 16.5328 KOps/s 16.2201 KOps/s $\color{#35bf28}+1.93\%$
test_getitem[tuple] 0.1553ms 23.1552μs 43.1869 KOps/s 43.0184 KOps/s $\color{#35bf28}+0.39\%$
test_getitem[list] 0.1750ms 56.6872μs 17.6407 KOps/s 17.6875 KOps/s $\color{#d91a1a}-0.26\%$
test_setitem_dim[int] 45.4030μs 25.3830μs 39.3965 KOps/s 37.2829 KOps/s $\textbf{\color{#35bf28}+5.67\%}$
test_setitem_dim[slice_int] 69.4240μs 42.4095μs 23.5796 KOps/s 23.3067 KOps/s $\color{#35bf28}+1.17\%$
test_setitem_dim[range] 0.1310ms 92.0595μs 10.8625 KOps/s 10.8543 KOps/s $\color{#35bf28}+0.08\%$
test_setitem_dim[tuple] 53.3930μs 39.6541μs 25.2181 KOps/s 25.1239 KOps/s $\color{#35bf28}+0.37\%$
test_setitem 72.7140μs 17.7439μs 56.3574 KOps/s 57.0143 KOps/s $\color{#d91a1a}-1.15\%$
test_set 45.3430μs 16.6045μs 60.2247 KOps/s 59.2219 KOps/s $\color{#35bf28}+1.69\%$
test_set_shared 0.6228ms 0.2049ms 4.8806 KOps/s 4.7966 KOps/s $\color{#35bf28}+1.75\%$
test_update 0.2124ms 21.1588μs 47.2616 KOps/s 47.7644 KOps/s $\color{#d91a1a}-1.05\%$
test_update_nested 73.1740μs 32.9366μs 30.3613 KOps/s 30.4147 KOps/s $\color{#d91a1a}-0.18\%$
test_update__nested 0.4668ms 33.8520μs 29.5404 KOps/s 29.0829 KOps/s $\color{#35bf28}+1.57\%$
test_set_nested 51.6830μs 18.8058μs 53.1750 KOps/s 52.8561 KOps/s $\color{#35bf28}+0.60\%$
test_set_nested_new 56.4630μs 23.9937μs 41.6776 KOps/s 41.6693 KOps/s $\color{#35bf28}+0.02\%$
test_select 0.1250ms 40.6357μs 24.6089 KOps/s 24.4497 KOps/s $\color{#35bf28}+0.65\%$
test_select_nested 0.1017ms 71.1784μs 14.0492 KOps/s 14.0024 KOps/s $\color{#35bf28}+0.33\%$
test_exclude_nested 0.1156ms 89.6364μs 11.1562 KOps/s 11.4963 KOps/s $\color{#d91a1a}-2.96\%$
test_empty[True] 0.4579ms 0.3813ms 2.6226 KOps/s 2.6562 KOps/s $\color{#d91a1a}-1.26\%$
test_empty[False] 8.5680μs 1.2646μs 790.7327 KOps/s 784.2838 KOps/s $\color{#35bf28}+0.82\%$
test_to 0.1015ms 71.6319μs 13.9603 KOps/s 13.0543 KOps/s $\textbf{\color{#35bf28}+6.94\%}$
test_to_nonblocking 0.1311ms 63.0028μs 15.8723 KOps/s 15.6727 KOps/s $\color{#35bf28}+1.27\%$
test_unbind_speed 0.3488ms 0.3110ms 3.2157 KOps/s 3.2000 KOps/s $\color{#35bf28}+0.49\%$
test_unbind_speed_stack0 0.3495ms 0.3084ms 3.2422 KOps/s 3.1887 KOps/s $\color{#35bf28}+1.68\%$
test_unbind_speed_stack1 0.1024s 0.8794ms 1.1371 KOps/s 1.1203 KOps/s $\color{#35bf28}+1.50\%$
test_split 1.1650ms 1.0959ms 912.5112 Ops/s 906.7727 Ops/s $\color{#35bf28}+0.63\%$
test_chunk 0.1021s 1.1574ms 864.0395 Ops/s 955.3935 Ops/s $\textbf{\color{#d91a1a}-9.56\%}$
test_to_cpu_blocking 19.1605ms 19.0809ms 52.4084 Ops/s 35.0761 Ops/s $\textbf{\color{#35bf28}+49.41\%}$
test_to_cpu_global_sync 11.0925ms 10.9100ms 91.6588 Ops/s 89.8171 Ops/s $\color{#35bf28}+2.05\%$
test_to_cpu_event_sync 0.1138s 13.1047ms 76.3084 Ops/s 82.2491 Ops/s $\textbf{\color{#d91a1a}-7.22\%}$
test_to_cpu_default 12.1969ms 11.9028ms 84.0140 Ops/s 82.6604 Ops/s $\color{#35bf28}+1.64\%$
test_consolidate[False-None] 4.1074ms 3.9351ms 254.1221 Ops/s 227.2346 Ops/s $\textbf{\color{#35bf28}+11.83\%}$
test_consolidate[default-None] 2.0354ms 1.9313ms 517.7749 Ops/s 504.6914 Ops/s $\color{#35bf28}+2.59\%$
test_consolidate[reduce-overhead-None] 2.0533ms 1.8680ms 535.3369 Ops/s 522.7822 Ops/s $\color{#35bf28}+2.40\%$
test_consolidate_njt[False-None] 8.5344ms 8.2450ms 121.2849 Ops/s 122.9948 Ops/s $\color{#d91a1a}-1.39\%$
test_to[False-False-None] 2.1574ms 2.0239ms 494.1050 Ops/s 485.1983 Ops/s $\color{#35bf28}+1.84\%$
test_to[True-False-None] 2.1038ms 1.8731ms 533.8733 Ops/s 537.9353 Ops/s $\color{#d91a1a}-0.76\%$
test_to[within-False-None] 6.1178ms 5.8780ms 170.1247 Ops/s 168.7860 Ops/s $\color{#35bf28}+0.79\%$
test_to[True-default-None] 0.1763s 8.6941ms 115.0207 Ops/s 68.9721 Ops/s $\textbf{\color{#35bf28}+66.76\%}$
test_to_njt[False-False-None] 8.6876ms 8.3374ms 119.9412 Ops/s 120.5636 Ops/s $\color{#d91a1a}-0.52\%$
test_to_njt[True-False-None] 7.2001ms 7.0405ms 142.0350 Ops/s 148.6091 Ops/s $\color{#d91a1a}-4.42\%$
test_to_njt[within-False-None] 15.8384ms 15.2110ms 65.7421 Ops/s 66.0898 Ops/s $\color{#d91a1a}-0.53\%$
test_creation[device0] 0.3926ms 0.1192ms 8.3928 KOps/s 8.7315 KOps/s $\color{#d91a1a}-3.88\%$
test_creation_from_tensor 0.3947ms 0.1170ms 8.5477 KOps/s 8.8894 KOps/s $\color{#d91a1a}-3.84\%$
test_add_one[memmap_tensor0] 0.2027ms 6.3749μs 156.8658 KOps/s 152.6862 KOps/s $\color{#35bf28}+2.74\%$
test_contiguous[memmap_tensor0] 27.0320μs 0.6078μs 1.6452 MOps/s 2.3119 MOps/s $\textbf{\color{#d91a1a}-28.84\%}$
test_stack[memmap_tensor0] 56.2440μs 4.5441μs 220.0652 KOps/s 216.4449 KOps/s $\color{#35bf28}+1.67\%$
test_memmaptd_index 1.0059ms 0.2532ms 3.9492 KOps/s 3.9358 KOps/s $\color{#35bf28}+0.34\%$
test_memmaptd_index_astensor 0.4928ms 0.3407ms 2.9355 KOps/s 2.9161 KOps/s $\color{#35bf28}+0.67\%$
test_memmaptd_index_op 0.9355ms 0.5828ms 1.7159 KOps/s 1.6995 KOps/s $\color{#35bf28}+0.97\%$
test_serialize_model 0.1389s 0.1362s 7.3438 Ops/s 7.3431 Ops/s $\color{#35bf28}+0.01\%$
test_serialize_model_pickle 1.3468s 1.2099s 0.8265 Ops/s 0.8225 Ops/s $\color{#35bf28}+0.49\%$
test_serialize_weights 0.1369s 0.1352s 7.3983 Ops/s 7.4226 Ops/s $\color{#d91a1a}-0.33\%$
test_serialize_weights_returnearly 0.4227s 90.4965ms 11.0501 Ops/s 10.8152 Ops/s $\color{#35bf28}+2.17\%$
test_serialize_weights_pickle 1.3660s 1.1885s 0.8414 Ops/s 0.8168 Ops/s $\color{#35bf28}+3.02\%$
test_reshape_pytree 0.2026ms 31.8398μs 31.4073 KOps/s 30.0643 KOps/s $\color{#35bf28}+4.47\%$
test_reshape_td 76.4040μs 42.5419μs 23.5062 KOps/s 24.2274 KOps/s $\color{#d91a1a}-2.98\%$
test_view_pytree 0.2304ms 31.1765μs 32.0754 KOps/s 31.5833 KOps/s $\color{#35bf28}+1.56\%$
test_view_td 90.9360μs 50.1454μs 19.9420 KOps/s 19.7692 KOps/s $\color{#35bf28}+0.87\%$
test_unbind_pytree 0.2349ms 35.0342μs 28.5435 KOps/s 26.5849 KOps/s $\textbf{\color{#35bf28}+7.37\%}$
test_unbind_td 0.1985ms 46.6216μs 21.4493 KOps/s 21.1003 KOps/s $\color{#35bf28}+1.65\%$
test_split_pytree 0.2508ms 41.5185μs 24.0856 KOps/s 23.4047 KOps/s $\color{#35bf28}+2.91\%$
test_split_td 0.1983ms 62.6894μs 15.9517 KOps/s 15.5761 KOps/s $\color{#35bf28}+2.41\%$
test_add_pytree 0.2304ms 42.1409μs 23.7299 KOps/s 23.7656 KOps/s $\color{#d91a1a}-0.15\%$
test_add_td 96.5060μs 53.1619μs 18.8105 KOps/s 19.1925 KOps/s $\color{#d91a1a}-1.99\%$
test_compile_add_one_nested[tensordict-compile] 0.2611ms 0.1407ms 7.1064 KOps/s 6.6562 KOps/s $\textbf{\color{#35bf28}+6.76\%}$
test_compile_add_one_nested[tensordict-eager] 0.2899ms 0.1896ms 5.2739 KOps/s 5.4862 KOps/s $\color{#d91a1a}-3.87\%$
test_compile_add_one_nested[pytree-compile] 0.1493ms 0.1057ms 9.4583 KOps/s 9.2071 KOps/s $\color{#35bf28}+2.73\%$
test_compile_add_one_nested[pytree-eager] 0.4409ms 0.1748ms 5.7220 KOps/s 5.6193 KOps/s $\color{#35bf28}+1.83\%$
test_compile_copy_nested[tensordict-compile] 77.7140μs 39.1783μs 25.5243 KOps/s 30.1923 KOps/s $\textbf{\color{#d91a1a}-15.46\%}$
test_compile_copy_nested[tensordict-eager] 82.8050μs 49.7612μs 20.0960 KOps/s 20.0904 KOps/s $\color{#35bf28}+0.03\%$
test_compile_copy_nested[pytree-compile] 55.8930μs 9.6019μs 104.1457 KOps/s 104.5197 KOps/s $\color{#d91a1a}-0.36\%$
test_compile_copy_nested[pytree-eager] 0.4330ms 64.2471μs 15.5649 KOps/s 15.0245 KOps/s $\color{#35bf28}+3.60\%$
test_compile_add_one_flat[tensordict-compile] 0.2277ms 0.1775ms 5.6331 KOps/s 5.4384 KOps/s $\color{#35bf28}+3.58\%$
test_compile_add_one_flat[tensordict-eager] 0.3062ms 0.2551ms 3.9205 KOps/s 4.0083 KOps/s $\color{#d91a1a}-2.19\%$
test_compile_add_one_flat[tensorclass-compile] 0.1931ms 0.1149ms 8.7068 KOps/s 8.2919 KOps/s $\textbf{\color{#35bf28}+5.00\%}$
test_compile_add_one_flat[tensorclass-eager] 0.1138ms 68.8253μs 14.5295 KOps/s 14.6742 KOps/s $\color{#d91a1a}-0.99\%$
test_compile_add_one_flat[pytree-compile] 0.1932ms 0.1559ms 6.4131 KOps/s 6.1912 KOps/s $\color{#35bf28}+3.59\%$
test_compile_add_one_flat[pytree-eager] 0.8323ms 0.5216ms 1.9171 KOps/s 1.8880 KOps/s $\color{#35bf28}+1.54\%$
test_compile_add_self_flat[tensordict-eager] 0.5573ms 0.3022ms 3.3095 KOps/s 3.2585 KOps/s $\color{#35bf28}+1.57\%$
test_compile_add_self_flat[tensordict-compile] 0.2132ms 0.1757ms 5.6922 KOps/s 5.3189 KOps/s $\textbf{\color{#35bf28}+7.02\%}$
test_compile_add_self_flat[tensorclass-eager] 0.1632ms 84.5437μs 11.8282 KOps/s 12.0020 KOps/s $\color{#d91a1a}-1.45\%$
test_compile_add_self_flat[tensorclass-compile] 0.1665ms 0.1159ms 8.6304 KOps/s 7.8602 KOps/s $\textbf{\color{#35bf28}+9.80\%}$
test_compile_add_self_flat[pytree-eager] 0.6486ms 0.4409ms 2.2682 KOps/s 2.2644 KOps/s $\color{#35bf28}+0.17\%$
test_compile_add_self_flat[pytree-compile] 0.2168ms 0.1560ms 6.4103 KOps/s 6.2925 KOps/s $\color{#35bf28}+1.87\%$
test_compile_copy_flat[tensordict-compile] 98.4760μs 24.2919μs 41.1660 KOps/s 37.3247 KOps/s $\textbf{\color{#35bf28}+10.29\%}$
test_compile_copy_flat[tensordict-eager] 76.8650μs 40.1410μs 24.9122 KOps/s 24.6815 KOps/s $\color{#35bf28}+0.93\%$
test_compile_copy_flat[pytree-compile] 58.8330μs 10.7052μs 93.4123 KOps/s 93.9283 KOps/s $\color{#d91a1a}-0.55\%$
test_compile_copy_flat[pytree-eager] 0.4000ms 50.6674μs 19.7366 KOps/s 19.6636 KOps/s $\color{#35bf28}+0.37\%$
test_compile_assign_and_add[tensordict-compile] 1.9472ms 0.1706ms 5.8618 KOps/s 5.5457 KOps/s $\textbf{\color{#35bf28}+5.70\%}$
test_compile_assign_and_add[tensordict-eager] 3.3835ms 3.2521ms 307.4961 Ops/s 311.3194 Ops/s $\color{#d91a1a}-1.23\%$
test_compile_assign_and_add[pytree-compile] 1.9124ms 0.1580ms 6.3298 KOps/s 6.1715 KOps/s $\color{#35bf28}+2.57\%$
test_compile_assign_and_add[pytree-eager] 2.8934ms 2.7741ms 360.4770 Ops/s 362.8015 Ops/s $\color{#d91a1a}-0.64\%$
test_compile_indexing[tensor-tensordict-compile] 0.1540ms 0.1064ms 9.4022 KOps/s 9.0927 KOps/s $\color{#35bf28}+3.40\%$
test_compile_indexing[tensor-tensordict-eager] 0.3093ms 71.2911μs 14.0270 KOps/s 13.6835 KOps/s $\color{#35bf28}+2.51\%$
test_compile_indexing[tensor-tensorclass-compile] 0.1506ms 94.1002μs 10.6270 KOps/s 10.4472 KOps/s $\color{#35bf28}+1.72\%$
test_compile_indexing[tensor-tensorclass-eager] 0.2513ms 44.0573μs 22.6977 KOps/s 21.2951 KOps/s $\textbf{\color{#35bf28}+6.59\%}$
test_compile_indexing[tensor-pytree-compile] 0.1306ms 94.4887μs 10.5833 KOps/s 10.3935 KOps/s $\color{#35bf28}+1.83\%$
test_compile_indexing[tensor-pytree-eager] 0.2456ms 43.8732μs 22.7930 KOps/s 21.5789 KOps/s $\textbf{\color{#35bf28}+5.63\%}$
test_compile_indexing[slice-tensordict-compile] 0.1282ms 55.0760μs 18.1567 KOps/s 17.7077 KOps/s $\color{#35bf28}+2.54\%$
test_compile_indexing[slice-tensordict-eager] 0.2241ms 27.0281μs 36.9985 KOps/s 36.4121 KOps/s $\color{#35bf28}+1.61\%$
test_compile_indexing[slice-tensorclass-compile] 0.1317ms 44.8826μs 22.2803 KOps/s 21.9740 KOps/s $\color{#35bf28}+1.39\%$
test_compile_indexing[slice-tensorclass-eager] 0.2564ms 21.4872μs 46.5394 KOps/s 43.0427 KOps/s $\textbf{\color{#35bf28}+8.12\%}$
test_compile_indexing[slice-pytree-compile] 0.1028ms 44.1971μs 22.6259 KOps/s 21.8273 KOps/s $\color{#35bf28}+3.66\%$
test_compile_indexing[slice-pytree-eager] 0.2681ms 21.7248μs 46.0303 KOps/s 44.1195 KOps/s $\color{#35bf28}+4.33\%$
test_compile_indexing[int-tensordict-compile] 0.1041ms 56.0250μs 17.8492 KOps/s 17.0900 KOps/s $\color{#35bf28}+4.44\%$
test_compile_indexing[int-tensordict-eager] 0.2568ms 27.2972μs 36.6338 KOps/s 36.6135 KOps/s $\color{#35bf28}+0.06\%$
test_compile_indexing[int-tensorclass-compile] 83.2450μs 44.3655μs 22.5400 KOps/s 21.2491 KOps/s $\textbf{\color{#35bf28}+6.08\%}$
test_compile_indexing[int-tensorclass-eager] 0.2689ms 21.5618μs 46.3784 KOps/s 44.5385 KOps/s $\color{#35bf28}+4.13\%$
test_compile_indexing[int-pytree-compile] 90.7750μs 45.2383μs 22.1052 KOps/s 21.1576 KOps/s $\color{#35bf28}+4.48\%$
test_compile_indexing[int-pytree-eager] 0.2790ms 21.4576μs 46.6036 KOps/s 44.6095 KOps/s $\color{#35bf28}+4.47\%$
test_mod_add[eager] 94.8960μs 50.0680μs 19.9729 KOps/s 19.4974 KOps/s $\color{#35bf28}+2.44\%$
test_mod_add[compile] 0.1610ms 0.1080ms 9.2573 KOps/s 9.5204 KOps/s $\color{#d91a1a}-2.76\%$
test_mod_add[compile-overhead] 0.2341ms 0.1448ms 6.9073 KOps/s 6.7523 KOps/s $\color{#35bf28}+2.29\%$
test_mod_wrap[eager] 0.3889ms 0.2877ms 3.4753 KOps/s 3.5124 KOps/s $\color{#d91a1a}-1.06\%$
test_mod_wrap[compile] 0.4095ms 0.3552ms 2.8154 KOps/s 2.8066 KOps/s $\color{#35bf28}+0.31\%$
test_mod_wrap[compile-overhead] 7.2951ms 4.0153ms 249.0466 Ops/s 248.9038 Ops/s $\color{#35bf28}+0.06\%$
test_mod_wrap_and_backward[eager] 1.6833ms 1.4818ms 674.8433 Ops/s 665.7288 Ops/s $\color{#35bf28}+1.37\%$
test_mod_wrap_and_backward[compile] 1.6168ms 1.4241ms 702.1890 Ops/s 700.9499 Ops/s $\color{#35bf28}+0.18\%$
test_mod_wrap_and_backward[compile-overhead] 1.2180ms 0.8651ms 1.1559 KOps/s 1.1259 KOps/s $\color{#35bf28}+2.67\%$
test_seq_add[eager] 0.2426ms 0.1533ms 6.5234 KOps/s 6.5222 KOps/s $\color{#35bf28}+0.02\%$
test_seq_add[compile] 0.5758ms 0.1169ms 8.5562 KOps/s 8.5941 KOps/s $\color{#d91a1a}-0.44\%$
test_seq_add[compile-overhead] 0.2477ms 0.1506ms 6.6421 KOps/s 6.4068 KOps/s $\color{#35bf28}+3.67\%$
test_seq_wrap[eager] 0.6684ms 0.5351ms 1.8688 KOps/s 1.9658 KOps/s $\color{#d91a1a}-4.93\%$
test_seq_wrap[compile] 0.4656ms 0.3617ms 2.7646 KOps/s 2.7493 KOps/s $\color{#35bf28}+0.56\%$
test_seq_wrap[compile-overhead] 0.3459ms 0.2599ms 3.8480 KOps/s 3.7834 KOps/s $\color{#35bf28}+1.71\%$
test_func_call_runtime[False-eager] 0.9330ms 0.8342ms 1.1987 KOps/s 1.1707 KOps/s $\color{#35bf28}+2.39\%$
test_func_call_runtime[False-compile] 0.9699ms 0.8911ms 1.1222 KOps/s 1.1051 KOps/s $\color{#35bf28}+1.55\%$
test_func_call_runtime[False-compile-overhead] 0.7081ms 0.4427ms 2.2591 KOps/s 2.2282 KOps/s $\color{#35bf28}+1.38\%$
test_func_call_runtime[True-eager] 1.1679ms 1.0668ms 937.3890 Ops/s 943.6298 Ops/s $\color{#d91a1a}-0.66\%$
test_func_call_runtime[True-compile] 0.9983ms 0.8992ms 1.1121 KOps/s 1.0866 KOps/s $\color{#35bf28}+2.35\%$
test_func_call_runtime[True-compile-overhead] 0.5124ms 0.4568ms 2.1891 KOps/s 2.1547 KOps/s $\color{#35bf28}+1.60\%$
test_func_call_cm_runtime[False-eager] 0.9567ms 0.8628ms 1.1590 KOps/s 1.1947 KOps/s $\color{#d91a1a}-2.99\%$
test_func_call_cm_runtime[False-compile] 0.9891ms 0.8890ms 1.1248 KOps/s 1.1166 KOps/s $\color{#35bf28}+0.74\%$
test_func_call_cm_runtime[False-compile-overhead] 0.5282ms 0.4450ms 2.2474 KOps/s 2.2204 KOps/s $\color{#35bf28}+1.22\%$
test_func_call_cm_runtime[True-eager] 1.3190ms 1.2149ms 823.1422 Ops/s 829.5915 Ops/s $\color{#d91a1a}-0.78\%$
test_func_call_cm_runtime[True-compile] 1.0288ms 0.9384ms 1.0657 KOps/s 1.0679 KOps/s $\color{#d91a1a}-0.21\%$
test_func_call_cm_runtime[True-compile-overhead] 0.5691ms 0.4901ms 2.0405 KOps/s 2.0131 KOps/s $\color{#35bf28}+1.36\%$
test_vmap_func_call_cm_runtime[eager] 2.8309ms 2.3314ms 428.9278 Ops/s 428.3489 Ops/s $\color{#35bf28}+0.14\%$
test_vmap_func_call_cm_runtime[compile] 1.1060ms 0.9519ms 1.0505 KOps/s 1.0452 KOps/s $\color{#35bf28}+0.51\%$
test_vmap_func_call_cm_runtime[compile-overhead] 0.5367ms 0.4936ms 2.0259 KOps/s 1.9857 KOps/s $\color{#35bf28}+2.02\%$
test_distributed 2.7742ms 0.1633ms 6.1255 KOps/s 6.5466 KOps/s $\textbf{\color{#d91a1a}-6.43\%}$
test_tdmodule 0.6192ms 28.5176μs 35.0661 KOps/s 35.9121 KOps/s $\color{#d91a1a}-2.36\%$
test_tdmodule_dispatch 76.1250μs 44.7668μs 22.3380 KOps/s 22.3102 KOps/s $\color{#35bf28}+0.12\%$
test_tdseq 47.5930μs 26.6632μs 37.5049 KOps/s 37.5887 KOps/s $\color{#d91a1a}-0.22\%$
test_tdseq_dispatch 70.7040μs 46.7543μs 21.3884 KOps/s 21.0136 KOps/s $\color{#35bf28}+1.78\%$
test_instantiation_functorch 2.0786ms 1.9710ms 507.3671 Ops/s 501.9009 Ops/s $\color{#35bf28}+1.09\%$
test_exec_functorch 0.2717ms 0.1721ms 5.8102 KOps/s 5.6242 KOps/s $\color{#35bf28}+3.31\%$
test_exec_functional_call 0.2145ms 0.1556ms 6.4283 KOps/s 6.3302 KOps/s $\color{#35bf28}+1.55\%$
test_exec_td_decorator 0.4565ms 0.2276ms 4.3937 KOps/s 4.3226 KOps/s $\color{#35bf28}+1.64\%$
test_vmap_mlp_speed_decorator[True-True] 1.0377ms 0.8087ms 1.2366 KOps/s 1.2270 KOps/s $\color{#35bf28}+0.78\%$
test_vmap_mlp_speed_decorator[True-False] 0.9917ms 0.8086ms 1.2368 KOps/s 1.2275 KOps/s $\color{#35bf28}+0.75\%$
test_vmap_mlp_speed_decorator[False-True] 0.8632ms 0.7021ms 1.4244 KOps/s 1.4241 KOps/s $\color{#35bf28}+0.02\%$
test_vmap_mlp_speed_decorator[False-False] 0.8826ms 0.7056ms 1.4172 KOps/s 1.4208 KOps/s $\color{#d91a1a}-0.25\%$
test_vmap_transformer_speed_decorator[True-True] 20.4598ms 20.2040ms 49.4951 Ops/s 49.2635 Ops/s $\color{#35bf28}+0.47\%$
test_vmap_transformer_speed_decorator[True-False] 20.3492ms 20.2149ms 49.4686 Ops/s 49.0742 Ops/s $\color{#35bf28}+0.80\%$
test_vmap_transformer_speed_decorator[False-True] 20.5936ms 20.0497ms 49.8762 Ops/s 49.7514 Ops/s $\color{#35bf28}+0.25\%$
test_vmap_transformer_speed_decorator[False-False] 20.7344ms 20.0648ms 49.8385 Ops/s 49.7340 Ops/s $\color{#35bf28}+0.21\%$
test_to_module_speed[True] 1.9884ms 1.4124ms 708.0130 Ops/s 709.8908 Ops/s $\color{#d91a1a}-0.26\%$
test_to_module_speed[False] 1.9083ms 1.3893ms 719.7843 Ops/s 718.4337 Ops/s $\color{#35bf28}+0.19\%$
test_tc_init 84.3050μs 44.2712μs 22.5881 KOps/s 22.7545 KOps/s $\color{#d91a1a}-0.73\%$
test_tc_init_tensor_only 33.0820μs 9.4258μs 106.0916 KOps/s 106.8466 KOps/s $\color{#d91a1a}-0.71\%$
test_tc_init_nested 0.1236ms 86.9352μs 11.5028 KOps/s 11.4678 KOps/s $\color{#35bf28}+0.31\%$
test_tc_init_many_fields 46.2020μs 15.6364μs 63.9533 KOps/s 65.5845 KOps/s $\color{#d91a1a}-2.49\%$
test_tc_first_layer_tensor 21.9010μs 1.7190μs 581.7198 KOps/s 579.2529 KOps/s $\color{#35bf28}+0.43\%$
test_tc_first_layer_tensor_only 5.0560μs 0.7043μs 1.4198 MOps/s 1.4138 MOps/s $\color{#35bf28}+0.43\%$
test_tc_first_layer_tensor_set 30.6320μs 3.8035μs 262.9168 KOps/s 269.7289 KOps/s $\color{#d91a1a}-2.53\%$
test_tc_first_layer_tensor_only_set 35.3120μs 2.9916μs 334.2668 KOps/s 336.8116 KOps/s $\color{#d91a1a}-0.76\%$
test_tc_first_layer_nontensor 39.1930μs 5.8332μs 171.4331 KOps/s 171.8799 KOps/s $\color{#d91a1a}-0.26\%$
test_tc_second_layer_tensor 35.0820μs 4.1601μs 240.3769 KOps/s 238.8315 KOps/s $\color{#35bf28}+0.65\%$
test_tc_second_layer_nontensor 40.6430μs 8.2308μs 121.4942 KOps/s 120.8731 KOps/s $\color{#35bf28}+0.51\%$
test_unbind 0.2736s 16.0122ms 62.4525 Ops/s 60.0695 Ops/s $\color{#35bf28}+3.97\%$
test_full_like 16.8527ms 16.6969ms 59.8914 Ops/s 226.8041 Ops/s $\textbf{\color{#d91a1a}-73.59\%}$
test_zeros_like 16.9735ms 16.6742ms 59.9731 Ops/s 229.4094 Ops/s $\textbf{\color{#d91a1a}-73.86\%}$
test_ones_like 16.8235ms 16.6740ms 59.9735 Ops/s 229.3017 Ops/s $\textbf{\color{#d91a1a}-73.85\%}$
test_clone 17.8690ms 17.6288ms 56.7255 Ops/s 157.1331 Ops/s $\textbf{\color{#d91a1a}-63.90\%}$
test_squeeze 94.3950μs 13.5815μs 73.6298 KOps/s 72.5666 KOps/s $\color{#35bf28}+1.47\%$
test_unsqueeze 0.1554ms 0.1088ms 9.1897 KOps/s 9.3016 KOps/s $\color{#d91a1a}-1.20\%$
test_split 0.2498ms 0.1771ms 5.6476 KOps/s 5.5554 KOps/s $\color{#35bf28}+1.66\%$
test_permute 0.2610ms 0.2079ms 4.8091 KOps/s 4.7670 KOps/s $\color{#35bf28}+0.88\%$
test_stack 51.5235ms 51.1174ms 19.5628 Ops/s 19.6029 Ops/s $\color{#d91a1a}-0.20\%$
test_cat 51.2330ms 51.0868ms 19.5745 Ops/s 19.7907 Ops/s $\color{#d91a1a}-1.09\%$

@github-actions

github-actions Bot commented Feb 18, 2026

Copy link
Copy Markdown
Contributor

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

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

Expand to view detailed results
Name Max Mean Ops Ops on Repo HEAD Change
test_plain_set_nested 36.2710μs 14.7509μs 67.7923 KOps/s 67.6200 KOps/s $\color{#35bf28}+0.25\%$
test_plain_set_stack_nested 36.7800μs 15.0248μs 66.5567 KOps/s 67.4208 KOps/s $\color{#d91a1a}-1.28\%$
test_plain_set_nested_inplace 44.1410μs 16.3063μs 61.3259 KOps/s 60.6979 KOps/s $\color{#35bf28}+1.03\%$
test_plain_set_stack_nested_inplace 41.9610μs 16.2303μs 61.6132 KOps/s 60.9229 KOps/s $\color{#35bf28}+1.13\%$
test_items 40.6100μs 5.8101μs 172.1134 KOps/s 168.0163 KOps/s $\color{#35bf28}+2.44\%$
test_items_nested 0.5618ms 0.4585ms 2.1808 KOps/s 2.1993 KOps/s $\color{#d91a1a}-0.84\%$
test_items_nested_locked 0.5744ms 0.4592ms 2.1775 KOps/s 2.1762 KOps/s $\color{#35bf28}+0.06\%$
test_items_nested_leaf 0.1487ms 95.3132μs 10.4917 KOps/s 10.1366 KOps/s $\color{#35bf28}+3.50\%$
test_items_stack_nested 0.5203ms 0.4633ms 2.1585 KOps/s 2.1898 KOps/s $\color{#d91a1a}-1.43\%$
test_items_stack_nested_leaf 0.1434ms 97.0671μs 10.3021 KOps/s 10.2874 KOps/s $\color{#35bf28}+0.14\%$
test_items_stack_nested_locked 0.5339ms 0.4697ms 2.1289 KOps/s 2.1682 KOps/s $\color{#d91a1a}-1.81\%$
test_keys 39.1600μs 4.2193μs 237.0075 KOps/s 237.2114 KOps/s $\color{#d91a1a}-0.09\%$
test_keys_nested 0.1634ms 0.1204ms 8.3047 KOps/s 8.2944 KOps/s $\color{#35bf28}+0.12\%$
test_keys_nested_locked 87.9880ms 0.1399ms 7.1496 KOps/s 7.7397 KOps/s $\textbf{\color{#d91a1a}-7.62\%}$
test_keys_nested_leaf 0.1743ms 0.1101ms 9.0804 KOps/s 9.0272 KOps/s $\color{#35bf28}+0.59\%$
test_keys_stack_nested 0.1858ms 0.1203ms 8.3123 KOps/s 8.3242 KOps/s $\color{#d91a1a}-0.14\%$
test_keys_stack_nested_leaf 0.1744ms 0.1109ms 9.0152 KOps/s 8.9896 KOps/s $\color{#35bf28}+0.28\%$
test_keys_stack_nested_locked 0.2070ms 0.1289ms 7.7567 KOps/s 7.7587 KOps/s $\color{#d91a1a}-0.03\%$
test_values 7.4960μs 1.0294μs 971.4067 KOps/s 977.9683 KOps/s $\color{#d91a1a}-0.67\%$
test_values_nested 74.2010μs 47.9054μs 20.8745 KOps/s 20.7892 KOps/s $\color{#35bf28}+0.41\%$
test_values_nested_locked 0.1508ms 50.2482μs 19.9012 KOps/s 19.3996 KOps/s $\color{#35bf28}+2.59\%$
test_values_nested_leaf 88.3420μs 54.0412μs 18.5044 KOps/s 18.2966 KOps/s $\color{#35bf28}+1.14\%$
test_values_stack_nested 82.8920μs 47.9025μs 20.8757 KOps/s 20.8571 KOps/s $\color{#35bf28}+0.09\%$
test_values_stack_nested_leaf 79.9910μs 53.9403μs 18.5390 KOps/s 18.4459 KOps/s $\color{#35bf28}+0.50\%$
test_values_stack_nested_locked 86.9710μs 51.3258μs 19.4834 KOps/s 19.5372 KOps/s $\color{#d91a1a}-0.28\%$
test_membership 24.4210μs 1.0386μs 962.7891 KOps/s 1.1762 MOps/s $\textbf{\color{#d91a1a}-18.15\%}$
test_membership_nested 32.7710μs 2.9506μs 338.9173 KOps/s 341.6444 KOps/s $\color{#d91a1a}-0.80\%$
test_membership_nested_leaf 36.9310μs 2.9663μs 337.1235 KOps/s 341.3362 KOps/s $\color{#d91a1a}-1.23\%$
test_membership_stacked_nested 29.3200μs 2.9491μs 339.0808 KOps/s 340.0544 KOps/s $\color{#d91a1a}-0.29\%$
test_membership_stacked_nested_leaf 32.5100μs 2.9416μs 339.9484 KOps/s 342.9414 KOps/s $\color{#d91a1a}-0.87\%$
test_membership_nested_last 40.0410μs 4.4036μs 227.0891 KOps/s 227.2189 KOps/s $\color{#d91a1a}-0.06\%$
test_membership_nested_leaf_last 28.6100μs 4.4015μs 227.1964 KOps/s 227.6844 KOps/s $\color{#d91a1a}-0.21\%$
test_membership_stacked_nested_last 25.2510μs 4.3798μs 228.3193 KOps/s 229.8532 KOps/s $\color{#d91a1a}-0.67\%$
test_membership_stacked_nested_leaf_last 31.0400μs 4.3611μs 229.2985 KOps/s 228.3607 KOps/s $\color{#35bf28}+0.41\%$
test_nested_getleaf 55.5110μs 21.6449μs 46.2002 KOps/s 46.1023 KOps/s $\color{#35bf28}+0.21\%$
test_nested_get 48.8410μs 20.6519μs 48.4217 KOps/s 49.0089 KOps/s $\color{#d91a1a}-1.20\%$
test_stacked_getleaf 62.2710μs 21.5433μs 46.4181 KOps/s 47.2996 KOps/s $\color{#d91a1a}-1.86\%$
test_stacked_get 50.3100μs 20.5019μs 48.7759 KOps/s 49.4596 KOps/s $\color{#d91a1a}-1.38\%$
test_nested_getitemleaf 48.9010μs 22.3275μs 44.7878 KOps/s 44.7683 KOps/s $\color{#35bf28}+0.04\%$
test_nested_getitem 46.4010μs 21.1092μs 47.3727 KOps/s 47.6321 KOps/s $\color{#d91a1a}-0.54\%$
test_stacked_getitemleaf 52.1500μs 22.2686μs 44.9062 KOps/s 45.3980 KOps/s $\color{#d91a1a}-1.08\%$
test_stacked_getitem 51.9710μs 20.8313μs 48.0047 KOps/s 47.0505 KOps/s $\color{#35bf28}+2.03\%$
test_lock_nested 7.3801ms 0.4816ms 2.0762 KOps/s 2.0684 KOps/s $\color{#35bf28}+0.38\%$
test_lock_stack_nested 0.5365ms 0.4795ms 2.0855 KOps/s 2.0549 KOps/s $\color{#35bf28}+1.49\%$
test_unlock_nested 0.4755ms 0.3852ms 2.5960 KOps/s 2.5782 KOps/s $\color{#35bf28}+0.69\%$
test_unlock_stack_nested 0.4443ms 0.3856ms 2.5935 KOps/s 2.5448 KOps/s $\color{#35bf28}+1.91\%$
test_flatten_speed 0.1785ms 0.1213ms 8.2470 KOps/s 8.1538 KOps/s $\color{#35bf28}+1.14\%$
test_unflatten_speed 0.6448ms 0.6034ms 1.6572 KOps/s 1.7361 KOps/s $\color{#d91a1a}-4.55\%$
test_common_ops 0.8750ms 0.7229ms 1.3833 KOps/s 1.4521 KOps/s $\color{#d91a1a}-4.74\%$
test_creation 98.2020μs 2.9228μs 342.1338 KOps/s 339.8406 KOps/s $\color{#35bf28}+0.67\%$
test_creation_empty 38.8610μs 6.1656μs 162.1891 KOps/s 162.3459 KOps/s $\color{#d91a1a}-0.10\%$
test_creation_nested_1 41.9110μs 10.8411μs 92.2412 KOps/s 94.4306 KOps/s $\color{#d91a1a}-2.32\%$
test_creation_nested_2 43.9610μs 11.8841μs 84.1460 KOps/s 84.0358 KOps/s $\color{#35bf28}+0.13\%$
test_creation_many_keys[10] 52.6310μs 18.3594μs 54.4681 KOps/s 54.5789 KOps/s $\color{#d91a1a}-0.20\%$
test_creation_many_keys[50] 0.1126ms 78.1117μs 12.8022 KOps/s 12.7427 KOps/s $\color{#35bf28}+0.47\%$
test_creation_many_keys[100] 0.1988ms 0.1523ms 6.5666 KOps/s 6.5262 KOps/s $\color{#35bf28}+0.62\%$
test_creation_nested_many_keys[10] 83.6810μs 39.2072μs 25.5055 KOps/s 25.3835 KOps/s $\color{#35bf28}+0.48\%$
test_creation_nested_many_keys[50] 0.2004ms 0.1595ms 6.2677 KOps/s 6.2503 KOps/s $\color{#35bf28}+0.28\%$
test_clone 44.2910μs 13.5501μs 73.8003 KOps/s 74.2755 KOps/s $\color{#d91a1a}-0.64\%$
test_getitem[int] 1.7298ms 14.5304μs 68.8213 KOps/s 54.9953 KOps/s $\textbf{\color{#35bf28}+25.14\%}$
test_getitem[slice_int] 0.1441ms 24.5907μs 40.6657 KOps/s 40.3576 KOps/s $\color{#35bf28}+0.76\%$
test_getitem[range] 0.1908ms 65.1167μs 15.3570 KOps/s 15.9439 KOps/s $\color{#d91a1a}-3.68\%$
test_getitem[tuple] 0.1443ms 23.7953μs 42.0252 KOps/s 41.7003 KOps/s $\color{#35bf28}+0.78\%$
test_getitem[list] 0.1794ms 59.8112μs 16.7193 KOps/s 16.9767 KOps/s $\color{#d91a1a}-1.52\%$
test_setitem_dim[int] 46.8910μs 26.4364μs 37.8266 KOps/s 37.4927 KOps/s $\color{#35bf28}+0.89\%$
test_setitem_dim[slice_int] 70.4510μs 45.0993μs 22.1733 KOps/s 22.5740 KOps/s $\color{#d91a1a}-1.78\%$
test_setitem_dim[range] 0.1551ms 94.5034μs 10.5816 KOps/s 10.5417 KOps/s $\color{#35bf28}+0.38\%$
test_setitem_dim[tuple] 61.5810μs 40.5990μs 24.6312 KOps/s 24.3023 KOps/s $\color{#35bf28}+1.35\%$
test_setitem 56.0410μs 18.1732μs 55.0261 KOps/s 55.6289 KOps/s $\color{#d91a1a}-1.08\%$
test_set 52.4910μs 17.4598μs 57.2744 KOps/s 58.4450 KOps/s $\color{#d91a1a}-2.00\%$
test_set_shared 0.5234ms 0.2097ms 4.7681 KOps/s 4.8548 KOps/s $\color{#d91a1a}-1.79\%$
test_update 0.2019ms 22.4954μs 44.4535 KOps/s 46.1478 KOps/s $\color{#d91a1a}-3.67\%$
test_update_nested 84.2320μs 35.0551μs 28.5265 KOps/s 29.2862 KOps/s $\color{#d91a1a}-2.59\%$
test_update__nested 0.5371ms 36.0352μs 27.7507 KOps/s 28.3166 KOps/s $\color{#d91a1a}-2.00\%$
test_set_nested 60.5110μs 19.9083μs 50.2304 KOps/s 52.4509 KOps/s $\color{#d91a1a}-4.23\%$
test_set_nested_new 62.0510μs 24.0954μs 41.5017 KOps/s 40.8909 KOps/s $\color{#35bf28}+1.49\%$
test_select 98.6010μs 42.9603μs 23.2773 KOps/s 23.7289 KOps/s $\color{#d91a1a}-1.90\%$
test_select_nested 0.1133ms 74.4290μs 13.4356 KOps/s 13.2847 KOps/s $\color{#35bf28}+1.14\%$
test_exclude_nested 0.1386ms 91.4033μs 10.9405 KOps/s 10.7755 KOps/s $\color{#35bf28}+1.53\%$
test_empty[True] 0.7297ms 0.3895ms 2.5676 KOps/s 2.5365 KOps/s $\color{#35bf28}+1.23\%$
test_empty[False] 14.3828μs 1.3179μs 758.8007 KOps/s 750.1872 KOps/s $\color{#35bf28}+1.15\%$
test_to 0.1029ms 71.4526μs 13.9953 KOps/s 13.7536 KOps/s $\color{#35bf28}+1.76\%$
test_to_nonblocking 0.1205ms 66.8943μs 14.9490 KOps/s 15.3702 KOps/s $\color{#d91a1a}-2.74\%$
test_unbind_speed 0.3853ms 0.3301ms 3.0298 KOps/s 3.0318 KOps/s $\color{#d91a1a}-0.06\%$
test_unbind_speed_stack0 0.4075ms 0.3401ms 2.9407 KOps/s 3.0382 KOps/s $\color{#d91a1a}-3.21\%$
test_unbind_speed_stack1 0.1021s 0.9154ms 1.0924 KOps/s 1.1799 KOps/s $\textbf{\color{#d91a1a}-7.42\%}$
test_split 1.2325ms 1.1432ms 874.7480 Ops/s 785.0502 Ops/s $\textbf{\color{#35bf28}+11.43\%}$
test_chunk 0.1022s 1.2149ms 823.1185 Ops/s 909.3889 Ops/s $\textbf{\color{#d91a1a}-9.49\%}$
test_to_cpu_blocking 19.4357ms 18.9286ms 52.8302 Ops/s 53.1222 Ops/s $\color{#d91a1a}-0.55\%$
test_to_cpu_global_sync 11.2072ms 11.0607ms 90.4104 Ops/s 81.4411 Ops/s $\textbf{\color{#35bf28}+11.01\%}$
test_to_cpu_event_sync 0.1136s 13.2009ms 75.7524 Ops/s 83.5061 Ops/s $\textbf{\color{#d91a1a}-9.29\%}$
test_to_cpu_default 12.3662ms 11.9726ms 83.5243 Ops/s 83.5347 Ops/s $\color{#d91a1a}-0.01\%$
test_consolidate[False-None] 4.1688ms 4.0958ms 244.1500 Ops/s 220.0173 Ops/s $\textbf{\color{#35bf28}+10.97\%}$
test_consolidate[default-None] 2.1199ms 2.0174ms 495.6779 Ops/s 480.5017 Ops/s $\color{#35bf28}+3.16\%$
test_consolidate[reduce-overhead-None] 1.9998ms 1.9268ms 518.9845 Ops/s 504.1947 Ops/s $\color{#35bf28}+2.93\%$
test_consolidate_njt[False-None] 8.7669ms 8.4633ms 118.1569 Ops/s 117.4746 Ops/s $\color{#35bf28}+0.58\%$
test_to[False-False-None] 2.1528ms 2.0567ms 486.2087 Ops/s 477.9259 Ops/s $\color{#35bf28}+1.73\%$
test_to[True-False-None] 2.1885ms 1.9367ms 516.3529 Ops/s 511.1360 Ops/s $\color{#35bf28}+1.02\%$
test_to[within-False-None] 6.2531ms 6.1086ms 163.7039 Ops/s 162.8844 Ops/s $\color{#35bf28}+0.50\%$
test_to[True-default-None] 8.1224ms 7.8761ms 126.9660 Ops/s 128.8791 Ops/s $\color{#d91a1a}-1.48\%$
test_to_njt[False-False-None] 8.9822ms 8.7248ms 114.6152 Ops/s 117.4990 Ops/s $\color{#d91a1a}-2.45\%$
test_to_njt[True-False-None] 7.2942ms 7.0138ms 142.5770 Ops/s 144.0544 Ops/s $\color{#d91a1a}-1.03\%$
test_to_njt[within-False-None] 16.1677ms 15.6795ms 63.7775 Ops/s 64.4385 Ops/s $\color{#d91a1a}-1.03\%$
test_creation[device0] 0.3934ms 0.1216ms 8.2255 KOps/s 8.5556 KOps/s $\color{#d91a1a}-3.86\%$
test_creation_from_tensor 0.4119ms 0.1147ms 8.7204 KOps/s 8.7467 KOps/s $\color{#d91a1a}-0.30\%$
test_add_one[memmap_tensor0] 0.3663ms 6.6061μs 151.3751 KOps/s 152.4554 KOps/s $\color{#d91a1a}-0.71\%$
test_contiguous[memmap_tensor0] 14.3000μs 0.6759μs 1.4794 MOps/s 2.0013 MOps/s $\textbf{\color{#d91a1a}-26.08\%}$
test_stack[memmap_tensor0] 33.6810μs 4.6444μs 215.3127 KOps/s 218.7411 KOps/s $\color{#d91a1a}-1.57\%$
test_memmaptd_index 1.0426ms 0.2639ms 3.7899 KOps/s 3.7966 KOps/s $\color{#d91a1a}-0.18\%$
test_memmaptd_index_astensor 0.5228ms 0.3602ms 2.7760 KOps/s 2.7655 KOps/s $\color{#35bf28}+0.38\%$
test_memmaptd_index_op 0.8685ms 0.6101ms 1.6391 KOps/s 1.6440 KOps/s $\color{#d91a1a}-0.30\%$
test_serialize_model 0.3093s 0.1664s 6.0113 Ops/s 7.2424 Ops/s $\textbf{\color{#d91a1a}-17.00\%}$
test_serialize_model_pickle 1.8822s 1.3711s 0.7294 Ops/s 0.8260 Ops/s $\textbf{\color{#d91a1a}-11.69\%}$
test_serialize_weights 0.1386s 0.1361s 7.3478 Ops/s 7.3350 Ops/s $\color{#35bf28}+0.17\%$
test_serialize_weights_returnearly 83.6043ms 70.7525ms 14.1338 Ops/s 10.6905 Ops/s $\textbf{\color{#35bf28}+32.21\%}$
test_serialize_weights_pickle 1.3622s 1.2133s 0.8242 Ops/s 0.8231 Ops/s $\color{#35bf28}+0.14\%$
test_reshape_pytree 0.2076ms 32.9482μs 30.3506 KOps/s 30.1015 KOps/s $\color{#35bf28}+0.83\%$
test_reshape_td 92.4320μs 46.2694μs 21.6126 KOps/s 22.6999 KOps/s $\color{#d91a1a}-4.79\%$
test_view_pytree 0.2299ms 34.4536μs 29.0245 KOps/s 30.3760 KOps/s $\color{#d91a1a}-4.45\%$
test_view_td 97.8520μs 55.5878μs 17.9896 KOps/s 18.8508 KOps/s $\color{#d91a1a}-4.57\%$
test_unbind_pytree 0.2468ms 36.8344μs 27.1485 KOps/s 27.2184 KOps/s $\color{#d91a1a}-0.26\%$
test_unbind_td 0.1603ms 51.1383μs 19.5548 KOps/s 20.4776 KOps/s $\color{#d91a1a}-4.51\%$
test_split_pytree 0.2511ms 42.6461μs 23.4488 KOps/s 23.4007 KOps/s $\color{#35bf28}+0.21\%$
test_split_td 0.2188ms 65.6453μs 15.2334 KOps/s 15.3488 KOps/s $\color{#d91a1a}-0.75\%$
test_add_pytree 0.2377ms 44.2108μs 22.6189 KOps/s 23.3853 KOps/s $\color{#d91a1a}-3.28\%$
test_add_td 0.1020ms 54.3528μs 18.3983 KOps/s 18.7562 KOps/s $\color{#d91a1a}-1.91\%$
test_compile_add_one_nested[tensordict-compile] 0.5546ms 0.1422ms 7.0327 KOps/s 6.7470 KOps/s $\color{#35bf28}+4.23\%$
test_compile_add_one_nested[tensordict-eager] 0.4921ms 0.1945ms 5.1420 KOps/s 5.2164 KOps/s $\color{#d91a1a}-1.43\%$
test_compile_add_one_nested[pytree-compile] 0.1622ms 0.1085ms 9.2201 KOps/s 8.7804 KOps/s $\textbf{\color{#35bf28}+5.01\%}$
test_compile_add_one_nested[pytree-eager] 0.4365ms 0.1821ms 5.4914 KOps/s 5.3630 KOps/s $\color{#35bf28}+2.39\%$
test_compile_copy_nested[tensordict-compile] 63.8010μs 30.0768μs 33.2483 KOps/s 30.7948 KOps/s $\textbf{\color{#35bf28}+7.97\%}$
test_compile_copy_nested[tensordict-eager] 90.4910μs 52.3130μs 19.1157 KOps/s 19.2158 KOps/s $\color{#d91a1a}-0.52\%$
test_compile_copy_nested[pytree-compile] 63.4510μs 9.7755μs 102.2964 KOps/s 100.1681 KOps/s $\color{#35bf28}+2.12\%$
test_compile_copy_nested[pytree-eager] 0.4638ms 68.3980μs 14.6203 KOps/s 14.3609 KOps/s $\color{#35bf28}+1.81\%$
test_compile_add_one_flat[tensordict-compile] 0.2699ms 0.1768ms 5.6556 KOps/s 5.2725 KOps/s $\textbf{\color{#35bf28}+7.27\%}$
test_compile_add_one_flat[tensordict-eager] 0.3302ms 0.2569ms 3.8924 KOps/s 3.8894 KOps/s $\color{#35bf28}+0.08\%$
test_compile_add_one_flat[tensorclass-compile] 0.1744ms 0.1170ms 8.5468 KOps/s 8.2025 KOps/s $\color{#35bf28}+4.20\%$
test_compile_add_one_flat[tensorclass-eager] 0.1089ms 69.3551μs 14.4185 KOps/s 13.9105 KOps/s $\color{#35bf28}+3.65\%$
test_compile_add_one_flat[pytree-compile] 0.2182ms 0.1602ms 6.2420 KOps/s 6.1337 KOps/s $\color{#35bf28}+1.77\%$
test_compile_add_one_flat[pytree-eager] 0.8460ms 0.5463ms 1.8304 KOps/s 1.7844 KOps/s $\color{#35bf28}+2.58\%$
test_compile_add_self_flat[tensordict-eager] 0.3725ms 0.3077ms 3.2503 KOps/s 3.1768 KOps/s $\color{#35bf28}+2.31\%$
test_compile_add_self_flat[tensordict-compile] 0.2231ms 0.1798ms 5.5602 KOps/s 5.1388 KOps/s $\textbf{\color{#35bf28}+8.20\%}$
test_compile_add_self_flat[tensorclass-eager] 0.1382ms 85.7270μs 11.6649 KOps/s 11.5707 KOps/s $\color{#35bf28}+0.81\%$
test_compile_add_self_flat[tensorclass-compile] 0.2364ms 0.1193ms 8.3794 KOps/s 7.7735 KOps/s $\textbf{\color{#35bf28}+7.79\%}$
test_compile_add_self_flat[pytree-eager] 0.6673ms 0.4478ms 2.2334 KOps/s 2.2348 KOps/s $\color{#d91a1a}-0.06\%$
test_compile_add_self_flat[pytree-compile] 0.2041ms 0.1591ms 6.2864 KOps/s 6.1311 KOps/s $\color{#35bf28}+2.53\%$
test_compile_copy_flat[tensordict-compile] 60.6310μs 24.0207μs 41.6308 KOps/s 39.5938 KOps/s $\textbf{\color{#35bf28}+5.14\%}$
test_compile_copy_flat[tensordict-eager] 78.2010μs 41.5226μs 24.0833 KOps/s 24.3785 KOps/s $\color{#d91a1a}-1.21\%$
test_compile_copy_flat[pytree-compile] 61.4510μs 10.8682μs 92.0112 KOps/s 91.1960 KOps/s $\color{#35bf28}+0.89\%$
test_compile_copy_flat[pytree-eager] 0.4046ms 52.0920μs 19.1968 KOps/s 19.1805 KOps/s $\color{#35bf28}+0.08\%$
test_compile_assign_and_add[tensordict-compile] 2.0120ms 0.1742ms 5.7402 KOps/s 5.5671 KOps/s $\color{#35bf28}+3.11\%$
test_compile_assign_and_add[tensordict-eager] 3.4116ms 3.2968ms 303.3254 Ops/s 300.3074 Ops/s $\color{#35bf28}+1.00\%$
test_compile_assign_and_add[pytree-compile] 1.9381ms 0.1611ms 6.2067 KOps/s 6.0799 KOps/s $\color{#35bf28}+2.08\%$
test_compile_assign_and_add[pytree-eager] 2.9736ms 2.8500ms 350.8816 Ops/s 351.4186 Ops/s $\color{#d91a1a}-0.15\%$
test_compile_indexing[tensor-tensordict-compile] 0.1640ms 0.1090ms 9.1718 KOps/s 8.9901 KOps/s $\color{#35bf28}+2.02\%$
test_compile_indexing[tensor-tensordict-eager] 0.3049ms 72.3642μs 13.8190 KOps/s 13.4951 KOps/s $\color{#35bf28}+2.40\%$
test_compile_indexing[tensor-tensorclass-compile] 0.1558ms 97.0562μs 10.3033 KOps/s 9.8393 KOps/s $\color{#35bf28}+4.72\%$
test_compile_indexing[tensor-tensorclass-eager] 0.2475ms 44.7987μs 22.3221 KOps/s 21.6806 KOps/s $\color{#35bf28}+2.96\%$
test_compile_indexing[tensor-pytree-compile] 0.1681ms 97.1114μs 10.2975 KOps/s 10.1756 KOps/s $\color{#35bf28}+1.20\%$
test_compile_indexing[tensor-pytree-eager] 0.2629ms 44.7461μs 22.3483 KOps/s 21.8083 KOps/s $\color{#35bf28}+2.48\%$
test_compile_indexing[slice-tensordict-compile] 0.1103ms 55.3186μs 18.0771 KOps/s 17.5779 KOps/s $\color{#35bf28}+2.84\%$
test_compile_indexing[slice-tensordict-eager] 0.2288ms 28.3251μs 35.3043 KOps/s 35.1581 KOps/s $\color{#35bf28}+0.42\%$
test_compile_indexing[slice-tensorclass-compile] 0.1025ms 45.2559μs 22.0966 KOps/s 21.4116 KOps/s $\color{#35bf28}+3.20\%$
test_compile_indexing[slice-tensorclass-eager] 0.2695ms 22.3913μs 44.6601 KOps/s 43.3708 KOps/s $\color{#35bf28}+2.97\%$
test_compile_indexing[slice-pytree-compile] 87.3920μs 45.2815μs 22.0841 KOps/s 21.3181 KOps/s $\color{#35bf28}+3.59\%$
test_compile_indexing[slice-pytree-eager] 0.2614ms 22.4087μs 44.6255 KOps/s 43.1472 KOps/s $\color{#35bf28}+3.43\%$
test_compile_indexing[int-tensordict-compile] 92.5120μs 56.4749μs 17.7070 KOps/s 17.2406 KOps/s $\color{#35bf28}+2.71\%$
test_compile_indexing[int-tensordict-eager] 0.2667ms 27.8432μs 35.9154 KOps/s 35.5706 KOps/s $\color{#35bf28}+0.97\%$
test_compile_indexing[int-tensorclass-compile] 90.2510μs 46.4693μs 21.5196 KOps/s 20.9798 KOps/s $\color{#35bf28}+2.57\%$
test_compile_indexing[int-tensorclass-eager] 0.2607ms 22.5999μs 44.2480 KOps/s 43.6501 KOps/s $\color{#35bf28}+1.37\%$
test_compile_indexing[int-pytree-compile] 82.3710μs 47.4933μs 21.0556 KOps/s 21.6478 KOps/s $\color{#d91a1a}-2.74\%$
test_compile_indexing[int-pytree-eager] 0.2652ms 22.5342μs 44.3769 KOps/s 43.6591 KOps/s $\color{#35bf28}+1.64\%$
test_mod_add[eager] 0.1156ms 50.4239μs 19.8319 KOps/s 19.6478 KOps/s $\color{#35bf28}+0.94\%$
test_mod_add[compile] 0.1936ms 0.1100ms 9.0881 KOps/s 9.3490 KOps/s $\color{#d91a1a}-2.79\%$
test_mod_add[compile-overhead] 0.2348ms 0.1478ms 6.7666 KOps/s 6.6285 KOps/s $\color{#35bf28}+2.08\%$
test_mod_wrap[eager] 0.3708ms 0.2945ms 3.3953 KOps/s 3.3601 KOps/s $\color{#35bf28}+1.05\%$
test_mod_wrap[compile] 0.4299ms 0.3499ms 2.8582 KOps/s 2.8287 KOps/s $\color{#35bf28}+1.04\%$
test_mod_wrap[compile-overhead] 7.3295ms 4.0389ms 247.5925 Ops/s 247.6996 Ops/s $\color{#d91a1a}-0.04\%$
test_mod_wrap_and_backward[eager] 1.7359ms 1.5133ms 660.7987 Ops/s 651.2207 Ops/s $\color{#35bf28}+1.47\%$
test_mod_wrap_and_backward[compile] 1.5460ms 1.4497ms 689.7910 Ops/s 683.5337 Ops/s $\color{#35bf28}+0.92\%$
test_mod_wrap_and_backward[compile-overhead] 1.2483ms 0.8875ms 1.1267 KOps/s 1.1026 KOps/s $\color{#35bf28}+2.19\%$
test_seq_add[eager] 0.2306ms 0.1656ms 6.0393 KOps/s 6.2019 KOps/s $\color{#d91a1a}-2.62\%$
test_seq_add[compile] 0.2083ms 0.1220ms 8.1952 KOps/s 8.0704 KOps/s $\color{#35bf28}+1.55\%$
test_seq_add[compile-overhead] 0.3707ms 0.1576ms 6.3438 KOps/s 5.9980 KOps/s $\textbf{\color{#35bf28}+5.77\%}$
test_seq_wrap[eager] 0.6786ms 0.5548ms 1.8023 KOps/s 1.8769 KOps/s $\color{#d91a1a}-3.97\%$
test_seq_wrap[compile] 0.4117ms 0.3691ms 2.7096 KOps/s 2.6832 KOps/s $\color{#35bf28}+0.99\%$
test_seq_wrap[compile-overhead] 0.3261ms 0.2660ms 3.7590 KOps/s 3.7157 KOps/s $\color{#35bf28}+1.16\%$
test_func_call_runtime[False-eager] 0.9151ms 0.8499ms 1.1767 KOps/s 1.1593 KOps/s $\color{#35bf28}+1.50\%$
test_func_call_runtime[False-compile] 0.9675ms 0.9163ms 1.0913 KOps/s 1.0869 KOps/s $\color{#35bf28}+0.40\%$
test_func_call_runtime[False-compile-overhead] 0.5568ms 0.4601ms 2.1733 KOps/s 2.1375 KOps/s $\color{#35bf28}+1.68\%$
test_func_call_runtime[True-eager] 1.3232ms 1.0854ms 921.3027 Ops/s 893.8967 Ops/s $\color{#35bf28}+3.07\%$
test_func_call_runtime[True-compile] 0.9798ms 0.9228ms 1.0837 KOps/s 1.0714 KOps/s $\color{#35bf28}+1.15\%$
test_func_call_runtime[True-compile-overhead] 0.5919ms 0.4750ms 2.1052 KOps/s 2.0813 KOps/s $\color{#35bf28}+1.15\%$
test_func_call_cm_runtime[False-eager] 0.9531ms 0.8455ms 1.1827 KOps/s 1.1158 KOps/s $\textbf{\color{#35bf28}+5.99\%}$
test_func_call_cm_runtime[False-compile] 0.9797ms 0.9180ms 1.0893 KOps/s 1.0772 KOps/s $\color{#35bf28}+1.12\%$
test_func_call_cm_runtime[False-compile-overhead] 0.5497ms 0.4630ms 2.1596 KOps/s 2.1381 KOps/s $\color{#35bf28}+1.01\%$
test_func_call_cm_runtime[True-eager] 1.3599ms 1.2332ms 810.8929 Ops/s 790.0474 Ops/s $\color{#35bf28}+2.64\%$
test_func_call_cm_runtime[True-compile] 1.0183ms 0.9579ms 1.0440 KOps/s 1.0198 KOps/s $\color{#35bf28}+2.37\%$
test_func_call_cm_runtime[True-compile-overhead] 0.5638ms 0.5079ms 1.9689 KOps/s 1.9535 KOps/s $\color{#35bf28}+0.79\%$
test_vmap_func_call_cm_runtime[eager] 2.8710ms 2.3796ms 420.2451 Ops/s 413.1889 Ops/s $\color{#35bf28}+1.71\%$
test_vmap_func_call_cm_runtime[compile] 1.0470ms 0.9751ms 1.0256 KOps/s 1.0154 KOps/s $\color{#35bf28}+1.00\%$
test_vmap_func_call_cm_runtime[compile-overhead] 0.5567ms 0.5127ms 1.9506 KOps/s 1.9236 KOps/s $\color{#35bf28}+1.40\%$
test_distributed 0.7264ms 0.1527ms 6.5470 KOps/s 6.4858 KOps/s $\color{#35bf28}+0.94\%$
test_tdmodule 0.2081ms 28.1387μs 35.5382 KOps/s 34.9401 KOps/s $\color{#35bf28}+1.71\%$
test_tdmodule_dispatch 80.8010μs 45.4348μs 22.0096 KOps/s 21.6001 KOps/s $\color{#35bf28}+1.90\%$
test_tdseq 46.0900μs 26.9446μs 37.1132 KOps/s 36.5119 KOps/s $\color{#35bf28}+1.65\%$
test_tdseq_dispatch 69.7910μs 49.0313μs 20.3951 KOps/s 21.0172 KOps/s $\color{#d91a1a}-2.96\%$
test_instantiation_functorch 2.1638ms 2.0827ms 480.1500 Ops/s 484.3491 Ops/s $\color{#d91a1a}-0.87\%$
test_exec_functorch 0.2394ms 0.1815ms 5.5108 KOps/s 5.4371 KOps/s $\color{#35bf28}+1.36\%$
test_exec_functional_call 0.1933ms 0.1656ms 6.0385 KOps/s 6.1035 KOps/s $\color{#d91a1a}-1.06\%$
test_exec_td_decorator 0.4542ms 0.2377ms 4.2067 KOps/s 4.1440 KOps/s $\color{#35bf28}+1.51\%$
test_vmap_mlp_speed_decorator[True-True] 1.0048ms 0.8268ms 1.2095 KOps/s 1.1911 KOps/s $\color{#35bf28}+1.55\%$
test_vmap_mlp_speed_decorator[True-False] 1.0035ms 0.8271ms 1.2090 KOps/s 1.1951 KOps/s $\color{#35bf28}+1.16\%$
test_vmap_mlp_speed_decorator[False-True] 0.8995ms 0.7244ms 1.3804 KOps/s 1.3781 KOps/s $\color{#35bf28}+0.17\%$
test_vmap_mlp_speed_decorator[False-False] 0.8890ms 0.7238ms 1.3816 KOps/s 1.3756 KOps/s $\color{#35bf28}+0.44\%$
test_vmap_transformer_speed_decorator[True-True] 21.2842ms 20.6654ms 48.3901 Ops/s 48.0013 Ops/s $\color{#35bf28}+0.81\%$
test_vmap_transformer_speed_decorator[True-False] 21.2180ms 20.7096ms 48.2868 Ops/s 48.0426 Ops/s $\color{#35bf28}+0.51\%$
test_vmap_transformer_speed_decorator[False-True] 21.1385ms 20.5155ms 48.7437 Ops/s 48.4513 Ops/s $\color{#35bf28}+0.60\%$
test_vmap_transformer_speed_decorator[False-False] 21.2542ms 20.5607ms 48.6364 Ops/s 48.4147 Ops/s $\color{#35bf28}+0.46\%$
test_to_module_speed[True] 2.0394ms 1.4888ms 671.6864 Ops/s 667.8117 Ops/s $\color{#35bf28}+0.58\%$
test_to_module_speed[False] 1.9425ms 1.4492ms 690.0414 Ops/s 684.6229 Ops/s $\color{#35bf28}+0.79\%$
test_tc_init 75.5310μs 45.6133μs 21.9235 KOps/s 22.0752 KOps/s $\color{#d91a1a}-0.69\%$
test_tc_init_tensor_only 29.2810μs 9.8840μs 101.1731 KOps/s 100.5167 KOps/s $\color{#35bf28}+0.65\%$
test_tc_init_nested 0.1298ms 90.9721μs 10.9924 KOps/s 11.0743 KOps/s $\color{#d91a1a}-0.74\%$
test_tc_init_many_fields 48.5310μs 16.6531μs 60.0490 KOps/s 60.4022 KOps/s $\color{#d91a1a}-0.58\%$
test_tc_first_layer_tensor 30.6710μs 1.8509μs 540.2757 KOps/s 540.2921 KOps/s $-0.00\%$
test_tc_first_layer_tensor_only 4.8286μs 0.7484μs 1.3361 MOps/s 1.3107 MOps/s $\color{#35bf28}+1.94\%$
test_tc_first_layer_tensor_set 26.2100μs 3.9789μs 251.3280 KOps/s 249.7598 KOps/s $\color{#35bf28}+0.63\%$
test_tc_first_layer_tensor_only_set 28.1110μs 3.2106μs 311.4716 KOps/s 313.3483 KOps/s $\color{#d91a1a}-0.60\%$
test_tc_first_layer_nontensor 41.3600μs 6.1588μs 162.3681 KOps/s 158.9504 KOps/s $\color{#35bf28}+2.15\%$
test_tc_second_layer_tensor 39.7210μs 4.4254μs 225.9707 KOps/s 225.5404 KOps/s $\color{#35bf28}+0.19\%$
test_tc_second_layer_nontensor 33.8810μs 8.7721μs 113.9978 KOps/s 112.0546 KOps/s $\color{#35bf28}+1.73\%$
test_unbind 0.2648s 16.2415ms 61.5706 Ops/s 54.6810 Ops/s $\textbf{\color{#35bf28}+12.60\%}$
test_full_like 4.5034ms 4.3866ms 227.9652 Ops/s 59.6357 Ops/s $\textbf{\color{#35bf28}+282.26\%}$
test_zeros_like 6.0391ms 4.3861ms 227.9909 Ops/s 60.1207 Ops/s $\textbf{\color{#35bf28}+279.22\%}$
test_ones_like 4.9574ms 4.3863ms 227.9852 Ops/s 59.7201 Ops/s $\textbf{\color{#35bf28}+281.76\%}$
test_clone 6.7916ms 6.5045ms 153.7388 Ops/s 55.6700 Ops/s $\textbf{\color{#35bf28}+176.16\%}$
test_squeeze 0.1592ms 14.2996μs 69.9322 KOps/s 70.6785 KOps/s $\color{#d91a1a}-1.06\%$
test_unsqueeze 0.1634ms 0.1145ms 8.7316 KOps/s 9.1110 KOps/s $\color{#d91a1a}-4.16\%$
test_split 0.3779ms 0.1876ms 5.3303 KOps/s 5.4284 KOps/s $\color{#d91a1a}-1.81\%$
test_permute 0.2958ms 0.2140ms 4.6719 KOps/s 4.8288 KOps/s $\color{#d91a1a}-3.25\%$
test_stack 51.9122ms 51.6010ms 19.3795 Ops/s 19.2699 Ops/s $\color{#35bf28}+0.57\%$
test_cat 52.0467ms 51.5689ms 19.3915 Ops/s 19.3865 Ops/s $\color{#35bf28}+0.03\%$

[ghstack-poisoned]
@github-actions

Copy link
Copy Markdown
Contributor

PR Title Label Error

Unknown or invalid prefix [Distributed].

Current title: [Distributed] Consolidated send / recv for steady-state transfers

Supported Prefixes

Your PR title must start with exactly one of these prefixes:

Prefix Label Applied Example
[BugFix] BugFix [BugFix] Fix memory leak in TensorDict
[Feature] Feature [Feature] Add new storage backend
[Doc] or [Docs] Documentation [Doc] Update installation guide
[Refactor] Refactor [Refactor] Clean up module imports
[CI] CI [CI] Fix workflow permissions
[Test] or [Tests] Test [Test] Add unit tests for nn module
[Compile] Compile [Compile] Fix torch.compile issue
[Performance] or [Perf] Perf [Perf] Optimize tensor operations
[Deprecation] Deprecation [Deprecation] Mark old function
[Setup] Setup [Setup] Update build configuration

Note: Common variations like singular/plural are supported (e.g., [Doc] or [Docs]).

[ghstack-poisoned]
@github-actions

Copy link
Copy Markdown
Contributor

PR Title Label Error

Unknown or invalid prefix [Distributed].

Current title: [Distributed] Consolidated send / recv for steady-state transfers

Supported Prefixes

Your PR title must start with exactly one of these prefixes:

Prefix Label Applied Example
[BugFix] BugFix [BugFix] Fix memory leak in TensorDict
[Feature] Feature [Feature] Add new storage backend
[Doc] or [Docs] Documentation [Doc] Update installation guide
[Refactor] Refactor [Refactor] Clean up module imports
[CI] CI [CI] Fix workflow permissions
[Test] or [Tests] Test [Test] Add unit tests for nn module
[Compile] Compile [Compile] Fix torch.compile issue
[Performance] or [Perf] Perf [Perf] Optimize tensor operations
[Deprecation] Deprecation [Deprecation] Mark old function
[Setup] Setup [Setup] Update build configuration

Note: Common variations like singular/plural are supported (e.g., [Doc] or [Docs]).

vmoens added a commit that referenced this pull request Feb 19, 2026
Add consolidated=False kwarg to send() and recv(). When True, send
consolidates the tensordict (if needed) and sends the storage as a
single tensor. recv receives directly into the existing consolidated
storage buffer, updating all leaf tensor views in-place (zero-copy).

This enables the fast steady-state pattern:
  td.init_remote(dst=1)  # setup: schema + first payload
  td_recv = TensorDict.from_remote_init(src=0)
  td.send(dst=1, consolidated=True)  # 1 message
  td_recv.recv(src=0, consolidated=True)  # 1 message, zero-copy

Co-authored-by: Cursor <cursoragent@cursor.com>
ghstack-source-id: 8c0c79a
Pull-Request: #1587
@vmoens
vmoens merged commit da3ade9 into gh/vmoens/70/base Feb 19, 2026
36 of 53 checks passed
@vmoens
vmoens deleted the gh/vmoens/70/head branch February 19, 2026 10:14
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. Distributed tensorclass Test

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant