PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : CUDA-Physik-Demo


AnarchX
2008-06-06, 14:40:17
http://img264.imageshack.us/img264/5969/42353851ep3ns7.jpg (http://imageshack.us)
Anleitung:
http://www.fun-motion.com/forums/showthread.php?p=58687

Und ein Video, was doch sehr an die Crysis-Videos mit den tausenden Fässern erinnert, aber hier Real-Time:
http://www.youtube.com/watch?v=RqduA7myZok

tombman
2008-06-06, 14:41:46
HOLY FUCK :eek:

:massa:

Spasstiger
2008-06-06, 14:44:12
Wie praktisch, dass ich gerade eine 8800 GT eingebaut hab. Gleich mal testen. :biggrin:

Fatality
2008-06-06, 14:45:14
die sollen das auf regentropfen übertragen :eek:

Adam D.
2008-06-06, 14:49:53
Unglaublich, wie mächtig diese GPGPU-Umgebung ist. Hoffentlich sehen wir den Support bald in Spielen.

Fallacy
2008-06-06, 15:11:01
Das erste ist keine Neuigkeit. Das Beispiel ist schon seit längerem (seit Beginn?) im Cuda SDK. Dort findet man im übrigen noch mehrere Beispiele. Auch wenn dieses wohl das größte Staunen erweckt.

Spasstiger
2008-06-06, 15:29:38
Gravity auf 0 ist nett. Irgendwann sind alle Kugeln gleichmäßig im Raum verteilt.

Btw. wenn ich nebenbei noch ATI Tool laufen lassen, habe ich statt 60 fps nur noch 7-9 fps. Und die Framerate in ATI Tool ist ca. bei 60% der normalen Framerate.
So eine Physik würde die Spielperformance also deutlich drücken trotz Grakabeschleunigung.

/EDIT: Irgendwie zittert das ganze System noch leicht, gut zu sehen bei Gravity 0. Der Würfel aus Kugeln steht zunächst fest im Raum. Fügt man aber die große Kugel aus den kleinen Kugeln hinzu, so fängt der Würfel an, sich allmählich zu deformieren, obwohl es zu keiner Berührung kommt. Ich würde das auf Rundungsfehler resultierend aus der Single-Precision-Berechnung zurückführen.
Hier nach 2 Minuten, obwohl es zu keiner Berührung irgendwelcher Objekte kam:
http://www.abload.de/thumb/kugeln0yy.png (http://www.abload.de/image.php?img=kugeln0yy.png)

tombman
2008-06-06, 15:35:14
OK, habs probiert :)

SLI rennt übrigens NICHT mit Cuda...

Da wird sofort auf CPU emu. umgeschaltet- sprich man sieht gar nix.
(egal welcher Modus, SLi = nix Cuda)

tombman
2008-06-06, 15:56:42
Btw, empfehlen kann ich neben particles auch:

fluids

mandelbrot (double precision emu!!)

nbody (einfach nur geil+ Gflops/s Angabe ;D)

volumerender

Gast
2008-06-06, 15:56:44
beeindruckend wäre es mit "richtiger" grafik und nicht nur mit bunten kugeln.

so wie es aussieht braucht man auf jeden fall eine extra karte für physik wenn man dabei auch noch ordentliche grafik haben will.

Spasstiger
2008-06-06, 16:00:20
so wie es aussieht braucht man auf jeden fall eine extra karte für physik wenn man dabei auch noch ordentliche grafik haben will.
Jopp. Hoffentlich vergrault Nvidia nicht potentielle Kunden, indem sie CUDA-Physik per Zweitkarte nur auf den eigenen Chipsätzen anbieten. Momentan scheint CUDA mit zwei Grafikkarten ja noch überhaupt nix anfangen zu können.


fluids
Das sieht aus wie grüner Cappucino, wo man Muster in die Crema einbringt. ;)

Die eigenvalues.exe finde ich auch interessant, der berechnet die Eigenwerte einer 2048x2048-Matrix in 20 ms. Das ist verdammt schnell.
/EDIT: Hier zum Vergleich konventionelle "Eigensolvers": http://www.cse.scitech.ac.uk/arc/diags.shtml. Selbst der Supercluster mit 128 CPUs (jeweils Power4 1,7 GHz) braucht mit dem schnellsten Algorithmus bei einer 3888x3888-Matrix noch 5 Sekunden. Und durch mehr CPUs wirds nicht mehr schneller.

Ein Komilitone von mir beschäftigt sich übrigens derzeit in seiner Studienarbeit damit, wie man Grafikkarten zur Beschleunigung von Feldsimulationen einsetzen kann. In der Wissenschaft kommt CUDA und Co. also gut an.

tombman
2008-06-06, 16:11:51
Der Treiber ist überhaupt fucked up was SLI betrifft. NIX rennt da mit SLI, nicht mal 3dmark06-> Bildfehler bis zum Treiber-restart...

AnarchX
2008-06-06, 16:22:59
Jopp. Hoffentlich vergrault Nvidia nicht potentielle Kunden, indem sie CUDA-Physik per Zweitkarte nur auf den eigenen Chipsätzen anbieten. Momentan scheint CUDA mit zwei Grafikkarten ja noch überhaupt nix anfangen zu können.

Kommt wohl ganz auf die CUDA-App und deren Implementierung an, jedenfalls kann man auch ganz gut 4x 9800GX2 auf einem Non-nForce-Board auslasten:
http://www.forum-3dcenter.org/vbulletin/showthread.php?p=6541129#post6541129

Superheld
2008-06-06, 16:26:48
gehen dann noch alle Spiele mit den Cuda Treiber ?

Fallacy
2008-06-06, 16:29:31
Jopp. Hoffentlich vergrault Nvidia nicht potentielle Kunden, indem sie CUDA-Physik per Zweitkarte nur auf den eigenen Chipsätzen anbieten. Momentan scheint CUDA mit zwei Grafikkarten ja noch überhaupt nix anfangen zu können.


Mit Cuda 2.0 (derzeit noch Beta) wird es möglich sein auch weitere Devices anzusprechen, was mit 1.1/1.0 noch nicht geht.

Spasstiger
2008-06-06, 16:32:42
Führt mal die bandwidthTest.exe aus und postet eure Werte hier.

Hier mal von einer 8800 GT 1024 MiB (non OC) und einem Gigabyte 965P-DS3, PCIe 1.1 @ x16:
host to device: 1560.4 MB/s
device to host: 1487.9 MB/s
device to device: 46453.7 MB/s

Interessant wäre das Ganze mit einem PCIe-2.0-fähigen Mainboard und entsprechenden Grafikkarten.

Gast
2008-06-06, 16:55:59
was soll device to device sein?

Mark
2008-06-06, 17:14:58
Führt mal die bandwidthTest.exe aus und postet eure Werte hier.

Hier mal von einer 8800 GT 1024 MiB (non OC) und einem Gigabyte 965P-DS3, PCIe 1.1 @ x16:
host to device: 1560.4 MB/s
device to host: 1487.9 MB/s
device to device: 46453.7 MB/s

Interessant wäre das Ganze mit einem PCIe-2.0-fähigen Mainboard und entsprechenden Grafikkarten.

1908.2
1527.6
39158.0

8800gt 512mb
gigabyte ep35-ds3

Godmode
2008-06-06, 17:20:41
was soll device to device sein?

Vom GPU RAM in die GPU.

Godmode
2008-06-06, 17:23:38
Ein Komilitone von mir beschäftigt sich übrigens derzeit in seiner Studienarbeit damit, wie man Grafikkarten zur Beschleunigung von Feldsimulationen einsetzen kann. In der Wissenschaft kommt CUDA und Co. also gut an.

Hört sich interessant an. Im nächsten Semester werde ich mit meiner Master-Thesis beginnen und als Thema möchte ich Evolutionary Algrithms (Genetische Algorithmen, Genetische Programmierung, Evolutions Strategien) on GPUs wählen.

Undertaker
2008-06-06, 17:35:00
Hmm, hab Treiber, SDK und Toolkit drauf, alle Demos gehen aber bei Particles kommt nach der Konsole nur der Windows-Fehlerbericht :(

Bietchiebatchie
2008-06-06, 20:39:37
OK, habs probiert :)

SLI rennt übrigens NICHT mit Cuda...

Da wird sofort auf CPU emu. umgeschaltet- sprich man sieht gar nix.
(egal welcher Modus, SLi = nix Cuda)

Hab das grad zufällig im programming guide von cuda gelesen:

If the system is in SLI mode however, only one GPU can be used as a CUDA device since all the GPUs are fused at the lowest levels in the driver stack. SLI mode needs to be turned off in the control panel for CUDA to be able to see each GPU as separate devices.

Bringt das was?

Gast
2008-06-06, 21:04:36
hm was ist so besonders daran? sind doch nur ein paar partikel als kugeln dargestellt ...

Sk4tz
2008-06-06, 21:34:59
das du das nicht verstehst ist nicht unser problem ;)

Gast
2008-06-06, 22:28:20
naja, ganz unrecht hat er nicht, was nützt es einem wenn man tausende kugeln physikalisch korrekt berechnen kann, aber dafür keine leistung mehr für die eigentliche grafik übrig hat?

joeb
2008-06-06, 23:08:02
Das CUDA unter SLI nicht läuft (oder wenns laufen würde, dann nicht
besonders schnell !!) wundert mich nicht. Für physikalische Simulationen
müssen ja z.B. für Punktmassen Vektoren für Position, Geschwindigkeit und
Beschleunigung ständig aktualisiert werden (für allgemeine Körper kommen
noch Vektoren für Winkel,Winkelgeschwindigkeit und Winkelbeschleunigung
hinzu). Diese Vektoren wurden vor CUDA mittels Texturen (Float-Format!)
gespeichert, in CUDA gibts dafür Arrays. Greift man nun in jedem Schritt
der Simulation auf diese Daten zu, dann müssen ja im Fall von SLI ständig
die Texturen/Arrays von GraKarte1 zu Grakarte2 und umgekehrt geschickt
werden. Also war die Entscheidung die, sich für eine GraKarte als
PhysicsServer und die andere als GraphicsServer zu entscheiden, für
Spiele ja eine gute Wahl.

Das gleiche Problem hat man ja auch, wenn man Texturen als RenderTargets
benutzt. In diesen Fällen werden zur SLI-Beschleunigung nur in jedem
zweiten Schritt die Texturen aktualisiert/ jeder Texture-Shader greift auf
die Texturen des vorletzten Frames zurück.


Gruss

Jörg

Gast
2008-06-07, 12:03:22
Das CUDA unter SLI nicht läuft (oder wenns laufen würde, dann nicht
besonders schnell !!) wundert mich nicht.



CUDA funktioniert deshalb nicht mit SLI, weil es die grafikkarten einzeln ansprechen muss. mit SLI verhält sich das aber nach außen hin wie eine karte.

Gast
2008-06-07, 15:11:54
Naja, so beeindruckend ist das jetzt auch nicht... ich habe schon eine Galaxiensimulation auf der Grafikkarte berechnen lassen, und zwar über DirectX, nicht CUDA, so dass es auch auf ATI Karten läuft.

tombman
2008-06-07, 20:59:04
Naja, so beeindruckend ist das jetzt auch nicht... ich habe schon eine Galaxiensimulation auf der Grafikkarte berechnen lassen, und zwar über DirectX, nicht CUDA, so dass es auch auf ATI Karten läuft.
Schick rüber die demo ;D

DevilX
2008-06-08, 22:34:21
Ist das kompatibel zu Spielen die die AgeiaKarte unterstützen?
oder wären da Anpassungen nötig?

Coda
2008-06-08, 22:49:56
Vom GPU RAM in die GPU.
Nein. Das ist Host to Device.

Device to Device ist wohl die Interkommunikation zwischen zwei Streamprozessoren über den VRAM.

Gast
2008-06-09, 10:27:54
SLI im ursprünglichen Sinne geht gewiss nicht mehr aber deswegen kann doch trotzdem die Parallelisierung auf mehrere GPUs funktionieren. Welchen anderen Sinn hätte es denn sonst, mehrere Tesla Boards gleichzeitig einzubauen. ;)

-f

Hucke
2008-06-09, 10:49:20
/EDIT: Irgendwie zittert das ganze System noch leicht, gut zu sehen bei Gravity 0. Der Würfel aus Kugeln steht zunächst fest im Raum. Fügt man aber die große Kugel aus den kleinen Kugeln hinzu, so fängt der Würfel an, sich allmählich zu deformieren, obwohl es zu keiner Berührung kommt. Ich würde das auf Rundungsfehler resultierend aus der Single-Precision-Berechnung zurückführen.
Hier nach 2 Minuten, obwohl es zu keiner Berührung irgendwelcher Objekte kam:


Ist vielleicht Gravitation der Einzelobjekte. Traditionell gibts zwischen Körpern mit Masse eine Wechselwirkung.

Spasstiger
2008-06-09, 11:01:22
Ist vielleicht Gravitation der Einzelobjekte. Traditionell gibts zwischen Körpern mit Masse eine Wechselwirkung.
Das wird hier eher nicht berücksichtigt. ;)

DevilX
2008-06-09, 11:19:16
bis die Komponente zum Tragen kommen würde da würde viel zu viel Zeit vergehen, sprich für das Anwendungsgebiet uninteressant..

Gast
2008-06-09, 14:26:12
http://www.forum-3dcenter.org/vbulletin/showthread.php?t=409153

sowas ähnliches (GPU Partikels,Fluids usw) hatte ATI doch schon vor monaten als Demo..