我正在尝试将CUDA工具包安装到我的Ubuntu机器上,以便我可以处理一些CUDA代码。我相信我已经正确安装了CUDA 8.0,如nvcc --version和nvidia-smi的输出所示。
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2016 NVIDIA Corporation
Built on Tue_Jan_10_13:22:03_CST_2017
Cuda compilation tools, release 8.0, V8.0.61
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 384.90 Driver Version: 384.90 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GeForce 820M Off | 00000000:01:00.0 N/A | N/A |
| N/A 45C P8 N/A / N/A | 18MiB / 1985MiB | N/A Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 Not Supported |
+-----------------------------------------------------------------------------+
我还添加了Nvidia CUDA安装指南中提到的路径变量扩展。我正在处理的代码需要链接到Nvidia工具包中的几个库,即-lcuda,-lnvrtc和-lnvidia-ml。编译器可以找到前两个很好,但是给出了一个错误,说它无法找到Nvidia Management Library的库。
/usr/bin/ld: cannot find -lnvidia-ml
根据我的意识,CUDA 8.0工具包应该包含Nvidia Management Library,以便链接器找不到它的任何想法?
答案 0 :(得分:1)
该库实际上是由驱动程序安装的,而不是由CUDA工具包安装的(NVML实际上不是CUDA的一部分),并且它最终位于与通常的CUDA库不同的位置。实际位置可能取决于发行版。
无论如何,运行这样的东西:
sudo find / -name libnvidia-ml.*
找出图书馆所在的位置。然后将路径作为-L
链接器开关传递到该位置,在-lnvidia-ml
之前,如:
-L/path/to/libnvidia-ml -lnvidia-ml