我以前在这个Win10 64位家庭系统上运行过CUDA9.x(目标是1080Ti卡),但是需要为TensorFlow 2更新到CUDA10.0。我一开始以为TF2对CUDA10.1没问题,所以首先安装了10.1,后来才发现它一定是CUDA10。在

不能让它工作。。。在

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

import tensforflow as tf
print(tf.reduce_sum(tf.random.normal([1000, 1000])))

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

InternalError: cudaGetDevice() failed. Status: cudaGetErrorString symbol not found

这意味着找不到密钥文件,但我无法找出根本原因-而且关于错误信息的点击很少,这些都没有帮助我。在

当前配置

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

目前潜在问题和解决措施

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

  1. 旧的CUDA安装-9.0,9.1,10.0,10.1:除10.0以外的所有安装程序都已卸载并重新启动PC;然后重新运行10.0安装程序
  2. 更新cudnn文件:首先尝试使用原始文件,然后将cudnn文件v7.6.3.30复制到bin,include,lib(视情况而定)
  3. 从游戏就绪驱动程序切换到“工作室”驱动程序
  4. 检查所有环境变量-删除所有引用CUDA的内容!=10.0
  5. 更新已重命名nvcuda.dll在system32中重新运行CUDA10.0安装程序。。。一个新的nvcuda是而不是产生的。在
  6. 更新2我在驱动程序存储中找到了nvcuda64.dll v 10.0.132并将其替换nvcuda.dll在带有它的system32中;重新启动后,nvidia smi现在报告根本没有CUDA版本:(

已知的奇怪之处

  1. [被更新2取代]nvidia-smi.exe文件报告CUDA 10.1(是的,它在我的Win 10上可用)-但通过注册表检查,我找不到任何迹象表明CUDA 10.1还在那里…更新在C:\Windows\System32中找到它

  2. 尽管已卸载,但我仍然在注册表项Computer\HKEY下保存了CudaXYZWizardsPackage_用户.默认值\Software\Microsoft\VisualStudio\14.0\u Config\InstalledProducts,XYZ=90、91、100、101—但我怀疑这是Python中TF的问题;)更新除了10.0之外,C:\Program Files(x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\Extensions\NVIDIA中没有任何内容,因此只有孤立的注册表项。

其他信息

  1. 在完成所有卸载等之前,我确实成功地在VS2017中构建并运行了Nvidia示例时钟项目,所以基础工作还可以(当时)

问题

  1. 我怎样才能完全清除CUDA的所有痕迹重新开始?在
  2. 我将来如何诊断这些问题,以确定问题在哪里/该怎么做
  3. 这个特殊的问题能不能更简单地解决?在
  4. (新)我在哪能买到nvcuda.dll10.0在系统中替换32?-答案一种可能性来自C:\Windows\System32\DriverStore\FileRepository