CUDA FFT... скорость CUFFT

Здравствуйте! Использую куду в учебной работе... задача довольно простая, но нужно успевать в реальном времени.
Для своей задачи на GPU считаю Фурье прямое и обратное...чем быстрее тем лучше)
Пока использовал CUFFT... насколько я понимаю оно считает комплексное Фурье. Мне же мнимая часть не нужна.... причем фурье мне нужно брать по размеру 1024 и только... и насколько я знаю алгоритм фурье для 1024 отсчетов сильно упрощается т.к. это степень двойки, да еще и четная...
сейчас я прогоняю на 8800GT 1000 циклов фурье туда-сюда + свои небольшие действия за 4 секунды... +- 200мс... впринципе этого достаточно, но "впритык", при модификации алгоритма уже не хватит(

Поэтому прошу, пожалуйста, ответить на возникшие вопросы если можете:
1) На много ли будет прирост производительности если взять более мощную видеокарту 480 например?
Скорость вычисления каждого ядра у нее выше или просто ядер больше?
2) Реализованы в CUFFT алгоритм Фурье с оптимизацией для реального fft и размерности степени двойки?
там есть настройка конфигурация фурье

  1. #define         N               1024
  2. ...
  3. cufftHandle planFFT;
  4. cufftHandle planIFFT;
  5. cufftPlan1d(&planFFT, N, CUFFT_R2C, 1);
  6. cufftPlan1d(&planIFFT, N, CUFFT_C2R, 1);

Что означает третий параметр? Из документации я не понял(
3) Также насчет "реального" Фурье. В CUFFT есть функции cufftExecR2C и cufftExecC2R. Насколько я понял это прямое преобразование из реального в комплексное и обратное из комплексного в реально, вот этим и пользуюсь, но смущает немного наличие комплексной части в промежуточном результате... мнимую часть приходится обнулять.... иначе график не похож на правду)
Возможно есть какие-нибудь либы с реализацией простого Фурье без мнимой части оптимизированного под 1024... для DSP и GKBC такие либы попадались, но для OpenCL или CUDA пока удалось разобраться только с CUFFT...

Спасибо Вам!

Forums: 

Я не специалист, но plan1d и

Я не специалист, но plan1d и R2C/C2R - в CuFFT 3.0 есть.

Могу прогнать вашу задачу/данные на 480-й, если соберете все в проект для VS2008, который легко скомпилируется :)

1000 циклов это очень плохо,

1000 циклов это очень плохо, FFTW даже из .NET обертки в однопоточном режиме на Intel Q9650 выдает при длине 1024 10000 циклов, что-то Вы делаете неправильно. Процессор в 10 раз быстрее, а должно быть наоборот http://www.cv.nrao.edu/~pdemores/gpu/