六种GPU虚拟化:除了直通、全虚拟化 (vGPU)还有谁?

在大类上计算虚拟化技术有这3种: 软件模拟、直通独占(如网卡独占、显卡独占)、直通共享(如vCPU 、vGPU)。但对于显卡GPU而言我总结细化出至少这6种分类:

  • 第一种、软件模拟(eg sGPU), 又叫半虚拟化。
  • 第二种、直通独占 (pGPU) , 有的文章翻译为透传 。Openstack/KVM/ESX等IaaS场景用到。
  • 第三种、直通共享 (基于SR-IOV技术虚拟出vGPU) , 在技术上分类叫全虚拟化 。三个大厂有部分型号GPU支持,具体型号见 https://open-iov.org/index.php/GPU_Support 。这是AMD首先搞出来的,但似乎他们后来也转向GPU分片虚拟化了,这个网站AMD的产品反而没几款。
  • 第四种、GPU分片虚拟化(mediated passthrough),也属于全虚拟化技术。其热度很高,基于VFIO mediated passthrough framework的GPU虚拟化方案。该方案由NVIDIA提出,并联合Intel一起提交到了Linux kernel 4.10代码库,该方案的kernel部分代码简称mdev模块。把会影响性能的访问直接passthrough给虚拟机,把性能无关,功能性的MMIO访问做拦截并在mdev模块内做模拟。商业产品有NVIDIA GRID vGPU 与Intel的GVT-g系列,前者不开源,后者大部分开源。
  • 第五种、多实例 GPU (MIG) 技术,也属于全虚拟化技术。MIGNvidia 搞出的新技术,可将单个 GPU 分区为最多 7个完全的隔离vGPU实例,减少资源争抢的延时,提高物理 GPU 利用率。但可惜目前仅昂贵和国内禁售的NVIDIA A100 GPU 支持。
  • 第六种。Time-Slicing GPU (时间共享GPU)。把本来再空间上并行(时间独占)的成百上千的GPU流水线进行的时间维度的分割和共享。各个GPU厂家都有类似的技术。英伟达的技术文档:https://docs.nvidia.com/datacenter/cloud-native/gpu-operator/latest/gpu-sharing.html 。

注意,以上第四种是收费的,所以企业用户要去英伟达官网购买license。英伟达又卖硬件又卖软件license,赚钱能力真强。
第五种MIG则是买到昂贵的A100卡就能用了,不需要license。
普通玩k8s的企业,则用免费的Time-Slicing GPU (时间分片共享GPU)
前四种GPU虚拟化原理图

多扯淡一句,深度思考下,是否还有其他分类呢?比如上面的第六种是不是进程虚拟化呢?在docker出现后, 人们突然发现以前使用冯·诺依曼架构的 CPU/GPU 的方式也是一种虚拟化:

  • CPU 原理上是pipeline流水线上的时间维度分片的算力虚拟化,
  • GPU原理是空间维度分片的算力虚拟化。

eg.一台电脑只有一块CPU、一块GPU, 但多个程序(进程)都可以使用它们,对于进程而言难道不算虚拟化? 我想起当年“云计算(cloud computing)”这个词被创造后,以前在网页上提供购物、E-mail 、CRM等的,都说自己也在做云计算。现在第六种GPU虚拟化方式出来了,也就算它是进程虚拟化~

在这里插入图片描述

GPU软件模拟模式 (sGPU)

软件虚拟化就不讲了,因为真实场景太少,做做实验还将就用,没法用在生产环境,毕竟性能损失太多。

GPU 直通模式 (pGPU)

几种GPU的虚拟化技术,直通是最早出现,即技术上最简单和成熟的方案。厂家(Nvidia ,AMD ,Intel等 )的GPU,只要支持IOMMU的理论上都可以,即直通模式的实现依赖于IOMMU的功能。

优点:

  • 原理简单。GPU直通模式的技术方案与虚拟化领域其他PCI直通(eg.网卡直通 ,USB 直通)原理相同
  • 兼容性好
  • 硬件驱动无需修改,不依赖GPU厂商,技术简单。所以小型GPU集群的运维的技术成本低,

缺点

  • 不支持热迁移/在线迁移(Live Migration)
  • 不支持GPU资源的分割(即对显存的分割,所以出现了下文的几种技术),不能充分利用高价买的GPU
  • 缺少物理机层面的GPU性能监控API接口,在大型GPU集群中,这又导致运维成本上升。

安全性:
由于GPU的复杂性和安全隔离的要求,GPU直通技术相对于任何其他设备来说,会有额外的PCI 配置空间模拟和MMIO的拦截(参见QEMU VFIO quirk机制)。比如Hypervisor或者Device Module 不会允许虚拟机对GPU硬件关键寄存器的完全的访问权限,

GPU 全虚拟化(vGPU)

原理:在硬件实现GPU全虚拟化,将虚拟图形处理单元(vGPU)透传给虚拟机使用。

本文开头介绍过,GPU全虚拟化技术先后有SR-IOV(开源技术) 。还有vGPU 、MIG。它们虚拟出来的GPU都是vGPU。

GPU虚拟化的实现原理简介:
物理GPU虚拟化为多个虚拟机GPU,每个虚拟GPU直接分配给虚拟机使用,通过软件调度的方式在主机(Host)与计算机的来宾账户(Guest)之间提供一个中间设备来允许Guest虚拟机访问Host中的物理GPU。

NVIDIA 官网说的Grid vGPU优势:

  • 安全性高。具有完全输入输出内存管理单元( IOMMU )保护的虚拟机能够同时直接访问单个物理 GPU 。
  • 通过实时虚拟机迁移进行虚拟机管理
  • 支持运行混合的 VDI 和计算工作负载,以及与许多行业虚拟机监控程序的集成。
    Grid vGPU劣势:使用NVIDIA 的vGPU需要license,这块费用需要考虑在技术选型里面。
    在这里插入图片描述

在这里插入图片描述

英伟达GPU虚拟化技术的对比

后三种比较常见:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.kler.cn/a/274507.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Spark 3.5.0 特性速览

介绍 Spark 3系列已经发布了第六版3.5.0,目前最新3.5.1。 使用最广泛的大数据可扩展计算引擎。数以千计的公司,包括 80% 的财富 500 强企业,都在使用 Apache Spark。来自业界和学术界的 2000 多名开源项目贡献者。 Apache Spark 3.5.0 是…

英伟达GTC2024大会开幕,发布机器人003计划,引领具身智能新时代

一、背景 在全球科技创新的前沿阵地,2024年3月的英伟达GPU技术大会(GTC)再次成为全球瞩目的焦点。在此次盛会上,英伟达公司创始人兼首席执行官黄仁勋先生不仅展示了其公司在加速计算和生成式AI领域的最新突破,更震撼发…

耳机壳UV树脂制作私模定制耳塞需要什么样的设备和技术?

制作私模定制耳塞需要使用到一些特定的设备和技术,包括但不限于以下内容: 耳模制作工具:用于获取用户耳型的耳模制作工具,如硅胶、橡皮泥等。需要使用熟练的手法和技术,确保耳模的准确性和稳定性。UV树脂:…

HCIA——30奈奎斯特定理、香农定理

学习目标: 计算机网络 1.掌握计算机网络的基本概念、基本原理和基本方法。 2.掌握计算机网络的体系结构和典型网络协议,了解典型网络设备的组成和特点,理解典型网络设备的工作原理。 3.能够运用计算机网络的基本概念、基本原理和基本方法进行…

Laravel框架项目首页内容修改

#Laravel# 安装Laravel框架成功后运行项目&#xff0c;看到下面这个图就说明安装框架成功了 需要根据自己的需求修改页面时&#xff0c;先找到首页的文件 首页对应的页面文件为项目根目录下的resources/views/welcome.blade.php文件 <!DOCTYPE html> <html lang&quo…

如何从零开始拆解uni-app开发的vue项目(一)

uni-app项目分析: 背景:最近接手一个前同事留下的半拉子项目,出拿过来觉得很简单;当我看到app.vue的时候很确定是vue项目,心里不怎么慌,果断安装node.js,然后就去npm ;安装VS code,事实并不是我期盼的那样,或者说根本就不能运行。 报错:应用vs code打开文件,输入命…

数据库只追求性能是不够的!

那些成功的数据库公司没有一家是通过性能比竞争对手更快而成功的。 作者&#xff1a;JORDAN TIGANI&#xff0c;DuckDB 公司 MotherDuck 联合创始人&CEO 本文和封面来源&#xff1a;https://motherduck.com/&#xff0c;爱可生开源社区翻译。 本文约 4500 字&#xff0c;预…

3D模型优化服务+三维可视化+数字孪生+元宇宙=眸瑞科技

眸瑞科技&#xff1a;老子云平台AMRT3D数字孪生引擎 老子云概述 老子云3D可视化快速开发平台&#xff0c;集云压缩、云烘焙、云存储云展示于一体&#xff0c;使3D模型资源自动输出至移动端PC端、Web端&#xff0c;能在多设备、全平台进行展示和交互&#xff0c;是全球领先、自…

使用甘特图实现高效时间规划

甘特图虽然看似简单,却蕴含着规划时间的奥秘。它将复杂的工序分解成逻辑严密的任务链条,每个短小的条形图块都清晰地道出一个任务的起始、持续和终止。就像指挥家挥舞手中的棒,每个动作都精确拍着节奏,确保各个乐手分工合作、行云流水。择一个好用的甘特图制作工具,会让你事半功…

GPT-4与Claude3、Gemini、Sora:AI领域的技术创新与突破

【最新增加Claude3、Gemini、Sora、GPTs讲解及AI领域中的集中大模型的最新技术】 2023年随着OpenAI开发者大会的召开&#xff0c;最重磅更新当属GPTs&#xff0c;多模态API&#xff0c;未来自定义专属的GPT。微软创始人比尔盖茨称ChatGPT的出现有着重大历史意义&#xff0c;不亚…

C++文件操作详解

C 通过以下几个类支持文件的输入输出&#xff1a; ofstream: 写操作&#xff08;输出&#xff09;的文件类 (由ostream引申而来) ifstream: 读操作&#xff08;输入&#xff09;的文件类(由istream引申而来) fstream: 可同时读写操作的文件类 (由iostream引申而来) 打开文件(…

TikTok云手机是什么原理?

随着社交媒体的快速发展和普及&#xff0c;TikTok已成为全球最受欢迎的短视频平台之一&#xff0c;吸引了数以亿计的用户。在TikTok上&#xff0c;许多用户和内容创作者都希望能够更灵活地管理和运营多个账号&#xff0c;这就需要借助云手机技术。那么&#xff0c;TikTok云手机…

从服务器到云原生:企业IT基础设施的演进之路

随着数字经济的迅猛发展&#xff0c;企业IT数字化转型已成为推动业务创新和提升竞争力的关键。在这一转型过程中&#xff0c;基础设施的建设与升级显得尤为重要。企业需要不断优化和更新他们的基础设施&#xff0c;以适应不断变化的市场需求和技术发展。本文将探讨企业IT数字化…

python便民超市管理系统flask-django-nodejs-php

随着人们生活节奏的加快&#xff0c;以前传统的购物方式发生了巨大的改变&#xff0c;以前一个超市要想经营好自己的门店&#xff0c;每天都要忙着记账出账&#xff0c;尤其是出库入库统计&#xff0c;如果忙中出乱&#xff0c;可能导致今天所有的营业流水&#xff0c;要重新换…

【视频异常检测】Real-world Anomaly Detection in Surveillance Videos 论文阅读

Real-world Anomaly Detection in Surveillance Videos 论文阅读 Abstract1. Introduction2. Related Work3. Proposed Anomaly Detection Method3.1. Multiple Instance Learning3.2. Deep MIL Ranking Model 4. Dataset4.1. Previous datasets4.2. Our dataset 5. Experiment…

Unity发布webgl设置占满浏览器运行

Unity发布webgl设置占满浏览器运行 Unity发布webgl的时候index.html的模板文件 模板文件路径&#xff0c;根据自己的需求修改。 C:\Program Files\Unity\Hub\Editor\2021.1.18f1c1\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\WebGLTemplates\Default再桌面新建一个t…

Node.js常用命令:了解Node.js的核心命令和用法

学习目标&#xff1a; 理解Node.js和npm的概念及其在开发中的作用&#xff1b;掌握Node.js的核心命令&#xff0c;包括node、npm、npx等&#xff1b;学会使用node命令来执行JavaScript文件和模块&#xff1b;熟悉npm命令&#xff0c;包括安装、更新、卸载依赖包等操作&#xf…

大数据技术学习笔记(十三)—— HBase

目录 1 Hbase 概述1.1 Hbase 定义1.2 HBase 数据模型1.2.1 HBase 逻辑结构1.2.2 HBase 物理存储结构1.2.3 数据模型 1.3 HBase 基本架构 2 HBase Shell 操作2.1 基本操作2.2 namespace 操作2.3 表操作 3 HBase 原理深入3.1 RegionServer 架构3.2 HBase 写流程3.3 MemStore Flus…

CentOS 7.9 常用环境配置

文章目录 环境准备安装docker安装Java安装maven安装git安装MYSQL安装Redis安装RabbitMq安装minio 环境准备 操作系统版本为centos 7.9&#xff0c;内核版本需要在3.10以上 sudo uname -rsudo cat /etc/redhat-release1.确认环境好后&#xff0c;安装工具包并设置仓库 sudo yum…

YOLOv5源码逐行超详细注释与解读(1)——项目目录结构解析

前言 前面简单介绍了YOLOv5的网络结构和创新点&#xff08;直通车&#xff1a;【YOLO系列】YOLOv5超详细解读&#xff08;网络详解&#xff09;&#xff09; 在接下来我们会进入到YOLOv5更深一步的学习&#xff0c;首先从源码解读开始。 因为我是纯小白&#xff0c;刚开始下…
最新文章