티스토리 뷰
먼저 참고한 글들을 나열하고...
https://lepisma.github.io/articles/2015/07/30/up-with-theano-and-cuda/
https://my6266blog.wordpress.com/2015/01/21/installing-theano-pylearn2-and-even-gpu-on-windows/
http://deeplearning.net/software/theano/tutorial/using_gpu.html
http://rosinality.ncity.net/doku.php?id=python:installing_theano
http://deeplearning.net/software/theano/install_windows.html
설치 환경은
Windows 10 x64
Microsoft Visual Studio 2013 Community (VC12)
CUDA Toolkit 7.5
Python 3.4
조합이 매우 중요하니, 모든 글을 숙지한 다음에 설치할 것
1. Visual Studio 설치
2015 Community를 설치했었는데, nvcc (NVIDIA CUDA Compiler) 지원 목록에 없다. 2013 Community 버전을 설치하도록 하자.
2. CUDA Toolkit 설치
여기서 다운로드하면 되고, 내가 설치한 버전은 cuda_7.5.18_win10.exe
3. Python 설치
공학용인 anaconda를 설치하는게 속 편하다. 2.7 버전은 개발이 중지되고, 보안 관련 수정만 되고 있고, 3 이상 버전을 모두들 추천하고 있다. 그 중에서도 다음에 설치할 libpython package가 3.5 최신 버전에 없으니, 3.4 버전을 설치하도록 한다. 아카이브에 가서 구버전 2.3.0을 다운받아서 설치하고, 아래 명령어를 통해서 dependency를 설치한다.
conda install mingw libpython
원한다면 다른 package도 일괄적으로 업데이트
conda update conda
conda update -all
Documentation이 잘 되어 있는 편이니 찾아보면 된다.
3. Theano 설치
Github에서 최신 파일을 받아서 임시 폴더에 압축을 풀고 아래 명령어를 이용해서 설치해도 되고...
pip install c:\Theano-master\.
아니면 미리 컴파일된 바이너리를 다운 받아서 아래와 같이 설치해도 된다.
pip install c:\file\path\Theano-0.7.0-py3-none-any.whl
같은 방법으로 pycuda를 설치해 주고 opencv도 필요하면 같이 설치해 준다.
pycuda-2015.1.3+cuda7518-cp34-none-win_amd64.whl
opencv_python-3.1.0-cp34-none-win_amd64.whl
python 버전과 x86 x64 버전에 주의
설치가 끝난 후에, 아래와 같은 theano 설정 파일을 %USERPROFILE% 폴더 아래에 .theanorc 이름으로 저장한다.
#!sh
[global]
device = gpu
floatX = float32
[nvcc]
fastmath = True
flags=-LC:\Anaconda3\libs
compiler_bindir=C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin
# flags=-m32 # we have this hard coded for now
[blas]
ldflags =
# ldflags = -lopenblas # placeholder for openblas support
각종 설정은 여기를 참고
import theano
를 통해 단순히 체크해 볼 수 있고, 아래 코드를 돌려보면 된다.
from theano import function, config, shared, sandbox
import theano.tensor as T
import numpy
import time
vlen = 10 * 30 * 768 # 10 x #cores x # threads per core
iters = 1000
rng = numpy.random.RandomState(22)
x = shared(numpy.asarray(rng.rand(vlen), config.floatX))
f = function([], T.exp(x))
print(f.maker.fgraph.toposort())
t0 = time.time()
for i in range(iters):
r = f()
t1 = time.time()
print("Looping %d times took %f seconds" % (iters, t1 - t0))
print("Result is %s" % (r,))
if numpy.any([isinstance(x.op, T.Elemwise) for x in f.maker.fgraph.toposort()]):
print('Used the cpu')
else:
print('Used the gpu')
4. PyCUDA 설치
설치는 위의 방법을 통해서 하면 되고, 혹시 환경 변수 문제가 있을 경우, 여기 글의 5번 7번 항목을 참고해서 설정해주면 된다. 아래 코드로 테스트
import pycuda.autoinit
import pycuda.driver as drv
import numpy
from pycuda.compiler import SourceModule
mod = SourceModule("""
__global__ void multiply_them(float *dest, float *a, float *b)
{
const int i = threadIdx.x;
dest[i] = a[i] * b[i];
}
""")
multiply_them = mod.get_function("multiply_them")
a = numpy.random.randn(400).astype(numpy.float32)
b = numpy.random.randn(400).astype(numpy.float32)
dest = numpy.zeros_like(a)
multiply_them(
drv.Out(dest), drv.In(a), drv.In(b),
block=(400,1,1), grid=(1,1))
print(dest-a*b)
'생활 속 > 컴퓨터' 카테고리의 다른 글
Windows 10 + Caffe (26) | 2016.05.24 |
---|---|
안드로이드 CM13 Opengapps 구글 연락처 동기화 항목이 없을 때 (26) | 2016.04.09 |
Windows 10 설치 후 (26) | 2016.02.01 |
OpenCV 3.0.0과 Visual Studio 2015 환경 설정 (26) | 2016.01.27 |
Firefox Pocket 확장 기능 되돌리기 (26) | 2016.01.23 |