AI开发平台MODELARTS-预置框架启动文件的启动流程说明:Ascend-Powered-Engine框架启动原理
Ascend-Powered-Engine框架启动原理
在ModelArts算法建界面选择AI引擎时,能够看到一个叫做Ascend-Powered-Engine的AI引擎,它与其他AI引擎相比有些特别。它既不是一个AI框架(如:PyTorch、TensorFlow)也不是一个并行执行框架(如:MPI),而是适配加速芯片Ascend编译的一组AI框架+运行环境+启动方式的集合。
- 由于几乎所有的Ascend加速卡都跑在ARM规格的机器上,因此上层docker镜像也都是ARM镜像。
- 针对GPU场景的镜像中安装了对应版本的CUDA(由英伟达推出的统一计算架构)驱动,而Ascend-Powered-Engine引擎的镜像中都安装了与底层硬件版本适配的CANN(华为针对AI场景推出的异构计算架构)驱动。
提交训练作业后,ModelArts Standard平台会自动运行训练任务的启动文件;启动文件的运行次数取决于训练卡数。
单机作业时,每个任务内运行N次启动文件;N为任务的卡数;例如单机1卡,则worker-0任务的启动文件会被运行1次;单机8卡,worker-0任务的启动文件会被运行8次。因此需要避免在启动文件中进行端口监听。
启动文件会被设置如下环境变量:
- RANK_TABLE_FILE:rank table file (RTF) 文件路径
- ASCEND_DEVICE_ID:逻辑device_id,例如单卡训练,该值始终为 0
- RANK_ID:可以理解为训练作业级的device逻辑(顺序)编号
- RANK_SIZE:根据RTF中device的数目设置该值,例如4 * snt9b,该值即为4。
当需要启动文件仍然在逻辑上仅运行1次时,则可以在启动文件中判断“ASCEND_DEVICE_ID”的值,当值为“0”则执行逻辑,当值为非0则直接退出。
Ascend-Powered-Engine框架对应的代码示例mindspore-verification.py,请参见训练脚本mindspore-verification.py文件。
Ascend-Powered-Engine框架单机启动命令和分布式启动命令无区别。