当前位置: 首页 > news >正文

福建省城乡和建设厅网站专业型网站和个人网站

福建省城乡和建设厅网站,专业型网站和个人网站,站长之家排名查询,中国建筑人才网官网查询前言: PCIe Passthrough 技术允许虚拟机直接访问物理GPU设备,绕过宿主机系统,从而获得接近原生性能的图形处理能力。 目前我已在服务器完成了proxmox8.4.0的安装,并且安装了带有NVIDIA Tesla T4的显卡。现在我需要将显卡直接直通…

前言:

PCIe Passthrough 技术允许虚拟机直接访问物理GPU设备,绕过宿主机系统,从而获得接近原生性能的图形处理能力。
目前我已在服务器完成了proxmox8.4.0的安装,并且安装了带有NVIDIA Tesla T4的显卡。现在我需要将显卡直接直通到一台vm实例上面。

1. 确认硬件和BIOS支持

  • 检查显卡兼容性:Tesla T4是数据中心显卡,完全支持PCIe直通,非常适合虚拟化环境。
  • 启用IOMMU:进入服务器BIOS,启用Intel VT-d(如果是Intel CPU)或AMD-Vi(如果是AMD CPU)。
  • 验证系统信息
# 输出确认当前proxmox server 是基于debian 12 版本的 8.4.0 proxmox操作系统
cat /etc/os-release
pveversion -v 

在这里插入图片描述

# 显卡信息lspci -nnk|grep "NVIDIA"

在这里插入图片描述

2. 配置Proxmox主机

① 修改GRUB参数,检查和启用IOMMU支持
# 备份原始配置
cp /etc/default/grub{,.bak}
# 编辑GRUB配置
vi /etc/default/grub

GRUB_CMDLINE_LINUX_DEFAULT中添加(使用默认,pve版本为8.4.0):

# 修改 GRUB_CMDLINE_LINUX_DEFAULT 配置为
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt initcall_blacklist=sysfb_init pcie_acs_override=downstream"# 注意:pve  7.2 以前版本使用
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt video=efifb:off,vesafb:off pcie_acs_override=downstream"

在这里插入图片描述

说明
video=efifb:off用于禁用主机对GPU的显示输出,确保虚拟机独占GPU。
intel_iommu=on 启用Intel平台的IOMMU支持。
iommu=pt仅对直通设备启用IOMMU,减少性能开销。
initcall_blacklist=sysfb_init防止宿主机占用显卡帧缓冲区。
pcie_acs_override=downstream解决某些PCIe设备的ACS限制问题。
注意
对于AMD平台,需将 intel_iommu=on替换为 amd_iommu=on

更新GRUB:

update-grub

在这里插入图片描述

② 加载VFIO模块
vi /etc/modules

添加以下内容:

vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd

在这里插入图片描述
reboot 重启 proxmox 主机

验证IOMMU是否启用:

IOMMU(Input-Output Memory Management Unit)是硬件辅助的虚拟化技术,为PCI设备直通提供必要的内存管理和隔离功能。

dmesg | grep -E "DMAR|IOMMU"

在这里插入图片描述

③ 验证并配置VFIO绑定Tesla T4

验证VFIO模块:

dmesg | grep -i vfio

在这里插入图片描述

vi /etc/modprobe.d/vfio.conf

添加(使用你的显卡PCI ID):

options vfio-pci ids=10de:1eb8 disable_vga=1

获取ID方法

lspci -nn | grep -i tesla

输出示例:

c3:00.0 3D controller [0302]: NVIDIA Corporation TU104GL [Tesla T4] [10de:1eb8] (rev a1)

在这里插入图片描述

验证是否支持,中断重映射
dmesg | grep 'remapping'

在这里插入图片描述

屏蔽显卡驱动 :

在proxmox主机屏蔽掉显卡的驱动:

echo "# NVIDIA" >> /etc/modprobe.d/blacklist.conf 
echo "blacklist nouveau" >> /etc/modprobe.d/blacklist.conf 
echo "blacklist nvidia" >> /etc/modprobe.d/blacklist.conf 
echo "blacklist nvidiafb" >> /etc/modprobe.d/blacklist.conf
echo "blacklist nvidia_drm" >> /etc/modprobe.d/blacklist.conf
echo "" >> /etc/modprobe.d/blacklist.conf

####其他有用的配置:

# 允许不安全的中断
echo "options vfio_iommu_type1 allow_unsafe_interrupts=1" > /etc/modprobe.d/iommu_unsafe_interrupts.conf# 为 NVIDIA 卡添加稳定性修复和优化
echo "options kvm ignore_msrs=1 report_ignored_msrs=0" > /etc/modprobe.d/kvm.conf
④ 更新initramfs并重启
# 更新内核引导文件并重启宿主机:
update-initramfs -k all -u
reboot

3. 验证IOMMU配置

重启后检查IOMMU组:

for iommu_group in $(find /sys/kernel/iommu_groups/ -maxdepth 1 -mindepth 1 -type d); doecho "IOMMU Group $(basename "$iommu_group"):"lspci -nns "$(cat "$iommu_group/devices/*/uevent" | grep -oP 'PCI_SLOT_NAME=\K.*')"
done | grep -i tesla

确保Tesla T4的所有设备(3D控制器和音频设备)在同一IOMMU组中。

4. VM实例添加显卡

等待宿主机启动后完成如下操作!

① 添加Tesla T4显卡

这里使用了登录web控制台增加pci设备的方式,当然也可以shell登录宿主机使用命令添加的方式!

以VM实例104为例:点击vm 实例-硬件-添加-PCI设备-原始设备,找到tesla设备选中,添加:
在这里插入图片描述

② 验证vm实例挂载显卡成功

登录vm 实例,使用如下命令确认vm实例成功挂载了显卡设备

lspci | grep -i vga
lspci -nn | grep NVIDIA

在这里插入图片描述
ok到这里 显卡就完成了 显卡直通的相关操作!

5. 安装Ubuntu驱动

② 安装NVIDIA驱动
# 添加NVIDIA仓库
sudo apt update
sudo apt install software-properties-common
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update# 安装CUDA Toolkit(包含驱动)
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-ubuntu2204.pin
sudo mv cuda-ubuntu2204.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/12.1.1/local_installers/cuda-repo-ubuntu2204-12-1-local_12.1.1-530.30.02-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu2204-12-1-local_12.1.1-530.30.02-1_amd64.deb
sudo cp /var/cuda-repo-ubuntu2204-12-1-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt update
sudo apt install cuda-drivers# 重启虚拟机
sudo reboot
③ 验证GPU识别
nvidia-smi

输出应显示Tesla T4信息:

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 530.30.02    Driver Version: 530.30.02    CUDA Version: 12.1     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  Tesla T4            On   | 0000C3:00.0     Off  |                    0 |
| N/A   34C    P8    9W /  70W |      0MiB / 15360MiB |      0%      Default |
|                               |                      |                  N/A |
+-----------------------------------------------------------------------------+

6. 常见问题解决

  1. 虚拟机无法启动

    • 检查Proxmox日志:journalctl -xe | grep qemu
    • 尝试取消"主GPU"勾选。
  2. 驱动安装失败

    • 确保禁用了Ubuntu的nouveau驱动:
      sudo bash -c "echo 'blacklist nouveau' > /etc/modprobe.d/blacklist-nvidia-nouveau.conf"
      sudo bash -c "echo 'options nouveau modeset=0' >> /etc/modprobe.d/blacklist-nvidia-nouveau.conf"
      sudo update-initramfs -u
      
  3. NVIDIA-SMI显示错误

    • 检查内核模块是否正确加载:lsmod | grep nvidia
    • 重新安装驱动:sudo apt purge cuda-drivers && sudo apt install cuda-drivers

优化建议

  • 启用MIG(多实例GPU):Tesla T4支持将GPU分割为多个独立实例,可通过nvidia-smi mig命令配置。
  • 安装cuDNN:用于深度学习加速,需从NVIDIA官网下载并安装。
  • 监控GPU使用:在虚拟机内使用nvidia-sminvtop监控GPU状态。

完成上述步骤后,Ubuntu虚拟机将能够完全利用Tesla T4的计算能力,适用于AI推理、高性能计算等工作负载。

http://www.dtcms.com/a/403449.html

相关文章:

  • 盐城专业做网站的公司哪家好做网站可以没有框架吗
  • HarmonyOS 5 Native与ArkTS混合开发实战:跨语言高性能组件开发
  • 4.11 球谐光照
  • 图书馆网站建设研究直播软件开发源码
  • 【数据结构】堆排序
  • 05.容器网络
  • 自己做的博客网站吗网站重构
  • vue 构建工具如何选择 | vue-cli 和 vite的区别
  • 公司网站建设会计上怎么处理怎么做一个网站
  • 网站建设群国金紫郡府淮北论坛
  • DC-DFTC工具串scan chain过程中遇到Error(TEST-1313)
  • flutter 3.22+ Android集成高德Flutter地图自定义Marker显示
  • K8s学习笔记(六) K8s升级与节点管理
  • Android,jetpack compose实现俄罗斯方块,简单案例♦️
  • Kubernetes(K8S)完全详解:从架构设计到云原生实践
  • IDEA/WebStorm 卡顿问题与启动参数调优指南
  • 杭州精品课程网站建设青海媒体网站建设公司
  • Metal - 5.深入剖析 3D 变换
  • 上海网站建设友汇网站网站修改备案号
  • nccl中的rdma是指什么 (来自deepseek)
  • C#练习题——List排序与反转操作详解:怪物属性排序示例
  • Linux离线安装指定包
  • WebGIS:在 Vue 2 项目中使用 Mapbox 时,如果需要加载的 GIS 数据量过大,怎么让接口一次性获取的geojson数据分批加载
  • 您的前端开发智能工作流待升级,查收最新 Figma2Code!
  • 多品牌集运管理的革新:易境通集运系统的一站式解决方案
  • 用dw做网站的步骤山东网站建设开发
  • Docker和K8S的区别详解
  • 高性能内存池(四)----CentralCache实现
  • Python快速入门专业版(四十四):Python面向对象基础:类与对象的创建与使用(核心概念解析)
  • 阿里云电影网站建设教程2345浏览器网址导航