pipip schrieb:
...
Wieso ist dir der Unterschied von 2x16 oder 1x32 so wichtig.
Wenn Software A auf GPU A berechnet wird und Software B auf GPU B, wo ist der Unterschied, wenn Software A&B auf GPU C mit 32 GB berechnet wird ?
Es kommt eben auf die Software an und deine absolute Aussage "niemals" ist eben schon nicht korrekt.
...
Weil ich im HPC-Bereich tätig bin und mit solchen Themen zu tun habe. Wenn hier Leute ankommen und meinen 2x16GB oder 1x32GB wäre nur beim Spielen ein Thema und von irgendwelchen fiktiven "Pro-Szenarien" faseln, in denen das kein Thema sein soll, dann verspüre ich halt den Drang einzuwenden, dass das selbst im "Pro-Bereich" nur ein gar nicht mal so großes Subset von Anwendungen/Problemen ist, bei dem das bzgl. der Performance bzw. der Speichernutzung tatsächlich so ist. Datenlokalität ist im Pro-Bereich ein sehr präsentes Thema.
Bzgl. der "absoluten Aussage" drück doch mal STRG+F und suche nach "niemals". Das habe ich nie gesagt. Ich kann nichtmal nachvollziehen, wo du das rauslesen willst.
Aber da du ja schon wieder bei "...wenn AMD... aber bei Nvidia..." bist, brauch ich das wohl auch gar nicht nachvollziehen. Da wurde wohl nur ein roter Nerv getroffen, weil meine Aussage durch die rote Brille einen imaginären grünlichen Schimmer aufblicken ließ (warum auch immer).
Ich habe nichtmal gesagt, dass die Karte deshalb schlecht sei. Ich habe nur inhaltlich angemerkt, dass 2x16 und 1x32 sich auch abseits vom Gaming deutlich unterscheiden und Einwände bezüglich der vollen Nutzbarkeit des Speichers aufgrund von Datenredundanz eben nicht nur in Bezug auf Spiele gerechtfertigt sind. Und das Alles gilt selbstverständlich ganz genauso für NVidia-Dual-GPUs (da dir das ja scheinbar wichtig ist).
Zu deiner Frage:
Wenn A und B getrennte Softwares sind und diese auf komplett unterschiedlichen Daten arbeiten, dann gibt es natürlich keinen Nachteil (bis auf die geteilte x16-PCIe-Bandbreite, wenn beide gleichzeitig darüber kommunizieren).
Die könnte man ja auch auf zwei getrennten Karten oder gar zwei getrennten Rechnern laufen lassen. Dem habe ich aber auch nie widersprochen. Ich habe im Gegenteil sogar eingeräumt, dass es für manche Anwendungen durchaus möglich ist, Daten eines Problems (also einer einzigen Software) so zu teilen, dass diese keine Überschneidungen aufweisen. (Falls hier das Verständnis fehlt: Das ist der Fall in dem 2x16GB und 1x32GB gleichwertig sind).
Ich habe lediglich darauf hingewiesen, dass das halt nur für bestimmte Anwendungen funktioniert und eben nicht, wie einige es hier teilweise darstellen, im Non-Gaming-Bereich prinzipiell so sei.
Dass es Fälle gibt in denen 2x16 keine Nachteile hat sagt nun aber noch lange nicht, dass 1x32GB nicht besser ist. 2x16GB ist im Idealfall halt gleichwertig, abseits des Idealfalles aber eben schlechter. Szenarien in denen 2x16 besser ist, gibt es hingegen nur sehr exotische, wenn die Anwendung in den zuvor beschriebenen Idealfall fällt UND extrem an der Speicherbandbreite hängt, was aber bei den hohen Bandbreiten von GPU-Speicher nicht so häufig vor kommt (aus eigener Erfahrung ist mir keine solche Anwendung bekannt, wir betreiben aber auch nicht primär GPU-basierte-Systeme).
Insgesamt darfst du mir also ruhig glauben, wenn ich sage, dass 2x16 und 1x32 sich nicht nur im Gaming unterscheiden.
Bei uns im HPC-Bereich ist Speicherlokalität täglich Brot und das Thema geht da weit über 1-2 GPUs und Speicherpools hinaus. Und da gilt einfach: Wenn man etwas nicht aus irgendwelchen Gründen auf 2 Knoten mit 2x Speicher aufteilen MUSS, dann lässt man das am Besten auch. Denn dann bleibt man weniger äbhängig davon, ob und wie sich die Anwendung diesbezüglich verhält.
supern00b schrieb:
muss man denn den Speicher einer GPU fix zuweisen? oder könnte man nicht auch den Speicher für beide zugänglich machen? ev. über einen extra Controller?
Haha. Genau darüber habe ich zufällig gestern nachgedacht.
Das was du meinst wäre dann eine Art SMP-GPU-System.
Das wäre dann Shared Memory und würde bedeuten, dass beide (oder noch mehr) GPUs gleichzeitig auf denselben Speicher performant zugreifen können.
Es wäre vermutlich möglich, aber aufwendig und sauteuer.
Problem: Ein Speicher, der mehrere GPUs gleichzeitig versorgen soll, braucht entweder bruuuutale Bandbreiten (€€€) oder eine sehr clevere Methode, die Daten zu verteilen. Außerdem wird dann Kohärenz zum Problem (zumindest bei Compute-Anwendungen, bei Grafikberechnungen vllt weniger). Grafikkarten haben z.B. auch Caches. Wenn jetzt eine GPU etwas aus dem Speicher nimmt und ändert, aber noch nicht wieder zurück geschrieben hat, dann muss z.B. (in manchen Fällen zumindest) verhindert werden, dass andere GPUs in dieser Zeit dieselben Daten anfordern und dann auf alten Daten arbeiten. So etwas mögen GPUs nicht so gerne. Die schieben gerne große Mengen an Daten parallel durch sich durch. Wenn da jetzt plötzlich manche Stückchen der Daten nicht benutzt werden dürfen, wird's knifflig.
So beim Nachdenken kam ich zwar zu dem Schluss, dass es durchaus möglich wäre, aber auf diese Idee müssten eigentlich auch Andere schon gekommen sein und wenn es sinnvoll wäre, hätten wir das vermutlich schon gesehen. Kann mir zumindest nicht vorstellen, dass SMP bei CPUs ein Thema ist, aber bei GPUs zufällig noch niemand auf die Idee kam.
Che-Tah schrieb:
Wenn das ne Dual GPU ist... hatt die dann wie CF im Endeffekt nur 16 GB VRAM?
Klares Jein. Wenn man CF aktiviert ja, ansonsten siehe oben.