Archiv verlassen und diese Seite im Standarddesign anzeigen : GPU ^_^
Winter[Raven]
2005-01-13, 12:35:39
Moi Moi
Bei uns in dem Ausbildungsbetrieb ist derzeit ein Streit ausgebrochen im bezug auf die GPU und ob die CPU die einzige HW im PC ist die Daten verarbeitet.
Meinder Meinung hat es sich in letzter Zeit viel bei den GPU's getan und diese sind auch für die Verarbeitung zuständig, nur blöd das unserer Dozent es einfach nicht verstehen will.
Was sagt Ihr? Ist die GPU auch als Verarbeitungs-HW anzusehn?
Grestorn
2005-01-13, 12:48:48
Ganz klar ja.
Eine GPU verarbeitet Daten nach programmierbaren Algorithmen und gibt Ergebnisse aus.
Vergiss aber nicht, dass "klassische" Informatiker bei Daten immer an Datenbanken und Dateien denken und weniger an Matritzen und Pixel :)
Aber genau die Tatsache dass es massiv parallele Rechnerarchitekturen zur Berechnung von Matritzen schon lange gibt (Cray z.B.) ist ein absolutes Argument, dass eine GPU nichts anderes als eine Spezialform eines Prozessors ist.
G.ast
2005-01-13, 13:09:30
So klar ist das nicht. Mit Datenverarbeitung sind wohl frei programmierbare universelle Rechenwerke gemeint und das ist nur die CPU. Sonst könnte man jeden einzelnen Chip im Rechner als Verarbeitungshardware ansehen.
GPU ist frei programmierbar. Allerdings nur in wenigen Spezialfällen davon schnell.
G.ast
2005-01-13, 13:12:59
GPU ist frei programmierbar. Allerdings nur in wenigen Spezialfällen davon schnell.
Sie ist aber nicht universell, das ist nur die CPU.
Grestorn
2005-01-13, 13:14:33
So klar ist das nicht. Mit Datenverarbeitung sind wohl frei programmierbare universelle Rechenwerke gemeint und das ist nur die CPU. Sonst könnte man jeden einzelnen Chip im Rechner als Verarbeitungshardware ansehen.
Spätestens seit dem SM 3.0 ist eine GPU frei und universell programmierbar (Turing-vollständig). Mit 2.0 fehlen die dynamischen Sprünge, die für eine Turing-Maschine notwendig sind.
Grestorn
2005-01-13, 13:15:14
Sie ist aber nicht universell, das ist nur die CPU.Was genau meinst Du mit "universell"?
???
Jeder Chip im Rechner verarbeitet Daten.
micki
2005-01-13, 14:12:41
Spätestens seit dem SM 3.0 ist eine GPU frei und universell programmierbar (Turing-vollständig). Mit 2.0 fehlen die dynamischen Sprünge, die für eine Turing-Maschine notwendig sind.
sie ist nicht frei programmierbar, weil sie doch nur einen stream verarbeitet und dafür wird ein kleines programm angeworfen das nach spätestens 65536 instructions zuende ist.
frei programmierbare wäre eine gpu erst, wenn ein programm darauf ohne äußerliches 'anstossen' die ganze zeit weiterlaufen könnte.
doch das geht zur zeit nicht, jedenfalls mit keinem mir bekannten api.
MfG
micki
Grestorn
2005-01-13, 14:49:31
sie ist nicht frei programmierbar, weil sie doch nur einen stream verarbeitet und dafür wird ein kleines programm angeworfen das nach spätestens 65536 instructions zuende ist.
frei programmierbare wäre eine gpu erst, wenn ein programm darauf ohne äußerliches 'anstossen' die ganze zeit weiterlaufen könnte.
doch das geht zur zeit nicht, jedenfalls mit keinem mir bekannten api.
MfG
mickiNatürlich geht das. Du kannst mit dynamischen Branches eine Fallunterscheidung inklusive Rücksprung programmieren, oder? Und damit ist prinzipiell jedes Problem berechenbar.
Dass die Zahl der Instruktionen begrenzt ist, gilt für jede CPU. Man nennt das Programmspeicher. Bei einer herkömmlichen CPU sind das halt mehrere Millionen Instruktionen, bei einer aktuellen GPU halt nur mehrere Tausend Instruktionen.
micki
2005-01-13, 15:02:44
Natürlich geht das. Du kannst mit dynamischen Branches eine Fallunterscheidung inklusive Rücksprung programmieren, oder? Und damit ist prinzipiell jedes Problem berechenbar.
programm angeworfen das nach spätestens 65536 instructions zuende ist.
Dass die Zahl der Instruktionen begrenzt ist, gilt für jede CPU. Man nennt das Programmspeicher. Bei einer herkömmlichen CPU sind das halt mehrere Millionen Instruktionen, bei einer aktuellen GPU halt nur mehrere Tausend Instruktionen.
ich glaube das hast du nicht ganz verstanden
wile(true){}
läuft auf einer cpu bis von außen eingegriffen wird z.b. strom aus, interrupt, taskwechsel.
auf einer gpu ist nach 65536 instructions eigentlich schluss.
die radeons können zwar unendlich viele instructions im pixelshader mittels opengl, aber nur weil die cpu den workflow steuert.
MfG
micki
ok ok, hab nv paper durchstöbert, laut denen sollte die hardware wirklich unlimitiert viele instructions belibiger art ausführen können, wobei ich hier gerade extra ne 6800 eingebaut hab und die dxcaps nur 65536 als limit liefern... hat jemand info ob das mit oGL unlimitiert ist?
Tigerchen
2005-01-13, 15:21:32
']Moi Moi
Bei uns in dem Ausbildungsbetrieb ist derzeit ein Streit ausgebrochen im bezug auf die GPU und ob die CPU die einzige HW im PC ist die Daten verarbeitet.
Meinder Meinung hat es sich in letzter Zeit viel bei den GPU's getan und diese sind auch für die Verarbeitung zuständig, nur blöd das unserer Dozent es einfach nicht verstehen will.
Was sagt Ihr? Ist die GPU auch als Verarbeitungs-HW anzusehn?
Erstmal mußt du deinem Lehrer beibringen daß es im Jahre 2005 nicht nur klassische Daten ala DBase gibt sondern auch Audio und Videodaten. Und in der Tat wird die Verarbeitung gerade von Videodaten immer mehr auf die GPU verlagert. Auch Audiodaten werden vielfach nicht mehr von der CPU verarbeitet sondern vom Audio DSP. Da sagt es schon der Name "Digital sound processor". Wo lebt dein Lehrer? In den 60ern mit Lochkarten und Ferritkernspeicher?
ScottManDeath
2005-01-13, 16:40:17
IIRC ist das Limit als eine Art Watchdog dazu da um zu vermeiden das bei einem while(1) loop im VertexShader die GPU nicht das ganze System einfriert. Der VS/FS wird automatisch nach 64K ausgeführten Anweisungen terminiert. Das stand irgendwo mal bei NV in einem Paper.
Wie micki schon gesagt hat, können die nv Karten physisch beliebig viele Befehle ausführen. Unter OpenGL erlaubt die ARB_fragment_program Extension allerdings nur 4K Instruktionen als Programmlänge, die maximal ausgeführten Befehle liegen auch bei 64K (NV_fragment_program2, NV_vertex_program2)
IMHO wird(oder ist) die GPU eine Art Vektor Coprozessor, der ähnlich wie die 387 FPU die CPU unterstützt.
micki
2005-01-13, 16:43:04
Unter OpenGL erlaubt die ARB_fragment_program Extension allerdings nur 4K Instruktionen als Programmlänge, die maximal ausgeführten Befehle liegen auch bei 64K (NV_fragment_program2, NV_vertex_program2)
emm... scotty, du kennst nicht zufällig nen hack um das limit zu umgehen ?:)
Crushinator
2005-01-13, 17:26:40
Die bisherigen GPUs sind guten Gewissens als Application-Specific Integrated Circuits (ASIC) zu bezeichnen. Wie ScottManDeath schon sagte, sind sie allerdings eher unersetzbare Coprozessoren. Nichtsdestotrotz verarbeiten sie auch frei programmierbar (mit Grenzen) verschiedene Daten völlig unabhängig von der CPU. Verallgemeinert auf alle Tätigkeiten des PC kommt die CPU natürlich wesentlich öfter zum alleinigen Einsatz, um Programme verschiedenster Art abzuarbeiten.
Demirug
2005-01-13, 19:17:52
emm... scotty, du kennst nicht zufällig nen hack um das limit zu umgehen ?:)
Du bist doch nicht etwa schon über dem Limit?
Eine Wildcat kann mehr.
ScottManDeath
2005-01-14, 02:01:05
emm... scotty, du kennst nicht zufällig nen hack um das limit zu umgehen ?:)
Wenn Du GLSL nutzt, dürfte es eventuell gehen, kann aber auch sein das der GLSL-CG Compiler sich auch an die Profilgrenzen halten muss.
Dann gibts auch noch den hässlichen TreiberDebugUnd4KDurch64KErsetzWeg ;)
micki
2005-01-14, 02:18:27
Du bist doch nicht etwa schon über dem Limit?
Eine Wildcat kann mehr.
ne gf6800 kann auch mehr
die frage ist: ist das vomm treiber auch nach außen geführt?
btw. über das limit kommt man leicht, einfach durch ne scene tracen ;)
MfG
micki
vBulletin®, Copyright ©2000-2025, Jelsoft Enterprises Ltd.