R730直通Tesla P40显卡

部署运行你感兴趣的模型镜像

本次讲述如何在R730的ESXi上,将Tesla P40直通到centos7.7和WinServer2016。使用直通模式,安装普通的驱动即可,不需要vGPU的驱动。

按计划本来后面要自己装一下系统、做RAID的,不过最近需要用到显卡,所以先把显卡安装上吧。

23年初的时候P40二手的差不多800左右,5月份的时候,二手商都按照1200要了。找了一个个人卖家,950拿下。另外需要买电源线,否则自带的线不够长。25一根,我搞了两根。

image-20230624151012727.png

image-20230624151020905.png

一、原因

为啥选择P40,主要还是成本问题,我也想买更好的,但是更好的贵啊。以当前的眼光来看,性能挺一般,但是1000块钱的东西,还要啥自行车。而且想想当时原价买的时候要3W多,是不是就感觉还不错了?

20210120151305789.png

二、版本说明

安装显卡坑特别多,有很多匹配、兼容方面的内容,大家可以按照我给的物料,按照我给的操作流程来操作。

大家先按照tensorflow的版本确定CUDA版本,根据CUDA版本确定centos版本,明确自己要装什么!

不同的CUDA版本,要求的内核版本、gcc版本不一样,大家一定要确认一下。我这里简单整理了一下

CUDA版本Linux内核版本GCCCentos版本
11.23.104.8.5CentOS 7.y (y <= 9)
11.43.10.0-11366
11.63.10.0-11606.x
12.13.10.0-11606.x

centos对应的内核版本

Centos版本版本内核版本
7.417083.10.0-693.el7.x86_64
7.61810
7.719083.10.0-1062.18.1.el7.x86_64
7.82003
7.920093.10.0-1160

ESXi:6.7

Centos7.7http://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

image-20230624152459072.png

CUDAhttps://developer.download.nvidia.com/compute/cuda/11.2.0/local_installers/cuda_11.2.0_460.27.04_linux.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内核

https://buildlogs.centos.org/

2.3ESXi与GPU直通的兼容性

查看ESXi是否支持GPU直通

https://www.vmware.com/resources/compatibility/search.php?deviceCategory=vsga

13221912_63481e607911a15768.webp

2.4Nvidia驱动

2.5CUDA

2.6cudnn

https://developer.nvidia.com/rdp/cudnn-archive

2.7tensorflow

https://www.tensorflow.org/install/source#common_installation_problems

image-20230624135119981.png

三、安装显卡

我们把显卡安装到机器上。机器要断电情况下操作。

image-20230624153124556.png

image-20230624153147760.png

将显卡原带的电源线,单头的接到显卡上A,双头的和我买延长线相连B,延长线单头查到riser上的电源口C。

image-20230624153421512.png

安装后如果服务器无法启动,可能得原因

  • 查看线连接的是否准确:我最开始启动不了,是因为插错误,幸亏没硬件烧了
  • 查看电源功率是否够:我的是750W,功率刚刚够

四、直通Centos7.7

4.1安装centos

我们先下载ISO文件(http://linuxsoft.cern.ch/centos-vault/7.7.1908/isos/x86_64/CentOS-7-x86_64-Minimal-1908.iso),把ISO文件上传到ESXi的存储上

image-20220916213640142.png

然后创建虚拟机即可

image-20220906130826029.png

image-20220906130904564.png

这里一定要设置为EFI,否则即使安装好nvidia驱动,nvidia-smi会报no devices were found

image-20230624124534947.png

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

uname -r

ll /usr/src/kernels/

yum list installed | grep kernel

yum list installed | grep gcc
安装kernel

有两种方式:

  1. 如果yum能查到kernel-devel、kernel-headers,这种方式最方便

yum install kernel-devel- ( u n a m e − r ) k e r n e l − h e a d e r s − (uname -r) kernel-headers- (unamer)kernelheaders(uname -r)

  1. 如果yum找不到对应的kernel,则从https://buildlogs.centos.org/ 找对应的版本
yum install wget vim -y
wget https://buildlogs.centos.org/c7.1908.00.x86_64/kernel/20190808101829/3.10.0-1062.el7.x86_64/kernel-devel-3.10.0-1062.el7.x86_64.rpm --no-check-certificate

wget https://buildlogs.centos.org/c7.1908.00.x86_64/kernel/20190808101829/3.10.0-1062.el7.x86_64/kernel-headers-3.10.0-1062.el7.x86_64.rpm --no-check-certificate  

rpm -ivh --force kernel-devel-3.10.0-1062.el7.x86_64.rpm

rpm -ivh --force kernel-headers-3.10.0-1062.el7.x86_64.rpm

yum install gcc
重新检查配置
yum list installed | grep kernel

yum list installed | grep gcc

uname -r

ll /usr/src/kernels/
重启

重启,检查系统能正常启动

4.3配置显卡

把显卡设置为直通

image-20230624164721439.png

重启后

image-20230624125821881.png

这里要预留所有内存。我设置的内存是32G,点击预留所有内存后,内存配置里的预留所有客户机内存会被勾选。

image-20230624125840423.png

image-20230624155731773.png

一定要配置上下面这三个参数

pciPassthru.use64bitMMIO=TRUE

pciPassthru.64bitMMIOSizeGB=64

hypervisor.cpuid.v0= FALSE

image-20230624155815940.png

image-20230624125921582.png

4.4安装Nvidia驱动

# 查看是否能发现显卡
yum install pciutils

lspci | grep -i nvidia

image-20230624160009672.png

https://www.nvidia.com/Download/index.aspx 选择合适的版本

wget https://us.download.nvidia.cn/tesla/460.106.00/NVIDIA-Linux-x86_64-460.106.00.run 

chmod +x NVIDIA-Linux-x86_64-460.106.00.run

./NVIDIA-Linux-x86_64-460.106.00.run --kernel-source-path=/usr/src/kernels/3.10.0-1062.el7.x86_64/  -k $(uname -r)

安装成功后,可用nvidia-smi查看

image-20230624161614759.png

这里有几点要说明:

  1. 不带-k $(uname -r),会报nvidia.ko

image-20230604193941833.png

  1. 如果使用驱动不对,报Unable to load the ‘nvidia-drm’ kernel module,此时需要换其他驱动试试

image-20230522232429284.png

  1. 安装过程中报nouveau 问题,让nvidia帮忙处理就行,然后重启,重新安装驱动

image-20230527194011491.png

image-20230527194022022.png

image-20230527194041433.png

  1. 如果报warning,可以继续,不影响安装

image-20230527194220088.png

  1. 此处选Yes

SouthEast.png
6. dmesg | grep NVRM 查看驱动无法启动原因

image-20230611182632946.png

只能说安装驱动的时候太痛苦了。

4.5安装cuda

https://developer.nvidia.com/cuda-11.2.0-download-archive?target_os=Linux&target_arch=x86_64&target_distro=CentOS&target_version=7&target_type=runfilelocal

image-20230624131559850.png

wget https://developer.download.nvidia.com/compute/cuda/11.2.0/local_installers/cuda_11.2.0_460.27.04_linux.run
# 带上--kernel-source-path
sudo sh cuda_11.2.0_460.27.04_linux.run --kernel-source-path=/usr/src/kernels/3.10.0-1062.el7.x86_64/

image-20230624132701768.png

image-20230624132934002.png

image-20230624132947076.png

image-20230624133147319.png

进行一下配置

vim ~/.bashrc
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-11.2/lib64
export PATH=$PATH:/usr/local/cuda-11.2/bin
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda-11.2
#在终端运行:
source ~/.bashrc

#验证cuda安装正确
nvcc --version

#卸载
cd /usr/local/cuda-11.2/bin
cuda-uninstaller

image-20230624160756660.png

4.6安装cudnn

首先需要注册一个账号,从https://developer.nvidia.com/rdp/cudnn-archive下载指定版本

image-20230624140004940.png

tar -zxvf cudnn-11.2-linux-x64-v8.1.0.77.tgz

sudo cp cuda/include/cudnn.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*

4.7安装tensorflow-gpu

安装python3.8
yum install -y zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel  
yum install libffi-devel -y 

# 下载python3.8
wget https://www.python.org/ftp/python/3.8.12/Python-3.8.12.tgz

# 解压
tar -zxvf Python-3.8.12.tgz

# 编译,需要一点时间
cd Python-3.8.12/
./configure
make&&make install


# 将python3设置为默认python
# 查看python路径
which python
# 查看python3路径
which python3
# 将旧python备份,防止出问题后无法恢复
 mv /usr/bin/python /usr/bin/python.bak
# 将python3设置为默认python
ln -s /usr/local/bin/python3 /usr/bin/python


# 查看pip3路径
which pip3
# 查看pip路径,应该会说不存在
which pip
# 设置pip也为可用的命令
ln -s /usr/local/bin/pip3 /usr/bin/pip
# 查看pip版本,如果显示说明设置成功
pip -V


# 使用yum功能,发现报错
yum

# 修复这个问题,将首行里的python将改为python2,再次使用yum就可以了
vi /usr/libexec/urlgrabber-ext-down   
vi /usr/bin/yum
安装tensorflow
pip install tensorflow-gpu==2.5.0

4.8测试

import tensorflow as tf
tf.compat.v1.disable_eager_execution()
hello=tf.constant("Hello,Tensorflow!"")
a = tf.constant(1) 
b = tf.constant(2) 
sess=tf.compat.v1.Session()
print(sess.run(hello))
print(sess.run(a+b)) 

image-20230624161057116.png

五、直通WinServer2016

在WInServer安装驱动是最容易的

image-20230623182357415.png

image-20230623182427521.png

image-20230623182516818.png

image-20230623182540538.png

image-20230623182616134.png

image-20230623182632943.png

image-20230623183319242.png

六、资料

  1. https://www.zhihu.com/question/512743476
  2. GPU选型
  3. NVIDIA Tesla GPU系列P40参数性能——不支持半精度(FP16)模型训练
  4. R730 支持英伟达p40卡吗
  5. https://dl.dell.com/Manuals/all-products/esuprt_server_int/esuprt_server_int_poweredge/esuprt_server_rack/poweredge-r730_Concept-Guide5_en-us.pdf
  6. 2022-10-24 dell R740服务器 安装显卡 NVIDIA Tesla P40 24GB
  7. 记第一次给服务器安装NVIDIA Tesla P40 GPU显卡
  8. 新入手一台戴尔R730外加P40Tesla 24G显卡
  9. CentOS 7 安装 NVIDIA 显卡驱动和 CUDA Toolkit
  10. Unable to load the kernel module ‘nvidia.ko’
  11. centos7 Nvidia P40 安装GPU运行环境 - 主
  12. ERROR: Unable to load the ‘nvidia-drm‘ kernel module.
  13. centos7安装p40显卡驱动 + cuda10.0 + cudnn10.0 - 主
  14. Vsphere6.5 NVIDIA–Tesla–P40 GPU 直透
  15. ESXI 6.7 环境 centos7.6 虚拟机安装tesla k80 显卡驱动失败问题解决
  16. CentOS 7从grub如何启动系统
  17. 英伟达 NVIDIA-Tesla-P40 GPU 直透
  18. NVIDIA P40 VGPU部署GRID安装(超详细)
  19. Centos7升级内核——图文详尽版
  20. Gcc https://mirrors.tuna.tsinghua.edu.cn/gnu/gcc/gcc-6.3.0/
  21. CentOS7安装gcc6.3
  22. Centos6安装devtoolset(高版本gcc)
  23. centos7升级gcc版本,无需手动下载源码编译
  24. CentOS7/6使用rpm离线安装gcc7/6
  25. centos7.4下载地址,与安装详细教程
  26. http://linuxsoft.cern.ch/centos-vault/ iso下载快
  27. centos系统内核安装包各系列版本下载方法
  28. https://vault.centos.org/7.7.1908/os/x86_64/Packages/ - 内核模块
  29. DELL服务器手动调整风扇转速
  30. Centos7 安装独立显卡驱动
  31. Dell R720XD 风扇转速调节
  32. CentOS安装nvidia显卡驱动报错:CENTOS unable to load the kernel module ‘nvidia.ko‘/Secure Boot is enable
  33. CentOS 7.6安装 NVIDIA 独立显卡驱动(完整版)
  34. 华为虚拟化6.5.1显卡直通虚拟机nvidia-smi输出no devices were found
  35. ESXi nvidia-smi报错No devices were found, rm_init_adapter failed, device minor number 0
  36. VMware ESXi DirectPath I/O 直通GPU卡给虚拟机使用
  37. ESXi6.7-7.0 Ubuntu下Nvidia显卡直通教程
  38. VMware ESXi 6.7.0 update2 使用 GPU Passthrough 模式的坑
  39. ESXI虚拟机直通P40显卡给win11虚拟机
  40. ESXi GPU 直通
  41. 如何将虚拟机引导方式从BIOS改为UEFI
  42. https://wiki.centos.org/Download
  43. https://ui.licensing.nvidia.com/software vgpu

最后

大家如果喜欢我的文章,可以关注我的公众号(程序员麻辣烫)

我的个人博客为:https://shidawuhen.github.io/

往期文章回顾:

  1. 设计模式
  2. 招聘
  3. 思考
  4. 存储
  5. 算法系列
  6. 读书笔记
  7. 小工具
  8. 架构
  9. 网络
  10. Go语言

您可能感兴趣的与本文相关的镜像

PyTorch 2.5

PyTorch 2.5

PyTorch
Cuda

PyTorch 是一个开源的 Python 机器学习库,基于 Torch 库,底层由 C++ 实现,应用于人工智能领域,如计算机视觉和自然语言处理

评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员麻辣烫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值