FDD3015 Introduction to Programming with GPGPU and Applications in Scientific Computing 7.5 credits

Introduktion till programmering med GPGPU och användning för vetenskapliga beräkningar

Offering and execution

Course offering missing for current semester as well as for previous and coming semesters

Course information

Content and learning outcomes

Course contents *

Part 1: Introduction, Basic programming

  • introduction to CUDA and the device architecture of GPGPU
  • the programming of GPGPU devices
  • performance optimization and application examples.

Part 2: Scientific Programming

  • libraries for the development of parallel numeric algorithms
  • parallelization of numerical algorithms.

Assignments:

Part 1: One smaller and one larger programming project combined with questions to explain the used technology

Part 2: One programming project combined with questions to explain the used approach.

Intended learning outcomes *

The overall goal of the course is to give basic knowledge of the theory, hardware, and software approaches to parallel computing with GPGPU. Especially, hardware and software challenges plus the interactions between them, as well as exposure to research challenges in this field will be emphasized.

The course consists of two parts. Part 1 (4,5 hp) provides the introduction to the field, a detailed look at the device architecture, the basic programming considerations plus the presentation of possibilities to do performance optimizations. Part 2 (3,0 hp) introduces the software tools for the development of numerical appllications and examples of algorithms from the field of scientific coomputing.

After the course you will be able to:

  • understand the properties of GPGPU devices
  • reason about the performance of programs running on it
  • assess the potential and limitations of using a GPGPU
  • write parallel programs for GPGPU.

Course Disposition

The theoretical knowledge will be evaluated by questions to answer as part of the programming project. The practical work comprises in part 1 a smaller and a larger programming project based on the usage of the CUDA SDK. The programming project in part 2 will be a numerical simulation program that is to realize by using the mathematical libraries delivered by the hardware vendor.

Literature and preparations

Specific prerequisites *

Programming experience in C.

Recommended prerequisites

No information inserted

Equipment

No information inserted

Literature

No information inserted

Examination and completion

If the course is discontinued, students may request to be examined during the following two academic years.

Grading scale *

P, F

Examination *

    Based on recommendation from KTH’s coordinator for disabilities, the examiner will decide how to adapt an examination for students with documented disability.

    The examiner may apply another examination format when re-examining individual students.

    Opportunity to complete the requirements via supplementary examination

    No information inserted

    Opportunity to raise an approved grade via renewed examination

    No information inserted

    Examiner

    Erwin Laure

    Ethical approach *

    • All members of a group are responsible for the group's work.
    • In any assessment, every student shall honestly disclose any help received and sources used.
    • In an oral assessment, every student shall be able to present and answer questions about the entire assignment and solution.

    Further information

    Course web

    No information inserted

    Offered by

    EECS/Computational Science and Technology

    Main field of study *

    No information inserted

    Education cycle *

    Third cycle

    Add-on studies

    No information inserted

    Postgraduate course

    Postgraduate courses at EECS/Computational Science and Technology