-
Notifications
You must be signed in to change notification settings - Fork 61
[wip] ADD ishmem support #2411
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
[wip] ADD ishmem support #2411
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR adds ISHMEM (Intel Shared Memory) support as an alternative backend for XPU symmetric memory operations alongside the existing XPU backend. The implementation provides memory allocation, rendezvous operations, and barrier synchronization using the ISHMEM library for Intel XPU devices.
Key Changes
- Added ISHMEM-based symmetric memory allocator and implementation classes
- Created CMake configuration to conditionally link ISHMEM library when available
- Added utility classes for IPC channel communication and store-based coordination
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| src/xccl/XPUSymmetricMemoryUtils.hpp | Introduces utility classes (IpcChannel, StoreExchange) and backend selection function for XPU symmetric memory |
| src/xccl/ISHMEMSymmetricMemory.cpp | Implements ISHMEM-based symmetric memory allocator and memory management classes |
| src/BuildOnLinux.cmake | Conditionally links ISHMEM library when enabled |
| cmake/Modules/FindISHMEM.cmake | CMake module to locate ISHMEM installation |
| cmake/ISHMEM.cmake | Sets up ISHMEM as an imported CMake target |
| CMakeLists.txt | Integrates ISHMEM configuration into the build system |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| if (val.has_value()) { | ||
| TORCH_CHECK( | ||
| val.value() == "XPU" || val.value() == "ISHMEM", | ||
| "TORCH_SYMMMEM environment variable must be one of 'XPU', 'ISHMEM'.") |
Copilot
AI
Nov 26, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Missing semicolon at the end of the TORCH_CHECK statement on line 21.
| "TORCH_SYMMMEM environment variable must be one of 'XPU', 'ISHMEM'.") | |
| "TORCH_SYMMMEM environment variable must be one of 'XPU', 'ISHMEM'."); |
|
|
||
| include(${TORCH_XPU_OPS_ROOT}/cmake/SYCL.cmake) | ||
| include(${TORCH_XPU_OPS_ROOT}/cmake/ONEMKL.cmake) | ||
| include(${TORCH_XPU_OPS_ROOT}/cmake/BuildFlags.cmake) |
Copilot
AI
Nov 26, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The removal of set_build_flags() call appears unrelated to ISHMEM support. This should either be restored or explained in the PR description as an intentional refactoring.
| include(${TORCH_XPU_OPS_ROOT}/cmake/BuildFlags.cmake) | |
| include(${TORCH_XPU_OPS_ROOT}/cmake/BuildFlags.cmake) | |
| set_build_flags() |
dad77a9 to
120e3c3
Compare
No description provided.