首页 > 新闻中心 > Tanzu 学习系列|一文了解 TKG 如何使用 GPU 资源池

Tanzu 学习系列|一文了解 TKG 如何使用 GPU 资源池

来源:城信股份 2022-10-20

随着科技进步和产业变革的加速演进,人工智能(AI)已经成为兵家必争之地。在政府、学术机构、企业等各个层面,AI 都受到高度重视,其在学术研究、技术创新、人才教育等方面的发展都呈现全新发展态势。作为 AI 市场中的重要组成,以 GPU 技术为主的 AI 加速市场也得到了快速的发展,与此同时,由于 GPU 硬件价格昂贵,传统使用 GPU 算力的独占式使用方式缺乏灵活性和经济性,同时随着云原生技术的发展,细粒度,快速交付切分 GPU 算力需求,急需经济高效 GPU 算力池化方案。

VMware 作为虚拟化与云原生技术的领导者,在 GPU 算力资源池化领域也是一直处于领先地位,针对不同使用场景有对应的 GPU 资源池化方案。

前两种方案当前客户采用比较多,读者都比较熟悉,本文重点介绍 VMware vSphere Bitfusion GPU 池化方案。

VMware vSphere Bitfusion 是什么?

​VMware vSphere Bitfusion 是 vSphere 7 的一个强大功能,通过网络提供远程 GPU 池。Bitfusion 可虚拟化硬件加速器(例如图形处理单元 (GPU)),以提供可通过网络访问的共享资源池,从而支持人工智能 (AI) 和机器学习 (ML) 工作负载。Bitfusion 使得 GPU 可以像计算资源一样被抽象、分区、自动化和共享。帮助客户构建数据中心级 AI 算力资源池,使用户应用无需修改就能透明地共享和使用数据中心内任何服务器之上的 AI 加速器。

可以在裸机、虚拟机或容器中部署 vSphere Bitfusion 客户端,以便在数据中心环境中使用。通过 vcenter vSphere Bitfusion 可以监控网络中所有 GPU 服务器的运行状况、利用率、效率和可用性。此外,还可以监控客户端对 GPU 的使用情况并分配配额和时间限制。

vSphere Bitfusion 需要利用到 NVIDIA 的 CUDA 框架,CUDA 是 AI/ML 程序的开发运行框架,Bitfusion 主要是实现 CUDA 的远程调用。可与 TensorFlow 和 PyTorch 、TensorRT,PaddlePaddle 等人工智能框架配合使用。

Bitfusion Server 需要部署带有 GPU 卡的 vSphere ESXi 主机上,GPU 卡通过直通模式分配给 Bitfusion server ;

需要消费 GPU 资源的 AI/ML 应用和 TensorFlow 等框架等可以部署在 VM,物理机器,容器环境,同时安装 Bitfusion 客户端,Bitfusion 客户端通过低延迟网络实现 GPU 的远程切分调用;

Bitfusion server 和 Bitfusion 客户端之间的低延迟网络,建议与管理网络分开,可以支持 TCP/IP,RoCE 或 Infiniband。

VMware vSphere Bitfusion 与 kubernetes

在资源管理调度平台上,Kubernetes 已成为事实标准。所以很多客户选择在 Kubernetes 中使用 GPU 运行 AI 计算任务。Kubernetes 提供 device plugin 机制,可以让节点发现和上报设备资源,供 Pod 使用。GPU 资源也是通过该方式提供。使用kubernetes 调度 GPU 代理以下好处:加速部署:通过容器构想避免重复部署机器学习复杂环境;提升集群资源使用率:统一调度和分配集群资源;保障资源独享:利用容器隔离异构设备,避免互相影响。

结合 Kubernetes 灵活的资源调度与 Bitfusion 的的 GPU 算力切分与远程调用功能,能充分发挥二者的优势,首先是加速部署,避免把时间浪费在环境准备的环节中。通过容器镜像技术,将整个部署过程进行固化和复用,许许多多的框架都提供了容器镜像。我们可以借此提升 GPU 的使用效率。通过 Bitfusion 分时复用、动态切分、远程调用,结合 Kubernetes 的统一调度能力,使得资源使用方能够做到用即申请、完即释放,从而盘活整个 GPU 的资源池。

VMware 中国研发云原生实验室推出了 Bitfusion 的 device plugin 插件,并且开源了相关代码。该项目通过在 Kubernetes 使用 Bitfusion 的方式来实现 GPU 共享能力。

项目地址:

https://github.com/vmware/bitfusion-with-kubernetes-integration

通过两个组件来实现允许 Kubernetes 使用 Bitfusion 的目的。

bitfusion-device-plugin;

bitfusion-webhook;

组件 1 和组件 2 分别内置在独立的容器镜像中。

bitfusion-device-plugin 作为 DaemonSet 运行在 kubelet 所在的每个工作节点上。

bitfusion-webhook 作为 Deployment 运行在 Kubernetes 主节点上。

VMware vSphere Bitfusion 与 TKG

Tanzu Kubernetes Grid (TKG) 是 Tanzu 产品家族中的一个产品,是 VMware 的 Kubernetes 企业发行版本,可以在私有云和公有云多种云环境中部署,为用户提供一致的 Kubernetes 使用体验,与社区的 Kubernetes 完全兼容。

TKG 通过 Bitfusion device plugin 插件,实现对 Bitfusion GPU 资源池的远程调用,实现 GPU 的算力资源的灵活使用。

下面我们将要测试 TKG 与 Bitfusion 方案测试。

vSphere Bitfusion 与 TKG 方案测试

测试拓扑

测试步骤