まずnumpyからインストールしてゆく。
numpyは科学技術計算で利用されるPythonの拡張モジュールなんだとか。
$ pip install numpy
Requirement already satisfied (use --upgrade to upgrade): numpy in /Users/ほげほげ/.pyenv/versions/anaconda3-4.0.0/lib/python3.5/site-packages
おお。
Python3をインストールする時にanacondaを選択したので、インストール済みであったか。
じゃ、python-sixへ続く。
sixとは、Python 2 と Python 3 の間の違いを吸収するためのシンプルなユーティリティなんだとか。
$ pip install six
Requirement already satisfied (use --upgrade to upgrade): six in /Users/ほげほげ/.pyenv/versions/anaconda3-4.0.0/lib/python3.5/site-packages
インストール済みとな。
anacondaは優秀なパッケージなんだな。
じゃ、Pycudaをインストールする。
$ pip install pycuda
盛大なエラーを吐いて終了。。。。。
じゃ、世の中のWebサイトで成功事例に書かれている方法で再挑戦する。
フォルダはホームフォルダに置く事にする。
$ git clone http://git.tiker.net/trees/pycuda.git
で、ダウンロードが済んだら、pycudaのフォルダに降りてみる。
$cd pycuda
$ ls
MANIFEST.in bpl-subset setup.cfg
Makefile.in configure.py setup.py
README.rst doc src
README_SETUP.txt examples test
aksetup_helper.py pycuda
こんな感じの内容。
$ python3 configure.py
$ ls
MANIFEST.in aksetup_helper.py setup.cfg
Makefile bpl-subset setup.py
Makefile.in configure.py siteconf.py
README.rst doc src
README_SETUP.txt examples test
__pycache__ pycuda
14ファイル → 17ファイルに増えてる。
$ vi siteconf.py
BOOST_INC_DIR = []
BOOST_LIB_DIR = []
BOOST_COMPILER = 'gcc43'
USE_SHIPPED_BOOST = True
BOOST_PYTHON_LIBNAME = ['boost_python-35']
BOOST_THREAD_LIBNAME = ['boost_thread']
CUDA_TRACE = False
CUDA_ROOT = '/Developer/NVIDIA/CUDA-7.5'
CUDA_ENABLE_GL = False
CUDA_ENABLE_CURAND = True
CUDADRV_LIB_DIR = ['${CUDA_ROOT}/lib', '${CUDA_ROOT}/lib64', '${CUDA_ROOT}/lib/stubs', '${CUDA_ROOT}/lib64/stubs']
CUDADRV_LIBNAME = ['cuda']
CUDART_LIB_DIR = ['${CUDA_ROOT}/lib', '${CUDA_ROOT}/lib64', '${CUDA_ROOT}/lib/stubs', '${CUDA_ROOT}/lib64/stubs']
CUDART_LIBNAME = ['cudart']
CURAND_LIB_DIR = ['${CUDA_ROOT}/lib', '${CUDA_ROOT}/lib64', '${CUDA_ROOT}/lib/stubs', '${CUDA_ROOT}/lib64/stubs']
CURAND_LIBNAME = ['curand']
CXXFLAGS = []
LDFLAGS = []
上記を次の内容に書き換える。
BOOST_INC_DIR = ['/opt/local/include']
BOOST_LIB_DIR = ['/opt/local/lib']
BOOST_COMPILER = 'gcc43'
USE_SHIPPED_BOOST = True
BOOST_PYTHON_LIBNAME = ['boost_python-py35']
BOOST_THREAD_LIBNAME = ['boost_thread']
CUDA_TRACE = False
CUDA_ROOT = '/usr/local/cuda'
CUDA_ENABLE_GL = False
CUDA_ENABLE_CURAND = True
CUDADRV_LIB_DIR = ['${CUDA_ROOT}/lib', '${CUDA_ROOT}/lib64', '${CUDA_ROOT}/lib/stubs', '${CUDA_ROOT}/lib64/stubs']
CUDADRV_LIBNAME = ['cuda']
CUDART_LIB_DIR = ['${CUDA_ROOT}/lib', '${CUDA_ROOT}/lib64', '${CUDA_ROOT}/lib/stubs', '${CUDA_ROOT}/lib64/stubs']
CUDART_LIBNAME = ['cudart']
CURAND_LIB_DIR = ['${CUDA_ROOT}/lib', '${CUDA_ROOT}/lib64', '${CUDA_ROOT}/lib/stubs', '${CUDA_ROOT}/lib64/stubs']
CURAND_LIBNAME = ['curand']
CXXFLAGS = ["-arch", "x86_64", "-arch", "i386",'-mmacosx-version-min=10.11', '-isysroot', '/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk']
LDFLAGS = ["-F/Library/Frameworks", "-arch", "x86_64", "-arch", "i386",'-mmacosx-version-min=10.11', '-isysroot', '/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk']
pycudaのインストールにcompyteが必要らしいので、こちらもインストールする。
pycudaのフォルダ内で、次のコマンドを実行。
$ git clone git://github.com/inducer/compyte.git
いよいよpycudaをインストールする。
$ cd ~/pycuda
念のためのおまじない。
$ git submodule update --init
Submodule 'bpl-subset' (https://github.com/inducer/bpl-subset) registered for path 'bpl-subset'
Submodule 'pycuda/compyte' (https://github.com/inducer/compyte) registered for path 'pycuda/compyte'
Cloning into 'bpl-subset'...
remote: Counting objects: 5374, done.
remote: Total 5374 (delta 0), reused 0 (delta 0), pack-reused 5374
Receiving objects: 100% (5374/5374), 5.03 MiB | 1.00 MiB/s, done.
Resolving deltas: 100% (1282/1282), done.
Checking connectivity... done.
Submodule path 'bpl-subset': checked out 'e7c5f5131daca6298b5e8aa48d06e7ecffec2ffa'
Cloning into 'pycuda/compyte'...
remote: Counting objects: 1889, done.
remote: Total 1889 (delta 0), reused 0 (delta 0), pack-reused 1889
Receiving objects: 100% (1889/1889), 739.73 KiB | 427.00 KiB/s, done.
Resolving deltas: 100% (1085/1085), done.
Checking connectivity... done.
Submodule path 'pycuda/compyte': checked out 'ac1c71d46428c14aa1bd1c09d7da19cd0298d5cc'
じゃあ、makeしてみますか。。。。
$ sudo make
でるわでるわ、警告の嵐!!
気が遠くなるほど警告を吐いたあとで、作業は終了。
じゃ、make installしますか。。。
$ sudo make install
Finished processing dependencies for pycuda==2016.1.1
なんか、終わったくさいぞ!!
いったんターミナルを終了して、立ち上げ直す。
pycudaの動作確認をしてみる。
$ python3
Python 3.5.1 |Anaconda 4.0.0 (x86_64)| (default, Dec 7 2015, 11:24:55)
[GCC 4.2.1 (Apple Inc. build 5577)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import pycuda.autoinit
>>>
やったっ!!
成功しましたっ!!!!
0 件のコメント:
コメントを投稿