MacOS 10.13.6安装cuda+cudann+pytorch的gpu版本

疫情在家炼丹,远程连接实验室实在是不太方便,随意准备用家里的电脑代替,虽然配置不能打,但是写写代码跑跑示例的还是可以的,由于所有的资料文件我都在手里的MacBook里面,所有准备弄一套macOS的黑苹果环境,系统装好后,就是装驱动了,具体如下:

注意:

由于黑苹果对驱动要求严格,且在macOS High Sierra 10.13.6之后NVIDIA不在对显卡驱动进行支持,所以Mac的版本选择在10.13.6,所有的安装总体分为两部分,第一是cuda相关的安装,第二是pytorch的gpu版本的安装。

一 、cuda环境的安装

  • 安装GPU Driver

确定自己安装的Mac版本以确定英伟达显卡驱动,在这个网站查询自己系统镜像支持哪个版本的显卡驱动,https://www.tonymacx86.com/nvidia-drivers/,例如使用的MacOS镜像是macOS 10.13.6 High Sierra (17G65),则相对应的驱动则是387.10.10.10.40.105。一路图形化界面安装之后可能还要在clover上进行设置,这里自行搜索,不再赘述。

安装好显卡驱动之后,在apple-关于本机-概览-图形卡下,就可以看到正确的显卡规格了。

  • 安装cuda Driver

接下来是安装cuda driver,安装包在这个网址下,https://www.nvidia.com/en-us/drivers/cuda/mac-driver-archive/,同样是图形化一路点击下一步安装,这个我是安装的CUDA 418.105 driver for MAC

  • 安装cuda Toolkit Driver

安装包地址:https://developer.nvidia.com/cuda-toolkit-archive,这个就需要配合Mac的xcode版本来选择安装了,我安装的是10.1.105。在此之前需要安装xcode,因为cuda10不支持最新的xcode10,所以必须安装xcode9.4,xcode可以在苹果开发者官网找到,https://developer.apple.com/download/more/

安装好之后需要设置cuda相关的环境变量,打开终端,输入

cd ~
open -e .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"
 
export PATH="/Developer/NVIDIA/CUDA-10.1/bin:$PATH"

最后一行由于我安装的是10.1,可以根据自己安装的版本进行更改。

执行命令重启bash_profile

. ~/.bash_profile

验证:在终端输入以下命令,如果Result=PASS,那么CUDA就能够正常工作了。

cd /usr/local/cuda/samples
sudo make -C 1_Utilities/deviceQuery
./bin/x86_64/darwin/release/deviceQuery
  • 安装cudnn

cudnn的安装包网址:https://developer.nvidia.com/rdp/cudnn-archive

下载好之后需要在终端进行操作,实际就是几个库文件,下载后解压,然后拷贝到CUDA安装目录的对应子目录。

我安装的是cudnn-10.0-osx-x64-v7.4.2.24.tgz

根据官方教程https://docs.nvidia.com/deeplearning/sdk/cudnn-install/index.html#install-mac,步骤如下:

your CUDA directory path is referred to as /usr/local/cuda/
your cuDNN directory path is referred to as <installpath>
Navigate to your <installpath> directory containing cuDNN.

Unzip the cuDNN package.
$ tar -xzvf cudnn-10.0-osx-x64-v7.4.2.24.tgz

Copy the following files into the CUDA Toolkit directory, and change the file permissions.
$ 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*

Set the following environment variables to point to where cuDNN is located.
$ export  DYLD_LIBRARY_PATH=/usr/local/cuda/lib:$DYLD_LIBRARY_PATH
 
Verifying
$ echo -e '#include"cudnn.h"\n void main(){}' | nvcc -x c - -o /dev/null -I/usr/local/cuda/include -L/usr/local/cuda/lib -lcudnn

测试:

  • 查看CUDA的版本信息

终端输入

cat /usr/local/cuda/version.txt

  • 查看cuDNN的版本

终端输入

cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

至此,第一部分就安装完了。

 

二 、pytorch-gpu的安装

pytorch的官网上写明了https://pytorch.org/get-started/locally/,支持cuda的pytorch必须通过源安装。

但是,我不管是安装官网的方法,还是网上找的网友的详细教程,都会出现各种错误(花了我大半天时间),所以我采用另外一种方法,就是安装别人编译好了的安装包进行安装。

参照的是:https://github.com/TomHeaven/pytorch-osx-build

其中,在运行 import torch 时报的错,比如:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/jiangyijie/anaconda3/lib/python3.7/site-packages/torch/__init__.py", line 84, in <module>
    from torch._C import *
ImportError: dlopen(/Users/jiangyijie/anaconda3/lib/python3.7/site-packages/torch/_C.cpython-37m-darwin.so, 9): Library not loaded: @rpath/libcufft.10.0.dylib
  Referenced from: /Users/jiangyijie/anaconda3/lib/python3.7/site-packages/torch/lib/libtorch_python.dylib
  Reason: image not found

libcufft是cuda的库,这里只是文件名没找到而已,而库文件其实是在 $CUDA_HOME/lib下的,所以手动链接一下就行,下面是对同类错误的库进行统一处理:

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

到此pytorch-gpu版本的也安装好了,另外,需要torchvision的需要自己单独安装,如果使用conda安装的话还可能会覆盖之前的安装好的torch,所以可能需要注意。ps,提供一种方法,可以先conda安装好torchvison,然后在安装torch。

参考引用

【1】2019 Mac13.6安装cuda+cudnn+pytorch

【2】2018 MAC安装CUDA、cuDNN(Gaming Box1070)

【3】macos+xcode9+cuda10+anaconda+pytorch+torchvision安装

【4】MAC OSX 编译安装GPU版的Pytorch CUDA9.2 cuDNN7.2

  • 5
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值