I encountered a problem with parameters. Here is my kernel call:
manipulateImage_kernel1<<<gridDim, blockDim>>> (image1, image2, imag3, image4, value1, value2, value3, value4);
Everything works fine, but when I add a new image to the kernel call so that new kernel call is
manipulateImage_kernel2<<<gridDim, blockDim>>> (image1, image2, imag3, image4, image5, value1, value2, value3, value4);
the results slightly change even without using image5 in the calculation of the kernel. It is only passed to the kernel as a parameter but I don’t use it. (Well, I want to use it later but I tried the code first without using image5). I use exactly the same code as before without any changes but some pixels of the results do change a little bit. I don’t understand why this is happening.
The variables image1 to image5 are of type "float image" and point to an image-array of size 288384*16, but I only pass the pointer. The variables value1 to value4 are some float values of type float that I need in my kernel.
As much as I can see, I don’t exceed the limit of 256 bytes for kernel parameters. Can anyone help me please? The changes of the result from manipulateImage_kernel1 to manipulateImage_kernel2 are not very significant but there are changes and I really can’t imagine why, because the code is the same and I don’t use image5. I would appreciate any help.