跳到主内容
快讯直播
AI智模界
AI 词典

让虚拟机独吞一块显卡:GPU 直通

一句话定义:GPU 直通(GPU Passthrough)是把一块物理显卡几乎原封不动地"交给"某台虚拟机或容器独占使用,让里面的程序跑出接近裸机的性能。

为什么需要它

一台服务器插了 8 块 GPU,如果直接装一个操作系统,那这 8 块卡就归这一个系统用了。但现实中我们常想干别的事:一边跑训练任务,一边给另一个团队开一台隔离的开发机,还要保证互不干扰。虚拟化能解决"切分"的问题,可传统的虚拟化对 GPU 很不友好——显卡驱动被宿主机(Host)攥着,虚拟机(VM)里只能看到一个被模拟出来的、性能惨不忍睹的"假显卡"。

打个比方:普通虚拟化像是把厨房租给你,但刀具全锁在房东柜子里,你只能用塑料刀切菜;GPU 直通则是房东直接把整套专业厨具搬进你的独立厨房,钥匙只给你一个人,你怎么用都行,效率几乎不打折。

原理上的关键点

要做到这一点,需要三样东西配合:

1. 硬件支持:CPU 和主板要支持 IOMMU(Input-Output Memory Management Unit,输入输出内存管理单元)。它给每个设备划定独立的地址空间,让显卡的 DMA 访问不会越界踩到别的内存——这是安全和稳定性的地基。Intel 平台常叫 VT-d,AMD 平台常叫 AMD-Vi,具体名称以厂商官方页面为准。

2. 设备隔离:一块卡必须落在自己独立的 IOMMU 分组里,才能被单独摘出来分配。多卡机器常需要调整插槽或开启 ACS 相关设置。

3. Hypervisor 配合:KVM、VMware ESXi、Proxmox 这类虚拟化层负责在启动时把设备从宿主机驱动手里"解绑",再挂到虚拟机上。容器侧则是另一条路,靠 NVIDIA Container Toolkit 之类的方案把设备和驱动暴露进容器。

需要区分两个容易混的概念:

方式怎么做的性能典型场景
GPU 直通整块卡独占给一个 VM/容器接近裸机多租户隔离、云游戏、推理服务
GPU 虚拟化(vGPU/SR-IOV)硬件或驱动把一块卡切成多份有损耗,可超分多人共享、桌面云
API 转发应用通过网络调用远端的卡有网络开销训练集群调度

直通是"整块给一个人",虚拟化是"切成几份给多个人"。前者简单、性能好,但一块卡只能服务一个使用者;后者灵活,但配置复杂、单份算力受限。

对从业者的实际意义

对做 AI 基础设施的人,GPU 直通是"隔离"和"性能"之间最省事的那个折中:把卡直通给虚拟机,就天然获得了内存隔离、故障隔离和权限边界,比在宿主机上跑一堆进程互相打架要干净得多,用完了整机回收也方便。

对普通职场人,它的直接体现可能是:公司给你的云端开发机里,nvidia-smi 能看到一块完整的卡,跑模型不卡;或者云厂商卖的"GPU 云主机",底层很可能就是直通。你不需要关心细节,但知道这个词,就能理解为什么有些云主机的 GPU 性能好、有些是共享的虚卡。

需要注意,直通后宿主机通常就不能再用这块卡了,热插拔和迁移也比普通虚拟机麻烦,规划时要提前想清楚谁用哪块卡。

AI 生成本文由 AI 基于公开信息自动生成,仅供参考。