El siguiente ejemplo muestra una implementación de Open Computing Language (OpenCL™)™ de un algoritmo de precios de opciones de Asia. Una opción de Asia es una instrucción financiera cuyo precio depende de la ruta. La recompensa de tal opción depende del precio promedio en un número de puntos muestreados desde el momento de inicio hasta el momento de la madurez. Este ejemplo considera específicamente los precios de las opciones aritméticas de Asia.
Mediante el uso de múltiples núcleos y la extensión de proveedor de canales de Intel, este ejemplo muestra cómo implementar eficientemente una simulación de Monte Carlo para el precio de las opciones de Asia. El núcleo de la computación es un kernel que implementa el modelo Black-Scholes. Otros dos núcleos implementan un generador de números aleatorios Desencarado Mersenne, que se utiliza para suministrar números aleatorios al kernel Black-Scholes, utilizando canales como el mecanismo de comunicación. Por último, el resultado del kernel Black-Scholes se suma a otro kernel para producir el valor total de recompensa. Puede encontrar una explicación detallada en el código fuente en el paquete de ejemplo de diseño.
Este ejemplo también admite la ejecución simultánea en varios dispositivos OpenCL. Cada dispositivo se dedica a fijar los precios de una opción en Asia con un conjunto diferente de parámetros, lo que demuestra una descarga paralela escalable de muchos cálculos de precios de opciones.
Escalamiento del desempeño con varios dispositivos OpenCL
Placa OpenCL |
Un dispositivo |
Dos dispositivos |
---|---|---|
Simulaciones por 12 mil millones/s |
Simulaciones por 24 mil millones/s |
Funciones
- Canales de extensión de proveedor
- Punto flotante de doble precisión
- Ejecución de varios dispositivos
- Múltiples kernels, incluidos los kernels de elementos de trabajo únicos
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 makefile y el paquete de Windows incluye un proyecto de Microsoft Visual Studio 2010.
Se proporcionan las siguientes descargas para este ejemplo:
- Paquete linux v17.1 x64 (.lodo.gz)
- Paquete de Windows v17.1 x64 (.zip)
- Precios de opciones de Asia en Monte Carlo sobre FPGAs utilizando OpenCL (PDF)
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™ v16.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. Los requisitos para el sistema operativo subyacente son los mismos que los del SDK de Intel FPGA para OpenCL.
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.