O exemplo a seguir demonstra uma implementação do Open Computing Language (OpenCL™) ™ de um algoritmo de preços de opções asiáticas. Uma opção asiática é uma instrução financeira cujo preço depende do caminho. O pagamento de tal opção depende do preço médio sobre um número de pontos amostrados desde o início até o momento do vencimento. Este exemplo considera especificamente os preços das opções asiáticas aritméticas.
Por meio do uso de vários kernels e da extensão de fornecedores de canais da Intel, este exemplo mostra como implementar de forma eficiente uma simulação de Monte Carlo para preço de opções asiáticas. No centro da computação está um kernel que implementa o modelo Black-Scholes. Dois outros kernels implementam um gerador de números aleatórios Mersenne Twister, que é usado para fornecer números aleatórios ao kernel Black-Scholes usando canais como mecanismo de comunicação. Por fim, a saída do kernel Black-Scholes é agregada por outro kernel para produzir o valor total de pagamento. Uma explicação detalhada pode ser encontrada no código fonte no pacote de exemplo de projeto.
Este exemplo também suporta execução simultânea em vários dispositivos OpenCL. Cada dispositivo é dedicado a precificação de uma opção asiática com um conjunto diferente de parâmetros, demonstrando uma carga paralela escalável de muitos cálculos de preços de opções.
Escalonamento de desempenho com vários dispositivos OpenCL
Placa OpenCL |
Um dispositivo |
Dois dispositivos |
---|---|---|
12 bilhões de simulações/s |
24 bilhões de simulações/s |
Características
- Extensão do fornecedor de canais
- Ponto flutuante de precisão dupla
- Execução de vários dispositivos
- Vários kernels, incluindo kernels de item de trabalho único
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:
- pacote linux v17.1 x64 (.tar.gz)
- pacote v17.1 x64 windows (.zip)
- Preço de Monte Carlo das opções asiáticas em FPGAs usando OpenCL (PDF)
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™ v16.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.