README.md 2.32 KB
Newer Older
wh1225's avatar
wh1225 committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
# RCCL Auto-Tuning

自动化 RCCL 性能调优工具,通过测试不同算法和协议组合,自动选择最优配置并修改 RCCL 源码。

## 简介

RCCL (ROCm Communication Collectives Library) 是 AMD 为 GPU 提供的标准集合通信库,实现了 all-reduce、all-gather、reduce、broadcast、reduce-scatter、gather、scatter 和 all-to-all 等通信原语。本项目通过自动化测试和性能分析,为特定硬件配置和通信模式找到最优的算法和协议组合,并自动修改 RCCL 源码以应用这些优化。

## 参考链接

- [RCCL-DTK-25.04 官方仓库](http://112.11.119.99:10068/dcutoolkit/deeplearing/rccl)
- [RCCL-Tests 官方仓库](https://github.com/ROCm/rccl-tests)
- [RCCL 官方文档](https://rocm.docs.amd.com/projects/rccl/en/latest/)

## 项目结构

```
rccl-auto-tuning/
├── rccl-dtk-25.04/          # RCCL 通信库源代码
├── rccl-test/               # RCCL 性能测试程序
└── scripts/                 # 自动化调优脚本
    ├── run.sh               # 主运行脚本
    ├── single_process.sh    # 单进程执行脚本
    ├── panduan.py           # 性能分析脚本
    ├── parse_qz_and_modify_tuning.py  # 自动修改 tuning.cc
    ├── hosts                # 主机列表配置
    └── topo-input.xml       # 拓扑配置文件
    └── shuju.txt            # 测试数据集结果
    └── qz.txt               # 记录可优化数据
```
## 环境要求

### 硬件要求
- ROCm 支持的 AMD GPU
- 支持 PCIe、xGMI 或 InfiniBand 互连的多 GPU 系统

### 软件要求
- ROCm 软件栈 (包含 HIP runtime 和 HIP-Clang)
## 快速开始

### 1. 克隆仓库

```bash
git clone http://developer.sourcefind.cn/codes/wh1225/rccl-auto-tuning.git
cd rccl-auto-tuning
```

### 2. 编译 RCCL

```bash
cd rccl-dtk-25.04
rm -rf build
mkdir build
cd build
CXX=hipcc cmake ..
make -j
```

### 3. 编译 RCCL-Test

```bash
cd rccl-test
make MPI=1
```

编译完成后,测试程序会生成在 `rccl-test/build/` 目录下。

## 使用方法

### 1. 配置主机列表

编辑 `scripts/hosts` 文件,添加你的计算节点:

```
node1
node2
node3
```

### 2. 运行自动调优

```bash
cd scripts
./run.sh hosts 1
```

## 输出文件

- `shuju.txt`: 原始性能测试数据
- `qz.txt`: 性能分析结果和优化建议