如何在AMD/ATI GPU上运行TensorFlow?

6

阅读完这篇教程 https://www.tensorflow.org/guide/using_gpu 后,我在这个简单的代码中检查了GPU会话

import numpy as np
import matplotlib.pyplot as plt
import tensorflow as tf

a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[2,3], name = 'a')
b = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape = [3,2], name =  'b')
c = tf.matmul(a, b)

with tf.Session(config=tf.ConfigProto(log_device_placement=True)) as sess:
    x = sess.run(c)
print(x)

输出结果为: 2018-08-07 18:44:59.019144:I tensorflow/core/platform/cpu_feature_guard.cc:141] 您的 CPU 支持此 TensorFlow 二进制文件未编译使用的指令集:AVX2 FMA Device mapping: no known devices. 2018-08-07 18:44:59.019536:I tensorflow/core/common_runtime/direct_session.cc:288] 设备映射: MatMul: (MatMul):/job:localhost/replica:0/task:0/device:CPU:0 2018-08-07 18:44:59.019902:I tensorflow/core/common_runtime/placer.cc:886] MatMul: (MatMul)/job:localhost/replica:0/task:0/device:CPU:0 a: (Const):/job:localhost/replica:0/task:0/device:CPU:0 2018-08-07 18:44:59.019926:I tensorflow/core/common_runtime/placer.cc:886] a: (Const)/job:localhost/replica:0/task:0/device:CPU:0 b: (Const):/job:localhost/replica:0/task:0/device:CPU:0 2018-08-07 18:44:59.019934:I tensorflow/core/common_runtime/placer.cc:886] b:(Const)/job:localhost/replica:0/task:0/device:CPU:0 [[22.28.] [49.64.]] 正如您所看到的,GPU 并未进行计算。当我更改了代码以使用 GPU 的配置并处理分数时:
conf = tf.ConfigProto()
conf.gpu_options.per_process_gpu_memory_fraction = 0.4

with tf.Session(config = conf) as sess:
    x = sess.run(c)
print(x)

输出结果为

2018-08-07 18:52:22.681221: I tensorflow/core/platform/cpu_feature_guard.cc:141] 您的CPU支持指令,但此版本TensorFlow未编译为使用:AVX2 FMA [[22. 28.] [49. 64.]]

我该如何在GPU卡上运行会话呢?谢谢。

3个回答

5
可以在AMD GPU上运行tensorflow。大约两年前,发布了ROCm,可以实现这一点。然而,有一个注意事项,由于其开源的起源,目前它只能在Linux上运行。因此,如果您愿意使用Linux,那么您可以非常确定地使用AMD GPU训练DL模型。尽管如此,您将得到的支持量较少,因为社区仍然不够大。谷歌搜索ROCm,您可以获得有关如何在Linux机器上设置和运行它的说明。也许它会在Windows的WSL2上工作,但我还没有尝试过,无法对此发表评论。 这里是ROCm安装文档的链接

4
你可以使用TensorflowJS,它是TensorFlow的JavaScript版本。 TensorflowJS没有任何硬件限制,可以在支持WebGL的所有GPU上运行。 其API与Python中的tf非常相似,并且该项目提供了将模型从Python转换为JS的脚本。

哇,与CUDA+Tensorflow相比,性能差异有多大?您能在一个简单的基准测试上进行衡量吗? - inf3rno
RoCM仅支持Ubuntu和Linux操作系统:https://rocmdocs.amd.com/en/latest/Installation_Guide/Installation-Guide.html#prerequisites - X Builder

0

我相信TensorFlow-GPU只支持具有CUDA计算能力 >= 3.0 的NVIDIA GPU卡。

以下是可用于安装的TensorFlow变体:

仅支持CPU的TensorFlow。如果您的系统没有NVIDIA® GPU,则必须安装此版本。通常情况下,安装此版本的TensorFlow较为容易,因此即使您拥有NVIDIA GPU,我们也建议首先安装此版本。

支持GPU的TensorFlow。与CPU相比,TensorFlow程序在GPU上运行通常要快得多。如果您运行性能关键型应用程序并且您的系统具有符合先决条件的NVIDIA® GPU,则应安装此版本。有关详细信息,请参见TensorFlow GPU支持。

https://www.tensorflow.org/install/install_linux


1
很遗憾,他们不支持“AMD / ATI Oland Radeon HD 8570 / R7 240/340 OEM” GPU。 - Suleyman Suleymanzade
4
@SuleymanSuleyman-zade,这个仓库支持第三方的 AMD RADEON GPU,网址是https://github.com/ROCmSoftwarePlatform/tensorflow-upstream。 - BugKiller
1
ROCm在那里..不仅仅是CUDA - RahulCastro

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接