Skip to content

[BugFix] Preserve NonTensor entries in pad; fix NonTensorStack boolean-mask indexing - #1725

Merged
vmoens merged 2 commits into
mainfrom
claude/compassionate-haibt-2c42a2
Jun 15, 2026
Merged

[BugFix] Preserve NonTensor entries in pad; fix NonTensorStack boolean-mask indexing#1725
vmoens merged 2 commits into
mainfrom
claude/compassionate-haibt-2c42a2

Conversation

@vmoens

@vmoens vmoens commented Jun 14, 2026

Copy link
Copy Markdown
Collaborator

Summary

tensordict.pad silently destroyed NonTensor entries: padding a TensorDict containing a NonTensorStack returned the entry as a stack of empty TensorDicts for all positions, valid ones included. Repro:

import torch
from tensordict import NonTensorStack, TensorDict, pad
td = TensorDict({"x": torch.arange(3).unsqueeze(-1), "instr": NonTensorStack("a", "b", "c")}, batch_size=[3])
p = pad(td, [0, 2])
p["instr"]  # before: stack of empty TensorDicts — 'a','b','c' gone;  after: ['a','b','c',None,None]
p["x"]      # correctly zero-padded

Root cause: NonTensorStack is a LazyStackedTensorDict subclass, so it fell into the generic lazy-stack branch and had its leaves filled with the numeric value.

What changed

pad (functional.py) now routes non-tensor entries to a dedicated path. Valid positions keep their original values; each pad slot holds a NonTensorData with data=None (a non-tensor value can't be filled with a numeric constant). Covered cases:

  • top-level NonTensorData / NonTensorStack inputs and nested entries
  • multi-dimensional padding and negative (cropping) pads
  • broadcast NonTensorData (single value over a batch dim)
  • unbatched (batch_size=[]) non-tensor metadata is carried through untouched
  • inplace=True: NonTensorStack identity is preserved; the lazy-stack stack-dim grow path fills new slots with None for non-tensor leaves
  • safe=True pre-flight validates non-tensor pad sizes too

Boolean-mask indexing (_lazy.py) — two related sharp edges surfaced by the same downstream code:

  • Masking dim 0 of a 2-D NonTensorStack raised IndexError because a scalar bool inside a tuple index was treated like a scalar integer. Scalar bools now follow numpy new-axis semantics (True -> size-1 dim, False -> size-0 dim) in both __getitem__ and __setitem__.
  • Indices selecting nothing (empty slice along the stack dim, all-False mask) raised "items cannot be empty" or produced a wrong batch size ([0, 0, ...]); they now return a correctly-shaped zero-length lazy stack that still interops with torch.cat.

LinkedList (utils.py) printed doubly-wrapped (LinkedList(LinkedList([...]))) because __str__ called super().__str__(), which dispatched back to __repr__. Dropped the redundant __str__.

Tests

Added to test/test_tensordict.py (extends existing pad / lazy-stack / non-tensor coverage):

  • test_pad_nontensor, _2dim, _broadcast_data, _inplace, _top_level, _safe, _lazy_stack
  • test_lazy_mask_nested_stack, test_lazy_scalar_bool_index, test_lazy_empty_selection_batch_size
  • test_nontensorstack_boolean_mask, _2d, _scalar_bool_index, test_linked_list_str

Full test/test_tensordict.py (7716 passed), pad/index/mask subsets, test_compile.py subset, and test_tensorclass.py non-tensor/stack subset all pass.

Downstream

torchrl's collector trajs_per_batch path (torchrl/collectors/utils.py::_traj_emit) carries a workaround that pads non-tensor keys separately; once this lands that workaround can be removed.

🤖 Generated with Claude Code

@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 Jun 14, 2026
@github-actions github-actions Bot added bug Something isn't working CI Test functional and removed bug Something isn't working labels Jun 14, 2026
@github-actions

github-actions Bot commented Jun 14, 2026

Copy link
Copy Markdown
Contributor

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

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

Expand to view detailed results
Name Max Mean Ops Ops on Repo HEAD Change
test_collector_preallocated_write[stack_out-cpu-32-2] 0.2117ms 0.1724ms 5.8020 KOps/s 5.7581 KOps/s $\color{#35bf28}+0.76\%$
test_collector_preallocated_write[stack_out-cpu-32-8] 0.3345ms 0.2974ms 3.3622 KOps/s 3.3492 KOps/s $\color{#35bf28}+0.39\%$
test_collector_preallocated_write[stack_out-cpu-32-32] 0.9160ms 0.7778ms 1.2858 KOps/s 1.2727 KOps/s $\color{#35bf28}+1.03\%$
test_collector_preallocated_write[stack_out-cpu-4096-2] 0.4088ms 0.3435ms 2.9111 KOps/s 2.9029 KOps/s $\color{#35bf28}+0.28\%$
test_collector_preallocated_write[stack_out-cpu-4096-8] 1.3212ms 1.1667ms 857.1306 Ops/s 917.1108 Ops/s $\textbf{\color{#d91a1a}-6.54\%}$
test_collector_preallocated_write[stack_out-cpu-4096-32] 7.7489ms 7.3001ms 136.9847 Ops/s 135.0006 Ops/s $\color{#35bf28}+1.47\%$
test_collector_preallocated_write[stack_out-cuda-32-2] 0.3317ms 0.2521ms 3.9671 KOps/s 3.9980 KOps/s $\color{#d91a1a}-0.77\%$
test_collector_preallocated_write[stack_out-cuda-32-8] 0.4360ms 0.3745ms 2.6706 KOps/s 2.6646 KOps/s $\color{#35bf28}+0.23\%$
test_collector_preallocated_write[stack_out-cuda-32-32] 0.9138ms 0.8264ms 1.2100 KOps/s 1.2087 KOps/s $\color{#35bf28}+0.11\%$
test_collector_preallocated_write[stack_out-cuda-4096-2] 0.3922ms 0.2520ms 3.9682 KOps/s 3.8512 KOps/s $\color{#35bf28}+3.04\%$
test_collector_preallocated_write[stack_out-cuda-4096-8] 0.5216ms 0.3757ms 2.6619 KOps/s 2.6620 KOps/s $-0.00\%$
test_collector_preallocated_write[stack_out-cuda-4096-32] 0.9744ms 0.8874ms 1.1269 KOps/s 1.1241 KOps/s $\color{#35bf28}+0.25\%$
test_collector_preallocated_write[set_at_loop-cpu-32-2] 0.2936ms 0.2192ms 4.5629 KOps/s 4.5541 KOps/s $\color{#35bf28}+0.19\%$
test_collector_preallocated_write[set_at_loop-cpu-32-8] 0.9879ms 0.8416ms 1.1882 KOps/s 1.1867 KOps/s $\color{#35bf28}+0.13\%$
test_collector_preallocated_write[set_at_loop-cpu-32-32] 3.4832ms 3.3682ms 296.8935 Ops/s 298.1007 Ops/s $\color{#d91a1a}-0.40\%$
test_collector_preallocated_write[set_at_loop-cpu-4096-2] 0.7402ms 0.3704ms 2.6996 KOps/s 2.5910 KOps/s $\color{#35bf28}+4.19\%$
test_collector_preallocated_write[set_at_loop-cpu-4096-8] 2.1846ms 1.7596ms 568.3058 Ops/s 595.9025 Ops/s $\color{#d91a1a}-4.63\%$
test_collector_preallocated_write[set_at_loop-cpu-4096-32] 10.6057ms 10.3662ms 96.4673 Ops/s 96.6172 Ops/s $\color{#d91a1a}-0.16\%$
test_collector_preallocated_write[set_at_loop-cuda-32-2] 0.4489ms 0.3963ms 2.5233 KOps/s 2.4966 KOps/s $\color{#35bf28}+1.07\%$
test_collector_preallocated_write[set_at_loop-cuda-32-8] 1.6275ms 1.4741ms 678.3958 Ops/s 670.6027 Ops/s $\color{#35bf28}+1.16\%$
test_collector_preallocated_write[set_at_loop-cuda-32-32] 5.9445ms 5.7999ms 172.4174 Ops/s 170.7234 Ops/s $\color{#35bf28}+0.99\%$
test_collector_preallocated_write[set_at_loop-cuda-4096-2] 0.4943ms 0.3972ms 2.5175 KOps/s 2.5014 KOps/s $\color{#35bf28}+0.64\%$
test_collector_preallocated_write[set_at_loop-cuda-4096-8] 1.5952ms 1.4940ms 669.3324 Ops/s 669.0193 Ops/s $\color{#35bf28}+0.05\%$
test_collector_preallocated_write[set_at_loop-cuda-4096-32] 5.9102ms 5.8520ms 170.8824 Ops/s 170.5918 Ops/s $\color{#35bf28}+0.17\%$
test_collector_preallocated_write[copy_at-cpu-32-2] 0.3114ms 0.1747ms 5.7225 KOps/s 5.7316 KOps/s $\color{#d91a1a}-0.16\%$
test_collector_preallocated_write[copy_at-cpu-32-8] 0.7608ms 0.6883ms 1.4528 KOps/s 1.4726 KOps/s $\color{#d91a1a}-1.35\%$
test_collector_preallocated_write[copy_at-cpu-32-32] 2.8156ms 2.7196ms 367.6950 Ops/s 367.4117 Ops/s $\color{#35bf28}+0.08\%$
test_collector_preallocated_write[copy_at-cpu-4096-2] 0.6508ms 0.3143ms 3.1816 KOps/s 3.0869 KOps/s $\color{#35bf28}+3.07\%$
test_collector_preallocated_write[copy_at-cpu-4096-8] 1.7604ms 1.5254ms 655.5589 Ops/s 688.0825 Ops/s $\color{#d91a1a}-4.73\%$
test_collector_preallocated_write[copy_at-cpu-4096-32] 9.7669ms 9.5933ms 104.2399 Ops/s 103.5920 Ops/s $\color{#35bf28}+0.63\%$
test_collector_preallocated_write[copy_at-cuda-32-2] 0.4438ms 0.3303ms 3.0273 KOps/s 3.0362 KOps/s $\color{#d91a1a}-0.29\%$
test_collector_preallocated_write[copy_at-cuda-32-8] 1.3482ms 1.2361ms 809.0062 Ops/s 820.4173 Ops/s $\color{#d91a1a}-1.39\%$
test_collector_preallocated_write[copy_at-cuda-32-32] 4.9990ms 4.8226ms 207.3571 Ops/s 209.6160 Ops/s $\color{#d91a1a}-1.08\%$
test_collector_preallocated_write[copy_at-cuda-4096-2] 0.4069ms 0.3322ms 3.0105 KOps/s 3.0309 KOps/s $\color{#d91a1a}-0.67\%$
test_collector_preallocated_write[copy_at-cuda-4096-8] 1.3026ms 1.2380ms 807.7456 Ops/s 813.7471 Ops/s $\color{#d91a1a}-0.74\%$
test_collector_preallocated_write[copy_at-cuda-4096-32] 4.9588ms 4.8429ms 206.4889 Ops/s 207.6582 Ops/s $\color{#d91a1a}-0.56\%$
test_collector_preallocated_write[manual_leaf_copy-cpu-32-2] 0.1623ms 0.1250ms 7.9974 KOps/s 8.1758 KOps/s $\color{#d91a1a}-2.18\%$
test_collector_preallocated_write[manual_leaf_copy-cpu-32-8] 0.5352ms 0.4895ms 2.0428 KOps/s 2.1072 KOps/s $\color{#d91a1a}-3.05\%$
test_collector_preallocated_write[manual_leaf_copy-cpu-32-32] 2.0150ms 1.9411ms 515.1744 Ops/s 530.1983 Ops/s $\color{#d91a1a}-2.83\%$
test_collector_preallocated_write[manual_leaf_copy-cpu-4096-2] 0.3214ms 0.2616ms 3.8226 KOps/s 3.8407 KOps/s $\color{#d91a1a}-0.47\%$
test_collector_preallocated_write[manual_leaf_copy-cpu-4096-8] 1.7983ms 1.3209ms 757.0461 Ops/s 756.1471 Ops/s $\color{#35bf28}+0.12\%$
test_collector_preallocated_write[manual_leaf_copy-cpu-4096-32] 9.1243ms 8.6867ms 115.1190 Ops/s 115.4082 Ops/s $\color{#d91a1a}-0.25\%$
test_collector_preallocated_write[manual_leaf_copy-cuda-32-2] 0.4159ms 0.2881ms 3.4713 KOps/s 3.6249 KOps/s $\color{#d91a1a}-4.24\%$
test_collector_preallocated_write[manual_leaf_copy-cuda-32-8] 1.3376ms 1.0629ms 940.8450 Ops/s 968.8408 Ops/s $\color{#d91a1a}-2.89\%$
test_collector_preallocated_write[manual_leaf_copy-cuda-32-32] 4.4266ms 4.1724ms 239.6685 Ops/s 247.7170 Ops/s $\color{#d91a1a}-3.25\%$
test_collector_preallocated_write[manual_leaf_copy-cuda-4096-2] 0.3520ms 0.2870ms 3.4843 KOps/s 3.6273 KOps/s $\color{#d91a1a}-3.94\%$
test_collector_preallocated_write[manual_leaf_copy-cuda-4096-8] 1.2169ms 1.0612ms 942.3415 Ops/s 971.2180 Ops/s $\color{#d91a1a}-2.97\%$
test_collector_preallocated_write[manual_leaf_copy-cuda-4096-32] 4.3314ms 4.1755ms 239.4945 Ops/s 246.1724 Ops/s $\color{#d91a1a}-2.71\%$
test_wide_nested_preallocated_write[stack_out-cpu-128-128] 16.3758ms 16.2645ms 61.4835 Ops/s 61.4138 Ops/s $\color{#35bf28}+0.11\%$
test_wide_nested_preallocated_write[stack_out-cpu-128-256] 33.0329ms 32.8961ms 30.3987 Ops/s 30.3972 Ops/s $+0.01\%$
test_wide_nested_preallocated_write[stack_out-cpu-4096-128] 85.4823ms 84.7651ms 11.7973 Ops/s 11.6748 Ops/s $\color{#35bf28}+1.05\%$
test_wide_nested_preallocated_write[stack_out-cpu-4096-256] 0.2059s 0.2036s 4.9120 Ops/s 5.0980 Ops/s $\color{#d91a1a}-3.65\%$
test_wide_nested_preallocated_write[stack_out-cuda-128-128] 13.8812ms 13.7823ms 72.5569 Ops/s 72.1432 Ops/s $\color{#35bf28}+0.57\%$
test_wide_nested_preallocated_write[stack_out-cuda-128-256] 27.1731ms 26.9063ms 37.1660 Ops/s 36.8503 Ops/s $\color{#35bf28}+0.86\%$
test_wide_nested_preallocated_write[stack_out-cuda-4096-128] 14.1683ms 13.9338ms 71.7679 Ops/s 71.2383 Ops/s $\color{#35bf28}+0.74\%$
test_wide_nested_preallocated_write[stack_out-cuda-4096-256] 27.4991ms 27.3148ms 36.6102 Ops/s 36.1742 Ops/s $\color{#35bf28}+1.21\%$
test_wide_nested_preallocated_write[set_at_loop-cpu-128-128] 54.4846ms 53.0131ms 18.8633 Ops/s 18.9364 Ops/s $\color{#d91a1a}-0.39\%$
test_wide_nested_preallocated_write[set_at_loop-cpu-128-256] 0.1074s 0.1064s 9.3949 Ops/s 9.3904 Ops/s $\color{#35bf28}+0.05\%$
test_wide_nested_preallocated_write[set_at_loop-cpu-4096-128] 0.1536s 0.1487s 6.7271 Ops/s 6.8877 Ops/s $\color{#d91a1a}-2.33\%$
test_wide_nested_preallocated_write[set_at_loop-cpu-4096-256] 0.3319s 0.3300s 3.0305 Ops/s 3.1415 Ops/s $\color{#d91a1a}-3.53\%$
test_wide_nested_preallocated_write[set_at_loop-cuda-128-128] 76.5883ms 75.3276ms 13.2753 Ops/s 13.2168 Ops/s $\color{#35bf28}+0.44\%$
test_wide_nested_preallocated_write[set_at_loop-cuda-128-256] 0.1507s 0.1491s 6.7047 Ops/s 6.6467 Ops/s $\color{#35bf28}+0.87\%$
test_wide_nested_preallocated_write[set_at_loop-cuda-4096-128] 76.0996ms 75.2126ms 13.2956 Ops/s 13.1616 Ops/s $\color{#35bf28}+1.02\%$
test_wide_nested_preallocated_write[set_at_loop-cuda-4096-256] 0.1532s 0.1521s 6.5739 Ops/s 6.5655 Ops/s $\color{#35bf28}+0.13\%$
test_wide_nested_preallocated_write[copy_at-cpu-128-128] 31.2590ms 30.9958ms 32.2625 Ops/s 32.9139 Ops/s $\color{#d91a1a}-1.98\%$
test_wide_nested_preallocated_write[copy_at-cpu-128-256] 63.2221ms 62.6315ms 15.9664 Ops/s 16.2892 Ops/s $\color{#d91a1a}-1.98\%$
test_wide_nested_preallocated_write[copy_at-cpu-4096-128] 0.1228s 0.1213s 8.2438 Ops/s 8.5091 Ops/s $\color{#d91a1a}-3.12\%$
test_wide_nested_preallocated_write[copy_at-cpu-4096-256] 0.2745s 0.2722s 3.6732 Ops/s 3.8113 Ops/s $\color{#d91a1a}-3.62\%$
test_wide_nested_preallocated_write[copy_at-cuda-128-128] 44.4975ms 43.9895ms 22.7327 Ops/s 22.9544 Ops/s $\color{#d91a1a}-0.97\%$
test_wide_nested_preallocated_write[copy_at-cuda-128-256] 89.1768ms 88.3416ms 11.3197 Ops/s 11.5068 Ops/s $\color{#d91a1a}-1.63\%$
test_wide_nested_preallocated_write[copy_at-cuda-4096-128] 44.5177ms 44.2921ms 22.5774 Ops/s 22.7570 Ops/s $\color{#d91a1a}-0.79\%$
test_wide_nested_preallocated_write[copy_at-cuda-4096-256] 88.9564ms 88.6202ms 11.2841 Ops/s 11.3900 Ops/s $\color{#d91a1a}-0.93\%$
test_wide_nested_preallocated_write[manual_leaf_copy-cpu-128-128] 21.7689ms 21.2417ms 47.0773 Ops/s 48.9619 Ops/s $\color{#d91a1a}-3.85\%$
test_wide_nested_preallocated_write[manual_leaf_copy-cpu-128-256] 43.4922ms 43.3208ms 23.0836 Ops/s 23.9930 Ops/s $\color{#d91a1a}-3.79\%$
test_wide_nested_preallocated_write[manual_leaf_copy-cpu-4096-128] 0.1117s 0.1100s 9.0931 Ops/s 9.2588 Ops/s $\color{#d91a1a}-1.79\%$
test_wide_nested_preallocated_write[manual_leaf_copy-cpu-4096-256] 0.2522s 0.2497s 4.0051 Ops/s 4.2074 Ops/s $\color{#d91a1a}-4.81\%$
test_wide_nested_preallocated_write[manual_leaf_copy-cuda-128-128] 38.5233ms 38.1312ms 26.2252 Ops/s 27.1444 Ops/s $\color{#d91a1a}-3.39\%$
test_wide_nested_preallocated_write[manual_leaf_copy-cuda-128-256] 76.6262ms 75.7859ms 13.1951 Ops/s 13.5231 Ops/s $\color{#d91a1a}-2.43\%$
test_wide_nested_preallocated_write[manual_leaf_copy-cuda-4096-128] 39.2507ms 37.9618ms 26.3423 Ops/s 27.1251 Ops/s $\color{#d91a1a}-2.89\%$
test_wide_nested_preallocated_write[manual_leaf_copy-cuda-4096-256] 76.0720ms 75.3934ms 13.2638 Ops/s 13.5426 Ops/s $\color{#d91a1a}-2.06\%$
test_plain_set_nested 44.6610μs 15.3972μs 64.9469 KOps/s 64.6605 KOps/s $\color{#35bf28}+0.44\%$
test_plain_set_stack_nested 47.2310μs 15.3968μs 64.9486 KOps/s 65.9646 KOps/s $\color{#d91a1a}-1.54\%$
test_plain_set_nested_inplace 44.2710μs 16.9536μs 58.9844 KOps/s 58.3620 KOps/s $\color{#35bf28}+1.07\%$
test_plain_set_stack_nested_inplace 49.7020μs 16.6319μs 60.1255 KOps/s 60.2335 KOps/s $\color{#d91a1a}-0.18\%$
test_items 24.2900μs 6.0555μs 165.1384 KOps/s 163.8474 KOps/s $\color{#35bf28}+0.79\%$
test_items_nested 0.5215ms 0.4656ms 2.1479 KOps/s 2.1199 KOps/s $\color{#35bf28}+1.32\%$
test_items_nested_locked 0.5505ms 0.4713ms 2.1216 KOps/s 2.1148 KOps/s $\color{#35bf28}+0.32\%$
test_items_nested_leaf 0.1508ms 96.4586μs 10.3671 KOps/s 10.1425 KOps/s $\color{#35bf28}+2.22\%$
test_items_stack_nested 0.6044ms 0.4696ms 2.1293 KOps/s 2.1152 KOps/s $\color{#35bf28}+0.66\%$
test_items_stack_nested_leaf 0.1501ms 97.3910μs 10.2679 KOps/s 10.2354 KOps/s $\color{#35bf28}+0.32\%$
test_items_stack_nested_locked 0.5546ms 0.4718ms 2.1197 KOps/s 2.1006 KOps/s $\color{#35bf28}+0.91\%$
test_keys 25.8300μs 4.2273μs 236.5593 KOps/s 236.6119 KOps/s $\color{#d91a1a}-0.02\%$
test_keys_nested 0.2042ms 0.1303ms 7.6772 KOps/s 7.6473 KOps/s $\color{#35bf28}+0.39\%$
test_keys_nested_locked 0.7511ms 0.1393ms 7.1768 KOps/s 7.1164 KOps/s $\color{#35bf28}+0.85\%$
test_keys_nested_leaf 0.1552ms 0.1215ms 8.2337 KOps/s 8.2110 KOps/s $\color{#35bf28}+0.28\%$
test_keys_stack_nested 0.1867ms 0.1298ms 7.7051 KOps/s 7.6358 KOps/s $\color{#35bf28}+0.91\%$
test_keys_stack_nested_leaf 0.1717ms 0.1201ms 8.3251 KOps/s 8.1727 KOps/s $\color{#35bf28}+1.86\%$
test_keys_stack_nested_locked 0.1811ms 0.1380ms 7.2457 KOps/s 7.1294 KOps/s $\color{#35bf28}+1.63\%$
test_values 5.8362μs 1.0302μs 970.7052 KOps/s 963.5396 KOps/s $\color{#35bf28}+0.74\%$
test_values_nested 81.7620μs 52.7374μs 18.9619 KOps/s 18.9956 KOps/s $\color{#d91a1a}-0.18\%$
test_values_nested_locked 86.4220μs 55.7672μs 17.9317 KOps/s 17.8047 KOps/s $\color{#35bf28}+0.71\%$
test_values_nested_leaf 96.4020μs 60.3534μs 16.5691 KOps/s 16.6273 KOps/s $\color{#d91a1a}-0.35\%$
test_values_stack_nested 85.5820μs 52.2890μs 19.1245 KOps/s 19.0884 KOps/s $\color{#35bf28}+0.19\%$
test_values_stack_nested_leaf 91.5520μs 59.8242μs 16.7156 KOps/s 16.6537 KOps/s $\color{#35bf28}+0.37\%$
test_values_stack_nested_locked 91.3120μs 55.6171μs 17.9801 KOps/s 17.7224 KOps/s $\color{#35bf28}+1.45\%$
test_membership 4.9318μs 0.8324μs 1.2013 MOps/s 1.1682 MOps/s $\color{#35bf28}+2.83\%$
test_membership_nested 37.9710μs 2.9851μs 334.9926 KOps/s 329.9386 KOps/s $\color{#35bf28}+1.53\%$
test_membership_nested_leaf 26.5410μs 2.9646μs 337.3113 KOps/s 333.7542 KOps/s $\color{#35bf28}+1.07\%$
test_membership_stacked_nested 29.3000μs 2.8964μs 345.2552 KOps/s 344.3658 KOps/s $\color{#35bf28}+0.26\%$
test_membership_stacked_nested_leaf 28.8710μs 2.8683μs 348.6383 KOps/s 348.7552 KOps/s $\color{#d91a1a}-0.03\%$
test_membership_nested_last 28.8510μs 4.4338μs 225.5381 KOps/s 222.0697 KOps/s $\color{#35bf28}+1.56\%$
test_membership_nested_leaf_last 35.8810μs 4.4000μs 227.2719 KOps/s 223.5712 KOps/s $\color{#35bf28}+1.66\%$
test_membership_stacked_nested_last 39.9510μs 4.3723μs 228.7140 KOps/s 229.4365 KOps/s $\color{#d91a1a}-0.31\%$
test_membership_stacked_nested_leaf_last 36.5410μs 4.3446μs 230.1706 KOps/s 232.2457 KOps/s $\color{#d91a1a}-0.89\%$
test_nested_getleaf 51.2210μs 22.0209μs 45.4113 KOps/s 45.7203 KOps/s $\color{#d91a1a}-0.68\%$
test_nested_get 45.9110μs 20.6503μs 48.4255 KOps/s 48.0756 KOps/s $\color{#35bf28}+0.73\%$
test_stacked_getleaf 48.3110μs 22.1313μs 45.1850 KOps/s 46.2523 KOps/s $\color{#d91a1a}-2.31\%$
test_stacked_get 45.0110μs 20.6959μs 48.3187 KOps/s 48.5306 KOps/s $\color{#d91a1a}-0.44\%$
test_nested_getitemleaf 50.7810μs 22.4863μs 44.4716 KOps/s 44.2023 KOps/s $\color{#35bf28}+0.61\%$
test_nested_getitem 48.8410μs 21.0780μs 47.4427 KOps/s 46.9830 KOps/s $\color{#35bf28}+0.98\%$
test_stacked_getitemleaf 48.0110μs 22.1647μs 45.1167 KOps/s 45.4969 KOps/s $\color{#d91a1a}-0.84\%$
test_stacked_getitem 57.5320μs 21.4331μs 46.6567 KOps/s 46.9103 KOps/s $\color{#d91a1a}-0.54\%$
test_lock_nested 7.7425ms 0.5164ms 1.9366 KOps/s 1.9665 KOps/s $\color{#d91a1a}-1.52\%$
test_lock_stack_nested 0.6363ms 0.5173ms 1.9332 KOps/s 1.9570 KOps/s $\color{#d91a1a}-1.22\%$
test_unlock_nested 0.4849ms 0.4029ms 2.4820 KOps/s 2.4813 KOps/s $\color{#35bf28}+0.03\%$
test_unlock_stack_nested 0.5354ms 0.4087ms 2.4469 KOps/s 2.4644 KOps/s $\color{#d91a1a}-0.71\%$
test_flatten_speed 0.2084ms 0.1224ms 8.1717 KOps/s 8.1771 KOps/s $\color{#d91a1a}-0.07\%$
test_unflatten_speed 0.6879ms 0.5753ms 1.7384 KOps/s 1.7259 KOps/s $\color{#35bf28}+0.72\%$
test_common_ops 0.1007s 1.8073ms 553.3102 Ops/s 640.0617 Ops/s $\textbf{\color{#d91a1a}-13.55\%}$
test_creation 83.6020μs 3.2172μs 310.8328 KOps/s 313.5400 KOps/s $\color{#d91a1a}-0.86\%$
test_creation_empty 38.2810μs 7.1104μs 140.6391 KOps/s 140.7905 KOps/s $\color{#d91a1a}-0.11\%$
test_creation_nested_1 36.4610μs 11.6155μs 86.0920 KOps/s 85.3876 KOps/s $\color{#35bf28}+0.82\%$
test_creation_nested_2 42.4010μs 13.7738μs 72.6014 KOps/s 72.6969 KOps/s $\color{#d91a1a}-0.13\%$
test_creation_many_keys[10] 52.0410μs 21.1589μs 47.2615 KOps/s 46.4264 KOps/s $\color{#35bf28}+1.80\%$
test_creation_many_keys[50] 0.1230ms 90.5307μs 11.0460 KOps/s 10.7434 KOps/s $\color{#35bf28}+2.82\%$
test_creation_many_keys[100] 0.2748ms 0.1775ms 5.6345 KOps/s 5.5328 KOps/s $\color{#35bf28}+1.84\%$
test_creation_nested_many_keys[10] 91.3820μs 45.8335μs 21.8181 KOps/s 21.5796 KOps/s $\color{#35bf28}+1.11\%$
test_creation_nested_many_keys[50] 0.2479ms 0.1860ms 5.3762 KOps/s 5.2831 KOps/s $\color{#35bf28}+1.76\%$
test_clone 31.8310μs 13.7387μs 72.7873 KOps/s 73.4010 KOps/s $\color{#d91a1a}-0.84\%$
test_getitem[int] 1.5926ms 15.5870μs 64.1562 KOps/s 64.2830 KOps/s $\color{#d91a1a}-0.20\%$
test_getitem[slice_int] 0.1410ms 25.1863μs 39.7042 KOps/s 40.6153 KOps/s $\color{#d91a1a}-2.24\%$
test_getitem[range] 0.1932ms 65.9495μs 15.1631 KOps/s 15.2953 KOps/s $\color{#d91a1a}-0.86\%$
test_getitem[tuple] 0.1441ms 25.1576μs 39.7494 KOps/s 40.8242 KOps/s $\color{#d91a1a}-2.63\%$
test_getitem[list] 0.1896ms 60.3493μs 16.5702 KOps/s 16.3609 KOps/s $\color{#35bf28}+1.28\%$
test_setitem_dim[int] 51.1810μs 27.0479μs 36.9715 KOps/s 37.9085 KOps/s $\color{#d91a1a}-2.47\%$
test_setitem_dim[slice_int] 66.5610μs 43.9522μs 22.7520 KOps/s 23.0041 KOps/s $\color{#d91a1a}-1.10\%$
test_setitem_dim[range] 0.1333ms 98.9461μs 10.1065 KOps/s 10.1657 KOps/s $\color{#d91a1a}-0.58\%$
test_setitem_dim[tuple] 83.8220μs 42.5886μs 23.4804 KOps/s 24.7570 KOps/s $\textbf{\color{#d91a1a}-5.16\%}$
test_setitem 47.9410μs 18.3918μs 54.3722 KOps/s 55.6572 KOps/s $\color{#d91a1a}-2.31\%$
test_set 45.6110μs 17.3823μs 57.5296 KOps/s 58.5769 KOps/s $\color{#d91a1a}-1.79\%$
test_set_shared 0.5565ms 0.2179ms 4.5890 KOps/s 4.7719 KOps/s $\color{#d91a1a}-3.83\%$
test_update 0.3360ms 22.9790μs 43.5180 KOps/s 44.9900 KOps/s $\color{#d91a1a}-3.27\%$
test_update_nested 68.7110μs 34.8105μs 28.7270 KOps/s 29.0788 KOps/s $\color{#d91a1a}-1.21\%$
test_update__nested 0.4644ms 35.2430μs 28.3744 KOps/s 29.2564 KOps/s $\color{#d91a1a}-3.01\%$
test_set_nested 62.0910μs 19.4754μs 51.3467 KOps/s 51.7322 KOps/s $\color{#d91a1a}-0.75\%$
test_set_nested_new 63.0710μs 24.3138μs 41.1289 KOps/s 41.2670 KOps/s $\color{#d91a1a}-0.33\%$
test_select 74.1620μs 41.5445μs 24.0705 KOps/s 24.6612 KOps/s $\color{#d91a1a}-2.40\%$
test_select_nested 0.1036ms 74.3451μs 13.4508 KOps/s 13.3258 KOps/s $\color{#35bf28}+0.94\%$
test_exclude_nested 0.1221ms 91.8367μs 10.8889 KOps/s 10.9105 KOps/s $\color{#d91a1a}-0.20\%$
test_empty[True] 0.4836ms 0.3985ms 2.5092 KOps/s 2.4715 KOps/s $\color{#35bf28}+1.53\%$
test_empty[False] 6.4850μs 1.3781μs 725.6532 KOps/s 719.2747 KOps/s $\color{#35bf28}+0.89\%$
test_to 97.1420μs 70.6528μs 14.1537 KOps/s 14.2667 KOps/s $\color{#d91a1a}-0.79\%$
test_to_nonblocking 0.1220ms 71.7530μs 13.9367 KOps/s 14.3639 KOps/s $\color{#d91a1a}-2.97\%$
test_unbind_speed 0.4261ms 0.3467ms 2.8844 KOps/s 2.9455 KOps/s $\color{#d91a1a}-2.07\%$
test_unbind_speed_stack0 0.4003ms 0.3419ms 2.9252 KOps/s 2.9722 KOps/s $\color{#d91a1a}-1.58\%$
test_unbind_speed_stack1 0.1146s 0.8663ms 1.1543 KOps/s 1.1615 KOps/s $\color{#d91a1a}-0.62\%$
test_split 0.1141s 1.2921ms 773.9196 Ops/s 718.8363 Ops/s $\textbf{\color{#35bf28}+7.66\%}$
test_chunk 1.2821ms 1.0931ms 914.8215 Ops/s 910.5765 Ops/s $\color{#35bf28}+0.47\%$
test_to_cpu_blocking 0.1340s 22.6305ms 44.1882 Ops/s 49.3516 Ops/s $\textbf{\color{#d91a1a}-10.46\%}$
test_to_cpu_global_sync 12.2369ms 12.0240ms 83.1668 Ops/s 83.9766 Ops/s $\color{#d91a1a}-0.96\%$
test_to_cpu_event_sync 13.3856ms 13.0495ms 76.6313 Ops/s 68.8217 Ops/s $\textbf{\color{#35bf28}+11.35\%}$
test_to_cpu_default 13.5156ms 13.0382ms 76.6977 Ops/s 77.4831 Ops/s $\color{#d91a1a}-1.01\%$
test_consolidate[False-None] 4.5798ms 4.3102ms 232.0057 Ops/s 235.3607 Ops/s $\color{#d91a1a}-1.43\%$
test_consolidate[default-None] 3.6872ms 2.2522ms 444.0159 Ops/s 456.4075 Ops/s $\color{#d91a1a}-2.72\%$
test_consolidate[reduce-overhead-None] 3.6117ms 2.1450ms 466.1949 Ops/s 468.1262 Ops/s $\color{#d91a1a}-0.41\%$
test_consolidate_njt[False-None] 8.9044ms 8.7140ms 114.7576 Ops/s 114.3064 Ops/s $\color{#35bf28}+0.39\%$
test_to[False-False-None] 2.2954ms 2.2181ms 450.8427 Ops/s 456.4907 Ops/s $\color{#d91a1a}-1.24\%$
test_to[True-False-None] 2.2926ms 1.9656ms 508.7588 Ops/s 527.6962 Ops/s $\color{#d91a1a}-3.59\%$
test_to[within-False-None] 6.4539ms 6.3448ms 157.6095 Ops/s 159.5672 Ops/s $\color{#d91a1a}-1.23\%$
test_to[True-default-None] 11.0441ms 10.8848ms 91.8711 Ops/s 90.7943 Ops/s $\color{#35bf28}+1.19\%$
test_to_njt[False-False-None] 8.7744ms 8.6958ms 114.9984 Ops/s 114.9898 Ops/s $+0.01\%$
test_to_njt[True-False-None] 7.1306ms 7.0000ms 142.8567 Ops/s 145.1472 Ops/s $\color{#d91a1a}-1.58\%$
test_to_njt[within-False-None] 15.8213ms 15.6536ms 63.8831 Ops/s 64.6138 Ops/s $\color{#d91a1a}-1.13\%$
test_creation[device0] 0.3975ms 0.1187ms 8.4232 KOps/s 8.2401 KOps/s $\color{#35bf28}+2.22\%$
test_creation_from_tensor 0.4498ms 0.1142ms 8.7577 KOps/s 8.4914 KOps/s $\color{#35bf28}+3.14\%$
test_add_one[memmap_tensor0] 0.4115ms 7.0084μs 142.6861 KOps/s 146.9257 KOps/s $\color{#d91a1a}-2.89\%$
test_contiguous[memmap_tensor0] 20.9010μs 0.6575μs 1.5208 MOps/s 2.2239 MOps/s $\textbf{\color{#d91a1a}-31.61\%}$
test_stack[memmap_tensor0] 99.2820μs 4.4404μs 225.2068 KOps/s 235.7303 KOps/s $\color{#d91a1a}-4.46\%$
test_memmaptd_index 1.2617ms 0.2939ms 3.4028 KOps/s 3.6092 KOps/s $\textbf{\color{#d91a1a}-5.72\%}$
test_memmaptd_index_astensor 0.5553ms 0.3972ms 2.5176 KOps/s 2.6183 KOps/s $\color{#d91a1a}-3.84\%$
test_memmaptd_index_op 0.8100ms 0.6634ms 1.5074 KOps/s 1.5387 KOps/s $\color{#d91a1a}-2.04\%$
test_serialize_model 0.1379s 0.1347s 7.4225 Ops/s 7.4617 Ops/s $\color{#d91a1a}-0.53\%$
test_serialize_model_pickle 1.3680s 1.2141s 0.8237 Ops/s 0.8264 Ops/s $\color{#d91a1a}-0.33\%$
test_serialize_weights 0.1377s 0.1342s 7.4530 Ops/s 7.4020 Ops/s $\color{#35bf28}+0.69\%$
test_serialize_weights_returnearly 85.8874ms 65.5820ms 15.2481 Ops/s 10.7557 Ops/s $\textbf{\color{#35bf28}+41.77\%}$
test_serialize_weights_pickle 1.3686s 1.2136s 0.8240 Ops/s 0.8227 Ops/s $\color{#35bf28}+0.15\%$
test_reshape_pytree 0.2077ms 33.8304μs 29.5592 KOps/s 30.7834 KOps/s $\color{#d91a1a}-3.98\%$
test_reshape_td 71.2720μs 45.6749μs 21.8939 KOps/s 22.0019 KOps/s $\color{#d91a1a}-0.49\%$
test_view_pytree 0.2229ms 33.1542μs 30.1621 KOps/s 30.9716 KOps/s $\color{#d91a1a}-2.61\%$
test_view_td 86.6820μs 55.7796μs 17.9277 KOps/s 18.1816 KOps/s $\color{#d91a1a}-1.40\%$
test_unbind_pytree 0.2394ms 37.9088μs 26.3791 KOps/s 26.7411 KOps/s $\color{#d91a1a}-1.35\%$
test_unbind_td 0.1546ms 51.8628μs 19.2816 KOps/s 19.5777 KOps/s $\color{#d91a1a}-1.51\%$
test_split_pytree 0.2467ms 43.8532μs 22.8034 KOps/s 23.0069 KOps/s $\color{#d91a1a}-0.88\%$
test_split_td 0.2301ms 67.0932μs 14.9046 KOps/s 15.3398 KOps/s $\color{#d91a1a}-2.84\%$
test_add_pytree 0.2432ms 43.7862μs 22.8382 KOps/s 23.2633 KOps/s $\color{#d91a1a}-1.83\%$
test_add_td 96.0520μs 60.6558μs 16.4865 KOps/s 17.7250 KOps/s $\textbf{\color{#d91a1a}-6.99\%}$
test_compile_add_one_nested[tensordict-compile] 0.5687ms 0.2435ms 4.1065 KOps/s 4.1722 KOps/s $\color{#d91a1a}-1.58\%$
test_compile_add_one_nested[tensordict-eager] 0.6202ms 0.2039ms 4.9033 KOps/s 5.0253 KOps/s $\color{#d91a1a}-2.43\%$
test_compile_add_one_nested[pytree-compile] 0.5634ms 0.1400ms 7.1406 KOps/s 7.1555 KOps/s $\color{#d91a1a}-0.21\%$
test_compile_add_one_nested[pytree-eager] 0.6260ms 0.1853ms 5.3962 KOps/s 5.3908 KOps/s $\color{#35bf28}+0.10\%$
test_compile_copy_nested[tensordict-compile] 0.3010ms 20.3520μs 49.1353 KOps/s 65.9871 KOps/s $\textbf{\color{#d91a1a}-25.54\%}$
test_compile_copy_nested[tensordict-eager] 0.5811ms 53.7297μs 18.6117 KOps/s 18.3632 KOps/s $\color{#35bf28}+1.35\%$
test_compile_copy_nested[pytree-compile] 0.1211ms 16.1878μs 61.7749 KOps/s 62.9370 KOps/s $\color{#d91a1a}-1.85\%$
test_compile_copy_nested[pytree-eager] 0.4933ms 69.7199μs 14.3431 KOps/s 14.5740 KOps/s $\color{#d91a1a}-1.58\%$
test_compile_add_one_flat[tensordict-compile] 0.3367ms 0.2532ms 3.9495 KOps/s 3.8281 KOps/s $\color{#35bf28}+3.17\%$
test_compile_add_one_flat[tensordict-eager] 0.7179ms 0.2830ms 3.5341 KOps/s 3.5262 KOps/s $\color{#35bf28}+0.23\%$
test_compile_add_one_flat[tensorclass-compile] 0.6361ms 0.1911ms 5.2326 KOps/s 5.1877 KOps/s $\color{#35bf28}+0.87\%$
test_compile_add_one_flat[tensorclass-eager] 0.5071ms 76.9734μs 12.9915 KOps/s 13.0035 KOps/s $\color{#d91a1a}-0.09\%$
test_compile_add_one_flat[pytree-compile] 0.3317ms 0.1934ms 5.1705 KOps/s 4.9227 KOps/s $\textbf{\color{#35bf28}+5.03\%}$
test_compile_add_one_flat[pytree-eager] 0.9730ms 0.5401ms 1.8516 KOps/s 1.7791 KOps/s $\color{#35bf28}+4.08\%$
test_compile_add_self_flat[tensordict-eager] 0.7725ms 0.3321ms 3.0116 KOps/s 2.9415 KOps/s $\color{#35bf28}+2.38\%$
test_compile_add_self_flat[tensordict-compile] 0.3073ms 0.2549ms 3.9228 KOps/s 3.6661 KOps/s $\textbf{\color{#35bf28}+7.00\%}$
test_compile_add_self_flat[tensorclass-eager] 0.5377ms 93.2384μs 10.7252 KOps/s 10.6415 KOps/s $\color{#35bf28}+0.79\%$
test_compile_add_self_flat[tensorclass-compile] 0.3838ms 0.1908ms 5.2414 KOps/s 4.9514 KOps/s $\textbf{\color{#35bf28}+5.86\%}$
test_compile_add_self_flat[pytree-eager] 0.8696ms 0.4415ms 2.2652 KOps/s 2.3171 KOps/s $\color{#d91a1a}-2.24\%$
test_compile_add_self_flat[pytree-compile] 0.6331ms 0.1963ms 5.0946 KOps/s 4.9869 KOps/s $\color{#35bf28}+2.16\%$
test_compile_copy_flat[tensordict-compile] 74.9820μs 20.0635μs 49.8418 KOps/s 49.1417 KOps/s $\color{#35bf28}+1.42\%$
test_compile_copy_flat[tensordict-eager] 0.4803ms 41.6101μs 24.0326 KOps/s 23.6656 KOps/s $\color{#35bf28}+1.55\%$
test_compile_copy_flat[pytree-compile] 0.4558ms 21.7729μs 45.9287 KOps/s 45.2379 KOps/s $\color{#35bf28}+1.53\%$
test_compile_copy_flat[pytree-eager] 0.4834ms 52.6289μs 19.0010 KOps/s 18.8772 KOps/s $\color{#35bf28}+0.66\%$
test_compile_assign_and_add[tensordict-compile] 2.3187ms 0.2423ms 4.1266 KOps/s 3.8650 KOps/s $\textbf{\color{#35bf28}+6.77\%}$
test_compile_assign_and_add[tensordict-eager] 3.7852ms 3.3366ms 299.7050 Ops/s 298.9851 Ops/s $\color{#35bf28}+0.24\%$
test_compile_assign_and_add[pytree-compile] 2.1232ms 0.1824ms 5.4820 KOps/s 5.4025 KOps/s $\color{#35bf28}+1.47\%$
test_compile_assign_and_add[pytree-eager] 3.3366ms 2.8796ms 347.2742 Ops/s 354.8617 Ops/s $\color{#d91a1a}-2.14\%$
test_compile_indexing[tensor-tensordict-compile] 0.5715ms 0.1365ms 7.3250 KOps/s 6.9071 KOps/s $\textbf{\color{#35bf28}+6.05\%}$
test_compile_indexing[tensor-tensordict-eager] 0.2204s 95.1938μs 10.5049 KOps/s 12.4864 KOps/s $\textbf{\color{#d91a1a}-15.87\%}$
test_compile_indexing[tensor-tensorclass-compile] 0.2631ms 0.1196ms 8.3596 KOps/s 8.3151 KOps/s $\color{#35bf28}+0.53\%$
test_compile_indexing[tensor-tensorclass-eager] 0.4754ms 46.0467μs 21.7171 KOps/s 20.3102 KOps/s $\textbf{\color{#35bf28}+6.93\%}$
test_compile_indexing[tensor-pytree-compile] 0.5506ms 0.1206ms 8.2937 KOps/s 8.2948 KOps/s $\color{#d91a1a}-0.01\%$
test_compile_indexing[tensor-pytree-eager] 0.4837ms 45.9250μs 21.7746 KOps/s 20.9302 KOps/s $\color{#35bf28}+4.03\%$
test_compile_indexing[slice-tensordict-compile] 0.1753ms 86.8894μs 11.5089 KOps/s 11.6732 KOps/s $\color{#d91a1a}-1.41\%$
test_compile_indexing[slice-tensordict-eager] 0.2201ms 29.1839μs 34.2655 KOps/s 35.0977 KOps/s $\color{#d91a1a}-2.37\%$
test_compile_indexing[slice-tensorclass-compile] 0.2206ms 70.9810μs 14.0883 KOps/s 14.1462 KOps/s $\color{#d91a1a}-0.41\%$
test_compile_indexing[slice-tensorclass-eager] 0.2462ms 22.9574μs 43.5590 KOps/s 43.8460 KOps/s $\color{#d91a1a}-0.65\%$
test_compile_indexing[slice-pytree-compile] 0.1014ms 72.0615μs 13.8770 KOps/s 13.8584 KOps/s $\color{#35bf28}+0.13\%$
test_compile_indexing[slice-pytree-eager] 0.2745ms 22.6537μs 44.1430 KOps/s 44.2534 KOps/s $\color{#d91a1a}-0.25\%$
test_compile_indexing[int-tensordict-compile] 0.1230ms 86.2723μs 11.5912 KOps/s 11.6834 KOps/s $\color{#d91a1a}-0.79\%$
test_compile_indexing[int-tensordict-eager] 0.2911ms 28.5106μs 35.0747 KOps/s 34.0975 KOps/s $\color{#35bf28}+2.87\%$
test_compile_indexing[int-tensorclass-compile] 0.1093ms 73.5216μs 13.6014 KOps/s 13.9759 KOps/s $\color{#d91a1a}-2.68\%$
test_compile_indexing[int-tensorclass-eager] 0.2473ms 22.9382μs 43.5953 KOps/s 44.5585 KOps/s $\color{#d91a1a}-2.16\%$
test_compile_indexing[int-pytree-compile] 0.1157ms 72.3203μs 13.8274 KOps/s 13.3783 KOps/s $\color{#35bf28}+3.36\%$
test_compile_indexing[int-pytree-eager] 0.2778ms 22.7712μs 43.9151 KOps/s 44.3267 KOps/s $\color{#d91a1a}-0.93\%$
test_compile_replace[single-eager] 80.4920μs 48.6336μs 20.5619 KOps/s 20.0121 KOps/s $\color{#35bf28}+2.75\%$
test_compile_replace[single-compile] 0.2934ms 0.1307ms 7.6500 KOps/s 7.1201 KOps/s $\textbf{\color{#35bf28}+7.44\%}$
test_compile_replace[multi-eager] 0.6801ms 0.5716ms 1.7494 KOps/s 1.6922 KOps/s $\color{#35bf28}+3.38\%$
test_compile_replace[multi-compile] 0.3383ms 0.1387ms 7.2123 KOps/s 7.1541 KOps/s $\color{#35bf28}+0.81\%$
test_compile_tc_getattr_20[eager] 0.2085ms 0.1738ms 5.7523 KOps/s 6.0776 KOps/s $\textbf{\color{#d91a1a}-5.35\%}$
test_compile_tc_getattr_20[compile] 0.3187ms 0.1498ms 6.6751 KOps/s 6.7388 KOps/s $\color{#d91a1a}-0.95\%$
test_compile_clone_shallow[20-eager] 48.6410μs 19.4737μs 51.3514 KOps/s 51.6781 KOps/s $\color{#d91a1a}-0.63\%$
test_compile_clone_shallow[20-compile] 76.7720μs 17.2683μs 57.9095 KOps/s 57.8729 KOps/s $\color{#35bf28}+0.06\%$
test_compile_clone_shallow[40-eager] 65.5820μs 34.0523μs 29.3666 KOps/s 29.5451 KOps/s $\color{#d91a1a}-0.60\%$
test_compile_clone_shallow[40-compile] 91.3930μs 19.0505μs 52.4921 KOps/s 53.6587 KOps/s $\color{#d91a1a}-2.17\%$
test_compile_clone_shallow[80-eager] 92.1820μs 63.2933μs 15.7995 KOps/s 15.8097 KOps/s $\color{#d91a1a}-0.06\%$
test_compile_clone_shallow[80-compile] 86.7520μs 22.2082μs 45.0284 KOps/s 44.2408 KOps/s $\color{#35bf28}+1.78\%$
test_compile_update_inplace[eager] 0.2358ms 61.3323μs 16.3046 KOps/s 16.5779 KOps/s $\color{#d91a1a}-1.65\%$
test_compile_update_inplace[compile] 0.2163ms 0.1487ms 6.7234 KOps/s 6.6030 KOps/s $\color{#35bf28}+1.82\%$
test_mod_add[eager] 0.2915ms 0.2287ms 4.3722 KOps/s 4.3736 KOps/s $\color{#d91a1a}-0.03\%$
test_mod_add[compile] 0.2180ms 0.1329ms 7.5237 KOps/s 7.3005 KOps/s $\color{#35bf28}+3.06\%$
test_mod_add[compile-overhead] 0.4169ms 0.1795ms 5.5720 KOps/s 5.5271 KOps/s $\color{#35bf28}+0.81\%$
test_mod_wrap[eager] 0.5624ms 0.4704ms 2.1259 KOps/s 2.1214 KOps/s $\color{#35bf28}+0.21\%$
test_mod_wrap[compile] 0.5248ms 0.4043ms 2.4732 KOps/s 2.4666 KOps/s $\color{#35bf28}+0.27\%$
test_mod_wrap[compile-overhead] 8.4186ms 4.5453ms 220.0093 Ops/s 216.3506 Ops/s $\color{#35bf28}+1.69\%$
test_mod_wrap_and_backward[eager] 2.0574ms 1.7054ms 586.3665 Ops/s 554.6397 Ops/s $\textbf{\color{#35bf28}+5.72\%}$
test_mod_wrap_and_backward[compile] 1.7123ms 1.5546ms 643.2416 Ops/s 594.9936 Ops/s $\textbf{\color{#35bf28}+8.11\%}$
test_mod_wrap_and_backward[compile-overhead] 1.4651ms 0.9497ms 1.0530 KOps/s 926.3807 Ops/s $\textbf{\color{#35bf28}+13.67\%}$
test_seq_add[eager] 0.6055ms 0.5132ms 1.9484 KOps/s 1.9538 KOps/s $\color{#d91a1a}-0.27\%$
test_seq_add[compile] 0.2318ms 0.1425ms 7.0170 KOps/s 6.8170 KOps/s $\color{#35bf28}+2.93\%$
test_seq_add[compile-overhead] 0.3127ms 0.1836ms 5.4479 KOps/s 5.2662 KOps/s $\color{#35bf28}+3.45\%$
test_seq_wrap[eager] 1.5230ms 1.4211ms 703.6634 Ops/s 699.4685 Ops/s $\color{#35bf28}+0.60\%$
test_seq_wrap[compile] 0.4859ms 0.4141ms 2.4152 KOps/s 2.3650 KOps/s $\color{#35bf28}+2.12\%$
test_seq_wrap[compile-overhead] 0.4414ms 0.3071ms 3.2561 KOps/s 3.2309 KOps/s $\color{#35bf28}+0.78\%$
test_func_call_runtime[False-eager] 0.9313ms 0.8489ms 1.1780 KOps/s 1.2536 KOps/s $\textbf{\color{#d91a1a}-6.03\%}$
test_func_call_runtime[False-compile] 1.2271ms 0.9897ms 1.0104 KOps/s 994.6268 Ops/s $\color{#35bf28}+1.59\%$
test_func_call_runtime[False-compile-overhead] 0.5976ms 0.5179ms 1.9310 KOps/s 1.8981 KOps/s $\color{#35bf28}+1.73\%$
test_func_call_runtime[True-eager] 1.1745ms 1.0711ms 933.6421 Ops/s 936.0890 Ops/s $\color{#d91a1a}-0.26\%$
test_func_call_runtime[True-compile] 1.0961ms 1.0070ms 993.0512 Ops/s 983.8260 Ops/s $\color{#35bf28}+0.94\%$
test_func_call_runtime[True-compile-overhead] 0.6404ms 0.5343ms 1.8718 KOps/s 1.8650 KOps/s $\color{#35bf28}+0.36\%$
test_func_call_cm_runtime[False-eager] 1.1937ms 0.8445ms 1.1842 KOps/s 1.2406 KOps/s $\color{#d91a1a}-4.55\%$
test_func_call_cm_runtime[False-compile] 1.5160ms 1.0242ms 976.3855 Ops/s 1.0106 KOps/s $\color{#d91a1a}-3.38\%$
test_func_call_cm_runtime[False-compile-overhead] 0.7097ms 0.4964ms 2.0146 KOps/s 1.9618 KOps/s $\color{#35bf28}+2.69\%$
test_func_call_cm_runtime[True-eager] 1.3372ms 1.2141ms 823.6558 Ops/s 816.2485 Ops/s $\color{#35bf28}+0.91\%$
test_func_call_cm_runtime[True-compile] 1.1484ms 1.0282ms 972.6054 Ops/s 961.2466 Ops/s $\color{#35bf28}+1.18\%$
test_func_call_cm_runtime[True-compile-overhead] 0.6260ms 0.5539ms 1.8052 KOps/s 1.7804 KOps/s $\color{#35bf28}+1.39\%$
test_vmap_func_call_cm_runtime[eager] 2.9238ms 2.4325ms 411.0943 Ops/s 410.3262 Ops/s $\color{#35bf28}+0.19\%$
test_vmap_func_call_cm_runtime[compile] 3.1322ms 2.6144ms 382.4964 Ops/s 381.0886 Ops/s $\color{#35bf28}+0.37\%$
test_vmap_func_call_cm_runtime[compile-overhead] 3.0692ms 2.6037ms 384.0733 Ops/s 380.0681 Ops/s $\color{#35bf28}+1.05\%$
test_distributed 0.8382ms 0.1525ms 6.5580 KOps/s 6.4491 KOps/s $\color{#35bf28}+1.69\%$
test_tdmodule 0.3907ms 0.1921ms 5.2057 KOps/s 5.2043 KOps/s $\color{#35bf28}+0.03\%$
test_tdmodule_dispatch 0.4268ms 0.3749ms 2.6676 KOps/s 2.6684 KOps/s $\color{#d91a1a}-0.03\%$
test_tdseq 45.9910μs 26.8243μs 37.2796 KOps/s 37.3790 KOps/s $\color{#d91a1a}-0.27\%$
test_tdseq_dispatch 0.2600ms 0.2169ms 4.6104 KOps/s 4.6144 KOps/s $\color{#d91a1a}-0.09\%$
test_instantiation_functorch 2.1961ms 2.0852ms 479.5767 Ops/s 485.0473 Ops/s $\color{#d91a1a}-1.13\%$
test_exec_functorch 0.2538ms 0.1843ms 5.4270 KOps/s 5.4558 KOps/s $\color{#d91a1a}-0.53\%$
test_exec_functional_call 0.2188ms 0.1663ms 6.0136 KOps/s 6.1411 KOps/s $\color{#d91a1a}-2.08\%$
test_exec_td_decorator 0.4992ms 0.2545ms 3.9297 KOps/s 3.9225 KOps/s $\color{#35bf28}+0.18\%$
test_vmap_mlp_speed_decorator[True-True] 1.2407ms 1.0443ms 957.5339 Ops/s 949.6735 Ops/s $\color{#35bf28}+0.83\%$
test_vmap_mlp_speed_decorator[True-False] 1.2322ms 1.0374ms 963.9254 Ops/s 950.3738 Ops/s $\color{#35bf28}+1.43\%$
test_vmap_mlp_speed_decorator[False-True] 0.9610ms 0.7401ms 1.3512 KOps/s 1.3101 KOps/s $\color{#35bf28}+3.14\%$
test_vmap_mlp_speed_decorator[False-False] 0.9585ms 0.7383ms 1.3545 KOps/s 1.3115 KOps/s $\color{#35bf28}+3.28\%$
test_vmap_transformer_speed_decorator[True-True] 21.6100ms 21.2575ms 47.0423 Ops/s 46.6624 Ops/s $\color{#35bf28}+0.81\%$
test_vmap_transformer_speed_decorator[True-False] 21.9422ms 21.2510ms 47.0566 Ops/s 46.9642 Ops/s $\color{#35bf28}+0.20\%$
test_vmap_transformer_speed_decorator[False-True] 21.6382ms 20.8827ms 47.8865 Ops/s 47.6570 Ops/s $\color{#35bf28}+0.48\%$
test_vmap_transformer_speed_decorator[False-False] 21.3722ms 21.0352ms 47.5393 Ops/s 46.5556 Ops/s $\color{#35bf28}+2.11\%$
test_to_module_speed[True] 2.3217ms 1.6680ms 599.5099 Ops/s 603.7415 Ops/s $\color{#d91a1a}-0.70\%$
test_to_module_speed[False] 2.1919ms 1.6439ms 608.2968 Ops/s 610.7162 Ops/s $\color{#d91a1a}-0.40\%$
test_to_module_plain_tensor_speed[None] 2.4315ms 1.7491ms 571.7296 Ops/s 565.1409 Ops/s $\color{#35bf28}+1.17\%$
test_to_module_plain_tensor_speed[False] 2.2324ms 1.5893ms 629.2218 Ops/s 625.0654 Ops/s $\color{#35bf28}+0.66\%$
test_to_module_plain_tensor_speed[True] 3.5392ms 3.4125ms 293.0427 Ops/s 286.3566 Ops/s $\color{#35bf28}+2.33\%$
test_tc_init 80.2620μs 43.5703μs 22.9514 KOps/s 22.2393 KOps/s $\color{#35bf28}+3.20\%$
test_tc_init_tensor_only 48.9410μs 9.2966μs 107.5664 KOps/s 105.4155 KOps/s $\color{#35bf28}+2.04\%$
test_tc_init_nested 0.1279ms 85.7315μs 11.6643 KOps/s 11.6732 KOps/s $\color{#d91a1a}-0.08\%$
test_tc_init_many_fields 48.1010μs 14.7610μs 67.7461 KOps/s 66.9648 KOps/s $\color{#35bf28}+1.17\%$
test_tc_first_layer_tensor 50.4720μs 1.7710μs 564.6560 KOps/s 545.5887 KOps/s $\color{#35bf28}+3.49\%$
test_tc_first_layer_tensor_only 2.9771μs 0.3883μs 2.5751 MOps/s 2.5398 MOps/s $\color{#35bf28}+1.39\%$
test_tc_first_layer_tensor_set 25.2910μs 3.8908μs 257.0171 KOps/s 252.3604 KOps/s $\color{#35bf28}+1.85\%$
test_tc_first_layer_tensor_only_set 35.0910μs 3.2605μs 306.7059 KOps/s 303.1341 KOps/s $\color{#35bf28}+1.18\%$
test_tc_first_layer_nontensor 48.7810μs 6.1683μs 162.1198 KOps/s 154.9751 KOps/s $\color{#35bf28}+4.61\%$
test_tc_second_layer_tensor 22.2410μs 4.4728μs 223.5730 KOps/s 226.5197 KOps/s $\color{#d91a1a}-1.30\%$
test_tc_second_layer_nontensor 41.0810μs 8.7759μs 113.9483 KOps/s 111.6715 KOps/s $\color{#35bf28}+2.04\%$
test_unbind 0.2741s 13.7215ms 72.8785 Ops/s 64.8198 Ops/s $\textbf{\color{#35bf28}+12.43\%}$
test_full_like 4.4878ms 4.3795ms 228.3381 Ops/s 226.2470 Ops/s $\color{#35bf28}+0.92\%$
test_zeros_like 4.4919ms 4.3726ms 228.6944 Ops/s 227.2528 Ops/s $\color{#35bf28}+0.63\%$
test_ones_like 4.7051ms 4.3871ms 227.9433 Ops/s 227.8069 Ops/s $\color{#35bf28}+0.06\%$
test_clone 7.1568ms 6.6119ms 151.2427 Ops/s 153.1915 Ops/s $\color{#d91a1a}-1.27\%$
test_squeeze 69.4010μs 14.4008μs 69.4405 KOps/s 67.9444 KOps/s $\color{#35bf28}+2.20\%$
test_unsqueeze 0.1722ms 0.1164ms 8.5900 KOps/s 8.9857 KOps/s $\color{#d91a1a}-4.40\%$
test_split 0.3908ms 0.1862ms 5.3708 KOps/s 5.4233 KOps/s $\color{#d91a1a}-0.97\%$
test_permute 0.2820ms 0.2160ms 4.6302 KOps/s 4.6416 KOps/s $\color{#d91a1a}-0.24\%$
test_stack 18.4555ms 18.2234ms 54.8744 Ops/s 54.4331 Ops/s $\color{#35bf28}+0.81\%$
test_cat 27.3353ms 26.2353ms 38.1166 Ops/s 54.5241 Ops/s $\textbf{\color{#d91a1a}-30.09\%}$
test_sequential_tensordict 0.7513ms 0.5726ms 1.7466 KOps/s 1.7084 KOps/s $\color{#35bf28}+2.23\%$
test_sequential_graph_module 0.1960ms 0.1235ms 8.0976 KOps/s 7.8797 KOps/s $\color{#35bf28}+2.77\%$
test_nested_tensordict 1.0948ms 0.8194ms 1.2203 KOps/s 1.2116 KOps/s $\color{#35bf28}+0.72\%$
test_nested_graph_module 0.5346ms 0.1337ms 7.4768 KOps/s 7.4954 KOps/s $\color{#d91a1a}-0.25\%$

@github-actions

github-actions Bot commented Jun 14, 2026

Copy link
Copy Markdown
Contributor

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

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

Expand to view detailed results
Name Max Mean Ops Ops on Repo HEAD Change
test_collector_preallocated_write[stack_out-cpu-32-2] 0.2101ms 0.1649ms 6.0656 KOps/s 5.9037 KOps/s $\color{#35bf28}+2.74\%$
test_collector_preallocated_write[stack_out-cpu-32-8] 0.3453ms 0.2943ms 3.3977 KOps/s 3.3720 KOps/s $\color{#35bf28}+0.76\%$
test_collector_preallocated_write[stack_out-cpu-32-32] 0.8177ms 0.7745ms 1.2912 KOps/s 1.2786 KOps/s $\color{#35bf28}+0.98\%$
test_collector_preallocated_write[stack_out-cpu-4096-2] 0.4575ms 0.3449ms 2.8997 KOps/s 2.9799 KOps/s $\color{#d91a1a}-2.69\%$
test_collector_preallocated_write[stack_out-cpu-4096-8] 1.4357ms 1.1091ms 901.6379 Ops/s 921.4535 Ops/s $\color{#d91a1a}-2.15\%$
test_collector_preallocated_write[stack_out-cpu-4096-32] 7.8688ms 7.4211ms 134.7516 Ops/s 133.4950 Ops/s $\color{#35bf28}+0.94\%$
test_collector_preallocated_write[stack_out-cuda-32-2] 0.2903ms 0.2460ms 4.0651 KOps/s 4.0571 KOps/s $\color{#35bf28}+0.20\%$
test_collector_preallocated_write[stack_out-cuda-32-8] 0.4724ms 0.3719ms 2.6888 KOps/s 2.7058 KOps/s $\color{#d91a1a}-0.63\%$
test_collector_preallocated_write[stack_out-cuda-32-32] 0.9026ms 0.8217ms 1.2170 KOps/s 1.2164 KOps/s $\color{#35bf28}+0.05\%$
test_collector_preallocated_write[stack_out-cuda-4096-2] 0.3272ms 0.2526ms 3.9586 KOps/s 4.0508 KOps/s $\color{#d91a1a}-2.28\%$
test_collector_preallocated_write[stack_out-cuda-4096-8] 0.4513ms 0.3730ms 2.6812 KOps/s 2.6934 KOps/s $\color{#d91a1a}-0.45\%$
test_collector_preallocated_write[stack_out-cuda-4096-32] 1.0284ms 0.8837ms 1.1316 KOps/s 1.1255 KOps/s $\color{#35bf28}+0.54\%$
test_collector_preallocated_write[set_at_loop-cpu-32-2] 0.2843ms 0.2136ms 4.6827 KOps/s 4.6488 KOps/s $\color{#35bf28}+0.73\%$
test_collector_preallocated_write[set_at_loop-cpu-32-8] 0.9151ms 0.8213ms 1.2176 KOps/s 1.1994 KOps/s $\color{#35bf28}+1.52\%$
test_collector_preallocated_write[set_at_loop-cpu-32-32] 3.5251ms 3.3254ms 300.7178 Ops/s 301.6993 Ops/s $\color{#d91a1a}-0.33\%$
test_collector_preallocated_write[set_at_loop-cpu-4096-2] 0.4440ms 0.3680ms 2.7175 KOps/s 2.6727 KOps/s $\color{#35bf28}+1.67\%$
test_collector_preallocated_write[set_at_loop-cpu-4096-8] 2.2829ms 1.8582ms 538.1456 Ops/s 601.6935 Ops/s $\textbf{\color{#d91a1a}-10.56\%}$
test_collector_preallocated_write[set_at_loop-cpu-4096-32] 10.5793ms 10.3272ms 96.8319 Ops/s 95.4043 Ops/s $\color{#35bf28}+1.50\%$
test_collector_preallocated_write[set_at_loop-cuda-32-2] 0.4776ms 0.3863ms 2.5890 KOps/s 2.5928 KOps/s $\color{#d91a1a}-0.15\%$
test_collector_preallocated_write[set_at_loop-cuda-32-8] 1.7610ms 1.4810ms 675.2342 Ops/s 680.9649 Ops/s $\color{#d91a1a}-0.84\%$
test_collector_preallocated_write[set_at_loop-cuda-32-32] 5.9778ms 5.7058ms 175.2588 Ops/s 168.3350 Ops/s $\color{#35bf28}+4.11\%$
test_collector_preallocated_write[set_at_loop-cuda-4096-2] 0.4898ms 0.3992ms 2.5052 KOps/s 2.5078 KOps/s $\color{#d91a1a}-0.10\%$
test_collector_preallocated_write[set_at_loop-cuda-4096-8] 1.6136ms 1.4933ms 669.6766 Ops/s 673.1900 Ops/s $\color{#d91a1a}-0.52\%$
test_collector_preallocated_write[set_at_loop-cuda-4096-32] 6.0458ms 5.7937ms 172.6016 Ops/s 176.7606 Ops/s $\color{#d91a1a}-2.35\%$
test_collector_preallocated_write[copy_at-cpu-32-2] 0.2234ms 0.1726ms 5.7931 KOps/s 5.7172 KOps/s $\color{#35bf28}+1.33\%$
test_collector_preallocated_write[copy_at-cpu-32-8] 0.7499ms 0.6770ms 1.4771 KOps/s 1.4751 KOps/s $\color{#35bf28}+0.13\%$
test_collector_preallocated_write[copy_at-cpu-32-32] 2.7610ms 2.6873ms 372.1202 Ops/s 372.7704 Ops/s $\color{#d91a1a}-0.17\%$
test_collector_preallocated_write[copy_at-cpu-4096-2] 1.9551ms 0.3204ms 3.1212 KOps/s 3.0763 KOps/s $\color{#35bf28}+1.46\%$
test_collector_preallocated_write[copy_at-cpu-4096-8] 1.9266ms 1.5215ms 657.2449 Ops/s 668.6886 Ops/s $\color{#d91a1a}-1.71\%$
test_collector_preallocated_write[copy_at-cpu-4096-32] 10.0061ms 9.7474ms 102.5911 Ops/s 102.4820 Ops/s $\color{#35bf28}+0.11\%$
test_collector_preallocated_write[copy_at-cuda-32-2] 0.3628ms 0.3231ms 3.0947 KOps/s 3.0923 KOps/s $\color{#35bf28}+0.08\%$
test_collector_preallocated_write[copy_at-cuda-32-8] 1.5267ms 1.2072ms 828.3514 Ops/s 827.3358 Ops/s $\color{#35bf28}+0.12\%$
test_collector_preallocated_write[copy_at-cuda-32-32] 4.8358ms 4.7186ms 211.9275 Ops/s 211.2908 Ops/s $\color{#35bf28}+0.30\%$
test_collector_preallocated_write[copy_at-cuda-4096-2] 0.3898ms 0.3245ms 3.0814 KOps/s 3.0692 KOps/s $\color{#35bf28}+0.40\%$
test_collector_preallocated_write[copy_at-cuda-4096-8] 1.2871ms 1.2124ms 824.7801 Ops/s 823.6429 Ops/s $\color{#35bf28}+0.14\%$
test_collector_preallocated_write[copy_at-cuda-4096-32] 4.8318ms 4.7500ms 210.5252 Ops/s 208.8753 Ops/s $\color{#35bf28}+0.79\%$
test_collector_preallocated_write[manual_leaf_copy-cpu-32-2] 0.1585ms 0.1190ms 8.4030 KOps/s 8.3527 KOps/s $\color{#35bf28}+0.60\%$
test_collector_preallocated_write[manual_leaf_copy-cpu-32-8] 0.5171ms 0.4686ms 2.1338 KOps/s 2.1424 KOps/s $\color{#d91a1a}-0.40\%$
test_collector_preallocated_write[manual_leaf_copy-cpu-32-32] 1.9511ms 1.8570ms 538.5158 Ops/s 540.0538 Ops/s $\color{#d91a1a}-0.28\%$
test_collector_preallocated_write[manual_leaf_copy-cpu-4096-2] 0.2988ms 0.2518ms 3.9711 KOps/s 3.7867 KOps/s $\color{#35bf28}+4.87\%$
test_collector_preallocated_write[manual_leaf_copy-cpu-4096-8] 1.4679ms 1.2474ms 801.6928 Ops/s 819.1025 Ops/s $\color{#d91a1a}-2.13\%$
test_collector_preallocated_write[manual_leaf_copy-cpu-4096-32] 9.2080ms 8.7844ms 113.8388 Ops/s 115.0272 Ops/s $\color{#d91a1a}-1.03\%$
test_collector_preallocated_write[manual_leaf_copy-cuda-32-2] 0.3292ms 0.2709ms 3.6920 KOps/s 3.5729 KOps/s $\color{#35bf28}+3.33\%$
test_collector_preallocated_write[manual_leaf_copy-cuda-32-8] 1.1240ms 1.0000ms 1.0000 KOps/s 972.5482 Ops/s $\color{#35bf28}+2.83\%$
test_collector_preallocated_write[manual_leaf_copy-cuda-32-32] 4.0927ms 3.9034ms 256.1889 Ops/s 253.9847 Ops/s $\color{#35bf28}+0.87\%$
test_collector_preallocated_write[manual_leaf_copy-cuda-4096-2] 0.3278ms 0.2687ms 3.7210 KOps/s 3.6329 KOps/s $\color{#35bf28}+2.43\%$
test_collector_preallocated_write[manual_leaf_copy-cuda-4096-8] 1.3051ms 0.9995ms 1.0005 KOps/s 979.7078 Ops/s $\color{#35bf28}+2.13\%$
test_collector_preallocated_write[manual_leaf_copy-cuda-4096-32] 4.1155ms 3.9113ms 255.6673 Ops/s 252.0038 Ops/s $\color{#35bf28}+1.45\%$
test_wide_nested_preallocated_write[stack_out-cpu-128-128] 16.4405ms 16.2542ms 61.5225 Ops/s 61.4278 Ops/s $\color{#35bf28}+0.15\%$
test_wide_nested_preallocated_write[stack_out-cpu-128-256] 33.0832ms 32.9079ms 30.3878 Ops/s 30.5056 Ops/s $\color{#d91a1a}-0.39\%$
test_wide_nested_preallocated_write[stack_out-cpu-4096-128] 89.6247ms 87.4636ms 11.4333 Ops/s 11.6075 Ops/s $\color{#d91a1a}-1.50\%$
test_wide_nested_preallocated_write[stack_out-cpu-4096-256] 0.2034s 0.2019s 4.9540 Ops/s 4.9922 Ops/s $\color{#d91a1a}-0.76\%$
test_wide_nested_preallocated_write[stack_out-cuda-128-128] 13.9445ms 13.8755ms 72.0695 Ops/s 71.9199 Ops/s $\color{#35bf28}+0.21\%$
test_wide_nested_preallocated_write[stack_out-cuda-128-256] 27.2147ms 27.0504ms 36.9681 Ops/s 36.9669 Ops/s $+0.00\%$
test_wide_nested_preallocated_write[stack_out-cuda-4096-128] 14.0694ms 13.9648ms 71.6088 Ops/s 71.3354 Ops/s $\color{#35bf28}+0.38\%$
test_wide_nested_preallocated_write[stack_out-cuda-4096-256] 27.6150ms 27.5059ms 36.3558 Ops/s 36.5123 Ops/s $\color{#d91a1a}-0.43\%$
test_wide_nested_preallocated_write[set_at_loop-cpu-128-128] 52.4975ms 52.2078ms 19.1542 Ops/s 19.4772 Ops/s $\color{#d91a1a}-1.66\%$
test_wide_nested_preallocated_write[set_at_loop-cpu-128-256] 0.1054s 0.1052s 9.5075 Ops/s 9.5748 Ops/s $\color{#d91a1a}-0.70\%$
test_wide_nested_preallocated_write[set_at_loop-cpu-4096-128] 0.1492s 0.1474s 6.7837 Ops/s 6.8655 Ops/s $\color{#d91a1a}-1.19\%$
test_wide_nested_preallocated_write[set_at_loop-cpu-4096-256] 0.3241s 0.3218s 3.1075 Ops/s 3.0292 Ops/s $\color{#35bf28}+2.59\%$
test_wide_nested_preallocated_write[set_at_loop-cuda-128-128] 74.7750ms 74.1698ms 13.4826 Ops/s 13.7077 Ops/s $\color{#d91a1a}-1.64\%$
test_wide_nested_preallocated_write[set_at_loop-cuda-128-256] 0.1494s 0.1491s 6.7060 Ops/s 6.5184 Ops/s $\color{#35bf28}+2.88\%$
test_wide_nested_preallocated_write[set_at_loop-cuda-4096-128] 75.1708ms 74.5853ms 13.4075 Ops/s 12.7836 Ops/s $\color{#35bf28}+4.88\%$
test_wide_nested_preallocated_write[set_at_loop-cuda-4096-256] 0.1502s 0.1499s 6.6726 Ops/s 6.3189 Ops/s $\textbf{\color{#35bf28}+5.60\%}$
test_wide_nested_preallocated_write[copy_at-cpu-128-128] 30.6475ms 30.4842ms 32.8038 Ops/s 32.8433 Ops/s $\color{#d91a1a}-0.12\%$
test_wide_nested_preallocated_write[copy_at-cpu-128-256] 61.8491ms 61.7000ms 16.2075 Ops/s 16.2305 Ops/s $\color{#d91a1a}-0.14\%$
test_wide_nested_preallocated_write[copy_at-cpu-4096-128] 0.1236s 0.1230s 8.1316 Ops/s 8.2140 Ops/s $\color{#d91a1a}-1.00\%$
test_wide_nested_preallocated_write[copy_at-cpu-4096-256] 0.2737s 0.2724s 3.6717 Ops/s 3.5722 Ops/s $\color{#35bf28}+2.79\%$
test_wide_nested_preallocated_write[copy_at-cuda-128-128] 43.3170ms 43.0576ms 23.2247 Ops/s 23.2093 Ops/s $\color{#35bf28}+0.07\%$
test_wide_nested_preallocated_write[copy_at-cuda-128-256] 86.4868ms 86.2763ms 11.5907 Ops/s 11.6032 Ops/s $\color{#d91a1a}-0.11\%$
test_wide_nested_preallocated_write[copy_at-cuda-4096-128] 43.5825ms 43.4998ms 22.9886 Ops/s 23.0671 Ops/s $\color{#d91a1a}-0.34\%$
test_wide_nested_preallocated_write[copy_at-cuda-4096-256] 86.9914ms 86.8141ms 11.5189 Ops/s 11.5128 Ops/s $\color{#35bf28}+0.05\%$
test_wide_nested_preallocated_write[manual_leaf_copy-cpu-128-128] 20.4604ms 20.2454ms 49.3939 Ops/s 49.3883 Ops/s $\color{#35bf28}+0.01\%$
test_wide_nested_preallocated_write[manual_leaf_copy-cpu-128-256] 41.5180ms 41.1739ms 24.2872 Ops/s 24.2407 Ops/s $\color{#35bf28}+0.19\%$
test_wide_nested_preallocated_write[manual_leaf_copy-cpu-4096-128] 0.1150s 0.1094s 9.1417 Ops/s 9.2181 Ops/s $\color{#d91a1a}-0.83\%$
test_wide_nested_preallocated_write[manual_leaf_copy-cpu-4096-256] 0.2491s 0.2464s 4.0581 Ops/s 3.9998 Ops/s $\color{#35bf28}+1.46\%$
test_wide_nested_preallocated_write[manual_leaf_copy-cuda-128-128] 35.8203ms 35.4300ms 28.2247 Ops/s 27.9255 Ops/s $\color{#35bf28}+1.07\%$
test_wide_nested_preallocated_write[manual_leaf_copy-cuda-128-256] 71.0765ms 70.6757ms 14.1491 Ops/s 14.0102 Ops/s $\color{#35bf28}+0.99\%$
test_wide_nested_preallocated_write[manual_leaf_copy-cuda-4096-128] 35.7573ms 35.3157ms 28.3160 Ops/s 28.0373 Ops/s $\color{#35bf28}+0.99\%$
test_wide_nested_preallocated_write[manual_leaf_copy-cuda-4096-256] 71.3791ms 70.7906ms 14.1262 Ops/s 13.8778 Ops/s $\color{#35bf28}+1.79\%$
test_plain_set_nested 46.0910μs 15.5179μs 64.4417 KOps/s 66.0746 KOps/s $\color{#d91a1a}-2.47\%$
test_plain_set_stack_nested 51.4420μs 15.2025μs 65.7785 KOps/s 65.4502 KOps/s $\color{#35bf28}+0.50\%$
test_plain_set_nested_inplace 78.5920μs 16.9828μs 58.8830 KOps/s 58.6265 KOps/s $\color{#35bf28}+0.44\%$
test_plain_set_stack_nested_inplace 55.2020μs 16.4758μs 60.6952 KOps/s 59.9546 KOps/s $\color{#35bf28}+1.24\%$
test_items 22.9510μs 6.1081μs 163.7158 KOps/s 166.1714 KOps/s $\color{#d91a1a}-1.48\%$
test_items_nested 0.5310ms 0.4589ms 2.1793 KOps/s 2.1294 KOps/s $\color{#35bf28}+2.34\%$
test_items_nested_locked 0.5347ms 0.4588ms 2.1797 KOps/s 2.1373 KOps/s $\color{#35bf28}+1.99\%$
test_items_nested_leaf 0.1331ms 97.3493μs 10.2723 KOps/s 10.3371 KOps/s $\color{#d91a1a}-0.63\%$
test_items_stack_nested 0.5323ms 0.4601ms 2.1736 KOps/s 2.1256 KOps/s $\color{#35bf28}+2.26\%$
test_items_stack_nested_leaf 0.1344ms 98.8282μs 10.1186 KOps/s 10.3108 KOps/s $\color{#d91a1a}-1.86\%$
test_items_stack_nested_locked 0.5545ms 0.4598ms 2.1746 KOps/s 2.1152 KOps/s $\color{#35bf28}+2.81\%$
test_keys 31.1010μs 4.2069μs 237.7059 KOps/s 237.3858 KOps/s $\color{#35bf28}+0.13\%$
test_keys_nested 0.1792ms 0.1304ms 7.6670 KOps/s 7.6829 KOps/s $\color{#d91a1a}-0.21\%$
test_keys_nested_locked 0.7909ms 0.1385ms 7.2193 KOps/s 7.2034 KOps/s $\color{#35bf28}+0.22\%$
test_keys_nested_leaf 0.1671ms 0.1214ms 8.2350 KOps/s 8.2962 KOps/s $\color{#d91a1a}-0.74\%$
test_keys_stack_nested 0.2012ms 0.1308ms 7.6452 KOps/s 7.6394 KOps/s $\color{#35bf28}+0.08\%$
test_keys_stack_nested_leaf 0.1747ms 0.1201ms 8.3254 KOps/s 8.2832 KOps/s $\color{#35bf28}+0.51\%$
test_keys_stack_nested_locked 0.1936ms 0.1397ms 7.1594 KOps/s 7.2419 KOps/s $\color{#d91a1a}-1.14\%$
test_values 7.8162μs 1.0191μs 981.2268 KOps/s 983.6768 KOps/s $\color{#d91a1a}-0.25\%$
test_values_nested 92.9730μs 52.7333μs 18.9633 KOps/s 18.9119 KOps/s $\color{#35bf28}+0.27\%$
test_values_nested_locked 96.7830μs 55.8559μs 17.9032 KOps/s 17.7636 KOps/s $\color{#35bf28}+0.79\%$
test_values_nested_leaf 92.1330μs 60.2012μs 16.6110 KOps/s 16.5775 KOps/s $\color{#35bf28}+0.20\%$
test_values_stack_nested 88.3030μs 52.0797μs 19.2014 KOps/s 19.0947 KOps/s $\color{#35bf28}+0.56\%$
test_values_stack_nested_leaf 0.1029ms 60.0096μs 16.6640 KOps/s 16.7567 KOps/s $\color{#d91a1a}-0.55\%$
test_values_stack_nested_locked 0.1172ms 55.6993μs 17.9536 KOps/s 17.9238 KOps/s $\color{#35bf28}+0.17\%$
test_membership 10.3402μs 0.8520μs 1.1737 MOps/s 1.1854 MOps/s $\color{#d91a1a}-0.99\%$
test_membership_nested 38.4510μs 3.0201μs 331.1180 KOps/s 332.3156 KOps/s $\color{#d91a1a}-0.36\%$
test_membership_nested_leaf 37.7210μs 2.9943μs 333.9629 KOps/s 336.5140 KOps/s $\color{#d91a1a}-0.76\%$
test_membership_stacked_nested 40.7810μs 2.8944μs 345.4907 KOps/s 346.1014 KOps/s $\color{#d91a1a}-0.18\%$
test_membership_stacked_nested_leaf 36.0110μs 2.8786μs 347.3923 KOps/s 350.9826 KOps/s $\color{#d91a1a}-1.02\%$
test_membership_nested_last 40.2210μs 4.5036μs 222.0466 KOps/s 222.4423 KOps/s $\color{#d91a1a}-0.18\%$
test_membership_nested_leaf_last 37.4710μs 4.4586μs 224.2869 KOps/s 223.9727 KOps/s $\color{#35bf28}+0.14\%$
test_membership_stacked_nested_last 50.3510μs 4.3433μs 230.2403 KOps/s 230.1690 KOps/s $\color{#35bf28}+0.03\%$
test_membership_stacked_nested_leaf_last 37.5910μs 4.2704μs 234.1690 KOps/s 230.4600 KOps/s $\color{#35bf28}+1.61\%$
test_nested_getleaf 61.8720μs 21.5163μs 46.4765 KOps/s 46.4394 KOps/s $\color{#35bf28}+0.08\%$
test_nested_get 48.0410μs 20.3334μs 49.1800 KOps/s 48.6067 KOps/s $\color{#35bf28}+1.18\%$
test_stacked_getleaf 59.0620μs 21.2233μs 47.1181 KOps/s 47.0232 KOps/s $\color{#35bf28}+0.20\%$
test_stacked_get 49.3510μs 20.3764μs 49.0763 KOps/s 49.3911 KOps/s $\color{#d91a1a}-0.64\%$
test_nested_getitemleaf 47.5720μs 22.1130μs 45.2223 KOps/s 45.1606 KOps/s $\color{#35bf28}+0.14\%$
test_nested_getitem 47.0810μs 20.7425μs 48.2103 KOps/s 47.6603 KOps/s $\color{#35bf28}+1.15\%$
test_stacked_getitemleaf 53.2110μs 21.7338μs 46.0112 KOps/s 45.5319 KOps/s $\color{#35bf28}+1.05\%$
test_stacked_getitem 57.2720μs 20.5654μs 48.6253 KOps/s 48.2082 KOps/s $\color{#35bf28}+0.87\%$
test_lock_nested 7.8684ms 0.5094ms 1.9632 KOps/s 1.9938 KOps/s $\color{#d91a1a}-1.53\%$
test_lock_stack_nested 0.6099ms 0.5114ms 1.9553 KOps/s 1.9851 KOps/s $\color{#d91a1a}-1.50\%$
test_unlock_nested 0.4686ms 0.3984ms 2.5103 KOps/s 2.5440 KOps/s $\color{#d91a1a}-1.32\%$
test_unlock_stack_nested 0.5345ms 0.4041ms 2.4747 KOps/s 2.5174 KOps/s $\color{#d91a1a}-1.70\%$
test_flatten_speed 0.1741ms 0.1217ms 8.2183 KOps/s 8.2722 KOps/s $\color{#d91a1a}-0.65\%$
test_unflatten_speed 0.6725ms 0.5702ms 1.7537 KOps/s 1.7341 KOps/s $\color{#35bf28}+1.13\%$
test_common_ops 0.1001s 1.5898ms 629.0063 Ops/s 320.7477 Ops/s $\textbf{\color{#35bf28}+96.11\%}$
test_creation 0.1150ms 3.2002μs 312.4841 KOps/s 320.6534 KOps/s $\color{#d91a1a}-2.55\%$
test_creation_empty 35.4310μs 7.1389μs 140.0785 KOps/s 143.2826 KOps/s $\color{#d91a1a}-2.24\%$
test_creation_nested_1 86.2520μs 11.6497μs 85.8393 KOps/s 86.4103 KOps/s $\color{#d91a1a}-0.66\%$
test_creation_nested_2 41.0010μs 13.8329μs 72.2915 KOps/s 72.8710 KOps/s $\color{#d91a1a}-0.80\%$
test_creation_many_keys[10] 48.1310μs 21.4918μs 46.5294 KOps/s 47.0297 KOps/s $\color{#d91a1a}-1.06\%$
test_creation_many_keys[50] 0.1378ms 92.7120μs 10.7861 KOps/s 10.9823 KOps/s $\color{#d91a1a}-1.79\%$
test_creation_many_keys[100] 0.2355ms 0.1798ms 5.5604 KOps/s 5.5522 KOps/s $\color{#35bf28}+0.15\%$
test_creation_nested_many_keys[10] 0.1137ms 45.8301μs 21.8197 KOps/s 21.9741 KOps/s $\color{#d91a1a}-0.70\%$
test_creation_nested_many_keys[50] 0.2543ms 0.1860ms 5.3757 KOps/s 5.3855 KOps/s $\color{#d91a1a}-0.18\%$
test_clone 46.8310μs 13.3631μs 74.8328 KOps/s 75.4675 KOps/s $\color{#d91a1a}-0.84\%$
test_getitem[int] 1.6494ms 15.3477μs 65.1565 KOps/s 67.2522 KOps/s $\color{#d91a1a}-3.12\%$
test_getitem[slice_int] 0.1432ms 24.4742μs 40.8594 KOps/s 41.2835 KOps/s $\color{#d91a1a}-1.03\%$
test_getitem[range] 0.1745ms 65.0240μs 15.3789 KOps/s 15.5628 KOps/s $\color{#d91a1a}-1.18\%$
test_getitem[tuple] 0.1486ms 24.0906μs 41.5100 KOps/s 41.6222 KOps/s $\color{#d91a1a}-0.27\%$
test_getitem[list] 0.1864ms 59.8803μs 16.7000 KOps/s 16.5993 KOps/s $\color{#35bf28}+0.61\%$
test_setitem_dim[int] 49.9110μs 25.2358μs 39.6262 KOps/s 39.0959 KOps/s $\color{#35bf28}+1.36\%$
test_setitem_dim[slice_int] 62.4220μs 42.0065μs 23.8058 KOps/s 23.5079 KOps/s $\color{#35bf28}+1.27\%$
test_setitem_dim[range] 0.1301ms 94.6372μs 10.5667 KOps/s 10.2587 KOps/s $\color{#35bf28}+3.00\%$
test_setitem_dim[tuple] 58.3520μs 38.8731μs 25.7247 KOps/s 25.9489 KOps/s $\color{#d91a1a}-0.86\%$
test_setitem 46.0510μs 17.6847μs 56.5461 KOps/s 57.0140 KOps/s $\color{#d91a1a}-0.82\%$
test_set 40.7210μs 16.9665μs 58.9395 KOps/s 59.2345 KOps/s $\color{#d91a1a}-0.50\%$
test_set_shared 0.5146ms 0.2086ms 4.7932 KOps/s 4.6806 KOps/s $\color{#35bf28}+2.41\%$
test_update 0.2121ms 21.9926μs 45.4698 KOps/s 45.5020 KOps/s $\color{#d91a1a}-0.07\%$
test_update_nested 72.7720μs 33.4913μs 29.8585 KOps/s 30.6019 KOps/s $\color{#d91a1a}-2.43\%$
test_update__nested 0.4866ms 33.1240μs 30.1896 KOps/s 30.4507 KOps/s $\color{#d91a1a}-0.86\%$
test_set_nested 68.9620μs 18.7535μs 53.3234 KOps/s 53.0430 KOps/s $\color{#35bf28}+0.53\%$
test_set_nested_new 61.8120μs 23.6824μs 42.2254 KOps/s 42.5042 KOps/s $\color{#d91a1a}-0.66\%$
test_select 83.3020μs 39.7609μs 25.1504 KOps/s 24.9410 KOps/s $\color{#35bf28}+0.84\%$
test_select_nested 0.1159ms 75.2704μs 13.2854 KOps/s 13.4716 KOps/s $\color{#d91a1a}-1.38\%$
test_exclude_nested 0.1424ms 91.6146μs 10.9153 KOps/s 10.9806 KOps/s $\color{#d91a1a}-0.59\%$
test_empty[True] 0.5101ms 0.3973ms 2.5167 KOps/s 2.5081 KOps/s $\color{#35bf28}+0.34\%$
test_empty[False] 18.5955μs 1.4002μs 714.1663 KOps/s 729.5376 KOps/s $\color{#d91a1a}-2.11\%$
test_to 0.1200ms 69.0003μs 14.4927 KOps/s 14.2143 KOps/s $\color{#35bf28}+1.96\%$
test_to_nonblocking 0.1167ms 68.5612μs 14.5855 KOps/s 14.5542 KOps/s $\color{#35bf28}+0.22\%$
test_unbind_speed 0.4014ms 0.3411ms 2.9315 KOps/s 2.9742 KOps/s $\color{#d91a1a}-1.44\%$
test_unbind_speed_stack0 0.4505ms 0.3360ms 2.9759 KOps/s 3.0248 KOps/s $\color{#d91a1a}-1.62\%$
test_unbind_speed_stack1 0.1167s 0.8594ms 1.1636 KOps/s 1.3283 KOps/s $\textbf{\color{#d91a1a}-12.40\%}$
test_split 0.1153s 1.2821ms 779.9890 Ops/s 728.4951 Ops/s $\textbf{\color{#35bf28}+7.07\%}$
test_chunk 1.1865ms 1.0875ms 919.5752 Ops/s 921.3132 Ops/s $\color{#d91a1a}-0.19\%$
test_to_cpu_blocking 20.8986ms 19.4652ms 51.3737 Ops/s 49.9333 Ops/s $\color{#35bf28}+2.88\%$
test_to_cpu_global_sync 11.8254ms 11.5825ms 86.3371 Ops/s 85.7101 Ops/s $\color{#35bf28}+0.73\%$
test_to_cpu_event_sync 12.8501ms 12.4944ms 80.0357 Ops/s 70.0706 Ops/s $\textbf{\color{#35bf28}+14.22\%}$
test_to_cpu_default 12.9022ms 12.4620ms 80.2438 Ops/s 78.7913 Ops/s $\color{#35bf28}+1.84\%$
test_consolidate[False-None] 4.2809ms 4.2136ms 237.3282 Ops/s 236.5130 Ops/s $\color{#35bf28}+0.34\%$
test_consolidate[default-None] 3.5383ms 2.1521ms 464.6622 Ops/s 459.7922 Ops/s $\color{#35bf28}+1.06\%$
test_consolidate[reduce-overhead-None] 3.5219ms 2.0847ms 479.6886 Ops/s 472.6212 Ops/s $\color{#35bf28}+1.50\%$
test_consolidate_njt[False-None] 8.7346ms 8.6641ms 115.4183 Ops/s 116.1760 Ops/s $\color{#d91a1a}-0.65\%$
test_to[False-False-None] 2.2094ms 2.1474ms 465.6858 Ops/s 457.6589 Ops/s $\color{#35bf28}+1.75\%$
test_to[True-False-None] 2.0981ms 1.9307ms 517.9389 Ops/s 522.0149 Ops/s $\color{#d91a1a}-0.78\%$
test_to[within-False-None] 6.5449ms 6.2574ms 159.8109 Ops/s 160.2561 Ops/s $\color{#d91a1a}-0.28\%$
test_to[True-default-None] 11.0523ms 10.8751ms 91.9528 Ops/s 91.7683 Ops/s $\color{#35bf28}+0.20\%$
test_to_njt[False-False-None] 8.7555ms 8.6555ms 115.5341 Ops/s 115.2169 Ops/s $\color{#35bf28}+0.28\%$
test_to_njt[True-False-None] 7.1603ms 7.0248ms 142.3524 Ops/s 143.7280 Ops/s $\color{#d91a1a}-0.96\%$
test_to_njt[within-False-None] 15.8616ms 15.7121ms 63.6453 Ops/s 63.7931 Ops/s $\color{#d91a1a}-0.23\%$
test_creation[device0] 0.3881ms 0.1170ms 8.5475 KOps/s 8.6034 KOps/s $\color{#d91a1a}-0.65\%$
test_creation_from_tensor 0.4458ms 0.1136ms 8.8033 KOps/s 8.8284 KOps/s $\color{#d91a1a}-0.28\%$
test_add_one[memmap_tensor0] 0.3873ms 6.7657μs 147.8052 KOps/s 149.6722 KOps/s $\color{#d91a1a}-1.25\%$
test_contiguous[memmap_tensor0] 15.8410μs 0.7189μs 1.3910 MOps/s 2.1671 MOps/s $\textbf{\color{#d91a1a}-35.81\%}$
test_stack[memmap_tensor0] 93.7330μs 4.2745μs 233.9448 KOps/s 237.9049 KOps/s $\color{#d91a1a}-1.66\%$
test_memmaptd_index 1.2635ms 0.2792ms 3.5818 KOps/s 3.6654 KOps/s $\color{#d91a1a}-2.28\%$
test_memmaptd_index_astensor 0.5428ms 0.3826ms 2.6139 KOps/s 2.6392 KOps/s $\color{#d91a1a}-0.96\%$
test_memmaptd_index_op 1.0688ms 0.6365ms 1.5712 KOps/s 1.5748 KOps/s $\color{#d91a1a}-0.23\%$
test_serialize_model 0.1395s 0.1346s 7.4274 Ops/s 7.3732 Ops/s $\color{#35bf28}+0.74\%$
test_serialize_model_pickle 1.3494s 1.2095s 0.8268 Ops/s 0.8234 Ops/s $\color{#35bf28}+0.41\%$
test_serialize_weights 0.1416s 0.1364s 7.3335 Ops/s 7.4526 Ops/s $\color{#d91a1a}-1.60\%$
test_serialize_weights_returnearly 78.3444ms 64.2018ms 15.5759 Ops/s 10.9453 Ops/s $\textbf{\color{#35bf28}+42.31\%}$
test_serialize_weights_pickle 1.4202s 1.2146s 0.8233 Ops/s 0.8171 Ops/s $\color{#35bf28}+0.76\%$
test_reshape_pytree 0.2225ms 32.9116μs 30.3844 KOps/s 30.4300 KOps/s $\color{#d91a1a}-0.15\%$
test_reshape_td 86.4030μs 44.2826μs 22.5822 KOps/s 22.6388 KOps/s $\color{#d91a1a}-0.25\%$
test_view_pytree 0.2188ms 31.5996μs 31.6460 KOps/s 30.7800 KOps/s $\color{#35bf28}+2.81\%$
test_view_td 0.1048ms 55.2127μs 18.1118 KOps/s 18.3564 KOps/s $\color{#d91a1a}-1.33\%$
test_unbind_pytree 0.2434ms 37.2213μs 26.8664 KOps/s 26.0482 KOps/s $\color{#35bf28}+3.14\%$
test_unbind_td 0.1686ms 51.0430μs 19.5913 KOps/s 19.4131 KOps/s $\color{#35bf28}+0.92\%$
test_split_pytree 0.2427ms 43.0931μs 23.2056 KOps/s 22.7972 KOps/s $\color{#35bf28}+1.79\%$
test_split_td 0.1057ms 66.1964μs 15.1066 KOps/s 14.1899 KOps/s $\textbf{\color{#35bf28}+6.46\%}$
test_add_pytree 0.2151ms 42.1348μs 23.7334 KOps/s 23.3446 KOps/s $\color{#35bf28}+1.67\%$
test_add_td 0.1188ms 56.9123μs 17.5709 KOps/s 18.0581 KOps/s $\color{#d91a1a}-2.70\%$
test_compile_add_one_nested[tensordict-compile] 0.3500ms 0.2362ms 4.2344 KOps/s 4.4253 KOps/s $\color{#d91a1a}-4.31\%$
test_compile_add_one_nested[tensordict-eager] 0.4497ms 0.1991ms 5.0226 KOps/s 4.9849 KOps/s $\color{#35bf28}+0.76\%$
test_compile_add_one_nested[pytree-compile] 0.3167ms 0.1375ms 7.2716 KOps/s 7.0579 KOps/s $\color{#35bf28}+3.03\%$
test_compile_add_one_nested[pytree-eager] 0.6149ms 0.1746ms 5.7285 KOps/s 5.6751 KOps/s $\color{#35bf28}+0.94\%$
test_compile_copy_nested[tensordict-compile] 0.4646ms 16.7449μs 59.7196 KOps/s 66.5960 KOps/s $\textbf{\color{#d91a1a}-10.33\%}$
test_compile_copy_nested[tensordict-eager] 0.3902ms 53.4132μs 18.7220 KOps/s 18.4030 KOps/s $\color{#35bf28}+1.73\%$
test_compile_copy_nested[pytree-compile] 0.1039ms 15.6666μs 63.8299 KOps/s 63.9836 KOps/s $\color{#d91a1a}-0.24\%$
test_compile_copy_nested[pytree-eager] 0.2775ms 67.6434μs 14.7834 KOps/s 14.4772 KOps/s $\color{#35bf28}+2.12\%$
test_compile_add_one_flat[tensordict-compile] 0.3584ms 0.2545ms 3.9295 KOps/s 3.6982 KOps/s $\textbf{\color{#35bf28}+6.25\%}$
test_compile_add_one_flat[tensordict-eager] 0.3297ms 0.2853ms 3.5048 KOps/s 3.4638 KOps/s $\color{#35bf28}+1.18\%$
test_compile_add_one_flat[tensorclass-compile] 0.2863ms 0.1873ms 5.3381 KOps/s 5.1459 KOps/s $\color{#35bf28}+3.73\%$
test_compile_add_one_flat[tensorclass-eager] 0.1195ms 75.0332μs 13.3274 KOps/s 13.3669 KOps/s $\color{#d91a1a}-0.30\%$
test_compile_add_one_flat[pytree-compile] 0.3278ms 0.1968ms 5.0801 KOps/s 4.9464 KOps/s $\color{#35bf28}+2.70\%$
test_compile_add_one_flat[pytree-eager] 0.7930ms 0.5095ms 1.9626 KOps/s 1.9672 KOps/s $\color{#d91a1a}-0.24\%$
test_compile_add_self_flat[tensordict-eager] 0.3702ms 0.3323ms 3.0095 KOps/s 2.8387 KOps/s $\textbf{\color{#35bf28}+6.02\%}$
test_compile_add_self_flat[tensordict-compile] 0.3083ms 0.2551ms 3.9205 KOps/s 3.5169 KOps/s $\textbf{\color{#35bf28}+11.48\%}$
test_compile_add_self_flat[tensorclass-eager] 0.1341ms 91.3875μs 10.9424 KOps/s 10.4444 KOps/s $\color{#35bf28}+4.77\%$
test_compile_add_self_flat[tensorclass-compile] 0.4522ms 0.1911ms 5.2335 KOps/s 4.8458 KOps/s $\textbf{\color{#35bf28}+8.00\%}$
test_compile_add_self_flat[pytree-eager] 0.6605ms 0.4147ms 2.4116 KOps/s 2.3306 KOps/s $\color{#35bf28}+3.48\%$
test_compile_add_self_flat[pytree-compile] 0.2703ms 0.1979ms 5.0534 KOps/s 4.7710 KOps/s $\textbf{\color{#35bf28}+5.92\%}$
test_compile_copy_flat[tensordict-compile] 62.2720μs 20.0354μs 49.9117 KOps/s 49.7532 KOps/s $\color{#35bf28}+0.32\%$
test_compile_copy_flat[tensordict-eager] 77.1120μs 42.0234μs 23.7963 KOps/s 24.5038 KOps/s $\color{#d91a1a}-2.89\%$
test_compile_copy_flat[pytree-compile] 0.2223ms 22.2308μs 44.9825 KOps/s 42.1539 KOps/s $\textbf{\color{#35bf28}+6.71\%}$
test_compile_copy_flat[pytree-eager] 0.3443ms 53.0815μs 18.8389 KOps/s 18.8726 KOps/s $\color{#d91a1a}-0.18\%$
test_compile_assign_and_add[tensordict-compile] 2.3089ms 0.2424ms 4.1251 KOps/s 3.8934 KOps/s $\textbf{\color{#35bf28}+5.95\%}$
test_compile_assign_and_add[tensordict-eager] 3.4519ms 3.2662ms 306.1642 Ops/s 304.6255 Ops/s $\color{#35bf28}+0.51\%$
test_compile_assign_and_add[pytree-compile] 2.2302ms 0.1846ms 5.4177 KOps/s 5.3915 KOps/s $\color{#35bf28}+0.49\%$
test_compile_assign_and_add[pytree-eager] 2.9412ms 2.6708ms 374.4161 Ops/s 364.2339 Ops/s $\color{#35bf28}+2.80\%$
test_compile_indexing[tensor-tensordict-compile] 0.2931ms 0.1363ms 7.3362 KOps/s 7.2408 KOps/s $\color{#35bf28}+1.32\%$
test_compile_indexing[tensor-tensordict-eager] 0.3808ms 73.9078μs 13.5304 KOps/s 12.8428 KOps/s $\textbf{\color{#35bf28}+5.35\%}$
test_compile_indexing[tensor-tensorclass-compile] 0.2779ms 0.1207ms 8.2835 KOps/s 8.3318 KOps/s $\color{#d91a1a}-0.58\%$
test_compile_indexing[tensor-tensorclass-eager] 0.2982ms 44.3682μs 22.5387 KOps/s 22.3018 KOps/s $\color{#35bf28}+1.06\%$
test_compile_indexing[tensor-pytree-compile] 0.1626ms 0.1215ms 8.2285 KOps/s 8.3693 KOps/s $\color{#d91a1a}-1.68\%$
test_compile_indexing[tensor-pytree-eager] 0.2480ms 44.6141μs 22.4144 KOps/s 22.2363 KOps/s $\color{#35bf28}+0.80\%$
test_compile_indexing[slice-tensordict-compile] 0.2706ms 85.5748μs 11.6857 KOps/s 11.7745 KOps/s $\color{#d91a1a}-0.75\%$
test_compile_indexing[slice-tensordict-eager] 0.2150ms 30.6070μs 32.6723 KOps/s 35.8036 KOps/s $\textbf{\color{#d91a1a}-8.75\%}$
test_compile_indexing[slice-tensorclass-compile] 0.1973ms 72.5778μs 13.7783 KOps/s 14.2227 KOps/s $\color{#d91a1a}-3.12\%$
test_compile_indexing[slice-tensorclass-eager] 0.2545ms 22.3979μs 44.6470 KOps/s 44.0055 KOps/s $\color{#35bf28}+1.46\%$
test_compile_indexing[slice-pytree-compile] 0.1138ms 72.6482μs 13.7650 KOps/s 13.9402 KOps/s $\color{#d91a1a}-1.26\%$
test_compile_indexing[slice-pytree-eager] 0.2891ms 22.3604μs 44.7219 KOps/s 44.2516 KOps/s $\color{#35bf28}+1.06\%$
test_compile_indexing[int-tensordict-compile] 0.1253ms 85.9670μs 11.6324 KOps/s 11.6650 KOps/s $\color{#d91a1a}-0.28\%$
test_compile_indexing[int-tensordict-eager] 0.2586ms 28.0018μs 35.7120 KOps/s 35.6305 KOps/s $\color{#35bf28}+0.23\%$
test_compile_indexing[int-tensorclass-compile] 0.1134ms 71.9929μs 13.8903 KOps/s 13.9194 KOps/s $\color{#d91a1a}-0.21\%$
test_compile_indexing[int-tensorclass-eager] 0.2302ms 22.2246μs 44.9951 KOps/s 44.3639 KOps/s $\color{#35bf28}+1.42\%$
test_compile_indexing[int-pytree-compile] 0.1119ms 72.3549μs 13.8208 KOps/s 13.9378 KOps/s $\color{#d91a1a}-0.84\%$
test_compile_indexing[int-pytree-eager] 0.2608ms 22.3761μs 44.6905 KOps/s 44.1997 KOps/s $\color{#35bf28}+1.11\%$
test_compile_replace[single-eager] 89.4220μs 47.7211μs 20.9551 KOps/s 19.9946 KOps/s $\color{#35bf28}+4.80\%$
test_compile_replace[single-compile] 0.2528ms 0.1325ms 7.5453 KOps/s 7.5789 KOps/s $\color{#d91a1a}-0.44\%$
test_compile_replace[multi-eager] 0.6621ms 0.5669ms 1.7640 KOps/s 1.7656 KOps/s $\color{#d91a1a}-0.09\%$
test_compile_replace[multi-compile] 0.3274ms 0.1400ms 7.1437 KOps/s 7.2771 KOps/s $\color{#d91a1a}-1.83\%$
test_compile_tc_getattr_20[eager] 0.2133ms 0.1570ms 6.3711 KOps/s 6.2238 KOps/s $\color{#35bf28}+2.37\%$
test_compile_tc_getattr_20[compile] 0.3420ms 0.1527ms 6.5495 KOps/s 6.6705 KOps/s $\color{#d91a1a}-1.81\%$
test_compile_clone_shallow[20-eager] 61.3020μs 19.6183μs 50.9727 KOps/s 52.0514 KOps/s $\color{#d91a1a}-2.07\%$
test_compile_clone_shallow[20-compile] 8.6302ms 18.0091μs 55.5276 KOps/s 59.0628 KOps/s $\textbf{\color{#d91a1a}-5.99\%}$
test_compile_clone_shallow[40-eager] 71.9320μs 34.3022μs 29.1526 KOps/s 29.6224 KOps/s $\color{#d91a1a}-1.59\%$
test_compile_clone_shallow[40-compile] 78.4420μs 18.8104μs 53.1621 KOps/s 54.2664 KOps/s $\color{#d91a1a}-2.03\%$
test_compile_clone_shallow[80-eager] 93.9820μs 63.6723μs 15.7054 KOps/s 16.1116 KOps/s $\color{#d91a1a}-2.52\%$
test_compile_clone_shallow[80-compile] 91.6030μs 22.3262μs 44.7905 KOps/s 45.1714 KOps/s $\color{#d91a1a}-0.84\%$
test_compile_update_inplace[eager] 0.2264ms 61.3009μs 16.3130 KOps/s 16.2080 KOps/s $\color{#35bf28}+0.65\%$
test_compile_update_inplace[compile] 0.4147ms 0.1490ms 6.7133 KOps/s 6.5656 KOps/s $\color{#35bf28}+2.25\%$
test_mod_add[eager] 0.2831ms 0.2267ms 4.4119 KOps/s 4.4025 KOps/s $\color{#35bf28}+0.21\%$
test_mod_add[compile] 0.2059ms 0.1324ms 7.5527 KOps/s 7.3631 KOps/s $\color{#35bf28}+2.58\%$
test_mod_add[compile-overhead] 0.2887ms 0.1804ms 5.5419 KOps/s 5.5605 KOps/s $\color{#d91a1a}-0.33\%$
test_mod_wrap[eager] 0.5489ms 0.4693ms 2.1309 KOps/s 2.1038 KOps/s $\color{#35bf28}+1.29\%$
test_mod_wrap[compile] 0.5390ms 0.3956ms 2.5280 KOps/s 2.4909 KOps/s $\color{#35bf28}+1.49\%$
test_mod_wrap[compile-overhead] 9.4321ms 5.0392ms 198.4439 Ops/s 218.8547 Ops/s $\textbf{\color{#d91a1a}-9.33\%}$
test_mod_wrap_and_backward[eager] 1.9330ms 1.6841ms 593.7919 Ops/s 584.9627 Ops/s $\color{#35bf28}+1.51\%$
test_mod_wrap_and_backward[compile] 2.5750ms 1.6427ms 608.7594 Ops/s 649.0604 Ops/s $\textbf{\color{#d91a1a}-6.21\%}$
test_mod_wrap_and_backward[compile-overhead] 1.8684ms 1.0637ms 940.0840 Ops/s 1.0412 KOps/s $\textbf{\color{#d91a1a}-9.72\%}$
test_seq_add[eager] 0.5786ms 0.5127ms 1.9505 KOps/s 1.9622 KOps/s $\color{#d91a1a}-0.60\%$
test_seq_add[compile] 0.2468ms 0.1411ms 7.0852 KOps/s 6.8429 KOps/s $\color{#35bf28}+3.54\%$
test_seq_add[compile-overhead] 0.2408ms 0.1855ms 5.3914 KOps/s 5.2461 KOps/s $\color{#35bf28}+2.77\%$
test_seq_wrap[eager] 1.5303ms 1.4159ms 706.2648 Ops/s 706.6196 Ops/s $\color{#d91a1a}-0.05\%$
test_seq_wrap[compile] 0.4972ms 0.4102ms 2.4378 KOps/s 2.3835 KOps/s $\color{#35bf28}+2.28\%$
test_seq_wrap[compile-overhead] 0.4336ms 0.3102ms 3.2237 KOps/s 3.2232 KOps/s $\color{#35bf28}+0.01\%$
test_func_call_runtime[False-eager] 0.9434ms 0.8407ms 1.1895 KOps/s 1.2420 KOps/s $\color{#d91a1a}-4.23\%$
test_func_call_runtime[False-compile] 1.1058ms 0.9851ms 1.0152 KOps/s 1.0108 KOps/s $\color{#35bf28}+0.44\%$
test_func_call_runtime[False-compile-overhead] 0.5864ms 0.5216ms 1.9172 KOps/s 1.9177 KOps/s $\color{#d91a1a}-0.03\%$
test_func_call_runtime[True-eager] 1.1608ms 1.0663ms 937.8168 Ops/s 939.8920 Ops/s $\color{#d91a1a}-0.22\%$
test_func_call_runtime[True-compile] 1.1174ms 1.0054ms 994.6499 Ops/s 988.8921 Ops/s $\color{#35bf28}+0.58\%$
test_func_call_runtime[True-compile-overhead] 0.6039ms 0.5350ms 1.8692 KOps/s 1.8607 KOps/s $\color{#35bf28}+0.46\%$
test_func_call_cm_runtime[False-eager] 0.8960ms 0.8271ms 1.2090 KOps/s 1.2621 KOps/s $\color{#d91a1a}-4.20\%$
test_func_call_cm_runtime[False-compile] 1.1045ms 0.9849ms 1.0153 KOps/s 1.0252 KOps/s $\color{#d91a1a}-0.96\%$
test_func_call_cm_runtime[False-compile-overhead] 0.6946ms 0.4939ms 2.0249 KOps/s 2.0000 KOps/s $\color{#35bf28}+1.24\%$
test_func_call_cm_runtime[True-eager] 1.3142ms 1.2069ms 828.5594 Ops/s 823.5992 Ops/s $\color{#35bf28}+0.60\%$
test_func_call_cm_runtime[True-compile] 1.1162ms 1.0188ms 981.5651 Ops/s 972.9510 Ops/s $\color{#35bf28}+0.89\%$
test_func_call_cm_runtime[True-compile-overhead] 0.6282ms 0.5525ms 1.8100 KOps/s 1.7788 KOps/s $\color{#35bf28}+1.75\%$
test_vmap_func_call_cm_runtime[eager] 2.8755ms 2.4031ms 416.1266 Ops/s 414.4031 Ops/s $\color{#35bf28}+0.42\%$
test_vmap_func_call_cm_runtime[compile] 3.0838ms 2.6098ms 383.1747 Ops/s 385.7176 Ops/s $\color{#d91a1a}-0.66\%$
test_vmap_func_call_cm_runtime[compile-overhead] 3.1055ms 2.6125ms 382.7726 Ops/s 385.3603 Ops/s $\color{#d91a1a}-0.67\%$
test_distributed 3.1012ms 0.1684ms 5.9395 KOps/s 6.4135 KOps/s $\textbf{\color{#d91a1a}-7.39\%}$
test_tdmodule 0.4736ms 0.1922ms 5.2035 KOps/s 5.0997 KOps/s $\color{#35bf28}+2.03\%$
test_tdmodule_dispatch 0.4027ms 0.3708ms 2.6968 KOps/s 2.6682 KOps/s $\color{#35bf28}+1.07\%$
test_tdseq 46.3010μs 26.9022μs 37.1717 KOps/s 37.6120 KOps/s $\color{#d91a1a}-1.17\%$
test_tdseq_dispatch 0.2801ms 0.2183ms 4.5814 KOps/s 4.6134 KOps/s $\color{#d91a1a}-0.70\%$
test_instantiation_functorch 2.1597ms 2.0697ms 483.1730 Ops/s 482.0510 Ops/s $\color{#35bf28}+0.23\%$
test_exec_functorch 0.2318ms 0.1804ms 5.5435 KOps/s 5.4914 KOps/s $\color{#35bf28}+0.95\%$
test_exec_functional_call 0.2407ms 0.1594ms 6.2746 KOps/s 6.2372 KOps/s $\color{#35bf28}+0.60\%$
test_exec_td_decorator 0.4955ms 0.2484ms 4.0252 KOps/s 3.9975 KOps/s $\color{#35bf28}+0.69\%$
test_vmap_mlp_speed_decorator[True-True] 1.2742ms 1.0335ms 967.6094 Ops/s 957.7768 Ops/s $\color{#35bf28}+1.03\%$
test_vmap_mlp_speed_decorator[True-False] 1.2318ms 1.0362ms 965.1063 Ops/s 961.7027 Ops/s $\color{#35bf28}+0.35\%$
test_vmap_mlp_speed_decorator[False-True] 0.9451ms 0.7373ms 1.3564 KOps/s 1.3525 KOps/s $\color{#35bf28}+0.29\%$
test_vmap_mlp_speed_decorator[False-False] 0.9285ms 0.7381ms 1.3548 KOps/s 1.3552 KOps/s $\color{#d91a1a}-0.03\%$
test_vmap_transformer_speed_decorator[True-True] 21.7769ms 20.9964ms 47.6272 Ops/s 47.3831 Ops/s $\color{#35bf28}+0.52\%$
test_vmap_transformer_speed_decorator[True-False] 21.8053ms 21.0439ms 47.5197 Ops/s 47.2960 Ops/s $\color{#35bf28}+0.47\%$
test_vmap_transformer_speed_decorator[False-True] 21.2401ms 20.6033ms 48.5360 Ops/s 48.2800 Ops/s $\color{#35bf28}+0.53\%$
test_vmap_transformer_speed_decorator[False-False] 21.1557ms 20.6214ms 48.4934 Ops/s 48.4046 Ops/s $\color{#35bf28}+0.18\%$
test_to_module_speed[True] 1.7388ms 1.6563ms 603.7388 Ops/s 598.0720 Ops/s $\color{#35bf28}+0.95\%$
test_to_module_speed[False] 1.7368ms 1.6515ms 605.5243 Ops/s 619.8231 Ops/s $\color{#d91a1a}-2.31\%$
test_to_module_plain_tensor_speed[None] 2.5498ms 1.7539ms 570.1663 Ops/s 576.9414 Ops/s $\color{#d91a1a}-1.17\%$
test_to_module_plain_tensor_speed[False] 2.1820ms 1.5840ms 631.3265 Ops/s 633.1253 Ops/s $\color{#d91a1a}-0.28\%$
test_to_module_plain_tensor_speed[True] 3.5346ms 3.4316ms 291.4126 Ops/s 290.4849 Ops/s $\color{#35bf28}+0.32\%$
test_tc_init 70.5120μs 42.6407μs 23.4517 KOps/s 23.1064 KOps/s $\color{#35bf28}+1.49\%$
test_tc_init_tensor_only 40.6710μs 9.2352μs 108.2809 KOps/s 110.4116 KOps/s $\color{#d91a1a}-1.93\%$
test_tc_init_nested 0.1191ms 84.7664μs 11.7971 KOps/s 11.7837 KOps/s $\color{#35bf28}+0.11\%$
test_tc_init_many_fields 48.2810μs 15.0881μs 66.2775 KOps/s 67.6619 KOps/s $\color{#d91a1a}-2.05\%$
test_tc_first_layer_tensor 34.9210μs 1.8138μs 551.3380 KOps/s 549.5883 KOps/s $\color{#35bf28}+0.32\%$
test_tc_first_layer_tensor_only 3.1001μs 0.4048μs 2.4701 MOps/s 2.5001 MOps/s $\color{#d91a1a}-1.20\%$
test_tc_first_layer_tensor_set 24.7900μs 3.9114μs 255.6617 KOps/s 252.6906 KOps/s $\color{#35bf28}+1.18\%$
test_tc_first_layer_tensor_only_set 35.4200μs 3.2580μs 306.9349 KOps/s 303.9696 KOps/s $\color{#35bf28}+0.98\%$
test_tc_first_layer_nontensor 35.6310μs 6.1834μs 161.7235 KOps/s 161.9682 KOps/s $\color{#d91a1a}-0.15\%$
test_tc_second_layer_tensor 22.5310μs 4.4024μs 227.1510 KOps/s 228.0365 KOps/s $\color{#d91a1a}-0.39\%$
test_tc_second_layer_nontensor 31.8510μs 8.6488μs 115.6232 KOps/s 115.0254 KOps/s $\color{#35bf28}+0.52\%$
test_unbind 0.2769s 14.1164ms 70.8397 Ops/s 65.4076 Ops/s $\textbf{\color{#35bf28}+8.31\%}$
test_full_like 4.7596ms 4.4295ms 225.7597 Ops/s 226.1880 Ops/s $\color{#d91a1a}-0.19\%$
test_zeros_like 4.6411ms 4.4094ms 226.7890 Ops/s 227.9413 Ops/s $\color{#d91a1a}-0.51\%$
test_ones_like 4.8624ms 4.4261ms 225.9323 Ops/s 227.2131 Ops/s $\color{#d91a1a}-0.56\%$
test_clone 7.3198ms 6.7167ms 148.8837 Ops/s 150.6180 Ops/s $\color{#d91a1a}-1.15\%$
test_squeeze 69.9820μs 14.4420μs 69.2426 KOps/s 69.4890 KOps/s $\color{#d91a1a}-0.35\%$
test_unsqueeze 0.3067ms 0.1122ms 8.9087 KOps/s 8.8644 KOps/s $\color{#35bf28}+0.50\%$
test_split 0.2464ms 0.1806ms 5.5361 KOps/s 5.4742 KOps/s $\color{#35bf28}+1.13\%$
test_permute 0.2730ms 0.2078ms 4.8117 KOps/s 4.6607 KOps/s $\color{#35bf28}+3.24\%$
test_stack 20.5645ms 18.9495ms 52.7719 Ops/s 22.9878 Ops/s $\textbf{\color{#35bf28}+129.56\%}$
test_cat 19.8167ms 18.8601ms 53.0220 Ops/s 22.6090 Ops/s $\textbf{\color{#35bf28}+134.52\%}$
test_sequential_tensordict 0.9306ms 0.5687ms 1.7583 KOps/s 1.6379 KOps/s $\textbf{\color{#35bf28}+7.35\%}$
test_sequential_graph_module 0.1859ms 0.1164ms 8.5880 KOps/s 8.3653 KOps/s $\color{#35bf28}+2.66\%$
test_nested_tensordict 1.2128ms 0.8171ms 1.2238 KOps/s 1.2206 KOps/s $\color{#35bf28}+0.26\%$
test_nested_graph_module 0.2096ms 0.1262ms 7.9243 KOps/s 7.6718 KOps/s $\color{#35bf28}+3.29\%$

@vmoens
vmoens force-pushed the claude/compassionate-haibt-2c42a2 branch from a6891ef to a5a67f2 Compare June 15, 2026 07:48
@github-actions github-actions Bot added the bug Something isn't working label Jun 15, 2026
…n-mask indexing

`tensordict.pad` silently dropped NonTensorData / NonTensorStack entries: a
padded TensorDict returned the entry as a stack of empty TensorDicts for every
position, destroying the valid values too. The root cause is that
NonTensorStack is a LazyStackedTensorDict subclass, so it fell into the generic
lazy-stack branch and its leaves were filled with a numeric `value`.

pad now dispatches non-tensor entries to a dedicated path: valid positions keep
their original values and each pad slot holds a NonTensorData with `data=None`
(a non-tensor value can't be filled with a numeric constant). This works for
top-level non-tensor inputs, nested entries, multi-dim padding, negative
(cropping) pads, broadcast NonTensorData, and inplace=True (NonTensorStack
identity preserved). The lazy-stack inplace grow path also fills new
stack-dim slots with None for non-tensor leaves.

While here, fix two sharp edges in NonTensorStack / LazyStackedTensorDict
boolean-mask indexing surfaced by the same downstream code:

- Masking dim 0 of a 2-D NonTensorStack raised an IndexError because a scalar
  bool inside a tuple index was treated like a scalar integer. Scalar bools now
  follow numpy new-axis semantics (True -> size-1 dim, False -> size-0 dim) in
  both __getitem__ and __setitem__.
- Indices that select nothing (empty slice along the stack dim, all-False mask)
  raised "items cannot be empty" or produced a wrong batch size; they now return
  a correctly-shaped zero-length lazy stack.
- LinkedList printed doubly-wrapped (`LinkedList(LinkedList([...]))`) because its
  __str__ called super().__str__(), which dispatched back to __repr__.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@vmoens
vmoens force-pushed the claude/compassionate-haibt-2c42a2 branch from a5a67f2 to 640e92c Compare June 15, 2026 07:58
`tdlogger.info("start method already set to", mp.get_start_method())` passes
the start method as a logging %-format argument, but the message string has no
%s placeholder, so `msg % args` raises
`TypeError: not all arguments converted during string formatting`.

This was latent: the logging framework swallowed the formatting error until
pytest 9.1.0 changed its log-capture handler to let the exception propagate,
turning it into a hard failure of `TestDTensor::test_dtensor` (and the FSDP
tests) on every CPU/macOS job. Add the missing `%s` placeholder so the
fallback log message formats correctly.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@vmoens

vmoens commented Jun 15, 2026

Copy link
Copy Markdown
Collaborator Author

Added a second commit [CI] Fix broken logging call in test_distributed exposed by pytest 9.1.

The CPU/macOS jobs were failing on TestDTensor::test_dtensor (and the FSDP tests) with TypeError: not all arguments converted during string formatting. Root cause is unrelated to the pad change:

  • test/test_distributed.py had tdlogger.info("start method already set to", mp.get_start_method()) — a logging call whose message lacks a %s placeholder, so msg % args raises.
  • This was latent for a long time (the logging framework swallowed the formatting error) until pytest 9.1.0 (landed between Jun 12 and Jun 15) changed its log-capture handler to let the exception propagate, turning it into a hard test failure. Confirmed: passing runs used pytest 9.0.3, failing runs use 9.1.0.

The fix adds the missing %s placeholder. The remaining red jobs are the GPU / Unit-tests (RL) jobs, which are pre-existing failures on main (flaky distributed/RL-GPU), not introduced here.

@vmoens
vmoens merged commit a8b032c into main Jun 15, 2026
72 of 73 checks passed
@vmoens
vmoens deleted the claude/compassionate-haibt-2c42a2 branch June 15, 2026 09:52
vmoens added a commit that referenced this pull request Jun 15, 2026
Resolves the modify/delete conflict on test/test_tensordict.py from
#1725 (NonTensor pad / boolean-mask bugfix). That commit added 14 test
methods to the monolith, which this branch had split into test/tensordict/.
The new methods were rerouted into the corresponding split files,
preserving their original classes:
  - 7 test_pad_nontensor* -> test/tensordict/test_generic.py (TestGeneric)
  - 3 test_lazy_*         -> test/tensordict/test_lazy.py (TestLazyStackedTensorDict)
  - test_linked_list_str + 3 test_nontensorstack_* -> test/tensordict/test_nontensor.py (TestNonTensorData)

Verified the split union equals origin/main's test_tensordict.py exactly
(25 classes, 728 methods). The #1725 test_distributed.py change merged
onto its renamed path test/distributed/test_distributed.py.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working CI CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. Distributed functional Test

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant