2018 MacBook Pro 安装cuda+cuDNN+pytorch
根据CSDN上的两篇文章和知乎上的一篇文章,前前后后折腾了好几天,在一个小姐姐的帮助下终于装上了。
我的环境
系统版本: macOS 10.13.6 (17G10021)
GPU Driver Version: 387.10.10.10.40.133
CUDA Driver Version: 410.130
CUDA: cuda_10.0.130
cuDNN: cuDNN_7.4.2
安装Webdriver和CUDA Driver
-
首先在Nvidia GPU Driver对照表中找到对应的Webdriver版本,傻瓜安装。
比如说我的mac版本是17G10021,我就下载下面这个版本。
我是在Catalina上再装了一个High Sierra 10.13.6,相当于是苹果双系统。因为我的Mac比较特殊,是MacBook Pro 2018 (15-inch),比较通用的17G65不能装在我这款电脑上,我当时装了对应的支持2018带Touch Bar的17G2208,再安装17G65对应的webdriver,结果是不可以的。
安装17G10021可以看一下我的这篇文章安装Mac os High Sierra 10.13.6 17g10021,也是比较折腾。
-
然后下载CUDA Driver:http://www.nvidia.com/object/mac-driver-archive.html
也是要找到对应的版本安装。
安装CUDA和cuDNN
我一开始是按照2018 MAC安装CUDA、cuDNN(Gaming Box1070) 安装了CUDA9.2和cuDNN v7.2.1,然后装pytorch的时候出了点问题,重新装了10.0版的cuda和7.4.2的cuDNN。
-
安装CUDA Toolkit:https://developer.nvidia.com/cuda-toolkit-archive,有补丁的需要下载安装补丁。
我安装的是cuda_10.0.130_mac。
链接:https://pan.baidu.com/s/16BJuJCIr_Q2aR1fbisp7sg 密码:wpjs -
配置cuda环境
打开terminal,输入
vi ~/.bash_profile
,再insertexport 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" export PATH="/Developer/NVIDIA/CUDA-10.0/bin:$PATH"
然后
souce ~/.bash_profile
测试CUDA是否能够运行
cd /usr/local/cuda/samples sudo make -C 1_Utilities/deviceQuery ./bin/x86_64/darwin/release/deviceQuery
这样就是成功了。 -
接下来安装cuDNN https://developer.nvidia.com/rdp/cudnn-archive,需要注册Nvidia账号。
我安装的是v7.4.2,链接:https://pan.baidu.com/s/1h3NMP_Ews9riXo3kUeCzPQ 密码:yq0o
官网上下载的需要下载一个解压软件解压,mac自带的无法解压。我上传的这个是tar文件,可以直接解压。然后将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
安装完成
-
安装GPU版Pytorch
因为安装GPU版的pytorch在Pytorch官网上不能pip、conda安装,只能从源码安装,或者安装CPU版的。
Tomheaven在GitHub上提供了很全的编译好了的pip包,可以直接pip安装。
地址:https://github.com/TomHeaven/pytorch-osx-build我分别尝试了torch-1.0-cp37-cp37m-macosx_10_13_x86_64.whl和torch-1.4.0-cp37-cp37m-macosx_10_13_x86_64-2.whl,遇到了很多麻烦。
接下来讲讲折腾的部分:
我一开始是cuda9.2+cuDNN7.2.1,cuda可以运行,安装pytorch的时候报错
ERROR: torch-1.4.0-cp37-cp37m-macosx_10_13_x86_64-2.whl is not a supported wheel on this platform.
然后再装1.0的pytorch,安装成功
但是在import torch的时候报错
Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/local/lib/python3.7/site-packages/torch/__init__.py", line 84, in <module> from torch._C import * ImportError: dlopen(/usr/local/lib/python3.7/site-packages/torch/_C.cpython-37m-darwin.so, 9): Library not loaded: @rpath/libcufft.10.0.dylib Referenced from: /usr/local/lib/python3.7/site-packages/torch/lib/libtorch_python.dylib Reason: image not found
尝试了2019 Mac13.6安装cuda+cudnn+pytorch的办法,还是import不了。
sudo ln -s $CUDA_HOME/lib/libcufft.10.dylib $CUDA_HOME/lib/libcufft.10.0.dylib sudo ln -s $CUDA_HOME/lib/libcurand.10.dylib $CUDA_HOME/lib/libcurand.10.0.dylib sudo ln -s $CUDA_HOME/lib/libcublas.10.dylib $CUDA_HOME/lib/libcublas.10.0.dylib sudo ln -s $CUDA_HOME/lib/libcudart.dylib $CUDA_HOME/lib/libcudart.10.0.dylib sudo ln -s $CUDA_HOME/lib/libnvrtc.dylib $CUDA_HOME/lib/libnvrtc.10.0.dylib sudo ln -s $CUDA_HOME/lib/libcusparse.10.dylib $CUDA_HOME/lib/libcusparse.10.0.dylib
也Google找了一下其他办法,有人说是brew install libomp一下就可以解决了,我这边是没有效果。
后来看到Tomheaven提供的pip包是需要cuda和cuDNN一一对应的,一开始没发现。
比如说如果要装pytorch1.4的话,cuda和cuDNN的版本就必须是10和7.4。因此我卸载了之前装的cuda和cuDNN重装了对应版本的。
再来安装pytorch时,还是有个问题
$ pip install /Users/shirleytse/Downloads/torch-1.0-cp37-cp37m-macosx_10_13_x86_64.whl ERROR: torch-1.0-cp37-cp37m-macosx_10_13_x86_64.whl is not a supported wheel on this platform.
把pip改成pip3就可以了。
在import torch,输入True就安装成功了。
Reference
[1] https://blog.csdn.net/ignoreyou/article/details/85132738
[2] https://blog.csdn.net/TinyJian/article/details/89251698
[3] https://zhuanlan.zhihu.com/p/55100967