PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Windows Calculator per GPU?


Plasmafusion
2004-02-09, 13:38:37
Moin,

kann man eigentlich die GPU dazu benutzen, kleine Rechenaufgaben zu lösen anstatt die CPU zu benutzen ?

Beispiel: Jeder kennt den Windows-Calculator.
Kann man so ein Ding programmieren, daß die einfachen Rechenfunktionen von der GPU erledigt werden ?

mrdigital
2004-02-09, 13:46:08
Man kann auch mit einem Bagger Mikado spielen...

Crushinator
2004-02-09, 13:59:02
Ja, man kann sogar noch mehr (http://www.forum-3dcenter.org/vbulletin/showthread.php?s=&threadid=122604). Es fragt sich nur, ob sich der Aufwand lohnt. ;)

Plasmafusion
2004-02-09, 14:01:52
Man kann auch mit einem Bagger Mikado spielen...

Das kann man sicherlich, aber Baggerspieler sind meistens keine Programmierer;

---

http://64.85.14.18/test/407.jpg

DrumDub
2004-02-09, 14:07:44
geht natürlich. siehe auch:

Retro - Eyal Teler, Runner up

Overview: "You've run the program, I assume, and so viewed the magnificent earth-shattering graphics -- at least for the early 1980s. This program isn't about fancy graphics but about showing the computational power of pixel shaders 2.0. All the game logic is in pixel shaders; the C++ code just performs initialisation and stores the time and key press in constants for the shaders to read."

An innovative and audacious use of shaders and, well, its Frogger!!

http://www.beyond3d.com/articles/shadercomp/results/

Demirug
2004-02-09, 14:36:09
*move*

Coda
2004-02-09, 17:03:08
Wäre relativ sinnlos, denn 32 bit floating point reichen von der Präzision kaum für den Windows Rechner :D

zeckensack
2004-02-09, 18:15:57
Original geschrieben von mrdigital
Man kann auch mit einem Bagger Mikado spielen... Original geschrieben von crushinator
Ja, man kann sogar noch mehr (http://www.forum-3dcenter.org/vbulletin/showthread.php?s=&threadid=122604). Es fragt sich nur, ob sich der Aufwand lohnt. ;)
Original geschrieben von Coda
Wäre relativ sinnlos, denn 32 bit floating point reichen von der Präzision kaum für den Windows Rechner :D Dreimal ack ;)

Die GPU als Rechenknecht einzusetzen, kann sich - wenn überhaupt - nur dann lohnen, wenn man eben etwas ausrechnen will, was ihrer Natur gerecht wird. Sprich: riesige Datenmengen, hohe Parallelität, keine Abhängigkeit zwischen den einzelnen Datenpunkten, asynchrone Verarbeitung, komplexe Stream Kernel. Es dauert eben seine Zeit, bis man Daten a)an die GPU geschickt, und b)die Ergebnisse wieder abgeholt hat.

Der Windows-Taschenrechner ist wahrscheinlich das schlechteste Beispiel, das es überhaupt geben kann. Es wird immer nur eine skalare Berechnung ausgeführt, und dafür muss das Programm dann auch noch auf den User warten.

Laut Dokumentation schafft ein Athlon eine 80Bit-Division in 24 Takten. Bei >= 1600MHz vergeht während dieser Zeit nichtmal ein einziger AGP-Zyklus. Es ist also auch in der Theorie, bei unbegrenzter Bandbreite, einer unendlich schnellen und unendlich präzisen GPU unmöglich, dass der Prozessor dabei langsamer ist als eine via AGP angekoppelte GPU. Multiplikation, Addition, Subtraktion sind natürlich noch schneller.

Endorphine
2004-02-09, 19:28:33
Davon abgesehen wäre der Code für diese Idee gewaltig aufgebläht, als wenn man es gleich von der CPU selber erledigen lässt.

Externe, für einen Zweck hochspezialisierte Coprozessor-ASICs wie die GPU sollten nur dann mit Aufgaben bedacht werden die die CPU auch erledigen kann, wenn wirklich unter dem Strich ein Gewinn dabei rauskommt.

Wenn's nur um Machbarkeit geht kann man mit etwas Fantasie auch DSPs für Rechenaufgaben einspannen. Oder die Offloadfunktionen von Netzwerkcontrollern dafür missbrauchen. Wer ganz besonders kreativ ist bekommt das sicher auch irgendwie mit USB- oder SCSI-Controllern hin, praktisch jeder IC mit Eigenintelligenz sollte dafür taugen, wenn man nur kreativ genug ist.

Demirug
2004-02-09, 19:34:17
Original geschrieben von Endorphine
Davon abgesehen wäre der Code für diese Idee gewaltig aufgebläht, als wenn man es gleich von der CPU selber erledigen lässt.

Externe, für einen Zweck hochspezialisierte Coprozessor-ASICs wie die GPU sollten nur dann mit Aufgaben bedacht werden die die CPU auch erledigen kann, wenn wirklich unter dem Strich ein Gewinn dabei rauskommt.

Wenn's nur um Machbarkeit geht kann man mit etwas Fantasie auch DSPs für Rechenaufgaben einspannen. Oder die Offloadfunktionen von Netzwerkcontrollern dafür missbrauchen. Wer ganz besonders kreativ ist bekommt das sicher auch irgendwie mit USB- oder SCSI-Controllern hin, praktisch jeder IC mit Eigenintelligenz sollte dafür taugen, wenn man nur kreativ genug ist.

Da fällt mir ein das irgendwo hier noch eine Netzwerkkarte mit einem 386 oder 486 rumliegen muss. Da kann man bestimmt einen Bot drauf laufen lassen.

Endorphine
2004-02-09, 19:45:40
Original geschrieben von Demirug
Da fällt mir ein das irgendwo hier noch eine Netzwerkkarte mit einem 386 oder 486 rumliegen muss. Da kann man bestimmt einen Bot drauf laufen lassen. Sicher, dass da nicht eher ein i860/i960 drauf sitzt? :)

Damit kann man natürlich nette Spielchen treiben, wenn die I/O-Leistung (Bandbreite/Latenz) nur nicht so klein wäre... ;)

Demirug
2004-02-09, 20:04:04
Original geschrieben von Endorphine
Sicher, dass da nicht eher ein i860/i960 drauf sitzt? :)

Damit kann man natürlich nette Spielchen treiben, wenn die I/O-Leistung (Bandbreite/Latenz) nur nicht so klein wäre... ;)

Ist nicht wirklich eine I386 bzw 486 CPU sondern was von AMD. Aber auf jeden Fall x86. Ich werden mal auf die suche gehen.

Crushinator
2004-02-10, 17:05:08
Mein Courier I-Modem V.E. (http://www.computingreview.com/Channels/ComputingReview/images/products/product_276271.jpg) hat auch so einen 80386-Kompatiblen drinne, vielleicht kann man dem ja auch (per RS232) was zu tun geben. ;D

LOCHFRASS
2004-02-10, 18:23:13
Ich hab hier noch so ein 1 GB Seagate Monster (ideal um Einbrecher bewusstlos zu schlagen :freak: ) mit nem 80188 drauf, was sich damit wohl noch für sinnlose Sachen anstellen lassen... ;D

Zool
2004-02-11, 07:32:23
Back to topic

Eine GPU kann sehr gut zur Lösung von Eigenwertproblemen und für alle anderen Arten wie Matrixoperationen (vor allem FFT) genutzt werden.
Mit 128Bit Floatgenauigkeit bei den aktuellen GPUs schlägt man unter Aussnutzung der hohen Speicherbandbreite jede aktuelle CPU

http://www.cs.unm.edu/~kmorel/documents/fftgpu/fftgpu.pdf

Coda
2004-02-11, 10:23:26
Original geschrieben von LOCHFRASS
Ich hab hier noch so ein 1 GB Seagate Monster (ideal um Einbrecher bewusstlos zu schlagen :freak: ) mit nem 80188 drauf, was sich damit wohl noch für sinnlose Sachen anstellen lassen... ;D
Festplatte mit nicht-realtime Mp3 Player :freak:

mrdigital
2004-02-11, 10:48:56
Original geschrieben von Zool
Back to topic

Eine GPU kann sehr gut zur Lösung von Eigenwertproblemen und für alle anderen Arten wie Matrixoperationen (vor allem FFT) genutzt werden.
Mit 128Bit Floatgenauigkeit bei den aktuellen GPUs schlägt man unter Aussnutzung der hohen Speicherbandbreite jede aktuelle CPU

http://www.cs.unm.edu/~kmorel/documents/fftgpu/fftgpu.pdf
Ja das ist wieder ein Beispiel was der (DSP artigen) Struktur von GPUs entgegenkommt, ein Berg Daten, der mit den immer selben Berechnungen traktiert wird, und es gibt keine Verzweigungen im Code, die FFT ist ein "starrer" Automat, in den man oben was reinschmeisst und unten was rauskommt, und der Automat macht immer das selbe, egal was du oben reinkübelst. Diese Art von Berechnungen lässt sich auch herrvoragend parallelisieren, weil es kaum (keine?) Abhängigkeiten der einzelnen Berechnungen gibt.