v1.3.1
1.3.1
Summary
NIXL 1.3.1 is a focused patch release. It closes the path-mode file-registration gap introduced in 1.3.0: reusing the same devId across distinct path-mode FILE_SEG registrations could leave transfers ambiguous and trigger a double-free on deregister, so all four path-mode file backends now reserve and enforce a unique path-mode devId per registered file. (#1790)
The release also improves wheel packaging. The nixl_ep wheel can now be built against multiple PyTorch versions, producing per-(Python, Torch) extension artifacts that are merged into a single distribution and loaded by ABI/Torch version at runtime. In addition, the published manylinux wheels now bundle the DDN INFINIA backend plugin by default, so the INFINIA storage backend is available out of the box. (#1775, #1866, #1832)
API Changes
- [POSIX/CUDA GDS/GDS MT/HF3FS] Unique
devIdrequired for path-modeFILE_SEG: Path-mode registrations that reuse an in-usedevIdare now rejected withNIXL_ERR_INVALID_PARAM. Fd-in-devIdmode (non-pathmetaInfo) is unchanged — one file descriptor may still back multiple descriptors at different offsets. (#1790)
Enhancements
NIXL-EP Example Improvements
- Multi-PyTorch
nixl_epwheels: Thenixl_epwheel can now be built and packaged for multiple PyTorch versions at once. The build produces per-(Python, Torch)extension artifacts (with Torch-version-aware extension names) and merges them into a single wheel via a newcontrib/wheel_merge.py; at import time the correct PyTorch/ABI extension is selected based on the installed Torch version. (#1775)
Packaging & Distribution
- DDN INFINIA plugin bundled in manylinux wheels: The published manylinux wheels are built on the public PyPA
manylinux_2_28base and now bundle the DDN INFINIA plugin (libplugin_INFINIA.so) by default — meson auto-detects the DDNred_clientlibraries at/opt/ddn/redand compiles the plugin into the wheel. The proprietary DDNlibred_*runtime libraries are intentionally not vendored (they remainauditwheel --excluded) and are loaded at runtime from the customer's DDN install. (#1832) - Wire
--torch-versionsthrough the container build:contrib/Dockerfilegained aWHL_TORCH_VERSIONSbuild arg (default2.11,2.12,2.13) that is forwarded tocontrib/build-wheel.shvia--torch-versionswhenBUILD_NIXL_EP=true, fixing EP container builds that previously failed with--build-nixl-ep requires --torch-versions. The EP meson target'soverride_optionswere also extended to['buildtype=release', 'optimization=3', 'debug=false']so a global--buildtype=debugno longer leaks-Gonto the EPnvcccompiles. (#1866)
Bugfixes
- [POSIX/CUDA GDS/GDS MT/HF3FS] Fixed path-mode double-free and leak on deregister: Introduced a shared
nixl::PathModeDevIdRegistrywith RAII reserve/commit/release semantics so each path-mode file'sdevIdis tracked fromregisterMemthroughderegisterMem, eliminating the ambiguous section-key collision that could free the same backend metadata twice when distinct path-mode files shared adevId. Fixes #1766. (#1790)
Known Issues
Full Changelog: 1.3.0...1.3.1