NIXL/EP/WHEEL: pack cu in diff namespace#1727
Conversation
|
👋 Hi ofirfarjun7! Thank you for contributing to ai-dynamo/nixl. Your PR reviewers will review your contribution then trigger the CI to test your changes. 🚀 |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughAdds a ChangesCUDA-versioned nixl_ep Meta-dispatcher and Packaging
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Poem
🚥 Pre-merge checks | ✅ 3 | ❌ 2❌ Failed checks (2 warnings)
✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@src/bindings/python/nixl-meta/nixl_ep/__init__.py`:
- Around line 43-51: The loop in
src/bindings/python/nixl-meta/nixl_ep/__init__.py currently only continues
probing on ModuleNotFoundError, so ImportError/OSError from a failed extension
load blocks trying the next backend; change the try/except in the for mod_name
loop around importlib.import_module(mod_name) to handle ModuleNotFoundError
specially (re-raise if e.name != mod_name, otherwise continue) but also catch
ImportError and OSError and treat them as non-fatal (log/ignore and continue to
the next mod_name), ensuring the code will try "nixl_ep_cu12" if "nixl_ep_cu13"
fails to load at import time.
- Around line 56-73: The code is hoisting every non-underscore name from
submodules and the backend (_pkg) into the nixl_ep package, changing export
semantics; fix by mirroring the backend's declared exports instead of
indiscriminately copying all names: read export lists (use getattr(_pkg,
"__all__", None) and for each submodule use getattr(module, "__all__", None)),
build a single __all__ for nixl_ep from those declared export lists (fall back
to an explicit whitelist if neither provides __all__), and only setattr names
that appear in that computed __all__; update the loops that currently iterate
over dir(module) and dir(_pkg) to iterate over the chosen export lists and avoid
overwriting existing attributes on sys.modules[__name__].
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro
Run ID: 283cb70a-9bc4-4510-bae4-09ee15ea4bac
📒 Files selected for processing (7)
examples/device/ep/meson.buildpyproject.tomlsrc/bindings/python/nixl-meta/meson.buildsrc/bindings/python/nixl-meta/nixl/meson.buildsrc/bindings/python/nixl-meta/nixl_ep/__init__.pysrc/bindings/python/nixl-meta/nixl_ep/meson.buildsrc/bindings/python/nixl-meta/pyproject.toml.in
|
/build |
|
/build |
What?
Take only CUDA related from #1646
Summary by CodeRabbit
New Features
Chores