Ubuntu15.10_64비트 설치 Theano+cuda 7.5 상세 노트
내 환경 소개: GTX425M, 노트북 win764+ubuntu15.10_64 이중 시스템, cuda7.5.
먼저 말씀드리지만, 저는 ubuntu15를 설치했습니다.10 후, sudo apt-get update가 없고, 다른 소프트웨어가 설치되어 있지 않으며, disable Nouveau가 없고, 직접 설치한 cuda가 없고, 다시 설치한 Theano가 없습니다.다음은 저의 설치 과정과 직면한 문제와 해결 방안을 소개합니다.
1단계:cuda 패키지를 다운로드합니다.다운로드 페이지:https://developer.nvidia.com/cuda-downloadsubuntu에 맞는 deb 설치 패키지를 선택하십시오.즉 linux – >x8664–>Ubuntu–>15.04–>deb(local). 약 1.9G. ~/Downloads/cuda-repo-ubuntu 1504-7-5-local7.5-18_amd64.deb
2단계: cd~/Downloads(다운로드 디렉터리에 입장), sudo dpkg-i 다운로드 패키지 실행
3단계:sudo apt-get 업데이트 실행
4단계: sudo apt-get install cuda 실행
5단계:sudo gedit ~/를 실행합니다.bashrc, 맨 뒤에 64비트면 다음 내용을 붙여넣습니다.
export PATH=/usr/local/cuda-7.5/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-7.5/lib64:$LD_LIBRARY_PATH
32비트면 다음을 붙여넣습니다.
export PATH=/usr/local/cuda-7.5/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-7.5/lib:$LD_LIBRARY_PATH
소스 실행하는 거 잊지 마~/.bashrc 즉시 적용
설명하자면 PATH에cuda-7.5의 경로를 추가하고/usr/local에 들어가면 cuda가 하나 있고 또 하나의cuda-7.5가 있습니다. 여기에cuda-7.5의 경로를 기입하세요.
6단계: 이때는 기본적으로 설치가 끝났고 나머지는 설정을 하는 것이다.이 때 nvcc - V (대문자 V 주의) 를 실행하여 내용 출력이 있는지 검사할 수 있습니다. 문제가 없으면 다음과 같은 출력이 있어야 합니다.
nvcc: NVIDIA(R) Cuda compiler driver copyright (c) 2005-2015 NVIDIA Corporation Built on ……………… Cuda compilation tools, release 7.5, V7.5.17
nvidia-settings를 실행하면 그래픽 카드 설정의 인터페이스가 팝업됩니다. 적어도 7개의 큰 항목이 있는데 그 중 하나는 GPU-0(GeForce GT 425M)이라고 합니다. 만약에 자신의 그래픽 카드를 볼 수 있다면 설치에 성공한 셈입니다.다음은 구성입니다.
7단계: 자체 Samples를 사용하여 GPU 연산 테스트를 수행합니다.cuda-7.5의samples 디렉터리에 들어가면 보통 cd/usr/local/cuda-7.5/samples입니다. 그리고 Makefile 파일이 있습니다. 명령을 실행하면sudo make입니다. 의외로 빨간색을 띤 error 오류가 발생합니다. 대개 다음과 같습니다. unsupported GNU version!gcc versions later than 4.9 are not supported! 뜻도 뚜렷하다. 바로 gcc의 버전이 4.9보다 높고 쿠다는 지원하지 않는다.설명:ubuntu15.10 자체 gcc는 5.2.1로 gcc-version(두 개-)을 통해 볼 수 있지만 cuda는 4.9.0을 넘는 gcc컴파일러를 지원하지 않습니다.낮은 버전의 컴파일러를 설치하든지,cuda의 이 제한을 없애든지.내가 선택한 것은 후자이며 아직 다른 문제가 나타나지 않았다.
솔루션은 다음과 같습니다.
sudo cd/usr/local/cuda/include/# 머리 파일 디렉터리 cuda(cuda-7.5 아님)에 들어가기;sudo cp host_config.h host_config.h.bak # 원본 파일 백업하기;sudo gedit host_config.h#헤드 파일 편집하기;ctrl+F 4.9에서 나타나는 곳을 찾습니다. 약 115줄에 위치하고 113줄에if 를 표시해야 합니다.GNUC_>4||(GNUC ==4 & GNUC MINOR >9), 5.2.1이므로 위의 4개 모두 5로 변경하면 ok, 저장 종료.
8단계: 7단계의sudo make 명령을 다시 실행합니다. (/usr/local/cuda-7.5/samples 디렉터리에 있는지 확인하십시오.) 이럴 때 컴파일할 수 있을 것입니다.이 과정은 비교적 길어서 그가 어디에서 잠시 컴파일하도록 하고 나머지 시간은Theano를 설치할 수 있다.
9단계:Theano를 설치하면 더 이상 말하지 않겠습니다.
10단계: theano 프로필을 편집합니다.sudo gedit ~/.theanorc는 다음을 기록합니다.
[global] floatX=float32 device=gpu [cuda] root=/usr/local/cuda-7.5
11단계:python에서 import theano일 때 다음과 같은 문제가 발생할 수 있습니다. 문제1.cuda is installed but device gpu is not available 해결 1: (sudo vim ~/. bashrc) 의 $PATH 경로가 올바르게 설정되어 있는지 다시 확인하십시오.LDLIBARAY_PATH.일반적으로 이 문제는 nvcc complier가 컴파일할 수 없기 때문에hostconfig.h안의 문제는 나타나지 않을 것입니다. 만약에 나타나면 상세한 출력 정보를 붙여서 토론할 수 있습니다.
질문 2.failed to compile cuda_ndarray.cu 해결 2:cd/etc/ld.so.conf.d 를 클릭하고 sudo gedit cuda 를 편집합니다.conf, 이 파일은 존재하지 않을 것입니다. 따라서 열면 비어 있습니다./usr/local/cuda-7.5/lib64를 쓰고 저장합니다.그리고 sudo ldconfig.OK, 다시 테스트하러 가면 괜찮을 거야.import theano 이후 GPU 정보가 표시될 것입니다.예를 들어 내 디스플레이: Using gpu device 0: GeForce GT 425M(CNMem is disabled)
이로써 큰 공을 세웠다.GPU 가속이 성공했습니다.고전적인 GPU 테스트 코드를 테스트에 저장할 수 있습니다.py, 그리고 테스트:
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' % iters, t1 - t0, 'seconds')
print ('Result is', 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')
cpu로 테스트하려면 sudo vim~/.theanorc, 그 중의 gpu를 cpu로 수정하면 됩니다.
또 다른 질문이 있으면 댓글로 토론을 할 수 있는데, 모든 사람, 모든 상황에 적합하지는 않다.
참고 자료: 1.http://www.linuxdiyf.com/linux/11955.html 2. http://www.125135.com/173227.htm 3. http://deeplearning.net/software/theano/install_ubuntu.html#manual-openblas-instruction 4. http://taoo.iteye.com/blog/1823014 5. http://www.cnblogs.com/chriscabin/p/4840019.html