CUBLAS_STATUS_ALLOC_FAILED CUDA_ERROR_OUT_OF_MEMORY

举报
风吹稻花香 发表于 2021/06/05 01:24:07 2021/06/05
【摘要】 当我用keras多进程并发时,报错: 2018-02-26 23:05:31.843027: E C:\tf_jenkins\home\workspace\rel-win\M\windows-gpu\PY\36\tensorflow\stream_executor\cuda\cuda_blas.cc:366] failed to create cublas handle:...


当我用keras多进程并发时,报错:


2018-02-26 23:05:31.843027: E C:\tf_jenkins\home\workspace\rel-win\M\windows-gpu\PY\36\tensorflow\stream_executor\cuda\cuda_blas.cc:366] failed to create cublas handle: CUBLAS_STATUS_ALLOC_FAILED

解决方法:加上如下代码:

import tensorflow as tf
import keras.backend.tensorflow_backend as KTF

######################################
# TODO: set the gpu memory using fraction #
#####################################
def get_session(gpu_fraction=0.3): """
 This function is to allocate GPU memory a specific fraction
 Assume that you have 6GB of GPU memory and want to allocate ~2GB
 """
 num_threads = os.environ.get('OMP_NUM_THREADS') gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=gpu_fraction) if num_threads: return tf.Session(config=tf.ConfigProto( gpu_options=gpu_options, intra_op_parallelism_threads=num_threads)) else: return tf.Session(config=tf.ConfigProto(gpu_options=gpu_options))

KTF.set_session(get_session(0.9))  # using 40% of total GPU Memory
get_session的比例比较大时,就会报错:CUDA_ERROR_OUT_OF_MEMORY
解决方:把比例设置小一点,比如0.5

TensorFlow的方法:

这时你需要用下面的方法创建 Session:
gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=0.333)

sess = tf.Session(config=tf.ConfigProto(gpu_options=gpu_options))


文章来源: blog.csdn.net,作者:网奇,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/jacke121/article/details/79382835

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。