Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?
Forum>Hardware>Zukunft: Grafikkarte als Altivec-Ersatz?

Zukunft: Grafikkarte als Altivec-Ersatz?

patrick.29.01.0613:54
Nein, das soll kein erneuter Thread zum Pro/Con-Intel-Switch werden!

Der Thread richtet sich interessehalber an jene hier im Forum, die sachlich über die Zukunft der Hardware/Softwarearchitektur DISKUTIEREN möchten.
Ein Gedankenaustausch - mehr nicht.

Ausgehend von Apples jüngster Pro-App "Aperture", die auf auf den meisten Rechnersystemen zur Zeit doch etwas zäh läuft und einem Artikel (Quelle: vergessen), der sich mit Audioberechnungen auf GPU's beschäftigt, die Frage:

Könnte es technisch möglich sein, dass die Grafikkarten der nächsten Generation quasi die FPU/Altivec-Units der Zukunft sind? So wie (ganz) früher die Co-Prozessoren?

Aperture berechnet fast alles auf der GPU. Motion's Performance ist fast unabhängig von der Prozessor-Leistung jedoch direkt abhängig von der GPU, den programmierbaren Pixelpipes in den Grafikkarten. Ein logischer Schritt für FCP wäre die Filterberechnung direkt von der GPU erledigen zu lassen. Die CPU wird wieder das, was sie immer sein sollte: Der schnelle Befehlsgeber.

Der Vorteil der Intels (und AMD's) gegenüber den G4's und G5's lag stets in der wesentlich höheren Integerleistung. Wohingegen "Altivec-equipped" CPU's in der Massenberechnung von (zB. Video-) Daten kräftiger sind.
Die Betonung liegt im Unterschied zwischen kräftiger und schneller.

Sind die Pixelpipes in den GPU's im Gesamten der Altivec so unähnlich?
0

Kommentare

smile
smile29.01.0615:37
Interessante Frage!
Ich glaube mal gelesen zu haben, dass die grundlegenden Operationen von SSE / Altivec etc. alle sehr gut in den Grafikkarten abbildbar sind. Im Wesentlichen handelt es sich ja um SIMD, also einzelne Operationen, die gleichzeitig auf sehr viele Daten angewendet werden müssen. Letztendlich ist CoreImage ja schon ein Schritt die CPU zu entlasten und Arbeit der GPU zuzuschieben.

Problematisch könnte die fehlende Standardisierung der Grafikhardware sein. Man bräuchte soetwas wie OpenGL für allgemeine Rechenprobleme.

smile!
„Deinen Mac kannst du lieben oder hassen - Dein PC wird Dir immer scheißegal sein.“
0
Bodo
Bodo29.01.0616:05
Ob CoreImage/CoreVideo als Ablösung für AltiVec dienen soll sei mal dahingestellt. Aber, da die GPUs den CPUs in so mancher Funktion schon weit überlegen sind, ist es doch sinnvoll diese brach liegende Leistungsfähigkeit auch zu nutzen. Die GPUs sind bereits 256Biter, während die CPUs gerade den Sprung auf 64Bit machen. AltiVec ist 128Bit. Also, wenn man das ähnlich in den GPUs nachbilden kann, warum nicht. Standards sind natürlich wichtig(zwingend).
0
patrick.29.01.0617:14
Bodo

"Ob CoreImage/CoreVideo als Ablösung für AltiVec dienen soll sei mal dahingestellt."

CoreImage, CoreAudio, CoreVideo … verstehe ich als die software-technische Schnittstelle des Systems zur Hardware, ganz ähnlich dem, was DirectX unter Windows darstellt. Programmierer nennen sowas (glaube ich) API. Da AltiVec ein Hardware-Feature ist, ist es natürlich nicht mit einem Software-API vergleichbar.

Ne, mir geht es mal wirklich um die Hardware. Speziell die programmierbaren Pixel-Pipelines scheinen mir der Beschreibung nach der AltiVec nicht unähnlich zu sein. Die schnelle PCIe Verbindung ermöglicht nun auch flotte Up+Downstreams.


(?)
0
patrick.29.01.0617:20
Ich präzisiere nochmal genau meine Frage:

Ist es denkbar, dass man zukünftig auch die GPU dazu nutzen könnte, einen Film, Beispiel H.264 zu ENCODIEREN ohne dass die Grafikkarte einen entsprechenden Hardware-Encoder eingebaut hat
0
MetallSnake
MetallSnake29.01.0617:22
Könnte Apple nicht theoretisch den Altivec Teil der g4/g5 CPUs auf einen extra Chip aufs Mainboard pappen?
Warum gibt es eigentlich nicht mehr CoProzessoren? Wäre doch bestimmt viel schneller viele langsame CPUs zu haben als eine (oder zwei) schnelle. Durch die menge an CPUs könnten dann mehrere Berechnungen gleichzeitig ablaufen statt nacheinander.
„Das Schöne an der KI ist, dass wir endlich einen Weg gefunden haben, wie die Wirtschaft weiter wachsen kann, nachdem sie jeden Einzelnen von uns getötet hat.“
0
patrick.29.01.0617:36
metalsnake

Kommt auf deine Anwendungen an.
Beispiel:

Du musst 100 Tonnen Sand von Berlin nach Hamburg transportieren.
Du bist der Chef der Bahn AG - hast also zwei Züge:

Zug A kann 35t max transportieren, fährt dafür aber 200 km/h.
Zug B kann 140t max transportieren, fährt aber nur 80 km/h.

Ich würde Zug B nehmen. Hätte ich allerdings nur 70t Kies zu transportieren würde ich 2x den Zug A nehmen (die Rückfahrt ignorieren wir).

Die softwaretechnische Frage, bzw. aufgabenorientierte Möglichkeit für Multithreading wäre in dem Beispiel, ob denn nun mehr als 1 Gleis zwischen Berlin und Hamburg liegt.

0
patrick.29.01.0617:41
maxefaxe

danke für den Hinweis, stimmt natürlich.
0
MetallSnake
MetallSnake29.01.0619:21
maxefaxe
Als Floating Point Schlampen kann man Grafikkarten eigentlich kaum nutzen, da das Rechenergebnis von Karte zu Karte zu stark schwankt. Beim Video Preview, wie etwa in Motion, kann man mit solchen Unterschieden gut leben, aber bei Photoshop und Co kann man damit nicht zuverlässig arbeiten. Das Ergebnis wäre zu beliebig.

Die Antwort ist also tendenziell nein.

Was kommen denn da für Unterschiede zu Tage? Sind doch Berechnungen da können die doch nicht zu zwei unterschiedlichen Ergebnissen kommen?¿?
Und wieso kann man in Motion mit den Unterschieden leben, bei Photoshop aber nicht? Also was für Unterschiede genau treten da auf?
„Das Schöne an der KI ist, dass wir endlich einen Weg gefunden haben, wie die Wirtschaft weiter wachsen kann, nachdem sie jeden Einzelnen von uns getötet hat.“
0
MetallSnake
MetallSnake29.01.0619:26
patrick.
Du musst 100 Tonnen Sand von Berlin nach Hamburg transportieren.
Du bist der Chef der Bahn AG - hast also zwei Züge:

Zug A kann 35t max transportieren, fährt dafür aber 200 km/h.
Zug B kann 140t max transportieren, fährt aber nur 80 km/h.

Was wäre denn hier das Äquivalent zum Gewicht?
„Das Schöne an der KI ist, dass wir endlich einen Weg gefunden haben, wie die Wirtschaft weiter wachsen kann, nachdem sie jeden Einzelnen von uns getötet hat.“
0
patrick.29.01.0619:48
metalsnake

Der Aufwand einer Berechnung/Aufgabe. Meinetwegen die Anzahl der Pixel eines Bildes, die es zu färben gilt etc.

Was ich damit sagen will, die Rechtschreibprüfung in Word oder anderswo ist mit vielen langsamen Prozessoren dennoch langsamer als mit einem schnellen.
Videoverarbeitung kann aber mit vielen langsameren CPUs schneller sein als mit einer schnellen. Bei Videobearbeitung ist das sogar häufig so.
0
patrick.29.01.0620:00
ja aber übrigens @@maxfaxe, du vergißt, das Motion beispielsweise, nicht nur bei der Preview, sondern auch im finalen Rendering über die GPU die Ergebnisse erzielt - es scheint also doch lösbar, das Problem =-O
0
Swentech31.01.0621:03
Leider kann ich nicht bestätigen, dass Aperture fast all seine Berechnungen über die GPU macht.
Keine Ahnung woher diese Informationen stammen.

Mach doch bitte mal folgenden Test: Öffne Aberture und browse wahllos zwischen deinen Bildern, mach farbeinstellungen etc.
Betrachte dabei mit einem Programm wie Hardwaremonitor die Temperaturveränderungen deiner Grafikkarte (GPU).
Du wirst feststellen, dass sich diese, egal was du machst , sich nicht erhöht.

Starte ein Game auf deinem Mac und du wirst sehen, das die Temperatur sehr schnell ansteigt.

Was mir bei Aperture aufgefallen ist, es ist Multiprozessor angepasst.
Beim Browsen zwischen den Bildern kommt es zu Prozessorauslastungen von 270% und mehr auf meinem Quad.

Wer nur einen Dual PPC hat wird natürlich nicht über 200% kommen.
0
Maxefaxe29.01.0617:29
Das Problem ist, dass nVidia und ATI intern deutlich unterschiedlich rechnen. Man kann die GPU heute wunderbar nutzen um Videos zu decodieren, da so etwas genormt ist und im Chip quasi "verdrahtet" ist.

Als Floating Point Schlampen kann man Grafikkarten eigentlich kaum nutzen, da das Rechenergebnis von Karte zu Karte zu stark schwankt. Beim Video Preview, wie etwa in Motion, kann man mit solchen Unterschieden gut leben, aber bei Photoshop und Co kann man damit nicht zuverlässig arbeiten. Das Ergebnis wäre zu beliebig.

Die Antwort ist also tendenziell nein.
0
Maxefaxe29.01.0618:18
MetallSnake

Was nutz einem der Altivec Teil als einzelner Chip in einem X86 Mac? Dann müsste man ja weiter für PPC und X86 schreiben. Sogar Rechenroutinen für den jeweiligen Chip separat compilieren. Der Aufwand würde wohl meist den Nutzen und überwiegen.
0
Maxefaxe29.01.0619:51
@ MetallSnake

Bei Floating Point oder Vektor-Operationen kommt es oft zu nicht ganz genauen Ergebnissen. Man kennt das in DTP-Programmen wenn beim Verschieben oder skalieren so Maße wie 10,0001 cm rauskommen. Man spricht da von Rundungsfehlern. Das nimmt man in Kauf weil das Ergebniss genau genug ist, aber viel schneller erreicht werden kann als mit exakten Integer-Berechnungen.

Beim G4/G5 können sich die Softwarehersteller auf immer gleiche Rechenergebnisse verlassen (mit identischen Rundungsfehlern) da deren Vektoreinheiten fast identisch sind.

Bei den GPUs differieren die Rechenwerke zu stark. beim Preview von Video kann es dir egal sein ob der errechnete Pixel um 3% in der Farbe abweicht, Haupsache das ganze läuft in Echtzeitt, in Photoshop wäre eine solche Ungenauigkeit eine Katastrophe.

Ist natürlich alles grob vereinfacht dargestellt, aber GPUs sind für viele Dinge zu ungenau oder zu unterschiedlich im Ergebnis.
0
Don Quijote29.01.0618:15
Denke schon das bei Standardisierung das ähnlich eingebaut wird wie mpeg 2…
0

Kommentieren

Diese Diskussion ist bereits mehr als 3 Monate alt und kann daher nicht mehr kommentiert werden.