Macbook pro外接显卡实现深度学习

耗时一整天加一晚上终于成功了安装配置外接GPU并运行深度学习案列

故事的缘由

2017年底鬼使神差的买了个macbook,放在家里吃了一年灰,心想还是要用起来啊。目前主要从事数据挖掘机器学习的工作,需要搞搞深度学习,于是上网查攻略,如何使用mac连接GPU进行深度学习,最后查到的方案是使用游戏盒子AORUS GTX 1070 GAMING BOX来连接。但是很多攻略使用的系统都是10.12的,10.13.1的极少,再加上京东下面的各种差评,抱着忐忑的心情去京东买了一个,拿回来心就凉了半截,这包装像是被退货的东西,包装有磨碎,还好打开里面,外壳没有磨损,螺丝口也没有,应该没被人拆过,那我就姑且试试吧。之前问了京东客服苹果设备必须要外接显示器才可使用,又去搞了台显示器。好了,硬件设备准备好了,开始头疼的安装工作。

配置

  • 硬件
    我的系统版本

macOS版本10.13.1
macOS版本10.13.1
GPU:AORUS GTX 1070 GAMING BOX

  • 软件
    WebDriver-378.10.10.10.20.109.pkg
    NVIDIAEGPUSupport :NVDAEGPUSupport-v2.pkg
    Python 3.7
    Xcode Version 8.3.1
    CudaToolkit: cuda_9.1.128_mac
    CUDNN: cudnn-9.1-osx-x64-v7-ga.tar

组装机诡异事件

由于macbook pro 13寸 2017款支持雷电3接口,买的游戏盒子也是雷电3接口的,按照说明书连好各种线,显卡的DVI接口接外接显示器,显卡的雷点3接口接mac,显卡插上电源同时又可以给笔记本充电,免除了再接电源线的烦恼。但是诡异的事情来了,电脑开机以后要识别显卡必须拔掉显卡的电源线,仅仅是不连接mac都是不行的,必须拔掉显卡电源线!!!在登录界面再连接好显卡的电源线和雷电3的线。之后输入mac密码登录进系统。而关机的时候不拔掉显卡,电脑关机后会重启,有时还会让电脑绿屏,甚是诡异。在显卡驱动安装好以后,显卡的正常状态是彩灯会亮起(如下图),后面的两个小风散会转动,没有装好驱动的时候灯是不会点亮的。下面开始安装显卡驱动和各种软件。
在这里插入图片描述

显卡驱动安装

  • 安装WebDriver:

https://www.insanelymac.com/forum/topic/324195-nvidia-web-driver-updates-for-macos-high-sierra-update-december-7-2018/
在该网页上下载10.13.1对应的的版本,我下载的是109版本的webdriver
在这里插入图片描述
打开安装包进行安装

  • 关闭sip

重启电脑,黑屏时候长按 command+R进入恢复模式,选择命令行工具,输入csrutil disable 这样就关闭了sip

注意:安装两个软件,在安装的注意在安全与隐私处选择允许安装

在这里插入图片描述

安装好两个软件后,关闭电脑,黑屏时拔掉显卡电源和连接电脑的线,开机之后在登录窗口出现时连接上显卡的电源,再连接上mac,同时保持外接显示器电源打开状态,如果不打开外接显示器,mac输入密码后会一直卡在登录界面。登录后看到系统报告里多一张显卡(如下图所示),那么就表明已经成功外接显卡。
在这里插入图片描述

下面开始搭建深度学习环境,来条分割线


XCode安装

下载链接如下,需要先进行注册登录,我下载的是8.3.1版本,链接地址:
https://developer.apple.com/download/more/
在这里插入图片描述
下载以后按照向导进行安装

CUDA和CUDNN安装

  • cuda Toolkit安装

英伟达显卡做深度学习需要cuda和cudnn的支持,先安装cuda Toolkit,下载地址:https://developer.nvidia.com/cuda-toolkit-archive
我这里使用的是9.1版本,
在这里插入图片描述

安装好之后,配置 CUDA 环境,打开终端,编辑 ~/.bash_profile 文件

vi ~/.bash_profile

添加环境变量

export CUDA_HOME=/usr/local/cuda
export DYLD_LIBRARY_PATH="$CUDA_HOME/lib:$CUDA_HOME/extras/CUPTI/lib"
export LD_LIBRARY_PATH=$DYLD_LIBRARY_PATH
export PATH=$DYLD_LIBRARY_PATH:$PATH
export flags="--config=cuda --config=opt"

重启bash_profile

. ~/.bash_profile

检测CUDA能否正常运行:

cd /usr/local/cuda/samples
sudo make -C 1_Utlities/deviceQuery
./bin/x86_64/darwin/release/deviceQuery

如果最后显示 Result = PASS,那么CUDA就工作正常

  • cuDNN下载
    下载cudnn需要先进行注册,打开链接找到对应的cuDNN进行安装,我这里选择的是7.0版本。
    https://developer.nvidia.com/rdp/cudnn-download
    在这里插入图片描述
    下好后直接把cudnn压缩包放到这下面/Developer,这是在安装CUDA的时候他就帮你建好的一个路径。
sudo mv 自己的路径/cudnn-9.1-osx-x64-v7-ga.tar /Developer/

然后解压缩包


sudo tar xvf cudnn-9.1-osx-x64-v7-ga.tar

cudnn与cuda合并

sudo mv /Developer/cuda/include/cudnn.h /Developer/NVIDIA/CUDA-9.1/include/
sudo mv /Developer/cuda/lib/libcudnn* /Developer/NVIDIA/CUDA-9.1/lib/
sudo ln -s /Developer/NVIDIA/CUDA-9.1/include/* /usr/local/cuda/include/
sudo ln -s /Developer/NVIDIA/CUDA-9.1/lib/* /usr/local/cuda/lib/

确认/Developer/NVIDIA/CUDA-9.1/lib和include文件夹中能看见cudnn中的文件则合并成功了

tensorflow安装

  • 建立python虚拟环境

首先安装Anoconda,可以直接下载安装,具体安装步骤不再赘述。
https://www.anaconda.com/download/#macos

  • 创建python虚拟环境
    这里选用的是python3.7版本,虚拟环境命名为tensorflow-gpu,python使用3.7版本,打开命令行工具输入
conda create -n tensorflow-gpu python=3.7
  • 下载编译好的tensorflow

由于tenserflow 1.1以后就没有支持macos了,所以上网找到编译好的tenserflow gpu版本 ,下载红框中的whl
https://github.com/TomHeaven/tensorflow-osx-build/releases

在这里插入图片描述
可以看见红框中的版本正是需要cuda 9和cudnn7
在这里插入图片描述
下载解压安装红框的的版本

unzip tensorflow.whl.zip
pip install tensorflow*.whl

好了tensorflow安装完了,安装过程中需要注意版本的匹配问题,如果版本cuda和cudnn版本不匹配,则tensorflow在run的时候可能会卡死。

算力提升效果

在这里插入图片描述
上图使用CPU
在这里插入图片描述
上图使用GPU

使用GPU以后基本上有20倍的加速

测试代码是《tensorflow实战》中提供的源码:
www.broadview.com.cn/30912
使用的是6_1_AlexNet.py的代码,IDE用的pycharm,注意在使用GPU的时候需要选择虚拟环境为tensorflow-gpu 的解释器,并且在函数run_benchmark中添加两行,否则会报内存不够的错误。
在这里插入图片描述

参考文章:
https://blog.csdn.net/hanlin_tan/article/details/78345204
https://blog.csdn.net/wz22881916/article/details/78807993/
https://blog.csdn.net/ssujoensiang/article/details/78620616
https://www.kocpc.com.tw/archives/162983

  • 15
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值