链接器无法加载Nvidia Management Library

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了链接器无法加载Nvidia Management Library相关的知识,希望对你有一定的参考价值。

我正在尝试将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,所以链接器无法找到它的任何想法?

答案

该库实际上是由驱动程序安装的,而不是由CUDA工具包安装的(NVML实际上不是CUDA的一部分),它最终位于与通常的CUDA库不同的位置。实际位置可能取决于发行版。

无论如何,运行这样的事情:

sudo find / -name libnvidia-ml.* 

找出图书馆的位置。然后在-L之前将路径作为-lnvidia-ml链接器开关传递到该位置,如:

-L/path/to/libnvidia-ml -lnvidia-ml

以上是关于链接器无法加载Nvidia Management Library的主要内容,如果未能解决你的问题,请参考以下文章

Linux Arch OpenCL ICD 加载器 - Nvidia GPU、Intel CPU

无法加载内核模块“nvidia.ko”

NVIDIA DALI:无法使用 NVIDIA DALI 管道中的 reader.video 加载视频

从 .Net Core 运行 Powershell - 无法加载文件或程序集 Microsoft.Management.Infrastructure

错误:无法加载文件或程序集“Microsoft.SqlServer.Management.Sdk.Sfc,Version = 11.0.0.0”

[转]VS 2013 连接数据库报错 未能加载文件或程序集 Microsoft.SqlServer.Management.Sdk.Sfc