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¶
Grafika i računanje¶
Heterogena sustavska arhitektura¶
Grafički procesori AMD Radeon¶
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
Dokumentiranje razvijenog softvera¶
Prevođenje OpenCL C koda u strojni kod mikroarhitektura GCN i RDNA¶
Dodatni materijali¶
Rad u programskom jeziku Python¶
Pomoćni Python moduli i alati¶
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