hccl.json文件说明

MindCluster HCCL Controller将在训练启动的时,为训练任务生成集合通信所需的RankTable File文件。集合通信根据RankTable File文件中的设备ID以及IP构建集合通信域,完成集合通信的信息交换。

使用MindCluster HCCL Controller时需要在创建任务时,同时在训练yaml中创建名称为rings-config-<任务名>ConfigMap,并将该ConfigMap挂载进训练容器的“/user/serverid/devindex/config”路径下。MindCluster HCCL Controller将根据MindCluster Ascend Device Plugin在任务Pod中写的Annotation信息,构建出任务的集合通信文件RankTable File,并将其内容写入ConfigMap中,在训练容器中映射为“/user/serverid/devindex/config/hccl.json”文件。hccl.json文件示例如下:

hccl.json:
----
{
    "status": "completed",  // MindCluster HCCL Controller是否写入完成
    "server_list": [{    // 服务器列表
        "device": [{   // NPU列表
            "device_id": "1",  // NPU的设备ID
            "device_ip": "192.168.101.xx",   // NPU的设备IP
            "rank_id": "0" // NPU对应的训练rank id
        }, {
            "device_id": "2",
            "device_ip": "192.168.102.xx",
            "rank_id": "1"
        }, {
            "device_id": "3",
            "device_ip": "192.168.103.xx",
            "rank_id": "2"
        }, {
...
        }]
    }]
    "server_count": "1",   // 任务总服务器数量
    "version": "1.0"
}