cuda-convnet在Ubuntu12.04+CUDA5.5下的配置
deep learning近年来非常之火,尤其是在IMAGENET上的识别效果更是惊呆了小伙伴,其所用的Hinton的学生编写的cuda-convet代码早已公开,但是一直没有时间去仔细研究,最近趁着清明小假期把这个试了下,首先是安装CUDA5.5,需要安装显卡驱动,cuda toolkit and cuda sdk(samples),折腾半天搞好之后准备工作完毕,但是发现cuda-convnet使用的是CUDA4.0,其中使用了cutil(其中多处使用cutil_inline.h),而cuda5.0开始不再支持cutil:
Prior to CUDA 5.0, CUDA Sample projects referenced a utility lib rary with header and source files called cuti l. This has been removed with the CUDA Samples in CUDA 5.0, and re placed with header files found in CUDA Samples \ v5.0 \ common \ inc helper_cuda.h, helper_cuda_ gl.h, helper_cuda_drvapi.h, helper_functions.h, helper_image.h, helper_math.h, help er_string.h, and helper_timer.h .These files provide utility functions f or CUDA device initialization, CUDA error checking, string parsing, imag e file loading and saving, and timing functions. The CUDA Samples proj ects no longer have references and dependencies to cutil, and will now use these helper functions going forward.
导致编译通不过。
解决方案:(参考:http://www.asiteof.me/archives/50和http://blog.csdn.net/xuanwu_yan/article/details/12784691,后者更为简便)
在包含目录下新建cutil_inline.h:
/*
Dummy Includes for cutil_inline.h
*/
#include <helper_cuda.h> #define cutilCheckMsg(a) getLastCudaError(a)
#define cutGetMaxGflopsDeviceId() gpuGetMaxGflopsDeviceId() #define MIN(a,b) (a) < (b) ? (a) : (b)
利用cuda5.5SDK中helper_cuda.h的函数代替原来cutil函数即可
此外,makefile中需要包含cuda5.5 SDK目录:
将build.sh中的CUDA_SDK_PATH改为相应的安装目录
export CUDA_SDK_PATH=/home/leon/NVIDIA_CUDA-5.5_Samples/common/inc
再将: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
最后,使用helper_cuda.h后不再需要cutil的动态链接库,所以直接把common-gcc-cuda-4.0.mk文件中的相应行注释掉即可:
#LIB += -lcutil_$(LIB_ARCH)$(LIBSUFFIX) -lshrutil_$(LIB_ARCH)$(LIBSUFFIX)
sh build.sh
在/bin/linux/release目录下生成_convnet.so文件即表示编译成功!congratulations and enjoy your cuda-convnet/deep learning journey!
cuda-convnet在Ubuntu12.04+CUDA5.5下的配置的更多相关文章
- Ubuntu12.04 cuda5.5安装
预处理步骤: 首先确认你的电脑装了一个可以运行CUDA程序的GPU. lspci | grep -i nvidia 另外要确认linux版本和gcc版本 具体参考链接:http://docs.nvid ...
- ubuntu12.04 U盘自动挂载配置
Ubuntu12.04禁止U盘等设备的自动挂载方法如下: 在图形界面(字符界面无效)内进入系统终端,ctrl+alt+T或者gnome-terminal 禁止自动挂载:$ gsettings seto ...
- Ubuntu12.04下Qt连接MySQL数据库
本文介绍在Ubuntu12.04 (64 bit) 下使用Qt 4.8.2连接MySQL(Ver 14.14 Distrib 5.5.43)数据库. 1.安装 Qt 和 MySQL 若未安装以上软件, ...
- Linux Ubuntu12.04下安装OpenCv2.4.10
参考 http://blog.sina.com.cn/s/blog_53b0956801010lfu.html 捣鼓了一个晚上了,OpenCv还没装好,本来以为看个类似的比如Ubuntu安装OpenC ...
- Linux (Ubuntu12.04) 下开发工具安装和使用
Linux (Ubuntu12.04) 下开发工具安装和使用 这里讲述的是关于在ubuntu12.04下面安装和使用各种IDE 开发环境和初步使用的知识.说一下背景:很多的开发基本都是在linux操作 ...
- ubuntu12.04下安卓编译环境搭建总结
前言: 因为工作需要,经常要编译安卓下的动态库,公司有已经搭建好环境的服务器,但是第一自己想自己搭建一下了解一个整个过程,另外,公司的服务器也经常出现问 题,导致编译不了,所以就想自己搭建环 ...
- 阿里云ubuntu12.04下安装使用mongodb
阿里云ubuntu12.04下安装mongodb apt-get install mongodb 阿里云ubuntu12.04下卸载mongodb,同时删除配置文件 apt-get pur ...
- ubuntu-12.04.1-desktop-x64下JDK环境的安装与配置
1.上oracle官网下载最新的JDK.在这里,我的系统是ubuntu-12.04.1-desktop-amd64,目前位置JDK的最新版本位7u9.jdk-for-linux有两种安装包,一种是rp ...
- Ubuntu12.04下arm交叉编译环境的建立
http://blog.csdn.net/heyangya2009/article/details/5424376 备注:ubuntu12.04+Android+Real6410 在主机上用来编译其他 ...
随机推荐
- 【Python】安装MySQLdb模块centos 6.1 宝塔Linux面板 MySQL5.6
[Python]安装MySQLdb模块centos 6.1 宝塔Linux面板 MySQL5.6 总之是各种坑 先说一下,宝塔安装在centos 6.1 i368 也就是32位系统上的方法 https ...
- 2019.10.25字符串——zr
题意: 给你两个字符串,由01组成:求他们两个的最短公共非子序列,要求字典序最小: 非公共子序列:都不是这两个字符串的子序列: 本人只会暴力啊,二进制枚举稳拿15分: 然而这道题其实是一个最短路题: ...
- AWS服务器上安全组端口设置和访问的问题
在搭建测试环境时使用AWS服务器环境,AWS EC2需要设置安全组开放端口,如果端口未进行授权则不允许访问,后台授权界面如下: 1.查看某个端口是否在AWS后台被开放,并允许访问: netstat - ...
- go语言中type的几种使用
type是go语法里的重要而且常用的关键字,type绝不只是对应于C/C++中的typedef.搞清楚type的使用,就容易理解go语言中的核心概念struct.interface.函数等的使用.以下 ...
- T-MAX--冲刺合集
目录 设想和目标 计划 资源 变更管理 设计/实现 测试/发布 团队的角色,管理,合作 总结 照片 各组员对于最终项目成果的贡献度 这个作业属于哪个课程 2019秋福大软件工程实践Z班 (福州大学) ...
- Qt Resource System Qt资源体系(qrc rcc)
Qt资源体系采用平台独立机制来存储应用程序执行时的二进制文件.这种机制在应用程序需要一些确定的文件(图标.翻译文件等等)而且又不想冒丢失文件的风险时是有用的. 资源体系依赖于 qmake, rcc ( ...
- vue-使用keepAlive对上下拉刷新列表数据 和 滚动位置细节进行处理
[前言] 使用vue处理项目中遇到列表页面时,有一些细节需要注意,这里总结一下,以便优化以后的代码.如下: 1. 使用mint-ui中的LoadMore组件上下拉刷新时,有时无法触发上拉加载更多的方法 ...
- Android命名规范(重点讲解:包名)
Android程序开发中,使用规范的命名有益于程序的开发和后期阅读.本文主要对Android程序包名的定义做详细介绍,并附带一些简单的命名规则. 一.标识符命名方法1 .小驼峰命名法,除首单词外,其余 ...
- 2019年逾期率上升_24家头部P2P平台最新运营数据解读:8家近一年逾期率走势曝光
python信用评分卡建模(附代码,博主录制) https://study.163.com/course/introduction.htm?courseId=1005214003&utm_ca ...
- Maven Multi-Module Example
Maven Multi-Module - 国内版 Binghttps://cn.bing.com/search?q=Maven+Multi-Module&qs=n&form=QBRE& ...