总机电话:0755-89344942
客服电话:19806503197
地址:深圳市龙岗区坂田街道象角塘社区中浩路润昌工业园A栋5楼
GPU虚拟化现状及新技术方案XPU |
|||||||
阅读次数: 【 497 】 | 更新时间: 【 2021-12-15 】 | ||||||
AI行业现状随着我国“新基建”的启动,AI(Artificial Intelligence,人工智能)和5G、大数据中心、工业互联网等一起构成了新基建的7大核心突破领域。AI将渗透到各个行业,变得越来越“基础设施化”。 德勤在2020上半年发布的《全球人工智能发展白皮书》预测数据表明:2025年世界人工智能市场将超过6万亿美元;中国人工智能核心产业规模到2020年将增长至1600亿元,带动相关产业规模超过一万亿元。 作为AI市场中的重要组成,以GPU、FPGA等为主的AI加速器市场发展也随之水涨船高。2020年5月11日IDC发布的《人工智能基础架构市场(2019下半年)跟踪》报告表明,到2024年中国GPU服务器市场规模将达到64亿美元。 GPU虚拟化背景目前来看,绝大多数公司使用的是英伟达(NVIDIA)的公司的计算卡,所以下面主要介绍基于NVIDIA的技术现状。 从用户角度,GPU虚拟化实现可以分为2种类型: 硬件层面主要是NVIDIA本身的虚拟化方案:NVIDIA GRID以及NVIDIA MPS。 NVIDIA GRID这个技术目前来看主要针对的是虚拟机平台,在技术特性方面也有明确写出某些功能不支持,其次NVIDIA GRID技术需要购买NVIDIA公司的软件授权才能使用,这个授权费相当昂贵。 NVIDIA MPS技术是NVIDIA对GPU共享的最早的一种支持模式,通过MPS server和MPS client就可以让多个GPU任务共享GPU的计算能力。对于容器平台,这种共享GPU的方式是一种可行性的选择。不过,这种指令代理技术有一个弊端,就是如果MPS Server挂掉或者其他MPS client端造成的非正常性退出,会导致处于同一个MPS server下的所有MPS client都受到影响,这种影响对于提供共享服务的平台来说是灾难性的,所以在生产环境几乎没有使用该方案。 NVIDIA以上2种的共享方式都不支持根据用户申请的请求对GPU计算能力的时间分片特性,GPU的使用是抢占式使用,无法做到资源的隔离。 软件层面该层面实现GPU虚拟化,又分为两种主要实现方式:
XPU方案
XPU是优优工场(YOYOWORKS)推出的容器GPU虚拟化产品。XPU正是采用前文所述的第二种实现方式,核心思想是将GPU在内核层进行切分,向上模拟出统一的XPU设备供容器使用,即多个容器共享一张GPU卡。XPU实现了一套框架能够很好的屏蔽异构GPU和应用(TensorFlow,PyTorch等)之间的耦合,对GPU进行故障隔离,显存隔离,算力隔离,从而实现业务的安全隔离,提高GPU硬件资源的利用率并降低使用成本。 XPU特点XPU采用零侵入式架构设计,通过kernel module,services及container runtime为容器提供虚拟的GPU设备,在保证性能的前提下隔离显存和算力,为充分利用GPU硬件资源进行训练和推理提供有效保障。 高性能
采用本地使用GPU计算资源的架构,有天然的性能优势,相比于物理GPU,性能损耗几乎为零。 安全性完美支持GPU单卡和多卡的算力隔离,显存隔离及故障隔离。 兼容性
零侵入设计: 最大的限度保证向后和向前兼容。用户零开销在 XPU 平台上运营现有AI应用,无缝兼容已有NGC等容器镜像。 软件架构
一个典型的XPU部署架构,主要包含两大部分: 系统相关部分及容器相关部分功能组件。XPU通过将物理GPU等设备进行划分和隔离,向上提供切分后的算力,有效提高异构计算资源的利用率。其逻辑结构图如下所示: 容器相关部分为XPU container runtime,作为Docker container的对应工具,主要实现将XPU设备映射给容器,让容器内的能够识别经过虚拟化的GPU设备,从而实现在容器内运行GPU相关负载。 部署形态XPU的各个组件,支持直接部署在裸金属服务器上,即安装操作系统后,直接以Binary形式部署,也支持虚拟化部署。XPU具备适配多种Linux操作系统和云平台的能力,因此,XPU具有多样化的部署形式。 XPU支持CentOS、Ubuntu等主流Linux发行版本,同时支持基于KVM的虚拟机云平台和基于Docker的容器云平台。尤其是支持原生容器,并实现了和Kubernetes的平滑对接。 XPU与容器的集成
XPU采用0侵入部署方式,支持原生容器,即可运行AI应用,大大简化了客户算法工程师运维、管理AI基础架构的工作。在NVIDIA Docker的基础上,通过实现一套XPU container runtime,完成XPU在容器内的创建,删除以及监控等功能。 XPU与Kubernetes集成利用K8S的device plugin及extended resources机制,将XPU集成到K8S集群中。
K8S device plugin机制如下图所示: XPU为Kubernetes提供的两个插件是:
XPU Kubernetes Device Plugin
XPU Kubernetes Scheduler Extender 兼容性列表
NVIDIA GPU
支持裸金属环境下使用物理 NVIDIA GPU 操作系统
CentOS 7.9/8.4, RHEL 7.9/8.4(64位) |
|||||||
上一条: Memory及其controller芯片整体测试方案 | |||||||
下一条: Hynix UFS 2.0 系列 | |||||||
相关文章Extended reading | |||||||
|