摘要:使用GPU运行容器化深度学习模型训练任务,性能往往受限于数据加载和预处理效率。很多GPU计算资源浪费在等待从远程存储服务读取数据的过程中。首先介绍了基于容器和分布式缓存技术加速深度学习训练的方法,以及使用Alluxio和Kubernetes实现的系统架构和初步优化手段;然后阐述了TDCS及其训练任务与缓存数据互感知的协同调度策略;接着在Kubernetes容器集群中实现了TDCS,增强了分布式缓存加速大规模深度学习训练的可扩展性;最后用ResNet50图像分类模型训练任务进行性能验证。实验结果表明,相较于直接从远程存储服务中读取数据,TDCS可对运行在128块NVIDIA V100 GPU设备上的分布式训练任务实现2~3倍加速。
关键词:深度学习 ; 分布式缓存 ; 协同调度 ; Alluxio ; 容器
1 引言
最近10年,深度学习技术和应用发展风起云涌,百花齐放。尤其在机器视觉、自然语言理解、语音识别等领域,一大批成熟的人工智能模型和服务正落地应用于各行各业。越来越多的行业发掘出大量需求,需要利用企业日积月累的海量业务数据,高效便捷地训练深度学习和机器学习模型。
与此同时,云计算在IaaS、PaaS和SaaS等层次已经发展得相当成熟,并逐步进入云原生时代。在云原生技术体系中,以Docker为代表的Linux容器技术和以Kubernetes为代表的容器编排管理技术在应用开发、交付、运维的生命周期中逐渐成为业界的事实标准。同时,应用微服务架构的自动化部署,运行时动态弹性伸缩,完善的日志、监控、告警等运维体系等,都成为现代软件开发运维的基础需求。
深度学习和人工智能应用往往需要使用大量GPU、张量处理器