1

When I call the function, cuLaunchKernel(), my program crashes with the error, CUDA_ERROR_LAUNCH_OUT_OF_RESOURCES. Is this because I'm passing 29 parameters to my kernel? If so, is there any work around? I am pretty certain that I need these parameters for calculations.

Pointer kernelParams = Pointer.to(
                Pointer.to(new int[] {n}), 
                Pointer.to(new int[] {xRes}), 
                Pointer.to(new int[] {yRes}),
                Pointer.to(new double[] {camX}),
                Pointer.to(new double[] {camY}),
                Pointer.to(new double[] {camZ}),
                Pointer.to(new double[] {camforX}),
                Pointer.to(new double[] {camforY}),
                Pointer.to(new double[] {camforZ}),
                Pointer.to(new double[] {camupX}),
                Pointer.to(new double[] {camupY}),
                Pointer.to(new double[] {camupZ}),
                Pointer.to(new double[] {fov}),
                Pointer.to(new double[] {aspectRatio}),
                Pointer.to(in14),
                Pointer.to(in15),
                Pointer.to(in16),
                Pointer.to(in17),
                Pointer.to(in18),
                Pointer.to(in19),
                Pointer.to(in20),
                Pointer.to(in21),
                Pointer.to(in22),
                Pointer.to(new double[] {meshposX}),
                Pointer.to(new double[] {meshposY}),
                Pointer.to(new double[] {meshposZ}),
                Pointer.to(out0),
                Pointer.to(out1),
                Pointer.to(out2)
            );
cuLaunchKernel(function,
                    32,32,1,
                    32,32,1,
                    0,null,
                    kernelParams,null
                    );
talonmies
  • 70,661
  • 34
  • 192
  • 269
  • Reduce the block size. The obvious candidate is registers per thread or local memory per thread – talonmies May 19 '20 at 12:17
  • @talonmies thanks for the quick response! Reducing the block size got rid of the error! I also had to reduce the grid size because I was getting CUDA_ERROR_ILLEGAL_ADDRESS after lowering the block size – Sam Collier May 19 '20 at 12:26

1 Answers1

1

Here is my naive answer:

As suggested in comments, the problem was to do with the block size. Reducing the block size fixed the error. After reducing the block size, I received the error: CUDA_ERROR_ILLEGAL_ADDRESS. Reducing the grid size solved that problem.

talonmies
  • 70,661
  • 34
  • 192
  • 269