Ejemplo de diseño de operación vectorial de varios subprocesos

Recomendado para:

  • Dispositivo: Desconocido

  • Quartus®: v16.1

author-image

Por

Este diseño de ejemplo ejecuta dos instancias de una clase en dos subprocesos separados. Cada instancia utiliza un kernel diferente: La primera instancia ejecuta un kernel adicional de vector para realizar: C = A + B, donde A, B y C son vectores de N elementos. La segunda instancia ejecuta un kernel de multiplicación vectorial de miembro para realizar: C = A * B (hacia el miembro). Los núcleos se mantienen de forma intencionalmente simples y no están optimizados.

Dado que el dispositivo no se puede programar para utilizar dos programas separados simultáneamente, ambas instancias del problema comparten el mismo programa OpenCL™ (por lo tanto se ejecuta en el mismo contexto). Sin embargo, como sucede en este ejemplo, los dos subprocesos pueden tener colas de comandos separadas. Para mayor simplicidad, los dos subprocesos se ejecutan en dos instancias del mismo código, con diferentes argumentos, pero generalmente pueden ejecutar dos clases separadas.

Además de demostrar la interfaz de programación de aplicaciones (API) básica de OpenCL, este ejemplo admite la partición del problema en varios dispositivos OpenCL, si está disponible. Si hay dispositivos M disponibles, el problema se divide de modo que cada dispositivo funcione en puntos N/M. El programa host da por sentado que todos los dispositivos son del mismo tipo (es decir, se puede utilizar el mismo binario, pero el código se puede generalizar para admitir diferentes tipos de dispositivos fácilmente).

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 windows* incluye un proyecto de Microsoft* Visual Studio 2010.

Se proporcionan las siguientes descargas para este ejemplo:

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 descargar las herramientas de diseño 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.

El contenido de esta página es una combinación de la traducción humana y automática del contenido original en inglés. Este contenido se ofrece únicamente para su comodidad como información general y no debe considerarse completa o precisa. Si hay alguna contradicción entre la versión en inglés de esta página y la traducción, prevalecerá la versión en inglés. Consulte la versión en inglés de esta página.