【发布时间】:2020-02-02 17:03:20
【问题描述】:
我之前在这个 Win 10 64 位家庭系统(针对 1080Ti 卡)上运行了 CUDA 9.x,但需要更新到 TensorFlow 2 的 CUDA 10.0。我最初认为 CUDA 10.1 可以使用 TF2,所以首先安装了10.1,后来才发现一定是CUDA 10。
无法让它工作......
为了测试 TF,我运行它来验证安装(通过 Anaconda 的 Jupyter notebook - 全新构建的 TF2 环境)
import tensforflow as tf
print(tf.reduce_sum(tf.random.normal([1000, 1000])))
我在基本 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_USERS.DEFAULT\Software\Microsoft\VisualStudio\14.0_Config\InstalledProducts 下,XYZ = 90, 91, 100, 101 - 但我对此表示怀疑是 Python 中 TF 的问题;) Update C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\Extensions\NVIDIA 除了 10.0 之外什么都没有孤儿注册条目。
其他信息
- 在进行所有卸载等之前,我确实在 VS 2017 中成功构建并运行了 Nvidia 示例时钟项目,因此基本没问题(当时)
问题
- 如何完全删除所有 CUDA 痕迹以重新开始?
- 我以后如何诊断此类问题以找出问题出在哪里/该怎么办
- 能否更简单地解决此特定问题?
- (新)在哪里可以获取 nvcuda.dll 10.0 以替换 system32 中的? - 答案一种可能性来自 C:\Windows\System32\DriverStore\FileRepository
【问题讨论】:
-
投反对票?? “这个q是不努力,不清楚等?”与 Q 相比,该投票更容易受到该评估的影响,因为没有解释,也没有关于如何改进它的建议等。我总是乐于接受 +ve 对如何改进事物的贡献......请告知
-
"nvidia-smi.exe 报告 CUDA 10.1" - 这只是驱动程序的兼容性,它并没有说明您安装了什么。我的观点是,这要么是一个 tensorflow 设置问题,要么是题外话。您应该相应地标记和编辑它
-
@talonmies 虽然最终目标是 TF 设置,但具体问题是:如何删除 CUDA 安装的所有痕迹以重新开始 + 密切相关的项目。我将相应地修改标题。
-
随时向我们发布您发现的任何新内容。显然,有一个非常敏感的 cuda、tf、python、gpu 和 gpu 驱动程序版本的组合来完成这项工作。很烦人。
-
@Diego 我知道非常复杂的依赖关系......很难找到在一个地方描述的一致集合。我将重建 Windows(临时新硬盘)并从头开始。很痛苦。此外,使用 ?Revo 卸载程序的 nVidia 完全删除说明还不够完整,并且 a) 删除剩余 NVidia 应用程序等的卸载信息,除非小心,并且 b) 仍然留下无法管理的 reg 条目收集。我什至无法“正确”删除普通 VGA 版本的 nv 图形驱动程序。非常非常非常烦人
标签: python windows tensorflow cuda