Fix example_jacobi_mpi import crash with public wp.Device (GH-1577)#1588
Open
aryanputta wants to merge 1 commit into
Open
Fix example_jacobi_mpi import crash with public wp.Device (GH-1577)#1588aryanputta wants to merge 1 commit into
aryanputta wants to merge 1 commit into
Conversation
) The MPI Jacobi example annotated calc_default_device() with wp.context.Device, but warp no longer exposes a public 'context' attribute, so the annotation is evaluated at function-definition time and raises AttributeError at import, before any MPI or GPU work. Use the public wp.Device type, which is re-exported from warp/__init__.py. Signed-off-by: Aryan Putta <aryansputta@gmail.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yml Review profile: CHILL Plan: Enterprise Run ID: 📒 Files selected for processing (2)
📝 WalkthroughWalkthroughThe Jacobi MPI example now annotates ChangesJacobi MPI import fix
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~2 minutes 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Closes #1577.
warp/examples/distributed/example_jacobi_mpi.pycrashes at import, before any MPI or GPU work:The return annotation references
wp.context.Device, but Warp no longer exposes a publiccontextattribute (Deviceis re-exported at the top level fromwarp/__init__.py). Because the file does not usefrom __future__ import annotations, the annotation is evaluated at function-definition time and the missing attribute aborts the import.Changes
calc_default_device()with the publicwp.Devicetype instead of the non-publicwp.context.Device.### FixedCHANGELOG entry underUnreleased.This follows the project guideline to import from
warpin public-facing code rather thanwarp._src(wp.Deviceiswarp._src.context.Devicere-exported).Checklist
Unreleasedsection.Validation summary
Verified against the installed Warp public API that the fix is correct and the original is broken:
python -c "import warp as wp; print(wp.Device); print(hasattr(wp, 'context'))"prints<class 'warp._src.context.Device'>andFalse, confirmingwp.Deviceresolves andwp.contextdoes not exist (the source of the AttributeError).wp.contextappeared only on line 38; no other references remain after the change.Full
mpirunexecution needs a CUDA-aware MPI build and multiple GPUs, which is out of scope for this import-time annotation fix.Bug fix
Reproduce without this PR (any platform, no GPU needed):
Summary by CodeRabbit