error:no kernel image is available for execution in CUDA 10.0

Hi,

I am using Jetson TX2 flashed with JetPack 4.2. When I try to use pcl gpu module with ROS, after successful compiling I get the following error in runtime:

Error: no kernel image is available for execution on the device /home/nvidia/Downloads/pcl-pcl-1.9.0/gpu/features/src/normal_3d.cu:250
terminate called after throwing an instance of ‘boost::exception_detail::clone_impl<boost::exception_detail::error_info_injectorboost::lock_error >’
what(): boost: mutex lock failed in pthread_mutex_lock: Invalid argument
[mapping/MappingMgr-1] process has died [pid 26645, exit code -6, cmd /opt/ros/melodic/lib/nodelet/nodelet manager __name:=MappingMgr __log:=/home/nvidia/.ros/log/35c8594c-af7b-11e9-9c4a-5e57f7762999/mapping-MappingMgr-1.log].
log file: /home/nvidia/.ros/log/35c8594c-af7b-11e9-9c4a-5e57f7762999/mapping-MappingMgr-1*.log

I am using the flag of sm_53 to compile the code. Additionally, the line giving the error in normal_3d.cu is cudaSafeCall( cudaGetLastError() ). Any help and suggestion would be appreciated.

Jetson TX2 is cc6.2 device you should be using sm_62

Thank you for your quick reply! and I am very grateful since it worked! quick question just for curiosity, when I typed nvcc -h, sm_53 was also one of the compatible capacity flags why didnt it work though?

It’s a lengthy subject. It is covered in many questions elsewhere.

Here is one answer, and also refer to the other answers linked from that answer.

https://stackoverflow.com/questions/47908959/nvcc-arch-code

It is also covered in the nvcc documentation.

https://docs.nvidia.com/cuda/cuda-compiler-driver-nvcc/index.html#gpu-generations

Many thanks for your answer!