# PhysX - auch über OpenCL realisierbar; neue Hoffnung auf AMD - PhysX ?



## klefreak (30. März 2009)

*PhysX - auch über OpenCL realisierbar; neue Hoffnung auf AMD - PhysX ?*

Die Physikschnittstelle PhysX von Nvidia wurde bislang über die Firmeneigene Programmiersprache CUDA auf die GPU portiert. 

Nachdem INTEL und AMD auf der GDC 2009 angekündigt haben, dass HAVOK über OpenCL auch mittels GPU beschleunigt werden könne, überlegt auch Nvidia ob die eigene PhysX Engine über OpenCl beschleunigt werden sollte.

NVidias PhysX- Chef Nadeem Mohammad gab an, dass Nvidia ja auch an der Entwicklung von OpenCL beteiligt sei und dass diese Schnittstelle auch ein excelenter Sandard sei.
bei einer PhysiX - Beschleunigung über OpenCL schliest Mohammad auch eine Beschleunigung auf AMD Grafikkarten nicht aus, diese würden jedoch sicherlich deutlich leistungsschwächer als vergleichbare Nvidiakarten sein. Als Vergleich der Leistungsfähigkeit und des AMD - Rückstandes zog Mohammad  die Erfahrungen aus dem Folding@Home GPU Client heran, wonach AMD Karten einige Generationen hinter Nvidia lägen.

Mit dieser schnellen Entwicklung der OPEN GL /CL Schnitstelle kann diese erstmals seit langem wieder technologisch an DirectX anschließen und dieses im Bezug auf GPGPU Funktionen sogar überflügeln, der Vorteil einer leichteren Portierbarkeit auf verschiedene Plattformen sei hier nur nebenbei erwähnt.

Weitere INFOS:
http://extreme.pcgameshardware.de/pcghx-news/19509-physx-amd-radeon-es-geht-zuegig-voran.html
http://extreme.pcgameshardware.de/pcghx-news/24270-radeon-physx-geht-hier-vor-sich.html

Quelle:
bit-tech.net | Nvidia considers porting PhysX to OpenCL

Nvidias PhysX könnte OpenCL unterstützen - Golem.de


----------



## PuhbaerTB (30. März 2009)

*AW: PhysX - auch über OpenCL realisierbar; neue Hoffnung auf AMD - PhysX ?*

Nachdem Beitrag hier von Sacred 2, wo die Performance derart in die Brüche gegangen ist, sei das nur zu hoffen, das AMD mitzieht. Um aber PhysX samt Namen benutzen zu dürfen, wären auch wieder Lizenzen erforderlich, von den programmierten Treibern ganz zu schweigen. Ähnliches Szenario könnte sich mal wieder dabei mit Nvidia und Intel abspielen, da letztere Havok-Lizenzgeber wäre. Wenn der Kosten-Nutzen-Faktor hierbei nicht stimmt, lässt sich ja keiner auf sowas ein. PhysX macht meiner Meinung nach aber deutliche Fortschritte, dass es wohl nur eine Frage der Zeit sein sollte, wann es alle GPU unterstützen. Havok über OpenCL ebenso...


----------



## Stefan Payne (30. März 2009)

*AW: PhysX - auch über OpenCL realisierbar; neue Hoffnung auf AMD - PhysX ?*

Open CL hat nix mit Open GL (=Graphics Libary) zu tun, das eine ist für Grafik, das andere ist eine Sprache für non x86 CPUs im PC (Open Computing Language)


----------



## KyroMaster (30. März 2009)

*AW: PhysX - auch über OpenCL realisierbar; neue Hoffnung auf AMD - PhysX ?*

Würde IMHO schon wirklich Sinn machen. Ganz unabhängig davon welche Grafikkarten zur Zeit mehr Leistung haben, kein Hersteller kann sich sicher sein, was die Konkurrenz so "aus dem Hut zaubert", dafür sind die ganzen Technologien noch viel zu "neu". Und die Spieleentwickler sind sicher auf lange Zeit auch nicht wirklich daran interessiert, nur für bestimmte Plattformen zu optimieren, gibt halt zur Zeit nur noch keine richtige Alternative zu PhysX. Ich hoffe mal das NVIDIA das erkannt hat, und letztendlich sowohl PhysX als auch Havok als Middleware auf OpenCL (eventuell auch DX11) aufsetzen werden.

Aber seinen Folding@Home-Vergleich hätt er sich sparen können. Die Rechenleistung der ATI-Karten ist ja in derselben Größenordnung, das ist IMHO alles nur Sache der Treiber- und Anwendungsoptimierung. Ob ATI da großen Aufwand in Folding@Home reinsteckt wage ich mal zu bezweifeln.


----------



## Bucklew (30. März 2009)

*AW: PhysX - auch über OpenCL realisierbar; neue Hoffnung auf AMD - PhysX ?*



KyroMaster schrieb:


> Aber seinen Folding@Home-Vergleich hätt er sich sparen können. Die Rechenleistung der ATI-Karten ist ja in derselben Größenordnung, das ist IMHO alles nur Sache der Treiber- und Anwendungsoptimierung.


Das ist schon soweit ganz richtig, weil die Rechenleistung ein VÖLLIG theoretischer Rechenwert ist, der unter normalen Umständen praktisch unmöglich zu erreichen ist. Der GT200 ist allerdings gezielt für Programmierung ausgelegt, hat u.a. einen Cache für jedes Rechencluster o.ä. - das sorgt natürlich für den entsprechend größeren Chip im Vergleich zu ATI (die sparen sich sowas halt), aber auch für eine viel höhere Rechenleistung. Wie man in F@H sieht


----------



## KyroMaster (30. März 2009)

*AW: PhysX - auch über OpenCL realisierbar; neue Hoffnung auf AMD - PhysX ?*



Bucklew schrieb:


> Der GT200 ist allerdings gezielt für Programmierung ausgelegt, hat u.a. einen Cache für jedes Rechencluster o.ä. - das sorgt natürlich für den entsprechend größeren Chip im Vergleich zu ATI (die sparen sich sowas halt), aber auch für eine viel höhere Rechenleistung. Wie man in F@H sieht



Haben die neusten ATI-Karten und der RV8xx sowas dann nicht? Wusst ich gar nicht, ich hab immer gedacht ATI hat hohe Shaderleistung und das geht ziemlich linear in die GPGPU-Performance mit entsprechenden OpenCL-Treibern (oder Compilern wie mans nimmt).



Stefan Payne schrieb:


> Open CL hat nix mit Open GL (=Graphics Libary) zu tun, das eine ist für Grafik, das andere ist eine Sprache für non x86 CPUs im PC (Open Computing Language)



Meine bescheidene Meinung:
Das C in OpenCL kommt von "C". OpenCL ist C99 mit Erweiterungen. Wird wie Java oder .Net zur Laufzeit compiliert und auf entsprechende "Devices" verteilt. OpenCL ist letztlich eine Programmiersprache, keine API wie OpenGL oder DX. Vor zwei Jahren oder so gabs doch mal auf der GDC so ein Interview mit dem Chefentwickler der Unreal Engine, der meinte dass die Grenzen zwischen CPU und GPU verschwinden werden. Genau das ist OpenCL. Und er meinte auch viel von Raytracing, da passt das auch 100%, weils einfach viel zu viele verschiedene Methoden und Varianten gibt das zu berechnen, da wird dann die Anwendung oder Engine ihren eigenen Algorithmus in OpenCL mitbringen.

AFAIK läuft das gerade sehr gut auch auf x86-PCs, ist in diesem Fall nicht viel mehr als ein optimierter und angepasster C-Compiler, der das Ergebnis direkt in verschiedenen Threads ausführt. Das lässt sich mit den aktuellen CPUs noch nicht richtig ausnutzen, obwohls schon Versuche gibt das zu implementieren. Unter Linux wird da viel "ausprobiert". Spätestens mit Larrabee kommt das in den Mainstream, oder wenn nativ genügend Kerne in den CPUs sind. Dann wird man eine Plattform (OpenCL) haben, die sowohl auf mehreren x86-Kernen (CPU oder Larrabee), auf einer traditionellen GPU als auch auf ganz anderen "Beschleunigerarchitekturen" läuft. Und die dabei vollkommen transparent ist und es dem technischen Fortschritt überlässt, was sich durchsetzt, und ob die Architektur von GPUs weiterbesteht, oder ob das letztlich genausoschnell auch auf der CPU geht. Ich entwickle selbst auch Spiele, und könnte mir gut vorstellen dass das diesen Weg nimmt. Und erstmal wirds dann auch coole Spielereien wie Quake (in C geschrieben) auf der Grafikkarte geben


----------



## Bucklew (30. März 2009)

*AW: PhysX - auch über OpenCL realisierbar; neue Hoffnung auf AMD - PhysX ?*



KyroMaster schrieb:


> Haben die neusten ATI-Karten und der RV8xx sowas dann nicht? Wusst ich gar nicht, ich hab immer gedacht ATI hat hohe Shaderleistung und das geht 1:1 zu GPGPU mit entsprechenden OpenCL-Treibern (oder Compilern wie mans nimmt).


Die höhere THEORETISCHE (!) Rechenleistung: Ja. Diese aber praktisch zu nutzen, ist schwer, weil der RV770 Caches nicht hat bzw nicht in der Größe, denn für die Rechenleistung ist selbst der Grafikspeicher je nach Anwendung zu langsam bzw die Latenzen zu hoch. 

Soweit ich weiß war der F@H-Client auch zuerst für ATI erhältlich (man möge mich korrigieren).

Das ist ungefähr so: Die Nvidiakarte hat zwar nur 2 Kochplatten, kann also nicht soviel auf einmal kochen, hat dafür aber alle Zutaten im Schrank neben dem Herd. Die ATI-Karte hat zwar 5 Kochplatten, könnte also viel schneller kochen, muss aber erst immer alle Zutaten im Supermarkt kaufen. 

Das selbe Problem hatte ja auch Intel mit der FSB-Architektur, die zwar mehr Rechenleistung als die AMD-Pendants hatten, aber nicht genug Bandbreite zum Ram hatten - daher auch die Cachemonster mit 6MB und mehr. Rechenleistung bringt nichts, wenn man die Daten nicht schnell genug rein und raus kriegt.


----------



## klefreak (30. März 2009)

*AW: PhysX - auch über OpenCL realisierbar; neue Hoffnung auf AMD - PhysX ?*

bei den derzeitigen Arbeitspaketen sind die Nvidiakarten den AMD KArten deutlich überlegen, da AMD auf mehr aber dafür einfachere Shader setzt (welche außerdem anders organisiert sind --> größere Verbände --> schwieriger auszulasten --> gab da mal nen Artikel auf der PCGH). Erst bei den kommenden größeren Arbeitspaketen können dann die AMD Karten ihr Potenzial ausspielen (theoretisch; ist ja noch alles immer BETA !), was man an einigen TEST WU's schon gemerkt hat bei denen die Nvidia Karten dann deutliche PPD einbußen hatten.

rein von der theoretischen Rechenleistung ist nicht so viel Unterschied zwischen den vergleichbaren Karten.

ein weiterer Faktor ist, dass bei F@H von AMD und Nvidia ein unterschiedlicher Entwicklungsansatz verwendet wird. AMD setzt A auf Stabilität und dann erst B auf Leistung, bei Nvidia geht man von der anderen Seite an diese Aufgabe heran !
Folding Forum • Index page

@Bucklew

auch die HD4xxx Serie hat einen kleinen Cache für die Recheneinheiten (ist recht klein)
AMD hatte den Client früher, da nvidia ihn erst für CUDA entwickeln musste !

@topic

ich hoffe, dass baldigst PhysX über openCL realisiert wird, denn nvidia muss schauen dass durch HAVOC (auf der GPU) nicht ihre Lösung obsolet wird, dadurch haben wir dann zwei um den Markt buhlende Techniken, das bessere bleibt dann übrig


----------



## LordRevan1991 (30. März 2009)

*AW: PhysX - auch über OpenCL realisierbar; neue Hoffnung auf AMD - PhysX ?*

Jetzt bin ich gespannt. Ich könnte mir vorstellen, dass Havok und PhysX sowohl auf Radeons als auch auf Geforces laufen werden, zumindest stünde das in Nvidias Interesse -> Ausgrenzung von Intel, welche mit Larrabee in den Grafikbeschleunigermarkt einsteigen wollen. 

Problem ist, dass Intel sich das nicht gefallen lassen wird, und durchaus was in der Sache mitzureden hat als Mutterfirma von Havok -> Druck auf Vertragspartner AMD, die ev. Sperren in Catalyst und Havok-Engine implementieren werden müssen

Weitere Möglichkeit, welche die beste wäre: alle Physik-Engines laufen auf allen Grafikbeschleunigern: Radeon, Geforce, Larrabee. Damit wird Nvidia sein Ziel der Isolierung Intels verfehlen und einen dritten GPU-Anbieter auf dem Markt zulassen (vorausgesetzt, Larrabee wird was), zumindest aber würde die Verlagerung der Wichtigkeit im PC weiter von der CPU zur GPU verlagert werden.

Vielleicht sogar noch besser: eine der beiden Physik-Engines stirbt aus. Der Befürworter der verlierenden Engine wird die Patente des Siegers aufkaufen müssen, um nicht total ohne Physik dazustehen, der Standard für Spieleentwickler ist einheitlich. Bloß, welche wird siegen? Havok wird auf lange Sicht _vielleicht_ eine breitere Basis durch Radeon und Larrabee haben, wobei Nvidia PhysX schon ab der GF8-Generation anbietet, länger im Rennen ist und bereits einiges in die Entwicklung und das Marketing von PhysX getan hat. Intel und AMD hinken hinterher.
Außerdem würde das bedeuten, dass eine Zeit lang zwei konkurrierende Engines auf zwei verschiedenen Platformen laufen werden - dann kann Geforce-Besitzer Spiel A nicht spielen, weil es Havok verwendet, Radeon-Besitzer bleibt beim PhysX-Titel B mit leeren Händen.


----------



## klefreak (30. März 2009)

*AW: PhysX - auch über OpenCL realisierbar; neue Hoffnung auf AMD - PhysX ?*



LordRevan1991 schrieb:


> ...
> 
> Weitere Möglichkeit, welche die beste wäre: alle Physik-Engines laufen auf allen Grafikbeschleunigern: Radeon, Geforce, Larrabee. Damit wird Nvidia sein Ziel der Isolierung Intels verfehlen und einen dritten GPU-Anbieter auf dem Markt zulassen (vorausgesetzt, Larrabee wird was), zumindest aber würde die Verlagerung der Wichtigkeit im PC weiter von der CPU zur GPU verlagert werden.




genau das ist es auf das ich mich freue (hoffe)
durch das portieren auf opencl hat man quasi einen Standard vergleichbar mit DX für die Grafikberechnung, jetzt Heists mal abwarten und Daumendrücken


----------



## Bucklew (30. März 2009)

*AW: PhysX - auch über OpenCL realisierbar; neue Hoffnung auf AMD - PhysX ?*



klefreak schrieb:


> Erst bei den kommenden größeren Arbeitspaketen können dann die AMD Karten ihr Potenzial ausspielen (theoretisch; ist ja noch alles immer BETA !), was man an einigen TEST WU's schon gemerkt hat bei denen die Nvidia Karten dann deutliche PPD einbußen hatten.


Wie war das noch mit der Optimierung? 



klefreak schrieb:


> auch die HD4xxx Serie hat einen kleinen Cache für die Recheneinheiten (ist recht klein)


Richtig, aber eben nicht in dem Sinne, wie ich ja schon schrieb.



klefreak schrieb:


> AMD hatte den Client früher, da nvidia ihn erst für CUDA entwickeln musste !


Stimmt, dafür war der erste AMD-Client auch imho viel Assembler, der erst für jede karte einzeln angepasst werden musste - Stream gab es ja damals nicht. Der Cuda-client ist ja imho auf allen GeForcekarten ab G80 funktionsfähig.


----------



## Bucklew (30. März 2009)

*AW: PhysX - auch über OpenCL realisierbar; neue Hoffnung auf AMD - PhysX ?*

Wird OpenCL überhaupt schon von AMD unterstützt und wenn nicht - wann? Erst mit DX11-Karten, oder kommt der support auch für ältere Karten?


----------



## KyroMaster (30. März 2009)

*AW: PhysX - auch über OpenCL realisierbar; neue Hoffnung auf AMD - PhysX ?*

AFAIK ist OpenCL mit jeder entsprechenden Karte mit Unified Shaders implementierbar. Ist nur die Frage ob das dann auch für ältere Karten gemacht wird, die Performance wird sicher nicht so ansprechend sein und die sind ja eh schon über den Ladentisch gegangen 

Aber letztlich ist es ja ähnlich zu den Shadern, die sind ein C-Derivat, OpenCL ist ein C-Derivat. Zitat von Wikipedia "OpenCL kann für beliebige Betriebssysteme und Hardwareplattformen implementiert werden. So ist in der Spezifikation von CPUs, GPUs, DSPs und dem Cell-Prozessor die Rede. Es existiert zudem eine Spezifikation für eingebettete Systeme mit reduzierten Anforderungen."


----------



## amox (31. März 2009)

*AW: PhysX - auch über OpenCL realisierbar; neue Hoffnung auf AMD - PhysX ?*



LordRevan1991 schrieb:


> [...]
> 
> Havok wird auf lange Sicht _vielleicht_ eine breitere Basis durch Radeon und Larrabee haben, wobei Nvidia PhysX schon ab der GF8-Generation anbietet, länger im Rennen ist und bereits einiges in die Entwicklung und das Marketing von PhysX getan hat. Intel und AMD hinken hinterher.
> Außerdem würde das bedeuten, dass eine Zeit lang zwei konkurrierende Engines auf zwei verschiedenen Platformen laufen werden - dann kann Geforce-Besitzer Spiel A nicht spielen, weil es Havok verwendet, Radeon-Besitzer bleibt beim PhysX-Titel B mit leeren Händen.



Du weißt das es mehr als 100 Games gibt, welche die Havok-Physik engine nutzen?? Nvidia muss eher Angst haben, dass sich nun die Havok-Engine auf der GPU durchsetzt. Sollte es eine leicht zu realisierende Lösung für Havok-Gpu geben, dann ist Physx nicht mehr von nöten.

Zitat aus der Wiki 



> Seit der Veröffentlichung des Software Development Kits im Jahr 2000, wurde es in über 150 Video- und Computerspielen eingesetzt. Diese Spiele sind hauptsächlich im First Person Shooter - Genre angesiedelt, wie auch das von der Valve Corporation entwickelte Half Life 2. Für die dem Spiel zugrundeliegende Source Engine wurde eine modifizierte Havok Version verwendet. Doch auch in Echtzeit-Strategiespielen, wie Company of Heroes von Relic Entertainment, Ubisofts Action-Adventure Assassin’s Creed oder Nintendos Super Smash Bros. Brawl findet es Verwendung.
> Havok kann auch mit Hilfe von Plugins in 3D Editoren wie Autodesks 3ds Max oder Maya eingesetzt werden. Für Adobe Directors Shockwave 3D existiert ebenfalls ein Xtra (Zusatzmodul).



2006 hatte noch Nvidia mit Havok an der Havok-FX engine gearbeitet. Diese Zusammenarbeit wurde eingestellt nachdem Intel die Firma aufgekauft hatte. Seit 2008 ist nun AMD mit im Boot und es wird wieder an einer GPU Lösung gearbeitet.


----------



## Brzeczek (2. April 2009)

*AW: PhysX - auch über OpenCL realisierbar; neue Hoffnung auf AMD - PhysX ?*

Ist das nicht wieder ein April Scherz......


----------



## klefreak (2. April 2009)

*AW: PhysX - auch über OpenCL realisierbar; neue Hoffnung auf AMD - PhysX ?*



Brzeczek schrieb:


> Ist das nicht wieder ein April Scherz......




ich denke/hoffe nicht !

die Originalmeldung ist vom 27.03.2009, also deutlich vor dem 1.4. !

mfg Klemens


----------



## GR-Thunderstorm (3. April 2009)

*AW: PhysX - auch über OpenCL realisierbar; neue Hoffnung auf AMD - PhysX ?*



PuhbaerTB schrieb:


> Um aber PhysX samt Namen benutzen zu dürfen, wären auch wieder Lizenzen erforderlich, von den programmierten Treibern ganz zu schweigen.



Ich denke nicht, dass Nvidia Lizenzgebühren verlangen wird, schließlich verlangen sie auch von Intel und AMD bisher nix, weil PhysX auf deren CPUs läuft.
Und sofern OpenCL tatsächlich eine API vergleichbar zu DX werden wird, könnte AMD PhysX auch nicht auf deren GPUs unterbinden, genauso wie Intel nicht verhindern kann, dass man z.B. PhysX auf deren CPUs berechnet wird.


----------



## Stefan Payne (3. April 2009)

*AW: PhysX - auch über OpenCL realisierbar; neue Hoffnung auf AMD - PhysX ?*

Wenn nVidia Intel bei Physiksoftware schlagen will, müssen sie auf OpenCL (oder D3D11) setzen...


----------



## Blackiwid (4. April 2009)

*AW: PhysX - auch über OpenCL realisierbar; neue Hoffnung auf AMD - PhysX ?*

ja die diskussionen in dem thread sind ja interessant, ob nun nvidia weiter ist oder nicht etc. Aber die orginalmeldung ist doch ein witz, nur weil nvidia sich irgendetwas überlegt, ist das doch keine meldung wert. Amd wird sich auch überlegen nvidias physix zu benutzen, warscheinlich werden sie sich wie bisher dagegen entscheiden.

Und in so einer doofen null-meldung (fud) überlegungs-meldung auch noch nen seitenschlag gegen die konkurenz einzubauen ist schon marketing der höchsten klasse man furtzt jeden tag irgend nen anderen non-sense durch die gegend und man kommt damit auch noch in die presse.

Wenn nvidia sich dafür entschieden hat würd ich das auch schon ne schwache meldung finden aber kann man ja drucken, richtig interessant wäre es erst wenn man sagen könnte nvidias physix läuft jetzt über opencl.

Achja und zu dem dämlichen seitenhieb, amd wird wohl schneller die nächste gpu-generation releasen als nvidia ihr zeug auf opencl portiert haben, dann werden die karten eh neu gemischt, wenn das überhaupt stimmt. da die quelle nvidia ist wäre ich da vorsichtig.


----------



## KyroMaster (4. April 2009)

*AW: PhysX - auch über OpenCL realisierbar; neue Hoffnung auf AMD - PhysX ?*



Blackiwid schrieb:


> Wenn nvidia sich dafür entschieden hat würd ich das auch schon ne schwache meldung finden aber kann man ja drucken, richtig interessant wäre es erst wenn man sagen könnte nvidias physix läuft jetzt über opencl.



Vielleicht tut das den Aktienkursen gut


----------

