Почему это CUDA-ядро дает результаты, отличные от результатов CPU-версии?
Возможно проблема в том, что ядра в цикле выполняются асинхронно.
А результат выполнения одного ядра зависит от результата другого, и следующее ядро в цикле выполняется не дождавшись окончания выполнения предыдущего.
Двойную точность, если у Вас не тесла к20 или старые тесла 2ххх, смысла использовать нет на картах nvidia. 
GF555M и в одинарной точности не блещет особо, а с двойной ещё на порядок медленнее. 
Cовременный 4 ядерный CPU будет быстрее в double.
Я переписал ядро так, чтобы оно симулировалось циклами на CPU, чтобы проверить проблема ли в GPU. Погрешность осталась, следовательно ошибка в коде скорее всего. Ищу ее…