Solicitar información
 Duración 28 horas

Temario del curso

Introducción

  • ¿Qué es OpenCL?
  • OpenCL vs CUDA vs SYCL
  • Vista general de las funciones y la arquitectura de OpenCL
  • Configuración del entorno de desarrollo

Primeros pasos

  • Creación de un nuevo proyecto de OpenCL utilizando Visual Studio Code
  • Exploración de la estructura del proyecto y los archivos
  • Compilación y ejecución del programa
  • Muestra de la salida utilizando printf y fprintf

API de OpenCL

  • Comprensión del papel de la API de OpenCL en el programa de host
  • Uso de la API de OpenCL para consultar la información y las capacidades del dispositivo
  • Uso de la API de OpenCL para crear contextos, colas de comandos, búferes, núcleos y eventos
  • Uso de la API de OpenCL para encolar comandos, como leer, escribir, copiar, mapear, desmapear, ejecutar y esperar
  • Uso de la API de OpenCL para manejar errores y excepciones

OpenCL C

  • Comprensión del papel de OpenCL C en el programa de dispositivo
  • Uso de OpenCL C para escribir núcleos que se ejecutan en el dispositivo y manipulan datos
  • Uso de tipos de datos, calificadores, operadores y expresiones de OpenCL C
  • Uso de funciones integradas de OpenCL C, como matemáticas, geométricas, relacionales, etc.
  • Uso de extensiones y bibliotecas de OpenCL C, como atomic, image, cl_khr_fp16, etc.

Modelo de memoria de OpenCL

  • Comprensión de la diferencia entre los modelos de memoria de host y dispositivo
  • Uso de espacios de memoria de OpenCL, como global, local, constante y privado
  • Uso de objetos de memoria de OpenCL, como búferes, imágenes y tuberías
  • Uso de modos de acceso a memoria de OpenCL, como solo lectura, solo escritura, lectura-escritura, etc.
  • Uso del modelo de consistencia de memoria de OpenCL y mecanismos de sincronización

Modelo de ejecución de OpenCL

  • Comprensión de la diferencia entre los modelos de ejecución de host y dispositivo
  • Uso de elementos de trabajo, grupos de trabajo y rangos ND de OpenCL para definir la paralelización
  • Uso de funciones de elementos de trabajo de OpenCL, como get_global_id, get_local_id, get_group_id, etc.
  • Uso de funciones de grupo de trabajo de OpenCL, como barrier, work_group_reduce, work_group_scan, etc.
  • Uso de funciones de dispositivo de OpenCL, como get_num_groups, get_global_size, get_local_size, etc.

Depuración

  • Comprensión de los errores y fallos comunes en programas de OpenCL
  • Uso del depurador de Visual Studio Code para inspeccionar variables, puntos de interrupción, pila de llamadas, etc.
  • Uso de CodeXL para depurar y analizar programas de OpenCL en dispositivos AMD
  • Uso de Intel VTune para depurar y analizar programas de OpenCL en dispositivos Intel
  • Uso de NVIDIA Nsight para depurar y analizar programas de OpenCL en dispositivos NVIDIA

Optimización

  • Comprensión de los factores que afectan el rendimiento de los programas de OpenCL
  • Uso de tipos de datos vectoriales y técnicas de vectorización de OpenCL para mejorar el rendimiento aritmético
  • Uso de técnicas de desenrollado de bucles y mosaicos de bucles de OpenCL para reducir la sobrecarga de control e incrementar la localidad
  • Uso de memoria local y funciones de memoria local de OpenCL para optimizar los accesos a memoria y la banda ancha
  • Uso de perfilado y herramientas de perfilado de OpenCL para medir y mejorar el tiempo de ejecución y la utilización de recursos

Requerimientos

  • Comprensión del lenguaje C/C++ y de los conceptos de programación paralela
  • Conocimientos básicos de la arquitectura de computadoras y la jerarquía de memoria
  • Experiencia con herramientas de línea de comandos y editores de código

Público objetivo

  • Desarrolladores que deseen aprender a utilizar OpenCL para programar dispositivos heterogéneos y aprovechar su paralelismo
  • Desarrolladores que deseen escribir código portable y escalable que pueda ejecutarse en diferentes plataformas y dispositivos
  • Programadores que deseen explorar los aspectos a bajo nivel de la programación heterogénea y optimizar el rendimiento de su código

Formación Corporativa a Medida

Soluciones de formación diseñadas exclusivamente para empresas.

  • Contenido personalizado: Adaptamos el temario y los ejercicios prácticos a los objetivos y necesidades reales del proyecto.
  • Calendario flexible: Fechas y horarios adaptados a la agenda de su equipo.
  • Modalidad: Online (en directo), In-company (en sus oficinas) o Híbrida.
Inversión

Precio por grupo privado (formación online) desde 5800 € + IVA*

Contáctenos para obtener un presupuesto exacto y conocer nuestras promociones actuales

Próximos cursos

Categorías Relacionadas