ECTS credits ECTS credits: 6
ECTS Hours Rules/Memories Student's work ECTS: 105 Hours of tutorials: 1 Expository Class: 24 Interactive Classroom: 20 Total: 150
Use languages Spanish, Galician, English
Type: Ordinary subject Master’s Degree RD 1393/2007 - 822/2021
Departments: Electronics and Computing, External department linked to the degrees
Areas: Computer Architecture and Technology, Electronics, Área externa M.U en Computación de Altas Prestacións
Center Higher Technical Engineering School
Call: First Semester
Teaching: With teaching
Enrolment: Enrollable | (Yes)
Students will acquire the basic training to analyze heterogeneous architectures with accelerators such as a GPU, as an alternative to multi-core systems in general-purpose processors, and will be able to contrast their performance. Additionally, they will develop efficient software for these new platforms through languages emerged in recent years for general purpose applications. Thus, the students will be initiated to some of the most extended approaches for the programming of heterogeneous systems. Finally, we will familiarize the students with optimization techniques aimed at the most advanced generations of heterogeneous systems.
1. Structure of a heterogeneous system CPU-GPU.
2. Introduction to CUDA programming.
3. Optimization techniques.
4. Programming with Streams.
5. Programming of heterogeneous systems CPU-GPU with OpenCL.
6. Heterogeneous systems with FPGA.
Basic bibliography:
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).
Complementary bibliography:
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.
The student will be able to analyze and improve the performance of a given architecture or software.
The student will be provided with skills in the use of tools to benefit of most of a parallel system. and will deepen in the knowledge of programming tools and different languages for high performance computing.
The student will be able to approach, model and solve problems that need high-performance computing techniques.
The student will analyze, design, and implement efficient parallel algorithms and applications.
The student will acquire knowledge on the emerging architectures for supercomputing.
Degree competences that are worked (see Title memory):
Basic: CB6 and CB7
General: CG1 and CG2
Transversal: CT1 and CT3
Specific: CE2, CE4, CE5, CE8
Theoretical classes. The student will be previously informed of the necessary material to read in order to correctly follow the teacher's explanation. In class the teacher will clarify the most relevant aspects of the subject interactively with the student.
Practical classes. In the computer classroom, problem-based learning and case studies will be conducted. An introduction will be made to the acceleration of applications using high level synthesis. GPUs with CUDA will be programmed on the cluster of CESGA or GAC-UDC; and, they will be compared with other programming methods such as OpenCL.
On-site formative activities and their relationship with the competences of the degree:
Theory classes taught by the teacher. Competencies worked: B6, T3
Practical classes of laboratory, resolution of problems and practical cases. Skills worked: B7, E2, E4
Programmed tutorials oriented to the realization of individual or group works, resolution of technical questions, ... Skills worked: T1
Exam. Worked competence: G2, E8, E2
Non-contact training activities and their relationship with the skills of the degree:
Personal work of the student: consultation of bibliography, autonomous study, development of program activities, preparation of presentations and works. Competencies worked: B7, G1, G2, E4
Labs: 50%
Periodic tests and / or exams: 20%
Realization of academic works: 30%
Explanatory classes: 23 hours
Practical classes: 19 hours + 19 hours student work
Assessment activities: 1 hour
Accomplishment of directed academic works: 4 hours + 80 hours student work
Personalized tutorship: 4 hours
Total: 150 hours
It is advisable to read the material assigned for each class of theory before attending.
Students who submit academic works or perform evaluation tests on a non-contact basis may also be requested to digitally sign them and / or an affidavit on their authorship. Languages: english and spanish.
David López Vilariño
Coordinador/a- Department
- Electronics and Computing
- Area
- Electronics
- david.vilarino [at] usc.es
- Category
- Professor: University Lecturer
Juan Carlos Pichel Campos
- Department
- Electronics and Computing
- Area
- Computer Architecture and Technology
- Phone
- 881816437
- juancarlos.pichel [at] usc.es
- Category
- Professor: University Professor