我尝试将 Tensorflow 2.7.0 与 GPU 结合使用,但我不断遇到同样的问题:
2022-02-03 08:32:31.822484: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libcudart.so.11.0'; dlerror: libcudart.so.11.0: cannot open shared object file: No such file or directory; LD_LIBRARY_PATH: /home/username/.cache/pypoetry/virtualenvs/poetry_env/lib/python3.7/site-packages/cv2/../../lib64:/home/username/miniconda3/envs/project/lib/
2022-02-03 08:32:31.822528: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine.
这个问题已经在这里和 github 上出现过多次。然而,通常建议的解决方案是:a) 下载丢失的 CUDA 文件,b) 降级/升级到正确的 CUDA 版本,c) 设置正确的 CUDA 版本LD_LIBRARY_PATH
.
我已经在我的电脑上使用了支持 CUDA 的 PyTorch,并且没有遇到任何问题。我的nvidia-smi
返回 11.0 版本,这正是我想要的。另外,如果我尝试运行:
import os
LD_LIBRARY_PATH = '/home/username/miniconda3/envs/project/lib/'
print(os.path.exists(os.path.join(LD_LIBRARY_PATH, "libcudart.so.11.0")))
它返回True
。这正是LD_LIBRARY_PATH
从错误消息来看,Tensorflow 显然无法看到libcudart.so.11.0
(就在那里)。
我确实缺少一些明显的东西吗?
nvidia-smi
output:
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 450.156.00 Driver Version: 450.156.00 CUDA Version: 11.0 |
|-------------------------------+----------------------+----------------------+
nvcc
:
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
Built on Sun_Jul_28_19:07:16_PDT_2019
Cuda compilation tools, release 10.1, V10.1.243