こちらのサイト様のコードを使わせていただいて、動作確認をしてみる。
https://hnakamur.github.io/blog/2015/07/25/setup_pycuda_on_macbook_pro_with_geforce/
下記コードをpycuda-test.pyと名付けて保存。
import pycuda.gpuarray as gpuarray
import pycuda.driver as cuda
import pycuda.autoinit
import numpy
a_gpu = gpuarray.to_gpu(numpy.random.randn(4,4).astype(numpy.float32))
a_doubled = (2*a_gpu).get()
print(a_doubled)
print(a_gpu)
では、動かしてみる。
$ python3 pycuda-test.py
[[-0.88340336 -0.48412755 -2.73136067 -0.04277773]
[ 1.15315139 -2.88467717 -0.6212647 0.35913253]
[ 1.04733992 -3.00954723 1.72663045 -0.17476171]
[-1.08756733 0.0739169 -1.34298694 -0.24150042]]
[[-0.44170168 -0.24206378 -1.36568034 -0.02138886]
[ 0.5765757 -1.44233859 -0.31063235 0.17956626]
[ 0.52366996 -1.50477362 0.86331522 -0.08738086]
[-0.54378366 0.03695845 -0.67149347 -0.12075021]]
やっぱりpycudaは動作しているようだ。
その他のサンプルコードだと、Python2とPython3の差異があったりと、今日の時点ではpycudaがちゃんと動いているのかわからなかった。次はもうちょっとビジュアル的に面白いコードで試してみたい。
2016年6月26日日曜日
numpy、python-six、そしてpycudaをインストールしてゆく。
まず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
>>>
やったっ!!
成功しましたっ!!!!
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
>>>
やったっ!!
成功しましたっ!!!!
登録:
投稿 (Atom)