Frage

Gibt es eine allgemeine FFT lib auf der GPU für die Ausführung von OpenCL verwendet? Soweit mein Wissen geht, Code Apple-Probe für die Leistung von zwei Kindern OpenCL FFT ist der einzige Code zur Verfügung?

Ist eine solche Bibliothek gibt es für Nicht-Power-of-zwei Größen verwandeln? Wenn nicht, wie einfach oder schwierig ist es, das Apple OpenCL Probe zu ändern?

Ich bin auf der Suche Bildanwendungen Verarbeitung mit nicht-Power-of-zwei Größen verwandeln, und ich werde eine ganze Reihe von FFTs zu tun haben, einen dosierten FFT.

War es hilfreich?

Lösung

Ich weiß von einer OpenCL FFT-Bibliothek, die derzeit in der Entwicklung ist, aber sie nicht plant, mit nicht-Power-of-zwei Größen in der ersten Veröffentlichung zu verwandeln.

können Sie alle Informationen über Ihre Anwendung zur Verfügung stellen? Es könnte helfen, die Priorität für diese Funktion erhöht zu bekommen, wenn es etwas, was viele Menschen nutzen kann.

Andere Tipps

Versuchen clFFT von AMD entwickelt. Es ist bei AMD-Grafikkarten soll, soll aber auch auf nVidia GPU arbeiten. Es kann Arrays mit einem Radix von 2, 3 und 5 (und Kombinationen dort aus) zu transformieren.

https://github.com/clMathLibraries/clFFT

Es gibt Python-Anbindung verfügbar

https://github.com/geggo/gpyfft

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

Null-padding kann verwendet werden, um beliebige Längendaten für eine Potenz von zwei FFT-Algorithmus passen zu machen. Überlegen Sie, ob, dass Ihre Anwendung passen würde. Eine Erhöhung der Anzahl der Proben verringert das „Schrittweite“ in der Ausgabedomäne, die höhere Ausgangsauflösung bedeutet.

OpenMM (https://simtk.org/home/openmm) enthält eine 3D-FFT für OpenCL. Es kann nicht für Sie arbeiten direkt, da es für einen konkreten Fall angefertigt: 3D-FFTs wobei jede Dimension klein genug ist, im lokalen Speicher gespeichert wird (zum Beispiel eines 100x100x100 Gitter). Aber es unterstützt nicht-Power-of-zwei Größen (radix 2, 3, 4 und 5), so könnten Sie in der Lage sein, sich anzupassen.

VexCL stellt eine Implementierung von FFT für die OpenCL beliebigen Vektor Ausdrücke als Eingabe akzeptiert, erlaubt es, auszuführen multidimensional Transformationen (von einer beliebigen Anzahl von Dimensionen) und unterstützt beliebig großen Vektoren. Hier ist ein Link auf den betreffenden Teil seiner Readme.

Hier finden Sie aktuelle APPML-FFT Bibliothek. Obwohl seine noch für Zweierpotenz-Transformationen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top