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

故事的缘由

2017年底鬼使神差的买了个macbook,放在家里吃了一年灰,心想还是要用起来啊。目前主要从事数据挖掘机器学习的工作,需要搞搞深度学习,于是上网查攻略,如何使用mac连接GPU进行深度学习,最后查到的方案是使用游戏盒子AORUS GTX 1070 GAMING BOX来连接。但是很多攻略使用的系统都是10.12的,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

  • 安装eGPUSupport:
    同样在该网址找到10.13.1对应的驱动下载并安装
    https://egpu.io/forums/mac-setup/wip-nvidia-egpu-support-for-high-sierra/

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

安装好两个软件后,关闭电脑,黑屏时拔掉显卡电源和连接电脑的线,开机之后在登录窗口出现时连接上显卡的电源,再连接上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

Macbook pro外接显卡实现深度学习相关推荐

  1. Macbook Pro 外接显卡实现Tensorflow GPU运行之内屏输出

    Macbook Pro 外接显卡实现Tensorflow GPU运行–内屏输出 MacOS 重装 外接显卡(内屏输出)

  2. Macbook Pro 外接显卡实现Tensorflow GPU运行之环境配置(重点)

    Macbook Pro 外接显卡实现Tensorflow GPU运行–环境配置 MacOS 重装 外接显卡(内屏输出) 环境配置(重点)

  3. Macbook Pro 外接显卡实现Tensorflow GPU运行之MacOS系统重装

    Macbook Pro 外接显卡实现Tensorflow GPU运行-MacOS重装 MacOS 重装

  4. 14年中,13寸MacBook pro外接显卡坞(技嘉aorus gaming box)经验

    为什么想要外接一个显卡 平时休息的时候想玩会儿游戏放松一下,但是MBP只能带的动LOL,每次玩只能玩LOL.看着去年大火的守望先锋,和今年大火的吃鸡,就只能看看直播,这个气呀! 与配一台主机相比的优缺 ...

  5. ArcGIS Pro基于遥感影像使用深度学习地物识别评估植被健康情况(教程)

    若内容图片加载失败,请联系博主qq624633573 1.内容梳理 对植被的健康状况进行清查和评估,需要花费大量的时间和劳动力.为简化这个过程,这一次,我们使用深度学习模型来识别树木,根据植被绿度来识 ...

  6. 用外置显卡跑深度学习的一些注意事项

    用外置显卡跑深度学习的一些注意事项 华硕的显卡坞并不是说只能在华硕电脑上用,只要有雷电3接口的一般是可以用的.这个我专门问了客服的. 搜外置显卡弄深度学习建议用google搜,搜出的结果比百度多多了. ...

  7. 杂记-Macbook Pro M1芯片能玩深度学习吗?

    介绍 苹果公司在2020年11月的产品发布会中展示了有史以来第一款基于Apple自研M系列处理器的Apple三款新Mac,包括新的M1 MacBook Air,M1 MacBook Pro和M1 Ma ...

  8. 【深度学习】基于Colab Pro的TPU训练模型教程(Tensorflow)

    [深度学习]基于Colab Pro的TPU训练模型教程(Tensorflow) 文章目录 1 概述 2 对比 TPU 与 GPU 的计算速度 3 总结和简易的测试代码 4 为什么使用 TPU 1 概述 ...

  9. 上海 · 百度语义分割Pro沙龙,高性能深度学习实战营

    如同拥有"火眼金睛"般的工业质检机器人,正在作为工业领域的热点话题被大众所熟知.它因为能有效解决人工质检成本高.效率低.无法保证准确率的问题,成为实现智能制造的重要推手.想了解其中 ...

最新文章

  1. ios之开发屏幕适配和系统版本适配(转载)
  2. Java基本语法(15)--while循环结构do-while循环结构
  3. UVA1262Password(第K字典序)
  4. java与数据库连接的几个步骤
  5. (转)区块链:CITA
  6. 虚拟机镜像文件高速下载方法之一
  7. 高频电子线路_实验一:调谐放大器
  8. java正则表达式yyyymmdd_日期正则表达式yyyyMMdd
  9. Keil4 新建工程 和 烧录程序
  10. 数据分析(2)——假设检验的详细原理步骤
  11. Namenode处于安全模式时,对hadoop进行查看操作,edits_inprogress_txid中没有事物事件的增加,txid没有增加?
  12. Asset Pricing:Asset Pricing Formula
  13. Centos 6.x 更新内核 2.6-4.13
  14. 计算机专业高数学科难度,大学里极其有难度的4个专业,挂科率很高,不是学霸学不明白...
  15. flag{e2f34a3a-9972-4ba5-bdeb-ff7d524d87cb} preg_match implode
  16. python字符串转json(python字符串转浮点数)
  17. 【问题解决】Springboot中@Value()读取不到配置文件属性解决方法
  18. 工作中的高效工具推荐,职场人士必备便签小工具
  19. 顺序栈(含有栈顶指针,栈底指针)的实现以及编写过程中的一些疑惑的解决
  20. 比亚迪“亮刀”、宁德时代“狂奔”,动力电池市场的巨头混战几时休?

热门文章

  1. openfeign的快速使用
  2. 笔记本WIFI时断时续(已解决)2021
  3. 北邮智能车仿真培训(三)—— 给车舞台让它驰骋
  4. 苹果pencil有必要买吗?苹果平板平替电容笔推荐
  5. 数据结构学习:哈希表
  6. dellR730ch插拔sdka
  7. 软考高级-系统架构师-案例分析-数据库真题考点汇总
  8. 函数原型中int *arr和int arr[]
  9. 变位词算法C语言,第二章 啊哈!算法(变位词)
  10. php单位有哪些,css中的角度单位有哪些?