昇腾社区首页
中文
注册
开发者
下载

拓扑模型

背景

在实现通信算子时,由于以下两种原因,需要在控制面提供拓扑查询相关接口:

  • 算子控制面实现需要为数据面创建Channel,那不同rank是否互连,以及通过哪些Endpoint互连,是创建Channel必备的信息,所以需要提供拓扑查询相关控制面接口。
  • 不同集群可能具有不同的连接关系,算子实现的性能好坏与拓扑连接强相关。为了算子能够适配不同拓扑形态,且具有较好性能,需要感知拓扑连接关系。

因此,HCCL对通信域内不同rank间的连接关系进行拓扑建模,构成的拓扑图称之为rank graph,并提供了连接关系查询相关的控制面接口,具体见拓扑信息查询

拓扑模型介绍

HCCL使用传统节点与边的图(Graph)表达方式对拓扑建模。由于大规模AI集群一般会分级组建,比如一个服务器包含多个NPU互连,多台服务器组成一个Rack或SuperNode等。因此HCCL在图表达的基础上增加了拓扑层级的抽象。

下图是一个拓扑模型示例,通过该示例介绍拓扑模型中的概念:

  • Node:图(Graph)中的节点,包含两种类型:
    1. 通信对象:在通信域中以rank ID标识的实体。
    2. Fabric:对网络交换/路由的抽象。
      1. Fabric只能与通信对象相连。
      2. Fabric可以是一个交换机,也可以是由多个交换机组成一套网络设施。
      3. 抽象为Fabric节点的网络设施需要满足条件:与它相连的通信对象两两之间都可以通过它互通。
  • Endpoint:一个Node的逻辑端口,一个Node可以包含一个或多个Endpoint。
  • Edge:图(Graph)中的边,表示不同Node之间的连接关系,Edge两端是两个Node的Endpoint。
  • Link:表示两个通信对象之间可以建链的信息,包含两端的Endpoint等。
  • 拓扑层级:实际网络拓扑存在分级情况,如下图所示,拓扑分为Layer 0和Layer 1两级,内部包含两个Layer 0拓扑;每一层级的网络拓扑具备自己的拓扑类型,比如Fullmesh、Clos等。
图1 拓扑模型