Repository navigation
Conversation
New rccl-UnitTestsMicroProfiler binary covering src/plugin/profiler.cc (plugin load/unload, the event start/stop/record wrappers and the KernelCh profiler thread) and the profiler_v1..v7.cc adapters, against a fake plugin behind test-local plugin-open and dlsym seams. Pins six production bugs as observed: a failed plugin init() is unloaded twice, 256-channel collectives are advertised with 0 channels, p2p KernelCh posts alias channels >= 64 onto c % 64, the v4 adapter never copies p2p.nChannels, the v5 adapter drops the group-API states, and the v1 adapter reports AlltoAll/Gather/Scatter as Send and bf16/fp8 as Float64. Co-Authored-By: Claude <noreply@anthropic.com>
✅ All Policy Checks Passed
📖 Need help? See the Policy FAQ for details on every check and how to fix failures. |
The p2p post test now asserts only channels below 64 (the post loop shift is undefined above), and the v4 test that read the uninitialised p2p.nChannels is dropped. Co-Authored-By: Claude <noreply@anthropic.com>
|
@argus review |
There was a problem hiding this comment.
ARGUS
Findings
5 more finding(s), not posted inline
projects/rccl/test/host/profiler-test.cc:2136(Low) A failing ASSERT here leaves localchildin live_, so TearDown destroys a freed comm and onStart spins on dead localsprojects/rccl/test/host/profiler-test.cc:495(Low) Asserted 'Successfully loaded ... proxytrace.so' log depends on use-after-scope of soPath in profiler.ccprojects/rccl/test/host/profiler-test.cc:572(Low) Tests pinning known bugs carry only a // Bug: comment, no KnownBug_ prefix or tracking IDprojects/rccl/test/host/profiler-test.cc:2165(Low) ProfilerThread_AbortWhileIdle_Exits passes with the abort check removed, since Destroy sets stop and joins anywayprojects/rccl/test/host/profiler-v5-test.cc:290(Low) v4/v5 tests pin 'dropped event leaves *eHandle untouched', an adapter inconsistency rather than a contract
This PR changes 4,147 lines across 14 files. A change this size is hard to review
well, for a person and for this bot alike: reviewers lose the thread, defects hide in the
volume, and the feedback arrives too late to be cheap to act on. Splitting it into a
stacked pull request
gives each piece a reviewable diff and keeps the history. This review covers the whole change
regardless.
Bottom line: LGTM once profiler-test.cc:2215 waits for Inflight == 1 instead of reading it once right after the stop-count wait.
Comment @argus review to re-run, or @argus re-review after pushing.
Wait for the inflight count after the stops instead of reading it once, keep child comms and the blocking callback alive through TearDown, drop the proxy-trace success-log check (profiler.cc reads soPath after its scope ends), drop the idle-abort test that the stop path already covered, stop asserting the v4/v5 dropped-event handle, and name the bug-pinning tests KnownBug_. Co-Authored-By: Claude <noreply@anthropic.com>
|
@argus re-review |
There was a problem hiding this comment.
ARGUS
This PR changes 4,133 lines across 14 files. A change this size is hard to review
well, for a person and for this bot alike: reviewers lose the thread, defects hide in the
volume, and the feedback arrives too late to be cheap to act on. Splitting it into a
stacked pull request
gives each piece a reviewable diff and keeps the history. This review covers the whole change
regardless.
Bottom line: LGTM.
Comment @argus review to re-run, or @argus re-review after pushing.
…comrccl-2818-profiler-host-microtests # Conflicts: # projects/rccl/test/host/MICROTEST_README.md # projects/rccl/test/host/run_host_tests.sh # projects/rccl/tools/scripts/test_runner/configs/ci-precheckin.json # projects/rccl/tools/scripts/test_runner/lib/test_executor.py
|
@argus review |
There was a problem hiding this comment.
ARGUS
This PR changes 4,133 lines across 14 files. A change this size is hard to review
well, for a person and for this bot alike: reviewers lose the thread, defects hide in the
volume, and the feedback arrives too late to be cheap to act on. Splitting it into a
stacked pull request
gives each piece a reviewable diff and keeps the history. This review covers the whole change
regardless.
Bottom line: LGTM.
Comment @argus review to re-run, or @argus re-review after pushing.
…one-line pin comments Co-Authored-By: Claude <noreply@anthropic.com>
|
@argus review |
There was a problem hiding this comment.
ARGUS
This PR changes 4,130 lines across 14 files. A change this size is hard to review
well, for a person and for this bot alike: reviewers lose the thread, defects hide in the
volume, and the feedback arrives too late to be cheap to act on. Splitting it into a
stacked pull request
gives each piece a reviewable diff and keeps the history. This review covers the whole change
regardless.
Bottom line: LGTM.
Comment @argus review to re-run, or @argus re-review after pushing.
…comrccl-2818-profiler-host-microtests # Conflicts: # projects/rccl/test/host/MICROTEST_README.md
|
@argus review |
There was a problem hiding this comment.
ARGUS
This PR changes 4,168 lines across 14 files. A change this size is hard to review
well, for a person and for this bot alike: reviewers lose the thread, defects hide in the
volume, and the feedback arrives too late to be cheap to act on. Splitting it into a
stacked pull request
gives each piece a reviewable diff and keeps the history. This review covers the whole change
regardless.
Bottom line: LGTM.
Comment @argus review to re-run, or @argus re-review after pushing.
…comrccl-2818-profiler-host-microtests # Conflicts: # projects/rccl/test/host/MICROTEST_README.md # projects/rccl/tools/scripts/test_runner/lib/test_executor.py
|
@argus review |
There was a problem hiding this comment.
ARGUS
This PR changes 4,158 lines across 14 files. A change this size is hard to review
well, for a person and for this bot alike: reviewers lose the thread, defects hide in the
volume, and the feedback arrives too late to be cheap to act on. Splitting it into a
stacked pull request
gives each piece a reviewable diff and keeps the history. This review covers the whole change
regardless.
Bottom line: LGTM.
Comment @argus review to re-run, or @argus re-review after pushing.
JIRA ID: AICOMRCCL-2818
What
rccl-UnitTestsMicroProfiler(137 tests) forsrc/plugin/profiler.cc: plugin load/unload, event start/stop/record wrappers, the KernelCh profiler thread.profiler_v1..v7.ccadapters.How
ncclOpenProfilerPluginLib,ncclOsDlsym,dlsym/dladdr, logging, env); the hipified units are#included.init()unloads twice, closing the lib under a live comm;1ull << cfor c up to MAXCHANNELS; the v4 adapter never copiesp2p.nChannelsinto its uninitialised descriptor; withRCCL_ENABLE_PROXY_TRACE=1the plugin name logged after load points at an out-of-scopesoPath.Coverage
profiler.cc 1147/1159 lines (the 12 misses are an allocation-failure path
ncclMemoryPoolAlloccan't reach), profiler_v1..v7.cc 100% each.Mutation Testing
72/72 killed (54 in profiler.cc, 18 across the adapters).
Test Plan
All 137 pass in Debug and Release (-O3) standalone builds, and
--gtest_shuffle --gtest_repeat=20is clean in both.