论软件定义GPU对AI数据中心优化的必要性
The following article is from 趋动科技 Author 陈飞
作者 | 陈飞
摘要:
今天AI数据中心为企业提供了深度学习开发、测试和生产所需的软硬件环境。然而,GPU作为高价值硬件,却并没有做到像SDN网络、分布式存储一样的数据中心级统一运维、管理和使用。这导致了GPU当前在数据中心的尴尬现状:利用率低、成本高、分配和管理困难。
彻底解决这些痛点的方法需要借鉴软件定义存储解决存储问题、软件定义网络解决网络问题、用软件定义算力来解决GPU问题。采用软件定义算力理念的GPU池化技术,站在整个数据中心的高度,以GPU虚拟化为基础,突破了传统GPU虚拟化技术只能支持GPU共享的限制,融合了GPU共享、聚合和远程使用等多种硬核能力,打造全能型软件定义GPU。通过把物理GPU抽象成类似于分布式存储,可以通过网络在数据中心内全局统一运维和管理、任意使用的抽象资源,GPU池化技术解决了当前用户的痛点。正如当年软件定义存储刚出现的时候,有一种观点认为软件定义存储性能不如硬件存储,不适合重要应用,GPU池化技术推动的软件定义GPU也遭遇了同样的认识误区,一些片面的观点认为GPU池化技术会引入性能损失,不适合于深度学习。从技术的发展来看,深度学习能够、也应该拥抱GPU池化技术,二者应互相配合,才能为用户提供更适合云的解决方案。
OrionX并非一个传统的GPU虚拟化软件。传统的GPU虚拟化只支持本地GPU共享,而OrionX可以把GPU当作像分布式存储那样作为全局统一运维、管理和使用的抽象资源,其能力是传统GPU虚拟化的超集,支持GPU共享、聚合和远程使用等多项硬核技术。 OrionX把物理GPU资源抽象成可以通过网络在数据中心内任意服务器都可以直接使用的通用资源,对软件保持近似于物理GPU的兼容性,支持常用的深度学习框架(TensorFlow, PyTorch,PaddlePaddle等),支持深度学习的训练/推理/未来更多计算模式,支持追求极致性能的手写CUDA代码的应用,可以充分利用成熟的深度学习的生态和社区力量。 OrionX支持开发、测试、生产各个环节,可以隔离,可以混合部署,保持统一使用模式,并且支持不同环节的不同优化策略。 OrionX支持本地共享/远程共享、本地独占/远程独占、跨物理节点多合一各种灵活的用法,支持动态配置资源,每一种功能都有实际对应的使用场景。 OrionX GPU资源池内的GPU算力即取即用,对其他上层软件保持资源管理的透明性,做到资源的有效利用。 OrionX对如何提供虚拟GPU,哪些底层细节需要隐藏,哪些真实参数需要暴露都有科学的考虑和设计,并留有丰富的接口和配置,允许平台层甚至应用层做定制化和优化,甚至二次开发,例如任务的排队、优先级的定义、亲和性等,甚至深度学习框架本身都可以利用OrionX GPU资源池提供的能力去做非常有用的优化。
训练任务
推理任务
Characterizing Deep LearningTraining Workloads on Alibaba-PAI,2019 IEEE International Symposium on Workload Characterization(IISWC)