Если ядро делает мало работы, то накладные расходы memcpy и запуск ядра может компенсировать любой прирост производительности. Рассмотрите возможность работы с большим набором образцов (увеличив таким образом размер цикла). Чтобы обнаружить это состояние, посмотрите на nvvpreport.
Выполняйте больше работ в цикле или увеличивайте размер набора образцов
Если в теле цикла используется слишком много локальных/временных переменных, это приводит к высокому давлению регистров в файле регистров для каждого потока. Это состояние можно обнаружить, запустив в режиме безопасного построения графического процессора. Или, nvvp сообщает об этом факте.
Рассмотрите возможность использования различных размеров блоков в coder.gpu.kernel прагматика.