kvp#49
"Gondoltam, hogy válaszolok neked, de aztán rájöttem, hogy tök fölösleges lenne, mert te csak írsz, és sosem olvasol el semmit, amit a másik ír, akár direkt neked. Mint pl. hogy a Cell SPU-i nem DSP-k."
Szerintem probald meg programozni. Es probakeppen probalj meg programozni egy mikroverlos dsp-t. Teljesen egyforma az architektura. Mindketto egy kis risc-es processzor, nagy orajelen es determinisztikus (orajelre pontos) idozitessel. Ebbol a dsp-bol raktak 8-at a cell-be. De ha nem tetszik a dsp kifejezes, hivhatod spe-nek. A problema az, hogy a fix idozitesek miatt nem lehet szabadon valtoztatni a felepiteset. Mig a power mag eseten siman ment az ibm az out of order execution-rol in order-re a power5 es a power6 valtaskor, addig az spe-k eseten nem lehet architekturat valtani, mert rogton elcsuszik a szepen kiszamolt idozites. Ez hang vagy kep megjelenitesnel nagyon kellemetlen tud lenni. Tobbek kozott ezert tunik zsakutcanak.
A masik gond a memoria limitaltsaga, ha csak kilobyte-okban merheto a szabadon cimezheto memoria, akkor nagyon nehez olyan algoritmust megvalositani, ami ossze-vissza olvas a memoriaban. Nagyon sok jatek algoritmus ilyen. Lehet uj algoritmusokat tervezni, de jelenleg ilyenek nem nagyon vannak. Ha lennenek akkor sem ezeket tanitjak a kezdo programozoknak, tehat nagyon nehez olyan embert fogni aki ert is hozza. Mivel en szoktam mikorvezerlos dsp-ken dolgozni, ezert nekem a cell spu-ja ismeros volt, de azert ereztem hogy ez tipikusan a gyors proci, tavoli memoria esete, amikor a memoriabusz kesleltetese fogja visszafogni a rendszert. (tehat nem a savszelesseg, hanem a kesleltetes)
Hogy miert ezt valasztotta a sony es nem egy masik megoldast? (nem mondjuk 3 power5 magot, ahogy a microsoft is tette) A valasz a sony tv-kben rejlik. Minden bravia tv es sony blue ray lejatszo belsejeben van egy cell processzor, csak meg tobb hibas spe-vel. (hibatlan: ibm cluster, 1 hibas: ps3, tobb hibas: bravia tv-k) Igy egy termek, egy operacios rendszer es egy szoftver kepes kiszolgalni a teljes termekpalettat. Tehat gyakorlatilag a ps3 magja egy blue-ray player kore epult. (mondjuk ezt a sony sem tagadja) A cell a tipikusan dsp-s feladatokban jo: videodekodolas, videoskalazas, hangdekodolas, stb. Ezeket egy bravia tv-ben kulon videokartya es hangkartya nelkul meg tudja oldani, akar mindossze 5 aktiv spe-vel is. (a tv-n is sony linux fut, van hozza gpl-es licensz papir is) A konzolba persze raktak kulon videokartyat. (es nem is rosszat, a legdragabb dx9-eset) Viszont azert van kulon video es rendszermemoria, mivel a proci arra van felkeszitve hogy kulon mukodjon videokartya nelkul. Ezzel szemben az xbox360-ban a proci kepes belso ramkent hasznalni a cache-t, igy az eredeti felhasznalasban (ibm kryptobox) nem is kell neki kulso ram. Amit viszont cserebe kapott az egy gyors i/o csatorna amin at a videokartyat tudja eszaki hidkent latni, igy az L3 cache a videokartyan van, a rendszer ram pedig a videomemoria. Ez egy eltero architektura, ami nem gyorsabb viszont elegansabb es konnyebben programozhato. Nem kell pl. a rendszer es a video ram kozott adatokat toltogetni, hanem minden adat egyben textura is. Es nem kell ram-ba kiirni majd atmasolni a video parancsokat, mivel a videokartya 'elkapja' oket iras kozben es ramba iras helyett vegre is hajtja oket.
Kedves dez: ertem hogy a cell spu-i nem dsp-k, hiszen van altalanos egyseguk is, viszont az osszes ujabb mikrovezerlos dsp-nek van ilyen tehat ez nem uj otlet. Az ibm csak atemelte az egychipes cpu+dsp otletet a telekommunikacios rendszerekbol. Ezert is van az, hogy a cell tipikusan olyan helyeken kerul felhasznalasra nagyobb ibm gepek eseten ahol eddig egy power mag tobb dsp-t iranyitott. Az egyik elso multimedias pelda ilyen egysegre az amigak copper+blitter egysege volt, ami kepes volt sajat programot futtatni a lokalis ram-bol (chip ram) viszont butabb volt a M68k-s kozponti processzornal. Az otlet jo, de ha van videokartya, shaderekkel, akkor erdemesebb rajuk bizni a feladatot. Az uj g80-as sorozat nagyobb elerheto memoriaval es tobb processzorral kb. ugyanezt a teljesitmenyt hozza.
A cell spe-k akkor lennenek teljes erteku procik, ha a dma library fole irna valaki egy rendes scatter/gather library-t. (lasd: linux forras) Viszont a dma setup latency miatt ez annyira visszaveti a teljesitmenyuket, hogy akkor mar erdemesebb venni egy tobbmagos power5-ot vagy egy power6-ot. Bonuszkent arra meg programozot is talal az ember, mivel a power csalad c-ben programozva nagyon hasonlo a sima x86-osokhoz. (a programozonak nem latszik a kulonbseg, mig cell spe-k eseteben a regi dsp-s limitek jonnek elo, mint a 'hogy hogy nem tudok egy 4 Mb-os blokkon veletlenszeruen vegigmenni?' es a 'miert kell a ram-ban fizikailag egymas melle tenni az adatokat amikor nem is egyszerre keletkeznek?')
Kedves dez, lehet, hogy nem ertesz egyet azzal amit leirtam, de attol a tenyek nem valtoznak. Lehet vitatkozni azon hogy mik a tenyek, de mivel mindket rendszer jol dokumentalt, ezert erdemes utannanezni. (az ibm mindket processzor adatlapjat pubikalta, a cell-hez meg hivatalos linux tamogatas is van) Vegyel egyet, probald ki, probald meg programozni es ha mar eleged van a cell-bol akkor rajosz, hogy egy kezdo is megirta volna ha kap meg ket altalnos power magot ahol az egesz ram latszik egy nagy blokkban es lehet tobb megas c++ strukturakat dobalni. A microsoft-nal mivel ok egy szoftverceg sok olcso es alulkepzett programozoval erre jottek ra.