Ok I’ll be precise. My program has two structures:
The host code is making arrays of these structures. The size of arrays changes with different data instances. If the size of array of struct B is n then the size of array of struct A is n*(n-1)/2. Also I am sending one more float array of size n to the kernel. The kernel is executed on n+1 blocks with 2 threads each. My code works fine when n is about 50. But it does not work when n is 100. Is it because the parameters passed to the kernel are transfered to the shared memory which in this case overflows? For large data set the program does not crash or anything. It just doesn’t do anything. The parameters passed to the kernel are returned unchanged.
Further, when I only pass array of struct B (n=100) and to some processing, it works. But when I pass all other parameters (as described above) it doesn’t work. What am I doing wrong? Is there a way out or I need to change my approach?
Any help will be much appreciated.