R730直通Tesla P40显卡

news2024/12/24 21:31:16

本次讲述如何在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.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

image-20230624152459072.png

CUDA:https://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驱动

  • https://www.nvidia.com/Download/index.aspx

  • https://www.nvidia.com/Download/Find.aspx?lang=en-us

2.5CUDA

  • https://developer.nvidia.com/cuda-toolkit-archive

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语言

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/681291.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

初探Flink的Java实现流处理和批处理

端午假期&#xff0c;夏日炎炎&#xff0c;温度连续40度以上&#xff0c;在家学习Flink相关知识&#xff0c;记录下来&#xff0c;方便备查。 开发工具&#xff1a;IntelliJ Idea Flink版本&#xff1a;1.13.0 本次主要用Flink实现批处理&#xff08;DataSet API&#xff09; 和…

SAM与Prompt的结合

1. SAM介绍 由Meta AI Research开发的Segment anything model&#xff08;简称SAM&#xff09;最近引起了广泛的关注。SAM在超过10亿个mask的大型分割数据集上进行了训练&#xff0c;能够在特定的图像上分割任何对象。在最初的SAM工作中&#xff0c;作者们使用了零样本迁移任务…

08- c语言字符串 (C语言)

一 字符串的定义及基本使用 1、什么是字符串 被双引号引用的字符集合&#xff01;例如&#xff1a;”hello” 、”world”&#xff0c;或者是以 \0 结尾的字符数组&#xff01;&#xff01;&#xff01; 比如&#xff1a;char ch[] {h, e, \0} 注意&#xff1a;”hello” 中…

GB50149-2010电气装置安装工程母线装置施工及验收规范

为了确保强硬钢丝绳金属封闭体绝缘金属封闭母线、绝缘子、硬件、穿墙套管等设备母线的安装质量,加快安装技术的进步,和确保设备的安全运行,使该规范。 本规范适用于总线设备安装了750 kv及以下的T范围施工和验收。 母线的安装应按照批准的设计文件施工。 设备和设备运输、储…

python:并发编程(二十五)

前言 本文将和大家一起探讨python并发编程的实际项目&#xff1a;win图形界面应用&#xff08;篇七&#xff0c;共八篇&#xff09;&#xff0c;系列文章将会从零开始构建项目&#xff0c;并逐渐完善项目&#xff0c;最终将项目打造成适用于高并发场景的应用。 本文为python并…

postman 文档、导出json脚本 导出响应数据 response ,showdoc导入postman json脚本 导出为文档word或markdown

生成文档 Collections中 选中文件夹 - ... (文件夹 功能小按钮) - view documentation : 保存响应数据 Response&#xff1a;&#xff08;如果导出接口数据&#xff0c;会同步导出响应数据&#xff09; 请求接口后&#xff0c;点击下方 Save as Example 可以保存响应数…

机器学习day20(前向传播的向量化代码,矩阵乘法)

前向传播的循环代码与向量化代码的对比 把X、B写作二维数组&#xff0c;即矩阵左边的for循环就可以用右边的np.matmul来实现matmul是numpy执行矩阵乘法的一种方式注意&#xff1a;此时所有的变量&#xff08;X、W、B、Z、A_out&#xff09;都是二维数组&#xff0c;即矩阵 向…

基础排序算法【归并排序+非递归版本+边界修正】

基础排序算法【归并排序非递归版本边界修正】 Ⅰ.归并排序(递归版本)①.分割②.归并③.拷贝 Ⅱ.非递归版本Ⅲ.边界修正 Ⅰ.归并排序(递归版本) 递归排序&#xff0c;采用的是分治法。分成子问题来处理。先让序列不断分割成子序列&#xff0c;当子序列有序后再合并。 对于一段…

Yolov5-Face 原理解析及算法解析

YOLOv5-Face 文章目录 YOLOv5-Face1. 为什么人脸检测 一般检测&#xff1f;1.1 YOLOv5Face人脸检测1.2 YOLOv5Face Landmark 2.YOLOv5Face的设计目标和主要贡献2.1 设计目标2.2 主要贡献 3. YOLOv5Face架构3.1 模型架构3.1.1 模型示意图3.1.2 CBS模块3.1.3 Head输出3.1.4 stem…

202320读书笔记|《宋词》——竹杖芒鞋轻胜马,谁怕?一蓑烟雨任平生

202320读书笔记&#xff5c;《宋词》——竹杖芒鞋轻胜马&#xff0c;谁怕&#xff1f;一蓑烟雨任平生 《宋词》韩震主编&#xff0c;偶然从书友那加入书架的书。宋词挺喜欢李清照的词以及知否的《菩萨蛮》。诗集&#xff0c;词&#xff0c;俳句&#xff0c;短歌我都很喜欢&…

工欲善其事,必先利其器-基于ubuntu18.04 VScode开发100ASK-ESP32

点击上方“嵌入式应用研究院”&#xff0c;选择“置顶/星标公众号” 干货福利&#xff0c;第一时间送达&#xff01; 来源 | 嵌入式应用研究院 整理&排版 | 嵌入式应用研究院 前面我们基于ubuntu环境搭建了esp-idf的开发环境&#xff0c;它也是为了接下来基于VSCode来开发1…

【openGauss基本概念】---快速入门

【openGauss简单使用】---快速入门 &#x1f53b; 一、基本概念&#x1f530; 1.1 openGauss&#x1f530; 1.2 数据库&#xff08;Database&#xff09;&#x1f530; 1.3 数据块&#xff08;Block&#xff09;&#x1f530; 1.4 行&#xff08;Row&#xff09;&#x1f530; …

【MySQL数据库】主从复制与读写分离

目录 一、读写分离1.1概述1.2为什么要读写分离呢&#xff1f;1.3什么时候要读写分离&#xff1f; 1.4主从复制与读写分离1.5mtsql支持的复制类型1.6主从复制工作流程1.7主从复制原理 二、主从复制实战 一、读写分离 1.1概述 读写分离&#xff0c;基本的原理是让主数据库处理事…

React从入门到实战 -组件的三大核心属性(2)props

文章目录 基本使用对props进行限制类式组件中的构造器 基本使用 // 定义组件class MyComponent extends React.Component{render(){return (<ul><li>姓名&#xff1a;{this.props.name}</li><li>年龄&#xff1a;{this.props.age}</li><li>…

【开源与项目实战:开源实战】85 | 开源实战四(中):剖析Spring框架中用来支持扩展的两种设计模式

上一节课中&#xff0c;我们学习了 Spring 框架背后蕴藏的一些经典设计思想&#xff0c;比如约定优于配置、低侵入松耦合、模块化轻量级等等。我们可以将这些设计思想借鉴到其他框架开发中&#xff0c;在大的设计层面提高框架的代码质量。这也是我们在专栏中讲解这部分内容的原…

MongoDB负载均衡集群(第8章节选)

MongoDB自身可组成分片加复制的集群&#xff0c;在这个集群的前端加上负载均衡器&#xff08;比如HAProxmy Keepalived&#xff09;&#xff0c;就可组建成一个无单点故障、十分完美的高可用负载均衡集群&#xff08;如图8-1所示&#xff09;。 图8- 1 整个MongDB高可用体系结…

基于java+swing+mysql飞机票预订系统

基于javaswingmysql飞机票预订系统 一、系统介绍二、功能展示1.项目内容2.项目骨架3.数据库表4.注册窗口5.登录窗口6、用户-主窗口7、用户-查询航班8.用户--订票8.用户--取票9.管理员-所有航班信息10.管理员-添加航班11.用户信息12.订票状态 四、其它1.其他系统实现五.获取源码…

路径规划-DWA算法(C++实现)

1、简单介绍 DWA算法&#xff08;dynamic window approach&#xff09;&#xff0c;其原理主要是在速度空间&#xff08;v,w&#xff09;中采样多组速度&#xff0c;并模拟出这些速度在一定时间内的运动轨迹&#xff0c;并通过评价函数对这些轨迹进行评价(其中包括距离障碍物距…

【学习笔记】 科目一之概念篇

【学习笔记】 科目一之概念篇 概念题方法 1&#xff09;抓重点&#xff1a;科目一设计知识范围太广&#xff0c;不要妄想所有知识点都复习到&#xff0c;这是不可能的&#xff0c;我们的目标是45分几个而不是考高分&#xff0c;复习时间有限&#xff0c;所以要学会抓重点&…

图片是如何生成的--图像生成模型(GAN、VAE、扩散模型)简介

目录 1.GAN 2.AutoEncoder及其变种&#xff1a;AE/DAE/VAE/VQVAE 2.1 AE&#xff1a; 2.2 DAE&#xff1a;Denoising AutoEncoder 2.3 VAE&#xff1a;Variational AutoEncoder 2.4 VQVAE&#xff1a;Vector-quantised Variational AutoEncoder 3. 扩散模型 3.1 扩散…