
撰文 | 袁进辉
经常有人来问我:GPU虚拟化和分布式深度学习框架的异同,以及是不是用GPU虚拟化技术也可以解决现在超大规模深度学习模型的分布式训练难题。
这次不妨把我的观点简要总结并分享出来,只想知道结论的朋友只需看简短的答案:两者不是一回事,二者的思想是对立的,GPU虚拟化对解决分布式训练深度学习模型的难题没有任何作用(不谈负作用的话)。
想知道原因的读者请继续阅读下文。
1
GPU虚拟化
GPU虚拟化的主要出发点是,有些计算任务的颗粒度比较小,单个任务无法占满整颗GPU,如果为每一个这样的任务单独分配一颗GPU并让这个任务独占,就会造成浪费。因此,人们希望可以让多个细粒度的任务共享一颗物理的GPU,同时,又不想让这些任务因共享资源互相干扰,也就是希望实现隔离。
因此,GPU 虚拟化要实现“一分多”,也就是把一颗物理的GPU分成互相隔离的几个更小的虚拟GPU,也就是vGPU,每颗vGPU独立运行一个任务,从而实现多个任务共享一颗物理的GPU。

GPU虚拟化在推理任务中有需求,这是因为推理任务的负载取决于服务请求的多寡,在服务请求的低谷,推理需要的计算时有时无,多个不同的推理任务通过GPU虚拟化共享资源说的通。
在模型调试环节或教学环境,GPU虚拟化也有需求,算法工程师或学生每改一次代码就启动一次任务,这个任务或者因为错误很快就停止,或者被工程师杀死,不会持续的需要资源,如果每个人独占一颗GPU,势必造成浪费。因此,把一颗GPU虚拟化成多颗vGPU,大家轮流使用,这样比较经济划算。
一般来说,正式的深度学习训练任务计算量都比较大,唯恐资源不够,而不是发愁资源多余,因此GPU虚拟化在训练过程中不太需要。在正式训练中如果出现 GPU 利用率不高的时候,采

最低0.47元/天 解锁文章
932

被折叠的 条评论
为什么被折叠?



