Heterogén SoC rendszerek
VIMIMA25 | Villamosmérnök MSc | Félév: 2 | Kredit: 5
A tantárgy célkitűzése
A tantárgy célja a komplex, nagy teljesítményű, egy áramkörön belül megvalósított heterogén rendszerek tervezési és alkalmazási kérdéseinek bemutatása, különös tekintettel részfunkciók hardveres gyorsítására. A tárgy ismerteti a feladatok hardver megvalósításának előnyeit,
bemutatja a (részlegesen) újrakonfigurálható FPGA-k és a GPGPU eszközök által kínált nagyfokú párhuzamosításban és pipeline végrehajtásban rejlő gyorsítási lehetőségeket. Ismerteti a hardver-szoftver együttes tervezés és particionálás követelményeit, módszereit. Bemutatja a CPU, GPGPU
és FPGA alapú feldolgozó egységek egységes használatának szoftveres hátterét (CUDA, OpenCL), valamint az FPGA-k magas szintű nyelven történő fejlesztését. Valós példákon (pl. videófeldolgozás, mesterséges intelligencia alkalmazások) keresztül bemutatja a heterogén eszközök használatával elérhető teljesítmény- és hatékonyság növekedést.
bemutatja a (részlegesen) újrakonfigurálható FPGA-k és a GPGPU eszközök által kínált nagyfokú párhuzamosításban és pipeline végrehajtásban rejlő gyorsítási lehetőségeket. Ismerteti a hardver-szoftver együttes tervezés és particionálás követelményeit, módszereit. Bemutatja a CPU, GPGPU
és FPGA alapú feldolgozó egységek egységes használatának szoftveres hátterét (CUDA, OpenCL), valamint az FPGA-k magas szintű nyelven történő fejlesztését. Valós példákon (pl. videófeldolgozás, mesterséges intelligencia alkalmazások) keresztül bemutatja a heterogén eszközök használatával elérhető teljesítmény- és hatékonyság növekedést.

Szántó Péter
mesteroktató
tárgyfelelős
A tárgy oktatói

Raikovich Tamás
tanársegéd

Szántó Péter
mesteroktató
A tantárgy részletes tematikája
Az előadások részletes tematikája:
- Linux operációs rendszer FPGA platformokon. Operációs rendszer rétegei. BSP (Board Support Package) kialakítása, device-tree használata. Linux boot folyamat, first stage bootloader, U-Boot.
- Kernel fordítás saját hardver platformon. Kernel modul (driver) fejlesztése.
- Heterogén SoC rendszerek áttekintése: Broadcom, NVIDIA, NXP, Rockchip, Microchip. FPGA alapú SoC rendszerek áttekintése: Intel, Microchip, Lattice. Xilinx Zynq és Versal család. Processzor - FPGA kapcsolat: interfészek, nagysebességű adatátvitel.
- Nagyteljesítményű processzoros alrendszerek, hard-core processzor magok és jellemző perifériák. Többmagos megoldások, speciális utasításkészletek. Real-time magok.
- SoC rendszerek boot folyamata. Biztonság, jogosultságok.
- Az FPGA rész konfigurációja. FPGA-k parciális rekonfigurációja.
- Vektor utasításkészletek (AVX, NEON, SVE). Többszálú programok fejlesztése OpenMP segítségével.
- Grafikus processzorok: bevezetés. NVIDIA GPU-k hardveres felépítése. NVIDIA Jetson SoC-k.
- GPU-k programozása: szálkezelés, szál hierarchia. Szinkronizáció. Memória modell.
- OpenCL és CUDA: hoszt szoftver és kernel.
- Magas szintű szintézis FPGA áramkörökre: Intel C2H, Xilinx HLS (C++ és OpenCL). Xilinx HLS: egyedi adattípusok, teljesítmény növelése.
- Xilinx HLS: erőforrás limitek, interfészek szintézise. IP generálás.
- Xilinx HLS: hardver gyorsító integrálása.
- Tartalék
A gyakorlatok részletes tematikája:
- FSBL, U-Boot és Linux környezet létrehozása egyedi FPGA processzoros rendszerre.
- Linux kernel modul fejlesztése egyedi perifériához.
- Felhasználói módú alkalmazás fejlesztése és integrációja.
- Vektor utasításkészlet és OpenMP használata.
- GPU-k általános célú használata OpenCL és CUDA alapokon.
- Magasszintű hardver szintézis - Vitis HLS.
- OpenCL alapú FPGA gyorsító fejlesztése.