Este exemplo contém uma implementação de alto desempenho da operação de multiplicação de matrizes fundamentais e demonstra otimizações que podem ser descritas no Open Computing Language (OpenCL™) para obter desempenho significativamente melhorado. Em um nível algorítmico, o kernel neste exemplo mostra como descrever o loop tiling para aproveitar o reaproveitamento de dados inerente à computação.
Este exemplo também demonstra como usar otimizações de compiladores em loop e estilo SIMD para aumentar facilmente o desempenho do kernel. Como parte do pacote de exemplo, os parâmetros para cada binário de dispositivo pré-compilado foram escolhidos para maximizar o desempenho nesta placa específica. Detalhes adicionais estão disponíveis no pacote de exemplo que mostra como é fácil parametrizar o kernel para atingir diferentes requisitos de desempenho e recursos.
Além disso, o aplicativo host é configurado para aproveitar automaticamente vários dispositivos OpenCL distribuindo a computação e alcançando ainda mais paralelismo.
Desempenho de multiplicação de matriz de pico
Características
- Implementação otimizada da operação fundamental
- Buffer de memória local
- Otimizações do compilador (desenrolização de loop, num_simd_work_items atributo)
- Otimizações de ponto flutuante
- Execução de vários dispositivos
Downloads
O exemplo de projeto fornece código fonte para o dispositivo OpenCL (.cl) e para o aplicativo host. Para compilar o aplicativo host, o pacote Linux inclui um Makefile e o pacote windows inclui um projeto do 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 v17.1 ou mais recente
- Intel FPGA SDK para OpenCL™ v17.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.