Improvements for GB200 systems * Optimize the network performance by alternating the direction of the rings and the NIC to GPU assignment across communicators to limit unnecessary sharing. * Fix the detection of C2C links in case GPU Direct RDMA is disabled between a GPU and a NIC. * Fix PXN support on MNNVL systems, where NCCL would try (and fail) to share regular host memory across multiple nodes. * Fix P2C (PXN over C2C), which is now preferred over regular PXN. This support is currently preliminary and is disabled by default; use NCCL_PXN_C2C=1 to enable. Further reduce the overheads of CUDA graph capturing, which increased in NCCL 2.26.2 for large graphs. Optimize the network performance on DGX B200 systems by adjusting the bandwidths provided to the graph search algorithm. Enable fp8 reductions in symmetric kernels on Blackwell with CUDA 12.8. Restore the plugin name handling logic to make it possible to specify a path to the plugin (Issue #1732). Restore the ability to change NCCL_COLLNET_ENABLE during execution (Issue #1741). Add an example tuner plugin with CSV-based overrides. Remove an x86 dependency from the example profiler.
56 lines
1.4 KiB
Makefile
56 lines
1.4 KiB
Makefile
#
|
|
# Copyright (c) 2015-2019, NVIDIA CORPORATION. All rights reserved.
|
|
#
|
|
# See LICENSE.txt for license information
|
|
#
|
|
|
|
.DEFAULT_GOAL: build
|
|
PLUGIN_SO:=libnccl-tuner-example.so
|
|
include ../../makefiles/common.mk
|
|
SRCDIR ?= $(abspath ../..)
|
|
BUILDDIR ?= .
|
|
NCCLDIR := $(BUILDDIR)
|
|
|
|
SRC_FILES := $(wildcard *.c)
|
|
DST_DIR := $(BUILDDIR)/test/unit/plugins
|
|
|
|
default: ${BUILDDIR}/$(PLUGIN_SO)
|
|
|
|
build: ${BUILDDIR}/$(PLUGIN_SO)
|
|
|
|
${BUILDDIR}/$(PLUGIN_SO): plugin.c
|
|
@printf "Compiling %-35s > %s\n" $< $@
|
|
@mkdir -p ${BUILDDIR}
|
|
$(CC) -Inccl $(INC) -fPIC -shared -o $@ -Wl,-soname,$(PLUGIN_SO) $^
|
|
|
|
# Test targets - delegate to test directory
|
|
test:
|
|
$(MAKE) -C test test TEST_CASE=$(TEST_CASE)
|
|
|
|
test-verbose:
|
|
$(MAKE) -C test test-verbose TEST_CASE=$(TEST_CASE)
|
|
|
|
# Build tests
|
|
test-build:
|
|
$(MAKE) -C test all
|
|
|
|
# Optimize configurations from performance data
|
|
optimize-config:
|
|
@if [ -z "$(CSV_FILE)" ]; then \
|
|
echo "Usage: make optimize-config CSV_FILE=path/to/data.csv [OUTPUT=config.conf] [METRIC=latency_us]"; \
|
|
echo "Example: make optimize-config CSV_FILE=scripts/sample_performance_data.csv"; \
|
|
exit 1; \
|
|
fi
|
|
python3 scripts/optimize_config.py $(CSV_FILE) \
|
|
$(if $(OUTPUT),-o $(OUTPUT)) \
|
|
$(if $(METRIC),-m $(METRIC)) \
|
|
$(if $(SIZE_RANGES),--size-ranges $(SIZE_RANGES)) \
|
|
$(if $(DRY_RUN),--dry-run) \
|
|
$(if $(NO_HEADER),--no-header)
|
|
|
|
clean:
|
|
rm -f ${BUILDDIR}/$(PLUGIN_SO)
|
|
$(MAKE) -C test clean
|
|
|
|
.PHONY: test test-verbose test-build optimize-config clean
|