Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/359.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.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 CUDA问题-如何清理并在Win 10中安装CUDA以解决cudaGetDevice()失败_Python_Windows_Tensorflow_Cuda - Fatal编程技术网

Python CUDA问题-如何清理并在Win 10中安装CUDA以解决cudaGetDevice()失败

Python CUDA问题-如何清理并在Win 10中安装CUDA以解决cudaGetDevice()失败,python,windows,tensorflow,cuda,Python,Windows,Tensorflow,Cuda,我以前在Win 10 64位家庭系统(针对1080Ti卡)上运行过CUDA 9.x,但需要更新到适用于TensorFlow 2的CUDA 10.0。我最初认为TF2对CUDA 10.1没问题,所以首先安装了10.1,后来才发现它一定是CUDA 10 无法让它工作 为了测试TF,我运行了这个来验证安装(Jupyter notebook通过Anaconda-新构建的TF2环境) 我在基本Python测试中遇到了这个错误 内部错误:cudaGetDevice()失败。状态:未找到cudaGetErro

我以前在Win 10 64位家庭系统(针对1080Ti卡)上运行过CUDA 9.x,但需要更新到适用于TensorFlow 2的CUDA 10.0。我最初认为TF2对CUDA 10.1没问题,所以首先安装了10.1,后来才发现它一定是CUDA 10

无法让它工作

为了测试TF,我运行了这个来验证安装(Jupyter notebook通过Anaconda-新构建的TF2环境)

我在基本Python测试中遇到了这个错误

内部错误:cudaGetDevice()失败。状态:未找到cudaGetErrorString符号

这意味着找不到密钥文件,但我无法找出根本原因——而且对该错误信息的点击率很低,没有一个对我有帮助

当前配置

已安装CUDA 10.0 Nvidia驱动程序436.48游戏就绪驱动程序

到目前为止的潜在问题和解决措施

显然,他们都没有固定的东西

  • 旧的CUDA安装-9.0、9.1、10.0、10.1:除10.0卸载和PC重新启动外的所有安装;10.0安装程序,然后再次运行
  • 更新cudnn文件:首先尝试使用原件,然后将cudnn文件v7.6.3.30复制到bin、include、lib(视情况而定)
  • 从游戏就绪驱动程序切换到“Studio”驱动程序
  • 检查所有环境变量-删除所有涉及CUDA的内容!=10.0
  • 更新在system32中将nvcuda.dll重命名为.old,然后重新运行CUDA 10.0安装程序。。。没有生产新的nvcuda
  • 更新2我在驱动程序存储中找到了nvcuda64.dll v 10.0.132,并用它替换了system32中的nvcuda.dll;重新启动后,nvidia smi现在报告根本没有CUDA版本:(
  • 已知的怪事


  • [被更新2取代]nvidia-smi.exe报告CUDA 10.1(是的,它在我的Win 10上提供)-但是通过注册表检查,我找不到任何迹象表明CUDA 10.1仍然存在…更新在C:\Windows\System32中找到它

  • 尽管卸载了,我的注册表中仍然有CudaXYZWizardsPackage,它位于Computer\HKEY\U USERS.DEFAULT\Software\Microsoft\VisualStudio\14.0\u Config\InstalledProducts下,XYZ=90、91、100、101-但我怀疑这是Python中TF的问题;)UpdateC:\Program Files(x86)中没有任何内容\Microsoft Visual Studio\2017\Community\Common7\IDE\Extensions\NVIDIA(10.0除外),所以只需孤立注册表项即可

  • 其他信息

    在完成所有卸载之前,我成功地在VS 2017中建立并运行英伟达的采样时钟项目,所以基本是OK(然后) 问题

  • 我如何才能完全消除CUDA的所有痕迹,重新开始
  • 我如何在将来诊断此类问题,以确定问题所在/该怎么办
  • 能否更简单地解决这个问题
  • (新增)在哪里可以获取nvcuda.dll 10.0以在system32中替换?-答案一种可能来自C:\Windows\System32\DriverStore\FileRepository
  • 下载并安装Anaconda(Python 3.7):

  • 在命令提示符中:

  • 墙壁时间:18.9毫秒

    壁时间:2.99毫秒


    这主要是一个扩展评论,因为@diego要求更新

    我现在安装了CUDA 10,英伟达控制面板报告NVCUDA.DLL为V1.0.132

    我已经使用Visual Studio 2017在C:\ProgramData\NVIDIA Corporation\CUDA Samples\v10.0\1_Utilities\devicequery中的vs解决方案中构建了推荐的demo devicequery.exe(请注意,.exe最终位于C:\ProgramData\NVIDIA Corporation\CUDA Samples\v10.0\bin\win64\Debug中)

    然后,程序从cmd提示符运行,并给出以下输出

    devicequery正在启动

    CUDA设备查询(运行时API)版本(CUDART静态链接)

    检测到1个支持CUDA的设备

    设备0:“GeForce GTX 1080 Ti”CUDA驱动程序版本/运行时 版本10.0/10.0 CUDA能力主要/次要版本 数量:6.1全局内存总量:11264 兆字节(11811160064字节)(28)多处理器,(128)CUDA Cores/MP:3584 CUDA Cores GPU最大时钟速率:
    1607 MHz(1.61 GHz)内存时钟频率:
    5505 Mhz内存总线宽度:352位L2 缓存大小:最大2883584字节 纹理尺寸大小(x,y,z)1D=(131072),2D=(131072, 65536),3D=(1638416384)最大分层1D纹理大小, (num)层1D=(32768),2048层最大分层2D纹理 大小,(num)层2D=(32768,32768),2048层的总数量 恒定内存:65536字节共享内存总量 每个块内存:49152字节寄存器总数 每个块可用:65536经纱尺寸:
    每个多处理器最多32个线程:最多2048个 每个块的线程数:1024块的最大尺寸 螺纹块(x、y、z):(1024、1024、64)网格的最大尺寸 大小(x,y,z):(21474836476553565535)最大内存间距:
    2147483647字节纹理对齐:512 字节并发复制和内核执行:有2个拷贝 内核上的引擎运行时间限制:是
    集成GPU共享主机内存:不支持主机 页锁定内存映射:是的对齐要求 表面:是设备具有ECC支持:
    禁用CUDA设备驱动程序模式(TCC或WDDM):WDDM (Windows显示驱动程序型号)设备支持统一寻址 (UVA):是设备支持计算抢占:否
    支持协作内核启动:不支持 多设备
    import tensforflow as tf
    print(tf.reduce_sum(tf.random.normal([1000, 1000])))
    
    conda update conda conda update python conda create --name tensorflow-gpu conda activate tensorflow-gpu conda install pip jupyter pip install tensorflow-gpu conda install cudatoolkit=10.0 -c pytorch import tensorflow as tf
    %%time
    with tf.device('/CPU:0'):
        a = tf.random.uniform([1000,1000])
        b = tf.random.uniform([1000,1000])
    c = tf.matmul(a, b)
    
    %%time
    with tf.device('/GPU:0'):
        a = tf.random.uniform([1000,1000])
        b = tf.random.uniform([1000,1000])
    c = tf.matmul(a, b)