Este exemplo demonstra a implementação de uma linguagem de computação aberta (OpenCL™) de uma transformação fourier rápida (FFT). O exemplo processa vários conjuntos de valores complexos de ponto flutuante de precisão única de 4096. Os dados de entrada são solicitados e os dados de saída estão em ordem invertida de bits.
Para fins de demonstração, este exemplo contém um único mecanismo radix-4 FFT capaz de processar oito pontos de dados por ciclo de clock. Dependendo da aplicação final e dos recursos FPGA disponíveis, mais instâncias deste mecanismo podem ser instanciadas para um desempenho mais alto, sujeito à largura de banda de memória disponível na placa OpenCL.
O mecanismo FFT é implementado como um único kernel de item de trabalho para implementar com eficiência um padrão de design de janela deslizante, que é usado para representar elementos de atraso. Detalhes adicionais estão disponíveis no pacote de exemplo.
Desempenho FFT
Características
- Padrão de projeto de janela deslizante
- Kernel de item de trabalho único
Downloads
O exemplo de projeto fornece código fonte para o dispositivo OpenCL (.cl), bem como para o aplicativo host. Para compilar o aplicativo host, o pacote Linux* inclui um makefile e o pacote Windows* inclui um projeto microsoft* Visual Studio 2010.
Os seguintes downloads são fornecidos para este exemplo:
O uso deste design é regido pelos termos e condições do contrato de licença de design de referência de hardware.
Requisitos de software e hardware
Este exemplo de projeto requer as seguintes ferramentas:
- Intel® FPGA software 17.1 ou mais recente
- Intel FPGA SDK para OpenCL 17.1 ou mais recente
- No Linux: GNU Make e gcc
- No Windows: Microsoft Visual Studio 2010
Para baixar as ferramentas de design da Intel, acesse a página de downloads do OpenCL. Os requisitos para o sistema operacional subjacente são os mesmos do SDK Intel FPGA para OpenCL.
OpenCL e o logotipo OpenCL são marcas comerciais da Apple Inc. usadas com permissão pela Khronos.
* O produto é baseado em uma especificação Khronos publicada e passou no Processo de teste de conformidade Khronos. O status de conformidade atual pode ser encontrado em www.khronos.org/conformance.