Repository navigation
[libcu++] Skip fabric status decoding when a shared_memory_barrier wait has no report - #12131
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info
📝 Summary
Priority: ➖ Normal Change: Bug fix · Severity of issue fixed: Medium Merge Risk: ⚪ Minimal · up to
|
…report operation_status::get_error_count() and for_each_error() called the device-side fabric status decoder even when the completed wait produced no report. On a GeForce RTX 5070 Ti (sm_120) with driver 617.42 (CUDA 13.4), cudaFabricOpErrorStatusCount() returns cudaErrorNotSupported, so __verify_fabric_status() trapped although there was nothing to decode. Return 0 without calling the decoder when there is no report.
a2fd7ec to
c9b0e2a
Compare
|
/ok to test c9b0e2a |
@pciolkosz, there was an error processing your request: See the following link for more information: https://docs.gha-runners.nvidia.com/cpr/e/2/ |
pciolkosz
left a comment
There was a problem hiding this comment.
Good catch! I think I assumed someone would call has_report() first, but I think doesn't hurt to check it again in the status checks
|
/ok to test c9b0e2a |
This comment has been minimized.
This comment has been minimized.
|
/ok to test d95ea5e |
This comment has been minimized.
This comment has been minimized.
|
/ok to test 8936c00 |
🥳 CI Workflow Results🟩 Finished in 1h 52m: Pass: 100%/228 | Total: 3d 05h | Max: 1h 51m | Hits: 99%/629481See results here. |
|
Successfully created backport PR for |
…report (#12131) (#12228) operation_status::get_error_count() and for_each_error() called the device-side fabric status decoder even when the completed wait produced no report. On a GeForce RTX 5070 Ti (sm_120) with driver 617.42 (CUDA 13.4), cudaFabricOpErrorStatusCount() returns cudaErrorNotSupported, so __verify_fabric_status() trapped although there was nothing to decode. Return 0 without calling the decoder when there is no report. (cherry picked from commit 4811a1c) Co-authored-by: Ilya Koryaev <ilyakoryaev@yandex.ru> Co-authored-by: SUKUNA-AI <180781973+SUKUNA-AI@users.noreply.github.com> Co-authored-by: pciolkosz <pciolkosz@nvidia.com>
Description
closes #12130
operation_status::get_error_count()andfor_each_error()called the device-side fabric status decoder even when the completed wait produced no report. On a GeForce RTX 5070 Ti (sm_120) with driver 617.42 (CUDA 13.4),cudaFabricOpErrorStatusCount()returnscudaErrorNotSupported, so__verify_fabric_status()trapped although there was nothing to decode.With this change,
__error_count()returns 0 without calling the decoder when there is no report. When a report is present nothing changes:classify()(which requires a report) and the decoding of real error reports still go through the driver.Testing (local RTX 5070 Ti, CUDA 13.4, WSL2, gcc 16):
shared_memory_barrier.pass.cppun-waived locally, the test fails before this change and passes after it.cuda/barrierlit tests pass.Missing waiton this test both before and after the change. A plain inline-PTX kernel gets the same report as soon as its mbarrier is initialized withlayout::v1(clean with layout v0), so this looks like a compute-sanitizer 2026.3 issue that is unrelated to this change.The test stays waived in this PR: as described in #11935, older CI drivers cannot load its module.
Checklist
shared_memory_barrier.pass.cpp, still waived in CI because of Add CUDA Forward Compatibility package to our CI runners to allow testing new CUDA features #11935.)