我最近从 System76 购买了一个有多个 GPU 的盒子:一个 Quadro M6000 和两个 Tesla K40。
当我lspci | grep -i nvidia
这样做时它说
05:00.0 VGA compatible controller: NVIDIA Corporation Device 17f0 (rev a1)
05:00.1 Audio device: NVIDIA Corporation Device 0fb0 (rev a1)
06:00.0 3D controller: NVIDIA Corporation GK110BGL [Tesla K40c] (rev a1)
09:00.0 3D controller: NVIDIA Corporation GK110BGL [Tesla K40c] (rev a1)
所以,他们那里..但是,当我nvidia-smi -L
这样做时只显示
GPU 0: Quadro M6000 (UUID: GPU-09446504-6a9e-866a-a65d-0f1d55b7657b)
并ls -l /dev/nvidia*
显示
crw-rw-rw- 1 root root 195, 0 Aug 9 03:29 /dev/nvidia0
crw-rw-rw- 1 root root 195, 255 Aug 9 03:29 /dev/nvidiactl
crw-rw-rw- 1 root root 248, 0 Aug 12 16:19 /dev/nvidia-uvm
我不确定,但我猜/dev/nvidia0
是 Quadro M6000,也许没有/dev/nvidia1
或/dev/nvidia2
,这是盒子看不到 Tesla K40 的另一个症状(或原因)。此外,我的测试程序调用获取设备数量,仅产生一个 GPU。
我正在运行 Ubuntu 14.04.3,并且已经安装cuda_7.0.28_linux.run
(并通过该运行文件安装了 NVIDIA 驱动程序。)
为什么其他卡无法访问?如何才能让它们访问?
答案1
好吧!txbob 在devtalk nvidia 论坛给了我足够的指点来找到解决方案。
所以,基本上,nouveau 干扰了 nvidia 驱动程序,尽管我看到了一个disable-nouveau
文件/etc/modprobe.d
,但它还没有生效,因为我没有重做initramfs
...
因此,为了做到这一点,我需要做
rm -f /boot/initrd*
update-initramfs -c -k all
update-grub2
之后,运行nvidia-smi -L
结果
GPU 0: Quadro M6000 (UUID: GPU-09446504-6a9e-866a-a65d-0f1d55b7657b)
GPU 1: Tesla K40c (UUID: GPU-e992022a-724f-8f47-e08f-a954053020e6)
GPU 2: Tesla K40c (UUID: GPU-4d14695e-3e43-bf43-a3e3-91190f696d39)
所以,现在一切都好了!希望这能帮助别人!
答案2
尽管这个问题很老了,但这可能会对某些人有所帮助。
我认为你成功的关键一步是将 nouveau 驱动程序列入黑名单并重新配置了 grub,因此这些initramfs
东西是不必要的。
来源:联想 T440p [NVidia GT 730M] 上的 Bumblebee,搭载 XUbuntu/Ubuntu 16.04 LTS