Mac OS X High Sierra に Chainer + CuPy をインストールする。

CuPy (クーパイ)は CUDA (クーダ)の Python ラッパーで、 NumPy の代わりに使うことで GPU で計算出来るようになる。

CuPy解説 - SlideShare で概要を把握。

開発機の場合はGPUパワーよりも「CuPyで動く」という事が重要。一通り実装できたら、ちゃんとしたGPUを積んだマシンで動かすという手順になる。

尚、自分の開発機の場合は、作業開始時点で最新の Xcode と、 Command Line Tools for Xcode をインストール済。その他、brew, python, pip, pyenv などは既に入っている状態だった。

Chainer と CuPy のインストール(今回やりたい事)

pip install chainer
pip install cupy

chainer は問題なかったが、cupy が fatal error: 'cublas_v2.h' file not found で止まった。
先ずは CUDA を入れる必要がある。

CUDAインストール

CUDA を入れる為に、先ずは brew cask を入れる。brew install brew-cask はエラーになるので、homebrew-caskがErrorになると思ったら本家に移行してた - Qiita を参考にインストール。

xcode-select --install

brew uninstall --force brew-cask; brew update
brew tap caskroom/cask

これで brew cask がインストールできたので、続けて CUDA を入れる。

brew upgrade
brew install coreutils
brew install swig
brew install bazel

# brew cask install cuda の代わりに下記
brew tap caskroom/drivers
brew cask install nvidia-cuda

NVIDIAのインストーラが出てくるので、インストールする。
インストールが終わると、システム環境設定に「CUDA」のメニューが追加され、CUDAのバージョンやGPU情報などが確認できるようになる。

Xcode Command Line Tools のダウングレード

再び CuPy インストールを試みる。

pip install cupy

nvcc fatal   : The version ('90100') of the host compiler ('Apple clang') is not supported

今度はコンパイラーのバージョンエラーが出た。nvcc fatal : The version (‘90000’) of the host compiler (‘Apple clang’) is not supported · Issue #137 · fireice-uk/xmr-stak-nvidia によると、自分のXcodeが新しすぎるらしい。

Xcodeのアップデートの度に同じ様なバージョンエラーが出て困る人が居るようだ。NVCC does not support Apple Clang version 8.x · Issue #1384 · arrayfire/arrayfire · GitHub に解決方法が書いてあった。

  1. https://developer.apple.com/downloads/ にログイン
  2. Xcode CLT (Command Line Tools) の前のバージョンをダウンロード(今回は8.3)
  3. Xcode CLT をインストール
  4. sudo xcode-select --switch /Library/Developer/CommandLineTools を実行してバージョンを切り替える
  5. clang がダウングレードされたことを確認する為 clang --version で確認

CLTのバージョン下げると他に影響あるかもしれないが、問題あればアップグレードし直せば良い。(App Store のソフトウェア・アップデートに出て来る)

これでバージョンが clang のバージョンが 8.3 になった。

CuPy インストール

改めて CuPy をインストール。

pip install cupy

10分ほど待つ。

Successfully installed cupy-4.0.0

というメッセージが出て、インストール完了!

これで、eGPU で GeForce を繋げばきっと動く様になる。
参考:MacBook Air(or Pro)でGPUを外付けしChainerを動作させるまでの手順

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.