Créditos ECTS Créditos ECTS: 6
Horas ECTS Criterios/Memorias Trabajo del Alumno/a ECTS: 105 Horas de Tutorías: 1 Clase Expositiva: 24 Clase Interactiva: 20 Total: 150
Lenguas de uso Castellano, Gallego, Inglés
Tipo: Materia Ordinaria Máster RD 1393/2007 - 822/2021
Departamentos: Electrónica y Computación, Departamento externo vinculado a las titulaciones
Áreas: Arquitectura y Tecnología de Ordenadores, Electrónica, Área externa M.U en Computación de Altas Prestacións
Centro Escuela Técnica Superior de Ingeniería
Convocatoria: Primer semestre
Docencia: Con docencia
Matrícula: Matriculable | 1ro curso (Si)
Los y las estudiantes adquirirán la formación básica para analizar las arquitecturas heterogéneas con aceleradores tales como una GPU, como alternativa a los sistemas multi-núcleo en procesadores de propósito general, y quedarán capacitados/as para contrastar sus prestaciones y rendimiento. Adicionalmente, desarrollarán software eficiente para estas nuevas plataformas a través de los lenguajes que han surgido en los últimos años para aplicaciones de propósito general. Así, se les iniciará a algunas de las aproximaciones más extendidas para la programación de sistemas heterogéneos. Para finalizar, se les familiarizará con las técnicas de optimización orientadas a las generaciones más avanzadas de los sistemas heterogéneos.
1. Estructura de sistemas heterogéneos CPU-GPU.
2. Introducción a la programación en CUDA.
3. Técnicas de optimización.
4. Programación usando Streams.
5. Programación de sistemas heterogéneos CPU-GPU usando OpenCL.
6. Sistemas heterogéneos con FPGAs.
Bibliografía básica
David Kirk and Wen-mei Hwu, “Programming Massively Parallel Processors”, 3ªedition, Morgran Kauffmann, 2016.
Ryan Kastner, Janarbek Matai, and Stephen Neuendorffer. Parallel Programming for FPGAs (hlsbook.ucsd.edu).
Bibliografía complementaria
L. H. Crokett, R. Elliot and M. Ederwitz, “The Zynq Book: Embedded Processing with the ARM Cortex-A9 on the Xilinx Zynq-7000. All Programmable SoC”, Strathclyde Academic Media, 2014.
Jason Sanders, “CUDA by Example: An Introduction to General-Purpose GPU Programming, 1st Edition, AddisonWesley, 2010.
B. R. Gaster, L. Howes, D. R. Kaeli, P. Mistry, D. Schaa, “Heterogeneous Computing with OpenCL”, Morgan Kaufmann, 2013.
D. R. Kaeli, P. Mistry, Dana Schaa, and D. P. Zhang. “Heterogeneous Computing with OpenCL 2.0.” Morgan Kaufmann Publishers Inc., 2015.
El estudiantado será capaz de analizar y mejorar el rendimiento de una arquitectura o un software dado.
El estudiantado tendrá destreza en la utilización de herramientas que permiten aprovechar al máximo un sistema paralelo. Profundizará en el conocimiento de herramientas de programación y diferentes lenguajes en el campo de la computación de altas prestaciones.
El estudiantado será capaz de plantear, modelar y resolver problemas que necesitan de técnicas de computación de altas prestaciones. Analizará, diseñará, e implementará algoritmos y aplicaciones paralelas eficientes.
El estudiantado conocerá las arquitecturas emergentes en el campo de la supercomputación.
Competencias da titulación que se trabajan (ver memoria título):
Básicas: CB6 y CB7
Generales: CG1 y CG2
Transversales: CT1 y CT3
Específicas: CE2, CE4, CE5, CE8
Clases teóricas. A los y las estudiantes se les indicará con anterioridad el material necesario que debe leer para seguir correctamente la explicación del profesorado. En clase se aclararán los aspectos más relevante del tema, de forma interactiva con los y las estudiantes.
Clases prácticas. En el aula de informática, se realizará aprendizaje basado en problemas y estudios de casos prácticos.Se hará una introducción a la aceleración de aplicaciones en lógica programable mediante síntesis de alto nivel. Se programarán las GPUs con CUDA sobre el cluster del CESGA o del GAC-UDC; y, se compararán con otros métodos de programación como el OpenCL.
Actividades formativas de carácter presencial y su relación con las competencias de la titulación:
Clases teóricas impartidas por el profesorado. Competencias trabajadas: B6, T3
Clases prácticas de laboratorio, resolución de problemas y casos prácticas. Competencias trabajadas: B7, E2, E4
Tutorías programadas orientadas a la realización de trabajos individuales o en grupo, resolución de dudas,... Competencias trabajadas: T1
Examen. Competencia trabajadas: G2, E8, E2
Actividades formativas de carácter no presencial y su relación con las competencias de la titulación:
Trabajo personal del estudiantado: consulta de bibliografía, estudio autónomo, desarrollo de actividades programas, preparación de presentaciones y trabajos. Competencias trabajadas: B7, G1, G2, E4
Realización de prácticas: 50%
Pruebas periódicas y/o exámenes: 20%
Realización de trabajos académicos dirigidos: 30%
Clases de encerado:19 h de trabajo autónomo
Clases de prácticas: 2 h presenciales + 38 h de trabajo autónomo
Actividades de evaluación: 1 h presencial
Realización de trabajos académicos dirigidos: 82 h de trabajo autónomo
Tutorías: 8 horas
Total: 150 h.
Es recomendable leer el material asignado para cada clase de teoría antes de asistir a ella.
Los y las estudiantes que presenten trabajos o realicen pruebas de evaluación de forma no presencial, se les podrá solicitar también la firma digital de los mismos y/o una declaración jurada sobre la autoría de los mismos. La materia se impartirá en inglés y español.
David López Vilariño
Coordinador/a- Departamento
- Electrónica y Computación
- Área
- Electrónica
- Correo electrónico
- david.vilarino [at] usc.es
- Categoría
- Profesor/a: Titular de Universidad
Juan Carlos Pichel Campos
- Departamento
- Electrónica y Computación
- Área
- Arquitectura y Tecnología de Ordenadores
- Teléfono
- 881816437
- Correo electrónico
- juancarlos.pichel [at] usc.es
- Categoría
- Profesor/a: Titular de Universidad