mboost-dp1

Nvidia

Nvidia bremser bevidst PhysX på CPU

- Via Real World Tech - , redigeret af Net_Srak , indsendt af AenimA

Fysikberegninger i f.eks. spil er meget omfattende at udregne, hvorfor firmaet Ageia i 2006 håbede på at skabe en succes med lanceringen af PhysX-kortet, der i hardware kunne foretage beregningerne meget hurtigt.

Kortet blev aldrig en succes, men Nvidia valgte i 2008 at købe firmaet og udvikle teknologien, så den kunne afvikles via deres grafikkort. Teknologien kan også afvikles via en almindelige processor, dog noget langsommere, men ifølge flere kilder, langsommere end nødvendigt.

Hos hjemmesiden Real World Technologies (RWT) har man kigget nærmere på software-implementationen af PhysX og kan konstatere, at den er baseret på instruktioner, der er optimeret til x87. x87 er flydende komma-instruktioner, der blev anvendt i ældre Pentium-processorer, som i stort omfang siden er blevet erstattet af bl.a. SSE2.

Ifølge RWT er der for Nvidia ingen grund til benytte x87-instruktioner til PhysX, da alt tyder på, PhysX kun gør brug af heltalspræcision. Hos RWT er man derfor ikke i tvivl om, at Nvidia bevidst har valgt denne fremgangsmåde, fordi optimeret kode, til f.eks. SSE, vil øge hastigheden med omkring 100 % og dermed mindske fordelen ved at benytte PhysX via en GPU.





Gå til bund
Gravatar #1 - ssboisen
12. jul. 2010 07:30
Det lyder bestemt ikke godt - fy ha' nvidia! - men de burde næsten implementere det til SSE2 og afprøve performance-forskellen.
Gravatar #2 - Silver Mane
12. jul. 2010 07:32
Man kunne lave en joke om deres sædvanlige slogan også videre, but let's not.

Udover det, er dette endnu et bevis på at firmaer så langsomt begynder at blande sig i alt for mange ting. De har retten til det, men dette er udelukkende for at få deres egne produkter til at stå bedre frem.
Gravatar #3 - Sikots
12. jul. 2010 07:40
#2 Naturligvis.
Man skal jo ikke udvikle et "fremmed" produkt så meget at det tager markedsandele fra ens primære forretningsområde...
Det er jo ikke super smart, at underminere den ene af sine fokusområder...
Gravatar #4 - Wickedmike
12. jul. 2010 07:40
På en måde forstår man jo godt at de bremser udviklingen på dette punkt, GPU'er er jo absolut det primære marked nvidia har med at gøre.

It's all about money.
Gravatar #5 - AvatarIsm
12. jul. 2010 07:42
Det er da helt go' nat at et firma som Nvidia der med vilje benytter sådan et legacy kode frem for optimal SSE2 der kan give mindst 100% mere performance.

Mon ikke at nogen andre der kan finde på at lave en mere "åbne" måde at gøre PhysX beregning der er baseret enten på SSE eller SSE2?

OpenPhysX ;)
Gravatar #6 - flatline
12. jul. 2010 07:46
Hvorfor bruge penge på at optimere teknologien til konkurrenternes produkter (Intel og AMD)?

Men dårligt for forbrugerne.

Og jeg synes det stiller NVidia i et dårligt lys, hvis de fleste af fordelene ved at bruge GPU til PhysX kan bortforklares ved at optimere koden og evt. bruge flere CPU kerner.
Gravatar #7 - Trentors
12. jul. 2010 08:05
Derfor man ikke skal bruge skod-kilder til sine nyheder. Der er altid flere sider af en sag - hvad med at kigge på dem?

http://arstechnica.com/gaming/news/2010/07/did-nvi...

Citat fra Nvidia:
Rege ultimately summed it up by arguing that if they weren't giving developers what they wanted, then devs would quit using PhysX; so they do give them what they want, and what they want are console optimizations.


Hvis Nvidia virkelig havde bremset PhysX uacceptabelt meget så havde en udvikler råbt op omkring det.
Gravatar #8 - AlienDarkmind
12. jul. 2010 08:12
Det er jo klart at de bræmser den udvilking, de ejer jo physx, det ville være en virkelig dårlig forretning at udvikle det til andres produkter.. Forventede ikke andet fra nogen..
Gravatar #9 - Silver Mane
12. jul. 2010 08:19
#8 Mjaa, men der er noget lidt større bag det. Har sagt det før, når firmaer udelukkende eksistere for at lave penge, er det forbrugeren der kommer til kort. Målet er ikke længere et godt produkt, men en god bottom line. Der selvfølgelig firmaer som klare sig godt og stadig tjener penge, men når man direkte laver software så andre ikke kan bruge det lige så godt, så bør man som forbruger og som tekniker spørge sig selv om det er i orden. Nogle af jer vil mene det er det, andre vil have en anden mening. Men min pointe er at for mange folk bare tager lort uden videre. Som forbruger bør vi være vågne omkring sådan noget, og ikke bare lige ned. Ellers bliver det bare værre i fremtiden.
Gravatar #10 - serpent
12. jul. 2010 09:17
Trentors (7) skrev:
Derfor man ikke skal bruge skod-kilder til sine nyheder. Der er altid flere sider af en sag - hvad med at kigge på dem?

http://arstechnica.com/gaming/news/2010/07/did-nvi...

Citat fra Nvidia:


Hvis Nvidia virkelig havde bremset PhysX uacceptabelt meget så havde en udvikler råbt op omkring det.



Har du så læst hele artiklen du refererer til ???

Her er konklusionen :

But still, when you boil it all down, we keep coming back to the point that it's so easy to switch from x87 to SSE, and x87 has been deprecated for so long, and it's so much to NVIDIA's advantage to be able to tout the GPU's superiority over the CPU for physics, that it's very hard to shake the feeling that there's some kind of malicious neglect going on. Think about it: if game developers really don't care that much about PC physics performance, and it's "good enough" with x87 code, why make a small change that might give the CPU an unneeded boost? Why not just let it struggle along at "good enough"?
Gravatar #11 - Mock
12. jul. 2010 09:26
tror nu ikke at Nvidia har intentionen i at tilbageholde CPU code frem for GPU da de jo har en konkurrent "Havok" som også laver physic engine, og derfor vel har sin interesse i at lave noget som er bedre end dem
Gravatar #12 - HerrMansen
12. jul. 2010 09:30
Mock (11) skrev:
tror nu ikke at Nvidia har intentionen i at tilbageholde CPU code frem for GPU da de jo har en konkurrent "Havok" som også laver physic engine, og derfor vel har sin interesse i at lave noget som er bedre end dem


De kan vel være ligeglade med om PhysX kører godt på CPU da de jo sælger physX som et GPU baseret system. Havok eller ej. :)
Gravatar #13 - Trentors
12. jul. 2010 09:37
#10
Det er DERES konklusion. I det mindste så hører de Nvidia's side af historien og jeg er enig i Nvidia's pointe: Hvorfor skulle man dog accepterer dette som udvikler hvis det er er problem?

Og firmaet har valgt at benytte sine ressourcer på konsollerne istedet. Så selvom det er let at lave til om til SSE så har det jo virket godt nok og "if it aint broke why fix it"?


Selvfølgelig skal firmaer sørge for kunderne har det bedste produkt men hvis der ikke er penge i at forbedre produktet så er de jo kyniske og lader være. Jeg siger ikke denne holdning er i orden men det kapitalismes grundprincip (læs:problem) og alle firmaer gør det.
Gravatar #14 - AenimA
12. jul. 2010 09:39
#7

Det kommer vist ikke bag på nogen, at Nvidia er uenig i RWT's konklusion. Men Ars Technicas artikel, som du linker til, er grundlæggende enig i RWTs analyse, men giver blot Nvidia mulighed for at svare.
Nvidias "vent på version 3.0 af PhysX.. der kommer engang næste år", "udviklerne har ikke efterspurgt mere ydelse, derfor har vi ikke optimeret PhysX til PC CPU yderligere" og "det var ikke bevidst, det er bare gammel kode" svar er ikke super overbevisende og kommer under alle tilfælde ikke til at diskreditere RWTs oprindelige artikel. I bedste fald nuancerer det blot konklusionerne imo.
Gravatar #15 - serpent
12. jul. 2010 09:45
#13

Det fremgår af artiklen at nvidia selv trasher deres kode og at 3.0 vil blive sse. Der er så nok bare MEGET længe om at komme.

Desuden vil jeg påstå det er broken når man let kan lave det 200% hurtigere. Det er helt sikkert ikke et spørgsmål om at spare et par timer på at lave det hurtigere. Det plejer de nok at kunne finde tid til!
Gravatar #16 - Trentors
12. jul. 2010 09:46
#14
Ja og det er fint nok problemet bliver påpeget, hvis det da er et problem. "Godt nok" er muligvis "godt nok".

Kan bare bedre lide ArsTechnicas approach med at høre begge parter og SÅ drage en konklusion. En anklage uden modpartens chance for at forsvare sig er ret entydig IMO.

Gravatar #17 - Trentors
12. jul. 2010 09:47
#15
Måske. Men hvorfor har udviklerne så ikke brokket sig før? Hvorfor skifter de ikke bare til Havok?
Gravatar #18 - serpent
12. jul. 2010 09:47
Det kan kun nvidia og udviklerne svare på.

Det ændre ikke en disse ved konklusionen:

Nvidia kører med gammel kode for at bevare en markedsfordel.
Gravatar #19 - Trentors
12. jul. 2010 09:56
Det er DIN konklusion.

Når alt kommer til alt ved vi kun at de køre med gammel kode som er ineffektiv. Vi antager bare at det er for at bevare en markedsfordel men vi ved det ikke.

Nvidias forsvar er hvorfor skulle de det og hvorfor har udviklerne ikke påpeget det eller droppet dem?


P.S.: Jeg har ikke aktier i Nvidia (hader "teknologi-religion") og er temmelig ligeglad med PC-gaming men jeg syntes bare deres argument er fornuftigt selvom det "lugter".
Gravatar #20 - serpent
12. jul. 2010 10:00
"Vi antager bare at det er for at bevare en markedsfordel men vi ved det ikke."

Er du ansat hos nvidia? bedre spin kan den sætning ikke få.

Omformuleret: "vi ved nvidia får en markedsfordel men vi ved ikke om det er derfor de gør det. Måske er de ligeglade med markedsfordele. Måske bekymre de sig ikke om penge....

Ingen kan sige noget med sikkerhed i denne verden, hvem ved om solen står op i morgen?
Gravatar #21 - Bllets
12. jul. 2010 10:10
"Vi antager bare at det er for at bevare en markedsfordel men vi ved det ikke."

Er du ansat hos nvidia? bedre spin kan den sætning ikke få.


Det er jo ikke spin, men at forholde sig til den information som er til rådighed, DU derimod finder forbindelser og tager konklusioner baseret på ren gætværk.

Det kan jo godt være at Nvidia bevidst gør det for hjælpe dem selv, men har du noget at har det i?
Altså udover hvilken slags instruktioner der bliver brugt?

Og ja, jeg er 100% ansat ved Nvidia som 20 årig student, er endda deres førende programmør inden for html og CSS!.
Kom med nogen reelle argumenter eller find nogen, 'personlige' angreb er spil af tid.
Gravatar #22 - terracide
12. jul. 2010 10:26
*LOL*

Fucking amatør David Kanter...

Denne tråd burde lære folk hvad der rent faktisk forgår:

http://forums.anandtech.com/showthread.php?t=20880...

TL:DR
Novodex var kodet til x87
AGEIA købte Novodex og omdøbte til PhysX
NVDÌDA køber AGEIA.

*klip til i dag*
David Kanter (IRL ven med Char-lie, fra semiaccurate) laver en rædderlig analyse og indikere 1-2x ydelse fordel ved at køre SSE.
Scali laver en test med Bullet physics.
Denne test viser maks 8% forskel.

Så svaret er at NVIDIA bare har kørt videre med samme x87 som de købte, der er ingen fusk...og en masse fanboy har gjort sig selv til grin.

Terra - Og SDK 3.0 er SSE og auto-multithreaded...
Gravatar #23 - Trentors
12. jul. 2010 10:28
#20
Du har aldrig hørt om "uskyldig indtil modsat er bevist" hva?

Der er en journalist der skriver noget som får almindelige brugere til at føle sig snydt fordi "godt nok" ikke lige pludseligt er "godt nok" og straks står folk med fakler og høtyve og vil spide en eller anden.

Jeg er ligeglad. PC gaming interessere mig ikke og da det gjorde valgte jeg BÅDE Nvidia og ATI kort - alt efter hvem der førte på det pågældende tidspunkt.

Så jeg forholder mig objektivt til hvad der bliver sagt og med en software-udviklers synspunkt. Alle får det jo til at lyde som man bare skal rette en linie kode og så er alting i orden. Men alle PROFESSIONELLE udviklere ved det IKKE bare er sådan.

Prøv at fjerne dine følelser og kig på hvad der bliver sagt:
- PhysX kører langsommere end det kan.
- PhysX kører godt nok. Ingen klager.
- Der er alternativer til PhysX hvis man ikke er tilfreds som udvikler.
- Ingen udvikler har bedt Nvidia om at forbedre det.
- Det er let at gøre PhysX langt hurtigere.
- Jeg siger at folk som siger at ændre et komma i kode = let at frigive enten er idioter eller ved nada om professionel software-udvikling.

Min konklusion: Ja Nvidia kan og vil gøre det PhysX hurtigere men det ville være dumt at give sig gøre sit produkt dårligere end konkurrenternes. Og det har jo virket fint (ingen klager!).

OG selvfølgelig er det ikke bare lige en hurtig ting at ændre sådan et produkt (hvor sindsyge langt er disse eksperter fra den virkelige verden??). Det kræver test og dokumentation UDOVER at ændre koden. Enhver ved at ofte er det let at ændre kode men alt det omkring-liggende er et helvede.
Gravatar #24 - Trentors
12. jul. 2010 10:31
Wow...Er enig med Terracide....Vildt ;-)

Nej Terra du har NOGEN gange nogle fornuftige pointer. Ville bare ønske du fremlagde dem mere diplomatisk ;-)
Gravatar #25 - serpent
12. jul. 2010 10:37
Det er ikke et personligt angreb, jeg kunne bare fornemme du er ansat hos nvidia, hvilket du så også er.

Jeg synes det kaster et lys over den iver hvormed du forsvarer firmaet.

Som svar på din post:

- PhysX kører langsommere end det kan.

Tak nvidia :D

- PhysX kører godt nok. Ingen klager.

Hurtigere er bedre.

- Ingen udvikler har bedt Nvidia om at forbedre det.

Flot at du som 20 årig ved så meget om hvad udviklere har sagt til nvidia,

- Det er let at gøre PhysX langt hurtigere."

Så gør det dog.


Tja hvis terra har fat i den lange ende sidder andre med den korte
Gravatar #26 - Trentors
12. jul. 2010 10:52
serpent (25) skrev:
Det er ikke et personligt angreb, jeg kunne bare fornemme du er ansat hos nvidia, hvilket du så også er.


Wauw igen trækker du vanvittige konklusioner ud fra manglende fakta. Jeg er IKKE ansat hos Nvidia og modsat dig - mogens - så står jeg ved hvad jeg siger og er ikke anonym. Så det burde være ret nemt at afgøre om jeg arbejder for Nvidia.

serpent (25) skrev:
Jeg synes det kaster et lys over den iver hvormed du forsvarer firmaet.


Måske skulle du læse Terracides indlæg og måske gøre op med dig selv hvorfor du med så stor iver angriber firmaet.

serpent (25) skrev:
Hurtigere er bedre.


Okay hvornår fatter du at hurtigere koster penge? Hvad forstår du ikke? Er du software-udvikler?

serpent (25) skrev:
Flot at du som 20 årig ved så meget om hvad udviklere har sagt til nvidia,


Nej det er da overhovedet ikke et personligt angreb.

Der står min fødselsdag-dato på min profil og selvom jeg skulle have snydt så skal man godt nok være en tumpe af kaliber hvis du tror jeg startede herinde som 10-årig...

serpent (25) skrev:
- Det er let at gøre PhysX langt hurtigere."


Du er tung at danse med hva? Jeg skriver at det er hvad der bliver sagt. Nedenunder skriver jeg:

Trentors (23) skrev:
- Jeg siger at folk som siger at ændre et komma i kode = let at frigive enten er idioter eller ved nada om professionel software-udvikling.



Sig mig hr. software-udviklings-ekspert. Er det nogensinde "let" eller "billigt" at ændre kode på udbredte produkter?
Gravatar #27 - serpent
12. jul. 2010 11:19
#26

Du ligger åbenbart i fejde med et par stykker hva? Det er jo helt underholdende :D

Hils Mogens, Peter, Jens, Ulrik, og alle de andre fra 1.U som du er uenig med.

SNAFU - lol
Gravatar #28 - Trentors
12. jul. 2010 11:31
Det er simpelthen alt du har? Efter det indlæg så fyrer du bare et eller andet af du trukket op af en hat.

Tja når man har været herinde i ti år møder man en del som bruger følelser istedet for argumenter og dem ender jeg ofte i en fejde med...

Men det er især fordi der er mange som tror det er her er Nationen! og tror de vinder et argument ved at sige grimme ting og komme med det sidste indlæg uden reelt indhold.


PS:
Har du tænkt dig at komme med nogle konkrete argumenter eller vil du bare lade stå for skue at du bare BS'er den?


PPS:
Ahhh nu er jeg med. Du kan simpelthen ikke overskue hvem du snakker med. Billets og jeg er ikke den samme. Og da Billets siger han arbejder for Nvidia så er det ironi.

Hint: HTML og CSS.

Hvordan dælen kunne du lige hoppe på den?
Gravatar #29 - TormDK
12. jul. 2010 11:32
#27 Det er da ikke at forsvare virksomheden at stille det op som han har gjort.

Det er fakta.

Hvis det kører godt nok nu, og ingen udvikler har pevet over det - Hvorfor bruge tid og penge på at lave det om? Hvorfor ikke holde focus der hvor udviklerne rent faktisk piver? If it isn't broken don't fix it.

Balmer har lært lektien da han sagde "Developers! Developers! Developers! Developers! Developers!" i flere minutter :P

Gravatar #30 - Trentors
12. jul. 2010 11:37
#29

Som Nvidia siger så har alle udviklere adgang til PhysX sourcen og alligevel compiler de det selv til x87. Så noget kunne tyde på at det ikke er så stort et problem eller det måske involverer lidt mere end bare at krydse en checkbox af i compileren ;-)
Gravatar #31 - TormDK
12. jul. 2010 11:46
#30 Præcis.

Jeg havde da sagt det samme hvis jeg var chef for en flok kode aber der sad med det produkt.

Hvis der ikke er nogen efterspørgsel (Eller hvis produktet kan det i forvejen, jeg er lige igang med at læse den tråd Terra henviser til) hvorfor pokker så bruge kodeabe tid på at lave noget om? Det giver da ingen mening, så kunne man lige så godt kaste tusindvis af kroner ud af vinduet.

Så hellere bruge tiden der hvor der er en efterspørgsel.
Gravatar #32 - Trentors
12. jul. 2010 11:51
Ja for ikke at glemme software-testningen som helt sikkert er heavy på sådan et produkt.

Jeg har selv prøvet et ændre ET tegn i en kodefil og kunne derefter bruger resten af dagen på dokumentation og test. Og det er intet i forhold til hvad et firma som Nivida oplever.

Det er jo heller ikke for sjovt at rulleteksterne på samtlige spil har langt flere navne på QA listerne end selve kodningen ;-)
Gravatar #33 - TormDK
12. jul. 2010 12:18
Derudover skal vi lige sige tak til Terracide #22 for at komme med et konstruktivt indlæg.

Lige pt ser det ud til at forskellen var ca 8%, og altså ikke de her 50-100%'s forøgelse der oprindeligt bliver lagt op til
Gravatar #34 - AenimA
12. jul. 2010 12:19
Jeg har tjekket de fleste fora igennem for svar og kritik af artiklen (som jeg selv indsendte) - og må indrømme at den oprindelige artikel fra RWT ikke holder vand ved nærmere eftersyn:

1) Nvidia har ikke bremset PhysX på CPU'en. De har bare valgt ikke at optimere koden. Det er ikke en stor forskel, men betyder blot at den oprindelige kode fra Ageia (som var lavet til deres dedikerede PPU) var x87 og Nvidia har bibeholdt koden i x87.

2) Tests af det konkurrende fysik system, Bullet, foretaget af Scali (på det link Terracide i venlig stil refererede til) på Anandtechs forum (bekræftet af Schmide fra samme forum og Andrew Lauritzen på B3D) viser at et 'enkelt' skift fra x87 til SSE2 kun giver en ydelsesforskel på ca. 8% (istedet for de ca. 100% som RWT spekulerer i). Skal vi antage at begge fysiksystemer skalerer nogenlunde ens, er RWTs konklusion i bedste fald meget overdrevet. Det er muligt at SSE2 kode kan give større ydelsesforskelle til både Bullet og PhysX, men så er det ikke længere en simpel optimering, som artiklen foreslår.

fra Andrew Lauritzen på Beyond3Ds forum:

Minor gains over just the compiler option. There is small use of SIMD instructions in this mode but it's mostly opportunistic AoS stuff in the small vector library routines so I'm pretty sure that more could be done with some data structure re-arranging. Thus I don't think 1.5x (50%) improvement or more from pure x87 -> SIMD SSE2 is unreasonable but it would require some work (at least in bullet). I still think it's worth it though

Anyways food for thought. Obviously the results in PhysX could be different.


fra Scali på Anantechs forum

I never denied that SSE would improve the code, I just said it wouldn't improve it by 1.5-2x, not nearly.
Thanks for confirming that my Bullet tests were fair.
8% performance is not really 'hobbling the CPU'. It will be barely measurable in an actual game. Not saying that nVidia shouldn't enable SSE... but just that it's not really going to matter in terms of CPU PhysX vs GPU PhysX, so DKanter's claims are pretty much unfounded.


3) Som det er nævnt før, så er det op til udviklerne at vælge at bruge flere kerner på CPU med PhysX.

Så jeg får det her ud af hele diskussionen:

Det er helt sikkert at havde Nvidia ikke solgt GPU'er, så havde vi nok også set en meget tidligere implementering (og optimering) af SS2 kode, men konsekvensen af at holde fast i x87 koden virker umiddelbart langt fra så drastisk som artiklen gør det til, og hvis Nvidia er skyldig i noget - ud fra hvad jeg kan se - er det højst sløseri.
Storm i et glas vand. Jeg undskylder.



Gravatar #35 - Trentors
12. jul. 2010 12:46
#AenimA

Kudos til dig. Det er klasse at man så følger op på tingene som du gør og vender tilbage på den måde.

Det er seriøst god stil og noget som man bestemt ikke ser tit herinde eller på andre fora. Jeg er virkelig imponeret :-)
Gravatar #36 - AenimA
12. jul. 2010 13:37
#35

Tak :)
Gravatar #37 - RMJdk
12. jul. 2010 16:14
Derfor det er skidt det kun er Nvidia som bruger Physx, Det skal være noget Alle kan bruge sådan der kan komme konkurrence.

Håber ihvertfald snart nogen kommer med en konkurrent.
Gravatar #38 - terracide
12. jul. 2010 16:27
#37:
ADM har sagt nej til en PhysX licens...peg fingre af dem for kun at komme med tom luft siden 2006:
Gå til top

Opret dig som bruger i dag

Det er gratis, og du binder dig ikke til noget.

Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.

Opret Bruger Login