I have a project taking use of cuda/cudnn that runs well with Jetson Nano + carrier board A02. The same project is able to compile with Jetson Xavier NX + carrier board B01, however, it reports the following run time error:
Unhandled exception in worker thread: basic_string::_M_construct null not valid
I’m not sure where I should trace this issue. Here is the difference of the two sets:
=====Jetson Nano + Carrier Board A02=====
CUDA Runtime version: 10.0.0
Cudnn version: 7.3.1
Latest version of CUDA supported by the driver: 10.0.0
GPU: NVIDIA Tegra X1
GPU memory: 3.87164 Gb
GPU clock frequency: 921.6 MHz
GPU compute capability: 5.3
===== Jetson Xavier NX + Carrier Board B01=====
CUDA Runtime version: 10.2.0
Cudnn version: 8.0.0
Latest version of CUDA supported by the driver: 10.2.0
GPU memory: 7.58946 Gb
GPU clock frequency: 1109 MHz
GPU compute capability: 7.2
Xavier’s GPU capacity is sm=72.
So you will need to add the correct architecture to generate a Xavier runnable kernel.
Could you check if the sm=72 compute capacity is added when compiling the app for Xavier NX?
Thanks for your advice. I tried compiling with clang++6.0, g++7, and g++8, they all have the same run time error. But if I don’t run my neural networks on cuda/cudnn backend and choose to run on CPU only, it works just fine. That seems to point to cuda/cudnn runtime libraries that could have something not thread safe.
This is what I have so far:
It works on Nano with JP 4.3/CUDA10.0/CUDNN7.3
It doesn’t work on NX with JP4.4/CUDA10.2/CUDNN8.0
It works on NX with JP4.4 as long as not on CUDA/CUDNN backend
I’ll later try on cuda/cudnn backend using JP 4.3 with Xavier AGX see how it goes.