发生"Attempting to perform BLAS operation using StreamExecutor without BLAS support"错误



我的电脑只有1个GPU。

下面是我输入某人的代码得到的结果

[name: "/device:CPU:0" device_type: "CPU" memory_limit: 268435456
locality {} incarnation: 16894043898758027805, name: "/device:GPU:0"
device_type: "GPU" memory_limit: 10088284160
locality {bus_id: 1 links {}}
incarnation: 17925533084010082620
physical_device_desc: "device: 0, name: GeForce RTX 3060, pci bus id: 0000:17:00.0, compute 
capability: 8.6"]

我使用jupyter笔记本,我现在运行2个内核。(TensorFlow 2.6.0,还安装了CUDA和cuDNN作为TensorFlow指南)

第一个内核从Keras运行顺序模型是没有问题的。

但是当我在第二个内核中学习相同的代码时,我得到了如下的错误:

尝试使用StreamExecutor执行BLAS操作而不支持BLAS[[node sequential_3/dense_21/MatMul (defined at AppDataLocalTemp/ipykernel_14764/369236332 .py:1)]] [Op:__inference_train_function_7682]

函数调用栈:train_function

我如何能够毫无问题地学习多个内核,并仅与1个GPU共享它们?

我不熟悉TensorFlow 1.x。


我只是解决了这个问题如下。这个问题是因为当keras运行gpu。它几乎使用了所有的内存。所以我需要为每个笔记本设置memory_limit。这是我的代码,我如何解决它。您可以直接更改memory_limit的值。

gpus = tf.config.experimental.list_physical_devices('GPU')
if gpus:
try:
tf.config.experimental.set_virtual_device_configuration(
gpus[0],[tf.config.experimental.VirtualDeviceConfiguration(memory_limit=5120)])
except RuntimeError as e:
print(e)

为了社区的利益,在这里提供解决方案

这个问题是因为当keras与gpu一起运行,它几乎使用了所有的vram。所以我们需要给予每个笔记本的memory_limit如下所示

gpus = tf.config.experimental.list_physical_devices('GPU')
if gpus:
try:
tf.config.experimental.set_virtual_device_configuration(
gpus[0],[tf.config.experimental.VirtualDeviceConfiguration(memory_limit=5120)])
except RuntimeError as e:
print(e)

(转述自MCPMH)

当打开Jupyter笔记本试图运行python脚本时,我遇到了这个错误。在运行脚本之前杀死笔记本内核是有效的。似乎只有一个程序可以在同一时间使用GPU。

相关内容

  • 没有找到相关文章

最新更新