機械学習

如何在TensorFlow中解决"Blas GEMM启动失败"问题

如何在TensorFlow中解决Blas GEMM启动失败问题

有时您会在TensorFlow中看到 Blas GEMM launch failed 错误。
这有点难以理解。
因此,本文介绍了如何在TensorFlow中解决"Blas GEMM启动失败"问题。



什么是TensorFlow?

TensorFlow是非常着名的机器学习库。
在机器学习领域,每个人都知道。
它对神经网络处理很有用。
在TensorFlow中,您有隐藏图层或激活功能等详细设置。

TensorFlow是一个免费的开源软件库,用于在一系列任务中进行数据流和可区分编程。它是一个符号数学库,也用于机器学习应用程序,如神经网络。
TensorFlow - 维基百科


原因导致"Blas GEMM发布失败"

在Python中执行TensorFlow过程时,您可能会看到此错误。

InternalError: Blas GEMM launch failed

出现此错误的原因是内存溢出。
如果您尝试使用太多内存,则会发生错误。

为了检查内存,很容易检查 GPU内存使用情况
对于Windows10,您可以使用 taskmgr 命令运行任务管理器。
您可以看到"GPU0"或"GPU1"的GPU内存使用情况。
如果运行TensorFlow prrogram时GPU内存使用率达到100%,则意味着内存溢出。

检查GPU内存使用情况。在Windows10中,您可以在任务管理器上进行检查。
[Tensorflow] InternalError:Blas SGEMM启动失败|程式码实验室


共享GPU内存可用吗?

在任务管理器上,您可以看到私有GPU内存共享GPU内存
因此,您可以估计共享GPU内存可用。
但是不可能将共享GPU内存用于TensorFlow。

共享GPU内存不在GPU上。它是为GPU共享的PC内存。
CUDA只能使用GPU内存。所以它不能使用共享GPU内存

共享内存是主RAM的保留内存。
它不在你的NVIDIA GPU上。 CUDA无法使用它。
TensorFlow中是否提供共享GPU内存?


如何避免"Blas GEMM启动失败"

有一些解决方案。

  • 用更大的内存替换GPU
  • 修改您的程序以减少内存使用
  • 使用GPU1代替GPU0

我介绍如何使用另一个GPU(GPU1)。


如何使用其他GPU

如果你有2个GPU,你可以使用秒秒GPU。
为了在Python上选择GPU,你可以在运行TensorFlow进程之前使用 config

import keras
import tensorflow as tf
tf.Session(config=tf.ConfigProto(device_count = {'GPU': 1}))

参考:
在Jupyter上选择GPU - Qiita


最后

  • Blas GEMM启动失败的原因是GPU内存溢出
  • 共享GPU内存不可用,因为它不在GPU上
  • 其中一个解决方案是使用config选择另一个GPU。


コチラもオススメ

KRSW

駆け出し機械学習エンジニア。機械学習、DB、WEBと浅く広い感じ。 Junior machine learning engineer. Not a specialist but a generalist who knows DB, WEB too.

If you felt this article is useful, please share.

にほんブログ村 IT技術ブログへ

-機械学習
-, , ,

Translate »

Copyright© ITips , 2020 All Rights Reserved.