我已升级到最新的(测试版)Nvidia 驱动程序 -nvidia-381
因为之前的驱动程序存在问题。从挂起状态唤醒后,窗口边缘出现问题 - 请参阅这里。
因此我升级到了较新的驱动程序,从375.39
到381.09
。
自从升级以来,我不得不重新安装 Nvidia 的Cuda 工具包 8.0(和 CUDNN v5.1),但似乎缺少一个驱动程序文件,这使我无法在 R 中安装 Tensorflow 和 gputools 包,这两个包基于 Cuda Toolkit 构建,而 Cuda Toolkit 又需要缺少的 libcuda.so.1 文件。 和 都Tensorflow
无法gputools
找到该文件:libcuda.so.1
。 使用之前的驱动程序,我可以毫无问题地安装 Cuda Toolkit。
这是一个类似的问题,但涉及较老的司机:https://github.com/tensorflow/tensorflow/issues/4078
我读到过,我可以创建这个文件,因为它是一个符号链接,但是我宁愿不这样做,因为我不知道还存在什么其他依赖项。可能的解决方法示例:https://stackoverflow.com/questions/41890549/tensorflow-cannot-open-libcuda-so-1
我正在运行 Ubuntu 16.04。我也在Ubuntu launchpad
问题:
- 有人能知道为什么这个文件丢失或者提出一个稳定的解决方案吗?
- 如果我必须更换我的驱动程序 - 哪种降级方式最好以及如何决定降级到哪个?
额外信息:
如果我在系统上搜索丢失的文件,我会找到以下类似的文件,但不是我需要的文件:
user@user $ tree / -fiC | grep libcuda.so /usr/local/cuda-8.0/doc/man/man7/libcuda.so.7 /usr/local/cuda-8.0/lib64/stubs/libcuda.so /usr/share/man/man7/libcuda.so.7
如果我查看 Nvidia 驱动程序想要卸载,我应该使用给定的卸载脚本,然后我们发现它在安装时没有意识到 libcuda.so.1 文件,因此它不在这个脚本中:
user@user $ /usr/local/cuda-8.0/bin$ cat .uninstall_manifest_do_not_delete.txt | grep libcuda.so file:/usr/share/man/man7/libcuda.so.7:5708adf9bb3c591eb4f1d0d50e78f3df file:/usr/local/cuda-8.0/lib64/stubs/libcuda.so:8347cb2f5500934b1942ba42f3979fac file:/usr/local/cuda-8.0/doc/man/man7/libcuda.so.7:5708adf9bb3c591eb4f1d0d50e78f3df
由于存在 libcuda.so.1 文件的存根(如上面的输出所示),我创建了该文件缺失的符号链接:
user@user $ sudo ln -s /usr/local/cuda-8.0/lib64/stubs/libcuda.so /usr/local/cuda-8.0/lib64/libcuda.so.1
这实际上允许
gputools
成功安装 R 中的包,但是调用 GPU 的函数失败了:R> gpuMatMult(matA, matB) Error in gpuMatMult(matA, matB) : device memory allocation failed Calls: gpuMatMult -> .Call
使用
deviceQuery
捆绑到samples
Cuda Toolkit 中的实用程序(您必须首先sudo make
使用它),我发现肯定存在问题,Cuda 自己注意到了这一点:user@user $ /usr/local/cuda/samples/1_Utilities/deviceQuery$ ./deviceQuery ./deviceQuery Starting... CUDA Device Query (Runtime API) version (CUDART static linking) cudaGetDeviceCount returned 35 -> CUDA driver version is insufficient for CUDA runtime version Result = FAIL
当前状态:
我已将我所知道的以前与 Cuda Toolkit 8.0、CUDNN 5.1 - 配合使用的驱动程序降级nvidia-378.13
。使用 Cuda 和 CUDNN 的工具现在也能像以前一样正常工作,例如tensorflow
(gputools
在 R 中)等。
一切都按预期进行,包括从挂起状态唤醒后显示像素化窗口边缘的错误。