Skip to content

[Refactor] Version-gate HigherOrderOperator dispatch with implement_for - #1669

Open
vmoens wants to merge 1 commit into
mainfrom
implement-for-hop
Open

[Refactor] Version-gate HigherOrderOperator dispatch with implement_for#1669
vmoens wants to merge 1 commit into
mainfrom
implement-for-hop

Conversation

@vmoens

@vmoens vmoens commented Mar 27, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Extract inline HigherOrderOperator handling from all __torch_function__ overrides into a shared _maybe_dispatch_higher_order_op helper in _torch_func.py.
  • Guard with @implement_for("torch", "2.1") since HigherOrderOperator was introduced in PyTorch 2.1 (not present in 2.0).
  • Force implement_for resolution at import time to prevent _gcd_import graph breaks inside torch.compile tracing context.
  • On torch < 2.1, the helper simply returns NotImplemented (HOPs cannot exist there).

Follow-up to #1668.

Test plan

  • python -m pytest test/test_compile.py::TestNestedCompileRegion -xvs passes
  • All 201 compile tests pass (python -m pytest test/test_compile.py -x -q)

Made with Cursor

…atch

Extract HOP handling from inline __torch_function__ into a shared
_maybe_dispatch_higher_order_op helper in _torch_func.py, guarded by
@implement_for("torch", "2.1") since HigherOrderOperator was introduced
in PyTorch 2.1. Force resolution at import time to avoid _gcd_import
graph breaks inside torch.compile.

Follow-up to #1668.

Made-with: Cursor
@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 Mar 27, 2026
@github-actions github-actions Bot added Refactor Refactoring code - not a new feature tensorclass nn labels Mar 27, 2026
@github-actions

Copy link
Copy Markdown
Contributor

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

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

Expand to view detailed results
Name Max Mean Ops Ops on Repo HEAD Change
test_plain_set_nested 31.7210μs 14.9605μs 66.8427 KOps/s 66.2667 KOps/s $\color{#35bf28}+0.87\%$
test_plain_set_stack_nested 48.9410μs 15.3496μs 65.1484 KOps/s 66.1379 KOps/s $\color{#d91a1a}-1.50\%$
test_plain_set_nested_inplace 43.6710μs 17.0082μs 58.7951 KOps/s 59.2111 KOps/s $\color{#d91a1a}-0.70\%$
test_plain_set_stack_nested_inplace 49.6110μs 16.5993μs 60.2435 KOps/s 59.6464 KOps/s $\color{#35bf28}+1.00\%$
test_items 68.3310μs 5.9435μs 168.2500 KOps/s 167.9049 KOps/s $\color{#35bf28}+0.21\%$
test_items_nested 0.5324ms 0.4609ms 2.1697 KOps/s 2.1528 KOps/s $\color{#35bf28}+0.79\%$
test_items_nested_locked 0.5317ms 0.4647ms 2.1521 KOps/s 2.1397 KOps/s $\color{#35bf28}+0.58\%$
test_items_nested_leaf 0.1549ms 97.0341μs 10.3057 KOps/s 10.2064 KOps/s $\color{#35bf28}+0.97\%$
test_items_stack_nested 0.6102ms 0.4702ms 2.1270 KOps/s 2.1637 KOps/s $\color{#d91a1a}-1.70\%$
test_items_stack_nested_leaf 0.1495ms 97.7410μs 10.2311 KOps/s 10.1972 KOps/s $\color{#35bf28}+0.33\%$
test_items_stack_nested_locked 0.5927ms 0.4689ms 2.1328 KOps/s 2.1453 KOps/s $\color{#d91a1a}-0.58\%$
test_keys 23.4000μs 4.2208μs 236.9244 KOps/s 238.1910 KOps/s $\color{#d91a1a}-0.53\%$
test_keys_nested 0.1875ms 0.1294ms 7.7257 KOps/s 7.5959 KOps/s $\color{#35bf28}+1.71\%$
test_keys_nested_locked 2.2279ms 0.1391ms 7.1904 KOps/s 7.0101 KOps/s $\color{#35bf28}+2.57\%$
test_keys_nested_leaf 0.1506ms 0.1202ms 8.3184 KOps/s 8.1822 KOps/s $\color{#35bf28}+1.67\%$
test_keys_stack_nested 0.1648ms 0.1302ms 7.6778 KOps/s 7.5596 KOps/s $\color{#35bf28}+1.56\%$
test_keys_stack_nested_leaf 0.1805ms 0.1193ms 8.3795 KOps/s 8.1974 KOps/s $\color{#35bf28}+2.22\%$
test_keys_stack_nested_locked 0.2269ms 0.1381ms 7.2422 KOps/s 7.1174 KOps/s $\color{#35bf28}+1.75\%$
test_values 4.6331μs 1.0039μs 996.0860 KOps/s 974.0034 KOps/s $\color{#35bf28}+2.27\%$
test_values_nested 93.3210μs 52.2302μs 19.1460 KOps/s 19.1527 KOps/s $\color{#d91a1a}-0.04\%$
test_values_nested_locked 87.4620μs 55.3154μs 18.0782 KOps/s 17.6250 KOps/s $\color{#35bf28}+2.57\%$
test_values_nested_leaf 98.0420μs 59.5315μs 16.7978 KOps/s 16.2465 KOps/s $\color{#35bf28}+3.39\%$
test_values_stack_nested 94.4110μs 52.2686μs 19.1319 KOps/s 18.6915 KOps/s $\color{#35bf28}+2.36\%$
test_values_stack_nested_leaf 98.9810μs 59.8159μs 16.7180 KOps/s 16.3810 KOps/s $\color{#35bf28}+2.06\%$
test_values_stack_nested_locked 86.5020μs 54.7951μs 18.2498 KOps/s 17.7420 KOps/s $\color{#35bf28}+2.86\%$
test_membership 6.3502μs 0.8311μs 1.2033 MOps/s 1.1985 MOps/s $\color{#35bf28}+0.40\%$
test_membership_nested 42.3300μs 2.8578μs 349.9228 KOps/s 342.1246 KOps/s $\color{#35bf28}+2.28\%$
test_membership_nested_leaf 23.1305μs 2.7271μs 366.6856 KOps/s 343.4744 KOps/s $\textbf{\color{#35bf28}+6.76\%}$
test_membership_stacked_nested 38.3410μs 2.8625μs 349.3454 KOps/s 344.5155 KOps/s $\color{#35bf28}+1.40\%$
test_membership_stacked_nested_leaf 54.6610μs 2.8491μs 350.9902 KOps/s 345.6692 KOps/s $\color{#35bf28}+1.54\%$
test_membership_nested_last 41.9910μs 4.2968μs 232.7304 KOps/s 229.0998 KOps/s $\color{#35bf28}+1.58\%$
test_membership_nested_leaf_last 33.7510μs 4.2780μs 233.7517 KOps/s 227.5887 KOps/s $\color{#35bf28}+2.71\%$
test_membership_stacked_nested_last 40.7310μs 4.2704μs 234.1705 KOps/s 228.6346 KOps/s $\color{#35bf28}+2.42\%$
test_membership_stacked_nested_leaf_last 23.9810μs 4.3000μs 232.5590 KOps/s 228.9101 KOps/s $\color{#35bf28}+1.59\%$
test_nested_getleaf 50.1610μs 21.4316μs 46.6601 KOps/s 45.6832 KOps/s $\color{#35bf28}+2.14\%$
test_nested_get 48.8210μs 20.3354μs 49.1753 KOps/s 48.8410 KOps/s $\color{#35bf28}+0.68\%$
test_stacked_getleaf 53.6210μs 21.3461μs 46.8470 KOps/s 46.0890 KOps/s $\color{#35bf28}+1.64\%$
test_stacked_get 47.4310μs 20.3963μs 49.0285 KOps/s 48.7422 KOps/s $\color{#35bf28}+0.59\%$
test_nested_getitemleaf 0.1214ms 21.8071μs 45.8567 KOps/s 45.8126 KOps/s $\color{#35bf28}+0.10\%$
test_nested_getitem 50.5810μs 20.7548μs 48.1817 KOps/s 49.0019 KOps/s $\color{#d91a1a}-1.67\%$
test_stacked_getitemleaf 51.8810μs 21.8132μs 45.8437 KOps/s 45.4344 KOps/s $\color{#35bf28}+0.90\%$
test_stacked_getitem 57.1410μs 20.6931μs 48.3254 KOps/s 48.3059 KOps/s $\color{#35bf28}+0.04\%$
test_lock_nested 0.7723ms 0.4769ms 2.0968 KOps/s 2.0726 KOps/s $\color{#35bf28}+1.17\%$
test_lock_stack_nested 0.6204ms 0.4844ms 2.0644 KOps/s 2.0477 KOps/s $\color{#35bf28}+0.82\%$
test_unlock_nested 0.7174ms 0.3939ms 2.5390 KOps/s 2.5452 KOps/s $\color{#d91a1a}-0.24\%$
test_unlock_stack_nested 0.4556ms 0.3939ms 2.5389 KOps/s 2.5191 KOps/s $\color{#35bf28}+0.79\%$
test_flatten_speed 0.5405ms 0.1220ms 8.1934 KOps/s 8.2617 KOps/s $\color{#d91a1a}-0.83\%$
test_unflatten_speed 1.0425ms 0.5736ms 1.7434 KOps/s 1.7383 KOps/s $\color{#35bf28}+0.29\%$
test_common_ops 0.8641ms 0.6964ms 1.4360 KOps/s 1.4149 KOps/s $\color{#35bf28}+1.49\%$
test_creation 0.1118ms 3.1437μs 318.0942 KOps/s 316.1195 KOps/s $\color{#35bf28}+0.62\%$
test_creation_empty 49.1210μs 7.0036μs 142.7830 KOps/s 141.2744 KOps/s $\color{#35bf28}+1.07\%$
test_creation_nested_1 33.6300μs 11.4840μs 87.0776 KOps/s 85.4284 KOps/s $\color{#35bf28}+1.93\%$
test_creation_nested_2 39.2710μs 13.4406μs 74.4012 KOps/s 73.9093 KOps/s $\color{#35bf28}+0.67\%$
test_creation_many_keys[10] 43.8610μs 21.2299μs 47.1034 KOps/s 47.3715 KOps/s $\color{#d91a1a}-0.57\%$
test_creation_many_keys[50] 0.1521ms 90.6204μs 11.0350 KOps/s 10.9937 KOps/s $\color{#35bf28}+0.38\%$
test_creation_many_keys[100] 0.2504ms 0.1784ms 5.6041 KOps/s 5.6655 KOps/s $\color{#d91a1a}-1.08\%$
test_creation_nested_many_keys[10] 88.3210μs 44.9748μs 22.2347 KOps/s 21.9534 KOps/s $\color{#35bf28}+1.28\%$
test_creation_nested_many_keys[50] 0.2595ms 0.1849ms 5.4073 KOps/s 5.4260 KOps/s $\color{#d91a1a}-0.35\%$
test_clone 55.1810μs 13.2751μs 75.3291 KOps/s 76.6774 KOps/s $\color{#d91a1a}-1.76\%$
test_getitem[int] 1.6351ms 15.2127μs 65.7344 KOps/s 56.5385 KOps/s $\textbf{\color{#35bf28}+16.26\%}$
test_getitem[slice_int] 0.1370ms 24.6640μs 40.5449 KOps/s 39.8096 KOps/s $\color{#35bf28}+1.85\%$
test_getitem[range] 0.1808ms 62.9786μs 15.8784 KOps/s 14.8691 KOps/s $\textbf{\color{#35bf28}+6.79\%}$
test_getitem[tuple] 0.1451ms 24.3261μs 41.1082 KOps/s 42.2206 KOps/s $\color{#d91a1a}-2.63\%$
test_getitem[list] 0.2567ms 58.7045μs 17.0345 KOps/s 17.0439 KOps/s $\color{#d91a1a}-0.06\%$
test_setitem_dim[int] 44.9210μs 25.3501μs 39.4476 KOps/s 38.7962 KOps/s $\color{#35bf28}+1.68\%$
test_setitem_dim[slice_int] 87.7220μs 42.6547μs 23.4441 KOps/s 23.1635 KOps/s $\color{#35bf28}+1.21\%$
test_setitem_dim[range] 0.1420ms 95.3038μs 10.4928 KOps/s 10.5679 KOps/s $\color{#d91a1a}-0.71\%$
test_setitem_dim[tuple] 74.2310μs 39.1016μs 25.5744 KOps/s 25.6608 KOps/s $\color{#d91a1a}-0.34\%$
test_setitem 67.4310μs 17.8213μs 56.1126 KOps/s 56.1456 KOps/s $\color{#d91a1a}-0.06\%$
test_set 60.2210μs 17.1208μs 58.4086 KOps/s 58.6190 KOps/s $\color{#d91a1a}-0.36\%$
test_set_shared 0.5068ms 0.2035ms 4.9145 KOps/s 4.9054 KOps/s $\color{#35bf28}+0.19\%$
test_update 0.4383ms 22.0056μs 45.4430 KOps/s 46.1597 KOps/s $\color{#d91a1a}-1.55\%$
test_update_nested 77.3720μs 33.3693μs 29.9676 KOps/s 29.6087 KOps/s $\color{#35bf28}+1.21\%$
test_update__nested 0.5397ms 34.1016μs 29.3241 KOps/s 28.5365 KOps/s $\color{#35bf28}+2.76\%$
test_set_nested 59.4920μs 19.1046μs 52.3435 KOps/s 52.2335 KOps/s $\color{#35bf28}+0.21\%$
test_set_nested_new 0.4617ms 23.8370μs 41.9517 KOps/s 41.3254 KOps/s $\color{#35bf28}+1.52\%$
test_select 77.8610μs 40.5624μs 24.6534 KOps/s 24.5421 KOps/s $\color{#35bf28}+0.45\%$
test_select_nested 0.4963ms 74.3806μs 13.4444 KOps/s 13.4803 KOps/s $\color{#d91a1a}-0.27\%$
test_exclude_nested 0.5117ms 91.8313μs 10.8895 KOps/s 10.7777 KOps/s $\color{#35bf28}+1.04\%$
test_empty[True] 0.8143ms 0.3979ms 2.5134 KOps/s 2.4839 KOps/s $\color{#35bf28}+1.19\%$
test_empty[False] 0.1059ms 1.3201μs 757.5067 KOps/s 749.0665 KOps/s $\color{#35bf28}+1.13\%$
test_to 0.1048ms 72.3623μs 13.8193 KOps/s 13.6151 KOps/s $\color{#35bf28}+1.50\%$
test_to_nonblocking 0.5044ms 66.0438μs 15.1415 KOps/s 14.0172 KOps/s $\textbf{\color{#35bf28}+8.02\%}$
test_unbind_speed 0.4091ms 0.3393ms 2.9472 KOps/s 2.8140 KOps/s $\color{#35bf28}+4.73\%$
test_unbind_speed_stack0 0.8045ms 0.3379ms 2.9596 KOps/s 2.9604 KOps/s $\color{#d91a1a}-0.03\%$
test_unbind_speed_stack1 0.1058s 0.9221ms 1.0845 KOps/s 1.1723 KOps/s $\textbf{\color{#d91a1a}-7.49\%}$
test_split 1.5492ms 1.1370ms 879.5277 Ops/s 777.7721 Ops/s $\textbf{\color{#35bf28}+13.08\%}$
test_chunk 0.1055s 1.2168ms 821.8500 Ops/s 920.7448 Ops/s $\textbf{\color{#d91a1a}-10.74\%}$
test_to_cpu_blocking 29.3065ms 28.8055ms 34.7156 Ops/s 34.4050 Ops/s $\color{#35bf28}+0.90\%$
test_to_cpu_global_sync 11.9851ms 11.6509ms 85.8300 Ops/s 76.3532 Ops/s $\textbf{\color{#35bf28}+12.41\%}$
test_to_cpu_event_sync 12.9749ms 12.6259ms 79.2025 Ops/s 78.4151 Ops/s $\color{#35bf28}+1.00\%$
test_to_cpu_default 0.1190s 13.9851ms 71.5045 Ops/s 78.3772 Ops/s $\textbf{\color{#d91a1a}-8.77\%}$
test_consolidate[False-None] 4.5297ms 4.1096ms 243.3331 Ops/s 210.0161 Ops/s $\textbf{\color{#35bf28}+15.86\%}$
test_consolidate[default-None] 2.1909ms 2.0660ms 484.0347 Ops/s 477.1632 Ops/s $\color{#35bf28}+1.44\%$
test_consolidate[reduce-overhead-None] 2.0908ms 1.9804ms 504.9523 Ops/s 496.7739 Ops/s $\color{#35bf28}+1.65\%$
test_consolidate_njt[False-None] 9.2544ms 8.8814ms 112.5952 Ops/s 115.1117 Ops/s $\color{#d91a1a}-2.19\%$
test_to[False-False-None] 2.2494ms 2.1665ms 461.5718 Ops/s 457.3456 Ops/s $\color{#35bf28}+0.92\%$
test_to[True-False-None] 2.2452ms 1.9679ms 508.1481 Ops/s 512.7949 Ops/s $\color{#d91a1a}-0.91\%$
test_to[within-False-None] 6.4563ms 6.1672ms 162.1470 Ops/s 160.1761 Ops/s $\color{#35bf28}+1.23\%$
test_to[True-default-None] 9.4675ms 9.1605ms 109.1640 Ops/s 102.3162 Ops/s $\textbf{\color{#35bf28}+6.69\%}$
test_to_njt[False-False-None] 9.2944ms 9.0808ms 110.1221 Ops/s 111.4601 Ops/s $\color{#d91a1a}-1.20\%$
test_to_njt[True-False-None] 7.7179ms 7.4602ms 134.0448 Ops/s 134.8843 Ops/s $\color{#d91a1a}-0.62\%$
test_to_njt[within-False-None] 16.9440ms 16.7400ms 59.7371 Ops/s 61.2754 Ops/s $\color{#d91a1a}-2.51\%$
test_creation[device0] 0.3912ms 0.1206ms 8.2937 KOps/s 8.7743 KOps/s $\textbf{\color{#d91a1a}-5.48\%}$
test_creation_from_tensor 0.5331ms 0.1131ms 8.8402 KOps/s 8.8815 KOps/s $\color{#d91a1a}-0.46\%$
test_add_one[memmap_tensor0] 0.3975ms 6.5426μs 152.8441 KOps/s 151.6186 KOps/s $\color{#35bf28}+0.81\%$
test_contiguous[memmap_tensor0] 27.8000μs 0.6537μs 1.5297 MOps/s 2.2512 MOps/s $\textbf{\color{#d91a1a}-32.05\%}$
test_stack[memmap_tensor0] 31.5600μs 4.6973μs 212.8878 KOps/s 210.6553 KOps/s $\color{#35bf28}+1.06\%$
test_memmaptd_index 1.0929ms 0.2705ms 3.6962 KOps/s 3.7323 KOps/s $\color{#d91a1a}-0.97\%$
test_memmaptd_index_astensor 0.5446ms 0.3774ms 2.6497 KOps/s 2.6669 KOps/s $\color{#d91a1a}-0.64\%$
test_memmaptd_index_op 0.7994ms 0.6153ms 1.6253 KOps/s 1.5941 KOps/s $\color{#35bf28}+1.96\%$
test_serialize_model 0.1362s 0.1347s 7.4239 Ops/s 7.4032 Ops/s $\color{#35bf28}+0.28\%$
test_serialize_model_pickle 1.3502s 1.1849s 0.8439 Ops/s 0.8250 Ops/s $\color{#35bf28}+2.30\%$
test_serialize_weights 0.1371s 0.1347s 7.4259 Ops/s 7.4075 Ops/s $\color{#35bf28}+0.25\%$
test_serialize_weights_returnearly 0.4392s 88.0855ms 11.3526 Ops/s 15.7247 Ops/s $\textbf{\color{#d91a1a}-27.80\%}$
test_serialize_weights_pickle 1.3647s 1.2139s 0.8238 Ops/s 0.8229 Ops/s $\color{#35bf28}+0.10\%$
test_reshape_pytree 0.2047ms 32.3577μs 30.9045 KOps/s 30.5956 KOps/s $\color{#35bf28}+1.01\%$
test_reshape_td 84.8520μs 45.9357μs 21.7695 KOps/s 21.8763 KOps/s $\color{#d91a1a}-0.49\%$
test_view_pytree 0.2202ms 31.9675μs 31.2818 KOps/s 30.7380 KOps/s $\color{#35bf28}+1.77\%$
test_view_td 79.7210μs 54.3269μs 18.4071 KOps/s 18.6867 KOps/s $\color{#d91a1a}-1.50\%$
test_unbind_pytree 0.1855ms 36.1484μs 27.6637 KOps/s 27.5037 KOps/s $\color{#35bf28}+0.58\%$
test_unbind_td 0.1176ms 50.3663μs 19.8545 KOps/s 19.8050 KOps/s $\color{#35bf28}+0.25\%$
test_split_pytree 0.2469ms 41.6083μs 24.0337 KOps/s 23.5882 KOps/s $\color{#35bf28}+1.89\%$
test_split_td 0.1998ms 63.7076μs 15.6967 KOps/s 15.5290 KOps/s $\color{#35bf28}+1.08\%$
test_add_pytree 0.1902ms 41.2382μs 24.2494 KOps/s 23.9717 KOps/s $\color{#35bf28}+1.16\%$
test_add_td 93.0910μs 55.3081μs 18.0805 KOps/s 17.7085 KOps/s $\color{#35bf28}+2.10\%$
test_compile_add_one_nested[tensordict-compile] 0.2527ms 0.1612ms 6.2037 KOps/s 5.8241 KOps/s $\textbf{\color{#35bf28}+6.52\%}$
test_compile_add_one_nested[tensordict-eager] 0.2989ms 0.2043ms 4.8940 KOps/s 5.0007 KOps/s $\color{#d91a1a}-2.13\%$
test_compile_add_one_nested[pytree-compile] 0.2382ms 0.1261ms 7.9283 KOps/s 7.4420 KOps/s $\textbf{\color{#35bf28}+6.54\%}$
test_compile_add_one_nested[pytree-eager] 0.4426ms 0.1780ms 5.6178 KOps/s 5.4640 KOps/s $\color{#35bf28}+2.81\%$
test_compile_copy_nested[tensordict-compile] 0.4088ms 16.6398μs 60.0969 KOps/s 59.3689 KOps/s $\color{#35bf28}+1.23\%$
test_compile_copy_nested[tensordict-eager] 91.3610μs 54.1731μs 18.4594 KOps/s 18.2645 KOps/s $\color{#35bf28}+1.07\%$
test_compile_copy_nested[pytree-compile] 0.1787ms 16.6458μs 60.0752 KOps/s 62.3919 KOps/s $\color{#d91a1a}-3.71\%$
test_compile_copy_nested[pytree-eager] 0.3777ms 67.3521μs 14.8474 KOps/s 14.6347 KOps/s $\color{#35bf28}+1.45\%$
test_compile_add_one_flat[tensordict-compile] 0.2889ms 0.2003ms 4.9924 KOps/s 4.8601 KOps/s $\color{#35bf28}+2.72\%$
test_compile_add_one_flat[tensordict-eager] 0.3475ms 0.2791ms 3.5827 KOps/s 3.5394 KOps/s $\color{#35bf28}+1.22\%$
test_compile_add_one_flat[tensorclass-compile] 0.1750ms 0.1365ms 7.3269 KOps/s 6.9045 KOps/s $\textbf{\color{#35bf28}+6.12\%}$
test_compile_add_one_flat[tensorclass-eager] 0.1308ms 76.9538μs 12.9948 KOps/s 12.8441 KOps/s $\color{#35bf28}+1.17\%$
test_compile_add_one_flat[pytree-compile] 0.2383ms 0.1837ms 5.4431 KOps/s 5.3130 KOps/s $\color{#35bf28}+2.45\%$
test_compile_add_one_flat[pytree-eager] 0.8548ms 0.5545ms 1.8035 KOps/s 1.8447 KOps/s $\color{#d91a1a}-2.23\%$
test_compile_add_self_flat[tensordict-eager] 0.4003ms 0.3291ms 3.0390 KOps/s 2.9183 KOps/s $\color{#35bf28}+4.13\%$
test_compile_add_self_flat[tensordict-compile] 0.2533ms 0.2012ms 4.9702 KOps/s 4.5049 KOps/s $\textbf{\color{#35bf28}+10.33\%}$
test_compile_add_self_flat[tensorclass-eager] 0.1383ms 91.2595μs 10.9578 KOps/s 10.6579 KOps/s $\color{#35bf28}+2.81\%$
test_compile_add_self_flat[tensorclass-compile] 0.2732ms 0.1379ms 7.2492 KOps/s 6.5530 KOps/s $\textbf{\color{#35bf28}+10.62\%}$
test_compile_add_self_flat[pytree-eager] 0.6842ms 0.4432ms 2.2565 KOps/s 2.2186 KOps/s $\color{#35bf28}+1.71\%$
test_compile_add_self_flat[pytree-compile] 0.2315ms 0.1805ms 5.5411 KOps/s 5.2334 KOps/s $\textbf{\color{#35bf28}+5.88\%}$
test_compile_copy_flat[tensordict-compile] 90.1320μs 19.7047μs 50.7494 KOps/s 49.2319 KOps/s $\color{#35bf28}+3.08\%$
test_compile_copy_flat[tensordict-eager] 0.1051ms 41.5010μs 24.0958 KOps/s 23.8240 KOps/s $\color{#35bf28}+1.14\%$
test_compile_copy_flat[pytree-compile] 0.1196ms 16.8416μs 59.3768 KOps/s 59.2348 KOps/s $\color{#35bf28}+0.24\%$
test_compile_copy_flat[pytree-eager] 0.3573ms 53.0490μs 18.8505 KOps/s 18.9368 KOps/s $\color{#d91a1a}-0.46\%$
test_compile_assign_and_add[tensordict-compile] 2.1189ms 0.1901ms 5.2598 KOps/s 4.8445 KOps/s $\textbf{\color{#35bf28}+8.57\%}$
test_compile_assign_and_add[tensordict-eager] 3.6775ms 3.3402ms 299.3838 Ops/s 296.4754 Ops/s $\color{#35bf28}+0.98\%$
test_compile_assign_and_add[pytree-compile] 2.1073ms 0.1788ms 5.5918 KOps/s 5.4431 KOps/s $\color{#35bf28}+2.73\%$
test_compile_assign_and_add[pytree-eager] 3.0615ms 2.9465ms 339.3884 Ops/s 351.9458 Ops/s $\color{#d91a1a}-3.57\%$
test_compile_indexing[tensor-tensordict-compile] 0.2104ms 0.1330ms 7.5200 KOps/s 7.5606 KOps/s $\color{#d91a1a}-0.54\%$
test_compile_indexing[tensor-tensordict-eager] 0.3092ms 76.8997μs 13.0039 KOps/s 13.2990 KOps/s $\color{#d91a1a}-2.22\%$
test_compile_indexing[tensor-tensorclass-compile] 0.2364ms 0.1133ms 8.8262 KOps/s 8.4614 KOps/s $\color{#35bf28}+4.31\%$
test_compile_indexing[tensor-tensorclass-eager] 0.2554ms 47.3140μs 21.1354 KOps/s 21.8112 KOps/s $\color{#d91a1a}-3.10\%$
test_compile_indexing[tensor-pytree-compile] 0.1547ms 0.1140ms 8.7702 KOps/s 8.4018 KOps/s $\color{#35bf28}+4.38\%$
test_compile_indexing[tensor-pytree-eager] 0.2849ms 46.6701μs 21.4270 KOps/s 20.4451 KOps/s $\color{#35bf28}+4.80\%$
test_compile_indexing[slice-tensordict-compile] 0.2070ms 68.5540μs 14.5870 KOps/s 13.5656 KOps/s $\textbf{\color{#35bf28}+7.53\%}$
test_compile_indexing[slice-tensordict-eager] 0.2104ms 28.3887μs 35.2253 KOps/s 35.2885 KOps/s $\color{#d91a1a}-0.18\%$
test_compile_indexing[slice-tensorclass-compile] 98.9610μs 58.3289μs 17.1442 KOps/s 16.8557 KOps/s $\color{#35bf28}+1.71\%$
test_compile_indexing[slice-tensorclass-eager] 0.2414ms 22.1413μs 45.1644 KOps/s 45.0905 KOps/s $\color{#35bf28}+0.16\%$
test_compile_indexing[slice-pytree-compile] 0.1001ms 60.5929μs 16.5036 KOps/s 16.7602 KOps/s $\color{#d91a1a}-1.53\%$
test_compile_indexing[slice-pytree-eager] 0.2635ms 22.0865μs 45.2765 KOps/s 45.2313 KOps/s $\color{#35bf28}+0.10\%$
test_compile_indexing[int-tensordict-compile] 0.1110ms 70.2017μs 14.2447 KOps/s 13.5680 KOps/s $\color{#35bf28}+4.99\%$
test_compile_indexing[int-tensordict-eager] 0.2498ms 27.1344μs 36.8536 KOps/s 35.8305 KOps/s $\color{#35bf28}+2.86\%$
test_compile_indexing[int-tensorclass-compile] 0.1737ms 59.0400μs 16.9377 KOps/s 16.8807 KOps/s $\color{#35bf28}+0.34\%$
test_compile_indexing[int-tensorclass-eager] 0.2390ms 21.9756μs 45.5049 KOps/s 45.3052 KOps/s $\color{#35bf28}+0.44\%$
test_compile_indexing[int-pytree-compile] 0.1282ms 59.0948μs 16.9219 KOps/s 16.8009 KOps/s $\color{#35bf28}+0.72\%$
test_compile_indexing[int-pytree-eager] 0.2696ms 21.9181μs 45.6244 KOps/s 44.7232 KOps/s $\color{#35bf28}+2.02\%$
test_compile_replace[single-eager] 0.1689ms 46.9537μs 21.2976 KOps/s 19.6542 KOps/s $\textbf{\color{#35bf28}+8.36\%}$
test_compile_replace[single-compile] 0.1696ms 0.1214ms 8.2394 KOps/s 7.8742 KOps/s $\color{#35bf28}+4.64\%$
test_compile_replace[multi-eager] 0.6535ms 0.5811ms 1.7209 KOps/s 1.7551 KOps/s $\color{#d91a1a}-1.95\%$
test_compile_replace[multi-compile] 0.2943ms 0.1283ms 7.7948 KOps/s 7.5280 KOps/s $\color{#35bf28}+3.54\%$
test_compile_tc_getattr_20[eager] 0.2217ms 0.1735ms 5.7627 KOps/s 5.7260 KOps/s $\color{#35bf28}+0.64\%$
test_compile_tc_getattr_20[compile] 0.2638ms 0.1367ms 7.3153 KOps/s 7.0415 KOps/s $\color{#35bf28}+3.89\%$
test_compile_clone_shallow[20-eager] 49.2110μs 19.2400μs 51.9750 KOps/s 51.2128 KOps/s $\color{#35bf28}+1.49\%$
test_compile_clone_shallow[20-compile] 99.4420μs 17.1744μs 58.2260 KOps/s 56.1490 KOps/s $\color{#35bf28}+3.70\%$
test_compile_clone_shallow[40-eager] 66.2010μs 33.6552μs 29.7131 KOps/s 28.9673 KOps/s $\color{#35bf28}+2.57\%$
test_compile_clone_shallow[40-compile] 82.2910μs 18.6462μs 53.6301 KOps/s 51.8622 KOps/s $\color{#35bf28}+3.41\%$
test_compile_clone_shallow[80-eager] 96.7010μs 63.1953μs 15.8240 KOps/s 15.5982 KOps/s $\color{#35bf28}+1.45\%$
test_compile_clone_shallow[80-compile] 0.1058ms 23.0752μs 43.3366 KOps/s 45.8324 KOps/s $\textbf{\color{#d91a1a}-5.45\%}$
test_compile_update_inplace[eager] 0.2197ms 59.6211μs 16.7726 KOps/s 16.6046 KOps/s $\color{#35bf28}+1.01\%$
test_compile_update_inplace[compile] 0.2985ms 0.1567ms 6.3822 KOps/s 6.3734 KOps/s $\color{#35bf28}+0.14\%$
test_mod_add[eager] 96.9910μs 48.8930μs 20.4528 KOps/s 20.3387 KOps/s $\color{#35bf28}+0.56\%$
test_mod_add[compile] 0.5856ms 0.1184ms 8.4478 KOps/s 8.2056 KOps/s $\color{#35bf28}+2.95\%$
test_mod_add[compile-overhead] 0.4600ms 0.1689ms 5.9218 KOps/s 5.8169 KOps/s $\color{#35bf28}+1.80\%$
test_mod_wrap[eager] 0.4434ms 0.3037ms 3.2922 KOps/s 3.4232 KOps/s $\color{#d91a1a}-3.83\%$
test_mod_wrap[compile] 0.4391ms 0.3674ms 2.7221 KOps/s 2.5034 KOps/s $\textbf{\color{#35bf28}+8.74\%}$
test_mod_wrap[compile-overhead] 9.4205ms 5.0743ms 197.0715 Ops/s 197.5556 Ops/s $\color{#d91a1a}-0.25\%$
test_mod_wrap_and_backward[eager] 1.7880ms 1.6586ms 602.9085 Ops/s 655.1687 Ops/s $\textbf{\color{#d91a1a}-7.98\%}$
test_mod_wrap_and_backward[compile] 1.8617ms 1.5767ms 634.2266 Ops/s 672.8053 Ops/s $\textbf{\color{#d91a1a}-5.73\%}$
test_mod_wrap_and_backward[compile-overhead] 1.4745ms 1.0243ms 976.2332 Ops/s 1.0632 KOps/s $\textbf{\color{#d91a1a}-8.18\%}$
test_seq_add[eager] 0.2051ms 0.1534ms 6.5192 KOps/s 6.2686 KOps/s $\color{#35bf28}+4.00\%$
test_seq_add[compile] 0.2303ms 0.1288ms 7.7617 KOps/s 6.6856 KOps/s $\textbf{\color{#35bf28}+16.09\%}$
test_seq_add[compile-overhead] 0.2835ms 0.1709ms 5.8523 KOps/s 5.3236 KOps/s $\textbf{\color{#35bf28}+9.93\%}$
test_seq_wrap[eager] 0.6731ms 0.5195ms 1.9250 KOps/s 1.8878 KOps/s $\color{#35bf28}+1.97\%$
test_seq_wrap[compile] 0.4975ms 0.3872ms 2.5825 KOps/s 2.4260 KOps/s $\textbf{\color{#35bf28}+6.45\%}$
test_seq_wrap[compile-overhead] 0.3756ms 0.2893ms 3.4572 KOps/s 3.3244 KOps/s $\color{#35bf28}+3.99\%$
test_func_call_runtime[False-eager] 0.9902ms 0.8722ms 1.1465 KOps/s 1.1732 KOps/s $\color{#d91a1a}-2.28\%$
test_func_call_runtime[False-compile] 1.1168ms 0.9408ms 1.0629 KOps/s 1.0610 KOps/s $\color{#35bf28}+0.18\%$
test_func_call_runtime[False-compile-overhead] 0.6192ms 0.4925ms 2.0306 KOps/s 1.9817 KOps/s $\color{#35bf28}+2.47\%$
test_func_call_runtime[True-eager] 1.4091ms 1.0758ms 929.5506 Ops/s 913.3479 Ops/s $\color{#35bf28}+1.77\%$
test_func_call_runtime[True-compile] 1.1303ms 0.9355ms 1.0689 KOps/s 1.0080 KOps/s $\textbf{\color{#35bf28}+6.05\%}$
test_func_call_runtime[True-compile-overhead] 0.5675ms 0.5066ms 1.9740 KOps/s 1.9053 KOps/s $\color{#35bf28}+3.61\%$
test_func_call_cm_runtime[False-eager] 0.9600ms 0.8656ms 1.1553 KOps/s 1.1210 KOps/s $\color{#35bf28}+3.06\%$
test_func_call_cm_runtime[False-compile] 1.0158ms 0.9047ms 1.1053 KOps/s 1.0445 KOps/s $\textbf{\color{#35bf28}+5.82\%}$
test_func_call_cm_runtime[False-compile-overhead] 0.6256ms 0.4703ms 2.1262 KOps/s 2.0545 KOps/s $\color{#35bf28}+3.49\%$
test_func_call_cm_runtime[True-eager] 1.3745ms 1.2179ms 821.1168 Ops/s 786.6495 Ops/s $\color{#35bf28}+4.38\%$
test_func_call_cm_runtime[True-compile] 1.2000ms 0.9539ms 1.0484 KOps/s 1.0342 KOps/s $\color{#35bf28}+1.37\%$
test_func_call_cm_runtime[True-compile-overhead] 0.5833ms 0.5136ms 1.9471 KOps/s 1.8947 KOps/s $\color{#35bf28}+2.76\%$
test_vmap_func_call_cm_runtime[eager] 3.0866ms 2.3828ms 419.6684 Ops/s 411.9144 Ops/s $\color{#35bf28}+1.88\%$
test_vmap_func_call_cm_runtime[compile] 1.0936ms 0.9624ms 1.0390 KOps/s 1.0207 KOps/s $\color{#35bf28}+1.80\%$
test_vmap_func_call_cm_runtime[compile-overhead] 0.5788ms 0.5189ms 1.9271 KOps/s 1.8610 KOps/s $\color{#35bf28}+3.56\%$
test_distributed 0.6276ms 0.1541ms 6.4889 KOps/s 6.4832 KOps/s $\color{#35bf28}+0.09\%$
test_tdmodule 0.4815ms 28.0317μs 35.6739 KOps/s 36.3692 KOps/s $\color{#d91a1a}-1.91\%$
test_tdmodule_dispatch 76.6110μs 45.5081μs 21.9741 KOps/s 22.4177 KOps/s $\color{#d91a1a}-1.98\%$
test_tdseq 46.0000μs 26.9015μs 37.1726 KOps/s 37.3445 KOps/s $\color{#d91a1a}-0.46\%$
test_tdseq_dispatch 85.7310μs 47.4005μs 21.0968 KOps/s 21.3226 KOps/s $\color{#d91a1a}-1.06\%$
test_instantiation_functorch 2.1962ms 2.0675ms 483.6859 Ops/s 476.3043 Ops/s $\color{#35bf28}+1.55\%$
test_exec_functorch 0.2200ms 0.1771ms 5.6453 KOps/s 5.5906 KOps/s $\color{#35bf28}+0.98\%$
test_exec_functional_call 0.2201ms 0.1587ms 6.3029 KOps/s 6.2935 KOps/s $\color{#35bf28}+0.15\%$
test_exec_td_decorator 0.4639ms 0.2364ms 4.2304 KOps/s 4.2647 KOps/s $\color{#d91a1a}-0.80\%$
test_vmap_mlp_speed_decorator[True-True] 1.0270ms 0.8253ms 1.2117 KOps/s 1.2001 KOps/s $\color{#35bf28}+0.96\%$
test_vmap_mlp_speed_decorator[True-False] 1.0221ms 0.8289ms 1.2065 KOps/s 1.1942 KOps/s $\color{#35bf28}+1.03\%$
test_vmap_mlp_speed_decorator[False-True] 0.9475ms 0.7187ms 1.3914 KOps/s 1.3470 KOps/s $\color{#35bf28}+3.30\%$
test_vmap_mlp_speed_decorator[False-False] 0.8852ms 0.7154ms 1.3979 KOps/s 1.3933 KOps/s $\color{#35bf28}+0.33\%$
test_vmap_transformer_speed_decorator[True-True] 21.5479ms 20.9804ms 47.6636 Ops/s 47.8021 Ops/s $\color{#d91a1a}-0.29\%$
test_vmap_transformer_speed_decorator[True-False] 21.4531ms 20.9728ms 47.6808 Ops/s 47.8969 Ops/s $\color{#d91a1a}-0.45\%$
test_vmap_transformer_speed_decorator[False-True] 21.6002ms 20.8768ms 47.9000 Ops/s 48.2869 Ops/s $\color{#d91a1a}-0.80\%$
test_vmap_transformer_speed_decorator[False-False] 21.8221ms 20.8478ms 47.9666 Ops/s 48.3703 Ops/s $\color{#d91a1a}-0.83\%$
test_to_module_speed[True] 2.0627ms 1.4687ms 680.8696 Ops/s 667.4861 Ops/s $\color{#35bf28}+2.01\%$
test_to_module_speed[False] 1.5421ms 1.4371ms 695.8261 Ops/s 682.6216 Ops/s $\color{#35bf28}+1.93\%$
test_tc_init 82.3010μs 44.8596μs 22.2918 KOps/s 22.0322 KOps/s $\color{#35bf28}+1.18\%$
test_tc_init_tensor_only 39.1810μs 9.9494μs 100.5090 KOps/s 100.1852 KOps/s $\color{#35bf28}+0.32\%$
test_tc_init_nested 0.1321ms 89.7984μs 11.1361 KOps/s 11.0696 KOps/s $\color{#35bf28}+0.60\%$
test_tc_init_many_fields 48.5210μs 16.5052μs 60.5869 KOps/s 59.7656 KOps/s $\color{#35bf28}+1.37\%$
test_tc_first_layer_tensor 19.0000μs 1.8065μs 553.5703 KOps/s 542.5716 KOps/s $\color{#35bf28}+2.03\%$
test_tc_first_layer_tensor_only 4.1310μs 0.4032μs 2.4804 MOps/s 2.5473 MOps/s $\color{#d91a1a}-2.63\%$
test_tc_first_layer_tensor_set 29.7310μs 3.9528μs 252.9877 KOps/s 252.3387 KOps/s $\color{#35bf28}+0.26\%$
test_tc_first_layer_tensor_only_set 32.6700μs 3.2786μs 305.0108 KOps/s 302.9309 KOps/s $\color{#35bf28}+0.69\%$
test_tc_first_layer_nontensor 25.6010μs 6.2107μs 161.0137 KOps/s 162.4397 KOps/s $\color{#d91a1a}-0.88\%$
test_tc_second_layer_tensor 26.6610μs 4.4351μs 225.4752 KOps/s 224.5992 KOps/s $\color{#35bf28}+0.39\%$
test_tc_second_layer_nontensor 50.6310μs 8.6634μs 115.4287 KOps/s 114.6376 KOps/s $\color{#35bf28}+0.69\%$
test_unbind 0.2726s 16.7644ms 59.6502 Ops/s 68.9716 Ops/s $\textbf{\color{#d91a1a}-13.51\%}$
test_full_like 9.4307ms 7.3797ms 135.5073 Ops/s 226.8154 Ops/s $\textbf{\color{#d91a1a}-40.26\%}$
test_zeros_like 5.0378ms 4.3844ms 228.0809 Ops/s 230.1066 Ops/s $\color{#d91a1a}-0.88\%$
test_ones_like 4.7148ms 4.2805ms 233.6187 Ops/s 227.1531 Ops/s $\color{#35bf28}+2.85\%$
test_clone 6.9259ms 6.5821ms 151.9271 Ops/s 151.4178 Ops/s $\color{#35bf28}+0.34\%$
test_squeeze 0.1634ms 14.2631μs 70.1110 KOps/s 70.6011 KOps/s $\color{#d91a1a}-0.69\%$
test_unsqueeze 0.1842ms 0.1109ms 9.0134 KOps/s 8.6849 KOps/s $\color{#35bf28}+3.78\%$
test_split 0.3964ms 0.1835ms 5.4496 KOps/s 5.3000 KOps/s $\color{#35bf28}+2.82\%$
test_permute 0.2685ms 0.2093ms 4.7768 KOps/s 4.7150 KOps/s $\color{#35bf28}+1.31\%$
test_stack 52.0131ms 51.5846ms 19.3856 Ops/s 19.2918 Ops/s $\color{#35bf28}+0.49\%$
test_cat 52.2483ms 51.6675ms 19.3545 Ops/s 28.3999 Ops/s $\textbf{\color{#d91a1a}-31.85\%}$
test_sequential_tensordict 0.3095ms 0.2291ms 4.3647 KOps/s 4.5784 KOps/s $\color{#d91a1a}-4.67\%$
test_sequential_graph_module 0.1908ms 0.1231ms 8.1229 KOps/s 8.4182 KOps/s $\color{#d91a1a}-3.51\%$
test_nested_tensordict 0.6488ms 0.2912ms 3.4340 KOps/s 3.3952 KOps/s $\color{#35bf28}+1.14\%$
test_nested_graph_module 0.5312ms 0.1332ms 7.5050 KOps/s 7.6583 KOps/s $\color{#d91a1a}-2.00\%$

@github-actions

Copy link
Copy Markdown
Contributor

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

Total Benchmarks: 261. Improved: $\large\color{#35bf28}22$. Worsened: $\large\color{#d91a1a}9$.

Expand to view detailed results
Name Max Mean Ops Ops on Repo HEAD Change
test_plain_set_nested 31.2810μs 14.9546μs 66.8690 KOps/s 66.9588 KOps/s $\color{#d91a1a}-0.13\%$
test_plain_set_stack_nested 39.0610μs 15.2356μs 65.6358 KOps/s 66.5725 KOps/s $\color{#d91a1a}-1.41\%$
test_plain_set_nested_inplace 59.9610μs 16.6462μs 60.0737 KOps/s 60.0177 KOps/s $\color{#35bf28}+0.09\%$
test_plain_set_stack_nested_inplace 58.2010μs 16.3126μs 61.3023 KOps/s 61.1922 KOps/s $\color{#35bf28}+0.18\%$
test_items 28.7510μs 5.9797μs 167.2322 KOps/s 165.4620 KOps/s $\color{#35bf28}+1.07\%$
test_items_nested 0.6035ms 0.4620ms 2.1645 KOps/s 2.1401 KOps/s $\color{#35bf28}+1.14\%$
test_items_nested_locked 0.5734ms 0.4655ms 2.1484 KOps/s 2.1285 KOps/s $\color{#35bf28}+0.94\%$
test_items_nested_leaf 0.2075ms 98.4336μs 10.1591 KOps/s 10.1141 KOps/s $\color{#35bf28}+0.45\%$
test_items_stack_nested 0.6506ms 0.4664ms 2.1440 KOps/s 2.1557 KOps/s $\color{#d91a1a}-0.55\%$
test_items_stack_nested_leaf 0.2326ms 97.7249μs 10.2328 KOps/s 10.2446 KOps/s $\color{#d91a1a}-0.12\%$
test_items_stack_nested_locked 0.6267ms 0.4646ms 2.1523 KOps/s 2.1219 KOps/s $\color{#35bf28}+1.43\%$
test_keys 25.9800μs 4.1899μs 238.6696 KOps/s 225.6068 KOps/s $\textbf{\color{#35bf28}+5.79\%}$
test_keys_nested 0.2576ms 0.1291ms 7.7455 KOps/s 7.6885 KOps/s $\color{#35bf28}+0.74\%$
test_keys_nested_locked 2.2661ms 0.1385ms 7.2206 KOps/s 7.1773 KOps/s $\color{#35bf28}+0.60\%$
test_keys_nested_leaf 0.1611ms 0.1195ms 8.3705 KOps/s 8.3180 KOps/s $\color{#35bf28}+0.63\%$
test_keys_stack_nested 0.3152ms 0.1293ms 7.7312 KOps/s 7.7110 KOps/s $\color{#35bf28}+0.26\%$
test_keys_stack_nested_leaf 0.2621ms 0.1196ms 8.3595 KOps/s 8.3390 KOps/s $\color{#35bf28}+0.25\%$
test_keys_stack_nested_locked 0.3030ms 0.1367ms 7.3156 KOps/s 7.2973 KOps/s $\color{#35bf28}+0.25\%$
test_values 6.8182μs 1.0240μs 976.5992 KOps/s 981.8897 KOps/s $\color{#d91a1a}-0.54\%$
test_values_nested 0.1324ms 52.5172μs 19.0414 KOps/s 19.0823 KOps/s $\color{#d91a1a}-0.21\%$
test_values_nested_locked 0.1374ms 55.0947μs 18.1506 KOps/s 18.2039 KOps/s $\color{#d91a1a}-0.29\%$
test_values_nested_leaf 0.1531ms 59.1555μs 16.9046 KOps/s 16.7464 KOps/s $\color{#35bf28}+0.94\%$
test_values_stack_nested 0.1926ms 51.9955μs 19.2324 KOps/s 19.1767 KOps/s $\color{#35bf28}+0.29\%$
test_values_stack_nested_leaf 0.1460ms 59.8687μs 16.7032 KOps/s 16.6437 KOps/s $\color{#35bf28}+0.36\%$
test_values_stack_nested_locked 90.1620μs 55.0914μs 18.1517 KOps/s 17.9764 KOps/s $\color{#35bf28}+0.98\%$
test_membership 5.2935μs 0.8294μs 1.2057 MOps/s 1.1672 MOps/s $\color{#35bf28}+3.29\%$
test_membership_nested 26.0100μs 2.8893μs 346.1064 KOps/s 346.4887 KOps/s $\color{#d91a1a}-0.11\%$
test_membership_nested_leaf 16.1900μs 2.7777μs 360.0108 KOps/s 358.8627 KOps/s $\color{#35bf28}+0.32\%$
test_membership_stacked_nested 28.2000μs 2.8913μs 345.8689 KOps/s 344.9379 KOps/s $\color{#35bf28}+0.27\%$
test_membership_stacked_nested_leaf 32.4310μs 2.8842μs 346.7196 KOps/s 343.8149 KOps/s $\color{#35bf28}+0.84\%$
test_membership_nested_last 31.9300μs 4.2929μs 232.9453 KOps/s 228.7580 KOps/s $\color{#35bf28}+1.83\%$
test_membership_nested_leaf_last 32.0500μs 4.3326μs 230.8083 KOps/s 228.9187 KOps/s $\color{#35bf28}+0.83\%$
test_membership_stacked_nested_last 38.4000μs 4.2952μs 232.8206 KOps/s 228.7246 KOps/s $\color{#35bf28}+1.79\%$
test_membership_stacked_nested_leaf_last 46.3910μs 4.3434μs 230.2327 KOps/s 228.6745 KOps/s $\color{#35bf28}+0.68\%$
test_nested_getleaf 51.6410μs 21.8231μs 45.8229 KOps/s 46.1036 KOps/s $\color{#d91a1a}-0.61\%$
test_nested_get 82.7910μs 20.5508μs 48.6600 KOps/s 48.6914 KOps/s $\color{#d91a1a}-0.06\%$
test_stacked_getleaf 84.9510μs 21.3675μs 46.8000 KOps/s 45.8249 KOps/s $\color{#35bf28}+2.13\%$
test_stacked_get 66.7810μs 20.3746μs 49.0807 KOps/s 48.5574 KOps/s $\color{#35bf28}+1.08\%$
test_nested_getitemleaf 78.5610μs 21.8898μs 45.6834 KOps/s 44.6780 KOps/s $\color{#35bf28}+2.25\%$
test_nested_getitem 44.7400μs 20.8053μs 48.0646 KOps/s 47.3627 KOps/s $\color{#35bf28}+1.48\%$
test_stacked_getitemleaf 71.1710μs 22.2610μs 44.9216 KOps/s 44.8430 KOps/s $\color{#35bf28}+0.18\%$
test_stacked_getitem 63.9610μs 20.9469μs 47.7398 KOps/s 46.8066 KOps/s $\color{#35bf28}+1.99\%$
test_lock_nested 0.6556ms 0.4740ms 2.1097 KOps/s 2.0777 KOps/s $\color{#35bf28}+1.54\%$
test_lock_stack_nested 0.6689ms 0.4826ms 2.0719 KOps/s 2.0493 KOps/s $\color{#35bf28}+1.10\%$
test_unlock_nested 0.5616ms 0.3920ms 2.5509 KOps/s 2.5380 KOps/s $\color{#35bf28}+0.51\%$
test_unlock_stack_nested 0.4524ms 0.3912ms 2.5561 KOps/s 2.5195 KOps/s $\color{#35bf28}+1.45\%$
test_flatten_speed 0.1527ms 0.1224ms 8.1706 KOps/s 8.1971 KOps/s $\color{#d91a1a}-0.32\%$
test_unflatten_speed 0.7585ms 0.5772ms 1.7326 KOps/s 1.7463 KOps/s $\color{#d91a1a}-0.79\%$
test_common_ops 0.8893ms 0.6847ms 1.4605 KOps/s 1.4288 KOps/s $\color{#35bf28}+2.22\%$
test_creation 91.4020μs 3.1148μs 321.0442 KOps/s 316.8808 KOps/s $\color{#35bf28}+1.31\%$
test_creation_empty 35.9600μs 6.9502μs 143.8814 KOps/s 142.5564 KOps/s $\color{#35bf28}+0.93\%$
test_creation_nested_1 68.7710μs 11.4487μs 87.3463 KOps/s 85.9484 KOps/s $\color{#35bf28}+1.63\%$
test_creation_nested_2 49.8010μs 13.1951μs 75.7854 KOps/s 74.7506 KOps/s $\color{#35bf28}+1.38\%$
test_creation_many_keys[10] 69.1210μs 20.6467μs 48.4338 KOps/s 47.1169 KOps/s $\color{#35bf28}+2.80\%$
test_creation_many_keys[50] 0.1255ms 89.3078μs 11.1972 KOps/s 10.9401 KOps/s $\color{#35bf28}+2.35\%$
test_creation_many_keys[100] 0.3555ms 0.1747ms 5.7251 KOps/s 5.5663 KOps/s $\color{#35bf28}+2.85\%$
test_creation_nested_many_keys[10] 0.1385ms 44.5912μs 22.4259 KOps/s 22.0842 KOps/s $\color{#35bf28}+1.55\%$
test_creation_nested_many_keys[50] 0.3325ms 0.1822ms 5.4893 KOps/s 5.3502 KOps/s $\color{#35bf28}+2.60\%$
test_clone 53.5310μs 13.1926μs 75.7999 KOps/s 76.7278 KOps/s $\color{#d91a1a}-1.21\%$
test_getitem[int] 1.6079ms 15.3017μs 65.3524 KOps/s 59.0784 KOps/s $\textbf{\color{#35bf28}+10.62\%}$
test_getitem[slice_int] 0.1433ms 24.6598μs 40.5519 KOps/s 40.5645 KOps/s $\color{#d91a1a}-0.03\%$
test_getitem[range] 0.1827ms 63.0974μs 15.8485 KOps/s 14.9701 KOps/s $\textbf{\color{#35bf28}+5.87\%}$
test_getitem[tuple] 0.1379ms 23.8821μs 41.8723 KOps/s 40.7795 KOps/s $\color{#35bf28}+2.68\%$
test_getitem[list] 0.1812ms 57.0690μs 17.5226 KOps/s 17.1321 KOps/s $\color{#35bf28}+2.28\%$
test_setitem_dim[int] 67.7310μs 25.1768μs 39.7191 KOps/s 38.0912 KOps/s $\color{#35bf28}+4.27\%$
test_setitem_dim[slice_int] 81.9710μs 41.8528μs 23.8932 KOps/s 23.3966 KOps/s $\color{#35bf28}+2.12\%$
test_setitem_dim[range] 0.1660ms 93.5866μs 10.6853 KOps/s 10.5197 KOps/s $\color{#35bf28}+1.57\%$
test_setitem_dim[tuple] 61.8810μs 39.2739μs 25.4622 KOps/s 25.1851 KOps/s $\color{#35bf28}+1.10\%$
test_setitem 57.1910μs 17.5306μs 57.0432 KOps/s 57.2246 KOps/s $\color{#d91a1a}-0.32\%$
test_set 65.8610μs 16.7013μs 59.8755 KOps/s 59.2972 KOps/s $\color{#35bf28}+0.98\%$
test_set_shared 0.5491ms 0.2030ms 4.9259 KOps/s 4.8804 KOps/s $\color{#35bf28}+0.93\%$
test_update 0.3486ms 21.1140μs 47.3620 KOps/s 46.1155 KOps/s $\color{#35bf28}+2.70\%$
test_update_nested 73.4710μs 32.7921μs 30.4951 KOps/s 30.0527 KOps/s $\color{#35bf28}+1.47\%$
test_update__nested 0.4551ms 33.6295μs 29.7358 KOps/s 28.8448 KOps/s $\color{#35bf28}+3.09\%$
test_set_nested 52.3400μs 18.2571μs 54.7732 KOps/s 53.4293 KOps/s $\color{#35bf28}+2.52\%$
test_set_nested_new 77.7410μs 23.8630μs 41.9059 KOps/s 42.8613 KOps/s $\color{#d91a1a}-2.23\%$
test_select 79.5010μs 39.8043μs 25.1229 KOps/s 24.5634 KOps/s $\color{#35bf28}+2.28\%$
test_select_nested 0.1867ms 73.7077μs 13.5671 KOps/s 13.5137 KOps/s $\color{#35bf28}+0.40\%$
test_exclude_nested 0.1976ms 91.5436μs 10.9238 KOps/s 10.9760 KOps/s $\color{#d91a1a}-0.48\%$
test_empty[True] 0.5518ms 0.3958ms 2.5266 KOps/s 2.5396 KOps/s $\color{#d91a1a}-0.51\%$
test_empty[False] 8.1327μs 1.3081μs 764.4721 KOps/s 767.4838 KOps/s $\color{#d91a1a}-0.39\%$
test_to 0.1052ms 73.0544μs 13.6884 KOps/s 13.8994 KOps/s $\color{#d91a1a}-1.52\%$
test_to_nonblocking 0.1071ms 66.4795μs 15.0422 KOps/s 15.1968 KOps/s $\color{#d91a1a}-1.02\%$
test_unbind_speed 0.5095ms 0.3329ms 3.0036 KOps/s 2.9738 KOps/s $\color{#35bf28}+1.00\%$
test_unbind_speed_stack0 0.5071ms 0.3325ms 3.0071 KOps/s 3.0025 KOps/s $\color{#35bf28}+0.15\%$
test_unbind_speed_stack1 0.1054s 0.8311ms 1.2032 KOps/s 1.1762 KOps/s $\color{#35bf28}+2.29\%$
test_split 0.1058s 1.2580ms 794.9436 Ops/s 780.1050 Ops/s $\color{#35bf28}+1.90\%$
test_chunk 0.1068s 1.2106ms 826.0271 Ops/s 919.6894 Ops/s $\textbf{\color{#d91a1a}-10.18\%}$
test_to_cpu_blocking 20.6049ms 19.8632ms 50.3443 Ops/s 45.4836 Ops/s $\textbf{\color{#35bf28}+10.69\%}$
test_to_cpu_global_sync 11.8906ms 11.7498ms 85.1076 Ops/s 85.1112 Ops/s $-0.00\%$
test_to_cpu_event_sync 13.0218ms 12.7018ms 78.7289 Ops/s 78.7793 Ops/s $\color{#d91a1a}-0.06\%$
test_to_cpu_default 0.1191s 14.0994ms 70.9249 Ops/s 78.2619 Ops/s $\textbf{\color{#d91a1a}-9.37\%}$
test_consolidate[False-None] 4.3770ms 4.0829ms 244.9224 Ops/s 242.7403 Ops/s $\color{#35bf28}+0.90\%$
test_consolidate[default-None] 2.1774ms 2.0436ms 489.3353 Ops/s 477.6962 Ops/s $\color{#35bf28}+2.44\%$
test_consolidate[reduce-overhead-None] 2.1442ms 1.9756ms 506.1689 Ops/s 494.7592 Ops/s $\color{#35bf28}+2.31\%$
test_consolidate_njt[False-None] 8.7259ms 8.4729ms 118.0240 Ops/s 115.3910 Ops/s $\color{#35bf28}+2.28\%$
test_to[False-False-None] 2.3516ms 2.1663ms 461.6215 Ops/s 456.7997 Ops/s $\color{#35bf28}+1.06\%$
test_to[True-False-None] 2.2011ms 1.9386ms 515.8250 Ops/s 525.3712 Ops/s $\color{#d91a1a}-1.82\%$
test_to[within-False-None] 6.3607ms 6.1643ms 162.2247 Ops/s 162.3787 Ops/s $\color{#d91a1a}-0.09\%$
test_to[True-default-None] 9.4398ms 9.2752ms 107.8148 Ops/s 102.0410 Ops/s $\textbf{\color{#35bf28}+5.66\%}$
test_to_njt[False-False-None] 8.7817ms 8.5908ms 116.4041 Ops/s 113.3097 Ops/s $\color{#35bf28}+2.73\%$
test_to_njt[True-False-None] 7.1936ms 6.9737ms 143.3966 Ops/s 142.1920 Ops/s $\color{#35bf28}+0.85\%$
test_to_njt[within-False-None] 15.9209ms 15.5913ms 64.1383 Ops/s 63.2713 Ops/s $\color{#35bf28}+1.37\%$
test_creation[device0] 0.3966ms 0.1160ms 8.6239 KOps/s 8.7697 KOps/s $\color{#d91a1a}-1.66\%$
test_creation_from_tensor 0.3977ms 0.1168ms 8.5650 KOps/s 8.9989 KOps/s $\color{#d91a1a}-4.82\%$
test_add_one[memmap_tensor0] 0.2949ms 6.6765μs 149.7794 KOps/s 150.1483 KOps/s $\color{#d91a1a}-0.25\%$
test_contiguous[memmap_tensor0] 22.5710μs 0.6563μs 1.5238 MOps/s 2.2332 MOps/s $\textbf{\color{#d91a1a}-31.76\%}$
test_stack[memmap_tensor0] 29.7200μs 4.7287μs 211.4747 KOps/s 214.7060 KOps/s $\color{#d91a1a}-1.50\%$
test_memmaptd_index 1.0534ms 0.2688ms 3.7208 KOps/s 3.7109 KOps/s $\color{#35bf28}+0.27\%$
test_memmaptd_index_astensor 0.5501ms 0.3725ms 2.6848 KOps/s 2.6959 KOps/s $\color{#d91a1a}-0.41\%$
test_memmaptd_index_op 0.8692ms 0.6180ms 1.6181 KOps/s 1.5900 KOps/s $\color{#35bf28}+1.77\%$
test_serialize_model 0.3235s 0.1617s 6.1833 Ops/s 7.4280 Ops/s $\textbf{\color{#d91a1a}-16.76\%}$
test_serialize_model_pickle 1.3805s 1.1994s 0.8338 Ops/s 0.8368 Ops/s $\color{#d91a1a}-0.36\%$
test_serialize_weights 0.1371s 0.1339s 7.4686 Ops/s 7.4406 Ops/s $\color{#35bf28}+0.38\%$
test_serialize_weights_returnearly 0.4524s 86.3680ms 11.5784 Ops/s 6.9929 Ops/s $\textbf{\color{#35bf28}+65.57\%}$
test_serialize_weights_pickle 1.3691s 1.2145s 0.8234 Ops/s 0.8228 Ops/s $\color{#35bf28}+0.08\%$
test_reshape_pytree 0.2045ms 32.2965μs 30.9631 KOps/s 30.6675 KOps/s $\color{#35bf28}+0.96\%$
test_reshape_td 71.8410μs 45.9699μs 21.7534 KOps/s 22.0223 KOps/s $\color{#d91a1a}-1.22\%$
test_view_pytree 0.2140ms 32.0796μs 31.1725 KOps/s 30.9520 KOps/s $\color{#35bf28}+0.71\%$
test_view_td 86.5710μs 53.4526μs 18.7082 KOps/s 18.8873 KOps/s $\color{#d91a1a}-0.95\%$
test_unbind_pytree 0.2293ms 35.8704μs 27.8781 KOps/s 27.4128 KOps/s $\color{#35bf28}+1.70\%$
test_unbind_td 0.1057ms 50.2425μs 19.9035 KOps/s 20.0497 KOps/s $\color{#d91a1a}-0.73\%$
test_split_pytree 0.2454ms 42.3829μs 23.5944 KOps/s 23.6869 KOps/s $\color{#d91a1a}-0.39\%$
test_split_td 0.1421ms 64.2592μs 15.5620 KOps/s 15.3617 KOps/s $\color{#35bf28}+1.30\%$
test_add_pytree 0.2696ms 41.3913μs 24.1597 KOps/s 23.9963 KOps/s $\color{#35bf28}+0.68\%$
test_add_td 0.1216ms 55.2594μs 18.0965 KOps/s 18.3410 KOps/s $\color{#d91a1a}-1.33\%$
test_compile_add_one_nested[tensordict-compile] 0.2726ms 0.1593ms 6.2762 KOps/s 6.0076 KOps/s $\color{#35bf28}+4.47\%$
test_compile_add_one_nested[tensordict-eager] 0.4796ms 0.2038ms 4.9073 KOps/s 5.0129 KOps/s $\color{#d91a1a}-2.10\%$
test_compile_add_one_nested[pytree-compile] 0.3946ms 0.1276ms 7.8353 KOps/s 7.8758 KOps/s $\color{#d91a1a}-0.51\%$
test_compile_add_one_nested[pytree-eager] 0.4266ms 0.1792ms 5.5790 KOps/s 5.6171 KOps/s $\color{#d91a1a}-0.68\%$
test_compile_copy_nested[tensordict-compile] 0.3148ms 17.8227μs 56.1081 KOps/s 61.7800 KOps/s $\textbf{\color{#d91a1a}-9.18\%}$
test_compile_copy_nested[tensordict-eager] 0.1447ms 54.6080μs 18.3123 KOps/s 18.5474 KOps/s $\color{#d91a1a}-1.27\%$
test_compile_copy_nested[pytree-compile] 0.1826ms 16.0579μs 62.2746 KOps/s 61.7088 KOps/s $\color{#35bf28}+0.92\%$
test_compile_copy_nested[pytree-eager] 0.3468ms 67.6604μs 14.7797 KOps/s 14.8094 KOps/s $\color{#d91a1a}-0.20\%$
test_compile_add_one_flat[tensordict-compile] 0.2998ms 0.1996ms 5.0106 KOps/s 4.8994 KOps/s $\color{#35bf28}+2.27\%$
test_compile_add_one_flat[tensordict-eager] 0.4308ms 0.2787ms 3.5879 KOps/s 3.6162 KOps/s $\color{#d91a1a}-0.78\%$
test_compile_add_one_flat[tensorclass-compile] 0.3199ms 0.1359ms 7.3610 KOps/s 7.2905 KOps/s $\color{#35bf28}+0.97\%$
test_compile_add_one_flat[tensorclass-eager] 0.1815ms 74.7067μs 13.3857 KOps/s 13.4934 KOps/s $\color{#d91a1a}-0.80\%$
test_compile_add_one_flat[pytree-compile] 0.2156ms 0.1788ms 5.5914 KOps/s 5.4737 KOps/s $\color{#35bf28}+2.15\%$
test_compile_add_one_flat[pytree-eager] 0.8195ms 0.5294ms 1.8891 KOps/s 1.8777 KOps/s $\color{#35bf28}+0.61\%$
test_compile_add_self_flat[tensordict-eager] 0.5064ms 0.3308ms 3.0231 KOps/s 3.0208 KOps/s $\color{#35bf28}+0.08\%$
test_compile_add_self_flat[tensordict-compile] 0.2786ms 0.1997ms 5.0068 KOps/s 4.6853 KOps/s $\textbf{\color{#35bf28}+6.86\%}$
test_compile_add_self_flat[tensorclass-eager] 0.1873ms 90.2540μs 11.0798 KOps/s 11.1694 KOps/s $\color{#d91a1a}-0.80\%$
test_compile_add_self_flat[tensorclass-compile] 0.2919ms 0.1364ms 7.3301 KOps/s 7.0599 KOps/s $\color{#35bf28}+3.83\%$
test_compile_add_self_flat[pytree-eager] 0.1826s 0.5247ms 1.9057 KOps/s 2.2581 KOps/s $\textbf{\color{#d91a1a}-15.61\%}$
test_compile_add_self_flat[pytree-compile] 0.2773ms 0.1809ms 5.5284 KOps/s 5.3676 KOps/s $\color{#35bf28}+3.00\%$
test_compile_copy_flat[tensordict-compile] 84.1910μs 19.3901μs 51.5728 KOps/s 48.8979 KOps/s $\textbf{\color{#35bf28}+5.47\%}$
test_compile_copy_flat[tensordict-eager] 0.1225ms 41.9815μs 23.8200 KOps/s 24.1256 KOps/s $\color{#d91a1a}-1.27\%$
test_compile_copy_flat[pytree-compile] 0.2408ms 16.3197μs 61.2756 KOps/s 59.2159 KOps/s $\color{#35bf28}+3.48\%$
test_compile_copy_flat[pytree-eager] 0.3425ms 53.0482μs 18.8508 KOps/s 19.0952 KOps/s $\color{#d91a1a}-1.28\%$
test_compile_assign_and_add[tensordict-compile] 2.0892ms 0.1886ms 5.3029 KOps/s 4.7998 KOps/s $\textbf{\color{#35bf28}+10.48\%}$
test_compile_assign_and_add[tensordict-eager] 3.6142ms 3.3434ms 299.1001 Ops/s 296.0989 Ops/s $\color{#35bf28}+1.01\%$
test_compile_assign_and_add[pytree-compile] 2.1010ms 0.1753ms 5.7045 KOps/s 5.4953 KOps/s $\color{#35bf28}+3.81\%$
test_compile_assign_and_add[pytree-eager] 3.0384ms 2.8416ms 351.9087 Ops/s 352.9361 Ops/s $\color{#d91a1a}-0.29\%$
test_compile_indexing[tensor-tensordict-compile] 0.2487ms 0.1266ms 7.8988 KOps/s 7.5420 KOps/s $\color{#35bf28}+4.73\%$
test_compile_indexing[tensor-tensordict-eager] 0.3093ms 73.6143μs 13.5843 KOps/s 13.5555 KOps/s $\color{#35bf28}+0.21\%$
test_compile_indexing[tensor-tensorclass-compile] 0.1991ms 0.1125ms 8.8892 KOps/s 8.6728 KOps/s $\color{#35bf28}+2.50\%$
test_compile_indexing[tensor-tensorclass-eager] 0.2494ms 44.3845μs 22.5304 KOps/s 22.1070 KOps/s $\color{#35bf28}+1.92\%$
test_compile_indexing[tensor-pytree-compile] 0.2942ms 0.1137ms 8.7935 KOps/s 8.2629 KOps/s $\textbf{\color{#35bf28}+6.42\%}$
test_compile_indexing[tensor-pytree-eager] 0.2594ms 44.2183μs 22.6151 KOps/s 21.8874 KOps/s $\color{#35bf28}+3.32\%$
test_compile_indexing[slice-tensordict-compile] 0.2310ms 70.9251μs 14.0994 KOps/s 13.3574 KOps/s $\textbf{\color{#35bf28}+5.55\%}$
test_compile_indexing[slice-tensordict-eager] 0.2060ms 27.4504μs 36.4293 KOps/s 36.2887 KOps/s $\color{#35bf28}+0.39\%$
test_compile_indexing[slice-tensorclass-compile] 0.1580ms 57.8454μs 17.2875 KOps/s 16.1237 KOps/s $\textbf{\color{#35bf28}+7.22\%}$
test_compile_indexing[slice-tensorclass-eager] 0.2361ms 21.8747μs 45.7149 KOps/s 45.3093 KOps/s $\color{#35bf28}+0.90\%$
test_compile_indexing[slice-pytree-compile] 0.1625ms 58.8243μs 16.9998 KOps/s 16.2393 KOps/s $\color{#35bf28}+4.68\%$
test_compile_indexing[slice-pytree-eager] 0.2876ms 21.8446μs 45.7779 KOps/s 45.4342 KOps/s $\color{#35bf28}+0.76\%$
test_compile_indexing[int-tensordict-compile] 0.2031ms 71.0820μs 14.0683 KOps/s 13.4547 KOps/s $\color{#35bf28}+4.56\%$
test_compile_indexing[int-tensordict-eager] 0.2718ms 27.0365μs 36.9870 KOps/s 36.7906 KOps/s $\color{#35bf28}+0.53\%$
test_compile_indexing[int-tensorclass-compile] 0.1418ms 57.5838μs 17.3660 KOps/s 16.3449 KOps/s $\textbf{\color{#35bf28}+6.25\%}$
test_compile_indexing[int-tensorclass-eager] 0.2261ms 21.6054μs 46.2847 KOps/s 45.4164 KOps/s $\color{#35bf28}+1.91\%$
test_compile_indexing[int-pytree-compile] 0.1429ms 58.5551μs 17.0779 KOps/s 16.6347 KOps/s $\color{#35bf28}+2.66\%$
test_compile_indexing[int-pytree-eager] 0.2592ms 21.8036μs 45.8640 KOps/s 45.5943 KOps/s $\color{#35bf28}+0.59\%$
test_compile_replace[single-eager] 0.1194ms 47.1775μs 21.1966 KOps/s 19.9545 KOps/s $\textbf{\color{#35bf28}+6.22\%}$
test_compile_replace[single-compile] 0.2314ms 0.1213ms 8.2443 KOps/s 7.7296 KOps/s $\textbf{\color{#35bf28}+6.66\%}$
test_compile_replace[multi-eager] 0.7350ms 0.5643ms 1.7720 KOps/s 1.7671 KOps/s $\color{#35bf28}+0.28\%$
test_compile_replace[multi-compile] 0.2442ms 0.1275ms 7.8438 KOps/s 7.6478 KOps/s $\color{#35bf28}+2.56\%$
test_compile_tc_getattr_20[eager] 0.3496ms 0.1717ms 5.8257 KOps/s 5.8761 KOps/s $\color{#d91a1a}-0.86\%$
test_compile_tc_getattr_20[compile] 0.3122ms 0.1376ms 7.2685 KOps/s 7.2641 KOps/s $\color{#35bf28}+0.06\%$
test_compile_clone_shallow[20-eager] 49.8600μs 19.4634μs 51.3785 KOps/s 53.1804 KOps/s $\color{#d91a1a}-3.39\%$
test_compile_clone_shallow[20-compile] 0.1021ms 17.2615μs 57.9324 KOps/s 57.7743 KOps/s $\color{#35bf28}+0.27\%$
test_compile_clone_shallow[40-eager] 93.1920μs 34.1600μs 29.2740 KOps/s 29.9392 KOps/s $\color{#d91a1a}-2.22\%$
test_compile_clone_shallow[40-compile] 88.4710μs 17.9831μs 55.6079 KOps/s 53.2014 KOps/s $\color{#35bf28}+4.52\%$
test_compile_clone_shallow[80-eager] 0.1615ms 63.6669μs 15.7067 KOps/s 16.0162 KOps/s $\color{#d91a1a}-1.93\%$
test_compile_clone_shallow[80-compile] 0.1223ms 20.8090μs 48.0561 KOps/s 46.3490 KOps/s $\color{#35bf28}+3.68\%$
test_compile_update_inplace[eager] 0.1474ms 60.5858μs 16.5055 KOps/s 16.7860 KOps/s $\color{#d91a1a}-1.67\%$
test_compile_update_inplace[compile] 0.2010ms 0.1520ms 6.5774 KOps/s 6.4354 KOps/s $\color{#35bf28}+2.21\%$
test_mod_add[eager] 94.3720μs 49.3591μs 20.2597 KOps/s 20.3626 KOps/s $\color{#d91a1a}-0.51\%$
test_mod_add[compile] 0.5844ms 0.1202ms 8.3207 KOps/s 8.3324 KOps/s $\color{#d91a1a}-0.14\%$
test_mod_add[compile-overhead] 0.3096ms 0.1661ms 6.0189 KOps/s 5.9159 KOps/s $\color{#35bf28}+1.74\%$
test_mod_wrap[eager] 0.3729ms 0.2920ms 3.4249 KOps/s 3.4497 KOps/s $\color{#d91a1a}-0.72\%$
test_mod_wrap[compile] 0.5224ms 0.3707ms 2.6973 KOps/s 2.6483 KOps/s $\color{#35bf28}+1.85\%$
test_mod_wrap[compile-overhead] 9.5489ms 5.0621ms 197.5448 Ops/s 199.8031 Ops/s $\color{#d91a1a}-1.13\%$
test_mod_wrap_and_backward[eager] 1.8059ms 1.5192ms 658.2456 Ops/s 661.0827 Ops/s $\color{#d91a1a}-0.43\%$
test_mod_wrap_and_backward[compile] 1.6467ms 1.4703ms 680.1267 Ops/s 674.2629 Ops/s $\color{#35bf28}+0.87\%$
test_mod_wrap_and_backward[compile-overhead] 1.2756ms 0.9211ms 1.0856 KOps/s 1.0654 KOps/s $\color{#35bf28}+1.90\%$
test_seq_add[eager] 0.2143ms 0.1546ms 6.4666 KOps/s 6.3495 KOps/s $\color{#35bf28}+1.84\%$
test_seq_add[compile] 0.3118ms 0.1304ms 7.6659 KOps/s 7.1777 KOps/s $\textbf{\color{#35bf28}+6.80\%}$
test_seq_add[compile-overhead] 0.3272ms 0.1715ms 5.8297 KOps/s 5.3908 KOps/s $\textbf{\color{#35bf28}+8.14\%}$
test_seq_wrap[eager] 0.6767ms 0.5230ms 1.9121 KOps/s 1.8253 KOps/s $\color{#35bf28}+4.75\%$
test_seq_wrap[compile] 0.5880ms 0.3892ms 2.5694 KOps/s 2.4468 KOps/s $\textbf{\color{#35bf28}+5.01\%}$
test_seq_wrap[compile-overhead] 0.3566ms 0.2889ms 3.4613 KOps/s 3.2601 KOps/s $\textbf{\color{#35bf28}+6.17\%}$
test_func_call_runtime[False-eager] 0.9979ms 0.8395ms 1.1911 KOps/s 1.1396 KOps/s $\color{#35bf28}+4.52\%$
test_func_call_runtime[False-compile] 1.0689ms 0.9278ms 1.0778 KOps/s 1.0347 KOps/s $\color{#35bf28}+4.17\%$
test_func_call_runtime[False-compile-overhead] 0.5520ms 0.4917ms 2.0336 KOps/s 2.0113 KOps/s $\color{#35bf28}+1.11\%$
test_func_call_runtime[True-eager] 1.2463ms 1.0835ms 922.9329 Ops/s 933.1316 Ops/s $\color{#d91a1a}-1.09\%$
test_func_call_runtime[True-compile] 1.1250ms 0.9443ms 1.0590 KOps/s 1.0176 KOps/s $\color{#35bf28}+4.07\%$
test_func_call_runtime[True-compile-overhead] 0.6868ms 0.5071ms 1.9720 KOps/s 1.9515 KOps/s $\color{#35bf28}+1.05\%$
test_func_call_cm_runtime[False-eager] 0.9939ms 0.8318ms 1.2022 KOps/s 1.1393 KOps/s $\textbf{\color{#35bf28}+5.52\%}$
test_func_call_cm_runtime[False-compile] 1.0816ms 0.9076ms 1.1018 KOps/s 1.0665 KOps/s $\color{#35bf28}+3.32\%$
test_func_call_cm_runtime[False-compile-overhead] 0.6456ms 0.4674ms 2.1395 KOps/s 2.1031 KOps/s $\color{#35bf28}+1.73\%$
test_func_call_cm_runtime[True-eager] 1.4588ms 1.2218ms 818.4542 Ops/s 813.1396 Ops/s $\color{#35bf28}+0.65\%$
test_func_call_cm_runtime[True-compile] 1.0157ms 0.9504ms 1.0521 KOps/s 1.0177 KOps/s $\color{#35bf28}+3.38\%$
test_func_call_cm_runtime[True-compile-overhead] 0.5641ms 0.5145ms 1.9435 KOps/s 1.9051 KOps/s $\color{#35bf28}+2.02\%$
test_vmap_func_call_cm_runtime[eager] 2.9106ms 2.3901ms 418.3947 Ops/s 418.4638 Ops/s $\color{#d91a1a}-0.02\%$
test_vmap_func_call_cm_runtime[compile] 1.1668ms 0.9656ms 1.0357 KOps/s 1.0202 KOps/s $\color{#35bf28}+1.51\%$
test_vmap_func_call_cm_runtime[compile-overhead] 0.6576ms 0.5199ms 1.9234 KOps/s 1.8835 KOps/s $\color{#35bf28}+2.12\%$
test_distributed 2.9428ms 0.1689ms 5.9212 KOps/s 6.4580 KOps/s $\textbf{\color{#d91a1a}-8.31\%}$
test_tdmodule 0.5715ms 27.8932μs 35.8510 KOps/s 36.2499 KOps/s $\color{#d91a1a}-1.10\%$
test_tdmodule_dispatch 0.1089ms 45.0885μs 22.1786 KOps/s 21.8974 KOps/s $\color{#35bf28}+1.28\%$
test_tdseq 66.0610μs 26.7941μs 37.3216 KOps/s 37.1797 KOps/s $\color{#35bf28}+0.38\%$
test_tdseq_dispatch 75.3210μs 47.2042μs 21.1845 KOps/s 20.9404 KOps/s $\color{#35bf28}+1.17\%$
test_instantiation_functorch 2.2885ms 2.0739ms 482.1939 Ops/s 477.8698 Ops/s $\color{#35bf28}+0.90\%$
test_exec_functorch 0.2861ms 0.1784ms 5.6067 KOps/s 5.5441 KOps/s $\color{#35bf28}+1.13\%$
test_exec_functional_call 0.2937ms 0.1603ms 6.2382 KOps/s 6.2831 KOps/s $\color{#d91a1a}-0.71\%$
test_exec_td_decorator 0.4731ms 0.2376ms 4.2094 KOps/s 4.2171 KOps/s $\color{#d91a1a}-0.18\%$
test_vmap_mlp_speed_decorator[True-True] 1.0417ms 0.8261ms 1.2105 KOps/s 1.2139 KOps/s $\color{#d91a1a}-0.28\%$
test_vmap_mlp_speed_decorator[True-False] 1.0891ms 0.8259ms 1.2108 KOps/s 1.2185 KOps/s $\color{#d91a1a}-0.63\%$
test_vmap_mlp_speed_decorator[False-True] 0.9170ms 0.7128ms 1.4030 KOps/s 1.4118 KOps/s $\color{#d91a1a}-0.62\%$
test_vmap_mlp_speed_decorator[False-False] 0.8933ms 0.7138ms 1.4010 KOps/s 1.4166 KOps/s $\color{#d91a1a}-1.10\%$
test_vmap_transformer_speed_decorator[True-True] 21.6333ms 20.8176ms 48.0363 Ops/s 48.4071 Ops/s $\color{#d91a1a}-0.77\%$
test_vmap_transformer_speed_decorator[True-False] 21.3667ms 20.7450ms 48.2043 Ops/s 48.4746 Ops/s $\color{#d91a1a}-0.56\%$
test_vmap_transformer_speed_decorator[False-True] 21.2410ms 20.5859ms 48.5769 Ops/s 48.8316 Ops/s $\color{#d91a1a}-0.52\%$
test_vmap_transformer_speed_decorator[False-False] 21.1574ms 20.5913ms 48.5641 Ops/s 48.8731 Ops/s $\color{#d91a1a}-0.63\%$
test_to_module_speed[True] 1.6468ms 1.4682ms 681.0861 Ops/s 670.1955 Ops/s $\color{#35bf28}+1.62\%$
test_to_module_speed[False] 1.6859ms 1.4671ms 681.6318 Ops/s 694.1458 Ops/s $\color{#d91a1a}-1.80\%$
test_tc_init 73.3610μs 44.7205μs 22.3611 KOps/s 22.4827 KOps/s $\color{#d91a1a}-0.54\%$
test_tc_init_tensor_only 47.1900μs 9.6691μs 103.4221 KOps/s 102.8705 KOps/s $\color{#35bf28}+0.54\%$
test_tc_init_nested 0.1681ms 88.5106μs 11.2981 KOps/s 11.4366 KOps/s $\color{#d91a1a}-1.21\%$
test_tc_init_many_fields 50.2110μs 16.4219μs 60.8944 KOps/s 61.2649 KOps/s $\color{#d91a1a}-0.60\%$
test_tc_first_layer_tensor 31.4900μs 1.7925μs 557.8700 KOps/s 555.4308 KOps/s $\color{#35bf28}+0.44\%$
test_tc_first_layer_tensor_only 1.5270μs 0.3954μs 2.5294 MOps/s 2.5527 MOps/s $\color{#d91a1a}-0.91\%$
test_tc_first_layer_tensor_set 22.8100μs 3.8289μs 261.1709 KOps/s 251.3990 KOps/s $\color{#35bf28}+3.89\%$
test_tc_first_layer_tensor_only_set 19.8200μs 3.2032μs 312.1908 KOps/s 306.9984 KOps/s $\color{#35bf28}+1.69\%$
test_tc_first_layer_nontensor 25.2210μs 6.2273μs 160.5836 KOps/s 162.0506 KOps/s $\color{#d91a1a}-0.91\%$
test_tc_second_layer_tensor 34.8010μs 4.4685μs 223.7886 KOps/s 228.5234 KOps/s $\color{#d91a1a}-2.07\%$
test_tc_second_layer_nontensor 35.2200μs 8.7793μs 113.9043 KOps/s 116.4660 KOps/s $\color{#d91a1a}-2.20\%$
test_unbind 0.2703s 16.7598ms 59.6665 Ops/s 68.8587 Ops/s $\textbf{\color{#d91a1a}-13.35\%}$
test_full_like 5.0439ms 4.3950ms 227.5315 Ops/s 227.9112 Ops/s $\color{#d91a1a}-0.17\%$
test_zeros_like 4.9160ms 4.3561ms 229.5656 Ops/s 228.1184 Ops/s $\color{#35bf28}+0.63\%$
test_ones_like 4.5420ms 4.3521ms 229.7715 Ops/s 135.2166 Ops/s $\textbf{\color{#35bf28}+69.93\%}$
test_clone 6.6737ms 6.4124ms 155.9468 Ops/s 154.5555 Ops/s $\color{#35bf28}+0.90\%$
test_squeeze 0.1467ms 14.1504μs 70.6693 KOps/s 71.2195 KOps/s $\color{#d91a1a}-0.77\%$
test_unsqueeze 0.2510ms 0.1097ms 9.1173 KOps/s 8.9086 KOps/s $\color{#35bf28}+2.34\%$
test_split 0.2987ms 0.1819ms 5.4964 KOps/s 5.4300 KOps/s $\color{#35bf28}+1.22\%$
test_permute 0.2768ms 0.2019ms 4.9541 KOps/s 4.8043 KOps/s $\color{#35bf28}+3.12\%$
test_stack 53.8180ms 51.4169ms 19.4489 Ops/s 19.5702 Ops/s $\color{#d91a1a}-0.62\%$
test_cat 51.5656ms 51.0378ms 19.5933 Ops/s 23.4029 Ops/s $\textbf{\color{#d91a1a}-16.28\%}$
test_sequential_tensordict 0.3931ms 0.2199ms 4.5476 KOps/s 4.5571 KOps/s $\color{#d91a1a}-0.21\%$
test_sequential_graph_module 0.1602ms 0.1155ms 8.6544 KOps/s 8.5928 KOps/s $\color{#35bf28}+0.72\%$
test_nested_tensordict 0.4808ms 0.2809ms 3.5602 KOps/s 3.3715 KOps/s $\textbf{\color{#35bf28}+5.60\%}$
test_nested_graph_module 0.1707ms 0.1261ms 7.9303 KOps/s 7.7758 KOps/s $\color{#35bf28}+1.99\%$

Comment thread tensordict/_torch_func.py
Comment on lines +84 to +86
# Force implement_for resolution at import time so that it doesn't trigger
# _gcd_import inside torch.compile tracing context.
_maybe_dispatch_higher_order_op(None, (), {})

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't like this because it could make imports slower. Happy to integrate in 0.12.1 but not for now

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. nn Refactor Refactoring code - not a new feature tensorclass

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant