Skip to content

v1.3.1

Choose a tag to compare

@nv-nmailhot nv-nmailhot released this 08 Jul 03:46
b20f4d0

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 devId required for path-mode FILE_SEG: Path-mode registrations that reuse an in-use devId are now rejected with NIXL_ERR_INVALID_PARAM. Fd-in-devId mode (non-path metaInfo) is unchanged — one file descriptor may still back multiple descriptors at different offsets. (#1790)

Enhancements

NIXL-EP Example Improvements

  • Multi-PyTorch nixl_ep wheels: The nixl_ep wheel 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 new contrib/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_28 base and now bundle the DDN INFINIA plugin (libplugin_INFINIA.so) by default — meson auto-detects the DDN red_client libraries at /opt/ddn/red and compiles the plugin into the wheel. The proprietary DDN libred_* runtime libraries are intentionally not vendored (they remain auditwheel --excluded) and are loaded at runtime from the customer's DDN install. (#1832)
  • Wire --torch-versions through the container build: contrib/Dockerfile gained a WHL_TORCH_VERSIONS build arg (default 2.11,2.12,2.13) that is forwarded to contrib/build-wheel.sh via --torch-versions when BUILD_NIXL_EP=true, fixing EP container builds that previously failed with --build-nixl-ep requires --torch-versions. The EP meson target's override_options were also extended to ['buildtype=release', 'optimization=3', 'debug=false'] so a global --buildtype=debug no longer leaks -G onto the EP nvcc compiles. (#1866)

Bugfixes

  • [POSIX/CUDA GDS/GDS MT/HF3FS] Fixed path-mode double-free and leak on deregister: Introduced a shared nixl::PathModeDevIdRegistry with RAII reserve/commit/release semantics so each path-mode file's devId is tracked from registerMem through deregisterMem, eliminating the ambiguous section-key collision that could free the same backend metadata twice when distinct path-mode files shared a devId. Fixes #1766. (#1790)

Known Issues

Full Changelog: 1.3.0...1.3.1