Heterogén számítási rendszerek

VIMIMA15  |  Villamosmérnök MSc  |  Félév: 2  |  Kredit: 4

A tantárgy célkitűzése

A tantárgy a modern SRAM technológiájú FPGA eszközök nagyteljesítményű számítási alkalmazásait ismerteti, lefedve mind a jelfolyam alapú valósidejű digitális jel/kép/video feldolgozási, mind az általános célú számítástechnikai alkalmazásokat. Ismerteti a feladatok hardveres megoldásainak előnyeit, a nagysebességű párhuzamos és pipeline műveletvégzők tervezési kérdéseit, a komponens és modell alapú tervezési módszereket. Bemutatja az újrakonfigurálható társprocesszor alapú rendszermegvalósítások előnyeit a speciális tulajdonságok kiaknázásának lehetőségeit. Ismerteti a statikus és dinamikus újrakonfigurálás technológiáját, az általános célú és konfigurálható processzorok használatával kialakítható nagyteljesítményű rendszerek számítási és adatmozgatási teljesítményoptimalizálásának kérdéseit a tipikus alkalmazási területek követelményei alapján. Az általános célú heterogén nagyteljesítményű beágyazott rendszerek multicore CPU, GPGPU és FPGA típusú feldolgozó egységeinek együttes használatai módszereinek bemutatása, szoftverfejlesztési technológiák: CUDA, OpenCL.

A tárgy oktatói

Szántó Péter
Szántó Péter

mesteroktató

tárgyfelelős

A tantárgy részletes tematikája

Oktatási hét

Tematika

1.    hét

A nagyteljesítményű számítástechnikai terület hagyományos megoldásai: párhuzamos szuperszámítógépek, számítógép clusterek, grid megoldások. Fontosabb felhasználók köre: Kutatások, pénzügyi adatfeldolgozás, geofizikai számítások, bioinformatika, védelmi kutatások

2.    hét

Problémák: költség, megbízhatóság, teljesítményigény, elhelyezés, hűtés. Alternatív megoldások: Multi core CPU, grafikus CPU, Cell processzor, ClearSpeed rendszer, FPGA alapú rendszer, automata processzor

3.    hét

Alternatív programozási modellek keresése: a szoftver megoldás flexibilitásának kombinálása a hardver nagy teljesítőképességével az FPGA-ra alapuló számítási hálózatok alkalmazásával.

4.    hét

Általános párhuzamosítási lehetőségek: végrehajtási idő, feldolgozási képesség, hatékonyság, granularitás.

5.    hét

Az Amdahl törvény. A párhuzamos és multi-core programozási paradigma. Feladat partícionálás, működés közbeni terhelés elosztás

6.    hét

Szerver architektúrák, kommunikációs interfészek. Párhuzamosítás CPU használatával: vektorizáció, többszálú végrehajtás (OpenMP, MPI).

7.    hét

Speciális gyorsítóeszközök áttekintése: a GPGPU általános jellemzői, műveletei támogatás, előnyök, hátrányok.

8.    hét

GPGPU programozási modell: CUDA és OpenCL.

9.    hét

Az FPGA alapú újrakonfigurálható hardver eszközök. Az FPGA, mint társprocesszor. Az FPGA konfigurációja, részleges újrakonfigurálás lehetőségei, előnyei, hátrányai.

10. hét

Fejlesztési lépések részleges újrakonfigurálás megvalósításához. A projektszerkezet kialakítása, rekonfigurálható tartományok konfigurációinak elkészítése

11. hét

Magas szintű FPGA fejlesztési lehetőségek: C alapú megoldások (Handel-C, Impulse-C, Mitrion-C, Catapult-C, C2H, Vivado HLS). A C alapú hardver szintézis lehetőségei, problémái.

12. hét

Xilinx Vivado HLS: párhuzamosítási lehetőségek; memória szintézis; interfész megvalósítási lehetőségek. OpenCL alapú FPGA fejlesztés.

13. hét

Nagyteljesítményű gyorsítóegységek rendszerbeillesztési feladatai. A Host és az HW gyorsító közötti kommunikáció kérdései

14. hét

A heterogén számítástechnika lehetséges jövőbeni irányai. A speciális gyorsító egységek és integrálásuk felhő alapú rendszerekbe