이 블로그 검색

2015년 6월 17일 수요일

[ PyOpenCL ] Ubuntu에 PyOpenCL 설치하기

참고링크 : http://wiki.tiker.net/PyOpenCL/Installation/Linux/Ubuntu

- nvidia인경우 cuda toolkit을 설치하면 opencl 라이브러리도 함께 설치된다.
- numpy, setuptools 모듈을 설치해준다.

1. python configure.py 실행하면 siteconf.py 파일이 생성된다.
2. siteconf.py  파일 수정
    BOOST_INC_DIR = ['/usr/include/boost']
    BOOST_LIB_DIR = ['/usr/lib/x86_64-linux-gnu']
    BOOST_COMPILER = 'gcc43'
    BOOST_PYTHON_LIBNAME = ['boost_python-py27']
    USE_SHIPPED_BOOST = False
    CL_TRACE = False
    CL_ENABLE_GL = True
    CL_ENABLE_DEVICE_FISSION = True
    CL_INC_DIR = ['/usr/local/cuda-6.5/include']
    CL_LIB_DIR = ['/usr/local/cuda-6.5/lib64']
    CL_LIBNAME = ['OpenCL']
    CXXFLAGS = []
    LDFLAGS = []
3. sudo python setup.py install

* 중요 : 빌드는 정상적으로 되었는데 python을 실행하여 import pyopencl을 실행하면 아래와 같은 에러가 발생하는 경우가 있다. 정확한 원인은 모르겠으나 pip를 통해 설치된 pytools는 삭제하고 apt-get install 명령을 사용해 python-pytools를 설치해주면 문제는 해결된다.
또한 pyopencl 소스가 있는곳에서 import pyopencl을 실행하면 _cl 모듈을 찾을수없다는 에러가 발생하므로 작업폴더를 변경해주면 된다.

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.7/dist-packages/pyopencl-2015.1-py2.7-linux-x86_64.egg/pyopencl/__init__.py", line 762, in <module>
    _add_functionality()
  File "/usr/local/lib/python2.7/dist-packages/pyopencl-2015.1-py2.7-linux-x86_64.egg/pyopencl/__init__.py", line 379, in _add_functionality
    from pytools import memoize_method
  File "/usr/local/lib/python2.7/dist-packages/pytools-2014.3.5-py2.7.egg/pytools/__init__.py", line 5, in <module>
    from six.moves import range, zip, intern, input
ImportError: cannot import name intern

1. sudo pip uninstall pytools
2. sudo apt-get install python-pytools

댓글 없음:

댓글 쓰기