【问题标题】:Tensorflow issue with GPU on matmul. GPU isn't recognizedmatmul 上 GPU 的 TensorFlow 问题。无法识别 GPU
【发布时间】:2016-02-16 09:15:54
【问题描述】:

我用 gpu、cuda 7.0 和 cudnn 6.5 安装了 tensorflow。当我导入 tensorflow 时,它运行良好。

我正在尝试在 Tensorflow 上运行一个简单的矩阵乘法,它不想使用我的 gpu,尽管它似乎可以识别它。我的电脑上有一个 nvidia geforce 970m 和一个有两个 Titan Z 的集群。

我的第一个代码是:

import tensorflow as tf
import numpy as np

size=100
#I create 2 matrix
mat1 = np.random.random_sample([size, size])*100
mat2 = np.random.random_sample([size, size])*100

a = tf.constant(mat1)
b = tf.constant(mat2)
c = tf.matmul(a, b)
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
sess.run(c)

这段代码有效,结果是:

Const_1: /job:localhost/replica:0/task:0/gpu:0
I tensorflow/core/common_runtime/simple_placer.cc:289] Const_1: /job:localhost/replica:0/task:0/gpu:0
Const: /job:localhost/replica:0/task:0/gpu:0
I tensorflow/core/common_runtime/simple_placer.cc:289] Const: /job:localhost/replica:0/task:0/gpu:0
MatMul: /job:localhost/replica:0/task:0/cpu:0
I tensorflow/core/common_runtime/simple_placer.cc:289] MatMul: /job:localhost/replica:0/task:0/cpu:0

所以以我的方式,tensorflow 使用我的 gpu 来创建常量,但不适用于 matmul(这很奇怪)。然后,我像这样强制 gpu:

with tf.device("/gpu:0"):
    a = tf.constant(mat1)
    b = tf.constant(mat2)
    c = tf.matmul(a, b)
    sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
    sess.run(c)

Tensorflow 返回:

InvalidArgumentError: Cannot assign a device to node 'MatMul': Could not satisfy explicit device specification '/gpu:0'

如果有人有同样的问题或想法,我会很高兴看到你的回答!

【问题讨论】:

  • 也许你遇到了这个问题github.com/tensorflow/tensorflow/issues/29“Tensorflow 似乎需要 3.5 的 cuda 计算能力”——我们中的一些人只有 3.0。在这里检查你的:en.wikipedia.org/wiki/CUDA#Supported_GPUs
  • 感谢您的回答,但我查了一下,gtx 970m 的计算能力为 5.2,titan Z 的计算能力为 3.5。此外,当执行脚本 ./configure.sh 它告诉我[默认为:“3.5,5.2”] 所以我认为这方面很好。
  • 试试 mat1=np.random.random_sample([size, size]).astype(np.float32)*100
  • 哦,它有效!非常感谢你 !所以现在我知道 float64 不是矩阵乘法的好主意;)
  • 这取决于你需要做什么。如果您需要将损失函数最小化为“任意”精度,那么您需要双打

标签: gpu matrix-multiplication tensorflow invalid-argument


【解决方案1】:

我没有足够的声誉来发表评论,我遇到了类似的问题,我的问题就在这里

TensorFlow: critical graph operations assigned to cpu rather than gpu

【讨论】:

  • 有用的上下文,你现在应该有足够的声誉来发表评论;)
猜你喜欢
  • 2020-01-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-12
  • 1970-01-01
  • 2021-10-24
  • 2017-04-05
  • 2021-12-20
相关资源
最近更新 更多