OpenACC: maxregcount causing Error 500

Dear all,

I profiled my application with nvvp, that suggests to limit the number of registers for kernels. I therefore tried the maxregcount compilation option with the following flag:

-ta=nvidia,cc35,maxregcount:32,host,time

but now the application is crashing with the following message:

call to cuModuleGetFunction returned error 500: Not found

Do you have any hints to explain/avoid this crash?

I’m using PGI Fortran compiler 14.1 and Cuda 6.0.

Thanks for helping!

Hi mbr.joos,

call to cuModuleGetFunction returned error 500: Not found

This means that the generated CUDA “bin” file isn’t getting linked in with your binary. Though, I don’t why. The only two known causes are if you are using wildcards for file names on Windows since nvlink couldn’t handle widlcards (TPR#20418, fixed in PGI 14.6) or when using OpenACC code in a shared object (TPR#20895, work around is to use “-ta=tesla:nordc”)

Are there any error or warning messages?
What happens if you compile without RDC? (-ta=nvidia,cc35,nordc,maxregcount:32,host,time)
Or if you just target the GPU? (-ta=nvidia,cc35,maxregcount:32).

  • Mat

Hi Mat,

Thanks for your answer. I’m running on GNU/Linux, so it shouldn’t be a problem with the wildcards.

I tried without RDC and only targetting the GPU, and in both case I got the same error 500.

I have no error or warning at compile time. I’m updating my PGI compilers to 14.9 to see if it can fix the problem.

Ok, though if 14.9 doesn’t resolve the issue, can you send a reproducing example to PGI Customer Service (trs@pgroup.com)?