Sam Collier
Sam Collier

Reputation: 33

Jcuda CUDA_ERROR_LAUNCH_OUT_OF_RESOURCES (Too Many Parameters?)

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
                    );

Upvotes: 1

Views: 388

Answers (1)

Sam Collier
Sam Collier

Reputation: 33

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.

Upvotes: 1

Related Questions