Nvidia maakt PhysX-engine open source

Nvidia's PhysX, een engine voor het simuleren van physics, is vanaf nu open source. Het bedrijf achter de technologie en de GeForce-videokaarten zegt dit te doen, omdat zou zijn gebleken dat physicssimulatie veel belangrijker is geworden dan voorheen werd gedacht.

Nvidia stelt dat het simuleren van physics heel goed aansluit bij ontwikkelingen op het vlak van onder meer kunstmatige intelligentie, robotica, computer vision en zelfrijdende voertuigen. Het bedrijf stelt dat physicssimulatie het fundament is voor heel veel dingen. Bijvoorbeeld bij ai zorgt PhysX voor een artificiële representatie van de echte wereld, zodat neurale netwerken kunnen worden getraind.

Nvidia hoopt waarschijnlijk dat het gebruik van PhysX op deze terreinen toeneemt, nu het de broncode heeft vrijgegeven onder de zogeheten 3-clause BSD-licentie. Volgens Nvidia is PhysX nu de enige oplossing die gratis is, gebruikmaakt van gpu-acceleratie en in staat is met grote virtuele omgevingen te werken. De broncode van PhysX sdk-versie 3.4 is nu beschikbaar op GitHub. Nvidia heeft inmiddels ook een trailer uitgebracht voor software development kit 4.0 van PhysX, die op 20 december uitkomt.

De PhysX-sdk is vele jaren geleden ontworpen door Novodex, wat in 2004 werd overgenomen door Ageia. Dit bedrijf werd vervolgens door Nvidia opgekocht in 2008. Daarna was het veelal onderdeel van de Nvidia-gpu's, al werkt de engine niet alleen op gpu's maar ook op cpu's.

Door Joris Jansen

Redacteur

03-12-2018 • 18:06

57

Submitter: NiLSPACE

Reacties (57)

57
53
24
3
0
11
Wijzig sortering
Ongeveer een decennium geleden introduceerde Nvidia de PhysX-engine, nadat het bedrijf Ageia Technologies werd ingelijfd. Daarna was de engine veelal onderdeel van de Nvidia-gpu's, maar die exclusiviteit wordt nu losgelaten.
PhysX SDK is al veel ouder dan 2008.. Niet eens door Ageia ontworpen maar door Novodex. Nvidia heeft alleen de PPU de prullenbak in gedaan en omgezet naar GPGPU. PhysX werkt overigens prima op de CPU.
PhysX werkt overigens prima op de CPU.
inmiddels wel, maar nvidia zou nvidia niet zijn als ze niet eerst geprobeerd hadden het te gebruiken om hun GPU's er beter uit te laten zien dan ze in werkelijkheid waren. In dit geval deden ze dat door de CPU oplossing te compileren met alleen hele oude instructies (x87) en niet met moderne SSE2 of beter. daardoor had je wel hun GPGPU oplossing nodig om er vol gebruik van te maken. anders moest je het met met afgezwakte physics doen met minder particles/brokstukken)

later zijn ze daar wel vanaf gestapt, toen er ook andere physics oplossingen kwamen waarmee ze direct moesten concurreren.
Dacht eerder dat ze multithreading cripplen . Highend cpu met 4 cores en SMT konden ook extra physX aan omdat de CPU load gericht is op mainstream wat dus een budged of midrange cpu aan moet kunnen.

Daarnaast help een highend CPU ook cuda gpgpu omdat deligeren ook sneller op gang komt en de gpu meer frametime beschikbaar heeft om zijn ding te doen. Ook dat render en compute task mekaar minder in de weg kan zitten.
Zo op het oog een goede zaak. Op deze manier kunnen andere vendors zoals intel en AMD ook inzicht krijgen in hoe je deze zaken kan versnellen op een GPU.

Het altruïstische motief dat wordt aangehaald lijkt me niet echt de reden die nVidia kan hebben bewogen om deze zet te maken. Ik vraag me dus af wat nu de werkelijke motivatie is achter deze zet. Is PhysX nu een achterhaalde technologie en dus niet meer zo belangrijk voor nVidia?
Ik denk dat je het antwoord op die vraag kan afleiden uit het aantal games dat de afgelopen jaren is uitgekomen met ondersteuning voor PhysX: (bron)
2018: 0 games
2017: 2 games, waarvan 1 alleen op de CPU
2016: 7 games, waarvan 1 door Nvidia zelf gepublished is als tech demo
2015: 6 games, waarvan 1 alleen op de CPU

Nou zijn er ook niet-game gerelateerde softwarepakketten met PhysX, maar daarvan is volgens mij alleen Autodesk een relevante vermelding. Natuurlijk ook de Futuremark benchmarks, maar dat vind ik ook niet echt meetellen.

TL;DR: vrijwel niemand gebruikt PhysX, dus ze hopen het hiermee waarschijnlijk nieuw leven in te blazen.

Edit: deze lijst is volgens mij wel exclusief de GameWorks titels

[Reactie gewijzigd door TweakingRens op 22 juli 2024 17:30]

Die lijst is verre van compleet. Unity en Unreal Engine maken gebruik van PhysX, en ik kan je garanderen dat er meer dan 2 games zijn uitgekomen in 2017. Volgens mij heb ik er zelf al twee gemaakt dat jaar ;)

[Reactie gewijzigd door Wolfos op 22 juli 2024 17:30]

Gameworks is toch wel echt iets anders als PhysX. PhysX wordt door onder andere Unity3D en Unreal Engine 4 gebruikt en zit dus in best wel enorm veel spellen.
Bron: https://docs.unrealengine.com/en-us/Engine/Physics https://docs.unity3d.com/Manual/UpgradeGuide5-Physics.html
PhysX word ook in Unreal Engine 4 by default gebruikt voor alles wat met collision detection te maken heeft. Dus je mag ook elk uitgebrachte UE4 game toevoegen aan het lijstje.
AMD heeft dat allang met Bullet dat via OpenCL op de GPU versnelt wordt en Bullet is via een zlib license open source
AMD heeft hun eigen oplossing (TressFX).

Het is slecht gaande met Nvidea waardoor het dus op deze manier vrijgeven is.

AMD hamert er lekker op los met hun CPU en GPU prima. Mijn volgende build wordt een AMD build.

[Reactie gewijzigd door theduke1989 op 22 juli 2024 17:30]

Je denkt nu volgens mij aan Nvidia hairworks, daar gaat het helaas niet over in dit artikel.
"Het is slecht gaande met Nvidea"

1) Het bedrijf heet nVidia.
2) link
NVIDIA today reported revenue for the third quarter ended Oct. 28, 2018, of $3.18 billion, up 21 percent from $2.64 billion a year earlier, and up 2 percent from $3.12 billion in the previous quarter.

GAAP earnings per diluted share for the quarter were $1.97, up 48 percent from $1.33 a year ago and up 12 percent from $1.76 in the previous quarter. Non-GAAP earnings per diluted share were $1.84, up 38 percent from $1.33 a year earlier and down 5 percent from $1.94 in the previous quarter.
38-48% winststijging in een jaar tijd noem jij "slecht gaande"?
AMD heeft iets met Bullit SDK.

Maar Havok en PhysX liggen kwa markt leiders daar op ver voor.
bullet is een open source physics engine, gemaakt door Erwin Coumans. en die heeft voor sony en AMD gewerkt, en werkt nu bij google. maar het is niet iets daar door AMD is ontwikkeld (maar wel gesteund)
TressFX heeft is inderdaad voor haren, vacht en gras bijvoorbeeld.
Zo slecht gaat het niet met Nvidia vergeleken met AMD. AMD heeft een daling van +-30% in aandelen. Nvidia zo +-48%.
Als je dan gaat vergelijken wat de aandelen nog waard zijn...
Anoniem: 1128097 @ocf814 december 2018 14:11
nVidia probeert een wit voetje te halen omdat AMD namelijk zo lekker ligt bij grote groepen wegens open source kijk op dingen van AMD. Ik wijs naar Torvaldis als we het over nVidia hebben.

https://www.youtube.com/watch?v=IVpOyKCNZYw
Houdt dit ook in dat physx niet meer voorbehouden is aan Nvidia GPU's?
Dat was altijd al. De delen die op de GPU draaiden heetten altijd APEX, maar dat zijn nu aparte GameWorks projecten.

PhysX zelf draait op de CPU, en is niet voorbehouden aan een bepaalde fabrikant.
Met een nvidia kaart draaide physx dus altijd op de gpu en niet de cpu.
En dat was het voordeel van nvidia omdat een gpu daar beter in is.
Nu kan amd het in zijn gpu en drivers gaan supporten en daarmee de cpu zwaar ontzien. Het is met een amd gpu systeem namelijk extreem belastend coor de cpu daar waar het voor een nvidia gpu een eitje is.
Nou nee gpgpu physx moet developer enablen door ten minste een gpu check.
In het begin is de gpu beter in hoog geschaalde finegrain physics zoals fluid dust simulatie en gegenereerde destructie. Maar een CPU Physics load is licht dus dan hoeft een developer niet dat extra werk te doen om dat te deligeren naar GPU die ook al een zware taak heeft. Gezien de meeste gamers geen highend kaart hebben en ook meestal geen extra kaart voor PhysX.
De CPU heeft voor common physics wat nu geimplementeerd wordt ruim voldoende rekenkracht en met core war kunnen CPU nog beter mee komen.

Cuda GPU PhysX wordt enabled als de dev wat extra effects physics willen doen.
Vaak ool met extra zware physics optie in setting menu.

De meste crossplatform titels die PhysX gebruiken doen niks met cuda gpgpu.
Die weinig die wel die extra doen weet je iig dat ze meer dev resources in de PC port doen en voornamelijk de GFX met effect physx verrijken.
Volgens mij kan je met nvidia in de drivers toch echt kiezen wat je physx afhandelt al staat hij standaard op cpu.
https://s3.amazonaws.com/.../12192427/physx-1-en1.gif

misschien dat dit gewoon cpu physx die nvidia kan offloaden naar de gpu maar dar kan AMD nu dus ook gaan doen in drivers en gpu support of er daarnaast nog een andere vorm van physx is kan best maar die zit dan in geen enkee game want vooralsnog draait alles gewoon op de gpu.
Nog een reden trouwens waarom AMD cpus het soms zwaar hebben in gaming en ik een vidia kaart noodzakelijk vind.

Ben toevallig nu opnieuw met borderlands 2 bezig en daar kan je gewoon alle physx effecten aanzetten op je cpu maar je kan er ook voor kiezen om in de drivers het op gpu te zetten. de effecten zijn exact hetzelfde (en best wel zwaar voor een cpu)
Game uit 2012 btw.
Tot nu aan dus wel, ook al draaide het op de CPU, het was nog steeds gebonden aan Nvidia en Nvidia was degene die developers in staat stelde om PhysX te gebruiken, nu dus niet meer.
Je moest een Nvidia developer account hebben om bij de PhysX broncode te komen, maar je had echt geen Nvidia GPU nodig om het te gebruiken. Dat geld alleen voor de onderdelen NVCloth, Blast, Flex en Flow. Deze maken wel gebruik van PhysX, maar zijn aparte onderdelen. APEX zit nog wel bij PhysX in, maar is deprecated.

De Unity game engine maakt bijvoorbeeld gebruik van PhysX, maar heeft nooit de GPU accelerated onderdelen geïmplementeerd. Vrijwel iedere (3D) Unity game maakt gebruik van PhysX, en die werken ook op Intel of AMD GPU's.
Nee de werken dan uitsluitend op CPU
De gpgpu implementatie is cuda dus is alleen gschikt voor cuda cores dus gpu met die hardware implematatie van shader.core
Neem het laatste stukje tekst nog eens door.

"Ongeveer een decennium geleden introduceerde Nvidia de PhysX-engine, nadat het bedrijf Ageia Technologies werd ingelijfd. Daarna was de engine veelal onderdeel van de Nvidia-gpu's, maar die exclusiviteit wordt nu losgelaten."
Goed punt, tekst meerdere malen doorgenomen maar toch gemist. Thanks!
Geen idee, maar PhysX SDK was ooit de novodex SDK
ondersteubd ten eerste CPU van PC en Consoles én met de overname kwam er de optie om Cuda Capable GPU te ondersteunen als optie. Vele dev gebruiken die optie niet.

Het is dus ten eerste CPU
Novodex naar Ageia PhysX kwam PPU ondersteuning
Nvidia PhysX kwam daarbij Cuda capable GPU bij en met de tijd PPU depricated.

SDK ondersteund andere GPU niet.
Om die te ondersteunen moet men de Cuda source implementatie porten naar OpenCL of DX compute of C++AMP . Dus uitbreiding voor ondersteuning van alle GPU.

Geen idee of die licentie dat toelaat.
Het hangt inderdaad volledig van de licentie af. Preciezer: welke EULAs *ook* van toepassing zijn, maar niet zijn genoemd. Het is wel duidelijk dat het niet naar gaming-platformen (AMD toevallig) geporteerd mag worden, dus DirectX zal niet 123 gebeuren.

Porteren is niet 100% nodig, omdat diverse solvers al eens geïmplementeerd zijn voor Intel, ARM en AMD.
Goed nieuws, maar wel heel toevallig getimed. De koers van Nvidia is behoorlijk gekelderd sinds november (vanwege tegenvallende RTX-prestaties) dus dit nieuws komt ze erg goed uit.

[Reactie gewijzigd door SomerenV op 22 juli 2024 17:30]

Een soort van backup plan, mocht de koers inderdaad kelderen dan geven ze wat vrij om hun imago wat op te krikken.

De volgende stap is G-Sync mocht de koers in de toekomst weer naar beneden gaan.
Dat word volgens mij wat lastiger aangezien daar hardware voor nodig is in de monitor ;) Ik denk eerder dan dat ze dan zelf ook freesync/vrr ondersteuning gaan toevoegen.
ten eerste is er eigenlijk stieken geen extra hardware nodig in de monitor, zie laptop schermen met gsync.

ten tweede staat de nieuwe displayport standaard er aan te komen, met als toevoeging adaptive sync, wat compatibel wordt met freesync. dus elke monitor die de nieuwe displayport standaard ondersteunt zal freesync ondersteunen, gsync only monitoren zal je binnenkort dus niet meer vinden tenzij ze de displayport versie niet zouden volgen, wat hoogt onwaarschijnlijk lijkt. ze zullen dus niet veel keuze hebben dan adaptive sync te gaan ondersteunen met hun videokaarten als ze de nieuwe displayport versie er op willen.
nVidia eist dan hun Rasterizer kaching en standaard adaptive sync te blokeren voor certivicering voor gsync logo.
Het is en blijft een bedrijf hè, dat Nvidia.
Ja tuurlijk joh, alsof aandeelhouders dit nieuws uberhaupt interesseert en dat daardoor de koers ineens omhoog gaat..
Ik weet niet hoe je erbij komt maar de koers van Nvidia heeft niks te maken met de prestaties van hun videokaarten.

De koers is net als die van andere bedrijven in Amerika gekelderd eerst door de renteverhoging van de Fed.

En daarna door tegenvallende kwartaalcijfers, daarnaast was de koers de afgelopen jaar al behoorlijk gestegen en zat een correctie er sowieso aan te komen.
"Het bedrijf achter de technologie en de GeForce-videokaarten zegt dit te doen, omdat zou zijn gebleken dat phsyicssimulatie veel belangrijker is geworden dan voorheen werd gedacht."

M.a.w.: "andere technologieën winnen terrein en wij willen ons marktaandeel terug".

Ben benieuwd hoe lang 't duurt tegen dat devs er in slagen om 't met deftige prestaties door AMD GPU's te laten versnellen. En of dit Nvidia GimpWorks minder dramatisch gaat maken als je de games op Radeons draait.
Moet er middleware Physics SDK van niveau komen die GPGPU Physcs en dat ook nog eens GPU vendor onafhankelijk implementeert.
Die laatste scene in het filmpje vind ik wel zeer interessant.

Het geeft goed aan hoe machine learning op software niveau uiteindelijk naar hardware toepassing zou doorgetrokken kunnen worden.
Ik ben vooral benieuwd in hoeverre wat er geleerd is in software daadwerkelijk naar de 'echte wereld' overgebracht kan worden. Ik kan me voorstellen dat dat toch wel andere koek is.
typo'tje: HitHub -> github
En niet github maar GitHub. ;)
Alsnog GitHub dan maar :P
En niet github maar GitHub. ;)
rofl pot en ketel :) yup
Ik dacht dat Tweakers eindelijk West-Vlaamse vertaling had :)
Dit geeft mij een fijn gevoel. Vroeger wilde ik altijd een PhysX kaarr hebben in mijn pc om PhysX in games sneller en beter te laten lopen puur uit interesse. Totdat, de GTX varianten van toen genoeg shaders units hadden om PhysX naast polygons konden simuleren.

Mooi om te zien dat PhysX opensource is nu. De mogelijkheden zijn onbeperkt. Kijk naar het menselijk lichaam!
Ik heb 3 PC naast mekaar gehad elk aan 19" CRT trinitron elk met Asus P1 PhysX kaart erin.
En Ghost Recon Advanced Warfighter gespeeld in vol effect physX ornaat.

Het probleem met de P1 PPU is het werd toen bij introductie al op oude procede gemaakt.
En moest 2 jaar mee. Tegen gpgpu op de nieuwste procede elke 9 maanden.
Zeker op einde liep het paar precede generaties achter.
Het genoot wel van de dedicated Acceleratie. Waar met nV extra krachtige kaart moest hebgen met veel cuda cores. Of apparte extra kaart erbij.

Ik ging voor een GTX580 met GTX560Ti.
De GTX560ti had hogere Cuda : Diespace verhouding.
Maar paste gezamelijk niet in mijn kast dus geleend aan mijn broertje.
GTX580 moest PhysX compute task met render task delen.
wauw, valt dit onder wereldwonderen?..geeft me hoop voor half life 3

Op dit item kan niet meer gereageerd worden.