Ascend Operator/HCCL Controller
应用场景
各个分布式训练进程需要集合通信参数的输入,用来协作完成分布式任务。
- (推荐)MindCluster集群调度提供Ascend Operator组件,输入集合通信所需的主进程IP,当前pod的rankId等信息。
- MindCluster集群调度提供HCCL Controller组件,输入静态组网集合通信所需的ranktable信息。
HCCL Controller和Ascend Operator的区别如下:
- HCCL Controller:通过配置文件设置资源信息。
该组件用于昇腾AI处理器训练任务的组件,利用K8s的informer机制,持续记录训练任务及其Pod的各种事件,并读取Pod的昇腾AI处理器信息,生成对应的configmap。该configmap包含了训练任务所依赖的集合通讯配置,方便训练任务更好地协同和调度底层的昇腾AI处理器,无需用户手动配置。
- Ascend Operator:通过环境变量设置资源信息。
该组件支持MindSpore、PyTorch、TensorFlow三个AI框架在Kubernetes上进行分布式训练的插件,CRD(Custom Resource Definition)中定义了AscendJob任务,用户只需配置yaml文件,即可以为不同AI框架的分布式训练任务提供相应的环境变量。
- HCCL Controller:通过配置文件设置资源信息。
Ascend Operator组件功能
- 创建pod,并将集合通信参数按照环境变量的方式注入。
- 创建ranktable文件,并按照共享存储的方式挂载到容器,优化集合通信建链性能。
Ascend Operator组件上下游依赖
图1 Ascend Operator

- 通过Ascend for Volcano感知当前任务是所需资源是否满足。
- 资源满足后,针对任务创建对应的pod并注入集合通信参数的环境变量。
- pod创建完成后,Ascend for Volcano进行资源的最终选定。
- 从Ascend Device Plugin获取任务的芯片编号、IP、rankId信息,汇总后生成集合通信文件。
- 通过共享存储,将集合通信文件挂载到容器内。
HCCL Controller组件功能
创建ranktable文件,并按照configmap隐射的方式挂载到容器,优化集合通信建链性能。
HCCL Controller组件上下游依赖
图2 Hccl-Controller

- 从Ascend Device Plugin获取任务的芯片编号、IP、rankId信息,汇总后生成集合通信文件。
- 通过configmap映射的方式,将集合通信文件挂载到容器中。
父主题: 组件介绍