CUDA기타설치
ph
cuda
- 커널헤더 업데이트 될때마다 다시 설치해야 한다. 귀찮귀찮
- 다운받고 설치 한 후 검증방법 [1]
- 설치 디렉토리에 samples생기는데 거기서 make하고
deviceQuery
,bandwidthTest
돌려본다. - deb받아서 설치하면 X가 메롱이 될 때가 있다. 그냥 run파일 받아서 할것. 어지간하면 다 기본값으로.
- 설치 디렉토리에 samples생기는데 거기서 make하고
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 할것.
- 이대로 하면 16에서 dependency문제 있는데, 14.04부분에 나오는
- 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)
다른 테스트예제들은 여기서 참고.