Мне кажется, я знаю, почему это происходит, поскольку я сталкивался с этим раньше. Как вы называете ядро?
Помните, что при вызове kernel<<<blocks,threads,sharedMemory>>>
sharedMemory
должен быть размером разделяемой памяти в байтах. Итак, если вы объявляете для 512 элементов, третий параметр должен быть 512 * sizeof (float4). Я думаю, что вы просто звоните, как показано ниже, что неправильно
kernel<<<blocks,threads,512>>> // this is wrong
Надеюсь, что поможет