我有一台配备 NVIDIA Quadro 1000M + 集成 Intel GPU 的 Thinkpad W520。我刚刚在其上全新安装了 Ubuntu 18.10。
我想要实现以下目标:
- 正在运行的 CUDA,
- 通过 DisplayPort/VGA 连接外部显示器,
- 如果可能的话,处于 Optimus 模式(在 BIOS 中选择)。
安装任何内容之前的状态
我已nouveau
默认设置。它通过 DisplayPort 和 VGA(笔记本电脑上的连接器)找到外接显示器,但它不能持续工作:外接显示器会在一段时间后关闭。
我做了什么
我尝试安装 CUDA 以及相应的 NVIDIA 驱动程序:
sudo apt install nvidia-cuda-toolkit
sudo ubuntu-drivers autoinstall
在编译内核模块的过程中发生了神秘崩溃,然后使用 重启后完成安装dkpg --configure -a
。最后,它安装了 CUDA 9.1。
此时,笔记本电脑:
- 以擎天柱模式启动,
- 它没有检测到外部 VGA 显示器(需要测试 HDMI),
glxinfo
说直接渲染是Yes
,- 但是图形不够流畅(当我移动窗口或刷新部分屏幕时,屏幕上会出现三角形的伪影),
- 从原始9.1工具包安装程序中解压并编译了一些示例来验证CUDA后,结果发现CUDA也存在问题。
matrixMul
不起作用,看看输出:
Error! Matrix[204798]=0.00000000, ref=3.19999981 error term is > 1.000000E-06
Error! Matrix[204799]=0.00000000, ref=3.19999981 error term is > 1.000000E-06
Result = FAIL
奇怪的是,deviceQuery
确实有效,看看输出:
./deviceQuery Starting...
CUDA Device Query (Runtime API) version (CUDART static linking)
Detected 1 CUDA Capable device(s)
Device 0: "Quadro 1000M"
CUDA Driver Version / Runtime Version 9.1 / 9.1
CUDA Capability Major/Minor version number: 2.1
Total amount of global memory: 1985 MBytes (2081751040 bytes)
MapSMtoCores for SM 2.1 is undefined. Default to use 64 Cores/SM
MapSMtoCores for SM 2.1 is undefined. Default to use 64 Cores/SM
( 2) Multiprocessors, ( 64) CUDA Cores/MP: 128 CUDA Cores
GPU Max Clock rate: 1400 MHz (1.40 GHz)
Memory Clock rate: 900 Mhz
Memory Bus Width: 128-bit
L2 Cache Size: 131072 bytes
Maximum Texture Dimension Size (x,y,z) 1D=(65536), 2D=(65536, 65535), 3D=(2048, 2048, 2048)
Maximum Layered 1D Texture Size, (num) layers 1D=(16384), 2048 layers
Maximum Layered 2D Texture Size, (num) layers 2D=(16384, 16384), 2048 layers
Total amount of constant memory: 65536 bytes
Total amount of shared memory per block: 49152 bytes
Total number of registers available per block: 32768
Warp size: 32
Maximum number of threads per multiprocessor: 1536
Maximum number of threads per block: 1024
Max dimension size of a thread block (x,y,z): (1024, 1024, 64)
Max dimension size of a grid size (x,y,z): (65535, 65535, 65535)
Maximum memory pitch: 2147483647 bytes
Texture alignment: 512 bytes
Concurrent copy and kernel execution: Yes with 1 copy engine(s)
Run time limit on kernels: Yes
Integrated GPU sharing Host Memory: No
Support host page-locked memory mapping: Yes
Alignment requirement for Surfaces: Yes
Device has ECC support: Disabled
Device supports Unified Addressing (UVA): Yes
Supports Cooperative Kernel Launch: No
Supports MultiDevice Co-op Kernel Launch: No
Device PCI Domain ID / Bus ID / location ID: 0 / 1 / 0
Compute Mode:
< Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >
deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 9.1, CUDA Runtime Version = 9.1, NumDevs = 1
Result = PASS
在较旧的 Ubuntu 版本上,在 BIOS 中选择仅 NVIDIA 模式启动解决了大部分问题(尽管由于缺少 Optimus,电池消耗得非常快)。但是,这次 Ubuntu 根本无法在此模式下启动。
答案1
据我所知,nvidia 不支持 ubuntu 18.10,因为它们的驱动程序不适用于新的 abi 24。您可能没有运行 nvidia 驱动程序。
尝试将以下两个存储库添加到您的 sources.list
deb http://us.archive.ubuntu.com/ubuntu/ bionic main
deb http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64 /
并降级 xserver-xorg-core 和 xserver-xorg-video-* 并安装 cuda(应该安装 cuda-10)
看看是否有帮助。
Cuda 通常是向后兼容的,因此虽然 1000m 在当时相对强大,但现在已经非常老旧了(如果我没记错的话是 8 年了),我不确定它还支持多少东西,但它应该还能运行。至于电池,除非你最近更换了电池,否则它可能已经过了使用寿命,所以我不会将电池视为指标。