FFT

Форумчане, немогли бы вы выложить (либо дать ссылку) пример использования библиотечных функций БПФ (FFT) в Visual Studio с подробными инструкциями.

Forums: 

Посмотрите пример в

Посмотрите пример в C:\ProgramData\NVIDIA Corporation\NVIDIA GPU Computing SDK\C\src\simpleCUFFT
там как раз проект готовый... у меня открывается, компилится и запускается сразу без проблем.... можно взять этот проект за основу.
Также полистайте небольшую документацию CUFFT... всего несколько функций + примеры
http://developer.download.nvidia.com/compute/cuda/1_1/CUFFT_Library_1.1.pdf
примеры очень простые в конце... вот исходничок из документации + настроенный проект simpleCUFFT и тупо затолкать один массив на видюшку и вернуть фурье обратно, думаю, Вы сможете без проблем.

Спасибо! Но вот проблема -

Спасибо! Но вот проблема - исправлял пример simpleCUFFT - все работает, а если создаешь новый проект, то существующий код уже не работает, пишет что нет доступа к функциям CUFFT.

Да, все правильно... там

Да, все правильно... там жестко все завязано на пути
мне пришлось самому допиливать)
Во первых файлик кастом билд рулез...
я его скопировал из папки с примерами нвидии в
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\VCProjectDefaults
а точнее сделал даже два Cuda32.rules и Cuda64.rules
в той папке лежат правила компилирования асма... поэтому туда скинул
c 64 разрядной версией я не возился, поэтому использую только 32...

в этом файле есть строка, содержащая относительные пути, которые ранее считались относительно файла проекта.... я их изменил

Простите за кашу... диплом перед носом, расписывать подробно некогда...
ищите то, что начинается с "CommandLine="echo [CompilerPath] [Keep] [CInterleavedPTX] "
в итоге строка получилась такая... просто заменил пути что-то вроде "./../../shared/inc" и "./../../common/inc" на полные

CommandLine="echo [CompilerPath] [Keep] [CInterleavedPTX] [ExtraNvccOptions] -ccbin "$(VCInstallDir)bin" [Emulation] [Debug] [FastMath] [Defines] -I"$(CUDA_INC_PATH)" -I"./" -I"C:/ProgramData/NVIDIA Corporation/NVIDIA GPU Computing SDK/C/common/inc" -I"C:/ProgramData/NVIDIA Corporation/NVIDIA GPU Computing SDK/shared/inc" [Include] -Xcompiler "/EHsc [Warning] /nologo [Optimization] /Zi [RuntimeChecks] [Runtime] [TypeInfo] [ExtraCppOptions]" [MaxRegCount] [PtxAsOptionV] [Arch1] [Arch2] [Arch3] [NvccCompilation] "$(InputPath)"
[CompilerPath] [Keep] [CInterleavedPTX] [ExtraNvccOptions] [Arch1] [Arch2] [Arch3] -ccbin "$(VCInstallDir)bin" [Emulation] [Debug] [FastMath] [Defines] -I"$(CUDA_INC_PATH)" -I"./" -I"C:/ProgramData/NVIDIA Corporation/NVIDIA GPU Computing SDK/C/common/inc" -I"C:/ProgramData/NVIDIA Corporation/NVIDIA GPU Computing SDK/shared/inc" [Include] -Xcompiler "/EHsc [Warning] /nologo [Optimization] /Zi [RuntimeChecks] [Runtime] [TypeInfo] [ExtraCppOptions]" [Include] [MaxRegCount] [ptxasoptionv] [Arch1] [Arch2] [Arch3] [NvccCompilation] "$(InputPath)""

Далее в новом проекте правой кнопкой по нему... добавляем этот Custom Build Rules... и либы прописываем в обычном проекте
$(CUDA_LIB_PATH)/../lib
и указываем юзать cudart.lib cufft.lib

после этого у меня вроде все компилится, запускается... правда dll'ки куда кинул в WOW32 т.к. винда у меня седьмая 64-битная

в проекте используется еще и Qt... это вообще изначально кутешный проект, ну и еще некоторые либы...
все отлично дружит и собирается независимо от места расположения проекта

В парке прогуливается мужик с


В парке прогуливается мужик с маленьким сыном. На одной полянке они видят художника с мольбертом и палитрой в руках. Творец в экстазе: то подходит к холсту поближе, то отходит на несколько шагов, меняет кисти, смешивает краски...
Папаша наклоняется к сыну и говорит назидательно:
- Вот, смотри, сынок, как мучается человек без Полароида!

см. CMake:
CUDA_ADD_CUFFT_TO_TARGET( cuda_target )
-- Adds the cufft library to the target (can be any target). Handles whether
you are in emulation mode or not.

также есть готовые модули для QT.

Спасибо, но я уж разобрался,

Спасибо, но я уж разобрался, просто вписал библиотеку cufft.lib в свойсвах проекта и все заработало.

cufft

Смотрю на cufft32_30_14.dll - 12,5 Мегабайт
Почему она такая толстая? Неужто столько полезного кода там?
Хотелось бы посмотреть на исходники. Может как-то в меньший размер можно уложится.