Este ejemplo es un ejemplo introductorio que utiliza un kernel de Open Computing Language (OpenCL) para calcular la adición de dos vectores de N-element. El resultado se verifica en comparación con una referencia de oro computada en la CPU del host.
Además de demostrar la funcionalidad básica de la interfaz de programación de aplicaciones OpenCL (API), este ejemplo muestra cómo dividir un problema de gran tamaño en varios dispositivos OpenCL. Si hay dispositivos M disponibles, el programa de host divide el problema de modo que cada dispositivo compute los resultados de los elementos N/M.
Funciones
- API básica de OpenCL
- Partición de varios dispositivos
- Definición de perfiles de eventos y eventos de OpenCL
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:
- Paquete linux v17.1 x64 (.lodo.gz)
- Paquete de Windows v17.1 x64 (.zip)
- paquete v17.1 Arm32 Linux (.lodo.gz)
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 compilar con la arquitectura arm32, también obtenga SoC EDS v17.0 o posterior.
- Para Windows, necesitará gmake.
- El proyecto VisualIndex no se puede compilar en arm32.
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.