hip-tests: skip peer-device graph test when hipErrorNotSupported - #8671
Conversation
❌ PR Check — Action Required
📖 Need help? See the Policy FAQ for details on every check and how to fix failures. |
|
🚫 Please fix the failed policies before requesting reviews. The following policy checks failed:
The |
There was a problem hiding this comment.
Pull request overview
Updates the HIP graph memcpy 1D functional test to avoid reporting a hard failure on platforms where multi-device graph instantiation is not supported, by converting a specific instantiation failure into a test skip.
Changes:
- Replaces unconditional
HIP_CHECK(hipGraphInstantiate(...))with an explicit return-code check. - On
hipErrorNotSupported, performs cleanup and skips the test instead of failing.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
hipGraphInstantiate returns hipErrorNotSupported (801) for multi-device graphs on both classic and segmented scheduling paths. When peer access is available but multi-device graph instantiation is not yet supported, skip the section rather than failing. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
8122f41 to
d23f19c
Compare
hipErrorNotSupported (#8671) ## Motivation On systems where `hipDeviceCanAccessPeer` returns true (e.g., gfx1250 with AIFM fabric), `Unit_hipGraphAddMemcpyNode1D_Functional`'s peer device section proceeds to call `hipGraphInstantiate`, which fails with `hipErrorNotSupported` (error 801) because multi-device graphs are not yet supported on either the classic or segmented graph scheduling paths in CLR. The test hard-fails rather than skipping, producing a misleading failure on otherwise healthy systems. ## Technical Details In `validateMemcpyNode1DArray`, replace the unconditional `HIP_CHECK(hipGraphInstantiate(...))` in the peer device path with an explicit return-code check. When `hipGraphInstantiate` returns `hipErrorNotSupported`, clean up allocated resources and call `SKIP()` (Catch2 v3.3+) instead of failing. All other error codes continue through `HIP_CHECK` as before. The root cause is a known CLR limitation documented in both `GraphExecClassic::Init()` and `GraphExecSegmented::FindStreamsReqPerDevForSegments()`: [hipGraph] Multi-device graph is not supported on the segment scheduling path The fix is test-side only. `validateMemcpyNode1DArray` is `static` and called from exactly three SECTION blocks within a single test case; the new code path triggers only on `hipErrorNotSupported`, leaving the single-device sections unaffected. ## JIRA ID ROCM-28108 ## Test Plan Rebuilt `GraphsTest1` from the patched source on a gfx1250 system with AIFM fabric active (4 GPUs, all ACCEL_STATE: READY), with PRs #8254 and #8534 applied to CLR/ROCr. Ran with AMD_COMGR_HOTSWAP_ENTRY_TRAMPOLINES=1 HSA_ENABLE_SDMA=1, all 4 GPUs visible. ## Test Result Test | Before | After [rocm-systems] ROCm/rocm-systems#8671 (commit 54bfe63)
Motivation
On systems where
hipDeviceCanAccessPeerreturns true (e.g., gfx1250 with AIFMfabric),
Unit_hipGraphAddMemcpyNode1D_Functional's peer device section proceedsto call
hipGraphInstantiate, which fails withhipErrorNotSupported(error 801)because multi-device graphs are not yet supported on either the classic or segmented
graph scheduling paths in CLR. The test hard-fails rather than skipping, producing
a misleading failure on otherwise healthy systems.
Technical Details
In
validateMemcpyNode1DArray, replace the unconditionalHIP_CHECK(hipGraphInstantiate(...))in the peer device path with an explicitreturn-code check. When
hipGraphInstantiatereturnshipErrorNotSupported, cleanup allocated resources and call
SKIP()(Catch2 v3.3+) instead of failing. Allother error codes continue through
HIP_CHECKas before.The root cause is a known CLR limitation documented in both
GraphExecClassic::Init()andGraphExecSegmented::FindStreamsReqPerDevForSegments():[hipGraph] Multi-device graph is not supported on the segment scheduling path
The fix is test-side only.
validateMemcpyNode1DArrayisstaticand called fromexactly three SECTION blocks within a single test case; the new code path triggers
only on
hipErrorNotSupported, leaving the single-device sections unaffected.JIRA ID
ROCM-28108
Test Plan
Rebuilt
GraphsTest1from the patched source on a gfx1250 system with AIFM fabricactive (4 GPUs, all ACCEL_STATE: READY), with PRs #8254 and #8534 applied to
CLR/ROCr. Ran with AMD_COMGR_HOTSWAP_ENTRY_TRAMPOLINES=1 HSA_ENABLE_SDMA=1,
all 4 GPUs visible.
Test Result
Submission Checklist