Grafikus Processzorok Tudományos Célú Programozása 2 ea.

Az előadás időpontja: Péntekenként, 13:45 - 15:15

Neptun kód: ff2n1i09, cpgpu2f17em
Helyszín: ELTE TTK Északi tömb, 5.86

Jegyszerzés:

Szóbeli Vizsga az előadás diák anyagából + Programozási feladat(ok) megoldása és bemutatása.

Ajánlott irodalom az elméleti részhez:

Bartosz Milewski - Category Theory for Programmers

Online változat

Pdf változat

Szorgalmi feladatok

  • minden feladatot max 1 ember választhat
  • jelentkezés a feladatra, illetve kérdés, pontosítás e-mailben
  • Meghosszabbított határidő, November 16-ig
Szorgalmi feladatok I. (2018 10 28), 1. 10. már nem választható!


A szorgalmi feladatok helyes megoldásáért a kevesebb feladatot kell teljesíteni a vizsgán.

Szorgalmi feladatok II. (hamarosan frissülni fog)


A szorgalmi feladatok helyes megoldásáért a kevesebb feladatot kell teljesíteni a vizsgán.

Előadás anyagok (zárójelben az utolsó frissítés dátumával):

  1. fejezet: Bevezetés (2018 09 30)
  2. fejezet: Funkcionális Programozás Elemei (2018 10 26)
  3. fejezet: Lineáris Algebra Funkcionálisan (2018 10 26)
  4. fejezet: Funkcionális primitívek GPU-n (2018 11 16)
  5. fejezet: Parametrikus számolások és grafikai interop (2017 12 13)

Az előadáshoz kapcsolódó GitHub mappa: github.com/Wigner-GPU-Lab/Teaching/tree/master/GPGPU2.
Általában minden fálj csak külön önmagában egy demonstráció, nem fordítandó egybe az egész. Később majd átszervezésre kerül a repo.

Minimális Map és Reduce implementáció CUDA-ban és SYCL-ben
Reduce prezentáció, CUDA-hoz
Reduce példakód, SYCL
Véges differencia sémák (link az együtthatók számolásához)
Összefoglalás az utolsó órai anyagról (2015)

Tematika:

  1. Bevezetés a funkcionális programozásba, Kategóriaelméleti létminimum
  2. Funkcionális alapelemek: Functor, Applicative, Monad, Fold, Zip, Fixpont kombinátor
  3. Funkcionális programozás a C++ template-metanyelv szintjén
  4. Lineáris algebra felépítése funkcionálisan
  5. Lineáris algebra felépítése funkcionálisan a GPU-n történő számolások sajátosságaival
  6. Végeselem diszkretizációk
  7. Közönséges differenciálegyenlet rendszerek
  8. Klasszikus N-test problémák
  9. Statisztikus fizikai szimulációk
  10. Monte-Carlo szimulációk
  11. Parciális differenciálegyenletek megoldása végeselem diszkretizációval
  12. Parciális differenciálegyenletek megoldása bázistranszformációs módszerekkel

Példakódok: frissítve!
Functor, Applicative, Monad C++-ban std::future Functor, C++-ban ODE megoldó

Régebbi példakódok:

Funkcionális példa 1. (Linalg)
Funkcionális példa 2. (ODE léptető)
Funkcionális példa 3. (Numerikus integrálok)
Funkcionális példa 4. (Véges differencia sémák) (LinearForm kód)
Funkcionális példa 5. (Adaptív ODE megoldó)
Funkcionális példa 6. (FFT)
Funkcionális példa 7. (Expression tree alapú párhuzamosítás)

Korábbi szorgalmik megoldásai:
Fordítás idejű Gauss elimináció véges differencia séma generálásához(2015)