杨志刚,吴俊敏,2a,,徐 恒,尹 燕
(1.中国科学技术大学 计算机科学与技术学院,合肥 230022;2.中国科学技术大学 a.苏州研究院; b.软件学院,江苏 苏州 215123)
由于GPU设备的特殊性,对GPU虚拟化的研究尚处于起步阶段。而且在分布式环境下,如何有效使用集群中所有的GPU资源成为一大难题。将GPU本身的并行加速计算与GPU虚拟化技术有效结合在一起,可以有效地调用远程计算机的GPU资源,甚至可以将分布式集群环境中的GPU资源集中起来,更好地提高计算效率。
深度神经网络的GPU加速是当下的研究热点。在多GPU上的加速方法一般有数据并行和模型并行,但是与单机多GPU相比,如何在多机多GPU上部署模型加速训练,除了单个GPU的加速之外,分布式环境中的通信和接口也是需要重点解决的问题。
本文针对分布式环境中的多机多GPU的深度神经网络训练的问题,提出一种基于虚拟化的远程GPU调用的解决方案,并将该方案与单机多GPU的情况进行对比,以分析其优缺点。
GPU虚拟化的实现比CPU要复杂。CPU处理器自带分时机制可以有效地实现上下文进程间的迅速切换,同时分时机制支持不同虚拟化CPU之间的进程切换。但是GPU本身并不支持分时机制,不能有效支持上下文之间的进程切换,而且在相同的时间段内只能单一地支持同一个任务。同时,GPU制造商如NVIDIA,闭源关于GPU的驱动源代码,因此,其驱动程序并不能由其他系统方案支持和控制,这也给GPU虚拟化造成很大的影响。迄今为止,GPU虚拟化还没有一套完善的处理方案。……