Здравствуйте, у меня возникла такая проблема. Написал дискретное преобразование Фурье, структура ядра аналогична ядру для задачи об N-телах, которое есть в книге по CUDA.
Программа прекрасно работает, если размер входного сигнала не превышает примерно 32000(для 9800GTX+, примерно 20000 для 8600GT), но если превысить это значение хотя бы на сотню, то драйвер падает. Причем значение не статическое а постоянно колеблется. Попробовал разбивать входной массив на части и обрабатывать их по порядку.  При небольшом размере части программа считает и для 100 000 элементов, но по понятным причинам долго работает, при увеличении размера части программа считает все таки несколько частей, но на n-ной все равно падает. Единственное различие между частями это порядковый номер высчитываемого элемента. Где-то прочитал что время выполнения ядра не должно превышать 5 секунд, но тогда не понятно почему на 30000(время примерно 800 млс) программа работает, но при небольшом увеличении падает, хотя логично предположить что время не должно быть намного больше.

Хотелось бы все таки разобраться в причинах такого поведения.

исходный проект