您的位置:首页 > 运维架构

Doppia(version-2)编译

2015-12-23 15:14 225 查看

Doppia(version-2)编译

1. Doppia简介

该C++和CUDA代码提供从立体图像中估计stixels,从单幅图像中检测行人和为新类训练检测器[1]。

2. Doppia编译参考

JpHu分四部分讲述Doppia version-1的编译及其准备工作[6],介绍得很详细。不过第四部分他和我遇到的问题出入比较大。我遇到的是由于CUDA_NVCC_FLAGS设置不当造成的各种乱七八糟的问题。

3. Doppia编译

(1)下载Doppia源代码[1或2]

原作者的代码在[1]中可以下载;另外一位台北的大哥biotrump[2]编译成功了原作者的version-2的代码并发布出来,我用他咀嚼后的版本make异常顺利,最后所有模块都测试成功。

(2)修改common_settings.cmake

在else()前面添加主机名,对GPU和CUDA作相关设置。CUDA_NVCC_FLAGS指令设置不妥make时也会出问题[3]。
最重要的是GPU架构(--gpu-architecture,短名为-arch)。GPU架构用于指定NVIDIA虚拟GPU架构的类名称,虚拟GPU架构的CUDA输入文件必须要编译。为nvcc编译方便,--gpu-architecture指定的值可能是nvcc使用的真实架构和最接近真实架构的有效虚拟架构[4]。比如,nvcc --gpu-architecture=sm_20等效于nvcc --gpu-architecture=compute_20
--gpu-code=sm_20,compute_20。

1)GPU特征列表(GPU Feature List)

GPU都命名为sm_xy,其中x表示GPU属于哪一代,y表示该代的版本。如果x1y1<=x2y2,那么sm_x2y2将包含sm_x1y1所有的非ISA的相关功能。sm_30是基本的Kepler模型,所以会包含基本特征(sm_20的功能)[5]。

sm_20:基本功能+Fermi支持;

sm_30和sm_32:+Kepler支持+统一的内存;

sm_35:+动态并行支持;

sm_50,sm_52和sm_53:+Maxwell支持。

2)虚拟架构特征列表

和GPU特征列表类似。

添加的完整内容如下。

elseif(${HOSTNAME} STREQUAL  "parallel")
# change the_name_of_your_machine to what /bin/hostname returns

message(STATUS "Using parallel compilation options")
# start with an empty section, and see what fails as you go through the readme.text instructions
option(USE_GPU "Should the GPU be used ?" TRUE)
set(CUDA_BUILD_CUBIN OFF)
set(CUDA_NVCC_FLAGS "-arch=sm_50" CACHE STRING "nvcc flags" FORCE)


(3)后来

根据[1]中的编译说明一步一步往下走很顺利。中间会遇到的都是些小问题。

1)"__float128未定义":把__float128改成float;
2)“swap未定义”:添加algorithm头文件;

3)对于[1]中下载的版本,编译出现tools里面的文件not found:version-1和version-2的文件夹合并(P.S.[1]中的version-2我也没有编译成功)。

4. 参考链接

[1] https://bitbucket.org/rodrigob/doppia
[2] https://github.com/biotrump/rodrigob-doppia
[3] https://bitbucket.org/rodrigob/doppia/issues/84/the-problem-while-compiling
[4] docs.nvidia.com/cuda/cuda-compiler-driver-nvcc/#axzz3v6hJhflM

[5] docs.nvidia.com/cuda/cuda-compiler-driver-nvcc/index.html#virtual-architecture-feature-list

[6] blog.csdn.net/tingyue_/article/details/45619745
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: