OpenCL FFT lib для графических процессоров? - PullRequest
8 голосов
/ 19 ноября 2010

Существует ли какая-либо общая библиотека FFT для работы на GPU с использованием OpenCL?Насколько мне известно, пример кода Apple для PowerFT двух степеней OpenCL - единственный доступный такой код?

Существует ли какая-либо такая библиотека для преобразований без степеней двух?Если нет, то насколько легко или сложно изменить образец Apple OpenCL?

Я смотрю на приложения для обработки изображений с преобразованием без степеней двух, и мне придется сделать целую кучуБПФ, пакетный БПФ.

Ответы [ 7 ]

3 голосов
/ 07 января 2014

Попробуйте clFFT, разработанный AMD. Он предназначен для видеокарт AMD, но должен работать и на GPU nVidia. Он может преобразовывать массивы с основанием 2, 3 и 5 (и комбинации там выключены)

https://github.com/clMathLibraries/clFFT

Доступны привязки Python

https://github.com/geggo/gpyfft

2 голосов
/ 20 сентября 2011

Нулевое заполнение может использоваться для подбора данных произвольной длины для алгоритма FFT со степенью двойки.Подумайте, подходит ли это вашему приложению.Увеличение количества выборок уменьшает «размер шага» в выходной области, что означает более высокое выходное разрешение.

2 голосов
/ 06 декабря 2010

Мне известна библиотека OpenCL FFT, которая в настоящее время находится в стадии разработки, но в первом выпуске они не планируют иметь размеры преобразования не в степени двух.

Можете ли вы предоставить любую информацию оваше приложение?Это может помочь повысить приоритет этой функции, если ее могут использовать многие люди.

2 голосов
/ 19 ноября 2010

Некоторые примеры кода OpenCL, включая FFT, можно загрузить из набора тестов SHOC .

1 голос
/ 21 ноября 2013

VexCL обеспечивает реализацию FFT для OpenCL, которая принимает произвольные векторные выражения в качестве входных данных, позволяет выполнять многомерное преобразование (любого числа измерений) и поддерживает векторы произвольного размера. Вот ссылка на соответствующую часть README.

1 голос
/ 20 апреля 2011

OpenMM (https://simtk.org/home/openmm) содержит 3D-БПФ для OpenCL. Он может не работать для вас напрямую, поскольку предназначен для конкретного случая: 3D-БПФ, где каждое измерение достаточно мало для хранения в локальной памяти (например, сетка 100x100x100). Но он поддерживает размеры не степени двух (основание 2, 3, 4 и 5), так что вы можете его адаптировать.

0 голосов
/ 08 июня 2011

Взгляните на библиотеку APPML-FFT . Хотя это все еще для силы двух преобразований.

...