OpenCL™ Fast Fourier Transform FFT (1D) Off-Chip

Empfohlen für:

  • Gerät: Nicht bekannt

  • Quartus®: v17.1

author-image

Von

Dieser Benchmark zeigt eine OpenCL™ Implementierung einer 1D schnellen Fourier-Transformation (1D FFT) auf Intel® FPGAs. Der Benchmark kann bis zu 16 Millionen komplexe Gleitkommawerte mit einzelpräziser Genauigkeit verarbeiten und unterstützt dynamisch wechselnde Datengröße.

Der Algorithmus, der zur Verarbeitung solcher großen Datensätze verwendet wird, hat sechs Stufen. Angenommen, wir möchten 1 Million Punkte verarbeiten:

  • Wenn Sie 1-M-Punkte als 1K x 1K-Matrix behandeln, lesen Sie sie aus dem externen Speicher und transponieren Sie sie im Flug.
  • Führen Sie 1K 1D FFT auf allen Reihen aus (der transponierten Matrix).
  • Multipliziert die resultierenden Werte mit Anpassungs-Twiddle-Faktoren.
  • Transponieren Sie die Matrix und schreiben Sie in einen temporären Puffer im externen Speicher.
  • Führen Sie 1K 1D FFT in allen Reihen aus.
  • Transponieren Sie die Matrix und schreiben Sie die Ausgabe in den externen Speicher.

Das gesamte System besteht aus drei Kernels, die über Kanäle verbunden sind. Der Satz von drei Kerneln wird vom Host zweimal geschwenkt, um die volle Berechnung zu erledigen. Die erste Folge führt die Schritte 1-4 oben aus, die zweiteQueue die Schritte 5-6. Dies ist im Wesentlichen ein 2D-FFT-Kern mit zusätzlicher Übertragung und einer Twiddle-Multiplikation.

Der Code lässt sich einfach parameterisieren, um unterschiedliche FFT-Größen sowie unterschiedliche Leistungsanforderungen zu unterstützen.

FFT-Leistung

Die Leistung des Kerns hängt von der Anzahl der Parallelverarbeitungspunkte, dem verwendeten Datenlayout und der Anzahl und der Geschwindigkeit des externen Speichers ab. Die messungen unten wurden mit BittWare S5-PCIe-HQ D8 mit zwei DDR3-1600s durchgeführt. Die Messungen wurden mit 1 M Punkt FFT für 8 Punkte parallel und 4M FFT für 4 Punkte parallel durchgeführt.

MSPS bedeutet "Millionen von Proben pro Sekunde".

Funktionen

  • Einzel-Work-Item-Kernel
  • Kernel-Kanäle
  • Optimierte Matrixoptimierung

Downloads

Das Design-Beispiel liefert den Quellcode für das OpenCL-Gerät (.cl) und die Host-Anwendung. Zum Kompilieren der Host-Anwendung enthält das Linux* Paket eine Makefile und das Windows-Paket enthält ein Microsoft Visual Studio 2010-Projekt.

Die folgenden Downloads werden für dieses Beispiel bereitgestellt:

Die Verwendung dieses Designs unterliegt den Bedingungen der Hardware-Referenzdesignlizenzvereinbarung.

Software- und Hardware-Anforderungen

Dieses Designbeispiel erfordert die folgenden Tools:

  • Intel® FPGA Software v17.1 oder neuer
  • Intel FPGA SDK für OpenCL v17.1 oder neuer
  • Unter Linux: GNU Make und gcc
  • Unter Windows: Microsoft Visual Studio 2010

Um die Intel Design-Tools herunterzuladen, besuchen Sie die OpenCL-Download-Seite. Dieses Designbeispiel unterstützt nur das Linux Betriebssystem

OpenCL und das OpenCL-Logo sind Marken von Apple Inc., die mit Genehmigung von Khronos verwendet werden.

* Das Produkt basiert auf einer veröffentlichten Khronos-Spezifikation und hat den Khronos-Konformitätstest bestanden. Der aktuelle Konformitätsstatus finden Sie unter www.khronos.org/conformance.

Der Inhalt dieser Seite ist eine Kombination aus menschlicher und computerbasierter Übersetzung des originalen, englischsprachigen Inhalts. Dieser Inhalt wird zum besseren Verständnis und nur zur allgemeinen Information bereitgestellt und sollte nicht als vollständig oder fehlerfrei betrachtet werden. Sollte eine Diskrepanz zwischen der englischsprachigen Version dieser Seite und der Übersetzung auftreten, gilt die englische Version. Englische Version dieser Seite anzeigen.