Solicitar información

Temario del curso

Introducción

  • ¿Qué es ROCm?
  • ¿En qué consiste HIP?
  • Diferencias clave entre ROCm, CUDA y OpenCL<\/li>
  • Resumen sobre características estructurales e innovaciones de ROCm e HIP
  • Configuración del ambiente necesario para programar.

Primeros pasos

  • Iniciación a la creación de proyectos en ROCm empleando Visual Studio Code.
  • Examen detallado de la estructura y los archivos que componen el proyecto.
  • Compilación, ejecución e inspección preliminar del código generado.
  • Diseño de salidas impresas mediante funciones como printf o fprintf.

Uso de la API de ROCm

  • Explicación precisa sobre el papel desempeñado por dicha API en los programas ejecutados desde el host.
  • Aprender a emplearla para conocer especificaciones técnicas y funcionalidades del hardware utilizado.
  • Gestión de asignaciones o liberaciones dinámicas en la memoria física del dispositivo gráfico.
  • Traslado eficiente de datos entre el procesador principal y la GPU.
  • Lanzamiento controlado de kernels y sincronización estricta entre múltiples hilos.
  • Resolución proactiva de errores y excepciones frecuentes que puedan aparecer durante el proceso.

HIP como Lenguaje Programático

  • Explicación acerca del rol fundamental que tiene HIP al definir código específico para ejecución en GPU.
  • Diseño e implementación de kernels utilizando sintaxis y comandos propios de este lenguaje.
  • Comprensión acerca de tipos, calificadores, operadores o expresiones típicas que emplean los programadores.
  • Aplicación fructífera de funciones integradas, variables y librerías nativas para facilitar la programación diaria.

Modelos de Memoria en ROCm e HIP

  • Diferenciación conceptual entre estructuras propias del host y aquellas exclusivas del dispositivo gráfico.
  • Selección adecuada de distintos espacios destinados a contener información, tales como el tipo global o compartido.
  • Manejo hábil de elementos estructurales como matrices, texturas u objetos complejos en memoria.
  • Uso inteligente de modos restrictivos de acceso (lectura o escritura) según la conveniencia del flujo informativo.
  • Gestión rigurosa de consistencia entre distintos segmentos de memoria y sus mecanismos coordinados de sincronización.

Dinámicas Ejecutivas en ROCm e HIP

  • Alineación clara entre lógicas operativas desarrolladas por el host frente a aquellas ejecutadas por la GPU.
  • Control minucioso sobre distribución y número de hilos, bloques y mallas para lograr mayor rendimiento.
  • Aplicación adecuada de valores especiales, como hipThreadIdx_x o hipBlockIdx_x, determinando el punto exacto donde se ejecuta cada unidad funcional.
  • Empleo correcto de instrucciones críticas para mantener la coherencia temporal, tales como __syncthreads o __threadfence_block.
  • Manejo avanzado de estructuras colectivas y agrupaciones cooperativas a través de herramientas específicas como hipGridDim_x o el mecanismo hipGridSync.

Depuración Eficaz

  • Identificación de fallos corrientes que pueden comprometer la estabilidad de programas desarrollados con ROCm e HIP.
  • Incorporación del depurador integrado en Visual Studio Code para revisar variables, puntos críticos y el flujo lógico mediante breakpoints.
  • Análisis exhaustivo por medio del Depurador de ROCm diseñado exclusivamente para GPUs AMD.
  • Evaluación objetiva utilizando el Perfilador de ROCm, evaluando tiempos de respuesta e insumos computacionales asociados.

Optimización Avanzada

  • Diagnóstico detallado sobre aspectos responsables de mejorar o disminuir el rendimiento en aplicaciones desarrolladas.
  • Aplicación de la agrupación inteligente entre operaciones para aumentar notablemente la capacidad de transmisión por vía de memoria.
  • Implementación de algoritmos de caché o precarga del contenido, reduciendo así tiempos desproporcionados en espera de lecturas.
  • Uso óptimo de segmentos temporales locales o compartidos con el propósito principal de minimizar tráfico innecesario hacia la memoria central.
  • Evaluación continua empleando herramientas especializadas para perfeccionar cuantitativa y cualitativamente procesos computacionales existentes.

Resumen final e orientaciones futuras

Requerimientos

  • Dominio básico del lenguaje C/C++ y conocimientos sobre conceptos de programación paralela
  • Noble comprensión acerca de la arquitectura computacional y las jerarquías de memoria
  • Experiencia previa en el uso de herramientas de línea de comandos y editores de código

Público objetivo

  • Desarrolladores que quieran dominar el empleo de ROCm e HIP para programar GPUs AMD aprovechando su naturaleza paralela.
  • Programadores interesados en generar códigos altamente eficientes y escalables capaces de funcionar en distintos dispositivos gráficos basados en AMD.
  • Ingenieros que deseen explorar a fondo los aspectos más profundos de la programación de GPUs, buscando elevar al máximo el rendimiento de sus algoritmos.
 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.
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