Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Tensorflow GPU无法加载动态库';cusolver64_10.dll';;错误:找不到cusolver64_10.dll_Python_Tensorflow_Gpu - Fatal编程技术网

Python Tensorflow GPU无法加载动态库';cusolver64_10.dll';;错误:找不到cusolver64_10.dll

Python Tensorflow GPU无法加载动态库';cusolver64_10.dll';;错误:找不到cusolver64_10.dll,python,tensorflow,gpu,Python,Tensorflow,Gpu,当我跑的时候 import tensorflow as tf tf.test.is_gpu_available( cuda_only=False, min_cuda_compute_capability=None ) 我得到以下错误 步骤1 Move to C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\bin 步骤2 Rename file cusolver64_11.dll To cusolver64_10

当我跑的时候

import tensorflow as tf 
tf.test.is_gpu_available(
    cuda_only=False, min_cuda_compute_capability=None
)
我得到以下错误

步骤1
 Move to C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\bin
步骤2
Rename file cusolver64_11.dll  To  cusolver64_10.dll 


我也有同样的问题。事实证明CUDA 11.0包含cusolver64_10.dll(这可能就是为什么他们在tensorflow构建指南中指出CUDA v11.0)。请务必下载cudnn

TL;DR对于
Windows
上的
TensorFlow
ver>=2.4.0,请准确安装以下突出显示的
CUDA Toolkit
cuDNN
版本,即官方要求中列出的版本。(v11.0与v11.2相对)


Windows
上,撰写本文时的
TensorFlow
^安装要求如下所述

  • NVIDIA®GPU驱动程序-CUDA®11.0需要450.x或更高版本

  • CUDA®工具包-TensorFlow支持CUDA®11(TensorFlow>=2.4.0)

  • CUPTI附带CUDA®工具包

  • cuDNN SDK 8.0.4

  • (可选)TensorRT 6.0,以改进某些模型上推理的延迟和吞吐量

  • 您面临的问题可能与CUDA®Toolkit的版本有关
    Tensorflow
    对依赖项的版本很挑剔。查看
    C:\Program Files\NVIDIA GPU计算工具包\CUDA\v11.2\bin
    **。您应该能够在那里找到
    TensorFlow
    所需的大多数DLL。您可能会注意到,它包含
    cusolver64_11.dll
    ,而不是输出中所述的预期
    cusolver64_10.dll

    尽管上面的回答中提到的重命名黑客可以工作,但它不能保证一直可靠地工作。简单而正确的解决方案是首先安装正确的依赖项

    在编写时,
    CUDA Toolkit
    cuDNN
    的兼容版本是

    CUDA Toolkit 11.0 (May 2020)
    cuDNN v8.0.4 (September 28th, 2020), for CUDA 11.0 
    
    从这两个版本的大量可用版本中,列出&

    更新的版本(我测试了v11.0以后的版本)还不受支持。我记得几年前TensorFlow的早期版本也有同样的问题


    ^对于版本>1.15,
    TensorFlow
    默认包含GPU支持,因此符合CUDA要求。当不可用时,
    TensorFlow
    工作正常-它只是恢复到CPU执行。
    **或安装工具包的任何位置

    ^^
    cudnn64_8.dll
    为TensorFlow 2.4.1附带了
    cuDNN SDK

    ,如果需要安装CUDA 11.2,重命名黑客将起作用。我建议为TF 2.4.1安装CUDA 11.0+cuDNN 8.0.4,正如@relege在上面所写的那样,这样就不需要重命名,您的GPU就会被识别

    对于TensorFlow 2.5.0,我刚刚使用CUDA 11.2.2+cuDNN 8.1.1识别了我的GPU。在这种情况下,不要重命名cusolver文件。TF2.5.0需要“cusolver64_11.dll”文件名

    c> python
    Python 3.9.4 | packaged by conda-forge | (default, May 10 2021, 22:10:34) [MSC v.1916 64 bit (AMD64)] on win32
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import tensorflow as tf
    2021-05-28 08:11:24.517894: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Successfully opened dynamic library cudart64_110.dll
    >>> print(tf.version.VERSION)
    2.5.0
    >>> print("Num GPUs Available: ", len(tf.config.list_physical_devices('GPU')),
    ...       '\nDevice: ', tf.config.list_physical_devices('GPU'))
    2021-05-28 08:12:19.501812: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Successfully opened dynamic library nvcuda.dll
    2021-05-28 08:12:19.530869: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1733] Found device 0 with properties:
    pciBusID: 0000:01:00.0 name: NVIDIA GeForce GTX 1080 with Max-Q Design computeCapability: 6.1
    coreClock: 1.468GHz coreCount: 20 deviceMemorySize: 8.00GiB deviceMemoryBandwidth: 298.32GiB/s
    2021-05-28 08:12:19.531377: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Successfully opened dynamic library cudart64_110.dll
    2021-05-28 08:12:19.597785: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Successfully opened dynamic library cublas64_11.dll
    2021-05-28 08:12:19.597992: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Successfully opened dynamic library cublasLt64_11.dll
    2021-05-28 08:12:19.618849: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Successfully opened dynamic library cufft64_10.dll
    2021-05-28 08:12:19.634321: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Successfully opened dynamic library curand64_10.dll
    2021-05-28 08:12:19.677539: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Successfully opened dynamic library **cusolver64_11.dll**
    2021-05-28 08:12:19.731541: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Successfully opened dynamic library cusparse64_11.dll
    2021-05-28 08:12:19.746271: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Successfully opened dynamic library cudnn64_8.dll
    2021-05-28 08:12:19.746674: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1871] Adding visible gpu devices: 0
    Num GPUs Available:  1
    Device:  [PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')]
    >>>
    

    使用powershell创建符号链接也可以,而且可能是首选:
    New Item-ItemType symbolicink-Path.\cusolver64_10.dll-Target.\cusolver64_11.dll
    @DouglasMarttinen谢谢它会帮助其他人为什么不使用cusolver64_11?即使在更新我的tensorflow之后,我也遇到了同样的问题…似乎不是太专业的答案,但它是有效的。谢谢:)这将导致这个问题中出现问题,您可以查看我在第一个答案中的评论。@Hong Cheng,是的,我与您在TF 2.5.0方面有相同的经验。我想,在以前尝试获得TF2.4.1的GPU支持时,我已经将该文件重命名为“cusolver64_10.dll”名称。使用CUDA Toolkit 11+,对TF 2.4.1使用“cusolver64_10.dll”,对TF 2.5.0保留原始文件名“cusolver64_11.dll”。
    c> python
    Python 3.9.4 | packaged by conda-forge | (default, May 10 2021, 22:10:34) [MSC v.1916 64 bit (AMD64)] on win32
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import tensorflow as tf
    2021-05-28 08:11:24.517894: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Successfully opened dynamic library cudart64_110.dll
    >>> print(tf.version.VERSION)
    2.5.0
    >>> print("Num GPUs Available: ", len(tf.config.list_physical_devices('GPU')),
    ...       '\nDevice: ', tf.config.list_physical_devices('GPU'))
    2021-05-28 08:12:19.501812: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Successfully opened dynamic library nvcuda.dll
    2021-05-28 08:12:19.530869: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1733] Found device 0 with properties:
    pciBusID: 0000:01:00.0 name: NVIDIA GeForce GTX 1080 with Max-Q Design computeCapability: 6.1
    coreClock: 1.468GHz coreCount: 20 deviceMemorySize: 8.00GiB deviceMemoryBandwidth: 298.32GiB/s
    2021-05-28 08:12:19.531377: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Successfully opened dynamic library cudart64_110.dll
    2021-05-28 08:12:19.597785: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Successfully opened dynamic library cublas64_11.dll
    2021-05-28 08:12:19.597992: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Successfully opened dynamic library cublasLt64_11.dll
    2021-05-28 08:12:19.618849: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Successfully opened dynamic library cufft64_10.dll
    2021-05-28 08:12:19.634321: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Successfully opened dynamic library curand64_10.dll
    2021-05-28 08:12:19.677539: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Successfully opened dynamic library **cusolver64_11.dll**
    2021-05-28 08:12:19.731541: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Successfully opened dynamic library cusparse64_11.dll
    2021-05-28 08:12:19.746271: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Successfully opened dynamic library cudnn64_8.dll
    2021-05-28 08:12:19.746674: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1871] Adding visible gpu devices: 0
    Num GPUs Available:  1
    Device:  [PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')]
    >>>