摘要
深度学习 (DL) 作业使用多维并行性,即结合数据、模型和流水线并行性,以高效地利用大型 GPU 集群。长时间运行的作业可能会遇到其 GPU 分配的变化:(i) 训练期间的资源弹性会添加或删除 GPU;(ii) 硬件维护可能需要在不同的 GPU 上重新部署;以及 (iii) GPU 故障迫使作业使用更少的设备运行。当前的 DL 框架将作业绑定到一组 GPU,因此缺乏对这些场景的支持。特别是,它们无法以高效且与模型无关的方式更改已运行作业的多维并行性。
我们描述了 Scalai,一个用于 DL 系统的状态管理库,它使作业能够在运行时更新 GPU 分配后动态更改其并行性。Scalai 通过一种新的抽象,可并行张量集合 (PTC),来实现这一点,该集合在训练期间将作业状态外部化。在 GPU 更改后,Scalai 使用 PTC 来转换作业状态:PTC 在数据并行性下重新分配数据集状态,并通过虚拟文件系统将其公开给 DL 工作器;并且 PTC 获取模型状态作为分区的检查点,并将其转换为反映新的并行化配置。为了提高效率,Scalai 与工作器之间的数据移动最少,并行执行 PTC 转换。我们的实验表明,Scalai 使 DL 作业能够以低开销支持动态并行化。