Cuda Error While Running jetson-reinforcement on Host Linux Machine

Hello all,

I apologize if this is the wrong place to post this. I did not want to post it as a GitHub issue as it is not a bug and is likely an issue with my machine. I am having issues running the 3D Arm Simulation from the jetson-reinforcement repository on dustynv’s GitHub (GitHub - dusty-nv/jetson-reinforcement: Deep reinforcement learning GPU libraries for NVIDIA Jetson TX1/TX2 with PyTorch, OpenAI Gym, and Gazebo robotics simulator.). I can run the simulation with no problems on my Jetson TX2, but I cannot run it on my Linux Laptop. I am running Ubuntu 16.04 LTS on an HP ZBook Intel Core i7-6820HQ CPU @ 2.70GHz × 8 with Nvidia Quadro M1000M GPU. I have installed, uninstalled, and reinstalled Jetpack 3.2.1 with no success. The error occurs when I run the 3D simulations of the Arm and Rover, but not when I run any of the other sample RL programs. The error I receive when running:

[cuda]   cudaGetLastError()
[cuda]      no kernel image is available for execution on the device (error 48) (hex 0x30)
[cuda]      /home/digital/jetson-reinforcement/cuda/cudaPlanar.cu:53
[cuda]   cudaPackedToPlanarBGR((uchar3*)inputBuffer[1], inputRawWidth, inputRawHeight, inputState->gpuPtr, 64, 64)
[cuda]      no kernel image is available for execution on the device (error 48) (hex 0x30)
[cuda]      /home/digital/jetson-reinforcement/gazebo/ArmPlugin.cpp:299
ArmPlugin - failed to convert 64x64 image to 64x64 planar BGR image
[cuda]   cudaGetLastError()
[cuda]      no kernel image is available for execution on the device (error 48) (hex 0x30)
[cuda]      /home/digital/jetson-reinforcement/cuda/cudaPlanar.cu:53
[cuda]   cudaPackedToPlanarBGR((uchar3*)inputBuffer[1], inputRawWidth, inputRawHeight, inputState->gpuPtr, 64, 64)
[cuda]      no kernel image is available for execution on the device (error 48) (hex 0x30)
[cuda]      /home/digital/jetson-reinforcement/gazebo/ArmPlugin.cpp:299
ArmPlugin - failed to convert 64x64 image to 64x64 planar BGR image
[cuda]   cudaGetLastError()
[cuda]      no kernel image is available for execution on the device (error 48) (hex 0x30)
[cuda]      /home/digital/jetson-reinforcement/cuda/cudaPlanar.cu:53
[cuda]   cudaPackedToPlanarBGR((uchar3*)inputBuffer[1], inputRawWidth, inputRawHeight, inputState->gpuPtr, 64, 64)
[cuda]      no kernel image is available for execution on the device (error 48) (hex 0x30)
[cuda]      /home/digital/jetson-reinforcement/gazebo/ArmPlugin.cpp:299

Can anyone tell me what this means?

You’ve compiled the code for an architecture that does not match the Quadro M1000M you are trying to run on.

Recompile with proper settings. TX2 is a 6.2 architecture, M1000M is a 5.0 architecture

so at this point:

https://github.com/dusty-nv/jetson-reinforcement/blob/master/CMakeLists.txt#L20

add:

-gencode arch=compute_50,code=sm_50