Tensorflow CUDA_错误\u内存不足\u ubuntu 14.04 cuda8

Tensorflow CUDA_错误\u内存不足\u ubuntu 14.04 cuda8,tensorflow,out-of-memory,ubuntu-14.04,Tensorflow,Out Of Memory,Ubuntu 14.04,我正在ubuntu 14.04上使用tensorflow和cuda8 我的CPU:GeForce GT 740M 我是GPU的新手 有时,当我在gpu上运行同一个脚本数次后,我会得到一个内存错误,这将在下次重新启动时消失。 谢谢你和我分享你的专业知识。我真的不知道如何解决这个问题 以下是错误消息: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:910] successful NUMA node rea

我正在ubuntu 14.04上使用tensorflow和cuda8 我的CPU:GeForce GT 740M 我是GPU的新手 有时,当我在gpu上运行同一个脚本数次后,我会得到一个内存错误,这将在下次重新启动时消失。 谢谢你和我分享你的专业知识。我真的不知道如何解决这个问题

以下是错误消息:

        I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:910]
        successful NUMA node read from SysFS had negative value   (-1), but there must be at least one NUMA node, so returning NUMA node  zero
        I tensorflow/core/common_runtime/gpu/gpu_device.cc:885]                 
        Found device 0 with properties: 
        name: GeForce GT 740M
        major: 3 minor: 5 memoryClockRate (GHz) 1.0325
        pciBusID 0000:01:00.0
        Total memory: 1.96GiB
        Free memory: 118.75MiB
        I tensorflow/core/common_runtime/gpu/gpu_device.cc:906] DMA: 0 
        I tensorflow/core/common_runtime/gpu/gpu_device.cc:916] 0:   Y 
        I tensorflow/core/common_runtime/gpu/gpu_device.cc:975]          
        Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GT 740M, pci bus id: 0000:01:00.0)
        E tensorflow/stream_executor/cuda/cuda_driver.cc:1002] failed to allocate 118.75M (124518400 bytes) from device: CUDA_ERROR_OUT_OF_MEMORY
        E tensorflow/stream_executor/cuda/cuda_dnn.cc:397] could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR
        E tensorflow/stream_executor/cuda/cuda_dnn.cc:364] could not destroy cudnn handle: CUDNN_STATUS_BAD_PARAM
        F tensorflow/core/kernels/conv_ops.cc:605] Check failed: stream->parent()->GetConvolveAlgorithms(&algorithms) 
        Aborted (core dumped)

您可能会遇到此问题的原因有很多

  • 检查您是否正在使用GPU运行X服务器,因为它从一开始就崩溃了。请咨询nvidia smi,了解您实际需要使用多少空间
  • 确保您运行的tensorflow具有适当的CUDA驱动程序和工具包版本(367.35或更新版本和toolkit 8.0)
  • 支持您的卡吗?(我认为这应该行得通,但nvidia喜欢偷偷摸摸地支持旧硬件,他们把你锁在外面,作为购买新的nvidia GPU的一种方式)。在仔细检查您的卡是否受支持后。需要CUDA计算>=3.0
  • 您可以使用tensorflow调试器调试代码
  • 最后但并非最不重要的一点是,正如评论所暗示的,在您的软件结束后,您的GPU资源似乎不会被释放。确保终止进程,因为GPU将在程序调用exit()后释放资源
嗯,如果没有看到您的代码,这是不可能的;可以肯定的是,听起来您没有释放资源,导致内存泄漏(另一种选择是内存gragmentatyion)。在GPU上进行定位总是一件痛苦的事情,这样做只会让事情变得更有趣。您要么需要跟踪所有内存分配并确保它们被整理好,要么必须删除代码块,直到问题消失。