CUDA기타설치

ph
이동: 둘러보기, 검색

cuda

  • 커널헤더 업데이트 될때마다 다시 설치해야 한다. 귀찮귀찮
  • 다운받고 설치 한 후 검증방법 [1]
    • 설치 디렉토리에 samples생기는데 거기서 make하고 deviceQuery, bandwidthTest돌려본다.
    • deb받아서 설치하면 X가 메롱이 될 때가 있다. 그냥 run파일 받아서 할것. 어지간하면 다 기본값으로.

cudnn

  • cudnn
    • 안해도 (위에 설치한) cuda toolkit안에 기본으로 들어있긴 하다. 버전이 조금 낮을 뿐. (현재 툴킷8.0에 cudnn5.0이 들어가있다. 최신은 6.0)
    • nvidia에 멤버쉽이 필요하다. 공짜니까 그냥 가입하고 적당한거 다운받아서 복사해 넣는다.

tensorflow

  • 설치 howto 왠 텐서플로우 설치문서를 엔비디아가...
  • 검증방법도 문서 안에 있다.
source activate tensorflow
import tensorflow as tf
sess = tf.Session()
hello_world = tf.constant("Hello, TensorFlow!")
print sess.run(hello_world)
print sess.run(tf.constant(123)*tf.constant(456))

혹은[2]

# Creates a graph.
a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[2, 3], name='a')
b = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[3, 2], name='b')
c = tf.matmul(a, b)
# Creates a session with log_device_placement set to True.
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
# Runs the op.
print(sess.run(c))

실행 후 로그 잘 보면 데이터를 gpu메모리로 복사하는 중인지 자세히 나옴.

  • 쿠다변경때문에(근본적으로는 커널헤더 업데이트때문에) 업데이트 해야 할것 같으면 테스트부터 해볼것. 테스트 잘 통과하면 다시 빌드할 필요 없다.
    • 쿠다 업데이트 이후에 아무것도 안건드려도 tf 그냥 잘 돌아가는 경우가 흔하다.
  • 다음도 하면 좋다고 한다.[3]
  • sudo apt-get install libcupti-dev

mxnet

$ pip install mxnet-cu80

validation:

>>> import mxnet as mx
>>> a = mx.nd.ones((2, 3), mx.gpu())
>>> b = a * 2 + 1
>>> b.asnumpy()
array([[ 3.,  3.,  3.],
       [ 3.,  3.,  3.]], dtype=float32)

http://mxnet.io/get_started/install.html
context=model.cpu()일때보다 model.gpu()일 때 64배가량 빠르다. (mnist 예제)

Matlab

실행창에서

gpuDevice()

하면 gpu잡혀야 함.

caffe

  • http://caffe.berkeleyvision.org/install_apt.html
    • 이대로 하면 16에서 dependency문제 있는데, 14.04부분에 나오는
      sudo apt-get install -y libgflags-dev libgoogle-glog-dev liblmdb-dev 
      실행해주면 된다.
    • Makefile.config 여기저기 손봐줘야 함. anaconda쓰도록 해주는 부분과, cudnn enable부분.
    • cmake하면 에러 난다. 걍 문서대로 make 할것.
  • cmake로 한 참고문서. 아나콘다에서 pycaffe어떻게 설치하는지 참고.
    • make pycaffe 잊지 말것.
    • 일단 import caffe; print caffe.__version__해서 별 에러 없으면 (아마도) 성공한것.

opencv

refer http://docs.opencv.org/2.4/doc/tutorials/introduction/linux_install/linux_install.html

git clone https://github.com/opencv/opencv.git

용량이 매우 큼.

cd ~/opencv
mkdir release
cd release
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D CUDA_GENERATION=Auto ..
make -j16

파이썬 모듈만 쓸거면 make install 무쓸모.
파이썬에서 import cv2해서 별 말 없으면 성공.
PYTHONPATH 설정 잊지 말것. (cv2.so가 들어있는 폴더를 붙여줌)

torch

  • 설치하고 나면 폴더에 test.sh가 생긴다. 그걸로 test해보면 됨.
    • PReLU_backward function call 계속 fail하는데 검색해봐도 뭐 안나오고 해서 그냥 무시함.
    • PReLU_forward는 실패했다가 성공하는 신기한 일도 발생 -_- 그냥 간헐적인 것인지.
  • CUDA나 linux-header바뀌었으면 install.sh다시 돌려야 함
  • 검증코드
 a = torch.rand(5,3)
 b = torch.rand(3,4)
 c = torch.Tensor(5,4)
 require 'cutorch'
 a = a:cuda()
 b = b:cuda()
 c = c:cuda()
 c:mm(a,b)

다른 테스트예제들은 여기서 참고.



blog comments powered by Disqus