A Graphite-on kívül a következő lépés az autopar beolvasztása, amely GOMP-on alapuló automatikus többszálúsítást végez az OpenMP segítségével.
Ha mindez elkészül, a GCC képes lesz önállóan több szálra optimalizálni a ciklusokat és ez meg fogja dobni a többprocesszoros (és Hyper-Threading-es) gépek teljesítményét.
Razya levelezőlistás üzenete. A Phoronix cikke itt.
- A hozzászóláshoz be kell jelentkezni
- 3298 megtekintés
Hozzászólások
A gép teljesítményét? Nem inkább a fordításét?
--
\\-- blog --//
- A hozzászóláshoz be kell jelentkezni
Nem.
- A hozzászóláshoz be kell jelentkezni
Nem néztem meg a hivatkozásokat, de a fenti leírás alapján én azt vontam le, hogy azt fogja támogatni, hogy a fordító *eleve* többszálú működésre alkalmas kódot fordítson. (És ne ő fusson többszálúan. Bár mivel ugya GCC-t az ember önmagával fordít, akár a fordítást is gyorsíthatja.) Ha jól emlékszem, az SGI-nek volt ilyen tudású C-fordítója.
- A hozzászóláshoz be kell jelentkezni
hát a gép teljesítménye állandó, nem? szóval a futási időt
- A hozzászóláshoz be kell jelentkezni
Állandó, csak a többi mag nem fog malmozni az egy szálra írt, de ezzel fordított program esetén.
- A hozzászóláshoz be kell jelentkezni
értsd jól. Leadott teljesítményét, ha így jobb.
--
"SzAM-7 -es, tudjátok amivel a Mirage-okat szokták lelőni" - Robi.
- A hozzászóláshoz be kell jelentkezni
Köszönöm a felvilágosítást :)
--
\\-- blog --//
- A hozzászóláshoz be kell jelentkezni
Pont most kezdem beleásni magam az openMP-be. És most mindezt feleslegesen??!! :)
- A hozzászóláshoz be kell jelentkezni
Nem. A fordító csak elég kis kódrészlet szintjén tud manipulálni. Ahogy kódoptimizációs kapcsolói is vannak neki, de az igazán ahtákony kódoptimizációt a programozó tudja elvégezni.
- A hozzászóláshoz be kell jelentkezni
Ez brutál munka lehet. Hogy mit össze szenvedtem én azzal, hogy egy thread akkor és úgy fussan amikor akarom...... Ezt automatikusan. Minden elismerésem.
- A hozzászóláshoz be kell jelentkezni
Márha feltételezzük, hogy tényleg jól csinálja az okosságot, mert ebben a témakörben azért van mit elcseszni
- A hozzászóláshoz be kell jelentkezni
Jól fogja csinálni. (Ha nem, az bug, javítják.)
Nyilván csak olyan esetben fogja párhuzamosítani, amikor biztos, hogy a ciklusmag különböző futásai nem interferálnak. Vagy ha interferálnak, akkor pár triviális esetben.
Sokat azért ne várjunk.
Kicsit olyan ez, mint az automatikus vektorizáció (SSE). Elvileg gcc csinál ilyet, de gyakorlatilag én még a viszonylag triviális esetben sem láttam, hogy megtörtént volna... (Bár az újabb verziókkal nem néztem.)
"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee."
-- Ted Ts'o
- A hozzászóláshoz be kell jelentkezni
Ez azert egy picit mas... csak a ciklusokat bontja tobb szalra, ami azert lenyegesen egyszerubb feladat, mint egy teljes alkalmazas tobbszalusitasa.
Persze attol meg eleg brutalis feladat tenyleg, de nem ugy kell elkepzelni a dolgot, mint amikor az ember leul es ir egy tobbszalu valamit :)
- A hozzászóláshoz be kell jelentkezni
Igen, igen... Meg szokták különböztetni a párhuzamos és többszálú futtatást.
A párhuzamos futtatás során az egyidőben futó szálak egymástól függetlenek, nem kommunikálnak, nincs szükség köztük semmilyen szinkronizációra.
Ettől persze még mindezt automatikusan megcsinálni kemény dió. Annak azonosítása hogy melyik ciklus párhuzamosítható nem triviális.
- A hozzászóláshoz be kell jelentkezni
Megnézve jobban, inkább forditási figyelmetlenség okozta a félreértést:
az angol linkekben mindenhol helyesen auto-parallelization, parallel programming stb...szerepel, nem threadek...
- A hozzászóláshoz be kell jelentkezni
azert ez durvan brutal...
big respect!
nagyon kivancsi vagyok az elso benchmarkokra :)
- A hozzászóláshoz be kell jelentkezni
+1
- A hozzászóláshoz be kell jelentkezni
Ilyesmire gondolsz? :)
- A hozzászóláshoz be kell jelentkezni
Ebben a brutal az, hogy a gcc nem csak c fordító. Régóta léteznek már fordítók automatikus párhuzamosítással, az openmp meg 3-4 tucat(fixme) függvénnyel oldja meg az egész mutatványt, de ez mind egy nyelvre vonatkozott.
- A hozzászóláshoz be kell jelentkezni