Вы находитесь на странице: 1из 7

SISTEMAS HBRIDOS

1. Datos generales de la asignatura

Nombre de la Asignatura: Sistemas Hbridos


Clave de la Asignatura: MCCOM-0212
Crditos: 6
rea: Inteligencia Artificial
Profesor de la Asignatura: Dr. Dante Mjica Vargas

2. Presentacin

Esta asignatura aporta al alumno la capacidad de utilizar un dispositivo de altas prestaciones


para acelerar tareas de procesamiento digital de imgenes utilizando computo paralelo.

El contenido del programa lleva al estudiante a familiarizarse con los procesadores grficos, sus
arquitectura, funcionamiento bsico y modos de programacin; finalmente le presenta aplicaciones
comunes en el rea del procesamiento digital de imgenes.

Durante el proceso de enseanza aprendizaje de esta asignatura, el alumno desarrollar compe-


tencias genricas que le permitan analizar y organizar los contenidos para as poder planificar
el desarrollo de su curso, en lo que al aprendizaje se refiere, es importante desarrollar destrezas
que le permitan interactuar con sus compaeros para valorar el trabajo de equipo y mejorar su
ambiente estudiantil.

Con la organizacin del proceso de aprendizaje en esta materia, se pretende tambin que el alumno
tenga la capacidad de aplicar sus conocimientos a la prctica y desarrolle la habilidad de auto-
aprendizaje.

1
El enfoque sugerido para la materia requiere que las actividades prcticas promuevan el desarrollo
de habilidades para la experimentacin, tales como: identificacin, manejo y control de variables
y datos relevantes; planteamiento de hiptesis; trabajo en equipo; asimismo, propicien procesos
intelectuales como induccin-deduccin y anlisis-sntesis con la intencin de generar una
actividad intelectual compleja; por esta razn varias de las actividades prcticas se han descrito
como actividades previas al tratamiento terico de los temas, de manera que no sean una mera
corroboracin de lo visto previamente en clase, sino una oportunidad para conceptualizar a partir
de lo observado. En las actividades prcticas sugeridas, es conveniente que el profesor busque
slo guiar a sus alumnos para que ellos hagan la eleccin de las variables a controlar y registrar.
Para que aprendan a planificar, que no planifique el profesor todo por ellos, sino involucrarlos en
el proceso de planeacin.

La lista de actividades de aprendizaje no es exhaustiva, se sugieren sobre todo las necesarias para
hacer ms significativo y efectivo el aprendizaje. Algunas de las actividades sugeridas pueden
hacerse como actividad extra clase y comenzar el tratamiento en clase a partir de la discusin de
los resultados de las observaciones.

Se busca partir de experiencias concretas, cotidianas, para que el estudiante reconozca los
fenmenos fsicos en su alrededor y no slo se hable de ellos en el aula. Es importante ofrecer
escenarios distintos, ya sean construidos, artificiales, virtuales o naturales.

Es necesario que el profesor ponga atencin y cuidado en estos aspectos en el desarrollo de las
actividades de aprendizaje de esta asignatura.

3. Competencia general de la asignatura

Dotar a los estudiantes con el conocimiento y la experiencia prctica para el desarrollo de


aplicaciones de software para procesadores con capacidad de procesamiento paralelo masivo
como los GPUs, las cuales puedan ser orientadas a tareas de procesamiento digital de
imgenes.

4. Competencias previas de otras asignaturas

1. Conoce los fundamentos del Procesamiento Digital de Imgenes


2. Puede programar en al menos un lenguaje de alto nivel (preferentemente C/C++)
3. Tiene conocimientos del sistema operativo Linux

2
5. Temario

Temas
Subtemas
No. Nombre
1.1 Fundamentos de apuntadores
1.2 Asignacin dinmica de memoria
1 Programacin secuencial en CPU
1.3 Apuntadores como parmetros a funciones
1.4 Procesamiento de imgenes utilizando
apuntadores sin libreras: Filtrado, Segmenta-
cin y Clasificacin
2.1 Threads (Hilos) y cooperacin entre estos
2.2 API OpenMP y su terminologa
2 Programacin paralela en CPU
2.3 Compilacin de cdigo utilizando OpenMP
2.4 Procesamiento de imgenes utilizando la
API OpenMP: Filtrado, Segmentacin y Clasi-
ficacin
3.1 Introduccin a GPUs y CUDA
3.2 GPU y GPGPU
3 Programacin heterognea (hbrida)
3.3 Arquitecturas basadas en GPUs
3.4 Entorno de desarrollo CUDA
4.1 Manejo de la memoria
4.2 Kernels e indexado
Principios y conceptos de programacin
4 4.3 Hilos y Bloques
CUDA
4.4 Cooperacin entre hilos
4.5 Libreras
5.1 Cdigo CUDA (.cu)
5.2 Modo consola
5 Estructura de los programas CUDA
5.3 Modo grfico (OpenGL)
6.1 Filtrado de ruido
Procesamiento de imgenes utilizando
6 6.2 Segmentacin (Agrupamiento Difuso)
un sistema hbrido
6.3 Clasificacin (Redes Neuronales)

3
6. Actividades de aprendizaje

Competencias a desarrollar y fortalecer


Especficas

1. Conocer los fundamentos de una metodologa para hacer la paralelizacin de algoritmos


y aplicaciones cientficas por hardware de uso especializado

2. Aprender a utilizar tecnologa especialida


3. Implementar aplicaciones de software en modos consola y grfico

4. Implementar algoritmos de uso convencional en tareas de procesamiento digital de


imgenes

Genricas

1. Capacidad de anlisis y sntesis


2. Habilidades para buscar y analizar informacin proveniente de diferentes fuentes
3. Capacidad para aplicar conocimientos en la prctica
4. Trabajo en equipo

5. Comunicacin escrita y oral

Tema Actividades de aprendizaje


Programacin secuencial en CPU 1.1 Entender el concepto de apuntador y su
implementacin utilizando el compilador GNU
GCC
1.2 Conocer la relacin entre apuntadores y la
asignacin dinmica de memoria
1.3 Programar en C y sin libreras, tareas de
Filtrado, Segmentacin y Clasificacin de
imgenes
Programacin paralela en CPU 2.1 Entender el concepto hilos y su cooperacin
2.2 Familiarizarse con la API OpenMP y cmo
compilar programas
2.3 Programar en C y sin libreras, tareas de
Filtrado, Segmentacin y Clasificacin de
imgenes utilizando la API OpenMP

4
Programacin heterognea (hbrida) 3.1 Investigar y analizar conceptos
relacionados a la paralelizacin de algoritmos
mediante procesadores grficos
3.2 Conocer la arquitectura de los procesadores
grficos y sus entornos de desarrollo
Principios y conceptos de programacin CUDA 4.1 Conocer los recursos de un procesador
grfico
4.2 Analizar y comprender la relacin entre el
nmero de hilos y los bloques
4.3 Conocer las librerias acelaradas provistas
por NVIDIA para aplicaciones cientficas
(cuDNN, Geometry Performance Primitives
(GPP), ArrayFire y OpenCV)
Estructura de los programas CUDA 5.1 Describir un sistema hbrido CPU+GPU
5.2 Conocer la estructura de un cdigo CUDA
5.3 Conocer la implementacin de aplicaciones
en modo consola
5.4 Conocer la implementacin de aplicaciones
en modo grfico
Procesamiento de imgenes utilizando un 6.1 Implementar el filtrado de imgenes
sistema hbrido utilizando CUDA y libreras especializadas
6.2 Implementar la Segmentacin
(Agrupamiento Difuso) de imgenes utilizando
CUDA y libreras especializadas
6.3 Implementar la Clasificacin (Redes
Neuronales) de imgenes utilizando CUDA y
libreras especializadas

5
7. Prcticas

1. Manejo de matrices y vectores: suma, resta, multiplicacin en CUDA


2. Filtrado de imgenes utilizando CUDA
3. Filtrado de imgenes utilizando libreras especializadas
4. Segmentacin de imgenes utilizando CUDA
5. Segmentacin de imgenes utilizando libreras especializadas
6. Clasificacin de imgenes utilizando CUDA

7. Clasificacin de imgenes utilizando libreras especializadas

8. Proyecto integrador

Los alumnos conformarn equipos de trabajo para proponer y presentar un proyecto donde se
sustente el uso de una aplicacin cientfica paralelizada.

9. Evaluacin por competencias

La evaluacin debe ser diagnstica, formativa y sumativa por lo que se debe considerar el desem-
peo en cada una de las actividades de aprendizaje, haciendo especial nfasis en:

1. Informacin obtenida durante las investigaciones solicitadas y plasmada en documentos es-


critos

2. Exmenes escritos para comprobar el manejo de aspectos tericos y declarativos


3. Tareas para estudio independiente en clase y extra-clase
4. Exposicin con medios didcticos
5. Participacin plenaria
6. Reportes tcnicos de las prcticas y de los proyectos presentados

Toda evidencia de competencia adquirida (lista anterior) debe entregarse en un portafolio de


evidencias, para acreditar la asignatura.

6
10. Sugerencia de evaluacin

1. Exmenes: 40%

2. Proyecto integrador: 40%

3. Tareas y prcticas: 10%

4. Participacin en clase: 10%

11. Bibliografa

1. Guide, D. (2016). CUDA C PROGRAMMING GUIDE. NVIDIA, May.


2. Kirk, D. B., & Wen-mei, W. H. (2012). Programming massively parallel processors: a
hands-on approach. Newnes.

3. Sanders, J., & Kandrot, E. (2010). CUDA by example: an introduction to general-purpose


GPU programming. Addison-Wesley Professional.

4. Gregory, K., & Miller, A. (2014). C++ AMP: accelerated massive parallelism with Microsoft
Visual C++.

5. Cai, Y., & See, S. (Eds.). (2015). GPU Computing and Applications. Springer.
6. Cook, S. (2012). CUDA programming: a developers guide to parallel computing with
GPUs. Newnes.

7. Farber, R. (2011). CUDA application design and development. Elsevier.


8. Chandra, R. (2001). Parallel programming in OpenMP. Morgan kaufmann.
9. Draeger, E. W., Karlin, I., Scogland, T., Richards, D., Glosli, J., Jones, H., ...
Kunen,
A. (2016). Openmp 4.5 ibm november 2015 hackathon: current status and lessons learned.
Technical report LLNL-TR-680824, Lawrence Livermore National Laboratory.

Вам также может понравиться