LoginSignup
14
17

More than 5 years have passed since last update.

ChainerをMac OSXでビルドする

Posted at

Macでビルドできないよ、という報告を受けたのでMacでビルドできないか探っていたのですが、実はマシンにnVidia GPUがなくてもビルドはできることがわかったので、そのときやったことを報告をします。この記事は必ずしも、Macで 動作することを保証しません 。残念ながら、nVidia GPUの乗ったMacを持っていません・・・。

CUDAのインストール

公式サイトに行って、Mac用のCUDA 7.5をダウンロードします。インストーラーを起動すると、nVidiaのドライバとCUDAのインストールが促されますが、両方共インストールできます。とりあえず入れてみます。実はこれで入ります。
注目すべきは、ディレクトリ構成です。別件で書きましたが、以下のようになっています。注目すべきは、libcuda.dylib/usr/local/cuda/libにしか入っていないことです。他のファイルは、/Developerディレクトリ以下へのシンボリックリンクになっているようです。そのため、Chainerでは、このディレクトリを強制的にライブラリのパスに追加するようにしました。EI Capitanだとどうなるんでしょうね・・・。怖くて試していません。

+ usr
| + local
|   + cuda
|     + bin --> /Developer/NVIDIA/CUDA-7.5/bin
|     + include --> /Developer/NVIDIA/CUDA-7.5/include
|     + lib
|       + libcuda.dylib
|       + libcublas.dylib --> /Developer/NVIDIA/CUDA-7.5/lib/libcublas.dylib
+ Developer
  + NVIDIA
    + CUDA-7.5
      + bin
      | + nvcc
      + include
      | + cublas.h
      + lib
        + libcublas.dylib

インストール

あとは普通にインストールします。ふつうにCythonが走ってインストールできます。pyenv推奨。

$ pip install chainer

動作確認

動作しないのをわかっていながら動かしてみたら、実行時エラーになりました。Macbook Airだしね。動いた方はご報告を(?)・・・。

% python
Python 3.4.1 (default, Sep 15 2014, 13:51:31)
[GCC 4.2.1 Compatible Apple LLVM 5.1 (clang-503.0.40)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import cupy
>>> cupy.array([1])
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/unno/.pyenv/versions/3.4.1/lib/python3.4/site-packages/cupy/creation/from_data.py", line 27, in array
    return core.array(obj, dtype, copy, ndmin)
  File "cupy/core/core.pyx", line 1524, in cupy.core.core.array (cupy/core/core.cpp:51766)
  File "cupy/core/core.pyx", line 1543, in cupy.core.core.array (cupy/core/core.cpp:51519)
  File "cupy/core/core.pyx", line 107, in cupy.core.core.ndarray.__init__ (cupy/core/core.cpp:5117)
  File "cupy/cuda/memory.pyx", line 250, in cupy.cuda.memory.alloc (cupy/cuda/memory.cpp:5101)
  File "cupy/cuda/memory.pyx", line 230, in cupy.cuda.memory._malloc (cupy/cuda/memory.cpp:5040)
  File "cupy/cuda/memory.pyx", line 231, in cupy.cuda.memory._malloc (cupy/cuda/memory.cpp:4955)
  File "cupy/cuda/memory.pyx", line 28, in cupy.cuda.memory.Memory.__init__ (cupy/cuda/memory.cpp:1358)
  File "cupy/cuda/device.pyx", line 51, in cupy.cuda.device.Device.__init__ (cupy/cuda/device.cpp:1299)
  File "cupy/cuda/runtime.pyx", line 127, in cupy.cuda.runtime.getDevice (cupy/cuda/runtime.cpp:2048)
  File "cupy/cuda/runtime.pyx", line 106, in cupy.cuda.runtime.check_status (cupy/cuda/runtime.cpp:1815)
cupy.cuda.runtime.CUDARuntimeError: cudaErrorInsufficientDriver: CUDA driver version is insufficient for CUDA runtime version
>>>
14
17
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
17