ESXI 6.7 环境 16.04虚拟机安装tesla k80 一切正常,但虚拟机重装了centos7.6后,驱动一直安装失败,报错如下:
换了多个驱动版本,问题依然存在。安装时指定 --no-kernel-module-source选项,仍然找不到显卡,不能和显卡通信。
后来解决方法如下 :
按常规设置新建虚拟机,添加PCI设备,如下图
坑1:无法打开虚拟机 CentOS 7 K80 的电源。内存设置无效: 内存预留 (sched.mem.min) 应该等于内存大小 (16384)。 单击此处了解更多详细信息。
解决方法:打勾☑️ 预留所有客户机内存(全部锁定)即可
坑2:无法打开虚拟机 CentOS 7 K80 的电源。模块“DevicePowerOn”打开电源失败。 单击此处了解更多详细信息。
这个问题折腾了我一阵子,有几个地方要改:
1、物理机 (Dell R710) BIOS 中启用大于4G的内存映射 (Memory Mapped IO >4GB),这里就不弄图了,搜一下吧!
2、 编辑虚拟机 - 虚拟机选项 - 引导选项 - 固件 - EFI (默认为 BIOS),此处一定注意!!!
3、编辑虚拟机 - 虚拟机选项 - 高级 - 配置参数 - 编辑配置... -- 点2次左上角的 [添加参数],此时会在列表的尾部会出现 2 条显示为 “单击以编辑键” 条目,如图:
4、 配置hypervisor.cpuid.v0健值为 FALSE
5、 配置 pciPassthru.use64bitMMIO 健值为 TRUE
6、配置 pciPassthru.64bitMMIOSizeGB 键值为 48 ,这里的数值需要用GPU内存进行计算,我大致理解为 直通GPU的内存乘以四,我的卡为 双路12G ,映射一路,12*4 = 48,所以这里我写了48,如果理解有误,请大家联系我更正。
7、 以上配置参考来源于 https://octo.vmware.com/enable-compute-accelerators-vsphere-6-5-machine-learning-hpc-workloads/
8、 配好后像这样
经过以上配置,成功配置Nvidia Tesla K80 的直通
下面开始安装 显卡驱动。
安装依赖库
yum -y install gcc
yum -y install epel-release
yum -y install --enablerepo=epel dkms
安装kernel-devel
yum install kernel-devel
yum install kernel-headers
系统名
uname -r
对应版本
yum list | grep kernel-devel
检查nouveau驱动
lsmod | grep nouveau
禁用nouveau驱动
修改/usr/lib/modprobe.d/dist-blacklist.conf文件,加入一行并保存
#nvidia driver
blacklist nouveau
options nouveau modeset=0
备份\重建原来的镜像文件
mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak
dracut /boot/initramfs-$(uname -r).img $(uname -r)
重启
安装NVIDIA驱动
./NVIDIA-Linux-x86_64-440.82.run --no-opengl-files --kernel-source-path=/usr/src/kernels/3.10.0-1160.2.2.el7.x86_64
- 检查驱动情况
nvidia-smi
一切正常 !!!
安装cuda10.1
sudo ./cuda_10.1.105_418.39_linux.run
不要安装driver
打开主目录下的 .bashrc文件添加如下路径
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-10.1/lib64
export PATH=$PATH:/usr/local/cuda-10.1/bin
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda-10.1
source ~/.bashrc
安装cudnn7.6.5
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
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*
sudo ln -sf /usr/local/cuda-10.1/lib64/libcudnn.so.7.6.5 /usr/local/cuda-10.1/lib64/libcudnn.so.7