调整HCCL_BUFFSIZE,平衡通信内存使用量与通信性能

基本原理

环境变量HCCL_BUFFSIZE用于控制分布式业务场景下用于NPU之间通信的共享数据缓存区大小,单位为MB,默认值是200MB。

HCCL_BUFFSIZE 按照通信域粒度管理,即每个通信域拥有一份独立的数据共享缓冲区,保证通信域之间并发通信操作时的资源隔离。

参与集合通信的数据量按照 HCCL_BUFFSIZE 被切分为多段,数据从集合通信输入内存拷贝至 HCCL_BUFFSIZE后进行通信操作,完成后拷贝至集合通信输出内存。

使用场景

当模型部署完成后设备内存仍有余量,可以向上HCCL_BUFFSIZE获得性能提升;当设备内存不足以支撑模型部署时,可以向下调整 HCCL_BUFFSIZE,牺牲通信性能换取额外内存。

一般建议HCCL_BUFFSIZE配置值按照Tensor并行纬度通信数据量配置,为 2Byte*BatchSize * sequence length * hiddenSize。

操作步骤

按照环境变量配置方法即可。例如:

export HCCL_BUFFSIZE=128