35

根据

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

但是,我想通过 Thunderbolt 3 运行一个 e-gpu 设置,比如 1080 ti 的 akitio 节点。

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

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

4

4 回答 4

27

我写了一个关于在 macOS 上使用 GPU 支持编译 TensorFlow 1.2的小教程。我认为将相关部分复制到 SO 是习惯性的,所以这里是:

  1. 如果您之前没有使用过 TensorFlow-GPU 设置,我建议您首先使用 TensorFlow 1.0 或 1.1 设置所有内容,您仍然可以使用pip install tensorflow-gpu. 一旦你开始工作,如果你正在编译 TensorFlow,CUDA 设置也可以工作。如果您有外部 GPU,YellowPillow 的答案(或的)可能会帮助您进行设置。
  2. 按照官方教程“<a href="https://www.tensorflow.org/install/install_sources" rel="noreferrer">Installing TensorFlow from Sources”,但显然git checkout r1.0git checkout r1.2. 执行时./configure,请注意 Python 库路径:它有时会提示错误的路径。在大多数情况下,我选择了默认选项,除了:Python 库路径、CUDA 支持和计算能力。不要使用 Clang 作为 CUDA 编译器:这会导致错误“Inconsistent crosstool configuration; 没有为 cpu 'darwin' 找到对应于 'local_darwin' 的工具链。”。使用/usr/bin/gccas 你的编译器实际上将使用 macOS / XCode 附带的 Clang。下面是我的完整配置。
  3. TensorFlow 1.2 需要一个名为 OpenMP 的 C 库,该库在当前的 Apple Clang 中不可用。它应该在多 CPU 机器上加速多线程 TensorFlow,但它也可以在没有它的情况下编译。我们可以尝试使用 gcc 4(我没有管理)构建 TensorFlow,或者只是从构建文件中删除包含 OpenMP 的行。就我而言,我注释掉了第 98 行tensorflow/third_party/gpus/cuda/BUILD.tplcontained linkopts = [“-lgomp”]但该行的位置可能会明显改变)。有些人对 zmuldefs 有疑问,但我认为这是早期版本的问题;感谢 udnaan 指出可以注释掉这些行。
  4. 我在使用最新的 bazel 0.5.3 构建时遇到了一些问题,所以我恢复使用已经安装的 0.4.5。但是 github issue 中的一些讨论提到 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 吗?[是/否] 否

不会为 TensorFlow 启用 MKL 支持

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

您想构建支持 Google Cloud Platform 的 TensorFlow 吗?[是/否]

不会为 TensorFlow 启用 Google Cloud Platform 支持

您希望构建支持 Hadoop 文件系统的 TensorFlow 吗?[是/否]

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

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

不会为 TensorFlow 启用 XLA 支持

你想构建带有 VERBS 支持的 TensorFlow 吗?[是/否]

不会为 TensorFlow 启用 VERBS 支持

您想构建支持 OpenCL 的 TensorFlow 吗?[是/否]

不会为 TensorFlow 启用 OpenCL 支持

您想构建支持 CUDA 的 TensorFlow 吗?[是/否] 是

将为 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。

配置完成

于 2017-08-04T14:48:49.570 回答
8

我终于可以使用以下设置

硬件

软件版本

  • 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

于 2017-10-03T19:52:21.853 回答
8

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

1.下载automate-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,因为 Mac 不支持 GPU :((

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

现在您将下载一个名为 , unzip and 的 zip 文件,它将使用终端cudnn-8.0-osx-x64-v5.1.tgz创建一个名为and cd 的文件。cuda假设该文件夹在 Downloads 中

打开终端并输入:

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使用终端以来,我创建了一个新环境:

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”,因为在此过程中没有注册符合该规范的设备

如果没有,那么你就完成了恭喜!我今天刚设置好我的,它工作得很好:)

于 2017-06-26T15:21:38.133 回答
4

这是我在 Mac 上安装 e-gpu 的解决方案。Tensorflow 不再支持 tensorflow-gpu,所以肯定有更好的方法让它工作:

我的配置:

  • IMac 27' 2012 年末
  • 活动节点
  • GTX 1080 钛
  • 3个屏幕:其中一个连接到GTX 1080,另一个直接插在mac上。

windows bootcamp安装的优点:

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

如何:

  • 使用训练营安装 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 文件夹。
  • 安装 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 驱动程序。永远不要这样做,因为您将无法再次启动计算机!在您登录 Windows 之前,会出现一个带有移动点的黑屏。游戏结束!只能使用来自NVIDIA 下载页面的显示驱动程序。
  • 如果您无法再在 OSX 上启动 windows,请在启动时按 alt 键重新安装 windows。

Ubuntu解决方案:

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

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

OSX 解决方案: Tensorflow GPU 仅支持到 tensorflow 1.1。我尝试安装更新版本,但无法构建具有 cuda 支持的 tensorflow-gpu。以下是一些方法:

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

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

我希望这能帮到您!

于 2018-01-13T00:27:42.237 回答