OpenCL FFT lib für GPUs?

8

Gibt es eine allgemeine FFT-Lib, die mit OpenCL auf der GPU ausgeführt werden kann? Soweit ich weiß, ist der Apple Beispielcode für Power-of-Two OpenCL FFT der einzige verfügbare Code?

Existiert eine solche Bibliothek für Transformationsgrößen ohne Potenz von zwei? Wenn nicht, wie einfach oder schwierig ist es, das Apple OpenCL-Beispiel zu ändern?

Ich schaue mir Bildverarbeitungsanwendungen mit Transformationsgrößen an, die keine Zweierpotenz sind, und ich werde eine ganze Reihe von FFTs, eine Batch-FFT, machen müssen.

    
Neo 19.11.2010, 01:28
quelle

7 Antworten

2

Ich kenne eine OpenCL-FFT-Bibliothek, die gerade entwickelt wird, aber sie haben nicht vor, im ersten Release Transformationsgrößen zu haben, die nicht zwei Potenzgrößen haben.

Können Sie Informationen zu Ihrer Bewerbung bereitstellen? Es kann helfen, die Priorität für dieses Feature zu bekommen, wenn es eine Menge Leute benutzen kann.

    
Die in Sente 06.12.2010, 16:53
quelle
3

Probieren Sie die von AMD entwickelte clFFT aus. Es ist auf AMD-Grafikkarten ausgerichtet, sollte aber auch auf nVidia-GPUs funktionieren. Es kann Arrays mit einer Basis von 2, 3 und 5 (und Kombinationen davon) transformieren.

Ссылка

Es sind Python-Bindungen verfügbar

Ссылка

    
ABDreverhaven 07.01.2014 12:43
quelle
2

Sie können einige OpenCL-Codebeispiele einschließlich FFT aus der SHOC-Benchmark-Suite herunterladen.

    
shoc 19.11.2010 20:22
quelle
2

Null-Padding kann verwendet werden, um Daten beliebiger Länge für einen Zweierpotenz-FFT-Algorithmus anzupassen. Überlegen Sie, ob das zu Ihrer Anwendung passt. Durch Erhöhen der Anzahl der Abtastungen wird die "Schrittweite" in der Ausgangsdomäne verringert, was eine höhere Ausgangsauflösung bedeutet.

    
Vesa 19.09.2011 20:24
quelle
1

OpenMM (https://simtk.org/home/openmm) enthält eine 3D-FFT für OpenCL. Es funktioniert möglicherweise nicht direkt für Sie, da es für einen bestimmten Fall ausgelegt ist: 3D-FFTs, bei denen jede Dimension klein genug ist, um im lokalen Speicher gespeichert zu werden (z. B. ein 100x100x100-Raster). Aber es unterstützt nicht-Power-of-zwei Größen (Radix 2, 3, 4 und 5), so dass Sie möglicherweise in der Lage, es anzupassen.

    
peastman 20.04.2011 19:06
quelle
1

VexCL stellt eine Implementierung von FFT für OpenCL bereit, die beliebige Vektorausdrücke als Eingabe akzeptiert und es ermöglicht, mehrdimensionale Transformationen (von beliebigen) durchzuführen Anzahl der Dimensionen) und unterstützt Vektoren beliebiger Größe. Hier ist ein Link zu dem relevanten Teil seiner README.

    
ddemidov 21.11.2013 12:41
quelle
0

Sehen Sie sich die APPML-FFT Bibliothek an. Obwohl es noch für die Macht von zwei Transformationen ist.

    
Divij 07.06.2011 21:51
quelle