A tantárgyleírás hatályossága
| Subject name (Hungarian, English) |
GPGPU alkalmazások
GPGPU Applications
|
||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Subject code | BMEVIIIMB01 | ||||||||||||
| Subject type | — | ||||||||||||
| Training Level | — | ||||||||||||
| Course types and hours (weekly/semester) |
|
||||||||||||
| Assessment type | vizsga | ||||||||||||
| Credits | 4 | ||||||||||||
| Subject coordinator |
Szécsi László
position: egyetemi docens
contact:
szecsi.laszlo@vik.bme.hu
|
||||||||||||
| Responsible department |
Irányítástechnika és Informatika Tanszék
|
||||||||||||
| Faculty | Villamosmérnöki és Informatikai Kar | ||||||||||||
| Subject website | http://cg.iit.bme.hu/portal/en/Education/GPGPU%20applications | ||||||||||||
| Primary curriculum type | — | ||||||||||||
| Direct prerequisites – Strong prerequisite | none | ||||||||||||
| Direct prerequisites – Weak prerequisite | none | ||||||||||||
| Direct prerequisites – Parallel prerequisite | none | ||||||||||||
| Direct prerequisites – Milestone prerequisite | none | ||||||||||||
| Direct prerequisites – Exclusion | none |
Objectives
1. Overview of the architecture of the GPU
The lecture discusses the massively parallel architecture of the graphics hardware and its limitations, as well as the fundamentals of parallel programming. An overview of environments for graphics hardware programming is presented.
2. Introduction to OpenCL
OpenCL, a general purpose programming environment for GPU programming is presented, including an overview of its virtual machine platform, memory and program model and the OpenCL C language and the related CPU side API.
3. GPGPU support for computations on large data sets
Vector processing operations for large data sets are discussed. An overview of the parallelization of scattering and gathering type algorithms, including their limitations and implementation details, is presented.
4. Implementation issues of basic parallel primitives in OpenCL
Introduction to the parallel programming primitives, the most fundamental building blocks of scalable algorithms. Discussed primitives include map, reduce, amplify, scan and compact operators.
5. Solution of linear equation systems
Parallel algorithms for solving linear equation systems are presented. We discuss implementation issues of matrix and vector operations, as well as storage issues and operations with sparse matrices.
6. Physical simulations on the GPU
Examples for physical models that can be evaluated efficiently on GPUs. Efficiency and scalability of the presented algorithms is also discussed.
7. Parallel sorting methods
Sorting algorithms designed for parallel architecture are presented: brick sort, radix sort, merge sort and the parallel variant of quick sort. The parallel algorithms are compared to traditional sorting algorithms w.r.t. complexity and time cost.
8. Breadh-first traversal of graphs and its applications
Discussion of graph traversal algorithms for parallel architectures and their applications. Complexity and time cost of the presented algorithms are compared to those of the traditional CPU graph traversal methods.
9. Parallel hash-based algorithms
Parallel hash algorithms and their possible applications are presented. Complexity and time cost of the presented algorithms are compared to those of the traditional CPU hash-based methods.
10. Monte Carlo methods on the GPU
Introduction to Monte Carlo methods and their implementation issues and possible applications. As the main issue of these algorithms is the generation of high quality random numbers, we discuss pseudo random and quasi random number generators that can be used on parallel architectures.
11. Adjoint Monte Carlo methods
Fundamental issues of adjoint Monte Carlo methods. We discuss theoretical requirements and implementation issues of a gathering type algorithm in the context of GPU based PET reconstruction.
12. Optimization issues of GPGPU applications
Optimization and performance measurement issues of parallel algorithms are discussed. The possibilities of algorithmic optimizations using of theoretical and practical metrics are presented.
13. Efficient interoperability with the graphics API (OpenGL)
The basic tools to connect the OpenCL environment with the OpenGL graphics API are discussed. These can be used to create efficient visualization for general purpose computing application, which can be extremely helpful in the evaluation of computation results.
14. Special requirements for multi GPU and distributed systems
We discuss the main issues of programming multi GPU systems, the limitations due to the distributed architecture and generally applicable techniques.
Learning outcomes
Ez a tantárgy a KKK rendeletben meghatározott, következő kompetenciák fejlesztését szolgálja:
Knowledge
No learning outcomes recorded.
Skills
No learning outcomes recorded.
Attitudes
No learning outcomes recorded.
Autonomy and responsibility
No learning outcomes recorded.
Oktatási módszertan
Tanulástámogató anyagok
Online források
Recommended preliminary knowledge for completing the subject
General rules
Assessment methods
In-term assessments
No detailed assessments provided.
Weight of in-term assessments
No weights provided.
Exam-period assessments
No detailed assessments provided.
Weight of exam elements
No weights provided.
Grade calculation
No grade thresholds provided.
Attendance requirements
No attendance requirements provided.
Rules for retake and resubmission
Not provided.
Short description
Not provided.
Detailed description
Not provided.
Recommended courses
Workload to complete the subject
No workload breakdown provided.
Validity of subject requirements
Curriculum placement
No curriculum placements recorded for this subject version.