Recursion problem

Hi, I have a recursive function that I am trying to parallelize. I have a C2050 and cuda toolkit 3.1. I’m compiling using

nvcc -arch=sm_20 -o out in.cu

If I use cuda-gdb (and compile with -g -G), whenever I step into the line where the recursive function calls itself, I get the following warnings:

approximateMatchRecursive (approxRes=warning: Variable stored in multiple registers. Not supported in GDB yet. Returning garbage value.
0xfffd1000000004, approxResCount=warning: Variable stored in multiple registers. Not supported in GDB yet. Returning garbage value.
0xfffd1000000004,
maxMatches=50, query=warning: Variable stored in multiple registers. Not supported in GDB yet. Returning garbage value.
0xfffd1000000004 <Address 0xfffd1000000004 out of bounds>,
errsLeft=0, loc=3, lo=0, hi=22, rankArr=warning: Variable stored in multiple registers. Not supported in GDB yet. Returning garbage value.
0xfffd1000000004, bwArr=warning: Variable stored in multiple registers. Not supported in GDB yet. Returning garbage value.

Running the program with cuda-memcheck doesn’t report any problems. Any fixes/suggestions?

Looks like recursion isnt supported by cuda-gdb, yet. It has just been introduced in CUDA 3.1 for Fermi-cards.

Looks like recursion isnt supported by cuda-gdb, yet. It has just been introduced in CUDA 3.1 for Fermi-cards.

So the problem must be a bug in the code? Too bad; I thought there might be a quick fix :confused:

So the problem must be a bug in the code? Too bad; I thought there might be a quick fix :confused:

Nope. Gdb clearly says that sth isnt supported by gdb, yet. As recursion is supported in CUDA 3.1 with Fermi cards, and you r running a Fermi card with CUDA 3.1, your code might be ok.

Nope. Gdb clearly says that sth isnt supported by gdb, yet. As recursion is supported in CUDA 3.1 with Fermi cards, and you r running a Fermi card with CUDA 3.1, your code might be ok.