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

Consigliato per:

  • Dispositivo: sconosciuto

  • Quarzo®: v17.1

author-image

di

Questo benchmark dimostra un'implementazione OpenCL™ di una trasformazione 1D fast Fourier (1D FFT) su Intel® FPGAs. Il benchmark può elaborare fino a 16 milioni di valori complessi in virgola mobile a precisione singola e supporta la modifica dinamica delle dimensioni dei dati.

L'algoritmo utilizzato per elaborare set di dati di grandi dimensioni ha sei fasi. Ad esempio, supponiamo di voler elaborare 1 milione di punti:

  • Trattando i punti 1M come matrice 1K x 1K, leggerlo dalla memoria esterna e trasporlo al volo.
  • Eseguire 1K 1D FFT su tutte le righe (di matrice trasposta).
  • Moltiplicare i valori risultanti per fattori di regolazione twiddle.
  • Trasponi la matrice e scrivi nel buffer temporaneo nella memoria esterna.
  • Eseguire 1K 1D FFT su tutte le righe.
  • Trasponi la matrice e scrivi l'output nella memoria esterna.

L'intero sistema è costituito da tre kernel collegati dai canali. L'insieme di tre kernel viene accodato due volte dall'host per eseguire il calcolo completo. La prima coda esegue i passaggi da 1 a 4 sopra, la seconda coda esegue i passaggi 5-6. Si tratta essenzialmente di un core FFT 2D con una trasposizione extra e una moltiplicazione twiddle.

Il codice è facilmente parametrizzato per supportare diverse dimensioni FFT e diversi requisiti di prestazioni.

Prestazioni FFT

Le prestazioni del core dipendono dal numero di punti elaborati in parallelo, dal layout dei dati utilizzato e dal numero e dalla velocità della memoria esterna. Le misurazioni seguenti sono state effettuate su BittWare S5-PCIe-HQ D8 con due DDR3-1600. Le misurazioni sono state effettuate su FFT a 1 punto per 8 punti in parallelo e 4 M FFT per 4 punti in parallelo.

MSPS è "milioni di campioni al secondo".

Caratteristiche

  • Kernel di elementi di lavoro singoli
  • Canali kernel
  • Trasposizione della matrice ottimizzata

Download

L'esempio di progettazione fornisce il codice sorgente per il dispositivo OpenCL (.cl) e l'applicazione host. Per la compilazione dell'applicazione host, il pacchetto Linux* include un makefile e il pacchetto di Windows include un progetto Microsoft Visual Studio 2010.

Per questo esempio vengono forniti i seguenti download:

L'utilizzo di questa progettazione è regolato e soggetto ai termini e condizioni del contratto di licenza di progettazione di riferimento hardware.

Requisiti software e hardware

Questo esempio di progettazione richiede i seguenti strumenti:

  • software Intel® FPGA v17.1 o versioni successive
  • SDK Intel FPGA per OpenCL v17.1 o versioni successive
  • Su Linux: GNU Make e gcc
  • In Windows: Microsoft Visual Studio 2010

Per scaricare gli strumenti di progettazione Intel, visitare la pagina di download OpenCL. Solo il sistema operativo Linux è supportato da questo esempio di progettazione

OpenCL e il logo OpenCL sono marchi di Apple Inc. utilizzati su autorizzazione da Khronos.

* Il prodotto si basa su una specifica Khronos pubblicata e ha superato il processo di test di conformità Khronos. Lo stato di conformità corrente può essere trovato in www.khronos.org/conformance.

Il contenuto di questa pagina è il risultato della combinazione tra la traduzione umana e quella automatica del contenuto originale in lingua inglese. Questo contenuto è fornito soltanto a titolo di informazione generale e non ha pretese di completezza o accuratezza. In presenza di contraddizioni tra la versione in lingua inglese di questa pagina e la sua traduzione, fa fede la versione inglese. Visualizza la versione in lingua inglese di questa pagina.