Skip to content

Fix/libfabric plugin experiment - #13

Closed
wpower-work wants to merge 1 commit into
mainfrom
fix/libfabric-plugin-experiment
Closed

wpower-work wants to merge 1 commit into
mainfrom
fix/libfabric-plugin-experiment

Conversation

@wpower-work

Copy link
Copy Markdown

What?

This draft PR refactors the NIXL libfabric plugin to support Intel (Xe) GPUs. Note - this is a draft PR and will be used to do initial performance testing.

Why?

Support is needed for a new GPU vendor.

How?

  1. GPU specific functionality is moved into separate files (nfi_hmem.h/cpp) to make it easier to expand to additional vendor GPUs.
  2. Support for Intel (Xe) GPUs added.

@github-actions

Copy link
Copy Markdown

👋 Hi wpower-work! Thank you for contributing to intel-staging/nixl.

Your PR reviewers will review your contribution then trigger the CI to test your changes.

🚀

…MEM shim

Add Level Zero (Intel Xe) device memory support to the libfabric plugin and
nixlbench, moving GPU-vendor-specific code into separate utility files
(nfi_hmem, libfabric_accel). Squashed from four commits:

- Update libfabric plugin to support Intel GPUs; refactor GPU vendor specific
  code into separate utility files.
- Update .gitignore to include install-v2/.
- Fix libfabric test failures: handshake reply after a peer reconnects,
  default plugin directory missing in the build tree.
- Fix issues found in code review: handshakes deferred off the progress
  thread, accelerator bind checks, unclaimed-VRAM fallback, rail pairing,
  CUDA primary-context caching, nixlbench Level Zero device lookup.

Rebased onto main, integrating the upstream libfabric changes:

- AMD GPUs: an FI_HMEM_ROCR vendor in the HMEM shim (dlopen'd HIP runtime)
  replaces the hipify build step, so every vendor goes through one mechanism.
  AMD GPUs are detected through hwloc and take part in NIC grouping.
- CUDA dmabuf export per NIC: kept, keyed on the shim's iface and CUDA ordinal.
- Senders identified by source address: kept. disconnect() now unmaps the
  peer's source addresses, so a reconnect maps afresh instead of re-mapping.
- The shim's CUDA vendor is keyed on NIXL_HAVE_CUDA_DRIVER_API, not
  HAVE_CUDA, which ROCm builds also define.

RDMA writes over verbs;ofi_rxm need a libfabric whose rxm reports the source
address of remote-write completions (rxm_handle_remote_write() passed
FI_ADDR_NOTAVAIL); without it the receiver cannot attribute writes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@wpower-work
wpower-work force-pushed the fix/libfabric-plugin-experiment branch from 17c9523 to 8cccaf8 Compare October 23, 2026 00:03
@wpower-work
wpower-work deleted the fix/libfabric-plugin-experiment branch October 23, 2026 00:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant