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

时间:2018-08-07 14:58:09

标签: tensorflow gpu amd

在阅读了本教程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 /副本:0 /任务:0 /设备:CPU:0   2018-08-07 18:44:59.019902:我   tensorflow / core / common_runtime / placer.cc:886] MatMul:   (MatMul)/作业:本地主机/副本:0 /任务:0 /设备:CPU:0 a:(常量):   /作业:localhost /副本:0 /任务:0 /设备:CPU:0 2018-08-07   18:44:59.019926:我tensorflow / core / common_runtime / placer.cc:886] a:   (常量)/作业:本地主机/副本:0 /任务:0 /设备:CPU:0 b:(常量):   /作业:localhost /副本:0 /任务:0 /设备:CPU:0 2018-08-07   18:44:59.019934:我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:我   tensorflow / core / platform / cpu_feature_guard.cc:141]您的CPU支持   TensorFlow二进制文件未编译使用的指令:AVX2   FMA [[22. 28.] [49. 64。]]

我该怎么做才能在GPU卡上运行会话?谢谢。

3 个答案:

答案 0 :(得分:3)

最有可能在AMD GPU上运行tensorflow。 ROCm 大约发布了2年,完成了一切。但是,这是一个警告,由于其开源的缘故,它目前仅在Linux上运行。因此,如果您愿意使用Linux,那么无疑可以使用AMD GPU训练DL模型。也就是说,由于社区还不够大,您将获得的支持量很少。在Google上搜索ROCm,您将获得有关如何在Linux机器上进行设置和运行的说明。也许它可以在Windows中与WSL2一起使用,但是我还没有尝试过,因此无法对此发表评论。

here is a link to ROCm installation docs

答案 1 :(得分:1)

我相信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

答案 2 :(得分:0)

您可以使用TensorflowJS(tensorflow的Javascript版本)。 TensorflowJS没有任何硬件限制,并且可以在所有支持gpu的webGL上运行。

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