P·E·T父母效能训练-读书简记 彼得·林奇的成功投资-读书简记 2015-2020美国居民膳食指南-读书简记 中国居民膳食指南(2016)-读书简记 批判性思维-读书简记 代码大全-读书简记 游戏力-读书简记 成功,动机与目标-读书简记 基因组:人种自传23章-读书简记 YOU身体使用手册-读书简记 登天之梯-读书简记 为什么学生不喜欢上学-读书简记 请停止无效努力-读书简记 麦肯基疗法-读书简记 跟简七学理财-课程简记 指数基金投资指南(2017中信版)-读书简记 指数基金投资指南(2015雪球版)-读书简记 让大脑自由:释放天赋的12条定律-读书简记 养育的选择-读书简记 GPU高性能编程CUDA实战-读书简记 百万富翁快车道-读书简记 原则-读书简记 穷查理宝典-读书简记 C++并发编程实战-读书简记 哲学家们都干了些什么-读书简记 Effective C++-读书简记 通往财富自由之路-读书简记 Linux命令行与Shell脚本编程大全-读书简记 刻意练习-读书简记 写给大家看的设计书-读书简记 习惯的力量-读书简记 好好学习-读书简记 硅谷最受欢迎的情商课-读书简记 富爸爸,穷爸爸-读书简记 如何说孩子才会听,怎么听孩子才会说-读书简记 阻力最小之路-读书简记 ProGit-读书简记 思考:快与慢-读书简记 C语言深度剖析-读书简记 编程珠玑-读书简记 Head First 设计模式-读书简记 反脆弱-读书简记 我的阅读书单 小强升职记-读书简记 观呼吸-读书简记 黑客与画家-读书简记 晨间日记的奇迹-读书简记 如何高效学习-读书简记 即兴的智慧-读书简记 精力管理-读书简记 C++编程思想-读书简记 拖延心理学-读书简记 自控力-读书简记 伟大是熬出来的-读书简记 生命不能承受之轻-读书简记 高效能人士的七个习惯-读书简记 没有任何借口-读书简记 一分钟的你自己-读书简记 人生不设限-读书简记 暗时间-读书简记
P·E·T父母效能训练-读书简记 彼得·林奇的成功投资-读书简记 2015-2020美国居民膳食指南-读书简记 中国居民膳食指南(2016)-读书简记 批判性思维-读书简记 代码大全-读书简记 游戏力-读书简记 成功,动机与目标-读书简记 基因组:人种自传23章-读书简记 YOU身体使用手册-读书简记 登天之梯-读书简记 为什么学生不喜欢上学-读书简记 请停止无效努力-读书简记 麦肯基疗法-读书简记 跟简七学理财-课程简记 指数基金投资指南(2017中信版)-读书简记 指数基金投资指南(2015雪球版)-读书简记 让大脑自由:释放天赋的12条定律-读书简记 养育的选择-读书简记 GPU高性能编程CUDA实战-读书简记 百万富翁快车道-读书简记 原则-读书简记 穷查理宝典-读书简记 C++并发编程实战-读书简记 哲学家们都干了些什么-读书简记 Effective C++-读书简记 通往财富自由之路-读书简记 Linux命令行与Shell脚本编程大全-读书简记 刻意练习-读书简记 写给大家看的设计书-读书简记 习惯的力量-读书简记 好好学习-读书简记 硅谷最受欢迎的情商课-读书简记 富爸爸,穷爸爸-读书简记 如何说孩子才会听,怎么听孩子才会说-读书简记 阻力最小之路-读书简记 ProGit-读书简记 思考:快与慢-读书简记 C语言深度剖析-读书简记 编程珠玑-读书简记 Head First 设计模式-读书简记 反脆弱-读书简记 小强升职记-读书简记 观呼吸-读书简记 黑客与画家-读书简记 晨间日记的奇迹-读书简记 如何高效学习-读书简记 即兴的智慧-读书简记 精力管理-读书简记 C++编程思想-读书简记 拖延心理学-读书简记 自控力-读书简记 伟大是熬出来的-读书简记 生命不能承受之轻-读书简记 高效能人士的七个习惯-读书简记 没有任何借口-读书简记 一分钟的你自己-读书简记 人生不设限-读书简记 暗时间-读书简记

Theano利用GPU进行深度学习加速的配置及使用

2014年12月16日

最近使用Theano写了MLP和CNN的程序,由于训练样本大,单靠CPU运算速度so slow;于是乎找到了一台有NVIDIA显卡的电脑进行了GPU的配置使用,期间遇到很多问题,记录如下。

平台说明:

Python:2.7, 建议直接使用 Python(x,y),包含了Theano需要的Numpy等库,省去自己配置

Theano: 0.6

CUDA:3.0

下载


1 下载安装Theano: easy_install theano

2 下载CUDA:传送门

3 下载驱动、工具包、软件开发包,按顺序安装

注:同学们最好直接下载3.0版的,我最早下的2.3版本,但发现Theano的CUDA模块对2.3的支持很差很差,改了..\theano\sandbox\cuda\下.cu里面的很多代码,比如cudaMemGetInfor(为3.0版本的接口,2.3为cuMemGetInfor,详细见这里),最终编译没错了,但出现了很难处理的link bug。最终改用3.0后,只改了小部分的代码就成功运行(怎么改后面有说明)。

配置


打开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()。

遇到的问题


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,很好很强大。


版权声明:本文为博主原创文章,转载请注明出处 本文总阅读量    次