核心要點:如何用MacBook順理成章地使用NVIDIA顯卡支持的CUDA對深度神經網路的訓練進行加速?

本文結構

  1. 硬體配置
    1. 電腦以及eGPU情況
    2. eGPU的安裝
    3. eGPU性能損耗
  2. 環境配置
    1. virtual environment
    2. CUDA 安裝
    3. Mac OS 10.13.6 Pytorch-GPU 安裝

一、硬體配置

1、電腦以及eGPU情況

本人的電腦是支持雷電2的MacBook Pro,雷電2傳輸速率為16Gbit/s。eGPU選擇的是技嘉GAMING BOX GTX1070 8GB版本,其為雷電3的介面,所以還需購買雷電3轉雷電2轉接線,以及雷電2線。

關於技嘉GAMING BOX:

技嘉GTX1080GamingBox評測

技嘉 AORUS Gaming Box 體驗:辦公在外,歸來仍是玩家AORUS GTX 1080 Gaming Box | 顯卡 - GIGABYTE 技嘉科技

關於1070和1080的選擇?

eGPU性能越高,因為雷電介面雙向傳輸數據的緣故,性能損耗越大,如果是雷電3介面,可以選擇技嘉GAMING BOX 1080版本。

2、eGPU安裝

系統版本:

截止於今天(20190117)NVIDIA顯卡不支持MacOS 10.14,所以,想要安裝eGPU,請先檢查系統。目前支持的最新系統為Mac OS 10.13.6。

安裝流程參考:

MacBook外置顯卡eGPU折騰筆記

以及eGPU論壇:eGPU.io

3、性能提升以及性能損耗

Intel Iris 6100 OpenCL跑分:

eGPU GTX 1070 跑分:

1070跑分在158000左右,所以性能損耗18%左右

參考鏈接:

sunmonk:MacbookPro搭配技嘉外置顯卡拓展塢AORUS GTX 1070 GamingBox使用感受,神經網路訓練和簡明安裝教程?

zhuanlan.zhihu.com
圖標

二、環境配置

1、virtual environment

Anaconda如何設置virtual environment?

conda.io/docs/user-guid

cs231n.github.io/setup-

接下來一個麻煩的問題是,如何為Anaconda的virtual environment 單獨安裝某包?

比如安裝torch,你可以這樣做(DL是virtual environment 的名字)

Sudo /anaconda3/envs/DL/bin/pip install torch

2、CUDA 安裝

參見這位老哥的教程,非常感謝這位老哥:

周劍:macOS+cuda9.2 配置eGPU深度學習環境?

zhuanlan.zhihu.com
圖標

下面引用 @周劍,BTW,現在可以安裝Cuda 10了,建議使用py3.7+CUDA10+CUDNN7.4的組合:

開始安裝CUDA。安裝前請確認以前是否有安裝過其他版本的CUDA。如果有,請先卸載,卸載方法如下。

打開CUDA官網,下載CUDA9.2。(注意:下載mac版)、

安裝CUDA,選擇安裝所有。

運行以下指令查看CUDA是否安裝成功。

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

如果安裝成功會有GPU信息出現,如下圖

在~/.bash_profile文件下添加以下新的環境變數(不可省略)

export CUDA_HOME=/usr/local/cuda
export DYLD_LIBRARY_PATH="$CUDA_HOME/lib:$CUDA_HOME/nvvm/lib:$CUDA_HOME/extras/CUPTI/lib:/usr/local/nccl/lib"
export LD_LIBRARY_PATH=$DYLD_LIBRARY_PATH
export PATH=$CUDA_HOME/bin:$PATH

下載cuDNN7.2.1 OSX版本。(需要組冊英偉達賬號)

解壓cuDNN,在cuDNN前一個文件夾運行以下指令,將cuDNN文件複製到CUDA中。

$ 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*
$ rm -rf cuda

之後需要下載英偉達的編譯器NCCL2.2.13 O/S版本。(注意:解壓NCCL時可能需要下載一個新的解壓APP)

解壓NCCL後,運行以下程序。

$ sudo mkdir -p /usr/local/nccl
$ sudo mv nccl_2.2.13-1+cuda9.2_x86_64/* /usr/local/nccl
$ sudo mkdir -p /usr/local/include/third_party/nccl
$ sudo ln -s /usr/local/nccl/include/nccl.h /usr/local/include/third_party/nccl
$ rm -rf nccl_2.2.13-1+cuda9.2_x86_64

到這一步算是把CUDA部分全部安裝完畢。

CUDA安裝好後就可以了安裝Pytorch-GPU版本了:

3、Mac OS 10.13.6 Pytorch-GPU 安裝

參考鏈接:

TomHeaven/pytorch-osx-build

這個鏈接裏都是編譯好的GPU版pytorch,下載安裝即可,就不用辛苦等待編譯了。

目前建議使用:pytorch-1.0-py27-py37-cuda10-cudnn74

下載好後使用命令行:

cd path
Sudo /anaconda3/envs/DL/bin/pip install torch-1.0-cp37-cp37m-macosx_10_13_x86_64.whl

  • path 是torch-1.0-cp37-cp37m-macosx_10_13_x86_64.whl 所在的文件夾
  • DL 是anaconda 的virtual environment 名字

安裝好後

source activate DL
Python
import torch
print(torch.cuda.is_available())

輸出 True就大功告成啦!

PS:

廣告時間啦~

理工狗不想被人文素養拖後腿?不妨關注微信公眾號:

歡迎掃碼關注~

推薦閱讀:

相關文章