OpenCL para Altera FPGAs

3

Recientemente he estado bastante interesado en OpenCL de Khronos Group y ya he adquirido algunas experiencias con el idioma. Me emociona saber que OpenCL ahora funciona con Altera FPGA. enlace

Para que los principiantes exploren la idea de la ejecución de OpenCL en Altera, ¿pueden sugerir algún kit de herramientas de Altera adecuado? Además, el tutorial dado por Altera no es tan claro. Si has probado esto, ¿puedes darme un breve tutorial?

¡Gracias por la ayuda!

    
pregunta Josh Vo

2 respuestas

4

He estado jugando con eso, y es una tecnología interesante. Su kernel OpenCL se crea una instancia como hardware, en un "arenero" rodeado de PCIe y memoria. Un núcleo óptimo para su sabor de OpenCL está fuertemente segmentado, porque ahí es donde brillan los FPGA. Hay opciones para la vectorización, así como la replicación, el desenrollado de bucles, etc. también.

Desventajas: Muy pocas placas de desarrollo de FPGA son compatibles con OpenCL en este momento, y tienden a ser bastante caras (creo que $ 5k). La compilación lleva muchas horas (¡eh, es un FPGA!) Y necesitas una máquina GRANDE en términos de RAM. Recomiendan un mínimo de 24 GB, pero para cualquier cosa que sea más que hola, mundo \ n, me aseguraría de que tenga como mínimo 64 GB. No estoy seguro de cuánto son las licencias, pero mientras habla de partes de Stratix V y una licencia separada para el OpenCL SDK, ciertamente no es gratis.

La forma en que funciona todo esto es que el compilador (que está basado en LLVM como la mayoría de los otros compiladores OpenCL) compila su kernel OpenCL en un LLVM IR (Representación Intermedia), luego una herramienta Altera genera Verilog a partir de eso. La creación de instancias de Verilog del núcleo está incorporada en un sistema Qsys para las otras interfaces (dependiente de la placa, principalmente PCIe y RAM, relojes y reinicios, basados en componentes Avalon). Luego, todo esto se muele a través de la cadena de herramientas Quartus para crear un archivo de bits, que luego se envuelve en un archivo AOCX para un fácil consumo por parte de un host OpenCL. Esto llevará horas.

Puede ejecutar todo esto sin saber nada acerca de los FPGA, lo cual es bastante bueno. Hacer que algo funcione es fácil, pero ¿qué tan fácil es construir algo que funcione bien? No sé, todavía estoy aprendiendo. Hay una interesante guía de optimización disponible aquí .

En general, la tecnología definitivamente tiene un gran potencial, pero aún se siente un tanto sangrante (como en Quartus 13.1).

    
respondido por el Jan Schiefer
1

Creo que para los principiantes, aocl comience y una guía de programación clásica es suficiente, además de la guía de optimización aocl @Jan sugirió.

    
respondido por el troore

Lea otras preguntas en las etiquetas