Mantle "entfesselt" Crossfire: AMD verabschiedet sich vom AFR-Modus - Mikroruckler adieu?

AW: Mantle "entfesselt" Crossfire: AMD verabschiedet sich vom AFR-Modus - Mikroruckler adieu?

Kennt sich jemand mit DRAM-Chiparchitektur gut genug aus, um die Machbarkeit zu beurteilen? Für mich klingt es gerade lächerlich naheliegend. Die einzige Gefahr geht von dem armen Typen aus, der das 2x512 Bit Speicherinterface für die r290x² routen soll, aber diese Gefahr kann man mit einer stabilen Zellentür neutralisieren :ugly:

(Alternativplan B: Notfalls nimmt man non-G DDR3, der mit mehreren Geräten am Speicherbus zurechtkommt. Die Koordination zwischen den GPUs wird zwar etwas komplexer, wenn zwei dieser Geräte zwei Speichercontroller sind und der Speichertakt geht in den Keller, aber auch so wäre ein wechselseitiger Zugriff auf die gleichen Chips machbar.)
Nein, das kannste knicken.

Du brauchst ja saubere Signale, und das bekommste mit doppelt geschalteten Leitungen nicht hin. Vor allem musste ja apriori wissen, wer denn jetzt lesen/schreiben darf. Klar, du kannst das durch Zeitinterleaving machen, aber dadurch verlierst du massiv Performance. Dazu kommt noch, dass du austauschen musst, wer denn jetzt wo wie was stehen hat. Und die Glock musst du auch syncen.

Am Ende würde es wohl darauf hinauslaufen, dass du nen eigenen ASIC zwischen Mem-Controller der GPUs und des GDDR5 hast, wobei das halt AUCH wieder ein Problem ist wegen den Timings... Die sind ja an sich eigentlich deterministisch. Also kurz um, du handelst dir so viele Probleme, allein schon bei der rein physikalischen Signalübertragung ein, dass das totaler Wahnsinn wäre. Da ist ne direkte Verbindung sogar noch leider und besser zu realisieren.
 
AW: Mantle "entfesselt" Crossfire: AMD verabschiedet sich vom AFR-Modus - Mikroruckler adieu?

Ein doppelter Lesezugriff wäre nicht soviel einfacher, als ein doppelter Lese- und Schreibzugriff (die Abstimmung, wer wohin schreibt, entfällt - das wars

Wenn die VRAM aber physikalisch unterteilt wäre und sozusagen nummeriert (elektronisch oder physikalisch ka) und mann der GPU sag du darfst speichern in nummer 1 und lesen nummer 1 und 2 (3,4) müsste dies doch "theoretisch" funktionieren

und die GPU würde ja sozusagen die Datei holen, ihre Informationen drüberlegen und diese wieder auf ihren teil VRAM bringen damit die 3 andren GPU's diese Daten holen können und ihren teil berechnen?

Aber selbst die Zeitpunkte müssen weiterhin koordiniert werden, da der DRAM-Chip ja im Moment des lesens durch eine GPU von der anderen nicht genutzt werden kann
ich habe fast keine Ahnung von der Materie sry :P aber bei SLI und CF funktioniert das bis jetzt ja gar nicht so schlecht weil ja die eine Grafikkarte wartet bis die andere fertig ist.
Und Mantel soll ja auch 2 Grafikkarte 1 Bild erstellen lassen und unterschiedliche Teile erstellen. (??) wäre ja eine ähnliche Technik nur das man eben immer noch die langsame PCI3 Schnittstelle hat.

...verträgt keine großen Leiterbahnenlängen und erst recht keine Steckkontakte...
ich meinte das die Grafikkarte als ein teil ausgeliefert wird nicht das es Steckkontakte sind.
blöd gesagt wenn eine Grafikkarte als O verkauft werden dann ist die Konstruktion die ich meine einfach grösser, du meinst wahrscheinlich das man2 OO kauft und diese zusammensteckt.

Smileys tippt man entweder einfach mit ein oder man nimmt das Auswahlmenü rechts vom Antworten-Fenster.

Dafür bin ich entweder zu blöd oder mein Firmen PC mit dem doofen IE zeigt das einfach nicht an :(
 
AW: Mantle "entfesselt" Crossfire: AMD verabschiedet sich vom AFR-Modus - Mikroruckler adieu?

Was ich letztlich vorschlage, ist den kompletten Speicher interleaved anzusprechen. Die Probleme hierfür bestehen aber vorerst auf Basis der elektrischen Verbindung - eine Beschränkung nur auf Texturen bringt keine Vereinfachung. (und auch relativ wenig für multi-GPU, denn Texturen kann man auch direkt an beide Karten schicken, solange deren Speicher reicht. Größere Chips sind hier die billigste Lösung)

Die Probleme bestehen imho eher darin, dass man dafür andere Speicherkontroller auf den GPUs braucht (bzw. eine zusätzliche GPU-Reihe). Analog zu z.B. den Mehr-Wege-Xeons. So was wie NUMA wird aber eher flachfallen, wegen der unterschiedlichen Zugriffszeiten.
Dann ist man aber wieder hier:
Dann könnte man aber auch ebensogut eine direkte GPU-GPU-Schnittstellen mit auf die Chips packen.
Bislang werden derartige Lösungen aber als finanziell unattraktiv betrachtet.

Wenn man das simpel - preiswert, bzw. noch preiswerter als auf den bestehenden Dual-GPU-Karten - erschlagen könnte, hätte man das mit Sicherheit zumindest auf diesen Karten schon in Angriff genommen.
 
AW: Mantle "entfesselt" Crossfire: AMD verabschiedet sich vom AFR-Modus - Mikroruckler adieu?

Nein, das kannste knicken.

Du brauchst ja saubere Signale, und das bekommste mit doppelt geschalteten Leitungen nicht hin.

Wie gesagt: Plan B ginge elektrisch nur auf dem Takt-Niveau von DDR3. Das von GDDR5 kann man mit 3 Geräten am Bus nicht halten. Aber bei Plan A entfällt dieses Problem eben, denn zwischen jedem Chip und jeder GPU gibt es eine Punkt zu Punkt Verbindung. Zwar nur halb so breit, wie bislang - aber da jede GPU jetzt auch Zugriff auf doppelt soviele Speicherchips hat, bleibt die Gesamtbandbreite ~die Gleiche. (das komplexe Routing wird ein paar MHz kosten)

Vor allem musste ja apriori wissen, wer denn jetzt lesen/schreiben darf. Klar, du kannst das durch Zeitinterleaving machen, aber dadurch verlierst du massiv Performance.

Ich verliere auf den Chips, die gerade parallel genutzt werden, 50% Bandbreite, dass stimmt. Aber da die Zugriffsmuster von GPUs relativ gut vorhersehbar sind und nur ein Teil der Daten ausgetauscht werden muss, kann ich über PCIe-Verbindung absprechen, dass zu jedem Zeitpunkt ein Großteil der Speicherchips einer GPU exklusiv zur Verfügung steht.

Dazu kommt noch, dass du austauschen musst, wer denn jetzt wo wie was stehen hat. Und die Glock musst du auch syncen.

Den Takt meinst du? Das sollte nun wirklich keine große Herausforderung sein, zwei GPUs auf einer Platine synchron zu takten. Und der Adressaustausch ist ebenfalls kein großes Problem. Zum einen kann ich die Adressen schlichtweg an bekannter Stelle im Speicher ablegen, zum anderen sind die anfallenden Daten eben hochgerade vorhersagbar. Ich kann die Latenz eines Zuordnungstabllenaustausches via PCIe also vollständig maskieren.


Wenn die VRAM aber physikalisch unterteilt wäre und sozusagen nummeriert (elektronisch oder physikalisch ka) und mann der GPU sag du darfst speichern in nummer 1 und lesen nummer 1 und 2 (3,4) müsste dies doch "theoretisch" funktionieren

und die GPU würde ja sozusagen die Datei holen, ihre Informationen drüberlegen und diese wieder auf ihren teil VRAM bringen damit die 3 andren GPU's diese Daten holen können und ihren teil berechnen?

Irgendwie ist mir nicht ganz klar, was deine Zeilen mit der von dir zitierten Passage zu tun haben.

ich habe fast keine Ahnung von der Materie sry :P aber bei SLI und CF funktioniert das bis jetzt ja gar nicht so schlecht weil ja die eine Grafikkarte wartet bis die andere fertig ist.

Bislang haben wir eine Koordination auf Ebene der Erstellung von Bildern (30 bis 100 mal pro Sekunde). Für obige Vorschläge brauchen wir eine Koordination auf Ebene einzelner Speicherzugriffe (bis knapp eine Milliarde mal pro Sekunde). Das ist ne Liga, die nach anderen Lösungen verlangt ;)

ich meinte das die Grafikkarte als ein teil ausgeliefert wird nicht das es Steckkontakte sind.
blöd gesagt wenn eine Grafikkarte als O verkauft werden dann ist die Konstruktion die ich meine einfach grösser, du meinst wahrscheinlich das man2 OO kauft und diese zusammensteckt.

Ob die Platinen nun ab Werk (ala 7900GX2) oder vom User zusammengefügt werden, spielt keine so große Rolle. Du hast so oder so das Problem, dass du mehrere PCBs verbinden musst und solche Verbindungen verschlechtern immer die Signalqualität.


Die Probleme bestehen imho eher darin, dass man dafür andere Speicherkontroller auf den GPUs braucht (bzw. eine zusätzliche GPU-Reihe). Analog zu z.B. den Mehr-Wege-Xeons. So was wie NUMA wird aber eher flachfallen, wegen der unterschiedlichen Zugriffszeiten.

Nö, Änderungen am Speichercontroller sind dafür kaum nötig. Die Speicherzugriffe an sich würden unverändert ablaufen. Einzig eine Sperrfunktion muss integriert werden, die verhindert, dass GPU1 auf Speicherbereiche zugreifen möchte, die GPU2 in diesem Moment nutzt. Aber das kannst du sogar notfalls auf höherer Ebene in Software machen, schließlich bestimmen Scheduler und Ausführungseinheiten, welche Adresse wann angefordert wird.
 
AW: Mantle "entfesselt" Crossfire: AMD verabschiedet sich vom AFR-Modus - Mikroruckler adieu?

Du bist das Schweizer Taschenmesser für grenzwertige Antworten.:what:
 
AW: Mantle "entfesselt" Crossfire: AMD verabschiedet sich vom AFR-Modus - Mikroruckler adieu?

Wie gesagt: Plan B ginge elektrisch nur auf dem Takt-Niveau von DDR3. Das von GDDR5 kann man mit 3 Geräten am Bus nicht halten. Aber bei Plan A entfällt dieses Problem eben, denn zwischen jedem Chip und jeder GPU gibt es eine Punkt zu Punkt Verbindung. Zwar nur halb so breit, wie bislang - aber da jede GPU jetzt auch Zugriff auf doppelt soviele Speicherchips hat, bleibt die Gesamtbandbreite ~die Gleiche. (das komplexe Routing wird ein paar MHz kosten)


Ich verliere auf den Chips, die gerade parallel genutzt werden, 50% Bandbreite, dass stimmt. Aber da die Zugriffsmuster von GPUs relativ gut vorhersehbar sind und nur ein Teil der Daten ausgetauscht werden muss, kann ich über PCIe-Verbindung absprechen, dass zu jedem Zeitpunkt ein Großteil der Speicherchips einer GPU exklusiv zur Verfügung steht.
Dann schau dir bitte nochmal an, wie ein GDDR5 oder auch DDR3/4 Chip funktioniert. Du kannst nicht so einfach die Datenleitungen einfach aufteilen. Du hast nämlich nur eine einfache Anbindung der Adressleitungen. Zudem brauchst du eben alle Datenleitungen, um überhaupt in den gesamten Speicher Schreiben/Lesen zu können. Wenn könntest du also wenn überhaupt nur ein fixes Interleaving in den Zugriffen machen. Also das Ganze mit DDR laufen lassen, aber jeder sieht nur SDR, wobei das eben nicht mal gehen würde, da man ja prefetching usw hat, um überhaupt die Bandbreiten zu erreichen... Man müsste also was weiß ich, sagen erst mach der eine 32 Takte, dann der andere usw.

Den Takt meinst du? Das sollte nun wirklich keine große Herausforderung sein, zwei GPUs auf einer Platine synchron zu takten.
Hast du ne Ahnung...

Genau DAS ist NICHT! trivial. Genau um so ein Problem mit sync Takt kümmert sich jemand im gleichen Büro seit round about einem Jahr. Die Tolleranzen sind einfach verdammt klein bei so was und du musst auch noch berücksichtigen, dass es eben durch äußere Einflüsse zu Schwankungen/Fehlern kommt, usw usw usw. Clock sind alles nur nicht einfach. Falls du jemals an ner ASIC-Entwicklung mitarbeitest, Clock, Power und FiFos sind der Ursprung allen Übels. Und machmal auch noch das Reset ;)

Und der Adressaustausch ist ebenfalls kein großes Problem. Zum einen kann ich die Adressen schlichtweg an bekannter Stelle im Speicher ablegen, zum anderen sind die anfallenden Daten eben hochgerade vorhersagbar. Ich kann die Latenz eines Zuordnungstabllenaustausches via PCIe also vollständig maskieren.
Und woher weißt du, dass die Daten fertig geschrieben sind, bzw neu sind? Also wieder sync. Das ist alles nur nicht einfach. Wenn du dafür auch wieder PCI-E für alles mögliche verwenden willst, inkl der obigen ganzen Einschränkungen, kannste auch einfach PCI-E nehmen. Der Ganze Aufwand lohnt sich null.

Mit DDR/GDDR ist es einfach eine absolut beschissene Idee. Das gesamte Geraffel ist einfach Null darauf ausgelegt. Du schießt dir da fortlaufend ständig und andauernd ins Knie. Da ist es deutlich einfacher "einfach" was komplett anderes zu machen, als das zu versuchen um zu biegen.

Ansonsten hat das aber nichts, also wirklich rein gar nichts mit dem eigentlichen Thema Mantle zu tun. Wäre also cool, wenn wir dazu zurückkommen könnten.
 
Zurück