任如意外的小茶馆

其他

如何在Kubernetes实现GPU调度及共享

概论近年来AI技术的繁荣和深化,尤其是深度学习的崛起,离不开海量数据和计算力的提升。尤其是对Nvidia的GPU的利用,让深度学习获得几十倍的性能提升,才彻底打开了AI想象空间。虽然智慧芯片近年来有着百花齐放的风景,最典型的例如Google的TPU,但是平心而论,从普惠意义和生态上,Nvidia的GPU仍然占有主导位置。不过,Nvidia的GPU无疑是昂贵的,所以如何最大化利用好GPU的硬件资源,是每一个算力平台型产品都要考虑的问题。比如,有多个用户使用GPU服务器进行训练时,如何保证资源合理的分配非常重要。得益于Nvidia公司为Docker写的Runtime,也就是Nvidia-Docker,使得在Docker里使用GPU成为可能。从容器粒度来管理和使用GPU要比从主机角度容易很多,因为运行GPU的AI任务通常配置非常复杂,这种复杂包括管理员从管理GPU卡的分配和使用者切换不同的训练环境,而容器可以封装不同的训练环境,很大程度上降低复杂性。此外,借助Kubernetes来管理Nvidia-Docker,使得GPU任务的分配更加简单和合理,目前已成为几乎所有主流的AI算力平台的方案。Kubernetes支持通过Device-Plugin的方式来增加对默认资源(CPU,Memory等)之外的设备支持,而第三方可以通过编写相应的Device-Plugin来增加对设备的支持。目前Nvidia也是通过这样的方式对GPU进行支持。K8s
2019年5月23日
其他

如何在Kubernetes实现GPU调度及共享

概论近年来AI技术的繁荣和深化,尤其是深度学习的崛起,离不开海量数据和计算力的提升。尤其是对Nvidia的GPU的利用,让深度学习获得几十倍的性能提升,才彻底打开了AI想象空间。虽然智慧芯片近年来有着百花齐放的风景,最典型的例如Google的TPU,但是平心而论,从普惠意义和生态上,Nvidia的GPU仍然占有主导位置。不过,Nvidia的GPU无疑是昂贵的,所以如何最大化利用好GPU的硬件资源,是每一个算力平台型产品都要考虑的问题。比如,有多个用户使用GPU服务器进行训练时,如何保证资源合理的分配非常重要。得益于Nvidia公司为Docker写的Runtime,也就是Nvidia-Docker,使得在Docker里使用GPU成为可能。从容器粒度来管理和使用GPU要比从主机角度容易很多,因为运行GPU的AI任务通常配置非常复杂,这种复杂包括管理员从管理GPU卡的分配和使用者切换不同的训练环境,而容器可以封装不同的训练环境,很大程度上降低复杂性。此外,借助Kubernetes来管理Nvidia-Docker,使得GPU任务的分配更加简单和合理,目前已成为几乎所有主流的AI算力平台的方案。Kubernetes支持通过Device-Plugin的方式来增加对默认资源(CPU,Memory等)之外的设备支持,而第三方可以通过编写相应的Device-Plugin来增加对设备的支持。目前Nvidia也是通过这样的方式对GPU进行支持。K8s
2019年5月23日