标签:style http io ar os 使用 sp for on
最近使用Theano写了MLP和CNN的程序,由于训练样本大,单靠CPU运算速度so slow;于是乎找到了一台有NAIVID显卡的电脑进行了GPU的配置使用,期间遇到很多问题,记录如下:
平台说明:
系统:WindowsXP
Python:2.7, 建议直接使用 Python(x,y),包含了Theano需要的Numpy等库,省去自己配置
Theano: 0.6
CUDA:3.0
1 下载
下载安装Theano: easy_install theano
下载CUDA: 从http://www.nvidia.cn/object/cuda_get_cn_old.html 下载驱动、工具包、软件开发包,按顺序安装
注:同学们最好直接下载3.0版的,我最早下的2.3版本,但发现Theano的CUDA模块对2.3的支持很差很差,改了..\theano\sandbox\cuda\下.cu里面的很多代码,比如cudaMemGetInfor(为3.0版本的接口,2.3为cuMemGetInfor,详细见http://stackoverflow.com/questions/7386990/cuda-identifier-cudamemgetinfo-is-undefined),最终编译没错了,但出现了很难处理的link bug。最终改用3.0后,只改了小部分的代码就成功运行(怎么改请见后面说明)。
2 配置
打开theano的配置文件(一般在用户文件夹的根目录,例如C:\Documents and Settings\Administrator\,名为.theanorc.txt)添加以下配置
[nvcc]
flags=-LC:\python27\libs
compiler_bindir=C:\program Files\Microsoft Visual Studio 9.0\VC\bin
注:2.3版本的只支持MSVC8.0和MSVC9.0
然后import theano.sandbox.cuda进行初测,成功后进行下面的配置
[global]
device = gpu
floatX = float32
最后run theano/misc/check_blas.py来进行测试,或者直接import theano ; theano.test()
3 遇到的问题
1 class “cudaDeviceProp” have no conponent of named "concurrentKernels"
跟进cuda_ndarray.cu,在2796行附近有
#if CUDART_VERSION >= 3000
put_in_dict(dict, "concurrentKernels", deviceProp.concurrentKernels);
#endif
在C:\CUDA下找到cudaDeviceProp的类,看到里面并没有concurrentKernels,虽然vision是3.0的
解决方案:注释掉上面的部分即可
2 fatel error C1083:无法打开包括文件:stdint.h: No such file or directory
解决方法:
去googlecode下载http://msinttypes.googlecode.com/files/msinttypes-r26.zip,解压后会得到三个文件,把inttypes.h和stdint.h放到vc的include目录就可以了。
我安装的是VS2008,安装到的默认位置,因此include的路径就是:
C:\Program Files\Microsoft Visual Studio 9.0\VC\include
3 如何查看GPU状态
下载GPUZ即可
最后成功运行,虽然这台带有NVIDIA的机器很老很老了,但有了GPU的加速,比在我Y470上跑速度快N倍。
GPU,很好很强大。
Theano(Deep Learning Tool) 利用GPU来进行加速的配置及使用
标签:style http io ar os 使用 sp for on
原文地址:http://blog.csdn.net/lanbing510/article/details/41774619