Proxy-trace profiler plugin
This shared library implements the former built-in ProxyTrace feature as an
NCCL/RCCL profiler v6 plugin (ncclProfiler_v6; descriptor includes RCCL proxy-trace fields). RCCL records proxy diagnostics through the
profiler API (ncclProfileProxyDiag); this plugin stores the same maps and
dump format as the legacy implementation.
Build
cd plugins/profiler/proxytrace
make
Requires libfmt development headers (fmt/format.h) and a C++17 compiler. The
plugin does not use plugins/profiler/example/; minimal NCCL plugin types live
in proxytrace_plugin_shim.h next to the source.
Output: librccl-profiler-proxytrace.so
Usage
Option A — explicit plugin path
export NCCL_PROFILER_PLUGIN=/path/to/librccl-profiler-proxytrace.so
Option B — RCCL auto-load (same directory as librccl)
export RCCL_ENABLE_PROXY_TRACE=1
# RCCL tries to dlopen dirname(librccl)/librccl-profiler-proxytrace.so when
# NCCL_PROFILER_PLUGIN is unset.
Option C — short name (requires libnccl-profiler-proxytrace.so on LD_LIBRARY_PATH)
export NCCL_PROFILER_PLUGIN=proxytrace
Copy or symlink librccl-profiler-proxytrace.so to libnccl-profiler-proxytrace.so
if you rely on this naming convention.
Dump
On communicator destroy, RCCL calls ncclProfilerProxyTraceDump if exported by
the loaded profiler library. ncclCommDump uses the same hook.