Guía docente de Computación de Propósito General en Unidades de Procesamiento Gráfico (M52/56/5/6)

Curso 2023/2024
Fecha de aprobación por la Comisión Académica 26/07/2023

Máster

Máster Universitario en Desarrollo del Software

Módulos

  • Diseño y Desarrollo de Servicios y Sistemas
  • Diseño y Desarollo de Servicios y Sistemas

Rama

Ingeniería y Arquitectura

Centro Responsable del título

Escuela Internacional de Posgrado

Semestre

Primero

Créditos

3

Tipo

Obligatorio

Tipo de enseñanza

Presencial

Profesorado

  • José Miguel Mantas Ruiz
  • Martin Lilleeng Sætra

Horario de Tutorías

José Miguel Mantas Ruiz

Email
  • Tutorías 1º semestre
    • Martes 10:00 a 13:00 (Etsiit 3ª P Despacho 20)
    • Miércoles 10:00 a 13:00 (Etsiit 3ª P Despacho 20)
  • Tutorías 2º semestre
    • Lunes 11:30 a 13:30 (Etsiit 3ª P Despacho 20)
    • Martes 12:30 a 13:30 (Etsiit 3ª P Despacho 20)
    • Jueves 10:30 a 13:30 (Etsiit 3ª P Despacho 20)

Martin Lilleeng Sætra

Email

Breve descripción de contenidos (Según memoria de verificación del Máster)

Introducción a las Unidades de Procesamiento Gráfico (GPUs).

- Arquitectura de una GPU y de sistemas heterogéneos dotados de GPUs.

- Modelo de ejecución de una GPU.

- Enfoques para la programación de sistemas heterogéneos dotados de GPUs.

- Fundamentos de diseño paralelo para programación de propósito general de GPUs.

- Programación avanzada de GPUs usando diferentes tecnologías.

---------

- Introduction to Graphics Processing Units (GPUs).

- Architecture of a GPU and heterogeneous systems equipped with GPUs.

- GPU execution model.

- Approaches for programming heterogeneous systems equipped with GPUs.

- Parallel design fundamentals for general purpose programming of GPUs.

- Advanced programming of GPUs using different technologies.

Prerrequisitos y/o Recomendaciones

No existen prerrequisitos o recomendaciones.

Competencias

Competencias Básicas

  • CB6. Poseer y comprender conocimientos que aporten una base u oportunidad de ser originales en desarrollo y/o aplicación de ideas, a menudo en un contexto de investigación.
  • CB7. Que los estudiantes sepan aplicar los conocimientos adquiridos y su capacidad de resolución de problemas en entornos nuevos o poco conocidos dentro de contextos más amplios (o multidisciplinares) relacionados con su área de estudio.
  • CB8. Que los estudiantes sean capaces de integrar conocimientos y enfrentarse a la complejidad de formular juicios a partir de una información que, siendo incompleta o limitada, incluya reflexiones sobre las responsabilidades sociales y éticas vinculadas a la aplicación de sus conocimientos y juicios.
  • CB9. Que los estudiantes sepan comunicar sus conclusiones y los conocimientos y razones últimas que las sustentan a públicos especializados y no especializados de un modo claro y sin ambigüedades.
  • CB10. Que los estudiantes posean las habilidades de aprendizaje que les permitan continuar estudiando de un modo que habrá de ser en gran medida autodirigido o autónomo.

Resultados de aprendizaje (Objetivos)

Conocimientos o contenidos

C02. Identifica y comprende los conceptos clave y las principales características de los sistemas software, en cuanto a sus requerimientos, diseño o implementación, pruebas, despliegue y explotación.

C04. Conoce y comprende los fundamentos, técnicas y herramientas básicas para la programación eficiente de algoritmos, identificando las fuentes de concurrencia en su cálculo que se asignarán a los elementos de procesamiento y almacenamiento en función de tipo de arquitectura seleccionada y, en particular, en arquitecturas de altas prestaciones como las unidades de procesamiento de gráficos (GPU).

---------

Competencias

COM5. Identificar y valorar las propiedades del software de usabilidad, accesibilidad, seguridad, confiabilidad, rendimiento y ética informática, entre otros y analizar como afecta a la calidad de un sistema software.

---------

Habilidades o destrezas

HD03. Aplica los modelos, métodos, técnicas, paradigmas, algoritmos, lenguajes y herramientas más apropiados para la creación, desarrollo o mantenimiento de sistemas software que cumplan con criterios de calidad, usabilidad, robustez, fiabilidad, seguridad, facilidad de implementación y despliegue en las plataformas más actuales.

HD04. Sabe diseñar, implementar y evaluar algoritmos gráficos, tanto 2D como 3D, para la representación, digitalización, modelado, visualización tanto realista como expresiva, animación e interacción de modelos con su entorno y su aplicación en interfaces de usuario gráficas.

---------

Programa de contenidos Teóricos y Prácticos

Teórico

1. Introducción a las Unidades de Procesamiento Gráfico (GPUs) y a la computación de Propósito General en GPUs (GPGPU).

2.Programación de GPUs

  • Introducción a la programación en GPU. CUDA y OpenCL.
  • Programación en CUDA C: Modelo de arquitectura y modelo de ejecución, modelo de programación. La interfaz de programación CUDA C.
  • Implementación de Algoritmos en CUDA C y OpenCL. Ejemplos.
  • Plataformas y herramientas para el aprovechamiento de GPUs en áreas específicas

3. Fundamentos de diseño paralelo para programación de propósito general de GPUs.

---------

1. Introduction to Graphics Processing Units (GPUs) and  General-Purpose computing on GPUs (GPGPU).

2. GPU Programming

  • Introduction to GPU programming. CUDA and OpenCL.
  • Programming in CUDA C: Hardware, execution and programming model. CUDA C programming interface.
  • Implementation of algorithms in CUDA C and OpenCL. Case studies.
  • Frameworks and tools to take advantage of GPUs in specific areas

3. Parallel design fundamentals for general purpose programming of GPUs.

Práctico

  • Práctica 1. Programación de algoritmos paralelos  para sistemas basados en  GPU usando CUDA C.
  • Práctica 2. Simulación científica usando PyOpenCL.

----------------------------------------------------------------------------------------------------------

  • Practical Assignment 1. Programming  parallel algorithms for GPU-based systems using CUDA C
  • Practical Assignment  2. Scientific simulation  using PyOpenCL.

Bibliografía

Bibliografía fundamental

  • GPU Parallel Program Develoment Using CUDA. Tolga Soyata. CRC Press, 2018.

  • Programming Massively Parallel Processors, Second Edition: A Hands-on Approach. Wen-mei W. Hwu, David B. Kirk, Izzat El Hajj. Morgan Kaufmann. 2022.

  • Professional CUDA C Programming. John Cheng, Max Grossman, Ty McKercher. John Wiley & Sons, 2014.

  • Multicore and GPU Programming. An Integrated Approach. G. Barlas. 2nd Edition.  Morgan Kaufmann. 2022.

  • OpenCL Programming Guide. A. Munshi, B. Gaster, T. G. Mattson, J. Fung, D. Ginsburg. Addison-Wesley Professional. 2011.

Bibliografía complementaria

  • CUDA Handbook: A Comprehensive Guide to GPU Programming. Nicholas Wilt . Addison-Wesley, 2013.

  • Parallel Programming for Multicore and Cluster Systems. Third Edition.  Thomas Rauber, Gudula Rünger. Springer, 2023.

Enlaces recomendados

Como apoyo a la docencia se usará la Plataforma de Recursos de Apoyo a la Docencia PRADO2 de la Universidad de Granada: https://prado.ugr.es

Metodología docente

Evaluación (instrumentos de evaluación, criterios de evaluación y porcentaje sobre la calificación final.)

Evaluación Ordinaria

El artículo 18 de la Normativa de Evaluación y Calificación de los Estudiantes de la Universidad de Granada establece que la convocatoria ordinaria estará basada preferentemente en la evaluación continua del estudiante, excepto para quienes se les haya reconocido el derecho de evaluación única final.

Se realizará una evaluación continua del trabajo del estudiante, valorando tanto los conocimientos adquiridos como las competencias alcanzadas.


 

Modalidad presencial:

Para la evaluación en modalidad presencial se tendrán en cuenta los siguientes sistemas de evaluación, indicándose entre paréntesis el rango del porcentaje con respecto a la calificación final del estudiante.

SE1. Actividades realizadas durante el desarrollo del curso mediante la entrega de ejercicios, trabajos, informes, a través de la plataforma docente (40%).

SE2. Actividades realizadas después de finalizar el curso mediante la entrega de ejercicios, trabajos, informes, a través de la plataforma docente (45%).

SE5. Asistencia y participación activa (15%).

Se pedirá la entrega en tiempo y forma de las actividades propuestas a través de la plataforma PRADO.

 

Modalidad virtual:

Para la evaluación en modalidad virtual se tendrán en cuenta los siguientes sistemas de evaluación, indicándose entre paréntesis el rango del porcentaje con respecto a la calificación final del estudiante.

SE1. Actividades realizadas durante el desarrollo del curso mediante la entrega de ejercicios, trabajos, informes, a través de la plataforma docente (25%).

SE2. Actividades realizadas después de finalizar el curso mediante la entrega de ejercicios, trabajos, informes, a través de la plataforma docente (45%).

SE6.  Participación activa en foros de debate o de recogida de información (15%).

SE9. Cuestionarios on-line (15%).

Se pedirá la entrega en tiempo y forma de las actividades propuestas a través de la plataforma PRADO.


 

Evaluación Extraordinaria

El artículo 19 de la Normativa de Evaluación y Calificación de los Estudiantes de la Universidad de Granada establece que los estudiantes que no hayan superado la asignatura en la convocatoria ordinaria dispondrán de una convocatoria extraordinaria. A ella podrán concurrir todos los estudiantes, con independencia de haber seguido o no un proceso de evaluación continua. De esta forma, el estudiante que no haya realizado la evaluación continua tendrá la posibilidad de obtener el 100% de la calificación final.

La evaluación en tal caso se basará en la realización de algunas de las actividades propuestas en la evaluación continua y/o de actividades similares a las propuestas en la evaluación continua.

Evaluación única final

El artículo 8 de la Normativa de Evaluación y Calificación de los Estudiantes de la Universidad de Granada establece que podrán acogerse a la evaluación única final, el estudiante que no pueda cumplir con el método de evaluación continua por causas justificadas.

Para acogerse a la evaluación única final, el estudiante en las dos primeras semanas de impartición de la asignatura o en las dos semanas siguientes a su matriculación si ésta se ha producido con posterioridad al inicio de las clases o por causas sobrevenidas. Lo solicitará, a través del procedimiento electrónico, a la Coordinación del Máster, quien dará traslado al profesorado correspondiente, alegando y acreditando las razones que le asisten para no poder seguir el sistema de evaluación continua.

La evaluación en tal caso se basará en la realización de algunas de las actividades propuestas en la evaluación continua y/o de actividades similares a las propuestas en la evaluación continua.

Información adicional

Siguiendo las indicaciones recogidas en el artículo 15 de la Normativa de Evaluación y de Calificación de la Universidad de Granada sobre la originalidad de los trabajos presentados por los alumnos.

1. La Universidad de Granada fomentará el respeto a la propiedad intelectual y transmitirá a los estudiantes que el plagio es una práctica contraria a los principios que rigen la formación universitaria. Para ello procederá a reconocer la autoría de los trabajos y su protección de acuerdo con la propiedad intelectual según establezca la legislación vigente.

2. El plagio, entendido como la presentación de un trabajo u obra hecho por otra persona como propio o la copia de textos sin citar su procedencia y dándolos como de elaboración propia, conllevará automáticamente la calificación numérica de cero en la asignatura en la que se hubiera detectado, independientemente del resto de las calificaciones que el estudiante hubiera obtenido. Esta consecuencia debe entenderse sin perjuicio de las responsabilidades disciplinarias en las que pudieran incurrir los estudiantes que plagien.

3. Los trabajos y materiales entregados por parte de los estudiantes tendrán que ir firmados con una declaración explicita en la que se asume la originalidad del trabajo, entendida en el sentido de que no ha utilizado fuentes sin citarlas debidamente.