Macbook Pro 外接显卡实现Tensorflow GPU运行之环境配置(重点)
Macbook Pro 外接显卡实现Tensorflow GPU运行–环境配置
- MacOS 重装
- 外接显卡(内屏输出)
- 环境配置(重点)👆
- Tensorflow GPU 配置
环境配置
准备工作
- 显卡:GTX 1080TI 11G
- 显卡坞:Mantiz (技嘉的Gamingbox应该也可以)
- 显卡欺骗器(有条件的配个外屏吧,毕竟外屏转内屏输出损耗还是挺大的)
- MacOS:
- 雷电3接口
安装步骤
- macOS 系统安装(见blog1)
- CUDA配置
- cuDNN配置
- Tensorflow配置(见blog4)
CUDA加速
- 准备列表
资源 | 版本号 |
---|---|
MacOS | 10.13. 6(17G65) |
GPU driver | NIVIDIA Web Driver 387.10.10.40.105 |
CUDA driver | 9.2(396.148 ) |
cuDNN | cudnn-9.2-osx-x64-v7.2.1.38 |
Xcode | 9.2 |
注意⚠️:相关驱动版本以及编译环境工具必须配套对应!
-
步骤
-
关闭SIP:重新启动macOS,并同时按住Command和R进入Recovery OS;
在Utilities菜单中启动Terminal;
在Terminal中执行命令:
$ csrutil disable;
重新启动后进入Recovery OS 在Utilities中启动Terminal 执行命令:
$ csrutil status
确认状态为disable -
安装GPU驱动
在Terminal中执行:
sudo curl -s "https://api.github.com/repos/mayankk2308/purge-wrangler/releases/latest" | grep '"browser_download_url":' | sed -E 's/.*"([^"]+)".*/\1/' | xargs curl -L -s -0 > purge-wrangler.sh && chmod +x purge-wrangler.sh && ./purge-wrangler.sh && rm purge-wrangler.sh
选择对应的显卡即可 -
安装CUDA:
- ⚠️:CUDA driver必须与GPU driver版本一致!版本号对应查找:http://www.macvidcards.com/drivers.html
- 在CUDA driver里找到对应版本号下载安装 http://www.nvidia.com/object/mac-driver-archive.html
- 安装CUDA Toolkit
⚠️: CUDA Toolkit必须与CUDA driver版本号以及macOS对应!
下载安装顺序:先安装基础安装包再装补丁,一定注意顺序!
https://developer.nvidia.com/cuda-toolkit-archive
-
配置CUDA环境前的工作
- Xcode 安装
CUDA环境配置时,需要Xcode command line tools的支持。macOS 10.13.6 一般对应的是Xcode 9.2。如果有Xcode版本较高的同学建议重新安装Xcode
下载地址: https://developer.apple.com/downloads/
如果Xcode 和Command Line Tools与CUDA的版本对应不一致,后面在验证CUDA环境时可能会出现如下❌错误:
nvcc fatal : The version ('10.0') of the host compiler ('Apple clang') is not supported
此时需要重新安装Xcode以及CLT
安装后切换到当前sudo xcode-select --switch /Library/Developer/CommandLineTools
- 外接显卡连接
参考另一篇
- Xcode 安装
-
正式配置CUDA环境
-
在Terminal中执行如下命令:
cd ~ open -e .bash_profile
编辑~/.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环境,在Terminal中执行如下命令:
cs /usr/local/cuda/samples
sudo make -C 1_Utilities/deviceQuery
./bin/x86_64/darwin/release/deviceQuery
执行后如果得到显示 Result = PASS 则CUDA环境配置成功
-
-
安装cuDNN
下载安装:https://developer.nvidia.com/rdp/cudnn-archive
依旧注意版本号的对应!
官方安装指导:https://docs.nvidia.com/deeplearning/sdk/cudnn-install/index.html#install-mac
手动傻瓜式安装:
之前配置CUDA环境时,在系统上会生成一个名为Developer的文件夹
将下载好的cuDNN压缩文件拖至该文件夹
启动Terminal,执行解压操作:
$ tar -xzvf cudnn-9.0-osx-x64-v7.tgz
解压后复制以下文件至要求路径:
$ sudo cp cuda/include/cudnn.h /usr/local/cuda/include
$ sudo cp cuda/lib/libcudnn* /usr/local/cuda/lib
$ sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib/libcudnn*
最后添加环境变量:
$ export DYLD_LIBRARY_PATH=/usr/local/cuda/lib:$DYLD_LIBRARY_PATH
至此配置结束。
在配置过程中可能会遇到的问题及解决方案,大家可以参考以下博文:
- 问题:# xcode-select: error: tool ‘xcodebuild’ requires Xcode
解决:https://www.jianshu.com/p/07a281ff57d3 - 问题:# CUDA driver version is insufficient for CUDA runtime version
解决:https://blog.csdn.net/nijun1992/article/details/80446226
https://www.cnblogs.com/liaohuiqiang/archive/2018/10/15/9791365.html - 问题:nvcc fatal : The version (‘10.0’) of the host compiler (‘Apple clang’) is not supported
解决: https://github.com/colmap/colmap/issues/296#ref-issue-290211077
⚠️注意
- 外接显卡不支持热插拔!开机进入登录界面后再接入显卡,关机黑屏后再拔掉显卡。
- 外接显卡必须接外屏或者显卡欺骗器才能工作,不然CUDA环境配置不会成功。
- 如果有MacOS 10.13.6(17G66)的同学,强烈建议重装系统。这个系统版本找不到对应NIVIDA web driver,CUDA等,尽管GitHub上有自动编译的方式可以安装CUDA但是之后的Xcode CTL,cuDNN都会出现问题。⚠:不要从苹果官网获得High Sierra 10.13.6,因为官网的都是这个17G66的版本!