FlagCX 环境变量#
本文档提供 FlagCX 中使用的所有环境变量的综合参考。
目录#
调试与日志#
变量 |
默认值 |
描述 |
|---|---|---|
|
无 |
设置调试日志级别。可选值:VERSION、WARN、INFO、ABORT、TRACE |
|
INIT,ENV |
逗号分隔的调试子系统列表。使用 ^ 前缀进行反转。可选值:INIT、COLL、P2P、SHM、NET、GRAPH、TUNING、ENV、ALLOC、CALL、PROXY、NVLS、BOOTSTRAP、REG、ALL |
|
stdout |
调试日志输出文件。支持 %h(主机名)、%p(进程ID)占位符 |
|
0 |
设置为 1 时,在警告上启用扩展调试信息 |
|
0 |
设置为 1 时,启用设置线程名称以便调试 |
通信模式#
变量 |
默认值 |
描述 |
|---|---|---|
|
0 |
设置为 1 时,使用主机通信模式 |
|
0 |
设置为 1 时,启用 uniRunner 模式 |
|
无 |
指定用于 bootstrap 的通信 ID。设置后,rank 0 将创建根节点 |
|
无 |
覆盖用于主机哈希的主机标识符字符串 |
|
无 |
逗号分隔的集群拆分计数列表(如 2,4,8),启用 hybridRunner 模式 |
缓冲区与内存#
变量 |
默认值 |
描述 |
|---|---|---|
|
67108864 (64MB) |
网络缓冲区大小(字节) |
|
4194304 (4MB) |
网络分块大小(字节) |
|
67108864 (64MB) |
P2P 缓冲区大小(字节) |
|
16777216 (16MB) |
P2P 分块大小(字节) |
|
32 |
信号量缓冲池容量 |
|
128 |
内核 FIFO 容量 |
|
128 |
Reduce 操作 FIFO 容量 |
|
0 |
设置为 1 时,启用通过设备适配器进行内存分配 |
|
0 |
设置为 1 时,启用内存注册的 DMA-BUF 支持 |
代理与运行时#
变量 |
默认值 |
描述 |
|---|---|---|
|
0 |
设置为 1 时,启用运行时代理模式 |
|
8 |
进度循环中追加操作的频率 |
|
0 |
设置为 1 时,禁用 P2P 传输 |
|
0 |
设置为 1 时,禁用 P2P 调度优化 |
|
无 |
异步内核加载的设备函数库路径 |
|
256 |
RMA 代理线程的每个对等节点环形缓冲区深度。必须是 2 的幂 |
|
256 |
在单个 |
P2P 引擎配置#
变量 |
默认值 |
描述 |
|---|---|---|
|
4 |
每个 P2P 连接的 QP 连接数 |
|
4 |
每个池的工作线程数 |
|
8 |
负载分片的分片数 |
|
4096 |
完成队列深度 |
|
256 |
每次 post 的最大工作请求数 |
|
256 |
最大未完成请求数 |
|
64 |
完成轮询的批量大小 |
|
1073741824 (1GB) |
大传输的分片大小 |
|
4096 (4KB) |
分片的片段限制 |
|
4 |
最大分散/聚集元素数 |
|
64 |
最大内联数据大小 |
|
1 |
InfiniBand 端口号 |
|
-1 |
RoCE 的 GID 索引(-1 = 自动检测) |
|
4096 |
IB 传输的 MTU 大小 |
|
-1 |
IB 流量类别(-1 = 关闭) |
|
7 |
失败操作的重试次数 |
|
64 |
最大通知对等节点数 |
|
0 |
设置为 1 时,启用目标设备亲和性 |
注意:这些变量用于配置 FlagCX P2P 引擎以支持单边 RDMA 操作,主要用于与 NIXL 等传输框架集成。
拓扑配置#
变量 |
默认值 |
描述 |
|---|---|---|
|
无 |
网络/GPU 拓扑的 XML 拓扑文件路径 |
|
无 |
将发现的拓扑导出为 XML 的路径 |
|
无 |
服务器间路由配置文件路径 |
|
0 |
设置为 1 时,禁用拓扑检测 |
调优器配置#
变量 |
默认值 |
描述 |
|---|---|---|
|
0 |
设置为 1 时,启用内部调优器 |
|
无 |
从配置列表中指定要使用的通信器标签 |
|
5 |
调优器搜索的循环次数(最少 5 次) |
|
无 |
当前调优器配置 ID(用于 FlagScale 调优) |
|
无 |
最佳调优器配置 ID(用于 FlagScale 调优) |
|
无 |
调优完成时设置为 1(由系统设置) |
|
无 |
调优文件路径 |
|
无 |
调优组索引 |
|
0 |
设置为 1 时,启用与 FlagScale 一起调优 |
|
0 |
设置为 1 时,使用单个通信器进行调优(注意:无 FLAGCX_ 前缀) |
HybridRunner 配置#
变量 |
默认值 |
描述 |
|---|---|---|
|
Sequential |
C2C 算法选择。可选值:RING_PIPELINED、XML_INPUT |
|
无 |
导出算法 XML 文件的目录路径 |
|
无 |
导出的算法 XML 文件的前缀 |
|
无 |
导入算法 XML 文件的目录路径 |
|
无 |
导入的算法 XML 文件的前缀 |
|
无 |
C2C 算法搜索的粒度 |
UniRunner 配置#
变量 |
默认值 |
描述 |
|---|---|---|
|
1024 |
P2P 事件池大小 |
|
1 |
uniRunner 的分片数 |
|
32 |
uniRunner 每个块的线程数 |
|
1 |
uniRunner 的块数 |
|
0 |
设置为 1 时,在 uniRunner 中使用本地归约 |
|
0 |
设置为 1 时,在 uniRunner 中使用环形 allgather |
|
0 |
设置为 1 时,在 uniRunner 中使用分片 allreduce |
|
0 |
uniRunner 的归约分片数(0 = 自动) |
|
65536 |
uniRunner 的归约分片大小(字节) |
网络配置#
InfiniBand (IB) 设置#
变量 |
默认值 |
描述 |
|---|---|---|
|
0 |
设置为 1 时,禁用 InfiniBand |
|
无 |
指定要使用的 IB HCA 设备 |
|
-1 |
RoCE 的 GID 索引。-1 表示自动检测 |
|
2 |
使用的 RoCE 版本号 |
|
18 |
IB 超时值(指数级,实际超时 = 4.096us * 2^值) |
|
7 |
IB 重试次数 |
|
0 |
IB 分区键索引 |
|
0 |
设置为 1 时,为小消息启用内联数据 |
|
0 |
IB 服务级别 |
|
0 |
IB 流量类别 |
|
8192 |
启用自适应路由的阈值(字节) |
|
2 |
PCI 宽松排序模式。0=关闭、1=开启、2=自动 |
|
-2 |
自适应路由设置。-2=自动、-1=关闭、0+=开启并使用该值 |
|
1 |
设置为 1 时,合并虚拟功能 |
|
1 |
设置为 1 时,将多个网卡合并为一个逻辑设备 |
|
1 |
每个连接的队列对数量 |
|
0 |
设置为 1 时,在 QP 间分割数据 |
|
无 |
IB 地址族。可选值:AF_IB、AF_INET、AF_INET6 |
|
无 |
IB 连接的 IP 地址范围 |
|
0 |
设置为 1 时,禁用 GDR 刷新操作 |
|
0 |
设置为 1 时,为 IBUC 在 QP 间分割数据 |
IB 重传#
变量 |
默认值 |
描述 |
|---|---|---|
|
0 |
设置为 1 时,启用软件重传 |
|
5000 |
最小 RTO 超时(微秒) |
|
10 |
最大重传重试次数 |
|
16 |
重传的 ACK 间隔 |
|
16 |
最大未完成请求数 |
Socket 网络#
变量 |
默认值 |
描述 |
|---|---|---|
|
自动 |
Socket 地址族。可选值:AF_INET(IPv4)、AF_INET6(IPv6) |
|
自动 |
要使用的网络接口名称。使用 ^ 前缀排除,= 精确匹配 |
|
-2 |
每个线程的 socket 数量(-2=自动) |
|
-2 |
socket 线程数量(-2=自动) |
|
0 |
设置为 1 时,强制使用 socket 网络而非 IB |
UCX 网络#
变量 |
默认值 |
描述 |
|---|---|---|
|
0 |
设置为 1 时,禁用 UCX 网络 |
|
无 |
要使用的 UCX 传输层。如果未设置,则回退到 UCX_TLS |
|
1 |
设置为 1 时,禁用 UCX CUDA 支持 |
Gloo 网络#
变量 |
默认值 |
描述 |
|---|---|---|
|
0 |
设置为 1 时,为 Gloo 传输禁用 IB |
插件配置#
变量 |
默认值 |
描述 |
|---|---|---|
|
无 |
设备适配器插件共享库路径 |
|
无 |
网络适配器插件共享库路径 |
|
无 |
CCL 适配器插件共享库路径 |
其他#
变量 |
默认值 |
描述 |
|---|---|---|
|
0 |
(已注释)设置为 1 时,忽略 CPU 亲和性 |
注意事项#
布尔变量通常使用 0 表示假/禁用,1 表示真/启用
默认值为 -2 的变量通常表示"自动检测"行为
使用 FLAGCX_PARAM 宏时,FLAGCX_ 前缀会自动添加到变量名
某些变量可能仅在初始化时生效
调试日志会显著影响性能;在生产环境中请谨慎使用