SIGSEV at start of CUDA program


i got a program (1 main application, 2 shared libs, one of them uses CUDA) which i got working on my local pc. However, when i compile my program on another plattform, i got a segmentation fault directly after startup. When i start my program with cuda-gdb i see that the program crashes in the registerentryfunction by the CUDA-Framwork:

Program received signal SIGSEGV, Segmentation fault.
0x0000007fb780e958 in cudart::globalState::registerEntryFunction(void**, char const*, char*, char const*, int, uint3*, uint3*, dim3*, dim3*, int*) ()

I have no idea what can cause this problem because my program runs fine on my local pc. Other simple CUDA-samples also run on my remote-platform.

Can anyone help me out here?

Without seeing any code, one can only speculate. SIGSEV is a host side exception. Your code may be passing a null pointer or an uninitialized pointer to a CUDA API function, quite possibly as the result of an unhandled earlier error. The problem may also be an out-of-bounds access.

Make sure your code checks the status return of every CUDA API function, every call to a CUDA-enabled library, and all relevant host APIs (e.g. malloc()), and checks the status of every CUDA kernel launch. I consider it very likely that this approach will pinpoint the root cause of the SIGSEV.

This error does not come from my code. It appears before i can debug my first line of coda.
My project consists of the following:

  • libA -> simple C++ Library
  • libB -> library which uses CUDA
  • Application -> main which uses both libraries, but no CUDA code itself

I got the above error every time i compile and link my Application using NVCC. If i use GCC, my program starts fine. But NVCC should call gcc on non-CUDA-code?

The reason i want to you NVCC is because i am remote developing on an ARM platform. I am using eclipse nsight.
When i use the CUDA-project template, the remote build works as it should. If i use the standard C++ (GCC) template, nsight compiles locally and then synchronizes the (x86) binary to my ARM platform, which of course won’t
Or is there a way to run nsight locally on my ARM-platform? Does nsight exists for ARM?