Paralelno programiranje na heterogenim sustavima
Make no little plans. They have no magic to stir men's blood and probably themselves will not be realized. Make big plans; aim high in hope and work, remembering that a noble, logical diagram once recorded will never die, but long after we are gone will be a living thing, asserting itself with ever-growing insistency. Remember that our sons and grandsons are going to do things that would stagger us. Let your watchword be order and your beacon beauty. Think big.
-- Daniel Burnham
Vježbe
Ponavljanje gradiva i temeljni koncepti
- Osnovni pojmovi paralelnog, distribuiranog i heterogenog računarstva
- Pregled heterogene sustavske arhitekture
Rad u programskom jeziku Python
- Osnovna sintaksa programskog jezika Python
- Python: ulaz i izlaz
- Python: funkcije i klase
- Dokumentiranje Python koda
- Python: moduli
- Testiranje Python aplikacija
- Mjerenje brzine izvođenja Python aplikacija
Dokumentiranje razvijenog softvera
Pomoćni Python moduli i alati
- Rad s Python modulom numpy
- Rad s Python modulom scipy
- Rad s Python modulom matplotlib i sučeljem pyplot
- Rad s Python okvirom waf
Programiranje aplikacija za heterogene sustave korištenjem tehnologije CUDA
- Python modul PyCUDA: osnove rada s GPU-om
- Python modul PyCUDA: zbrajanje vektora
- Python modul PyCUDA: paralelna redukcija, norma i skalarno množenje vektora
- Python modul PyCUDA: paralelni algoritmi na matricama
- Python modul PyCUDA: rad s vektorskim tipovima podataka
- Python modul PyCUDA: funkcije uređaja i domaćina
- Python modul PyCUDA: funkcije i tipovi podatka dostupni u CUDA bibliotekama
- Python modul PyCUDA: hijerarhija GPU memorije
- Python modul PyCUDA: otklanjanje grešaka i curenja memorije
- Python modul PyCUDA: mjerenje performansi, profiliranje i optimizacija
- Python modul PyCUDA: korištenje tokova i asinkronih kopiranja memorije za poboljšanje performansi
- Python modul PyCUDA: rad s više GPU-a
Programiranje aplikacija za heterogene sustave korištenjem tehnologije OpenCL
Programiranje aplikacija za heterogenu sustavsku arhitekturu na platformi ROCm
- Mjerenje brzine izvođenja C++ aplikacija
- rocPRIM: ROCm parallel PRIMitives
- Generiranje pseudoslučajnih brojeva u C++ aplikacijama
- rocRAND: ROCm RANDom number generator
- BLAS i LAPACK
- C++ biblioteka predložaka za linearnu algebru Eigen
- rocBLAS: ROCm Basic Linear Algebra Subprograms
- rocSOLVER: ROCm-ov linear algebra SOLVER
- rocSPARSE: ROCm SPARSE basic linear algebra subroutines
- rocALUTION: ROCm SPARSE Linear Algebra PACkage
- rocFFT: ROCm Fast Fourier Transforms
Prevođenje OpenCL C koda u strojni kod mikroarhitektura GCN i RDNA
- Prevođenje OpenCL C koda program prevoditeljem Clang
- Prevođenje OpenCL C koda u asemblerski kod arhitektura AMD GCN i RDNA