Most, hogy próbálom magam elhelyezni az OpenCL világában egyre több információt és nagyon profi módon összeállított anyagot lelek fel magyar nyelven is és ez igen nagy örömömre szolgál. Most egy levelet sikerült elcsípni a Google segítségével. Remélem nem haragszik meg a szerzője, hogy belinkelem. Szóval olvassuk csak mert nagyon érdekes...
Üdvözlet mindenkinek,
István mondta, hogy szóljak pár szót az én gumicicámról, név szerint az OpenCL-ről. Aki esetleg már ismeretes a fogalommal annak a bevezető nem fog sok újat mondani, de az új kártyákról érdemes elolvasni az ismertetőket.
Az OpenCL egy új GPGPU eljárás/programnyelv/keret ami az Apple szárnyai alatt látta meg a napvilágot. A kezdeményezés lényege hogy egy egységes keretet adjon a GPGPU fogalomnak, ami könnyen kezelhető és mindenek felett platform független (a Mac OSX alatt léteznek a legrégebb óta működő compilerek). A kezdeményezés olyannyira ígéretesnek bizonyult, hogy felsorakozott mögé mindenki, akit az IT világban érdemes lehet megemlíteni (a lista irdatlan hosszú, minden nagy névvel rajta). A fejlesztés illetve szabványok jóváhagyója a Khronos Group (www.khronos.org). Az új keretrendszer roppant rugalmas és kényelmes is, nagyon jól struktúrált programok írhatók benne ahol jól elkülöníthetők és szinkronizálhatók a CPU-n és a GPUn végzett számítások. A keret egy-két említésre méltó tulajdonsága: a device-okon (lett légyen az GPU vagy CPU vagy akármi) lefutó programkód C szabvány nyelven írandó/írható, OpenGL hívások engedélyezettek device-ról (ergo kirajzoláshoz nem kell CPU-ra visszatérni sem buffert cserélni a CPU-val), a device-on futó kód (ezentúl kernel) runtime fordul (jól megírt program CPU-n lekérdezi a device képességeit (shader szám, elérhető memória, stb.), ehhez mérten paraméterezi fel a kernelt, majd ezekre optimalizálva fordítja le a kódot az OpenCL compiler. Így a jól megírt program minden kártyán optimálisan futhat, de más előnyei is vannak (bár kellemetlenségeket is okoz, ez tény)). Jól láthatóan a vörösök és a zöldek is nagy erőbedobással dolgoznak a fejlesztői környezeteiken és elsősorban az OpenCL támogatás az ami bővül minden egyes újabb verziónál. Szerintem mindenképp érdemes legalább egy pillantást vetni az új keretre, és megfontolandónak tartom a nagyobb lélegzetvételű új projektek ebben a nyelvben történő elkezdését. A cross-platform jellege, a gyártófüggetlensége, az OpenGL-el nem titkolt házasítása, a jól strukturáltsága, a C nyelv ismertsége és az óriási támogatása miatt szerintem futótűzként fog elterjedni a használatban. Aki jól tud CUDA-ban programozni, annak nem lesz nagy was ist das elsajátítania, mert a nyelv szintaktikája és megközelítése javarészt a CUDA-ra hasonlít. A nyelv felépítésében az NVIDIA volt a domináns.
NVIDIA nem kis lépéselőnyben van ATi-val szemben. NVIDIA-nak már van Mac-Linux-Windows alá CPU-ra és GPU-ra fordító compilere olyan segédprogramokkal, amik a kernelek debuggolását és optimalizálását is elősegítik (egy apró kényelmetlensége, hogy a kernelt nehezebb debuggolni, mert runtime fordul, ezért a fordítási hibák nem a program többi része mellett dobnak fordulási hibát. Ha az ember használ valami bonyolultabb fejlesztői környezetet, ami teszem azt támogat változókövetést, stb. akkor ezeket a funkciókat nem lehet használni a kernel debuggolására, mert a host processzortól független a program futása. Ezekhez a problémákhoz nyújt segítséget a VisualProfiler nevezetű okosság zöld oldalon). ATi nemrég fogadtatta el a teljes CPU támogatást natív 64-bites műveletekkel és gőzerővel dolgozik a GPU-s compileren. Amint ezt a csúfos lemaradását behozza az ATi, a zöldek elkezdhetnek rettegni.
Megpróbálom az eddigi jól-rosszul palástolt vörös partiságomat leplezve objektíven tálalni a tényeket. Az NVIDIA GT300 kódú lapkája egy nem titkoltan GPGPU-ra épített chip. A zöldek ha félhivatalosan is, de bedobták a törülközőt az asztali szegmensbe szánt kártyákkal, elmondásuk szerint nem látnak már benne akkora piacot, és elsősorban az ipari felhasználás és az általános számításokra szeretnének koncentrálni. Az új kártyájuk DX11 alatt nyújtotta teljesítményt nem tartják olyan fontosnak. (Ez valószínűleg azért van, mert a 4xxx Radeon széria nagyon csúnyán elkente a GT2xx kártyák száját, és az ATi aggresszív árpolitikája ellehetetlenítette az NVIDIA-t a piacon. A korábbi 25%os piaci részesedésről 50% fölé emelkedett az ATi egyetlen év alatt. A vörösök megoldásai rendre felülmúlták ár/teljesítmény arányban a zöldekét. Az NVIDIA ilyen módon szeretne új piacon egyeduralkodóvá válni, ami teljesen érthető és logikus lépés.) Hardverben viszont nem kis lemaradással küszködik az NVIDIA, november végére saccolják az első GT300as kártya startját, ekkorra a vörösök már a Radeon 5870X2 kártyával fognak jelentkezni, aminek már a nevét is csak félve merem kimondani. A vörös tábor két hete dobta piacra az első RV870-es lapkával ellátott kártyájukat, a Radeon 5870-et és a kistestvérét, az 5850-et. Ezek nem titkoltan DX11re lettek bedrótozva, és ezzel érzésem szerint végleg megpecsételődött az NVIDIA sorsa a játékpiacon. A napvilágot látott tesztek azt bizonyítják, hogy az 5870 ereje DX11 támogatás nélkül is 85-90%-át hozza a korábbi kétmagos megoldásoknak (4870X2 és a GTX295), ami figyelemreméltó teljesítmény. Az NVIDIA új megoldása is várhatóan hasonló eredményt fog nyújtani, bár ez a DX11 hardveres elhanyagolása miatt (A DX11 legnagyobb újítását, a tesszalátor egységet nem implementálják, hanem a CUDA magok fogják emulálni) nem lesz ennyire látványos a játék teszteken. Az új üdvöskékről most is elmondható az a különbség, ami mindig is megvolt: a zöld kártyák memória, memória sávszélesség és textúrázó egység gazdagok, és ezt a jó tulajdonságukat a megszokottnál jobban erősítették, míg a vörösök annyira Shader processzor gazdagok, amennyire azt nem szégyellték (és textúrázó egységből is rápakoltak azért annyit, amennyi a korábbi generációs GTX295-ön van, csak hogy ne érje szó a ház elejét). Alább áljék pár hasznos link az érdeklődőknek, akik a kártyák újításairól szeretnének informálódni (rövidített verzió a linkek után):
Üdvözlet mindenkinek,
István mondta, hogy szóljak pár szót az én gumicicámról, név szerint az OpenCL-ről. Aki esetleg már ismeretes a fogalommal annak a bevezető nem fog sok újat mondani, de az új kártyákról érdemes elolvasni az ismertetőket.
Az OpenCL egy új GPGPU eljárás/programnyelv/keret ami az Apple szárnyai alatt látta meg a napvilágot. A kezdeményezés lényege hogy egy egységes keretet adjon a GPGPU fogalomnak, ami könnyen kezelhető és mindenek felett platform független (a Mac OSX alatt léteznek a legrégebb óta működő compilerek). A kezdeményezés olyannyira ígéretesnek bizonyult, hogy felsorakozott mögé mindenki, akit az IT világban érdemes lehet megemlíteni (a lista irdatlan hosszú, minden nagy névvel rajta). A fejlesztés illetve szabványok jóváhagyója a Khronos Group (www.khronos.org). Az új keretrendszer roppant rugalmas és kényelmes is, nagyon jól struktúrált programok írhatók benne ahol jól elkülöníthetők és szinkronizálhatók a CPU-n és a GPUn végzett számítások. A keret egy-két említésre méltó tulajdonsága: a device-okon (lett légyen az GPU vagy CPU vagy akármi) lefutó programkód C szabvány nyelven írandó/írható, OpenGL hívások engedélyezettek device-ról (ergo kirajzoláshoz nem kell CPU-ra visszatérni sem buffert cserélni a CPU-val), a device-on futó kód (ezentúl kernel) runtime fordul (jól megírt program CPU-n lekérdezi a device képességeit (shader szám, elérhető memória, stb.), ehhez mérten paraméterezi fel a kernelt, majd ezekre optimalizálva fordítja le a kódot az OpenCL compiler. Így a jól megírt program minden kártyán optimálisan futhat, de más előnyei is vannak (bár kellemetlenségeket is okoz, ez tény)). Jól láthatóan a vörösök és a zöldek is nagy erőbedobással dolgoznak a fejlesztői környezeteiken és elsősorban az OpenCL támogatás az ami bővül minden egyes újabb verziónál. Szerintem mindenképp érdemes legalább egy pillantást vetni az új keretre, és megfontolandónak tartom a nagyobb lélegzetvételű új projektek ebben a nyelvben történő elkezdését. A cross-platform jellege, a gyártófüggetlensége, az OpenGL-el nem titkolt házasítása, a jól strukturáltsága, a C nyelv ismertsége és az óriási támogatása miatt szerintem futótűzként fog elterjedni a használatban. Aki jól tud CUDA-ban programozni, annak nem lesz nagy was ist das elsajátítania, mert a nyelv szintaktikája és megközelítése javarészt a CUDA-ra hasonlít. A nyelv felépítésében az NVIDIA volt a domináns.
Hol tart az OpenCL most?
NVIDIA nem kis lépéselőnyben van ATi-val szemben. NVIDIA-nak már van Mac-Linux-Windows alá CPU-ra és GPU-ra fordító compilere olyan segédprogramokkal, amik a kernelek debuggolását és optimalizálását is elősegítik (egy apró kényelmetlensége, hogy a kernelt nehezebb debuggolni, mert runtime fordul, ezért a fordítási hibák nem a program többi része mellett dobnak fordulási hibát. Ha az ember használ valami bonyolultabb fejlesztői környezetet, ami teszem azt támogat változókövetést, stb. akkor ezeket a funkciókat nem lehet használni a kernel debuggolására, mert a host processzortól független a program futása. Ezekhez a problémákhoz nyújt segítséget a VisualProfiler nevezetű okosság zöld oldalon). ATi nemrég fogadtatta el a teljes CPU támogatást natív 64-bites műveletekkel és gőzerővel dolgozik a GPU-s compileren. Amint ezt a csúfos lemaradását behozza az ATi, a zöldek elkezdhetnek rettegni.
Milyenek lesznek az új generációs GPU-k?
Megpróbálom az eddigi jól-rosszul palástolt vörös partiságomat leplezve objektíven tálalni a tényeket. Az NVIDIA GT300 kódú lapkája egy nem titkoltan GPGPU-ra épített chip. A zöldek ha félhivatalosan is, de bedobták a törülközőt az asztali szegmensbe szánt kártyákkal, elmondásuk szerint nem látnak már benne akkora piacot, és elsősorban az ipari felhasználás és az általános számításokra szeretnének koncentrálni. Az új kártyájuk DX11 alatt nyújtotta teljesítményt nem tartják olyan fontosnak. (Ez valószínűleg azért van, mert a 4xxx Radeon széria nagyon csúnyán elkente a GT2xx kártyák száját, és az ATi aggresszív árpolitikája ellehetetlenítette az NVIDIA-t a piacon. A korábbi 25%os piaci részesedésről 50% fölé emelkedett az ATi egyetlen év alatt. A vörösök megoldásai rendre felülmúlták ár/teljesítmény arányban a zöldekét. Az NVIDIA ilyen módon szeretne új piacon egyeduralkodóvá válni, ami teljesen érthető és logikus lépés.) Hardverben viszont nem kis lemaradással küszködik az NVIDIA, november végére saccolják az első GT300as kártya startját, ekkorra a vörösök már a Radeon 5870X2 kártyával fognak jelentkezni, aminek már a nevét is csak félve merem kimondani. A vörös tábor két hete dobta piacra az első RV870-es lapkával ellátott kártyájukat, a Radeon 5870-et és a kistestvérét, az 5850-et. Ezek nem titkoltan DX11re lettek bedrótozva, és ezzel érzésem szerint végleg megpecsételődött az NVIDIA sorsa a játékpiacon. A napvilágot látott tesztek azt bizonyítják, hogy az 5870 ereje DX11 támogatás nélkül is 85-90%-át hozza a korábbi kétmagos megoldásoknak (4870X2 és a GTX295), ami figyelemreméltó teljesítmény. Az NVIDIA új megoldása is várhatóan hasonló eredményt fog nyújtani, bár ez a DX11 hardveres elhanyagolása miatt (A DX11 legnagyobb újítását, a tesszalátor egységet nem implementálják, hanem a CUDA magok fogják emulálni) nem lesz ennyire látványos a játék teszteken. Az új üdvöskékről most is elmondható az a különbség, ami mindig is megvolt: a zöld kártyák memória, memória sávszélesség és textúrázó egység gazdagok, és ezt a jó tulajdonságukat a megszokottnál jobban erősítették, míg a vörösök annyira Shader processzor gazdagok, amennyire azt nem szégyellték (és textúrázó egységből is rápakoltak azért annyit, amennyi a korábbi generációs GTX295-ön van, csak hogy ne érje szó a ház elejét). Alább áljék pár hasznos link az érdeklődőknek, akik a kártyák újításairól szeretnének informálódni (rövidített verzió a linkek után):
- http://prohardver.hu/hir/forradalmian_uj_nvidia_fermi_gf100_cgpu.html
- http://ipon.hu/hir/informaciomorzsak_az_nvidia_gt300_asarol/8894
- http://prohardver.hu/teszt/az_amd_elindult_a_directx_11_osvenyen/amd_cypress.html
- http://ipon.hu/elemzesek/cypress_alias_radeon_hd5870_nagyvad/555/2
Nagy Máté Ferenc
2009. Okt. 8., Cs, 11:59:45 CEST
2009. Okt. 8., Cs, 11:59:45 CEST
0 megjegyzés :
Megjegyzés küldése