尽管安装了GPU驱动程序和Cuda,但Tensorflow不会检测GPU

uajslkp6  于 2023-08-06  发布在  其他
关注(0)|答案(4)|浏览(111)

我有一个Nvidia GPU(Geforce RTX 3090),驱动程序显示在Nvidia控制面板中。我也安装了最新版本的Cuda。但是,当在Python中使用以下代码与TensorFlow时:

gpus = tf.config.list_physical_devices('GPU')
if not gpus:
    print("No GPUs detected")
else:
    print("GPUs detected:")
    for gpu in gpus:
        print(gpu)

字符串
它总是显示我,没有检测到GPU。你能告诉我我必须做些什么才能让Tensorflow使用GPU吗?

编辑:我使用的是PyCharm,直接下载了Python(所以我不使用Anaconda之类的东西)。
更新:下面是cmd输出的nvidia-smi:

U:\>nvidia-smi
Wed Jul 12 09:13:40 2023
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 531.14                 Driver Version: 531.14       CUDA Version: 12.1     |
|-----------------------------------------+----------------------+----------------------+
| GPU  Name                      TCC/WDDM | 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 3090       WDDM | 00000000:65:00.0  On |                  N/A |
|  0%   36C    P8               13W / 350W|   2085MiB / 24576MiB |      0%      Default |
|                                         |                      |                  N/A |
+-----------------------------------------+----------------------+----------------------+

+---------------------------------------------------------------------------------------+
| Processes:                                                                            |
|  GPU   GI   CI        PID   Type   Process name                            GPU Memory |
|        ID   ID                                                             Usage      |
|=======================================================================================|
|    0   N/A  N/A      3252    C+G   ...m Files\Mozilla Firefox\firefox.exe    N/A      |
|    0   N/A  N/A      4364    C+G   ...h2txyewy\InputApp\TextInputHost.exe    N/A      |
|    0   N/A  N/A     11312    C+G   ...soft Office\root\Office16\EXCEL.EXE    N/A      |
|    0   N/A  N/A     19072    C+G   ...5n1h2txyewy\ShellExperienceHost.exe    N/A      |
|    0   N/A  N/A     21476    C+G   ...m Files\Mozilla Firefox\firefox.exe    N/A      |
|    0   N/A  N/A     23832    C+G   ....Search_cw5n1h2txyewy\SearchApp.exe    N/A      |
|    0   N/A  N/A     24544    C+G   ..._8wekyb3d8bbwe\Microsoft.Photos.exe    N/A      |
|    0   N/A  N/A     25932    C+G   ...x64__8wekyb3d8bbwe\ScreenSketch.exe    N/A      |
|    0   N/A  N/A     33528    C+G   ...ekyb3d8bbwe\PhoneExperienceHost.exe    N/A      |
|    0   N/A  N/A     36580    C+G   ...on 2022.3.1\jbr\bin\jcef_helper.exe    N/A      |
|    0   N/A  N/A     42128    C+G   ...cal\Microsoft\OneDrive\OneDrive.exe    N/A      |
+---------------------------------------------------------------------------------------+

更新:我已经降级到tensorflow 2.10,并得到一些新的错误信息:“2023-07-15 15:15:23.440924:Wtensorflow/stream_executor/platform/default/dso_loader.cc:64]无法加载动态库'cudart64_110.dll'; dlerror:cudart64_110.dll not found 2023-07-15 15:15:23.441186:I tensorflow/stream_executor/cuda/cudart_stub.cc:29]如果您的机器上没有设置GPU,请忽略上述cudart dlerror。”

e0bqpujr

e0bqpujr1#

1.有几件事,首先,有时pycharm无法检测已安装的软件包。它发生在重新启动PC后工作。
1.接下来你可以检查你是否有正确的cuda设置的路径变量。[应该是这样的][1] [1]:https://i.stack.imgur.com/kEVK0.png
1.接下来,如果仍然不起作用,您可以检查tensorflow版本与cuda版本的兼容性。供参考-https://www.tensorflow.org/install/sourcehttps://www.tensorflow.org/install/source
1.还要检查与tensorflow-gpu的兼容性。如果它们有问题,在解决问题后,建议重新启动pycharm。
1.查看TensorFlow GPU支持:TensorFlow需要构建GPU支持。您可以通过运行以下代码来验证这一点:
导入tensorflow作为tf
print(tf.test.is_built_with_cuda())
these are the version i am using for tensorflow and tensorflow-gpu和我的cuda版本是10.1
无论何时在这些项目上工作,最好是在venv上工作,因为不同的项目需要不同的版本兼容性。

kxxlusnw

kxxlusnw2#

根据本指南,您应该使用CUDA 11.8 11.2(与CuDNN 8.1.0)的Windows和TF 2.10。您写道您安装了“CUDA的最新版本”,目前是12.2。你能证实吗?要检查已安装的cuda版本,您可以尝试运行

from tensorflow.python.platform import build_info as build
print(build.build_info['cuda_version'])

字符串
或者对于命令行单行命令行:

python3 -c "from tensorflow.python.platform import build_info as build;print(build.build_info['cuda_version'])"


但考虑到TensorFlow无法找到您的GPU,我不确定这是否可行。您还可以查看C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA子文件夹名称的版本。
错误Could not load dynamic library 'cudart64_110.dll'; dlerror: cudart64_110.dll表示TensorFlow查找版本为11的库。
要安装正确的TensorFlow版本,请运行

pip install -U "tensorflow==2.10.*"


https://developer.nvidia.com/cuda-11-2-0-download-archive下载CUDA 11.8和11.2
如果您想拥有CuDNN,请根据本指南下载并安装它。选择8.1.0版本时要小心!

ckocjqey

ckocjqey3#

您可以尝试pip install tensorflow-gpu==2.10.0并检查它是否有效。它应该卸载旧的tensorflow包并安装版本为2.10.0的gpu包

l7wslrjt

l7wslrjt4#

我也面临这个问题。我用的是anaconda。在我的案例中,问题是我安装了tensorflow而不是tensorflow-gpu。所以我在anaconda中创建了新的env,然后安装了tensorflow-gpu。所以现在它使用我的gpu Gtx 1060

创建环境conda create --name ENVNAME -y

激活eNV conda activate ENVNAME

安装CUDA驱动程序conda install -c conda-forge cudatoolkit=11.2 cudnn=8.1.0 -y

安装TENSORFLOW conda install tensorflow-gpu -y

conda install -c anaconda ipykernel -y
conda install ipykernel -y

将ENV添加到JUPYTER列表python3 -m ipykernel install --user --name=ENVNAME

'VERIFY GPU SUPPORT' python3 -c "import tensorflow as tf;print(tf.config.list_physical_devices('GPU'))"

x1c 0d1x的数据

相关问题