HCCL_BUFFSIZE

功能描述

此环境变量用于控制两个NPU之间共享数据的缓存区大小。单位为M,取值需要大于等于1,默认值是200M。

集合通信网络中,每一个HCCL通信域都会占用HCCL_BUFFSIZE大小的缓存区。若集群网络中存在较多的HCCL通信域,此缓存区占用量就会增多,可能存在影响模型数据正常存放的风险,此种场景下,可通过此环境变量减少通信域占用的缓存区大小;若业务的模型数据量较小,但通信数据量较大,则可通过此环境变量增大HCCL通信域占用的缓存区大小,提升数据通信效率。

大语言模型(LLM,Large Language Model)中的建议配置值如下,向上取整。

其中Micro Batch Size为每张卡上的Batch Size,Sequence Length为序列长度,Hidden Size为模型隐藏层的维度,Size of Data Type为当前模型数据类型所占的内存大小。

此环境变量一般用于以下场景:
  • 动态shape网络场景
  • 开发人员调用集合通信库HCCL的C语言接口进行框架对接的场景,HCCL库的C语言接口可参见集合通信接口参考
  • 该环境变量申请的内存为HCCL独占,不可与其他业务内存复用。
  • 每个通信域占用“2*HCCL_BUFFSIZE”大小的内存,分别用于收发内存。
  • 该资源按通信域粒度管理,每个通信域独占一组“2*HCCL_BUFFSIZE”大小的内存,保证多通信域并发算子互不影响。

配置示例

export HCCL_BUFFSIZE=200

使用场景

当业务部署内存不足时,根据功能描述中的配置策略配置,小于配置策略会导致通信性能下降。