PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Aufbau einer GPU - Infos gesucht


Benja
2003-09-10, 17:48:09
Hallo

Ich muß demnächst einen Vortrag über "Architektur und Organisation einer Graphics Processing Unit" halten und dementsprechend muß ich mich vorbereiten.

Informationen dazu findet man hier in den Artikeln vereinzelt und auf den Seiten der Hersteller (ATI, NVidia) eigentlich garnicht :(
Zumindest finde ich nichts.
Intel oder AMD sind da viel freigiebiger mit Informationen...

Also, wenn jemand von euch Infos, Links, Buchtipp, etc pp hat - ich wäre dankbar.

Demirug
2003-09-10, 18:00:53
Werde das ganze mal schieben.

Zuerst einmal mein Herzliches Beileid zu diesem Thema. Denn wie du schon festgestellt hat bekommt sind dazu kaum öffentliche Informationen erhältlich.

Wie weit willst/must du den runter?

Nur bis zu logischen Ebenen oder noch tiefer?

Benja
2003-09-10, 18:11:09
Das ist noch festzulegen ;) Freitag hab ich nen Treffen mit dem Betreuer.

Wieviele Pipelines ? Wie lang ? Welche Breite der Busse ?
Wie parallel wird gearbeitet ? Was für Einheiten gibt es ? Wieviele von welcher Sorte ? Wieviele Register ? Wie lang bzw groß sind sie ? Wie ist der Datenpfad ?

Das sind Fragen, die ich habe und angedacht hatte (u.a.).

Natürlich nicht in aller Tiefe (allein Zeitlich nicht zu machen) aber die Zuhörerschaft hat sich ein Semester lang mit dem Aufbau und Konzepten von CPUs und deren Umfeld beschäftigt (DLX, P4). Die Konzepte IN der GPU - dazu hab ich irgendwie garkeine Infos gefunden bisher.

Demirug
2003-09-10, 18:23:54
Auf der Ebene wirst du kaum umhin kommen dich durch die Patente der Hersteller zu wühlen weil solche Informationen habe ich sonst noch nirgens mit ausreichendem Detailgehalt gefunden.

Benja
2003-09-10, 18:50:38
Ich muß das jetzt nicht für ne GeforceFX machen.
Das ich dazu keine Infos kriege war eigentlich klar.

Wenn ich als Beispiel ne Geforce2 nehme oder ne Geforce1 (bzw. Konkurenzprodukte von ATI, Matrox o.ä.) , dann ist das nicht soo schlimm.

Dazu müßte es (dachte ich) einfacher sein etwas zu finden... Leider habe ich mich dann da wohl getäuscht :(

Xmas
2003-09-10, 19:58:57
Zu GeForceFX ist möglicherweise mehr bekannt als zu anderen Chips ;)

Ich habe den Eindruck das Thema ist ziemlich allgemein gehalten, deine Fragen zielen aber fast alle auf konkrete Implementationen ab. Wieviel Zeit hast du denn zur Verfügung?

Benja
2003-09-10, 20:06:06
Der Vortrag soll 30 (nim) bis 40 (max) Minnuten dauern.
Inkl. kurzer Einführung 3D-Grafik. Paar Worte dazu, wieso überhaupt GPU und nicht einfach nen Pentium 2 nehmen ;) ?
Naja, dann halt noch ~20 Minuten was zu GPUs.

Ich nehme aber auch gern Infos die eine Schicht darüber liegen...

Gast
2003-09-11, 12:38:07
Ich koennte dir da das Buch Real-Time Rendering empfehlen (http://www.amazon.de/exec/obidos/ASIN/1568811829/qid=1063276455/sr=1-3/ref=sr_1_10_3/028-1904114-5262114)

Am Ende des Buchs findest du ein Kapitel ueber verschieden GPU-Konzepte (irgendne Geforce, Kyro etc). Ausserdem wird auf die allgemeinen Fragen eingegangen. Auch warum GPU und nicht normaler Prozessor...

Kennung Eins
2003-09-12, 02:20:29
Original geschrieben von Benja
Hallo

Ich muß demnächst einen Vortrag über "Architektur und Organisation einer Graphics Processing Unit" halten und dementsprechend muß ich mich vorbereiten.

Informationen dazu findet man hier in den Artikeln vereinzelt und auf den Seiten der Hersteller (ATI, NVidia) eigentlich garnicht :(
Zumindest finde ich nichts.
Intel oder AMD sind da viel freigiebiger mit Informationen...

Also, wenn jemand von euch Infos, Links, Buchtipp, etc pp hat - ich wäre dankbar. Hab einen kompletten Artikel dazu für die Uni geschrieben, kann ich dir gerne schicken: kennung1 "at" gmx.net

Benja
2003-09-15, 12:54:30
@Gast: Danke, hab mir das Buch mal per Fernleihe bestellt. Hoffentlich kommt das bald ;) Vorrätig ist es hier nicht :(

@Kennung Eins: Danke, interessanter Artikel.

Benja
2003-09-29, 21:52:32
so, nun habe ich es nach 2 Wochen (!) endlich erhalten - nun gehts ans lesen :)

Benja
2003-11-30, 22:49:34
soo, Im Groben bin ich jetzt soweit, daß ich sagen würde "fertig".

Hat einige Mühe gemacht und ihr wurdet ja auch mit einigen Fragen gelöchert.

Effekte, Layout usw ist noch nich 100%ig aber Inhalt soll in etwa so bleiben.
Ich erzähle natürlich jede Menge zu den Folien, steht also nicht alles auf den Folien :)

Im Vergleich zum ursprünglichen Ansatz ist nichtmehr viel übriggeblieben.

Wer Powerpoint2002 oder PowerpointXP hat und wen interessiert was ich so verbockt habe:
ältere Versionen stellen die Animationen nicht reichtig dar wie ich vorhin feststellen mußte :(

Link (http://www.benja.de/Bund/GPU30112003.ppt)
410 KB

Wenn ihr da Inhaltliche Fehler findet nur her damit. Das ich an einigen Stellen unpräzise bin (oder am Beispiel mit dem Haus sogar falsch weil ja ein Quadrat 4 statt 6 Punkte braucht) ist meist Absicht - aber vielleicht hab ich ja auch was falsch verstanden und es deswegen falsch.

Ich danke schonmal/nochmal recht herzlich für die bisherige Hilfe !

edit:
Hab mal die Dateigröße eingetragen :)

Gast
2003-11-30, 23:17:27
Die Bilder von der Grafikkarte sind nicht die eigentliche GPU. Die würde ich zusätzlich hinzufügen.
Seite 3:
Schneller würde ich nicht nur auf Geforce 5950 beziehen. Der Takt alleine sagt nicht viel.
- "Nutzung hauptsächlich in Computerspielen", Entwicklungen, Simulationen usw.

Seite 4:
Gesamte Einheit GPU + Speicher + Ein- und Ausgängen
+ Bild GPU von ATI

Seite 6:
3-dimensionale Umgebungen brauchen komplexe und aufwendige Berechnungen:

- hohe Floatingpoint-Rechenleistung
- schnelle Matrixoperationen
- enormer Speicherbandbreitenbedarf (ohne ...)
- CPU ist zu langsam, da GPU bzw. die Grafikkarte spezialisiert ist *
- CPU kann andere Aufgaben übernehmen (z.B. KI in Spielen)

* man kann 3D-Umgebungen schon mit der CPU generieren, aber ist deutlich zu langsam

Das sind zur Zeit meine Vorschläge

Legolas
2003-12-01, 00:07:27
Auf Folie 24, wo die Rasterung veranschaulicht wird, würde ich ein quadratisches Raster benutzen, da dies der Wirklichkeit entspricht. So wie das jetzt aussieht, sind die Rasterpunkte auf den Zeilen eher willkürlich gesetzt.

Außerdem würde ich auf Folie 15 im historischen Rückblick noch weiter zurückgehen und mit den wirklich ersten Consumergrafikkarten anfangen, die mit dem Feature 3D beworben wurden. Also S3 Virge, Rendition Verite usw. bis zu den ersten wirklichen 3D Grafikkarten im Consumermarkt: Voodoo Graphics usw. Im weiteren Verlauf würde ich auch die Refreshchips weglassen, also alles, was keine neuen Technologien eingeführt hat (TNT2, GF2, GF4)

aths
2003-12-01, 10:18:57
Habe mir erlaubt, mal grün daherzureden.

Seite 11:

"Objekt „einfaches 3D-Haus“ besteht aus 5*2 + 4 = 14 Dreiecken also 14*3 = 42 Dreieck-Eckpunkten
Ein Punkt besteht aus 4 Koordinaten (x, y, z, w)
Objekt besteht aus 42*4 = 168 Floatingpointzahlen"

Ein Eckpunkt besteht nicht nur aus den Vertex-Koordinaten. Dazu kommen Farbe und meist auch Textur-Koordinaten. Vor allem kommt noch (mindestens) eine Normale dazu!!


"Manipulationen werden in einem Schritt durch Multiplikation jedes Punktes mit einer 4x4 Matrix erreicht"

Na, das kann intern schon mehrere Takte dauern.



Seite 24:

"Bildschirmauflösung bestimmt:
- Zahl der Zeilen
Zahl der Punkte pro Zeile"

Das Bild suggeriert auf der X-Achse beliebig feine Darstellung.


Seite 26:

"Multi-Texturing:

Überlagerung eines Pixels mit mehreren Texturen gleichzeitig ohne große Flexibilität
Effekte nur über Tricks nutzbar"

Na wie flexibel das ist, hängt von der konkreten GPU ab. Wieso sind Effekte nur über "Tricks" nutzbar? Selbst wenn es nur eine fixed-function-Pipe ist, die zur Verfügung gestellten functions werden ja nicht umsonst angeboten.


Seite 27:

"Frei Programmierbare Einheit
Eigene Register, Befehlssatz
Belegt Pixel mit Texturen, Farben, Effekten:
Reflexion, Muster, Nebel, Transparenz, …
Führt Anti-Aliasing aus"

"Frei programmierbar" würde ich den Pixelshader wirklich nicht nennen. Bis Pixelshader 1.3 kann man imo etwas hämisch eher von einer auf logischer Ebene standardisierten Register-Combiner-Multitexturing-Pipe sprechen.

Anti-Aliasing führt die AA-Einheit aus, nicht der Pixelshader.

"Reflexion, Muster, Nebel, Transparenz" - das kriegst du mit jeder Voodoo2 hin. Bessere Reflexionen erfordern imo nur GeForce1-Niveau.


Seite 30:

"Z.B. Texturen in unterschiedlichen Auflösungen um ohne Umwege dem Level of Detail gerecht werden zu können"

Na, der Umweg ist z. B. bilineares oder trilineares Filtering. Also trotz MIP-Mapping hat man nicht immer gleich das passende LOD. Natürlich aber spielt MIP-Mapping, wie du angedeutet hast, eine sehr wichtige Rolle, um das passende LOD zu bekommen.


"475 MHz DDR-RAM -> effektiv 950 MHz Speichertakt
Speicherbusbandbreite: 256 Bit
Füllrate: 30.4GB/s"

Bitte bitte bitte!! Effektiv sind das 512 Bit Busbreite, aber nicht 950 MHz Takt! Die 30,4 GB/s sind die Speicherbandbreite, nicht die Füllrate.


Seite 31:

"Pro Pixel 32Bit Floating-Point"

Afaik 24 Bit FP, + 8 Bit Integer Stencil. Müsste sich Demi oder zecki mal konkret zu äußern.

zeckensack
2003-12-01, 13:07:36
Original geschrieben von aths
Afaik 24 Bit FP, + 8 Bit Integer Stencil. Müsste sich Demi oder zecki mal konkret zu äußern. Das Zahlenformat im Z-Buffer ist bis auf eine fehldesignte Ausnahme (Direct3D 'lockable') vollständig proprietär. Man kann einfach nicht sagen, welche Zahldarstellung tatsächlich genutzt wird.
Das könnte 24 Bit Integer, 24 Bit Float, 24 Bit Integer-Näherung von 1/z, 24 Bit Integer-Näherung von 1/w, 24 Bit Float-Näherung von 1/z, etwas binärbaumartiges etc etc etc sein :)

Der Stencil-Buffer ist allerdings auf 8 Bit Integer festgenagelt, das hängt mit dem Nutzungsmodell zusammen (bitweise logische Operationen).

Die IMO passende Angabe wäre "24 Bit für Z und 8 Bit für Stencil, oder nur 16 Bit für Z" hinzuschreiben, ohne näher auf das Zahlenformat einzugehen.

Auch das ist noch vereinfacht, weil es tatsächlich Grafikchips gibt, die zB 32 Bit Z beherrschen (3DLabs' diverse Wildcats), oder gar 'virtuell' 32 Bit Z und 4 Bit Stencil (PowerVR's Kyro). Halte ich aber für eine gute Vereinfachung :)

Xmas
2003-12-01, 14:22:28
Original geschrieben von aths
"Pro Pixel 32Bit Floating-Point"

Afaik 24 Bit FP, + 8 Bit Integer Stencil. Müsste sich Demi oder zecki mal konkret zu äußern.
Darf ich auch? ;)
Die Radeons <= 9200 beherrschen AFAIK 32bit Z. Die R300-basierten tun es nicht mehr, und Geforce-Karten waren schon immer auf 24bit limitiert. Und wie zecki schreibt, ist das genaue Format nicht fest.


Neben dem genannten möchte ich noch anmerken:

Seite 18:

Statt direkt vom AGP liest die Geometrieeinheit auch Daten vom Speicher. Statt "Textureinheit" solltest du "Pixel-Pipeline" verwenden.

Seite 20:

"In aktuellen GPUs SIMD (durch mehrere parallele Vertex Shader)"

SIMD hat nichts mit mehreren parallelen Vertex Shadern zu tun.

Seite 22:

"Aus Kompatibilitätsgründen noch integriert"

Aktuelle GPUs führen Fixed Function T&L über den Vertex Shader aus

Seite 32:

"Wenn der Back-Buffer voll ist, tauscht er die Rolle mit dem Front-Buffer"

"Voll" ist hier das falsche Wort, denn es suggeriert dass der Buffer sequenziell gefüllt wird. "Fertig gerendert" wäre richtig.

Benja
2003-12-01, 23:06:14
supi ! danke.

ein Teil eurer Einwände war mir vorher bekannt, ich habs teils aus Einfachheit, teils aus Zeitersparnis (neue Begriffe) weggelassen.
Einiges war mir aber auch neu.

Das jetzt alles einzeln aufzuführen führt zu weit.
Wenn ich ne überarbeitete Version habe poste ich sie vielleicht nochmal ;)

Herzlichen Dank !

Benja
2003-12-11, 00:24:47
Hallo

Soo, morgen ist der "große Tag". Hier jetzt meine Endgültige Fassung des Vortrags.
Ich weiß, daß einiges gewagtes drinsteht und einiges, was definitiv einer Erläuterung bedarf. Das werde ich natürlich dann verbal machen. Evtl entaltene Fehler sind entweder Absicht (z.B. Anzahl der Dreieck Eckpunkte für die Häuser im Bsp) oder ich wußte es nicht besser.

Wer Interesse hat: Vortrag GPUs (http://www.benja.de/sem/GPU10122003_.ppt)

Wenn ich demnächst nochmal ganz viel Lust habe werd ich mal nen Audio-Stream in mp3 dazu machen falls Interesse besteht...

Ich danke nochmal allen, die mir hier geholfen haben ganz herzlich !

Gruß,
Benjamin

Gast
2003-12-11, 12:33:11
Ein P4 hat nur 42 Millionen Transitoren?
Is ja interessant ;)
Den Tippfehler würd ich mal noch verbessern
Ausserdem noch ne genauere Bezeichnung bei den Graphen
ne GF4 ist schneller als ne Radeon aber langsamer als ne Radeon...
Wenns nicht genau hinpasst mach halt R200, R300 usw

Die Folien haben sich auf jeden Fall wesentlich gebessert zu den ersten :)
Was ich noch an Verbesserungsvorschläge fürs nächste mal hätte:
Weiß als Hintergrundfarbe finden die meisten Leute am angenehmsten.
Mehr Farbe in der Schrift; man muss sofort erkennen was wichtig ist und was nicht, was Definitionen sind usw.
Und vorallem keine so komischen Animationen reinbauen. Die zwingen dich beim Vortragen immer zu Redepausen, beindrucken heute keinen mehr und wirken irgendwie fehl am Platz.
Was auch noch ganz gut wirkt, ist wenn die Folien geteXt sind. Inzwischen kann man dort genauso Effekte einbauen wie bei PP und es gibts dutzende von Packages speziell für Vortragsfolien.

JuNkEE
2003-12-11, 15:44:53
Folie 3 ganz unten: GeforceXF

:)

Benja
2003-12-11, 18:22:33
die 42 Mio hab ich gutgläubig aus dem Stallings abgeschrieben. gewunder hat es mich auch - aber ich hab nicht weiter nachgeguckt.
Ich dachte, daß hängt mit der Cache-größe zusammen :)

ow
2003-12-11, 19:06:47
.

JuNkEE
2003-12-11, 19:14:27
Kann ich bestätigen.
Es sind zwischen 130 und 135 Millionen Transistoren