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

实现原理

  1. 集群调度组件定期上报节点和芯片信息;kubelet上报节点芯片数量到节点对象(node)中。
    • Ascend Device Plugin上报芯片内存和拓扑信息。

      对于包含片上内存的芯片,Ascend Device Plugin启动时上报芯片内存情况,详见node-label说明;上报整卡信息,将芯片的物理ID上报到device-info-cm中;可调度的芯片总数量(allocatable)、已使用的芯片数量(allocated)和芯片的基础信息(device ip和super_device_ip)上报到node中,用于整卡调度。

    • 当节点上存在故障时,NodeD定期上报节点健康状态、节点硬件故障信息、节点DPC共享存储故障信息到node-info-cm中。
  2. ClusterD读取device-info-cmnode-info-cm中的信息后,将信息整合到cluster-info-cm中。
  3. 用户通过kubectl或者其他深度学习平台下发AIBrix框架的StormSevice推理任务,aibrix-controller-manager根据推理任务的配置生成RoleSet或者PodSet的子工作负载,再由对应的子工作负载生成多个推理服务的任务Pod。关于RoleSet或者PodSet的详细说明,可以参见AIBrix文档
  4. volcano-controller为任务创建相应的PodGroup。关于PodGroup的详细说明,可以参见开源Volcano官方文档
  5. volcano-scheduler根据节点内存、CPU、标签及亲和性为Pod选择合适的节点,并在Pod的annotation上写入选择的芯片信息以及节点硬件信息。
  6. kubelet创建容器时,调用Ascend Device Plugin挂载芯片,Ascend Device Plugin或volcano-scheduler在Pod的annotation上写入芯片和节点硬件信息。Ascend Docker Runtime协助挂载相应资源。