Tensorflow-gpu 问题(CUDA 运行时错误:设备内核映像无效)
Posted
技术标签:
【中文标题】Tensorflow-gpu 问题(CUDA 运行时错误:设备内核映像无效)【英文标题】:Tensorflow-gpu issue (CUDA runtime error: device kernel image is invalid) 【发布时间】:2020-11-23 14:43:35 【问题描述】:我有一个 python 虚拟环境 (conda),我在其中安装了 CUDA 工具包 10.1.243 和 tensorflow-gpu 2.3.0rc0。我的 CUDA 驱动程序是 11.0。
为了测试 tensorflow 是否正确安装到 GPU,我从 venv 中运行了一系列命令:
tf.test.is_built_with_cuda()
是的
tf.config.list_physical_devices(‘GPU’)
找到具有以下属性的设备 0: pciBusID:0000:01:00.0 名称:Quadro M2000M 计算能力:5.0 [PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')]
python -c "import tensorflow as tf; print(tf.reduce_sum(tf.random.normal([1000,1000])))"
tensorflow.python.framework.errors_impl.InternalError:GPU:0 上的 CUDA 运行时隐式初始化失败。状态:设备内核映像无效
我不确定如何解决此问题。我感觉它与修改编译有关,以便 tensorflow 支持我的设备(5.0)的计算能力,但我不确定如何进行。谢谢!!
【问题讨论】:
【参考方案1】:我也遇到了同样的问题。我使用以下命令将 Tensorflow2.3 版本降级为 2.2。
pip install --upgrade tensorflow==2.2
现在可以运行了,但是速度很慢。
【讨论】:
【参考方案2】:根据这个 github issue 的解释,谷歌 Tensorflow 工程团队已经放弃了对一些旧版本 GPU 的支持: https://github.com/tensorflow/tensorflow/issues/41990
我相信您的 GPU 属于那些较低版本的 GPU 系列。 所以从 2.3 降级你的 TF。到2.2是一个解决方案。并且 TF 工程师建议我们自己构建 TF2.3 并更改其构建配置脚本以启用较低版本的 GPU 支持,但 Google TF 团队并未确认它可以工作,也没有责任解决我们将遇到的任何问题.
【讨论】:
我得到了 rtx 2080,很奇怪他们不支持这个设备。 @SidKaushik 是的,这很奇怪,但我终于通过将我的环境从 TF 切换到 pytorch 完全解决了这个问题,TF 确实是谷歌的一个失败的 SW 堆栈,至少它让我很沮丧很多次。 【参考方案3】:我推荐pip install tensorflow-gpu==2.2
【讨论】:
也许添加更多解释来解释这如何回答问题? 我想说的不仅仅是pip install tensorflow==2.2
使用pip install tensorflow-gpu==2.2
以上是关于Tensorflow-gpu 问题(CUDA 运行时错误:设备内核映像无效)的主要内容,如果未能解决你的问题,请参考以下文章
win10下通过Anaconda安装TensorFlow-GPU1.3版本,并配置pycharm运行Mnist手写识别程序
Anaconda 中的 Tensorflow-Gpu 和 Cuda 驱动程序存在问题
ubuntu16.04下安装CUDA,cuDNN及tensorflow-gpu版本过程
ubuntu16.04下安装CUDA,cuDNN及tensorflow-gpu版本过程