大模型AI底层技术揭秘(27)食神烤肥肠挑战
小H最近因为沉迷于学习,体重减轻了不少,小伙伴们决定带他去享受美食。他们来到一家专门烤羊腿和肥肠的餐馆,虽然人很多,但老板娘热情地招呼他们,说里面有包间,刚好能容纳6个人。小H和朋友们进入包间就座。尽管包间只是用屏风隔开的,看起来很简单,但比大厅要好。这些小包间看起来都是独立的。用餐过程中,他们听到外面有人在吵:“碱水面没有经过冷水处理,所以面里全是碱水味,鱼丸也没有鱼味,但你为了掩饰特意加了咖喱汁,想把它做成咖喱鱼丸,但这么做太简单,有时甚至是天真!原本美味的咖喱鱼丸,被你做得既没有鱼味也没有咖喱味,失
小H最近因为沉迷于学习,体重减轻了不少,小伙伴们决定带他去享受美食。
他们来到一家专门烤羊腿和肥肠的餐馆,虽然人很多,但老板娘热情地招呼他们,说里面有包间,刚好能容纳6个人。小H和朋友们进入包间就座。尽管包间只是用屏风隔开的,看起来很简单,但比大厅要好。这些小包间看起来都是独立的。
用餐过程中,他们听到外面有人在吵:
“碱水面没有经过冷水处理,所以面里全是碱水味,鱼丸也没有鱼味,但你为了掩饰特意加了咖喱汁,想把它做成咖喱鱼丸,但这么做太简单,有时甚至是天真!原本美味的咖喱鱼丸,被你做得既没有鱼味也没有咖喱味,失败!萝卜没有挑选过,筋太多,失败!猪皮煮得太烂,失败!猪血一夹就散,失败中的失败!最糟糕的是肥肠,里面根本没洗干净,还有一坨……”
“你以为这里是香港吗?我们北方人吃肥肠就讲究不洗干净,洗干净就没味道了!滚!”老板娘指着来挑衅的人骂道。
这时,外面有人因为喝多了,并且听了老板娘的话,开始呕吐(Core Dump)。
小H和朋友们看着桌上吃了一半的烤肥肠,胃里翻江倒海,然后也有人吐了。趁着混乱,他们离开了餐馆,没有付钱。
方老师听完小H的故事,先是笑了一会儿,然后问小H:
上次学的NVidia vCUDA GPU虚拟化,你还记得吗?这个方案有什么缺陷?
小H想了想,总结道:vCUDA是替换虚拟机上的CUDA,让它连接到宿主机上的vCUDA Stub,然后调用宿主机上的GPU进行计算的方案。如果使用其他API库,就无法在虚拟机上使用GPU了。
小H突然想到,如果GPU支持SRIOV技术,将PF虚拟化为多个VF并直接传递给虚拟机,是不是就可以让多个虚拟机共享GPU的计算能力了呢?
实际上,NVidia在GPU领域的竞争对手AMD(收购了ATI的GPU),就采用了基于SRIOV的GPU虚拟化方案。
如图所示,AMD的GPU本身是PCI-E SRIOV的PF(物理功能),而每个虚拟化实例是一个VF(虚拟功能),并直接传递给一个VM。
GPU的VF直接传递给VM的方式,与我们在前几期中学习的物理设备直接传递给VM实际上没有实质性差异,GuestOS看到的是经过Hypervisor调用IOMMU后映射的配置空间、Virtual BAR和DMA地址,CPU上的IOMMU和MMU会将地址翻译为物理地址,也就是让虚拟机能够操作真实的硬件。同时,VF产生的MSI中断也可以由vAPIC发送给虚拟机进行处理。
VM能够访问GPU后,就可以使用原生的CUDA应用和GPU驱动来访问VF设备,提交计算任务并在GPU中完成计算。
然而,SRIOV方式实现的GPU虚拟化有一个严重缺陷:只提供对虚拟机可见的多个设备,无法实现内部资源的隔离。也就是说,任何一个VM的CUDA程序越界访问GPU内存,都会导致其他VM的CUDA应用异常终止!
小H想到了昨晚在饭店的经历,虽然表面上自己在独立的包间用餐,但实际上并没有真正实现物理隔离。其他食客的异常操作(Core dump)导致了小H和朋友们的用餐任务异常终止(也有人Core dump了)。
看来,基于SRIOV的GPU虚拟化并不是一个好的方案。
那么,为什么网卡的SRIOV虚拟化在NFV场景中能够得到广泛应用呢?
这是因为,网卡实际上是一个无状态(stateless)的设备。网卡本身不承担计算任务,数据包的收发、关键字段的提取计算和收到的数据包分发到目标队列,实际上都是硬件定义的原子操作,不会被软件程序打断。因此,网卡的SRIOV实现实际上只是将一定数量的收发队列分配给VF。
但是GPU的复杂度远超网卡。它是一个有状态(stateful)的设备。GPU内部有各种计算单元、缓存和RAM控制器,这些部件的状态是由GPU计算指令决定的。实际上,GPU可以被认为是一个高度并行、图灵完备的向量计算机。在这样一个复杂的硬件中,实现硬件级别的虚拟化隔离,其难度甚至超过Intel在x86中引入VT-X系列特性!
因此,即使是在硬件虚拟化技术方面有深厚积累的Intel,在其GPU虚拟化路线上,也没有采用SR-IOV,而是使用了其他方案。
请看下期。
Shapr3D是一款面向工业设计、机械工程、建筑概念和三维打印工作流的CAD软件。Mac版采用Parasolid建模内核,支持草图约束、实体建模、工程图、可视化渲染及常见CAD格式交换,并可通过账户在多台设备之间同步项目。
REAPER是Cockos开发的数字音频工作站,提供多轨音频与MIDI录制、剪辑、处理、混音和母带制作工具。Mac版兼容Intel与Apple芯片,支持AU、VST、VST3、CLAP等插件格式,并提供高度可定制的工作流程。
Ableton Live 是面向音乐制作人与现场表演者的数字音频工作站,提供编曲视图、独具特色的现场视图、音频录制、MIDI创作、实时变速、乐器及效果器。Mac版原生支持Apple芯片,并可连接音频接口、MIDI控制器和第三方插件。
Photoshop 2026 是 Adobe 推出的专业图像处理与视觉设计软件,支持 Windows、macOS 和 iPad 等平台,广泛应用于摄影修图、电商设计、平面海报、数字绘画及视觉合成等创作场景。
Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。














