GPU対応Macでpytorchを使う

以前はcupyをインストールしましたが、今回もなかなかに面倒でした…

xuzijian629.hatenablog.com

バージョンについて

最近のpytorchをビルドするにはCUDA 9.0以上が必要なのですが、CUDA 9.0以上にした状態でcupyをインストールしようとすると、nvccのエラーを吐かれる(上の記事参照)なので、今回は古めの0.4.1をビルドしました。cupyを諦めるか、一度インストールした状態だと最新版をビルドできるかもしれません(未検証)。

CUDA, cuDNNの設定をする

CUDAの設定はほぼできていたので、上の記事のままです。cuDNNについては、cudnnenvを使って8系をインストールしました。pip install v6-cuda8したあとに出てくる環境変数情報をしっかり.zshrcに追加しておきます。

Xcodeをupdateする

cupyのビルドは8未満にしなきゃいけませんでしたが、今回8.1にしました。

git cloneする

Mac用のpytorchディストリビューションGPU非対応なので自分でビルドします。

qiita.com

が参考になります。

今回は0.4.1をビルドするのですが、一部のレポジトリがcloneできないので

How install old version pytorch 0.4.1 from source? · Issue #19457 · pytorch/pytorch · GitHub

に従って以下のようにします。

$ export CMAKE_PREFIX_PATH=[anaconda root directory]
$ conda install numpy pyyaml mkl mkl-include setuptools cmake cffi typing
$ git clone --branch v0.4.1 https://github.com/pytorch/pytorch.git pytorch-0.4.1
$ cd pytorch-0.4.1
$ git rm --cached third_party/nervanagpu
$ (edit .gitmodules as described in the link)
$ git rm --cached third_party/nervanagpu
$ MACOSX_DEPLOYMENT_TARGET=10.12 CC=clang CXX=clang++ python setup.py install

1時間ぐらい待ちます。

import torch
torch.cuda.is_available()

Trueが出たら優勝!