Tensorflow GPU CUDA Не удалось загрузить динамическую библиотеку ‘libcufft.so.10’; ошибка

#tensorflow #cuda

Вопрос:

Я боюсь, что это будет помечено как дубликат, но я нахожу примеры с libcudart или libcublas без libcufft (что является моей проблемой).

Я установил TensorFlow и хочу использовать графический процессор. Поэтому я запускаю скрипт по этой ссылке.

При запуске TensorFlow для обучения сети я получаю следующее сообщение:

 2021-09-23 11:19:22.158959: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:937] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2021-09-23 11:19:22.162563: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libcufft.so.10'; dlerror: libcufft.so.10: cannot open shared object file: No such file or directory
2021-09-23 11:19:22.162651: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libcurand.so.10'; dlerror: libcurand.so.10: cannot open shared object file: No such file or directory
2021-09-23 11:19:22.162730: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libcusolver.so.11'; dlerror: libcusolver.so.11: cannot open shared object file: No such file or directory
2021-09-23 11:19:22.162806: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libcusparse.so.11'; dlerror: libcusparse.so.11: cannot open shared object file: No such file or directory
2021-09-23 11:19:22.162989: W tensorflow/core/common_runtime/gpu/gpu_device.cc:1835] Cannot dlopen some GPU libraries. Please make sure the missing libraries mentioned above are installed properly if you would like to use GPU. Follow the guide at https://www.tensorflow.org/install/gpu for how to download and setup the required libraries for your platform.
Skipping registering GPU devices...
2021-09-23 11:19:22.163345: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations:  AVX2 FMA
To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.
 

Используя tf.config.list_physical_devices() я получаю:

 2021-09-23 11:30:18.327648: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:937] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2021-09-23 11:30:18.329447: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libcufft.so.10'; dlerror: libcufft.so.10: cannot open shared object file: No such file or directory; LD_LIBRARY_PATH: :/usr/local/cuda/extras/CUPTI/lib64
2021-09-23 11:30:18.329510: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libcurand.so.10'; dlerror: libcurand.so.10: cannot open shared object file: No such file or directory; LD_LIBRARY_PATH: :/usr/local/cuda/extras/CUPTI/lib64
2021-09-23 11:30:18.329573: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libcusolver.so.11'; dlerror: libcusolver.so.11: cannot open shared object file: No such file or directory; LD_LIBRARY_PATH: :/usr/local/cuda/extras/CUPTI/lib64
2021-09-23 11:30:18.329687: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libcusparse.so.11'; dlerror: libcusparse.so.11: cannot open shared object file: No such file or directory; LD_LIBRARY_PATH: :/usr/local/cuda/extras/CUPTI/lib64
2021-09-23 11:30:18.329814: W tensorflow/core/common_runtime/gpu/gpu_device.cc:1835] Cannot dlopen some GPU libraries. Please make sure the missing libraries mentioned above are installed properly if you would like to use GPU. Follow the guide at https://www.tensorflow.org/install/gpu for how to download and setup the required libraries for your platform.
Skipping registering GPU devices...
[PhysicalDevice(name='/physical_device:CPU:0', device_type='CPU')]

 

У меня есть папка под названием, /usr/local/cuda-11.0 но не cuda одна, extras и у меня в ней нет папки.
Это правда, что там написано для Ubuntu 18.04, а у меня Ubuntu 20.04.

Если я попытаюсь бежать sudo apt install nvidia-cuda-toolkit , как предложено здесь, я получу:

 Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 nvidia-cuda-toolkit : Depends: nvidia-cuda-dev (= 10.1.243-3) but it is not going to be installed
                       Recommends: nsight-compute (= 10.1.243-3)
                       Recommends: nsight-systems (= 10.1.243-3)
E: Unable to correct problems, you have held broken packages.
 

Вывод whereis cuda is cuda: (пустой).

Выход из nvidia-smi :

  ----------------------------------------------------------------------------- 
| NVIDIA-SMI 460.91.03    Driver Version: 460.91.03    CUDA Version: 11.2     |
|------------------------------- ---------------------- ---------------------- 
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|=============================== ====================== ======================|
|   0  GeForce RTX 208...  Off  | 00000000:01:00.0  On |                  N/A |
|  0%   40C    P8    31W / 300W |    626MiB / 11016MiB |     15%      Default |
|                               |                      |                  N/A |
 ------------------------------- ---------------------- ---------------------- 
                                                                               
 ----------------------------------------------------------------------------- 
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0   N/A  N/A      1141      G   /usr/lib/xorg/Xorg                 59MiB |
|    0   N/A  N/A      1749      G   /usr/lib/xorg/Xorg                315MiB |
|    0   N/A  N/A      1886      G   /usr/bin/gnome-shell               59MiB |
|    0   N/A  N/A      1907      G   ...mviewer/tv_bin/TeamViewer        2MiB |
|    0   N/A  N/A      2463      G   ...ble-features=SpareRendere        4MiB |
|    0   N/A  N/A      3825      G   ...AAAAAAAAA= --shared-files      105MiB |
|    0   N/A  N/A      4682      G   .../debug.log --shared-files       36MiB |
|    0   N/A  N/A     20600      G   ...AAAAAAAAA= --shared-files       24MiB |
 ----------------------------------------------------------------------------- 
 

Я боюсь устанавливать вещи, чтобы решить эту проблему, и заканчиваю типичным столкновением 20 версий CUDA друг с другом.

Комментарии:

1. Ваша установка кажется немного сомнительной. Версия cude очень важна. Tensorflow, похоже, ищет CUDA 10? но у вас установлена версия 11.0? Я бы посоветовал вам очистить все ваши установки cuda и начать с нуля, исключительно с версии CUDA, которая требуется tensorflow

Ответ №1:

Поэтому я сделал так, как было предложено в комментариях, и удалил все очень агрессивно:

 sudo apt clean
sudo apt update
sudo apt purge cuda
sudo apt purge nvidia-* 
sudo apt autoremove
 

Затем я последовал инструкциям по установке:

  • CUDA
  • Инструментарий CUDA (Хотя я думаю, что это то же самое, я просто добавил команду sudo apt-get install nvidia-gds , которую я даже не знаю, было ли это необходимо)
  • CUDNN

Теперь, похоже, это работает.