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


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/
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 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.

It is also covered in the nvcc documentation.

Many thanks for your answer!