这段时间学习deep learning,下载了cuda-convnet 学习CNN。想要运行这个代码,需要GPU的机器,同时需要安装cuda以及python等。从裸机到运行成功,花费了一些时间。因第一次安装,没有头绪,未将出错情况一一记下。这次先写下基本流程记以及问题的解决方法链接,具体细节等下次安装时,再逐步整理。
硬件:
(1) cpu: Intel(R) Core(TM) i7-4930K CPU @ 3.40GHz
(2) gpu: NVIDIA GTX 770
操作系统:
centOS 6.4
(ubunto 不知什么原因,未能安装成功)
安装步骤:
1. 安装显卡驱动
方法详见:点击打开链接
2. 安装cuda5.5
方法详见:安装cuda方法1以及安装cuda方法2
在编译cuda 下samples的过程中,可能会遇到 以下一些问题:
ld: cannot find -lglut / libX11
解决方法参见官方说明文档:点击打开链接
3. python 安装
centos 6.4 中自带python 2.6.6,不需要升级即可运行cuda-convent程序。(升级后安装其它相关组件,反而会出现问题)
4. python-devel, numpy, python-magic, python-matplotlib,atlas-devel安装
安装这些相关组件,走了不少弯路,大部分可以下命令搞定:
yum install ***
进行安装,如果使用上述命令找不到安装包,再从网上手动下载。(跟着网上一些教程,一步一步地死磕,是要吃大亏的,特别是 atlas-devel, 完全可以上述命令搞定)
5. gcc, g++升级
这步执行有没有必要,我没有验证过,我从4.4升级至4. 6方法:gcc升级方法
6. cuda-convnet 中环境设置
(1)按说明修改build.sh
(2)修改Makefile:
将:
INCLUDES := -I$(PYTHON_INCLUDE_PATH) -I$(NUMPY_INCLUDE_PATH) -I./include -I./include/common -I./include/cudaconv2 -I./include/nvmatrix
改为:
INCLUDES := -I$(PYTHON_INCLUDE_PATH) -I$(NUMPY_INCLUDE_PATH) -I$(CUDA_SDK_PATH) -I./include -I./include/common -I./include/cudaconv2 -I./include/nvmatrix
(3)修改common-gcc-cuda-5.5.mk
将其中g++4.6改为g++
7. 修改magic的相关代码
可能是旧版本的问题,py 文件中有些代码中存在magic.open(),需要改为magic.from_buffer().
经过上述配置,运行 sh build.sh,如果在./bin/linux/release/路径下生成_ConvNet.so,即表明配置成功。
如果是非root 用户,运行时还会出现:找不到libcudart.so的问题,需要设置当前用户下的LD_Library_path变量,设置方法如下:
http://www.cnblogs.com/waterlin/archive/2011/07/14/2106056.html
http://hi.baidu.com/aragon2/item/3e73e618e44e4042e75e0688
以上方法为较粗略的步骤概括,还需要在以后进行更为详细的总结。