Help us understand the problem. What is going on with this article?

ChainerをMac OSXでビルドする

More than 3 years have passed since last update.

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
>>>
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away