PointCloudLibrary / pcl

Point Cloud Library (PCL)
https://pointclouds.org/
Other
9.72k stars 4.6k forks source link

pcl::gpu::EuclideanClusterExtraction crashed #2156

Open chenhonghua opened 6 years ago

chenhonghua commented 6 years ago

:warning: This is a issue tracker, please use our mailing list for questions: www.pcl-users.org. :warning:

Your Environment

Expected Behavior

I wanna use pcl::gpu::EculidenClusterExtraction to speed up segmentation task.

Current Behavior

The program crashed when it call the function extract() and show the info: Error: invalid device function F:/PCL/pcl-master/gpu/octree/src/cuda/octree_host.cu:64 I debuted and found the crash point was at the line 193 in gpu_extractclusters.cpp: if(!tree->isBuild()) { tree_->build(); }

Possible Solution

Code to Reproduce

Context

SergioRAgostinho commented 6 years ago

Sounds like a duplicate of #2103

chenhonghua commented 6 years ago

@SergioRAgostinho thank you, I will check it

chenhonghua commented 6 years ago

@SergioRAgostinho Hi, I debug the program as follows:

pcl::gpu::Octree::Ptr octree_device(new pcl::gpu::Octree) -->Octree() -->OctreeImpl::get_gpu_arch_compiled_for(bin, ptx) -->cudaSafeCall(cudaFuncGetAttributes(&attrs, get_cc_kernel)) -->return::cudaFuncGetAttributes(attr, (const void*)entry)

!!! But here return cudaErrorInvalidDeviceFunction, which means the requested device function does not exist or is not compiled for the proper device architecture.

Does that mean my gpu is not suitable? My gpu is quadro K620. Cuda Version:8.0

barnjamin commented 5 years ago

Did you compile with the right setting in CUDA_BIN_ARCH? You may also have to add a value for the number of cores in gpu/containers/src/initialization.cpp in the gpuArchCoresPerSm array corresponding to your gpu arch

anujgpatil commented 4 years ago

Did you compile with the right setting in CUDA_BIN_ARCH? You may also have to add a value for the number of cores in gpu/containers/src/initialization.cpp in the gpuArchCoresPerSm array corresponding to your gpu arch

@barnjamin I guess manual configuration isn't required for alternative archs. Because findCUDA file already sets redundant flags when PCL is compiled from source. Has this issue been addressed to make GPU examples: segmentation/octree_search work?