Расчет быстрого преобразования Фурье на графическом процессоре с использованием технологии Nvidia CUDA
Назначение: Расчет прямого и обратного преобразования Фурье.
Область применения: Цифровая голография, оптическая физика.
Используемый алгоритм: Алгоритм преобразования Фурье методом Кули-Тьюки (Cooley-Tukey). Алгоритм Кули-Тьюки позволяет значительно сократить количество операций для двумерного дискретного преобразования Фурье [1]. Распараллеливание происходит на платформе CUDA, в которой выполняется элементарная операция Алгоритма Кули-Тьюки, так называемая «бабочка» над элементами массива.
1. Блейхут Р. Быстрые алгоритмы цифровой обработки сигналов: Пер. с англ.—М.: Мир, 1989.—448 с.
Используемые сокращения: FFT - Fast Fourier Transform (быстрое преобразование Фурье), iFFT - Inverse Fast Fourier Transform (обратное быстрое преобразование Фурье)
Программа выполняет следующие функции:
- Загрузка изображения формата jpg.
- Преобразование изображение в массив комплексных чисел.
- Расчет прямого преобразования Фурье методом Кули-Тьюки (по нажатию на кнопку FFT)
- Расчет обратного преобразования Фурье методом Кули-Тьюки (по нажатию на кнопку iFFT)
Работа с программой: в приложенном архиве располагается программа для OC Windows в виде исполняемого файла (папка redist) и в виде исходного кода (папка src). Для запуска программы необходимо запустить файл GPU_FFT.exe (для примера приложено изображение 512.jpg). На вход подается изображение, из него формируется комплексный массив данных. Данный массив подается на графическую видеокарту, в которой производится расчет преобразования Фурье.
Функциональные возможности:
- Расчет прямого и обратного преобразования Фурье методом Кули – Тьюки.
- Запись получившихся преобразований в файл. Вывод информации о видеокарте.
- Обработка изображений не более чем 8096х8096 пикселей.
Инструментальные средства создания: Microsoft Visual Studio 2013, CUDA Toolkit 7.5.
Общие:
1) OC Windows 7 и выше
2) Оперативная память не менее 2ГБ
Для запуска исполняемого файла:
1) Visual C++ Redistributable for Visual Studio 2013 (https://www.microsoft.com/ru-RU/download/details.aspx?id=40784)
2) CUDA Toolkit 7.5 (https://developer.nvidia.com/cuda-downloads)
Для компиляции исходного кода:
1) Microsoft Visual Studio 2013
2) CUDA Toolkit 7.5
Вложение | Размер |
---|---|
gpu_fft.rar | 134.63 КБ |