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.
Temario del curso
Introducción
- ¿Qué es OpenACC?
- OpenACC frente a OpenCL, CUDA y SYCL
- Descripción general de las funcionalidades y arquitectura de OpenACC
- Configuración del entorno de desarrollo
Primeros pasos
- Creación de un proyecto OpenACC en Visual Studio Code
- Análisis de la estructura y archivos del proyecto
- Compilación y ejecución del programa
- Visualización de resultados mediante printf y fprintf
Directivas y cláusulas de OpenACC
- Conceptos básicos sobre directivas y cláusulas en OpenACC
- Uso de las directivas paralelas para definir regiones paralelas
- Aplicación de las directivas kernel para controlar el paralelismo a nivel del compilador
- Utilización de las directivas de bucle para paralelizar iteraciones
- Manejo del movimiento de datos mediante las directivas de datos
- Sincronización de datos con ayuda de las directivas update
- Optimización en el reuso de datos mediante las directivas de caché
- Definición de funciones específicas para dispositivos gracias a las directivas routine
- Sincronización temporal de eventos utilizando las directivas wait
API de OpenACC
- Funcionamiento y propósito principal de la API de OpenACC
- Consulta sobre información técnica y capacidades disponibles en el dispositivo
- Selección del tipo y número de dispositivo que se empleará
- Manejo adecuado de errores y excepciones generadas durante la ejecución
- Creación y sincronización de eventos entre procesos
Bibliotecas e interoperabilidad en OpenACC
- Características y objetivos de las bibliotecas asociadas a OpenACC
- Uso de funciones matemáticas, generadoras de números aleatorios y operaciones complejas
- Integración con otros modelos de programación como CUDA, OpenMP o MPI
- Conexión con bibliotecas especializadas en GPU como cuBLAS o cuFFT
Herramientas para trabajar con OpenACC
- Principales utilidades disponibles para el desarrollo y depuración de código OpenACC
- Métodos de profiling y corrección de errores en programas paralelos
- Evaluación del rendimiento mediante herramientas como el compilador PGI, NVIDIA Nsight Systems o Allinea Forge
Optimización de aplicaciones con OpenACC
- Factores que influyen en la eficiencia general de los programas desarrollados con OpenACC
- Estrategias para mejorar la localidad de datos y reducir transferencias innecesarias
- Técnicas aplicables para optimizar el paralelismo a nivel de bucles y fusiones de operaciones
- Mejoras derivadas del uso eficiente del paralelismo en kernels y su combinación con otras instrucciones
- Uso adecuado de la vectorización y técnicas automáticas de ajuste para potenciar el rendimiento final
Resumen y pasos siguientes
Requerimientos
- Conocimientos básicos del lenguaje C/C++ o Fortran y de conceptos de programación paralela.
- Entendimiento general sobre la arquitectura de computadoras y la jerarquía de memoria.
- Experiencia en el uso de herramientas de línea de comandos y editores de código.
Público objetivo
- Desarrolladores que deseen aprender a utilizar OpenACC para programar dispositivos heterogéneos y optimizar su paralelismo.
- Programadores interesados en crear código portable y escalable que pueda ejecutarse en distintas plataformas.
- Profesionales de la programación que buscan explorar aspectos avanzados de la programación heterogénea y mejorar su productividad mediante optimizaciones.
28 Horas
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