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.
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.
Sie können einige OpenCL-Codebeispiele einschließlich FFT aus der SHOC-Benchmark-Suite herunterladen.
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.
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.
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.
Tags und Links fft opencl gpu gpgpu gpu-programming