提示:文章分为三部分:物理GPU绑定虚拟机、k8s安装、gpu-manager虚拟化实现与测试
前言
用户角度GPU虚拟化分为两部分:
1,虚拟机层面:将 GPU 硬件设备分割成很多虚拟 GPU 并映射到虚机里面,如 NVIDIA vGPU。
虚拟机层面目前只能购买NVIDIA的vgpu license,没有更好的方式,如果想做这个层面的建议乖乖买,因为逆向化的太多的不确定性,针对不同的GPU型号,最新架构的还不支持
想了解这个层面的更详细文章推荐:https://www.zhihu.com/people/lai-zi-hai-jing-42/posts
2,容器层面:容器的本质还是进程,通过对驱动的某些关键接口进行封装劫持从而达到限制进程资源的目的,国内大部分做的都是这个层面的,配置写到yaml里,如qGPU 和 cGPU 等。
容器虚拟化不会有虚拟机那么多的限制
一、什么是VGPU?
vGPU,即真正意义上的GPU虚拟化方案,就是将一块GPU卡的计算能力进行切片,分成多个逻辑上虚拟的GPU,以vGPU为单位分配GPU的计算能力,
并将单块GPU卡分配给多台虚拟机使用,使得虚拟机能够运行3D软件、播放高清视频等,极大地提升了用户体验。真正实现了GPU资源的按需分配,
实现3D虚拟化的全场景交付。同时大大降低图形图像用户的使用成本以及提高数据的处理效率和数据安全性
二、此文件会拆分成三部分:
1.物理机显卡直通虚拟机
2.安装K8S
3.安装GPU-manager、测试全流程
总结
从技术调研最早打算实现一个物理机多个虚拟机如下图【1】,发现目前没有较好的开源解决方案,只能购买nvida的license,所以只能放弃这个方案,改为容器层面的虚拟机化
容器层面虚拟化: