Files
rocm-systems/tools/scripts/test_runner/configs/rccl_perf_tests.json
T
Atul Kulkarni 0c2c61d2f1 Adds Python-based test runner for RCCL (#2034)
* Added python test runner to execute rccl tests

* Disabled capture output to avoid hangs

* Add RCCL_TEST_MPI_HOSTFILE env var to get the hostfile

* Converted test_type to boolean gtest flag

* Removed unused return values

* Added custom rccl library usage

* Removed json output

* Updates to test_runner: added num_gpus field

* Address review comments

* Prepend env vars for single node, single process executions

* Added separate enums for exit and result codes

* Update configuration files

* Moved configurations to its own dir

* Address review comments

* Update tools/scripts/test_runner/README.md

Co-authored-by: Corey Derochie <161367113+corey-derochie-amd@users.noreply.github.com>

---------

Co-authored-by: Corey Derochie <161367113+corey-derochie-amd@users.noreply.github.com>
2026-01-08 10:04:41 -06:00

459 строки
14 KiB
JSON

{
"system_configurations": {
"name": "RCCL-Performance-Benchmarks",
"description": "RCCL Performance Test Suite - All Collective Operations"
},
"paths": {
"workdir": "${WORKDIR:-/path/to/rccl}",
"rocm_path": "${ROCM_PATH:-/opt/rocm}",
"mpi_path": "${MPI_PATH:-/opt/ompi}",
"test_binary_dir": "${RCCL_TEST_BIN_DIR}"
},
"env_variables": {
"HSA_NO_SCRATCH_RECLAIM": "1",
"NCCL_DEBUG": "WARN"
},
"build_configuration": {
"cmake_options": {
"CMAKE_BUILD_TYPE": "Release",
"ENABLE_CODE_COVERAGE": "OFF",
"BUILD_TESTS": "ON",
"BUILD_LOCAL_GPU_TARGET_ONLY": "ON",
"TRACE": "OFF",
"COLLTRACE": "OFF"
},
"env_variables": {
"HIPCC_COMPILE_FLAGS_APPEND": "-O3"
},
"parallel_jobs": 64,
"generator": "Unix Makefiles"
},
"test_configurations": {
"perf_base": {
"is_gtest": false,
"num_ranks": 8,
"num_nodes": 1,
"timeout": 300,
"env_variables": {
"NCCL_LAUNCH_MODE": "GROUP"
}
},
"allreduce_perf": {
"extends": "perf_base",
"binary": "all_reduce_perf",
"tests": [
{
"name": "AllReduce_Perf_SmallMessages",
"description": "AllReduce bandwidth test for small messages (8B - 8KB)",
"command_args": "-b 8 -e 8K -f 2 -g 1"
},
{
"name": "AllReduce_Perf_MediumMessages",
"description": "AllReduce bandwidth test for medium messages (16KB - 1MB)",
"command_args": "-b 16K -e 1M -f 2 -g 1"
},
{
"name": "AllReduce_Perf_LargeMessages",
"description": "AllReduce bandwidth test for large messages (2MB - 128MB)",
"command_args": "-b 2M -e 128M -f 2 -g 1",
"timeout": 600
},
{
"name": "AllReduce_Perf_InPlace",
"description": "AllReduce in-place bandwidth test",
"command_args": "-b 8 -e 128M -f 2 -g 1 -c 1"
},
{
"name": "AllReduce_Perf_MultiGPU",
"description": "AllReduce test with all 8 GPUs",
"command_args": "-b 1M -e 128M -f 2 -g 8"
}
]
},
"allgather_perf": {
"extends": "perf_base",
"binary": "all_gather_perf",
"tests": [
{
"name": "AllGather_Perf_SmallMessages",
"description": "AllGather bandwidth test for small messages",
"command_args": "-b 8 -e 8K -f 2 -g 1"
},
{
"name": "AllGather_Perf_MediumMessages",
"description": "AllGather bandwidth test for medium messages",
"command_args": "-b 16K -e 1M -f 2 -g 1"
},
{
"name": "AllGather_Perf_LargeMessages",
"description": "AllGather bandwidth test for large messages",
"command_args": "-b 2M -e 128M -f 2 -g 1",
"timeout": 600
}
]
},
"broadcast_perf": {
"extends": "perf_base",
"binary": "broadcast_perf",
"tests": [
{
"name": "Broadcast_Perf_SmallMessages",
"description": "Broadcast bandwidth test for small messages",
"command_args": "-b 8 -e 8K -f 2 -g 1"
},
{
"name": "Broadcast_Perf_MediumMessages",
"description": "Broadcast bandwidth test for medium messages",
"command_args": "-b 16K -e 1M -f 2 -g 1"
},
{
"name": "Broadcast_Perf_LargeMessages",
"description": "Broadcast bandwidth test for large messages",
"command_args": "-b 2M -e 128M -f 2 -g 1",
"timeout": 600
}
]
},
"reduce_perf": {
"extends": "perf_base",
"binary": "reduce_perf",
"tests": [
{
"name": "Reduce_Perf_SmallMessages",
"description": "Reduce bandwidth test for small messages",
"command_args": "-b 8 -e 8K -f 2 -g 1"
},
{
"name": "Reduce_Perf_MediumMessages",
"description": "Reduce bandwidth test for medium messages",
"command_args": "-b 16K -e 1M -f 2 -g 1"
},
{
"name": "Reduce_Perf_LargeMessages",
"description": "Reduce bandwidth test for large messages",
"command_args": "-b 2M -e 128M -f 2 -g 1",
"timeout": 600
}
]
},
"reducescatter_perf": {
"extends": "perf_base",
"binary": "reduce_scatter_perf",
"tests": [
{
"name": "ReduceScatter_Perf_SmallMessages",
"description": "ReduceScatter bandwidth test for small messages",
"command_args": "-b 8 -e 8K -f 2 -g 1"
},
{
"name": "ReduceScatter_Perf_MediumMessages",
"description": "ReduceScatter bandwidth test for medium messages",
"command_args": "-b 16K -e 1M -f 2 -g 1"
},
{
"name": "ReduceScatter_Perf_LargeMessages",
"description": "ReduceScatter bandwidth test for large messages",
"command_args": "-b 2M -e 128M -f 2 -g 1",
"timeout": 600
}
]
},
"alltoall_perf": {
"extends": "perf_base",
"binary": "alltoall_perf",
"tests": [
{
"name": "AllToAll_Perf_SmallMessages",
"description": "AllToAll bandwidth test for small messages",
"command_args": "-b 8 -e 8K -f 2 -g 1"
},
{
"name": "AllToAll_Perf_MediumMessages",
"description": "AllToAll bandwidth test for medium messages",
"command_args": "-b 16K -e 1M -f 2 -g 1"
},
{
"name": "AllToAll_Perf_LargeMessages",
"description": "AllToAll bandwidth test for large messages",
"command_args": "-b 2M -e 64M -f 2 -g 1",
"timeout": 600
}
]
},
"sendrecv_perf": {
"extends": "perf_base",
"binary": "sendrecv_perf",
"num_ranks": 2,
"tests": [
{
"name": "SendRecv_Perf_SmallMessages",
"description": "SendRecv bandwidth test for small messages",
"command_args": "-b 8 -e 8K -f 2 -g 1"
},
{
"name": "SendRecv_Perf_MediumMessages",
"description": "SendRecv bandwidth test for medium messages",
"command_args": "-b 16K -e 1M -f 2 -g 1"
},
{
"name": "SendRecv_Perf_LargeMessages",
"description": "SendRecv bandwidth test for large messages",
"command_args": "-b 2M -e 128M -f 2 -g 1",
"timeout": 600
},
{
"name": "SendRecv_Perf_Latency",
"description": "SendRecv latency test",
"command_args": "-b 8 -e 8 -f 1 -g 1 -n 1000"
}
]
},
"allreduce_multinode": {
"extends": "perf_base",
"binary": "all_reduce_perf",
"num_ranks": 16,
"num_nodes": 2,
"timeout": 600,
"env_variables": {
"NCCL_IB_DISABLE": "0",
"NCCL_NET_GDR_LEVEL": "5",
"NCCL_SOCKET_IFNAME": "eth0,eth1"
},
"tests": [
{
"name": "AllReduce_MultiNode_SmallMessages",
"description": "Multi-node AllReduce test for small messages",
"command_args": "-b 8 -e 8K -f 2 -g 1"
},
{
"name": "AllReduce_MultiNode_MediumMessages",
"description": "Multi-node AllReduce test for medium messages",
"command_args": "-b 16K -e 1M -f 2 -g 1"
},
{
"name": "AllReduce_MultiNode_LargeMessages",
"description": "Multi-node AllReduce test for large messages",
"command_args": "-b 2M -e 128M -f 2 -g 1",
"timeout": 900
},
{
"name": "AllReduce_MultiNode_MaxBandwidth",
"description": "Multi-node AllReduce maximum bandwidth test",
"command_args": "-b 128M -e 2G -f 2 -g 8",
"timeout": 1200
}
]
},
"scatter_gather_perf": {
"extends": "perf_base",
"binary": "scatter_perf",
"tests": [
{
"name": "Scatter_Perf_SmallMessages",
"description": "Scatter bandwidth test for small messages",
"command_args": "-b 8 -e 8K -f 2 -g 1"
},
{
"name": "Scatter_Perf_MediumMessages",
"description": "Scatter bandwidth test for medium messages",
"command_args": "-b 16K -e 1M -f 2 -g 1"
},
{
"name": "Scatter_Perf_LargeMessages",
"description": "Scatter bandwidth test for large messages",
"command_args": "-b 2M -e 64M -f 2 -g 1"
}
]
},
"gather_perf": {
"extends": "perf_base",
"binary": "gather_perf",
"tests": [
{
"name": "Gather_Perf_SmallMessages",
"description": "Gather bandwidth test for small messages",
"command_args": "-b 8 -e 8K -f 2 -g 1"
},
{
"name": "Gather_Perf_MediumMessages",
"description": "Gather bandwidth test for medium messages",
"command_args": "-b 16K -e 1M -f 2 -g 1"
},
{
"name": "Gather_Perf_LargeMessages",
"description": "Gather bandwidth test for large messages",
"command_args": "-b 2M -e 64M -f 2 -g 1"
}
]
},
"allreduce_algos": {
"extends": "perf_base",
"binary": "all_reduce_perf",
"num_ranks": 8,
"tests": [
{
"name": "AllReduce_Ring_Algorithm",
"description": "AllReduce using Ring algorithm",
"command_args": "-b 1M -e 128M -f 2 -g 1",
"env_variables": {
"NCCL_ALGO": "Ring"
}
},
{
"name": "AllReduce_Tree_Algorithm",
"description": "AllReduce using Tree algorithm",
"command_args": "-b 1M -e 128M -f 2 -g 1",
"env_variables": {
"NCCL_ALGO": "Tree"
}
},
{
"name": "AllReduce_CollNetDirect",
"description": "AllReduce using CollNet Direct",
"command_args": "-b 1M -e 128M -f 2 -g 1",
"env_variables": {
"NCCL_ALGO": "CollNetDirect"
}
}
]
},
"allreduce_protocols": {
"extends": "perf_base",
"binary": "all_reduce_perf",
"num_ranks": 8,
"tests": [
{
"name": "AllReduce_SimpleProtocol",
"description": "AllReduce using Simple protocol",
"command_args": "-b 1M -e 128M -f 2 -g 1",
"env_variables": {
"NCCL_PROTO": "Simple"
}
},
{
"name": "AllReduce_LL_Protocol",
"description": "AllReduce using LL (Low Latency) protocol",
"command_args": "-b 1M -e 128M -f 2 -g 1",
"env_variables": {
"NCCL_PROTO": "LL"
}
},
{
"name": "AllReduce_LL128_Protocol",
"description": "AllReduce using LL128 protocol",
"command_args": "-b 1M -e 128M -f 2 -g 1",
"env_variables": {
"NCCL_PROTO": "LL128"
}
}
]
},
"stress_tests": {
"extends": "perf_base",
"binary": "all_reduce_perf",
"num_ranks": 8,
"timeout": 1800,
"tests": [
{
"name": "AllReduce_Stress_LongDuration",
"description": "Long duration AllReduce stress test",
"command_args": "-b 1M -e 128M -f 2 -g 8 -n 10000"
},
{
"name": "AllReduce_Stress_MaxSize",
"description": "Maximum message size stress test",
"command_args": "-b 1G -e 2G -f 2 -g 8",
"timeout": 2400
},
{
"name": "AllReduce_Stress_AllSizes",
"description": "All message sizes comprehensive test",
"command_args": "-b 8 -e 2G -f 2 -g 8 -n 100",
"timeout": 3600
}
]
}
},
"test_suites": [
{
"name": "AllReduce Performance Tests",
"description": "AllReduce collective bandwidth and latency benchmarks",
"config": "allreduce_perf",
"enabled": true
},
{
"name": "AllGather Performance Tests",
"description": "AllGather collective bandwidth benchmarks",
"config": "allgather_perf",
"enabled": true
},
{
"name": "Broadcast Performance Tests",
"description": "Broadcast collective bandwidth benchmarks",
"config": "broadcast_perf",
"enabled": true
},
{
"name": "Reduce Performance Tests",
"description": "Reduce collective bandwidth benchmarks",
"config": "reduce_perf",
"enabled": true
},
{
"name": "ReduceScatter Performance Tests",
"description": "ReduceScatter collective bandwidth benchmarks",
"config": "reducescatter_perf",
"enabled": true
},
{
"name": "AllToAll Performance Tests",
"description": "AllToAll collective bandwidth benchmarks",
"config": "alltoall_perf",
"enabled": true
},
{
"name": "SendRecv Performance Tests",
"description": "Point-to-point SendRecv bandwidth and latency benchmarks",
"config": "sendrecv_perf",
"enabled": true
},
{
"name": "Scatter Performance Tests",
"description": "Scatter collective bandwidth benchmarks",
"config": "scatter_gather_perf",
"enabled": false
},
{
"name": "Gather Performance Tests",
"description": "Gather collective bandwidth benchmarks",
"config": "gather_perf",
"enabled": false
},
{
"name": "AllReduce Multi-Node Tests",
"description": "Multi-node AllReduce performance tests (requires 2+ nodes)",
"config": "allreduce_multinode",
"enabled": false
},
{
"name": "AllReduce Algorithm Comparison",
"description": "Compare different AllReduce algorithms (Ring, Tree, CollNet)",
"config": "allreduce_algos",
"enabled": false
},
{
"name": "AllReduce Protocol Comparison",
"description": "Compare different protocols (Simple, LL, LL128)",
"config": "allreduce_protocols",
"enabled": false
},
{
"name": "Stress Tests",
"description": "Long duration and maximum size stress tests",
"config": "stress_tests",
"enabled": false
}
]
}