CUDAのインストール †
→Python CUDA on MacBookPro
CUDA関連の環境変数の設定 (plist) †
Shellから動かすぶんには、~/.bashrc とかに定義すればいいけど、PyCharm? に環境変数を渡すためには launchd に設定する必要がある この設定は macOS 10.12 Sierra 以降は無効 → どうすればいいかは後述
launchd は macOS の systemd/initd
~/Library/LaunchAgents?/ に plist 形式でログイン時に実行するコマンドを定義する
-~/Library/LaunchAgents?/PATH.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>PATH</string>
<key>ProgramArguments</key>
<array>
<string>/bin/launchctl</string>
<string>setenv</string>
<string>PATH</string>
<string>/Developer/NVIDIA/CUDA-9.1/bin:$PATH</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
~/Library/LaunchAgents?/DYLD_LIBRARY_PATH.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>DYLD_LIBRARY_PATH</string>
<key>ProgramArguments</key>
<array>
<string>/bin/launchctl</string>
<string>setenv</string>
<string>DYLD_LIBRARY_PATH</string>
<string>/usr/local/cuda/lib:/Developer/NVIDIA/CUDA-9.1/lib:$DYLD_LIBRARY_PATH</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
CuPy?のインストール †
$ git clone https://github.com/cupy/cupy.git
$ cd cupy
$ git checkout v4.2.0
$ python setup.py clean
$ MACOSX_DEPLOYMENT_TARGET=10.13 CC=clang CXX=clang++ python setup.py install
$ pip install .
Processing /Users/atsushi/PycharmProjects/cupy
Requirement already satisfied: numpy>=1.9.0 in /Users/atsushi/.pyenv/versions/anaconda3-5.1.0/envs/jupyter-env/lib/python3.6/site-packages (from cupy==4.2.0) (1.14.3)
Requirement already satisfied: six>=1.9.0 in /Users/atsushi/.pyenv/versions/anaconda3-5.1.0/envs/jupyter-env/lib/python3.6/site-packages (from cupy==4.2.0) (1.11.0)
Requirement already satisfied: fastrlock>=0.3 in /Users/atsushi/.pyenv/versions/anaconda3-5.1.0/envs/jupyter-env/lib/python3.6/site-packages (from cupy==4.2.0) (0.3)
Building wheels for collected packages: cupy
Running setup.py bdist_wheel for cupy ... done
Stored in directory: /private/var/folders/cm/p00lclws0jxdmjlb89qyqq580000gn/T/pip-ephem-wheel-cache-47vpnvhd/wheels/f3/4b/b6/cf3092440fb9ebf35bfb25a4de43ee2a9609fae446258288e9
Successfully built cupy
Installing collected packages: cupy
Found existing installation: cupy 4.2.0
Uninstalling cupy-4.2.0:
Successfully uninstalled cupy-4.2.0
Successfully installed cupy-4.2.0
なんか動いた †
import cupy as cp
a = cp.array([1,2,3,4,5])
b = cp.array([6,7,8,9,10])
c = a + b
print (c)
[ 7 9 11 13 15]
Python