Vai PhysX uz GPU tiešām ātrāks nekā uz CPU?

Sākumlapa Forumi Notepad.lv IT ziņas Raksti Vai PhysX uz GPU tiešām ātrāks nekā uz CPU?

Tiek skatīts 8 ierakstu – 1 līdz 8 (no 8 kopumā)
  • Autors
    Ieraksti
  • #151640
    nameisis
    Participant

    [imgl]https://notepad.lv/userpix/28_phys_1.jpg[/imgl]Pagājušajā nedēļā internetā ir parādījies interesants pētījums par PhysX tehnoloģiju, un par to, kā tiek iegūts 2 līdz 4 reizes lielais paātrinājums, nekā izpildot šo pašu procesu ar procesoru. Pētījumā izmantota Cryostasis spēle un Dark Basic PhysX Body Demo. Labi zināma ir arī problēma, ka ja datora tuvumā parādās ne tik zaļa videokarte, PhysX aprēķini tiek pārmesti uz procesoru, rezultātā pat ja tiek lietots Intel`a seškodlnieks kopā ar HD5970 kadru skaits sekundē nokrītas līdz nožēlojamam līmenim.

    [imgr]https://ascal.files.wordpress.com/2008/08/nvidia_logo23.jpg[/imgr] Nvidia, kā jau tas šai kompānijai iegājies, kārtējo reizi izmanto ne tās pašas godīgākās metodes, lai pierādītu cik tā ir laba un konkurenti slikti. Lai panāktu, ka Nvidia`s grafiskie procesori spēj veikt fizikas aprēķinus ātrāk par centrālajiem procesoriem, tiek veiktas divas darbības, rezultātā pat visjaudīgākie Intel`a procesori ir daudz lēnāki veicot PhysX aprēķinus nekā Nvidia`s videokartes.

    1. PhysX kods liek procesoriem veikt peldošā punkta aprēķinus ar x87 instrukcijām nevis ar SSE un to jaunākām revīzijām.

    2. PhysX aprēķiniem tiek izmantots tikai viens pavediens (thread) neatkarīgi no pieejamo kodolu vai pavedienu skaita operētājsistēmā.

    Veicot fizikas aprēķinus ar arhaiskām x87 instrukcijām tiek mērķtiecīgi bremzēts procesors, neizmantojot pilnīgi tā iespējas. Praktiskais ieguvums ir apmērām 2 reizes1 , bet teorētiskais līdz pat 4 reizēm. Tā kā SSE instrukcijas ir 128 bitu, tad vienā ciklā ar to var veikt četrus 32 bitu aprēķinus (PhysX aprēķinos izmanto 32 bitu peldošo punktu). Zinot, ka SSE instrukcijas tika ieviestas procesoros sākot no PIII laikiem, nav nekāda iemesla tās neizmantot, vēl pievienojot faktu, ka 64 bitu operētājsistēmās x87 instrukcijas ir izņemtas no kodola (kernel), lai gan izmantot tās vēl varot.

    Citāds:

    “In 64-bit versions of Windows, x87 is deprecated for user-mode, and prohibited entirely in kernel-mode. Pretty much everyone in the industry has recommended SSE over x87 since 2005 and there are no reasons to use x87, unless software has to run on an embedded Pentium or 486.”

    [img]https://www.realworldtech.com/includes/images/articles/PhysX-2.png[/img]

    Mūsdienās praktiski visi procesori ir vismaz divkodolu un liela daļa ir četrkodolu. Jebkurš sevi cienošs spēļuks neizmanto vairāk par diviem kodoliem, pat tos nenoslogojot maksimāli. Teorētiski būtu iespējams veikt fizikas aprēķinus ar atlikušo jaudu vai kodoliem, Nvidia gan tā nedomā. Var jau vainu novelt uz to, ka grūti kodu optimizēt, bet tā kā PhysX labi strādā uz konsolēm un tiek izmantoti visi Cell procesora kodoli (neskaitot Wii, kuram ir vienkodola procesors), pie tam nevienai konsolei nav grafisko procesoru, kas atbalstītu CUDA. Atgādināšu CUDA atbalsts GeForce videokartēm ir tikai sākot no 8. sērijas, kas esot nepieciešams, lai PhysX darbotos. Lai gan tas netraucē PhysX mierīgi darboties uz konsolēm – PlayStation 3 ir tikai NV47 jeb G70 grafiskais procesors, un pārējām divām ir ATI grafiskie procesori. Ļaujot izmantot brīvos procesoru kodolus, varētu panākt praktiski lineāru ātrdarbības pieaugumu atkarībā brīvo kodolu skaita.

    Ja šo visu pavērstu otrādi, respektīvi, izmantotu tikai vienu videokartes šeideru procesoru, rezultātā Nvidia`s rezultāti jādala ar 480, 240, 128 vai ar kādu citu skaitli atkarībā no kartes. Klāt ņemot SSE instrukciju neizmantošanu, var panākt vairāk kā tūkstoškārtīgu paātrinājumu, veicot aprēķinus uz procesora nevis videokartes. Š is pētījums kārtējo reizi parāda, ar ko nodarbojas Nvidia`s PR un mārketinga nodaļas pēdējā laikā.

    Avots

    (1) https://www.geeks3d.com/20100711/test-simple-x87-vs-sse2-performance-test-with-matrix-multiplication/

    #241258
    Stat1CX
    Participant

    Sen zināms ka physx ir buļlu kakas, tīrākais mārketinga triks, nav vajadzīgs nekāds tur GPU lai apstrādātu fiziku. Havok fizikas dzinējs to ļoti smuki dara ar CPU palīdzību, bez nekādas bremzes un aizķeršanās.

    #241259
    Crow
    Participant

    Pag, pag, draugi, lēnām pār tiltu. Ja jau fizikas efektus var baigi labi veikt ar dažkodolu CPU, tad varbūt vispār grafiskās kartes kā tādas ir lieka stulbība?

    Atbilde ir tāda, ka šos fizikas efektus (ja tā vispār var saukt gan Havok, gan PhysX necilo sniegumu) spēlītēs praktiski neizmanto. Es tā kā neesmu arī redzējis spēlīti, kur šie fizikas vai citi aprēķini tiktu pielietoti puslīdz jēdzīgi. Katrā reviewā gadus desmit par topu spēlītēm jau raksta, ka ūdens ir reālistisks, zāle reālistiska, nokrišņi reālistiski (pēdējie droši vien tāpēc, ka kruti skaitās uzmest uz ekrāna pixelšeiderotas lāses, radot iespaidu, ka es uz to pasaulīti skatos caur stikliem, pat ja man brilles nav uz acīm)… da tas viss ir sviests. Š…emot vērā, ka jaudas (un TDP) pieaugušas ģeometriskā progresijā, kvalitāte gājusi uz augšu baigi lēnām. Modē tagad ir uzskrūvēt kontrastu, muldēt par kkādu HDR (kaut neviens consumer video standarts to neatbalsta un neviens monitors to nevar attēlot, tātad atkal spēlēšanās ar kontrastu tikai) un piemest motion blur (ar viltīgām krāsiņām), lai nebūtu redzamas cūcības.

    Vienīgi Bad Company 2 mani pārsteidza ļooti patīkami. DICE meistardarbs, pat auduma šķērssvītrojums uz cepures (kaut tā ir tik tekstūra ar bump-mapping), ir redzama. Havok sniegums gan ir suboptimāls. Taču uz kopējā fona jāsaka, ka tomēr izcils. Metro 2033 gan neesmiečekojis; tam vajadzētu būt vai nu pēdējai naglai vai pirmajam trumpim. Un lieku kreisās kājas īkšķi, ka būs pirmais minētais.

    P.S. Es piekrītu, ka PhysX sako. Bet veikalings paliek veikalings – kas māk, tam nāk.

    #241260
    shb-
    Participant

    nameisis wrote:

    Jebkurš sevi cienošs spēļuks neizmanto vairāk par diviem kodoliem, pat tos nenoslogojot maksimāli.

    Š im gan īsti negribētos piekrist, manuprāt, ir tieši otrādi – jo labāka spēle, jo optimālāk cenšas izmantot piedāvātos resursus, tb, izmantot visas kores, un maximāli (labi, varbūt ne maximāli, bet vismaz tā, lai būtu balanss starp cpu:gpu noslodzi), lai panāktu labākus fps.

    Neesmu pētījis par šo tēmu, bet kā es to redzu (brīdinu: sekos minējumi) – visticamāk, ka x87 instrukcijas tiek izmantotas, jo tās tiek atbalstītas nvidia gpu, vai arī triviāli translējas uz nvidia gpu instrukcijām. Tātad, visticamāk, problēma ir programmatūrā, kas šīs instrukcijas laiž/kompilē uz cpu draudzīgu kodu. Varbūt slinkums, varbūt nevēlēšanās, varbūt grūti, varbūt visi 3. Bet par to, ka uz konsolēm fizix iet labāk – vai nevarētu būt tā, ka konsoļu proči labāk tiek galā ar šīm x87 lietām? Vēl varētu būt tā, ka konsoļu ražotāji ir iešķiebuši nvidia žūksnīti (vai paši kko saķīlējuši), lai x87 tiktu darbinātas ātrāk. Bet vispār es te tikai spriedelēju, būs brīvākā brīdī jāparesearcho.

    #241261
    Nonmod
    Participant

    shb- wrote:

    nameisis wrote:

    Jebkurš sevi cienošs spēļuks neizmanto vairāk par diviem kodoliem, pat tos nenoslogojot maksimāli.

    Š im gan īsti negribētos piekrist, manuprāt, ir tieši otrādi – jo labāka spēle, jo optimālāk cenšas izmantot piedāvātos resursus, tb, izmantot visas kores, un maximāli (labi, varbūt ne maximāli, bet vismaz tā, lai būtu balanss starp cpu:gpu noslodzi), lai panāktu labākus fps.

    Neesmu pētījis par šo tēmu, bet kā es to redzu (brīdinu: sekos minējumi) – visticamāk, ka x87 instrukcijas tiek izmantotas, jo tās tiek atbalstītas nvidia gpu, vai arī triviāli translējas uz nvidia gpu instrukcijām. Tātad, visticamāk, problēma ir programmatūrā, kas šīs instrukcijas laiž/kompilē uz cpu draudzīgu kodu. Varbūt slinkums, varbūt nevēlēšanās, varbūt grūti, varbūt visi 3. Bet par to, ka uz konsolēm fizix iet labāk – vai nevarētu būt tā, ka konsoļu proči labāk tiek galā ar šīm x87 lietām? Vēl varētu būt tā, ka konsoļu ražotāji ir iešķiebuši nvidia žūksnīti (vai paši kko saķīlējuši), lai x87 tiktu darbinātas ātrāk. Bet vispār es te tikai spriedelēju, būs brīvākā brīdī jāparesearcho.

    Crysis – optimizēts kā mana pēcpuse automaģistrālei.Negribās spēlēt to igru,kad paskaties kādi memory leaki un kodolu noslogojums – vobše gafno.

    #241262
    nameisis
    Participant

    Jāizlasa viss avots, lai saprastu par ko runa.

    X87 instrukcijas tiek izmantotas no PhysX sākuma, kad vēl viss piederēja Aegia, ar tieši tādu pašu domu, lai pierādītu cik karte laba un ka ar CPU nepietiek priekš “foršiem” efektiem. Nvidia vienk. visu turpina, jo tas liek izskatīties viņu videokartēm labāk nekā ir patiesībā.

    Tagad gan lasot PR atbildes uz rakstiem netā var redzēt ka Physx 3.0 versijā tiek solīts SSE un multi-threading atbalsts, šobrīd ir versija 2.wtf.

    #241263
    Imhoteps
    Participant

    Pēdējos pāris gadus no NV neesmu dzirdējis neko vairāk par skaļiem paziņojumiem un “papīra prezentācijām” – “būs labi”, “mums jau ir prototips”, “mēs visus izbirstēsim bez lubrikanta” un tādā garā. Hrestomātiski noFEILojuši ar Fermi. IT pasaule ir kā sports – un lielais sports ir nežēlīgs, rezultāts vai nu ir, vai nu nav. Radeon HD 5xxx IR REZULTÄ€TS. Ne Fermi.

    Bet NV и хочется, и колется, i` paši nesaprot, ko lai tagad dara – vai pievērsties zinātniski laboratoriskiem aprēķiniem, vai ražot mikrokodolstacijas un mierināt jūizerus, ka “mūsu kartes atbalsta CUDA”, vai arī vienkārši izmantot neglītus paņēmienus ar aprēķinu instrukcijām fiziks-šmiziks tehnoloģijās, kuras nekad nevienam tā īsti nav bijušas vajadzīgas un saprotamas. Š ķiet, NV ķeras pie jebkura salmiņa, tik metožu izvēle tāda stipri apšaubāma…

    Tanī pat laikā geimeri neinteresē iespēja darbināt FoldinHome, geimeri interesē, vai uz konkrētas kartes var uzrambāt Dirt 2 bez lagiem.

    Esmu ilgus gadus bijis NV fans, bet tas, ko redzu pēdējā laikā, man it nemaz nesimpatizē. Un rakstā minētais mani absolūti neizbrīna. Pat ļoti cienījamas piezīmes atrodamas rakstā. +1

    #241264
    Gensek
    Participant

    Nvidia pēdējā laikā brauc auzās, ne tikai tehnoloģiju zinā, bet arī ar cenu politiku. Ja agrāk Nvidia kartes bija par 10-30% dārgākas un pussoli priekšā ATI, bija skaidri redzama jēga viņas pirkt, tad tagad, jebkurš pēc 5 minūšu reserča būs izbrīnīts par price/performance atšķirību. Tā pat arī ar procesoriem, ja nav vajadzīgs hi-end, amd cenu ziņā saliek intel.

    P.S. Holywar’us uzsākt man nav nemazākās vēlēšanās, un pēdējajās dienās notepad parādās tiešām lieliski raksti, jo lasīt par to cik krutu televizoru izlaidusi “vadošā kompānija inovāciju jomā” diez vai kādu tā patiešām interesē

Tiek skatīts 8 ierakstu – 1 līdz 8 (no 8 kopumā)
  • Jums ir jāpieslēdzas sistēmai, lai varētu komentēt šo tēmu.
Jaunākais portālā