Geo*_*ler 27 macos tensorflow tensorflow-gpu
根据
https://www.tensorflow.org/install/install_mac注意:从版本1.2开始,TensorFlow不再在Mac OS X上提供GPU支持.不再提供对OS X的GPU支持.
但是,我想通过thunderbolt 3来运行像akitio节点这样的e-gpu设置.
要使此设置生效,需要执行哪些步骤?到目前为止,我知道
是必要的.还有什么需要让CUDA/tensorflow工作?
Mat*_*rro 23
我在macOS上编写了一个关于编译TensorFlow 1.2和GPU支持的小教程.我认为将相关部分复制到SO是习惯做法,所以在这里:
pip install tensorflow-gpu
.一旦你开始工作,如果你正在编译TensorFlow,那么CUDA设置也会有效.如果你有一个外部GPU,YellowPillow的答案(或我的答案)可能会帮助你设置好东西.git checkout r1.0
用git checkout r1.2
.在做的时候./configure
,要注意Python库路径:它有时会暗示一个不正确的路径.在大多数情况下,我选择了默认选项,除了:Python库路径,CUDA支持和计算容量.不要使用Clang作为CUDA编译器:这将导致错误"不一致的crosstool配置; 没有为cpu'darwin'找到的'local_darwin'对应的工具链." 使用/usr/bin/gcc
as as编译器实际上将使用macOS/XCode附带的Clang.以下是我的完整配置.tensorflow/third_party/gpus/cuda/BUILD.tpl
,contained linkopts = [“-lgomp”]
(但该行的位置可能会明显改变).有些人对zmuldefs有问题,但我认为这与早期版本有关; 感谢udnaan指出可以评论出这些线条.使用python库路径:/Users/m/code/3rd/conda/envs/p3gpu/lib/python3.6/site-packages
您是否希望使用MKL支持构建TensorFlow?[y/N] N.
不会为TensorFlow启用MKL支持
当指定bazel选项"--config = opt"时,请指定在编译期间使用的优化标志[Default is -march = native]:
您是否希望通过Google Cloud Platform支持构建TensorFlow?[Y/N]
不会为TensorFlow启用Google Cloud Platform支持
您是否希望使用Hadoop文件系统支持构建TensorFlow?[Y/N]
不会为TensorFlow启用Hadoop文件系统支持
您是否希望使用XLA即时编译器(实验性)构建TensorFlow?[Y/N]
TensorFlow不会启用XLA支持
您是否希望使用VERBS支持构建TensorFlow?[Y/N]
不会为TensorFlow启用VERBS支持
您是否希望在OpenCL支持下构建TensorFlow?[Y/N]
不会为TensorFlow启用OpenCL支持
您是否希望通过CUDA支持构建TensorFlow?[y/N] y
将为TensorFlow启用CUDA支持
你想使用clang作为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
信息:开始清洁(这可能需要一段时间).如果清理时间超过几分钟,请考虑使用--async.
配置完成
假设您已经设置了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
Run Code Online (Sandbox Code Playgroud)
您可能会收到错误消息:
"启动到恢复分区并键入:csrutil disable"
您现在需要做的就是重新启动计算机,并在重新启动时按住cmd + R
以启用恢复模式.然后在恢复模式下找到终端并输入:
csrutil disable
Run Code Online (Sandbox Code Playgroud)
然后重新启动计算机并重新运行automate-eGPU.sh
脚本
2:下载并安装CUDA
运行该cuda_8.0.61_mac.dmg
文件并完成安装阶段.然后你需要设置路径.
转到您的终端并输入:
vim ~/.bash_profile
Run Code Online (Sandbox Code Playgroud)
或者您是否已存储环境变量,然后添加以下三行:
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
Run Code Online (Sandbox Code Playgroud)
3.下载并安装cuDNN
要下载cuDNN有点麻烦,你必须注册成为Nvidia的开发人员,然后你可以下载它.确保下载,cuDNN v5.1 Library for OSX
因为它是Tensorflow v1.1预期的那个注意我们不能使用Tensorflow v1.2,因为没有GPU支持Mac:((
[![在此输入图片说明] [1]] [1]
现在你将下载一个名为cudnn-8.0-osx-x64-v5.1.tgz
unzip 的zip文件,cuda
它将使用终端创建一个名为cd 的文件并将其cd到它.假设该文件夹位于下载中
打开终端并输入:
cd ~/Downloads/cuda
Run Code Online (Sandbox Code Playgroud)
现在我们需要将cuDNN
文件复制到CUDA
存储的位置,以便:
sudo cp include/* /usr/local/cuda/include/
sudo cp lib/* /usr/local/cuda/lib/
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
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))
Run Code Online (Sandbox Code Playgroud)
如果你有一个GPU应该运行没有问题,如果它,那么你应该得到一个堆栈跟踪(只是一堆错误消息),它应该包括
无法将设备分配给节点'MatMul':无法满足显式设备规范'/ device:GPU:0',因为在此过程中未注册与该规范匹配的设备
如果没有那么你就完成了祝贺!我刚刚安装了我的设备并且工作正常:)
我终于可以使用以下设置了
我写了一个关于程序的要点:
https://gist.github.com/jganzabal/8e59e3b0f59642dd0b5f2e4de03c7687
归档时间: |
|
查看次数: |
39394 次 |
最近记录: |