安装HCCL-Controller
HCCL-Controller配合Volcano、Ascend Device Plugin(启动参数volcanoType设置为true)一起使用,按照训练任务章节下各训练框架“创建yaml文件”章节中获取的训练任务yaml模板下发NPU训练任务时,会默认生成格式为“模板一”的昇腾AI处理器资源配置文件(即Rank table文件)。模板格式详见《CANN TensorFlow 1.15网络模型迁移和训练指南》中“手工迁移和训练 > 分布式并行训练 > 准备昇腾AI处理器资源配置文件 > 模板一”。
前提条件
已完成安装前准备,具体操作请参见安装前准备。
操作步骤
- 以root用户登录K8s管理节点,并执行以下命令,查看HCCL-Controller镜像和版本号是否正确。
docker images | grep hccl-controller
- 将HCCL-Controller软件包解压目录(以“/home/ascend-hccl-controller”为例)下的yaml文件拷贝到K8s管理节点上任意目录(以“/home/ascend-hccl-controller”为例)。如果HCCL-Controller软件包在K8s管理节点上解压,可以不用进行拷贝操作。
cd /home/ascend-hccl-controller scp root@{软件包解压节点IP地址}:/home/ascend-hccl-controller/hccl-controller-*.yaml ./
- 由于K8s自带的ServerAccount的token文件会挂载到物理机上,有暴露风险,可通过外部导入加密的KubeConfig文件替换ServerAccount进行安全加固。根据kubectl相关指导,参考hccl-controller-{version}.yaml中ClusterRole配置的资源权限,自行生成KubeConfig文件并导入(也可以参见导入KubeConfig文件制作、导入KubeConfig文件)。
- 如不修改组件启动参数,可跳过本步骤。否则,请根据实际情况修改对应启动yaml文件中HCCL-Controller的启动参数。启动参数请参见表1,可执行./hccl-controller -h查看参数说明。
- 执行以下命令,启动HCCL-Controller。
- 如果导入了KubeConfig证书,执行如下命令。
kubectl apply -f hccl-controller-without-token-{version}.yaml
- 如果没有导入KubeConfig证书,执行如下命令。
kubectl apply -f hccl-controller-{version}.yaml
启动示例如下所示:
root@ubuntu:/home/ascend-hccl-controller# kubectl apply -f hccl-controller-without-token-v3.0.RC3.yaml deployment.apps/hccl-controller created root@ubuntu:/home/ascend-hccl-controller# kubectl get pod -n mindx-dl NAME READY STATUS RESTARTS AGE ... hccl-controller-5d484dcc68-wfvrr 1/1 Running 0 11s ...
- 如果导入了KubeConfig证书,执行如下命令。
参数说明
参数 |
类型 |
默认值 |
说明 |
---|---|---|---|
-jobParallelism |
int |
1 |
job任务的并发数。范围:[1,32]。 |
-podParallelism |
int |
1 |
pod任务的并发数。范围:[1,32]。 |
-version |
bool |
false |
HCCL-Controller二进制版本号。 |
-json |
string |
v2 |
HCCL-Controller生成的ranktable文件模板。
|
-logLevel |
int |
0 |
日志级别:
|
-maxAge |
int |
7 |
日志备份时间限制,范围:[7, 700],单位:天。 |
-logFile |
string |
/var/log/mindx-dl/hccl-controller/hccl-controller.log |
日志文件。
说明:
单个日志文件超过20 MB时会触发自动转储功能,文件大小上限不支持修改。 |
-maxBackups |
int |
30 |
转储后日志文件保留个数上限,范围:(0,30],单位:个。 |
-kubeConfig |
string |
/etc/mindx-dl/hccl-controller/.config/config6 |
默认为导入的加密kubeConfig文件路径,也可支持用户自定义路径下的kubeConfig文件,如果默认路径不存在配置文件,才启用InClusterConfig。
说明:
该文件必须使用证书导入工具进行加密,不支持明文文件。 |
-h |
无 |
不涉及 |
显示帮助信息 |