微信扫一扫打赏支持

Internal Error: Blas GEMM launch failed 问题

Internal Error: Blas GEMM launch failed 问题

一、总结

一句话总结:

(1)、此错误主要是由于程序运行时GPU的空间不足而引起的。
(2)、出现显存不足的主要问题是Tensorflow默认申请可使用的全部显存,当tensorflow程序运行会话却没有关闭会话释放资源的时候,就会出现此错误,尤其是使用Keras、以及 jupyter的时候。

 

 

 

二、Internal Error: Blas GEMM launch failed 问题

转自或参考:Internal Error: Blas GEMM launch failed 问题
https://blog.csdn.net/feixiang7701/article/details/81515447

Tensorflow程序运行中出现"Interal Error:Blas GEMM launch failed.",此错误主要是由于程序运行时GPU的空间不足而引起的。故一般出现此错误的时候,会发现程序提示的GPU freeMemory 很少,如下图所示。

 

 

出现显存不足的主要问题是Tensorflow默认申请可使用的全部显存,当tensorflow程序运行会话却没有关闭会话释放资源的时候,就会出现此错误,尤其是使用Keras、以及 jupyter的时候。可使用watch命令查看NVIDIA显卡的显存使用情况。如下图所示tensorflow的程序几乎使用了全部内存,故当新程序运行时就会显示Internal Error。

watch nvidia-smi

 

 

此问题的解决方法如下:

(1)通过强制结束进程(或者重启电脑),进行显存的释放,对于Keras、jupyter等运行时显存被耗尽的情况。kill -9可以无条件终止程序。

kill -9 3627

(2)通过设定config为使用的显存按需自动增长,避免显存被耗尽,可进行有效的预防。

gpu_no = '0' # or '1'
os.environ["CUDA_VISIBLE_DEVICES"] = gpu_no

# 定义TensorFlow配置
config = tf.ConfigProto()

# 配置GPU内存分配方式,按需增长,很关键
config.gpu_options.allow_growth = True

# 配置可使用的显存比例
config.gpu_options.per_process_gpu_memory_fraction = 0.1

# 在创建session的时候把config作为参数传进去
sess = tf.InteractiveSession(config = config)

参考链接:https://www.cnblogs.com/zhsuiy/p/8030651.html

 

 
posted @ 2020-09-14 14:15  范仁义  阅读(3818)  评论(0编辑  收藏  举报