Gracias por enviar su consulta! Uno de los miembros de nuestro equipo se pondrá en contacto con usted en breve.
Gracias por enviar su reserva! Uno de los miembros de nuestro equipo se pondrá en contacto con usted en breve.
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.
Precio por grupo privado (formación online) desde 5800 € + IVA*
Contáctenos para obtener un presupuesto exacto y conocer nuestras promociones actuales