前言
这篇笔记写给自己以及那些准备入坑,或者掉入坑里的人。
硬件配置
CPU:E5-2680V1 ES *2
主板: 华硕Z9PA-D8 (并且配置了PIKE卡,ASBM6远程管理模块)
内存:DDR3-1600Mhz 32G RECC*4 Total 128G
显卡准确来说是计算卡:Tesla K80
磁盘阵列卡:芯片为LSI2108的IBM5015,商家说不能刷直通。实际能不能刷没试过。
硬盘:2T 7200RPM SAS硬盘*6 3T 7200RPM SAS硬盘*4 Toal 24TB容量
在远古时代这是一台价值四五万的服务器,确信脸。
坑一:K80 有两个核心,每个核心14G显存,这对主板有严格要求,即使主板Bios里有Above 4G decoding也不一定能支持,我用华硕B85M-Gamer这块板子试过了,插上去之后,在Win10下的资源管理器里会显示PCIE资源不足,没法顺利安装驱动。K80挑板子,朋友们买计算卡一定要查清楚计算卡与主板兼容的问题。
坑二:K80散热是被动散热,需要自行加装风扇,我这里的办法是用尼龙轧带把两个8CM暴力扇捆到计算卡两个核心位置上吹风,再反向捆绑一个9CM的猫扇(家里面有什么用什么了,8CM的普通扇也行)在中间位置抽风,防止中间位置积热。这样改造就相当于是一个3.5槽位计算卡了,如果机箱内还有其他PCIE设备要注意位置是否能装得下的问题。
坑三:如果你恰巧用的是华硕Z9PA,或者说是C602芯片组的主板,你现在点亮了,但是在直通到虚拟机上要么发生蓝屏死机【虚拟机宿主机设置问题】,要么只能直通一个核心的话【虚拟机设置或者是主板PCIE资源不够的问题】,那可以尝试一下PVE下的LXC。
LXC是什么和详细的优点略过。不过可以理解为比虚拟机还要高效率的存在,类似于Docker容器的存在【也不知道这样表述正不正确】
再次,如果很不幸,你买了一张K80,用的是Z9PA-D8这样勉强能够K80正常使用的主板,你有开各种虚拟机做服务器的需求,而且你同时还需要再一台机器里面使用CUDA,简单的来说你在Build一个AIO(ALL IN ONE)服务器的话,那么接下来的内容就是我这十天不吃不喝不睡捣鼓成功的结果。
正文
为了让PVE的GPU直通到LXC,我重装了两次PVE。其中一次还格式化错硬盘,4T的学习资料 全没了。
PVE7系统安装部分略。
全新的PVE7,目前的内核是5.11.4。顺便说一下,众所周知PVE是基于Debian的,而PVE7是基于Debian11 bullseye的。如果你在使用的是PVE6 buster,需要在操作上注意一些差别。
第一步修改订阅库也就是Repository。
PVE7:
vi /etc/apt/sources.list
#把所有代码删掉。然后复制粘贴下面的这一段。这里是PVE7专用的。PVE6的不要复制粘贴
deb http://deb.debian.org/debian bullseye main contrib non-free
deb-src http://deb.debian.org/debian bullseye main contrib non-free
deb http://deb.debian.org/debian-security/ bullseye-security main contrib non-free
deb-src http://deb.debian.org/debian-security/ bullseye-security main contrib non-free
deb http://deb.debian.org/debian bullseye-updates main contrib non-free
deb-src http://deb.debian.org/debian bullseye-updates main contrib non-free
#bullseye backport
deb http://deb.debian.org/debian bullseye-backports main contrib non-free
deb-src http://deb.debian.org/debian bullseye-backports main contrib non-free
PVE6
vi /etc/apt/sources.list
#把原来的代码全部删掉然后复制以下内容,这个是PVE6专用的,PVE7的可以看下一步
deb http://deb.debian.org/debian buster main contrib non-free
deb-src http://deb.debian.org/debian buster main contrib non-free
deb http://deb.debian.org/debian-security/ buster-security main contrib non-free
deb-src http://deb.debian.org/debian-security/ buster-security main contrib non-free
deb http://deb.debian.org/debian buster-updates main contrib non-free
deb-src http://deb.debian.org/debian buster-updates main contrib non-free
#backport
deb http://deb.debian.org/debian buster-backports main contrib non-free
deb-src http://deb.debian.org/debian buster-backports main contrib non-free
然后更新库。
apt-get update -y
apt-get full-upgrade -y 然后安装header
首先,通过uname -a 查询自己的内核。
然后,apt-cache search pve-header 查询跟自己内核版本一样的header
注意这里说的是pve-header 而不是linux-header
然后 ##apt install pve-headers-5.11.22-4-pve##这个是我的,PVE7下的具体你们要把 install 后面的内容换成你们的版本号。
接下来安装dkms,这个包太重要了,不然安装nvidia驱动总是报错。
apt-get update -y
apt-get install dkms -y 然后再确认一下,计算卡插上了,并且能准确显示。
lspci | grep -i nvidia
lspci -vvv |grep -i -A 20 nvidia
这里输出的结果应该是这样的:
##第一条命令输出结果应该是这样的
08:00.0 3D controller: NVIDIA Corporation GK210GL [Tesla K80] (rev a1)
09:00.0 3D controller: NVIDIA Corporation GK210GL [Tesla K80] (rev a1)
##第二条命令输出结果应该是这样的:
root@pve:~# lspci -vvv |grep -i -A 20 nvidia
pcilib: sysfs_read_vpd: read failed: Input/output error
08:00.0 3D controller: NVIDIA Corporation GK210GL [Tesla K80] (rev a1)
Subsystem: NVIDIA Corporation GK210GL [Tesla K80]
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Interrupt: pin A routed to IRQ 107
NUMA node: 0
Region 0: Memory at f4000000 (32-bit, non-prefetchable) [size=16M]
Region 1: Memory at 383800000000 (64-bit, prefetchable) [size=16G]
Region 3: Memory at 383c00000000 (64-bit, prefetchable) [size=32M]
Capabilities: [60] Power Management version 3
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [68] MSI: Enable+ Count=1/1 Maskable- 64bit+
Address: 00000000fee00a78 Data: 0000
Capabilities: [78] Express (v2) Endpoint, MSI 00
DevCap: MaxPayload 256 bytes, PhantFunc 0, Latency L0s unlimited, L1 <64us
ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset- SlotPowerLimit 25.000W
DevCtl: CorrErr- NonFatalErr- FatalErr- UnsupReq-
RlxdOrd+ ExtTag+ PhantFunc- AuxPwr- NoSnoop-
MaxPayload 256 bytes, MaxReadReq 512 bytes
DevSta: CorrErr- NonFatalErr- FatalErr- UnsupReq- AuxPwr- TransPend-
--
Kernel driver in use: nvidia
Kernel modules: nvidia
09:00.0 3D controller: NVIDIA Corporation GK210GL [Tesla K80] (rev a1)
Subsystem: NVIDIA Corporation GK210GL [Tesla K80]
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Interrupt: pin A routed to IRQ 108
NUMA node: 0
Region 0: Memory at f3000000 (32-bit, non-prefetchable) [size=16M]
Region 1: Memory at 383000000000 (64-bit, prefetchable) [size=16G]
Region 3: Memory at 383400000000 (64-bit, prefetchable) [size=32M]
Capabilities: [60] Power Management version 3
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [68] MSI: Enable+ Count=1/1 Maskable- 64bit+
Address: 00000000fee00a98 Data: 0000
Capabilities: [78] Express (v2) Endpoint, MSI 00
DevCap: MaxPayload 256 bytes, PhantFunc 0, Latency L0s unlimited, L1 <64us
ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset- SlotPowerLimit 25.000W
DevCtl: CorrErr- NonFatalErr- FatalErr- UnsupReq-
RlxdOrd+ ExtTag+ PhantFunc- AuxPwr- NoSnoop-
pcilib: MaxPayload 256 bytes, MaxReadReq 512 bytes
sysfs_read_vpd: read failed: Input/output error DevSta: CorrErr- NonFatalErr- FatalErr- UnsupReq- AuxPwr- TransPend-
--
Kernel driver in use: nvidia
Kernel modules: nvidia
Kernel driver还不是Nvidia没有关系因为现在还没有安装Nvidia的驱动,需要注意的是这个部分
Region 0: Memory at f8000000 (32-bit, non-prefetchable)
Region 1: Memory at d8000000 (64-bit, prefetchable)
Region 3: Memory at d4000000 (64-bit, prefetchable) 出现上面这个情况说明能用。(不一定一摸一样,就看内存是不是都分配到了地址。)
出现下面的情况说明不能正常使用:
Region 0: Memory at c1000000 (32-bit, non-prefetchable)
Region 1: Memory at (64-bit, prefetchable)
Region 3: Memory at (64-bit, prefetchable) 此方法出处: https://forums.developer.nvidia.com/t/driver-installing-problem-for-nvidia-tesla-k80-under-linux/39124/11
然后安装显卡驱动
PVE7
apt-get update
apt-get install -t bullseye-backports nvidia-driver nvidia-smi PVE6
apt-get update
apt-get install -t buster-backports nvidia-driver nvidia-smi 安装完成之后去添加模块
vi /etc/modules-load.d/nvidia.conf
#然后确保nvidia.conf里面有这些内容
nvidia-drm
nvidia
nvidia_uvm 然后再看同样目录里面其他.conf有没有把nvidia兼容驱动(主要是nouveau,nvidiafb这两个)屏蔽掉。比如说 nvidia-blacklist.conf 都看一个遍,如果有就不要重复添加,如果没有那就手动屏蔽。可以再回到nvidia.conf里面添加下面两行代码:
blacklist nouveau
blacklist nvidiafb 然后更新模块
update-initramfs -u -k all 然后新建规则文件
vi /etc/udev/rules.d/70-nvidia.rules
#在这个文件内添加以下代码
KERNEL=="nvidia", RUN+="/bin/bash -c '/usr/bin/nvidia-smi -L && /bin/chmod 666 /dev/nvidia*'"
KERNEL=="nvidia_uvm", RUN+="/bin/bash -c '/usr/bin/nvidia-modprobe -c0 -u && /bin/chmod 0666 /dev/nvidia-uvm*'"
然后重启PVE
然后验证一下驱动装好没有。
ls -al /dev/nvidia*
ls -al /dev/dri/*
nvidia-smi 这三条命令输出的结果应该分别是这样的:
#第一条命令输出结果,留意一下195,234,还有第二条命令226 所对应的硬件、模块跟你的是不是一样的,如果不一样记一下,后面要用到。同时也别忘了看权限是否相同,这也很重要。
root@pve:~# ls -al /dev/nvidia*
crw-rw-rw- 1 root root 195, 0 Sep 13 22:40 /dev/nvidia0
crw-rw-rw- 1 root root 195, 1 Sep 13 22:40 /dev/nvidia1
crw-rw-rw- 1 root root 195, 255 Sep 13 22:40 /dev/nvidiactl
crw-rw-rw- 1 root root 195, 254 Sep 13 22:40 /dev/nvidia-modeset
crw-rw-rw- 1 root root 234, 0 Sep 13 22:40 /dev/nvidia-uvm
crw-rw-rw- 1 root root 234, 1 Sep 13 22:40 /dev/nvidia-uvm-tools
/dev/nvidia-caps:
total 0
drw-rw-rw- 2 root root 80 Sep 13 22:40 .
drwxr-xr-x 23 root root 5420 Sep 14 13:09 ..
cr-------- 1 root root 240, 1 Sep 13 22:40 nvidia-cap1
cr--r--r-- 1 root root 240, 2 Sep 13 22:40 nvidia-cap2
#第二条命令输出结果:
ls -al /dev/dri/*
root@pve:~# ls -al /dev/dri/*
crw-rw---- 1 root video 226, 0 Sep 13 22:40 /dev/dri/card0
crw-rw---- 1 root video 226, 1 Sep 13 22:40 /dev/dri/card1
crw-rw---- 1 root video 226, 2 Sep 13 22:40 /dev/dri/card2
crw-rw---- 1 root render 226, 128 Sep 13 22:40 /dev/dri/renderD128
crw-rw---- 1 root render 226, 129 Sep 13 22:40 /dev/dri/renderD129
/dev/dri/by-path:
total 0
drwxr-xr-x 2 root root 140 Sep 13 22:40 .
drwxr-xr-x 3 root root 160 Sep 13 22:40 ..
lrwxrwxrwx 1 root root 8 Sep 13 22:40 pci-0000:08:00.0-card -> ../card0
lrwxrwxrwx 1 root root 13 Sep 13 22:40 pci-0000:08:00.0-render -> ../renderD128
lrwxrwxrwx 1 root root 8 Sep 13 22:40 pci-0000:09:00.0-card -> ../card1
lrwxrwxrwx 1 root root 13 Sep 13 22:40 pci-0000:09:00.0-render -> ../renderD129
lrwxrwxrwx 1 root root 8 Sep 13 22:40 pci-0000:11:00.0-card -> ../card2
###第三条命令输出结果
root@pve:~# nvidia-smi
Tue Sep 14 20:18:17 2021
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 460.91.03 Driver Version: 460.91.03 CUDA Version: 11.2 |
|-------------------------------+----------------------+----------------------+
| 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 K80 On | 00000000:08:00.0 Off | 0 |
| N/A 40C P8 26W / 149W | 0MiB / 11441MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
| 1 Tesla K80 On | 00000000:09:00.0 Off | 0 |
| N/A 39C P8 30W / 149W | 0MiB / 11441MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| No running processes found |
+-----------------------------------------------------------------------------+
WARNING: infoROM is corrupted at gpu 0000:08:00.0
WARNING: infoROM is corrupted at gpu 0000:09:00.0
#至于为什么会出现infoROM is corrupted at gpu 0000:08:00.0我也不知道,知道的人跟我说一下 新建一个LXC,我Ubuntu不知道为什么没有成功可能是我某个地方操作不对,有兴趣的也可以去试一下,理论上像CentOS Ubuntu 这类Linux系统应该都没有问题的。这里我用Debian10作为演示(其实是为了避免更多的坑)
从PVE 的WebUI上直接下载Debian的模板。然后应用到实例上。6C,8G, 1T,非特权+嵌套+键盘。
进入LXC系统后
apt-get update
apt-get full-upgrade 然后通过run file来安装nvidia驱动,驱动的版本要跟宿主机一摸一样。
通过在宿主机上输入nvidia-smi得知目前的驱动版本是460.91.03。
然后通过wget 获取驱动,没有wget 那就apt-get install wget -y 获取一个。
wget http://us.download.nvidia.com/XFree86/Linux-x86_64/460.91.03/NVIDIA-Linux-x86_64-460.91.03.run 上述的那个网站你想要安装其他版本的只要改版本号就行了。
然后进行无核心安装
chmod +x NVIDIA-Linux-x86_64-460.91.03.run
sudo ./NVIDIA-Linux-x86_64-460.91.03.run --no-kernel-module 驱动安装完毕之后关闭LXC,回到宿主机,编辑LXC配置文件,进行显卡直通。
/etc/pve/lxc/XXX.conf 其中XXX是你VID我这里是105因此
vi /etc/pve/lxc/105.conf
##将以下代码添加到文件的末尾,注意那三个数字是不是跟你之前看的一样,不一样需要修改。
lxc.cgroup.devices.allow: c 195:* rwm
lxc.cgroup.devices.allow: c 234:* rwm
lxc.cgroup.devices.allow: c 226:* rwm
lxc.mount.entry: /dev/nvidia0 dev/nvidia0 none bind,optional,create=file
lxc.mount.entry: /dev/nvidia1 dev/nvidia1 none bind,optional,create=file
lxc.mount.entry: /dev/nvidiactl dev/nvidiactl none bind,optional,create=file
lxc.mount.entry: /dev/nvidia-uvm dev/nvidia-uvm none bind,optional,create=file
lxc.mount.entry: /dev/nvidia-modeset dev/nvidia-modeset none bind,optional,create=file
lxc.mount.entry: /dev/nvidia-uvm-tools dev/nvidia-uvm-tools none bind,optional,create=file
lxc.mount.entry: /dev/dri dev/dri none bind,optional,create=dir 保存退出。
然后开启LXC。
输入以下命令
ls -al /dev/nvidia*
ls -al /dev/dri/*
nvidia-smi 返回值分别为:
#第一个命令返回值:
crw-rw-rw- 1 nobody nogroup 195, 254 Sep 13 14:40 /dev/nvidia-modeset
crw-rw-rw- 1 nobody nogroup 234, 0 Sep 13 14:40 /dev/nvidia-uvm
crw-rw-rw- 1 nobody nogroup 234, 1 Sep 13 14:40 /dev/nvidia-uvm-tools
crw-rw-rw- 1 nobody nogroup 195, 0 Sep 13 14:40 /dev/nvidia0
crw-rw-rw- 1 nobody nogroup 195, 1 Sep 13 14:40 /dev/nvidia1
crw-rw-rw- 1 nobody nogroup 195, 255 Sep 13 14:40 /dev/nvidiactl
#第二个命令返回值
root@CUDA:~# ls -al /dev/dri/*
crw-rw---- 1 nobody nogroup 226, 0 Sep 13 14:40 /dev/dri/card0
crw-rw---- 1 nobody nogroup 226, 1 Sep 13 14:40 /dev/dri/card1
crw-rw---- 1 nobody nogroup 226, 2 Sep 13 14:40 /dev/dri/card2
crw-rw---- 1 nobody nogroup 226, 128 Sep 13 14:40 /dev/dri/renderD128
crw-rw---- 1 nobody nogroup 226, 129 Sep 13 14:40 /dev/dri/renderD129
/dev/dri/by-path:
total 0
drwxr-xr-x 2 nobody nogroup 140 Sep 13 14:40 .
drwxr-xr-x 3 nobody nogroup 160 Sep 13 14:40 ..
lrwxrwxrwx 1 nobody nogroup 8 Sep 13 14:40 pci-0000:08:00.0-card -> ../card0
lrwxrwxrwx 1 nobody nogroup 13 Sep 13 14:40 pci-0000:08:00.0-render -> ../renderD128
lrwxrwxrwx 1 nobody nogroup 8 Sep 13 14:40 pci-0000:09:00.0-card -> ../card1
lrwxrwxrwx 1 nobody nogroup 13 Sep 13 14:40 pci-0000:09:00.0-render -> ../renderD129
lrwxrwxrwx 1 nobody nogroup 8 Sep 13 14:40 pci-0000:11:00.0-card -> ../card2
第三个命令返回值:
oot@CUDA:~# nvidia-smi
Tue Sep 14 12:58:17 2021
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 460.91.03 Driver Version: 460.91.03 CUDA Version: 11.2 |
|-------------------------------+----------------------+----------------------+
| 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 K80 Off | 00000000:08:00.0 Off | 0 |
| N/A 40C P8 27W / 149W | 0MiB / 11441MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
| 1 Tesla K80 Off | 00000000:09:00.0 Off | 0 |
| N/A 39C P8 30W / 149W | 0MiB / 11441MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| No running processes found |
+-----------------------------------------------------------------------------+
WARNING: infoROM is corrupted at gpu 0000:08:00.0
WARNING: infoROM is corrupted at gpu 0000:09:00.0
则说明成功,如果nvidia-smi 返回值错误,那多半是LXC没有安装好驱动(可能是依赖包没有装好,可能是还有别的我忘了说。),这里的驱动是要去核心。
通常一般的教程就到这里,完全没有讲怎么搭建CUDA环境。
有两种方法,
第一种最简单的是安装anaconda-navigator,然后再conda install cuda-toolkit,然后再配置一下环境变量就行了。
第二种是下载cuda-toolkit run file 然后手动安装,至于为什么不apt-get install cuda-toolkit。我是怕会自动安装上驱动,然后版本不对,导致直通失败。不过在Debian下 使用apt hold nvidia-driver 应该就能锁定显卡驱动的版本号。
第一种
##Anaconda-navigator的网址
https://docs.anaconda.com/anaconda/install/linux/ Debian:
CentOS:
yum install libXcomposite libXcursor libXi libXtst libXrandr alsa-lib mesa-libEGL libXdamage mesa-libGL libXScrnSaver 然后通过conda install 来安装cuda-toolkit
conda install -c anaconda cudatoolkit 环境变量的话看一下输入命令nvcc有没有反应,如果说bash command not found那就是没有配置环境变量,如果说nvcc fatal,那说明配置好了。
防止我自己也忘记怎么配置环境变量我也Mark一下:
vi ~/.bashrc
##将一下内容添加到文件末尾
export LD_LIBRARY_PATH=/usr/local/cuda/lib
export PATH=$PATH:/usr/local/cuda/bin 如果CUDA文件夹有版本号那就改成有版本号,没有就不用改,不确定就直接 ls /usr/local 看下cuda带不带版本号的。
第二种
从nvidia官网获取run file,不管是通过迅雷下载然后再通过winscp传到LXC上,还是直接wget
(这里推荐用迅雷下载好,然后再传到LXC上这样方法,这样做会更加稳定,稳就是快。)
我选择了一个版本跟我显卡驱动匹配的CUDA toolkit进行安装。
传上LXC之后
apt-get update -y
apt-get install gcc -y
sudo apt-get install g++ freeglut3-dev build-essential libx11-dev \
libxmu-dev libxi-dev libglu1-mesa libglu1-mesa-dev freeimage-devel
chmod +x cuda_11.2.2_460.32.03_linux.run
bash cuda_11.2.2_460.32.03_linux.run
不安装CUDA driver
然后
ls /usr/local/cuda-11.2 也可能是
ls /usr/local/cuda 记不太清楚了,ls出来有文件 有bin 有nvcc那说明成功安装了,然后再nvcc一下如果报nvcc fatal那说明环境变量已经弄好了,否则就需要去再弄一下环境变量。方法前面有提到。
还可以去试一试samples里面的文件跑一个benchmark
cuda-install-samples-11.2.sh ~
cd ~/NVIDIA_CUDA-11.2_Samples/5_Simulations/nbody
sudo apt-get install libglu1-mesa libxi-dev libxmu-dev libglu1-mesa-dev
sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev libglfw3-dev libgles2-mesa-dev
GLPATH=/usr/lib make
./nbody numdevices=2 -benchmark
结果CUDA算力只有3.7 hhhhhhhhhhhhhhhhhhhh
不过到这一步已经表明K80能在Z9PA-D8平台上,同时与一张PCIEX1 的千兆网卡,两张磁盘阵列卡(Pike现在跑的是X4通道,M5105跑的是X8通道,不过好像资源有点不够用了2333333)兼容使用。使用K80的话不建议搭配C602或者X79平台使用。C612或者X99应该能够更加合适。
如果按照上述的操作估计也就一两个小时就能弄好了吧,如果能成功复刻,那这篇笔记的目的就达到了。
参考资料: https://passbe.com/2020/02/19/gpu-nvidia-passthrough-on-proxmox-lxc-container/ https://medium.com/@MARatsimbazafy/journey-to-deep-learning-nvidia-gpu-passthrough-to-lxc-container-97d0bc474957 https://docs.anaconda.com/anaconda/install/linux/ https://wiki.debian.org/SourcesList ##################################################### 就是这个网站,看点一:解释了为什么K80不是每一张主板都能用,原理在里面写清楚了。看点二:Nvidia的staff跟提问者的对话,也相当有意思。 https://forums.developer.nvidia.com/t/driver-installing-problem-for-nvidia-tesla-k80-under-linux/39124/11 #################################################### https://www.how2shout.com/linux/how-to-install-and-use-backports-in-debian-11-bullseye/ https://docs.nvidia.com/cuda/archive/11.2.0/ https://docs.nvidia.com/datacenter/tesla/tesla-installation-notes/index.html 以上硬件由Ms.Schedar特别赞助