Doppia(version-2)编译

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值