什么是VGPU?
vGPU,即真正意义上的GPU虚拟化方案,就是将一块GPU卡的计算能力进行切片,分成多个逻辑上虚拟的GPU,以vGPU为单位分配GPU的计算能力,
并将单块GPU卡分配给多台虚拟机使用,使得虚拟机能够运行3D软件、播放高清视频等,极大地提升了用户体验。真正实现了GPU资源的按需分配,
实现3D虚拟化的全场景交付。同时大大降低图形图像用户的使用成本以及提高数据的处理效率和数据安全性
用户角度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 等。
容器虚拟化不会有虚拟机那么多的限制
具体操作分为三个步骤将分为三篇文章讲解:
step1物理机显卡直通虚拟机 传送门:
step2安装K8S 传送门:
step3安装GPU-manager、测试全流程 传送门:gpu-manager安装步骤超详细
最后的效果:
步骤一效果:直通之后虚拟机执行命令:nvidia-smi、的效果
步骤三效果:kubectl describe node
步骤三效果:测试结果:nvidia-smi pmon -s u -d 1