2017-06-25 196 views
11

根据tensorflow的Mac OS GPU支持

https://www.tensorflow.org/install/install_mac注:由于1.2版本,TensorFlow不再提供对OS X的Mac OS X. GPU支持GPU的支持,不再提供。

不过,我希望通过雷电与1080 TI运行的E-GPU设置像akitio节点3

需要什么样的步骤来得到这个设置的工作? 到目前为止,我知道

是必需的。还有什么需要让CUDA/tensorflow工作?

+0

乔治·喜* .whl文件,你得到你的设置工作?如何?我有和你一样的硬件,想要让TensorFlow工作,但不知道从哪里开始:) – wottpal

+0

。但我真的想要使用egpu,并且面对驾驶员一些问题。 –

回答

6

假设你已经设置你的eGPU盒和连接从eGPU的TB3电缆连接到您的TB3端口:

1.下载自动化,eGPU脚本并运行它

curl -o ~/Desktop/automate-eGPU.sh 
https://raw.githubusercontent.com/goalque/automate-eGPU/master/automate-eGPU.sh 
&& chmod +x ~/Desktop/automate-eGPU.sh && cd ~/Desktop && sudo 
./automate-eGPU.sh 

您可能会收到错误消息:

“引导到恢复分区并键入:csrutil disable”

您现在需要做的就是重新启动计算机,并在重新启动时按住cmd + R启用恢复模式。然后定位终端,而在恢复模式,键入:

csrutil disable 

然后重新启动计算机并重新运行automate-eGPU.sh脚本

2:下载并安装CUDA

运行cuda_8.0.61_mac.dmg文件,并按照安装阶段进行操作。然后,您将需要设置路径。

转到您的终端,输入:

vim ~/.bash_profile 

或者你是否已经存储在您的环境变量,然后添加以下三行:

export CUDA_HOME=/usr/local/cuda 
export DYLD_LIBRARY_PATH="$CUDA_HOME/lib:$CUDA_HOME:$CUDA_HOME/extras/CUPTI/lib" 
export LD_LIBRARY_PATH=$DYLD_LIBRARY_PATH 

3。下载并安装cuDNN

下载cuDNN是比较麻烦的一点,你必须注册成为Nvidia的开发,然后再把你可以下载它。请确保下载cuDNN v5.1 Library for OSX,因为它是Tensorflow v1.1预计的版本请注意,我们不能使用Tensorflow v1.2,因为没有GPU支持的Mac:((

[![enter image description here] [ 1] [1]

现在,您将下载一个名为cudnn-8.0-osx-x64-v5.1.tgz一个压缩文件,解压后,将创建一个名为cuda和CD文件使用终端它。假设该文件夹中下载

打开终端并输入:

cd ~/Downloads/cuda 

现在我们需要cuDNN的文件复制到CUDA存储这样:

sudo cp include/* /usr/local/cuda/include/ 
sudo cp lib/* /usr/local/cuda/lib/ 

4.现在,在您畅达/ virtualenv中

安装Tensorflow-GPU V1.1对我来说,因为我用我conda创建使用终端的新环境:

conda create -n egpu python=3 
source activate egpu 
pip install tensorflow-gpu # should install version 1.1 

5.验证它的工作原理

首先,你必须重新启动计算机,则:

在终端类型python并输入:

import tensorflow as tf 
with tf.device('/gpu:0'): 
    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() as sess: 
    print (sess.run(c)) 

如果你有一个GPU这应该没有问题运行,如果是的话那么你应该得到堆栈跟踪(只是一堆错误消息),它应该包括

无法将设备分配给节点'MatMul':无法满足显式设备规范'/ device:GPU',因为没有设备matc hing该规范在这个过程中注册

如果不是那么你完成祝贺!我刚刚成立了今天,它的工作完美:)

+0

听起来不错。接下来的几天会尝试这个。目前的1.2版本张量流程正式停止支持gpus在mac吗? –

+0

另外你现在用什么驱动程序作为驱动程序面对https://egpu.io/forums/mac-setup/no-drivers-found-for-os-x-10-12-5/#post-14343似乎不适合我的1080-ti pascal GPU。 –

16

我写了一个关于compiling TensorFlow 1.2 with GPU support on macOS的小教程。我认为这是习惯如此,所以这里去复制相关部分:

  1. 如果你还没有使用TensorFlow-GPU建立之前,我建议首先设置的一切了TensorFlow 1.0或1.1,其中你仍然可以做pip install tensorflow-gpu。一旦你完成了这个工作,如果你正在编译TensorFlow,那么CUDA的设置也会起作用。如果你有一个外部GPU,YellowPillow的回答(或者mine)可能会帮助你设置一些东西。
  2. 按照官方教程“Installing TensorFlow from Sources”,但显然用git checkout r1.2替代git checkout r1.0。 在做./configure时,请注意Python库路径:它有时会提示不正确的路径。在大多数情况下,我选择了默认选项,除了:Python库路径,CUDA支持和计算能力。不要将Clang用作CUDA编译器:这会导致出现错误“不一致的crosstool配置;没有找到与'darwin'cpu'local_darwin'相对应的工具链。“使用/usr/bin/gcc作为编译器实际上会使用macOS/XCode附带的Clang。以下是我的完整配置。
  3. TensorFlow 1.2预计会有一个名为OpenMP的C库,该库在当前的Apple Clang中不可用。它应该能够在多CPU机器上加速多线程TensorFlow,但它也会在没有它的情况下编译。我们可以尝试使用gcc 4(我没有管理)构建TensorFlow,或者直接从构建文件中删除包含OpenMP的行。在我的情况下,我注释掉了tensorflow/third_party/gpus/cuda/BUILD.tpl的98行,其中contained linkopts = [“-lgomp”](但是行的位置可能明显改变)。有些人had issues with zmuldefs,但我认为是早期版本;感谢udnaan指出可以注释掉这些内容。
  4. 我使用最新的bazel 0.5.3构建了一些问题,所以我恢复使用了我已经安装的0.4.5。但是在提到bazel 0.5.2的github问题中的一些讨论也没有问题。
  5. 现在按照官方安装指南的指示使用bazel构建并完成安装。在我的3.2 GHz iMac上,这花了约37分钟。

使用Python库路径:/Users/m/code/3rd/conda/envs/p3gpu/lib/python3.6/site-packages

你希望与MKL的支持,建立TensorFlow ? [Y/N] n的

没有MKL支持将为TensorFlow

请注明优化标志巴泽尔选项“--config =选择”被指定在编译期间使用启用[默认是-march =原生] :

您是否希望使用Google云端平台支持构建TensorFlow? [Y/N]

没有谷歌云平台的支持将用于TensorFlow

启用你希望使用Hadoop文件系统的支持,建立TensorFlow? [Y/N]

没有的Hadoop文件系统的支持将是TensorFlow

启用你希望建立TensorFlow与XLA刚刚即时编译器(实验)? [Y/N]

没有XLA支持将被用于TensorFlow

启用你希望与动词的支持,建立TensorFlow? [Y/N]

没有动词的支持将是TensorFlow

启用你希望使用的OpenCL的支持,建立TensorFlow? [Y/N]

不支持OpenCL会为TensorFlow

启用你希望使用CUDA的支持,建立TensorFlow?[Y/N]Ÿ

CUDA的支持将为TensorFlow

启用你要使用铿锵的CUDA编译器? [Y/N]

NVCC将用作CUDA编译器

请注明您要使用,例如在CUDA SDK版本7.0。 [留空以使用系统默认值]:

请指定CUDA工具包的安装位置。有关更多详细信息,请参阅README.md。 [默认是/ usr/local/cuda]:

请指定nvcc应该使用哪个gcc作为主机编译器。 [默认为/ usr/bin/gcc]:

请指定您想要使用的cuDNN版本。 [留空使用系统默认值]:

请指定cuDNN库的安装位置。有关更多详细信息,请参阅README.md。 [默认为/ usr/local/cuda]:

请指定您希望使用逗号分隔的Cuda计算功能的列表。

您可以在以下位置找到您设备的计算能力:https://developer.nvidia.com/cuda-gpus

请注意,每个额外的计算能力都会显着增加构建时间和二进制大小。

[默认的是: “3.5,5.2”]:6.1

INFO:开始清洁(这可能需要一段时间)。考虑使用--async如果clean需要几分钟时间。

配置完成

+0

非常感谢您编写这个,Mattias - 正是我期待的:) –

3

我终于可以使它与下面的设置

硬件

软件版本

  • 塞拉利昂的MacOS版本10.12.6
  • GPU驱动程序版本:10.18.5(378.05.05.25f01)
  • CUDA驱动程序版本:8.0.61
  • cuDNN v5.1(2017年1月20日),对于CUDA 8.0:需要注册和下载
  • tensorflow-gpu 1.0.0
  • Keras 2.0。8

我写了一个要点与程序:

https://gist.github.com/jganzabal/8e59e3b0f59642dd0b5f2e4de03c7687

+0

您如何获得Nvidia的工作?我只看到通用的具有256 MB的Nvidia芯片型号,而不是我的1080 ti –

+0

基本上形成第7步,因为GPU无法识别,所以在2017年MacBook Pro上,我无法使用10.12.6。你有什么想法可能是错的? –

+0

@GeorgHeiler我有同样的问题。我只看到了通用的Nvidia芯片型号,但是当我执行sudo〜/ Desktop/automate-eGPU /./ automate-eGPU.sh -a(步骤5)时,终于可以看到正确的Nvidia卡型号。也许你应该在运行第5步之前插入你的egpu。让我知道这是否有效。 Rember重启你的Mac – Julian

0

这里是我的解决方案,在Mac上安装一个电子GPU。 Tensorflow不支持tensorflow GPU的了,所以肯定有更好的方法来得到它的工作:

我的配置:

  • 的iMac 27' 2012年末
  • Aktio节点
  • GTX 1080 ti
  • 3屏幕:其中一个连接到GTX 1080,其他的直接插在mac上。窗户安装集训的

优点:

  • 您可以使用画中画安装tensorflow-GPU。
  • 良好GPU 1080 TI载体(可下载的显示驱动器)

HOWTO:

  • 安装窗10与训练营。暂时不要连接Akito节点。
  • 下载,然后从NVIDIA download page
  • 安装显示驱动程序为您的GPU安装Visual Studio
    • 如果你想使用CUDA 9.x中您可以安装Visual Studio 2017年
    • 否则安装Visual Studio 2015年
  • 安装CUDA和CuDNN
    • 注意,tensorflow-GPU VERSI必须与您的CUDA和CUDNN版本匹配。查看可用的张量释放版本here
    • 安装CUDA之后,您可以将解压后的CuDNN文件移动到C:\ Program Files \ NVIDIA GPU Computing Toolkit \ CUDA \ v9.0中的CUDA文件夹中。将lib文件移动到lib文件夹,bin文件移动到bin文件夹,并将include文件移动到include文件夹。
  • 安装Python 3.5+
    • 你需要一个64位版本的安装tensorflow-GPU与PIP
    • Python 2.7版将无法正常工作。
  • 与PIP安装tensorflow:

命令:

pip install tensorflow-gpu==1.5.0rc0 

检查您的安装

的显示驱动程序已正确安装时,你可以插入一个屏幕到GTX 1080 ti卡。

请致电C:\ Program Files \ NVIDIA公司\ NVSMI \ nvidia-smi.exe检查您的视频卡是否可用于CUDA。

执行以下tensorflow命令来查看可用设备:

from tensorflow.python.client import device_lib 
device_lib.list_local_devices() 

故障排除和提示:

  • 的Windows要更新您的GTX 1080的驱动程序。永远不要允许,因为你的 将无法​​再次启动你的电脑。在您登录窗口之前,会出现一个带有移动点的黑色屏幕。游戏结束!只能使用NVIDIA download page的显示驱动程序。
  • 当你比赛结束时,在启动时按alt键从bootcamp usb棒重新安装窗口。
  • 我没有找到一种方法来从bootcamp加载Windows救援模式。

Ubuntu的解决方案:

我无法找到一个有效的解决方案,但这里有一些方法:

看来,我的GTX 680(IMAC)和我的GTX 1080 TI将不一起工作。在通过apt-get安装显示驱动程序后,Ubuntu无法启动:Ubuntu not starting anmore。尝试从NVIDIA download page下载官方显示驱动程序。

OSX解决方案: Tensorflow GPU只支持到tensorflow 1.1。我试图安装一个更新的版本,但不能用cuda支持构建tensorflow-gpu。以下是一些方法:

  • 安装OSX Sierra以使用e-gpu script。高塞拉利昂将无法工作(2018年1月13日)。通过删除所有分区来降级到Sierra。然后在启动时按Command + R加载Internet恢复。不要忘记先备份你的数据。
  • 安装e-gpu script
  • 如果tensorflow-gpu 1.1对你来说足够了,你可以通过pip来安装,否则你需要用bazel来建立你的pip。

结论: Windows安装比OSX或Ubuntu的安装更容易,因为显示驱动器正常和tensorflow工作,绝不能建立在你自己的。始终检查您使用的软件版本。必须完全匹配。

我希望这会帮助你!