tensorflow Mac OS GPU支持
tensorflow
9
0

根据

https://www.tensorflow.org/install/install_mac注意:从1.2版开始,TensorFlow不再在Mac OS X上提供GPU支持。不再提供对OS X的GPU支持。

但是,我想通过Thunderbolt 3运行带有1080 ti的类似akitio节点的e-gpu设置。

要使此设置正常工作,需要执行哪些步骤?到目前为止,我知道

是必要的。要使CUDA / tensorflow正常工作还需要什么?

参考资料:
Stack Overflow
收藏
评论
共 4 个回答
高赞 时间 活跃

我最终可以在以下设置下使用它

硬件

软件版本

  • macOS Sierra版本10.12.6
  • GPU驱动程序版本:10.18.5(378.05.05.25f01)
  • CUDA驱动程序版本:8.0.61
  • cuDNN v5.1(2017年1月20日),适用于CUDA 8.0:需要注册和下载
  • 张量流-gpu 1.0.0
  • 凯拉斯2.0.8

我写了要点与程序:

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

收藏
评论

我写了一个关于在MacOS编译具有GPU支持的TensorFlow 1.2的小教程。我认为将相关部分复制到SO是习惯做法,所以这是这样:

  1. 如果您以前没有使用过TensorFlow-GPU设置,建议您先使用TensorFlow 1.0或1.1进行所有设置,然后仍然可以通过pip install tensorflow-gpu 。一旦完成工作,如果您正在编译TensorFlow,CUDA设置也将起作用。如果您有外部GPU,YellowPillow的答案(或mine )可能会帮助您进行设置。
  2. 遵循官方教程“ 从源代码安装TensorFlow ”,但显然可以用git checkout r1.0代替git checkout r1.2 。在执行./configure ,请注意Python库路径:有时提示不正确。在大多数情况下,我选择默认选项,但以下选项除外:Python库路径,CUDA支持和计算能力。请勿将Clang用作CUDA编译器:这将导致您出现错误“ crosstool配置不一致;请参见第15页的“交叉工具配置不一致”。没有为CPU“ darwin”找到与“ 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”] (但是该行的位置可能明显改变了)。有些人对zmuldefs有问题 ,但是我认为那是早期版本的问题。感谢udnaan指出可以注释掉这些行。
  4. 我在使用最新的bazel 0.5.3进行构建时遇到了一些问题,因此我恢复为使用已经安装的0.4.5。但是在github问题中的一些讨论提到bazel 0.5.2也没有问题。
  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

TensorFlow不会启用MKL支持

当指定bazel选项“ --config = opt”时,请指定要在编译期间使用的优化标志[默认为-march = native]:

您是否希望使用Google Cloud Platform支持构建TensorFlow? [是/否]

TensorFlow不会启用任何Google Cloud Platform支持

您是否希望使用Hadoop File System支持构建TensorFlow? [是/否]

TensorFlow不会启用Hadoop文件系统支持

您是否希望使用XLA即时编译器构建TensorFlow(实验性)? [是/否]

TensorFlow不会启用任何XLA支持

您是否想在VERBS支持下构建TensorFlow? [是/否]

TensorFlow不会启用VERBS支持

您是否希望使用OpenCL支持构建TensorFlow? [是/否]

TensorFlow不会启用OpenCL支持

您是否希望使用CUDA支持构建TensorFlow? [y / N] y

TensorFlow将启用CUDA支持

您想使用clang作为CUDA编译器吗? [是/否]

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

信息:开始清洁(这可能需要一段时间)。如果清理时间超过几分钟,请考虑使用--async。

配置完成

收藏
评论

假设您已经设置好eGPU盒并将TB3电缆从eGPU连接到TB3端口:

1.下载并运行autoate-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期望的库。请注意,由于Mac不支持GPU,因此我们不能使用Tensorflow v1.2:((

[![在此处输入图片描述] [1]] [1]

现在,您将下载一个名为cudnn-8.0-osx-x64-v5.1.tgz的zip文件,解压缩并使用终端将创建一个名为cuda和cd的文件。假设该文件夹位于“下载”中

打开终端并输入:

cd ~/Downloads/cuda

现在我们需要将cuDNN文件复制到存储CUDA位置,以便:

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

4.现在在您的conda / virtualenv中安装Tensorflow-GPU v1.1

对我来说,因为我使用conda所以使用Terminal创建了一个新环境:

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:0”,因为在此过程中未注册与该规范匹配的设备

如果没有,那么恭喜您!我今天刚设置好我的,并且运行良好:)

收藏
评论

这是我在Mac上安装e-gpu的解决方案。 Tensorflow不再支持tensorflow-gpu,因此绝对有更好的方法来使其工作:

我的配置:

  • IMac 27'2012年底
  • Aktio节点
  • GTX 1080 ti
  • 3个屏幕:其中一个连接到GTX 1080,另一个直接插入Mac。

Windows Bootcamp安装的优点:

  • 您可以使用pip安装tensorflow-gpu。
  • 良好的GPU 1080 ti支持(可下载的显示驱动程序)

如何:

  • 使用Bootcamp安装Windows 10。目前请勿连接Akito节点。
  • NVIDIA下载页面下载并安装适用于您的GPU的显示驱动程序
  • 安装Visual Studio
    • 如果要使用CUDA 9.x,则可以安装Visual Studio 2017
    • 否则安装Visual Studio 2015
  • 安装CUDA和CuDNN
    • 请注意,tensorflow-gpu版本必须与您的Cuda和CudNN版本匹配。 在此处查看可用的tensorflow版本。
    • 安装CUDA之后,您可以将解压缩后的CuDNN文件移动到CUDA文件夹,位于:C:\ Program Files \ NVIDIA GPU Computing Toolkit \ CUDA \ v9.0。将lib文件移动到lib文件夹,将bin文件移动到bin文件夹,将include文件移动到include文件夹。
  • 安装Python 3.5+
    • 您需要64位版本才能通过pip安装tensorflow-gpu
    • Python 2.7无法正常工作。
  • 使用pip安装tensorflow:

命令:

pip install tensorflow-gpu==1.5.0rc0

检查您的安装

当您可以将屏幕插入GTX 1080 ti卡时,显示驱动程序已正确安装。

调用C:\ Program Files \ NVIDIA Corporation \ NVSMI \ nvidia-smi.exe,检查您的视频卡是否可用于CUDA。

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

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

故障排除和提示:

  • Windows希望更新您的GTX 1080驱动程序。绝对不要这样做,因为您将无法再次启动计算机!在您登录窗口之前,将出现一个带有移动点的黑屏。游戏结束!仅使用NVIDIA下载页面上的显示驱动程序。
  • 如果无法再在OSX上启动Windows,请在启动时按Alt键重新安装Windows。

Ubuntu解决方案:

我找不到可行的解决方案,但是这里有一些方法:

看来我的GTX 680(iMac)和我的GTX 1080 ti不能一起工作。通过apt-get安装显示驱动程序后,无法再启动UbuntuUbuntu不能再启动anmore 。尝试从NVIDIA下载页面下载官方显示驱动程序。

OSX解决方案:仅在tensorflow 1.1之前支持Tensorflow GPU。我试图安装较新的版本,但无法通过cuda支持构建tensorflow-gpu。以下是一些方法:

  • 安装OSX Sierra以使用e-gpu脚本 。海塞拉山脉将不起作用(2018年1月13日)。通过删除所有分区降级为sierra。然后在启动时按Command + R加载Internet恢复。不要忘记先备份您的数据。
  • 安装e-gpu脚本
  • 如果tensorflow-gpu 1.1足以满足您的要求,则可以通过pip进行安装,否则您需要使用bazel构建pip。

结论: Windows安装比OSX或Ubuntu安装更容易,因为显示驱动程序可以正常工作和tensorflow,并且不能自行构建。始终检查您使用的软件版本。必须完全匹配。

我希望这能帮到您!

收藏
评论
新手导航
  • 社区规范
  • 提出问题
  • 进行投票
  • 个人资料
  • 优化问题
  • 回答问题