linux使用宿主机显卡
时间: 2024-12-28 11:12:19 浏览: 15
### 如何在 Linux 虚拟机或容器中配置和使用宿主机的 GPU 或显卡资源
#### 使用 Docker 容器访问宿主机 GPU
对于基于 Docker 的环境,NVIDIA 提供了一个专门用于处理 GPU 访问问题的工具包 NVIDIA Container Toolkit。安装此工具包之后,可以轻松地让容器内的应用程序利用到宿主机上的 GPU。
要设置好这个环境,需先确保宿主机已经正确安装了 NVIDIA 驱动程序以及 CUDA 工具链[^1]。接着按照官方文档指导完成 NVIDIA Container Toolkit 的部署:
```bash
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit
sudo systemctl restart docker
```
一旦完成了上述步骤,则可以通过简单的命令来启动带有 GPU 支持的新容器:
```bash
docker run --gpus all nvidia/cuda:11.0-base nvidia-smi
```
这条指令会拉取一个预装有 CUDA 库的基础镜像并执行 `nvidia-smi` 命令以验证 GPU 是否被成功识别。
#### 在 KVM/QEMU 中启用 GPU 直通技术
当涉及到完整的虚拟化解决方案时,KVM (Kernel-based Virtual Machine) 结合 QEMU 成为了许多用户的首选方案之一。通过 PCI Passthrough 技术可以直接把物理设备分配给特定 VM 来获得最佳性能表现。
要在 KVM 上实施 GPU passthrough, 主要有以下几个要点需要注意:
- BIOS/UEFI 设置:进入主板固件界面开启 IOMMU 功能;
- 内核参数调整:编辑 GRUB_DEFAULT 变量所在的文件 `/etc/default/grub`, 添加内核引导选项 `intel_iommu=on` 对于 Intel 平台或是 `amd_iommu=pt` 对应 AMD 架构;
- 设备隔离:将目标 GPU 所属的所有 PCIe 子设备都指派给同一 VM 实例;
完成这些准备工作后就可以借助 virt-manager 图形界面或者 virsh CLI 创建新的客户操作系统实例,并指定想要传递的具体硬件组件。
#### 利用 VMware 进行 GPU 分配
除了开源项目外,商业产品如 VMware Workstation Pro 同样允许用户在其管理下的虚拟环境中共享实际存在的图形处理器能力。不过值得注意的是,尽管 VMware 支持多种类型的 GPU 加速方式,但对于某些高级特性可能仅限于专业版才提供支持[^2]。
具体操作流程涉及到了解当前使用的 hypervisor 类型(Workstation vs vSphere),然后依据所选平台遵循相应的指南来进行必要的配置更改。
阅读全文