2010-11-19 8 views
8

Есть ли общий доступ к FFT lib для работы на графическом процессоре с использованием OpenCL? Насколько я знаю, единственным примером такого кода является образец кода Apple для двухканального OpenCL FFT?OpenCL FFT lib для графических процессоров?

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

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

ответ

2

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

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

+0

Не могли бы вы поделиться какой библиотекой это? – rotoglup

+0

@rotoglup Мой комментарий выше имел в виду библиотеку AMD clAmdFft. Я участвовал в выпуске 1.0 уже несколько лет назад, что не поддерживало не-полномочия 2, но я вижу, что в последующих выпусках добавлено несколько других основных факторов. http://developer.amd.com/tools-and-sdks/heterogeneous-computing/amd-accelerated-parallel-processing-math-libraries/ –

2

Вы можете скачать образцы кода OpenCL, включая FFT, из SHOC benchmark suite.

+0

, но это только 1D FFTs, власть двое детей ..., но тем не менее очень полезно, спасибо – Neo

+0

приятно! Я сам кодировал одну из этих библиотек. Рад, что вы строите на плечах гигантов :) –

+0

любая удача до сих пор ?? .... – Neo

1

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

0

Посмотрите на библиотеку APPML-FFT. Хотя его все еще для власти двух трансформаций.

2

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

1

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

3

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

https://github.com/clMathLibraries/clFFT

Есть питон привязки доступны

https://github.com/geggo/gpyfft

+0

приятно, теперь он также поддерживает рексиксы 7, 11 и 13. – marcin

Смежные вопросы