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

Posted

技术标签:

【中文标题】如何在 AMD/ATI GPU 上运行 TensorFlow?【英文标题】:How to run TensorFlow on AMD/ATI GPU? 【发布时间】:2019-01-14 17:24:18 【问题描述】:

阅读本教程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: 我 tensorflow/core/platform/cpu_feature_guard.cc:141] 你的 CPU 支持 此 TensorFlow 二进制文件未编译使用的指令:AVX2 FMA 设备映射:没有已知设备。 2018-08-07 18:44:59.019536: 我 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: 我 张量流/核心/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:我 tensorflow/core/common_runtime/placer.cc:886] 一个: (常量)/job:localhost/replica:0/task:0/device:CPU:0 b: (常量): /job:localhost/replica:0/task:0/device:CPU:0 2018-08-07 18:44:59.019934:我 tensorflow/core/common_runtime/placer.cc:886] b: (常量)/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: 我 tensorflow/core/platform/cpu_feature_guard.cc:141] 你的 CPU 支持 此 TensorFlow 二进制文件未编译使用的指令:AVX2 FMA [[ 22. 28.] [ 49. 64.]]

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

【问题讨论】:

【参考方案1】:

肯定可以在 AMD GPU 上运行 tensorflow。大约 2 年前 ROCm 发布了,它可以完成任务。但是,需要注意的是,由于其开源来源,它目前仅在 Linux 上运行。因此,如果您愿意使用 Linux,那么您肯定可以使用 AMD GPU 训练您的深度学习模型。也就是说,由于社区仍然不够大,您将获得的支持数量很少。谷歌搜索 ROCm,你可以得到关于如何在 Linux 机器上设置和运行它的说明。可能它可以在 Windows 中与 WSL2 一起使用,但我还没有尝试过,因此无法对此发表评论。

here is a link to ROCm installation docs

【讨论】:

【参考方案2】:

您可以使用 TensorflowJS,即 TensorFlow 的 javascript 版本。 TensorflowJS 没有任何硬件限制,可以在所有支持 webGL 的 gpu 上运行。

这个 api 与 python 中的 tf 非常相似,并且该项目提供了将你的模型从 python 转换为 JS 的脚本

【讨论】:

哇。与 CUDA+Tensorflow 相比,性能有何不同?你能用一个简单的基准来衡量它吗? RoCM 仅支持 Ubuntu 和 Linux 操作系统:rocmdocs.amd.com/en/latest/Installation_Guide/…【参考方案3】:

我相信 TensorFlow-GPU 只支持 NVIDIA 的 CUDA Compute Capability >= 3.0 的 GPU 卡。

以下 TensorFlow 变体可供安装:

仅支持 CPU 的 TensorFlow。如果您的系统没有 NVIDIA® GPU,则必须安装此版本。此版本的 TensorFlow 通常更易于安装,因此即使您有 NVIDIA GPU,我们也建议您先安装此版本。

支持 GPU 的 TensorFlow。 TensorFlow 程序通常在 GPU 而不是 CPU 上运行得更快。如果您运行性能关键型应用程序并且您的系统具有满足先决条件的 NVIDIA® GPU,则应安装此版本。有关详细信息,请参阅 TensorFlow GPU 支持。

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

【讨论】:

:(谢谢。可惜他们不支持“AMD/ATI Oland Radeon HD 8570 / R7 240/340 OEM”GPU @SuleymanSuleyman-zade 有第三方存储库支持 AMD RADEON GPU github.com/ROCmSoftwarePlatform/tensorflow-upstream。 ROCm 在那里.. 不只是 CUDA

以上是关于如何在 AMD/ATI GPU 上运行 TensorFlow?的主要内容,如果未能解决你的问题,请参考以下文章

我的 GPU 中有多少个内核? [关闭]

TensorFlow 的 ./configure 在哪里以及如何启用 GPU 支持?

Tensorflow:您如何在模型训练期间实时监控 GPU 性能?

测量 NVIDIA 张量核心加速

运行你的第一个TensorFlow程序

如何编写可在任何 GPU 上运行的 GPU 并行化程序? [关闭]