OpenCL™ FFT de transformación rápida de Fourier (1D) fuera del chip

Recomendado para:

  • Dispositivo: Desconocido

  • Quartus®: v17.1

author-image

Por

Este análisis de desempeño demuestra la implementación ™ OpenCL de una transformación rápida de Fourier (1D FFT) en 1D en Intel® FPGAs. El análisis de desempeño puede procesar hasta 16 millones de valores de punto flotante complejos de una sola precisión y admite el cambio dinámico del tamaño de los datos.

El algoritmo utilizado para procesar conjuntos de datos de gran tamaño tiene seis etapas. Por ejemplo, supongamos que queremos procesar 1 millón de puntos:

  • Enlace de puntos de 1M como matriz 1K x 1K, léelo desde la memoria externa y pruébalo sobre la marcha.
  • Ejecute 1K 1D FFT en todas las filas (de matriz predefinida).
  • Multiplique los valores resultantes por factores de ajuste de multiplicación.
  • Rescriba la matriz y escriba en búfer temporal en la memoria externa.
  • Ejecute 1K 1D FFT en todas las filas.
  • Rescriba la matriz y escriba la salida a la memoria externa.

Todo el sistema consta de tres núcleos conectados por canales. El host coloca el conjunto de tres núcleos dos veces para realizar la computación completa. La primera en codificación realiza los pasos 1-4 anteriores, el segundo en codifica los pasos 5-6. Este es, esencialmente, un núcleo FFT 2D con transposiciones adicionales y multiplicación de twi apta.

El código se puede configurar fácilmente para admitir diferentes tamaños de FFT, así como diferentes requisitos de desempeño.

Desempeño de FFT

El desempeño del núcleo depende de la cantidad de puntos procesados en paralelo, el diseño de datos utilizado y el número y la velocidad de la memoria externa. Las siguientes mediciones se realizaron en BittWare S5-PCIe-HQ D8 con dos DDR3-1600s. Las mediciones se realizaron en FFT de punto de 1 M para 8 puntos en paralelo y 4 M FFT para 4 puntos en paralelo.

El MSPS es "millones de muestras por segundo".

Funciones

  • Kernels únicos para elementos de trabajo
  • Canales de kernel
  • Transosición optimizada de matriz

Descargas

El ejemplo de diseño proporciona código fuente para el dispositivo OpenCL (.cl) y para la aplicación host. Para la compilación de la aplicación host, el paquete Linux* incluye un archivo Make y el paquete de Windows incluye un proyecto de Microsoft Visual Studio 2010.

Se proporcionan las siguientes descargas para este ejemplo:

El uso de este diseño se rige por, y está sujeto a, los términos y condiciones del contrato de licencia de diseño de referencia de hardware.

Requisitos de software y hardware

Este ejemplo de diseño requiere las siguientes herramientas:

  • Intel® FPGA software v17.1 o posterior
  • Intel FPGA SDK para OpenCL v17.1 o posterior
  • En Linux: GNU Make y gcc
  • En Windows: Microsoft Visual Studio 2010

Para descargar las herramientas de diseño de Intel, visite la página de descarga de OpenCL. Solo el sistema operativo Linux es compatible con este ejemplo de diseño

OpenCL y el logotipo de OpenCL son marcas comerciales de Apple Inc. utilizadas con permiso de Khronos.

* El producto se basa en una especificación de Khronos publicada y ha superado el proceso de prueba de conformidad de Khronos. El estado de conformidad actual se encuentra en www.khronos.org/conformance.

El contenido de esta página es una combinación de la traducción humana y automática del contenido original en inglés. Este contenido se ofrece únicamente para su comodidad como información general y no debe considerarse completa o precisa. Si hay alguna contradicción entre la versión en inglés de esta página y la traducción, prevalecerá la versión en inglés. Consulte la versión en inglés de esta página.