本次讲述如何在R730的ESXi上,将Tesla P40直通到centos7.7和WinServer2016。使用直通模式,安装普通的驱动即可,不需要vGPU的驱动。
按计划本来后面要自己装一下系统、做RAID的,不过最近需要用到显卡,所以先把显卡安装上吧。
23年初的时候P40二手的差不多800左右,5月份的时候,二手商都按照1200要了。找了一个个人卖家,950拿下。另外需要买电源线,否则自带的线不够长。25一根,我搞了两根。
一、原因
为啥选择P40,主要还是成本问题,我也想买更好的,但是更好的贵啊。以当前的眼光来看,性能挺一般,但是1000块钱的东西,还要啥自行车。而且想想当时原价买的时候要3W多,是不是就感觉还不错了?
二、版本说明
安装显卡坑特别多,有很多匹配、兼容方面的内容,大家可以按照我给的物料,按照我给的操作流程来操作。
大家先按照tensorflow的版本确定CUDA版本,根据CUDA版本确定centos版本,明确自己要装什么!
不同的CUDA版本,要求的内核版本、gcc版本不一样,大家一定要确认一下。我这里简单整理了一下
CUDA版本 | Linux内核版本 | GCC | Centos版本 |
---|---|---|---|
11.2 | 3.10 | 4.8.5 | CentOS 7.y (y <= 9) |
11.4 | 3.10.0-1136 | 6 | |
11.6 | 3.10.0-1160 | 6.x | |
12.1 | 3.10.0-1160 | 6.x |
centos对应的内核版本
Centos版本 | 版本 | 内核版本 |
---|---|---|
7.4 | 1708 | 3.10.0-693.el7.x86_64 |
7.6 | 1810 | |
7.7 | 1908 | 3.10.0-1062.18.1.el7.x86_64 |
7.8 | 2003 | |
7.9 | 2009 | 3.10.0-1160 |
ESXi:6.7
Centos7.7:http://linuxsoft.cern.ch/centos-vault/7.7.1908/isos/x86_64/CentOS-7-x86_64-Minimal-1908.iso
显卡:Tesla P40
Nvidia驱动:https://us.download.nvidia.cn/tesla/460.106.00/NVIDIA-Linux-x86_64-460.106.00.run
cudnn:cudnn-11.2-linux-x64-v8.1.0.77.tgz
tensorflow-gpu:2.5.0
2.1centos
http://linuxsoft.cern.ch/centos-vault/
2.2centos内核
2.3ESXi与GPU直通的兼容性
查看ESXi是否支持GPU直通
https://www.vmware.com/resources/compatibility/search.php?deviceCategory=vsga
2.4Nvidia驱动
2.5CUDA
2.6cudnn
https://developer.nvidia.com/rdp/cudnn-archive
2.7tensorflow
https://www.tensorflow.org/install/source#common_installation_problems
三、安装显卡
我们把显卡安装到机器上。机器要断电情况下操作。
将显卡原带的电源线,单头的接到显卡上A,双头的和我买延长线相连B,延长线单头查到riser上的电源口C。
安装后如果服务器无法启动,可能得原因
- 查看线连接的是否准确:我最开始启动不了,是因为插错误,幸亏没硬件烧了
- 查看电源功率是否够:我的是750W,功率刚刚够
四、直通Centos7.7
4.1安装centos
然后创建虚拟机即可
这里一定要设置为EFI,否则即使安装好nvidia驱动,nvidia-smi会报no devices were found
4.2配置centos
网络
修改配置:vi /etc/sysconfig/network-scripts/ifcfg-ens192
systemctl restart network
ping www.baidu.com 查看效果
ip address用于查看当前ip
确认好ip后,可通过ssh root@IP 控制centos,效率更高一些
关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
查看配置
uname -r和ll /usr/src/kernels/显示的版本要完全一致。如果ll /usr/src/kernels/不显示内容,则说明要安装kernel-devel、kernel-headers
1 | uname -r |
安装kernel
有两种方式:
- 如果yum能查到kernel-devel、kernel-headers,这种方式最方便
yum install kernel-devel-$(uname -r) kernel-headers-$(uname -r)
- 如果yum找不到对应的kernel,则从https://buildlogs.centos.org/ 找对应的版本
1 | yum install wget vim -y |
重新检查配置
1 | yum list installed | grep kernel |
重启
重启,检查系统能正常启动
4.3配置显卡
把显卡设置为直通
重启后
这里要预留所有内存。我设置的内存是32G,点击预留所有内存后,内存配置里的预留所有客户机内存会被勾选。
一定要配置上下面这三个参数
1 | pciPassthru.use64bitMMIO=TRUE |
4.4安装Nvidia驱动
1 | 查看是否能发现显卡 |
从https://www.nvidia.com/Download/index.aspx 选择合适的版本
1 | wget https://us.download.nvidia.cn/tesla/460.106.00/NVIDIA-Linux-x86_64-460.106.00.run |
安装成功后,可用nvidia-smi查看
这里有几点要说明:
- 不带-k $(uname -r),会报nvidia.ko
- 如果使用驱动不对,报Unable to load the ‘nvidia-drm’ kernel module,此时需要换其他驱动试试
- 安装过程中报nouveau 问题,让nvidia帮忙处理就行,然后重启,重新安装驱动
- 如果报warning,可以继续,不影响安装
- 此处选Yes
dmesg | grep NVRM 查看驱动无法启动原因
只能说安装驱动的时候太痛苦了。
4.5安装cuda
1 | wget https://developer.download.nvidia.com/compute/cuda/11.2.0/local_installers/cuda_11.2.0_460.27.04_linux.run |
进行一下配置
1 | vim ~/.bashrc |
4.6安装cudnn
首先需要注册一个账号,从https://developer.nvidia.com/rdp/cudnn-archive下载指定版本
1 | tar -zxvf cudnn-11.2-linux-x64-v8.1.0.77.tgz |
4.7安装tensorflow-gpu
安装python3.8
1 | yum install -y zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel |
安装tensorflow
1 | pip install tensorflow-gpu==2.5.0 |
4.8测试
1 | import tensorflow as tf |
五、直通WinServer2016
在WInServer安装驱动是最容易的
六、资料
- https://www.zhihu.com/question/512743476
- GPU选型
- NVIDIA Tesla GPU系列P40参数性能——不支持半精度(FP16)模型训练
- R730 支持英伟达p40卡吗
- https://dl.dell.com/Manuals/all-products/esuprt_server_int/esuprt_server_int_poweredge/esuprt_server_rack/poweredge-r730_Concept-Guide5_en-us.pdf
- 2022-10-24 dell R740服务器 安装显卡 NVIDIA Tesla P40 24GB
- 记第一次给服务器安装NVIDIA Tesla P40 GPU显卡
- 新入手一台戴尔R730外加P40Tesla 24G显卡
- CentOS 7 安装 NVIDIA 显卡驱动和 CUDA Toolkit
- Unable to load the kernel module ‘nvidia.ko’
- centos7 Nvidia P40 安装GPU运行环境 - 主
- ERROR: Unable to load the ‘nvidia-drm‘ kernel module.
- centos7安装p40显卡驱动 + cuda10.0 + cudnn10.0 - 主
- Vsphere6.5 NVIDIA–Tesla–P40 GPU 直透
- ESXI 6.7 环境 centos7.6 虚拟机安装tesla k80 显卡驱动失败问题解决
- CentOS 7从grub如何启动系统
- 英伟达 NVIDIA-Tesla-P40 GPU 直透
- NVIDIA P40 VGPU部署GRID安装(超详细)
- Centos7升级内核——图文详尽版
- Gcc https://mirrors.tuna.tsinghua.edu.cn/gnu/gcc/gcc-6.3.0/
- CentOS7安装gcc6.3
- Centos6安装devtoolset(高版本gcc)
- centos7升级gcc版本,无需手动下载源码编译
- CentOS7/6使用rpm离线安装gcc7/6
- centos7.4下载地址,与安装详细教程
- http://linuxsoft.cern.ch/centos-vault/ iso下载快
- centos系统内核安装包各系列版本下载方法
- https://vault.centos.org/7.7.1908/os/x86_64/Packages/ - 内核模块
- DELL服务器手动调整风扇转速
- Centos7 安装独立显卡驱动
- Dell R720XD 风扇转速调节
- CentOS安装nvidia显卡驱动报错:CENTOS unable to load the kernel module ‘nvidia.ko‘/Secure Boot is enable
- CentOS 7.6安装 NVIDIA 独立显卡驱动(完整版)
- 华为虚拟化6.5.1显卡直通虚拟机nvidia-smi输出no devices were found
- ESXi nvidia-smi报错No devices were found, rm_init_adapter failed, device minor number 0
- VMware ESXi DirectPath I/O 直通GPU卡给虚拟机使用
- ESXi6.7-7.0 Ubuntu下Nvidia显卡直通教程
- VMware ESXi 6.7.0 update2 使用 GPU Passthrough 模式的坑
- ESXI虚拟机直通P40显卡给win11虚拟机
- ESXi GPU 直通
- 如何将虚拟机引导方式从BIOS改为UEFI
- https://wiki.centos.org/Download
- https://ui.licensing.nvidia.com/software vgpu