卡了很久,还是编译通过了
环境:ubuntu20.04 opencv4.5.0 opencv-contrib-4.5.0 cuda11.7 nvidia-driver-515
先装cuda,设置好环境变量export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-11.7/lib64
export PATH=$PATH:/usr/local/cuda-11.7/bin
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda-11.7
然后装opencv(opencv 零零碎碎_庄王的博客-CSDN博客)
编译之前,把Cmakelists.txt里面的-arch=sm_86根据自己的显卡配置好算力
编译bundlefusion过程中会出现一些bug
1.安装了libglfw3-dev 但是仍然报这个错“/usr/bin/ld: cannot find -lglfw3“,
解决方法:找到libglfw.so.3 并复制到/usr/lib/下面,然后,sudo ln -sv libglfw.so.3 libglfw3.so
2,其余的类似的,只要sudo apt install libxxx-dev,自己根据情况把命令补全即可
3,还有是关于_shlf_down_和_shlf_xor_相关的问题,全部按照下面修改就行
#define FULL_MASK 0xffffffff
__forceinline__ __device__
float warpReduceSum(float val) {
unsigned mask = __ballot_sync(FULL_MASK, threadIdx.x < warpSize);
for (int offset = warpSize / 2; offset > 0; offset /= 2)
val += __shfl_down_sync(mask, val, offset);
return val;
}
__forceinline__ __device__
float warpReduceMaxAll(float val) {
unsigned mask = __ballot_sync(FULL_MASK, threadIdx.x < warpSize);
for (int offset = warpSize / 2; offset > 0; offset /= 2) {
val = max(val, __shfl_xor_sync(mask, val, offset));
}
return val;
}
苦bundlefusion久矣,过几天会把编译好的源代码贡献到github上,今天太累了,这个事情搞的我重装了两次电脑,然后惠普的主板还比较垃圾,各种不兼容。有需要的直接留下邮箱吧