Keresés

Új hozzászólás Aktív témák

  • #16939776

    törölt tag

    válasz Whysperer #10 üzenetére

    A gpu hatékonyabb egyszerűbb párhuzamos feladatokra, nem hinném hogy egy ilyen valós idejű renderért venne valaki, két tucat szervert otthonra, hogy CPU-n számoltassa...

    [ Szerkesztve ]

  • #16939776

    törölt tag

    válasz Whysperer #16 üzenetére

    Bocs, azt hittem hogy a dVGA/IGP elhagyásával akarsz energia hatékonyabban rendelni ;)

  • Meteorhead

    aktív tag

    válasz Whysperer #19 üzenetére

    "Képzeld el mennyi erő kijöhetne plusszba..."

    Jellemzően semennyi. Ahhoz iszonyatosan átgondolt algoritmus kell, és majdnemhogy külön gyúrni kell arra, hogy a CPU-nak értelmes, neki fekvő feladatot tudj adni akármilyen renderben. A grafika túlnyomó részben gyalázatosan párhuzamosítható. Igaz ez a raszteres képalkotásra és igaz a sugárkövetésre is. A sugárkövetés nagyon párhuzamos, ott a divergens végrehajtás miatt nehéz GPU-ra rakni hatékonyan a munkát.

    Nézd meg, hogy a GPU-d nyers számítási teljesítménye 2+ TFLOPS egyszeres pontosság mellett (grafikában ez számít, mint compute), a CPU-d meg tud mondjuk 100 GFLOPS-ot ha iszonyat kemény Intel CPU-d van. Nem kell sok matek, de a CPU-d 20-ad annyi kakaót tud hozzátenni a renderhez, mint a GPU. Cserébe a nyakadba vettél egy halom szinkronizációs és adat másolásos terhet, ami a GPU-t is visszafogja. Ilyen pici nyereségért nem éri meg hadra fogni a CPU-t.

    Egyetlen dolog miatt éri ez meg PS4-en: közös a memória, ingyen van a "másolás". Ha kizársz mindenkit a piacról, akinek nem 1 darab APU-ja van a gépben, akkor nagy varázslást lehet tenni. A PC-s piac alkalmatlan erre. Egyfelől nem is venné be a gamerek gyomra, hogy a VGA-juk csak hátráltatja az innovációt; másfelől az Nvidia biztosan foggal-körömmel küzdene az irány ellen, ami az egész VGA piacot kihúzná a lábuk alól, mivel szinte ez az egyetlen bevételi forrásuk (ahogy az AMD is most tönkremenne a konzolok nélkül).

    Aki nem programozott még GPU-t, egyszerűen nem látja MEKKORA a különbség a hagyományos grafika, és a TELJES szabadság között, amikor nincsenek API-k és szerelőszalag meg semmi sallang **ar. Van egy közös memória, és két külöböző célhardver ami látja. Valamennyi TOC és pár LOC (Throughput/Latency Optimized Core).

    Amit igazán nehéz tető alá hozni, hogy a CPU olyan feladatot kapjon, ami tényleg neki fekszik. Ha ki tudsz alakítani egy olyan algoritmust, aminek szerves része 1-2 ponton egy nagyon nem párhuzamosítható alrész, akkor ott sokat tudsz nyerni a CPU-s feldolgozással; máskülönben csak elvetted a chipen a helyet az IGP-től. Amit pedig ennél is nehezebb, az megspékelni az képet egy olyan TOC egységgel, ami egy lassú buszra van kötve. Az utófeldolgozós biznisz amivel a DX12-t reklámozzák súrolja ezt, de nem az igazi.

    Nagyon jó eséllyel amit itt is csinálnak, hogy ugyanazt a feladatot számolja a CPU és a GPU is. De ez így még mindig pazarlás. Ha viszont kitalálták hogyan lehet tökéletes terhelés felosztással etetni egy CPU-t nem párhuzamosítható, és egy GPU-t párhuzamos feladatokkal, akkor le a kalappal.

  • Meteorhead

    aktív tag

    válasz Whysperer #32 üzenetére

    Cinematikok esetében ami miatt nem használnak GPU-t, az hogy messze túl sok memóriát eszik a geometria és a textúrák. A render motorok már tudnának valamit kezdeni a GPU-val, de ritkán fér bele a jelenet a VRAM-ba.

    A DX12-es dGPU ad feladatot az IGP-nek az szép, de sajnos plusz lag árán teszi mindezt, és sajnos pont abban a szegmensben ahova szánják, ott számít a legtöbbet. Maga a demo is olyasmit mutatatott, hogy 22 FPS-ből csinál 27-et. Ez király, de a 22 jobb ha azonnal látom, mint a 27 ha plusz 1 frame késleletetéssel látom.

    Ennél már sokkal nagyobb értelmét látnám egy view frustrum cullingnak, ahol a dGPU számolná a képkocka 90%-át, míg az IGP csak a bal legszélét. Tetszőlegesen helyezhető a vágósík, hogy átlagosan helyes terheléseloszlás legyen. Bár a rendezés párhuzamosítható feladat, de amikor hektikus a memóriaelérés (mint amilyen egy ilyen std::partition(meshes.cbegin(), meshes.cend, ...); lenne), akkor ez a CPU-nak sokkal jobban feküdne. Ilyenkor a CPU nem shadereket futtat, nem raszterizál... az nem neki való. Csináljon olyat, ami szerves része a képalkotásnak, de nem GPU friendly.

    Értem amit mondasz, hogy ha unatkozik miért ne számolna GPU feladatot. Egy asztali gépnél ez még menne is, de egy notebooknál rossz technikával számolni valamit azt jelenti, hogy fölöslegesen terheled az amúgyis szűkös hűtőkapacitást. Gyorsabb lesz a játék, de cserébe a venti hangos helyett visító lesz.

Új hozzászólás Aktív témák