我遇到的问题是,在安装最新版本的 Tensorflow (2.16.1) 时,它没有使用 GPU。
仅在运行以下命令后,它才能识别 GPU(如本文中所建议的无法 dlopen 某些 GPU 库。跳过注册 GPU 设备):
export CUDNN_PATH=$(dirname $(python -c "import nvidia.cudnn;print(nvidia.cudnn.__file__)"))
export LD_LIBRARY_PATH=${CUDNN_PATH}/lib
但是,每次重新启动终端时我都需要重新运行这些。有没有办法解决这个问题,这样我就不必一直重新运行它?或者我应该在 .bashrc 文件的底部添加这两行?
从 nvcc -V 我得到:
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2023 NVIDIA Corporation
Built on Fri_Jan__6_16:45:21_PST_2023
Cuda compilation tools, release 12.0, V12.0.140
Build cuda_12.0.r12.0/compiler.32267302_0
从 nvidia-smi 我得到:
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 550.76.01 Driver Version: 552.44 CUDA Version: 12.4 |
|-----------------------------------------+------------------------+----------------------+
| 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 NVIDIA GeForce RTX 3070 On | 00000000:01:00.0 On | N/A |
| 49% 50C P8 25W / 240W | 1303MiB / 8192MiB | 3% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+
+-----------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=========================================================================================|
| 0 N/A N/A 44 G /Xwayland N/A |
+-----------------------------------------------------------------------------------------+
我也有点困惑,这些的 CUDA 版本不匹配。 nvidia-smi 返回“CUDA 版本:12.4”,而 nvcc -V 返回“V12.0.140”。
我实际上刚刚找到了解决方案,因为。起初我尝试将
~/.bash_profile
添加为永久环境变量,但它一直抛出错误:
ModuleNotFoundError: No module named 'nvidia'
我认为这是由于 anaconda 使用了不同的路径。
我最终做了以下事情。
创建以下内容并导航到那里:
mkdir -p $CONDA_PREFIX/etc/conda/activate.d
cd $CONDA_PREFIX/etc/conda
打开它:
sudo nano /.activate.d
然后粘贴到那里:
export LD_LIBRARY_PATH=$LS_LIBRARY_PATH:$CONDA_PREFIX/lib/
现在每次测试此命令时我都可以看到我的 GPU:
python3 -c "import tensorflow as tf; print(tf.config.list_physical_devices('GPU'))"