这就是典型的GPU共享场景,可以利用GPU虚拟化技术将测试环境资源进行池化,技术方案有很多:
1、硬件厂商方案,可以根据GPU厂商选择厂商提供方案,如Nvidia vGPU,AMD MxGPU,intel GVT-g,后两家都已经开源
2、采用头部云厂商方案,如阿里云 cGPU、 腾讯云 qGPU、 Vmware Bitfusion等
3、第三方厂商,如OrionX
以上方案都支持算力和显存切分,不过都依赖厂商方案,如果用K8S的开源插件,只能实现按卡粒度的分配,看是否满足要求
在模型推理的场景,如果没有GPU管理功能的K8S云平台支持,一个模型实例需要占用一张GPU卡。为了提高并行度,我们的经验是使用NVidia的Triton技术来实现一卡多实例的模型部署。
收起英伟达vGPU和Operator插件在hypervisor和k8s平台均可以实现GPU的切分和多卡复用的能力,具体可以参考Overview — NVIDIA Cloud Native Technologies documentation
目前这两个组件都已经包含到NVAIE软件套件中。
在非训练场景下,如果测试环境只有少量的GPU卡,可以考虑以下几种方式进行GPU资源的复用:
需要注意的是,GPU资源的复用需要考虑任务之间的相互影响和冲突,避免不同任务之间的竞争和干扰,影响测试结果的准确性和可靠性。因此,在进行GPU资源复用时,需要对任务进行合理规划和调度,确保任务之间的协调和平衡。