kinfu_largeScal_release run error,Error:invalid device function ../tsdf_volume.cu:164
turtlebot@turtlebot-OMEN-by-HP-Laptop:~/Project/pcl/build$ ./bin/pcl_kinfu_largeScale -r -et
[pcl::gpu::printShortCudaDeviceInfo] : Device 0: "GeForce GTX 1070" 8105Mb
Can't determine number of cores. Unknown SM version 6.1!
, sm_61, 0 cores, Driver/Runtime ver.8.0/7.50
1300 --- Debug information
[Info] [Freenect2Impl] enumerating devices...
[Info] [Freenect2Impl] 8 usb devices connected
[Info] [Freenect2Impl] found valid Kinect v2 @2:3 with serial 021468743547
[Info] [Freenect2Impl] found 1 devices
[Info] [Freenect2DeviceImpl] opening...
[Info] [Freenect2DeviceImpl] transfer pool sizes rgb: 20*16384 ir: 60*8*33792
[Info] [Freenect2DeviceImpl] opened
*** Debug: openniGrabber() ok
--- CURRENT SETTINGS ---
Volume size is set to 3.00 meters
Volume will shift when the camera target point is farther than 1.50 meters from the volume center
The target point is located at [0, 0, 1.80] in camera coordinates
------------------------
Error: invalid device function /home/turtlebot/Project/pcl/gpu/kinfu_large_scale/src/cuda/tsdf_volume.cu:164
解决办法
怀疑与cuda版本有关: gtx1070可能对应的cuda版本号为8.0,并且cmake的时候加上两个选项:
$ cmake .. -DCUDA_ARCH_BIN="6.1" -DCUDA_ARCH_PTX="6.1"
最后发现:gtx1070和gtx1080的计算能力是61,cuda8.0以上才支持61. 所以在gtx1070上用cuda7.5编译pcl1.8的时候会出现如下错误:
nvcc fatal : Unsupported gpu architecture 'compute_61'
还发现opencv2.*依赖cuda7.5,opencv3.*依赖cuda8.0