HTML

flugi szakblogja

Megjegyzések programozásról, jelfeldolgozásról, beszédtechnológiáról

Friss topikok

  • LoverCase: kösz! (2012.03.23. 20:41) rekurzív szálszaporítás gyorsít?
  • tormanator: Mért érték, CPU 200 Mflopp, GPU 11 Gflopp , ez 55x sebesség, de középkategóriánál mért értékek. Az... (2011.09.11. 11:27) OpenCL
  • Tom Benko: @flugi_: Ebből is látszik, hogy a sudo a legveszélyesebb parancs. (2011.03.10. 20:09) Az egyszerűség dícsérete
  • xsasha: Kíváncsi vagyok, mi lesz a véleményed erről a beírásról. :-) Szóval az én elméletem szerint az ag... (2011.02.28. 17:30) Programozás és intuitivitás

56 GigaFlop itthon

2008.11.15. 03:42 flugi_

Jep. Összekaptam magam egy nehéz hét után, és legyűrve a lustaságot, nekiveselkedtem az új videókártyámat igazi programozóhoz méltó módon letesztelni.

A kártya egy AMD Ati HD4670, játékokat nagyon viszi, kicsit volt drágább húszezer forintnál.

Hozzávalók:

A hozzávalókat feltelepítjük. Az első probléma, hogy az AMD Stream kit egy korábbi studioexpresshez készült, ezért a programok egy részét újra kell fordítani. Ezt arról lehet felismerni, ha esetleg azt a hibát kapnád, miszerint

No appropriate map technique found

Ez tehát azért van, mert nem stimmelnek a futásidejű állományok a verziók között, ezen viszont segíthetsz néhány egyszerű lépésben

  1. Nyisd meg a  "$(BROOKROOT)\platform\brook.sln" projectet
  2. Ha nem 32 bites rendszeren nyomod, javítsd ki a  'Project Properties' - 'Linker' - 'General' - 'Additional Library Directories' bejegyzést "$(CALROOT)\lib\LH64" vagy az egyéb platform nevére (kileshető a fájlnevekből)
  3. illetve a 'Build Events' - 'Post-Build Event' - 'Command Line to read' 'copy "$(TargetDir)\$(TargetFileName)" "$(BROOKROOT)\sdk\lib\" (Program Files (x86)' bejegyzés verziótól függően tartalmazhat szóközöket, ezek hibásak, törölni kell
  4. A "runtime" projectet fordítsd újra mind release mind debug módban. Ez a lényeg.
  5. Végül a megfelelő .lib fájlokat másold át a "$(BROOKROOT)\platform\runtime\lib\xp_x86_64" típusú helyről (itt a saját platformod van) a "$(BROOKROOT)\sdk\lib" könyvtárba

(köszönet ezért bizonyos foxx1337 fórumozónak)

No most már nagyon jó a helyzet, ugyanis ha bármelyik példaprogramot megnyitod a VS2008-ban, frankón lefordul és fut.

A példaprogramok között sokféle van, nekem Gigaflop hajhászáshoz elsőre legmegfelelőbbnek az optimized-matmult tűnt. Egy egy unrolled mátrixszorzás, ami a Gigaflopvadászok mindenkori kedvenc totemállata. Hát még GPU-n, ugyebár.

Nos, a program az alapbeállítások mellett a GPU csúfos vereségét hozza ki, na de az alapbeállítás egy 64x64 mátrix egyszeri szorzása. Ez olyan, mintha Concorde járattal mennék a sarki trafikba. Egy tisztességes GPU-nak való feladat ennél szebb, egyrészt a mátrix nagyobb, másrészt ismételjük meg a műveletet néhányszor. Ez utóbbi már fekszik a GPU-nak, arra találták ki, hogy csörgedezzenek az adatfolyamok. 1280x1280 mátrixnál (semmi extra hátsó szándék, csak megúntam a 128x128-at), 1000 iteráció még kivárhatóan lefutott, körülbelül egy percig tartott. Ez pedig 56 GigaFlop.

Ha esetleg volt sok pénzed nagyobb videókártyákra, esetleg 4870x2-re, a fentieket futtasd le te is, kíváncsi vagyok az eredményekre. Ha skálázható az eredmény, akkor a HD4670 320 kisprocija mellett a 4870x2 1600 kisprocika az 56 GigaFlopot arányosan 280 GigaFlopra nyomja fel. (sőt, erős a gyanúm ennek komoly túlteljesítésére a megnövelt memóriasebesség miatt) Az előző postban teraflopokat ígértem, de ez egy gyakorlati feladat, nem igazán reális ezt elérni.

Miért nem lehet elérni a maximális elméleti teljesítményt? Mert ahhoz az kéne, hogy minden matematikai művelet pontosan annyi ideig tartson, ameddig a következő művelethez szükséges memóriaműveletek, így a kisproci nem vár a memóriára. A mátrixszorzásban csak szorzás van, ez vélhetően hamarabb befejeződik, mint a memóriamozgatás. Emellett jelentős overhead a szálak szinkronizálása, és az adat elosztása, ezek skálázhatósági kérdések is.

Update: elérhető a 72 GigaFlop is ugyanezzel a programmal

Szólj hozzá!

A bejegyzés trackback címe:

https://flugiszaki.blog.hu/api/trackback/id/tr59769811

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.
süti beállítások módosítása