$ the-wire · showcase
Tensordict fixes DataLoader zero-parallelism, ExecuTorch CUDA wheel drops the CUDA torch dependency
By RepoJournal · Filed · About PyTorch · Composed from the cited sources · methodology
Two long-standing traps in the dependency chain got fixed today: reading h5 and zarr TensorDicts in DataLoader workers now actually parallelizes, and the ExecuTorch Linux CUDA wheel no longer requires a CUDA build of PyTorch to import.
[BugFix] Read h5 and zarr PersistentTensorDict batches in DataLoader workers, not in the main process pytorch/tensordict
A DataLoader with num_workers > 0 over an HDF5 or zarr PersistentTensorDict used to read every batch in the main process, because PersistentTensorDict.__getitems__ was aliased to __getitem__ and the workers only returned a lazy view of the file, so more workers made loading slower. The workers now read the rows and hand back a TensorDict, making h5 and zarr load in parallel like memory-mapped f...
Link torch_cpu_library, not torch, so the CUDA wheel imports with a CPU-only torch (#24060) pytorch/executorch
The Linux CUDA wheel's libraries recorded a DT_NEEDED on libtorch_cuda.so (and one on libc10_cuda.so) despite never using CUDA symbols, which is why it would not import against a CPU-only PyTorch. Linking torch_cpu_library instead removes that load-time dependency from extension/training/pybindings/_training_lib, extension/llm/runner/_llm_runner, libcustom_ops_aot_lib.so and libquantized_ops_ao...
[Deprecation] td[:, ids] past the batch dims works again as in 0.14 with a FutureWarning, and writes there warn too pytorch/tensordict
td[:, ids] with ids indexing a leaf dim past the batch dims raised IndexError from 0.15.0 with no deprecation warning first; it now returns the 0.14 result under a FutureWarning that names the spelling that keeps working, and writes through such an index warn too. If you capped tensordict below 0.15 (as RLinf did for EmbodiChain's CartPole), that workaround can be unwound once this lands.
[Performance] Avoid dataset reads when listing lazy HDF5 keys pytorch/tensordict
Listing nested keys on a lazy stack of HDF5-backed PersistentTensorDicts now reads dataset metadata instead of the datasets themselves: on the reported example, both list(td.keys(True, True)) and list(td.keys(True, False)) drop from 12 backend reads to 0, and entry_class("e") from 1 to 0, with the same results for locked stacks.
Packed HiFi FC: fused 4-bit kernel on HiFi4 (#23910) pytorch/executorch
Also of note: ExecuTorch added a fused HiFi4 path for 4-bit quantized_fully_connected_packed that widens (x - zp) to int16 once per input and skips the tile-unpack and nnlib round trip, and the tensordict flat state_dict() read-count fix and key-listing work landed alongside the DataLoader change.