pfender am 31.03.2007 19:26 schrieb:
Da das "Grafikkarten und Monitore" Forum hier wohl nicht mehr existent scheint schreib ich hier rein.
Bis auf Karten wie die 7950GX2 haben vielleicht noch sonstige Hersteller zweikernige Karten rausgebracht, allerdings mit wenig Erfolg.
Warum gibt es kaum Mehrkerner auf dem Grafikkartenmarkt, lohnt es sich nicht verschiedene Threads auf zwei gleichstarke Kerne zu verteilen?
für heimanwender gabs neben der 7950/7900gx2 gabs auch noch ati rage fury maxx und natürlich voodoo5 5000. dazu einige cf/sli-on-a-bord lösungen von asus, gigabyte,...
rein technisch dürfte der hauptnachteil (zumindest war das ein großes problem bei den voodoos) in der speicheranbindung liegen:
die eigentlichen arbeitsschritte einer gpu lassen sich zwar hervorragend parallelisieren und eine 8800gtx mit 128 extra verbauten streamprozessoren hätte nicht zwangsläufig nachteile dadurch - aber:
jeder bearbeitungsschritt kann jederzeit eine beliebige information erfordern.
d.h. entweder erhält jede recheneinheit alle dateien in einem eigenen speicher (würde man den r600 also z.b. auf 8 chips aufteilen, die jeder einzeln~ einer einsteiger karte entsprechen würde: 8gb ram und 4kbit speicheranbindung), was aufwendig und teuer ist, siehe 7950gx2.
viel mehr als 2, vielleicht 4 chips lassen sich so kaum realisieren (oberhalb wirds auch schwierig, den inhalt der vielen speicher zu synchronisieren - intel hat ja im cpu bereich unter anderem deswegen den 80kern versuchschip entwickelt)
da der speicher&anbindung ohnehin in den meisten fällen ein zusätzliches pcb erfordert, weil der platz sonst nicht reicht, macht es auch wenig sinn, nach diesem prinzip eine karte zu bauen - man kann einfach zwei karten bauen und die verbinden. (cf/nvidias sli nutzen genau diesen aufbau. die kosten wären auch bei einer einzelnen, entsprechend aufwendigeren karte nur unwesentlich niedriger - wie die 2gpus-auf-einem-pcb lösungen einiger grafikkartenhersteller zeigen)
die alternative wäre, alle chips mit einem so schnellen interface zu vernetzen, dass sie sich die daten mit tollerierbarem leistungsverlust aus dem speicher eines anderen chips holen können. im cpu bereich hat amd das mit ht&integriertem speichercontroller so gemacht, aber da wird meist auch länger an einem datensatz rumgerechnet und die caches pro recheneinheit sind ziemlich groß, so dass die zahl der zugriffe sinkt. im gpu bereich wurde es deswegen afaik noch gar nicht umgesetzt - die erforderlichen bandbreiten würden eine verbindung erfordern, die auf einem pcb nur sehr schwierig umzusetzen ist, einfach die weil die benötigten taktraten extrem hoch sind oder man extrem viele parrallele leitungen bräuchte - bei mehr als 2 gpus schlichtweg aus platzgründen unmöglich.
3dfxs sli war übrigens ne mischung aus beiden techniken, ein teil der daten stand jedem chip einzeln zur verfügung, ein teil wurde gemeinschaftlich gespeichert - der versuch der entwicklung eines pcbs, dass einem array von gerade mal 4gpus einen austausch dieser daten ermöglichte, wird als eine der ursachen des niederganges der firma gesehen. (die entwicklung der voodoo5 6000 dauerte schlichtweg zu lange, vorher waren die single-chips der konurrenz schnell genug und deutlich billiger)
und damals wurden noch vergleichsweise wenig daten benötigt.
variante b) (cross-zugriff) wird heute übrigens von quasi allen herstellern genutzt - nur auf dem chip.
insbesondere atis ring-bus controller ist ein vorzügliches beispiel, wie sowas funktionieren kann.
nur: derartige leistungen lassen sich auf absehbare zeit nur on-die erreichen, nicht zwischen dies.
p.s.:
ich glaub, dass hier ist eher ne "technologiediskussion"