Memória Profiling alapú tervezés

Tanszéki konzulens: 
A munkatárs fényképe
óraadó
Szoba: IE336

A kiírás adatai

A téma státusza: 
Törölt (nem látszik a listákban)
Kiírás éve: 
2013
A kiírás jellege: 
szorgalmi feladat, önálló labor, szakdolgozat/diplomaterv

A mai modern FPGA-k (DSP-k/processzorok/mikrovezérlők) megannyi processzáló magot tartalmaznak. Gondolhatunk itt multi- és many core rendszerekre, soft-core processzorokra stb. Ha adott egy algoritmus, ami egyetlen processzoron nem tud real-time futni, jó lenne kihasználni minél több magot. Igen ám de hogyan? Hiszen a PC k esetén több processz fut, de a beágyazott (főként streaming jellegű feladnál) csak egyetlen egy feladatot kell nagyon gyorsan végrehajtani. Ezért magát az algoritmust kell megvizsgálni, hogy hol lehet a párhuzamosságokat külön elemekre szétbontani, így növelve a számítási teljesítményt.

Az algoritmus profiling általában futási információt jelenít meg, nem tartalmazza az adatok áramlását. A modern többmagos rendszerek esetén az elérhető számítási kapacítás gyakran meghaladja a szükséges mennyiséget, a probléma a számítási magok adattal történő hatékony ellátása. Ezért érdekes felvenni az adatok áramlását is.

Két korábbi halgató segített, egy Python  nyelven írt analizátor program megalkotásában. Ami az alábbiakat csinálja:

Vegyünk egy C algoritmust. (Jelenleg JPEG kitömörítő), fordítsuk le egy processzorra. A gépi kódot futtassuk le egy processzor szimulátoron, és közben az összes memória/regiszter hozzáférést loggoljuk. Melyik memóriát mikor/melyik függvény hányadik sora érte el.

Futás után látni fogunk a program Dinamikus Adatfolyam Gráfját (DDFG) amiből generálhatunk csomó grafikont, amelyek a memóriák hozzáférését mutatja.

Egy 64*64 pixeles kép kitömörítése kb 600 ezer utasítás, így a felvett adatgráfot aggregálni kellett, amiből szépen látszank a főbb adatutak.

Jelenleg itt áll a fejlesztés, sok lelkes titánt keresek:

- QEMU interfész implementálására

- Az algoritmus optimalizálására / portolására (C nyelvre)

- Megjelenítő továbbfejelsztése

- A Dinamikus Adatfolyam Gráfjon túl jó lenne felvenni a vezérlési függőségeket

- Illetve gráfelméleti "turkálások". Részgráfok keresése, kritikus út stb.

© 2010-2024 BME MIT | Hibajelentés | Használati útmutató