<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=General_Purpose_Computation_on_Graphics_Processing_Unit</id>
	<title>General Purpose Computation on Graphics Processing Unit - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=General_Purpose_Computation_on_Graphics_Processing_Unit"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=General_Purpose_Computation_on_Graphics_Processing_Unit&amp;action=history"/>
	<updated>2026-05-19T05:01:25Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=General_Purpose_Computation_on_Graphics_Processing_Unit&amp;diff=486107&amp;oldid=prev</id>
		<title>imported&gt;Hoffender2021: Stilkorrektur</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=General_Purpose_Computation_on_Graphics_Processing_Unit&amp;diff=486107&amp;oldid=prev"/>
		<updated>2023-10-31T22:01:45Z</updated>

		<summary type="html">&lt;p&gt;Stilkorrektur&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;General Purpose Computation on Graphics Processing Unit&amp;#039;&amp;#039;&amp;#039; (kurz &amp;#039;&amp;#039;&amp;#039;GPGPU&amp;#039;&amp;#039;&amp;#039;, vom Englischen für &amp;#039;&amp;#039;Allzweck-Berechnung auf Grafikprozessoreinheit(en)&amp;#039;&amp;#039;) bezeichnet die Verwendung eines [[Grafikprozessor]]s für Berechnungen über seinen ursprünglichen Aufgabenbereich hinaus. Dies können beispielsweise Berechnungen zu technischen oder wirtschaftlichen Simulationen sein. Bei [[Paralleler Algorithmus|parallelen Algorithmen]] kann so eine enorme Geschwindigkeitssteigerung im Vergleich zum [[Hauptprozessor]] erzielt werden.&lt;br /&gt;
&lt;br /&gt;
== Überblick ==&lt;br /&gt;
GPGPU ist aus den [[Shader]]n der Grafikprozessoren hervorgegangen. Die Stärke liegt im gleichzeitigen Ausführen gleichförmiger Aufgaben, wie dem Einfärben von Pixeln oder der [[Matrizenmultiplikation|Multiplikation]] großer [[Matrix (Mathematik)|Matrizen]]. Da der Geschwindigkeitszuwachs moderner Prozessoren derzeit nicht mehr (primär) durch die Erhöhung des Taktes zu erreichen ist, ist die Parallelisierung ein wichtiger Faktor zum Erreichen höherer Rechenleistungen moderner Computer. Der Vorteil der Verwendung der GPU gegenüber der CPU liegt in der höheren Rechenleistung und der höheren Speicherbandbreite. Die Geschwindigkeit wird hauptsächlich durch den hohen Grad an Parallelität der Rechenoperationen des Grafikprozessors erreicht.&lt;br /&gt;
{{Veraltet | dieses Abschnitts | Kennzahlen der Tabelle bitte erneuern oder Jahreszahlen anfügen. Hardware ist aus den 201x ! | seit=2017}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- class=&amp;quot;hintergrundfarbe6&amp;quot;&lt;br /&gt;
! rowspan=&amp;quot;3&amp;quot; | Modell&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;padding:0;&amp;quot; | Theoretische Rechenleistung&lt;br /&gt;
! rowspan=&amp;quot;3&amp;quot; | Speicherbus-&amp;lt;br&amp;gt;Datenrate&amp;lt;br&amp;gt;([[Datenübertragungsrate|GByte/s]])&lt;br /&gt;
! rowspan=&amp;quot;3&amp;quot; | Speichertyp&lt;br /&gt;
! rowspan=&amp;quot;3&amp;quot; | Art&lt;br /&gt;
|- class=&amp;quot;hintergrundfarbe6&amp;quot; style=&amp;quot;height:80%;&amp;quot;&lt;br /&gt;
! style=&amp;quot;padding:0;&amp;quot; | bei einfacher&lt;br /&gt;
! style=&amp;quot;padding:0;&amp;quot; | bei doppelter&lt;br /&gt;
|- class=&amp;quot;hintergrundfarbe6&amp;quot; style=&amp;quot;height:80%;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot; style=&amp;quot;padding:0;&amp;quot; | Genauigkeit ([[Floating Point Operations Per Second|GFlops]])&lt;br /&gt;
|-&lt;br /&gt;
| [[AMD-Radeon-R300-Serie|AMD Radeon Pro Duo]] || 16.384 || 1.024 || 1.024 ||rowspan=&amp;quot;2&amp;quot;| [[High_Bandwidth_Memory|HBM]] ||rowspan=&amp;quot;6&amp;quot;|[[Graphics Processing Unit|GPU]]&lt;br /&gt;
|-&lt;br /&gt;
| [[AMD-Radeon-R300-Serie|AMD Radeon R9 Fury X]] || 8.602 || 538 || 512&lt;br /&gt;
|-&lt;br /&gt;
| [[Nvidia-GeForce-900-Serie|Nvidia Geforce GTX Titan X]] || 6.144 || 192 || 336 ||rowspan=&amp;quot;7&amp;quot;| [[GDDR5]]&lt;br /&gt;
|-&lt;br /&gt;
| [[AMD FirePro]] W9100 || 5.350 || 2.675 || 320&lt;br /&gt;
|-&lt;br /&gt;
| [[Nvidia Tesla|Nvidia Tesla K20X]]|| 3.950 || 1.310 || 250&lt;br /&gt;
|-&lt;br /&gt;
| [[AMD-Radeon-HD-7000-Serie|AMD Radeon HD 7970]]|| 3.789 || 947 || 264&lt;br /&gt;
|-&lt;br /&gt;
| [[Larrabee (GPU)|Intel Xeon Phi]] 7120 || 2.420 || 1.210 || 352 || Co-Prozessor&lt;br /&gt;
|-&lt;br /&gt;
| [[PlayStation 4]] [[System-on-a-Chip|SoC]] ([[AMD]]) || 1.860 || - || 167 || [[Accelerated Processing Unit|APU]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Nvidia-GeForce-500-Serie#Modelldaten|Nvidia Geforce GTX 580]]|| 1.581 || 198 || 192,4 || GPU&lt;br /&gt;
|-&lt;br /&gt;
| [[Intel Xeon (Haswell)|Intel Xeon E7-8890 v3]] || 1.440 || 720 || 102,4 (?) || [[DDR4]] || CPU&lt;br /&gt;
|-&lt;br /&gt;
| [[AMD Fusion|AMD A10-7850k]] || 856 || - || 34 ||rowspan=&amp;quot;2&amp;quot;| [[DDR3]] || APU&lt;br /&gt;
|-&lt;br /&gt;
| [[Intel Core i7]]-3930K || 307,2 || 153,6 || 51,2 ||rowspan=&amp;quot;2&amp;quot;| [[Central Processing Unit|CPU]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Intel Pentium 4]] mit&amp;amp;nbsp;SSE3,&amp;amp;nbsp;3,6&amp;amp;nbsp;GHz || 14,4 || 7,2 || 6,4 || DDR2&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
Fragment- und Vertex-Shader können gleichzeitig ausgeführt werden. Ein weiterer Vorteil ist der geringe Preis im Vergleich zu ähnlich schnellen anderen Lösungen sowie die Tatsache, dass geeignete Grafikkarten heute in nahezu jedem PC zu finden sind.&lt;br /&gt;
&lt;br /&gt;
== Geschichte ==&lt;br /&gt;
Shader waren anfangs nur mit speziellen Funktionen, die eng mit grafischen Berechnungen verknüpft waren, verbunden. Um die Geschwindigkeit der Berechnung einzelner Pixel zu beschleunigen, ging man dazu über, die Berechnung einzelner Pixel gleichzeitig auszuführen, indem man mehrere gleichartige Rechenwerke einsetzte. Später kam man auf den Gedanken, die sehr beschränkten Fähigkeiten der Shader zu erweitern, um sie zu massiv-parallelen Recheneinheiten für beliebige Aufgaben werden zu lassen: Die ersten – mehr oder weniger – frei programmierbaren Shader entstanden. Der Trend, Shader frei programmierbar zu designen, hält bis heute an und wird von den Chipdesignern mit jeder neuen Technologiegeneration stets weiter vorangetrieben.&lt;br /&gt;
Moderne GPUs haben teilweise über 1000 dieser programmierbaren Shadereinheiten und können somit auch über 1000 Rechenoperationen gleichzeitig ausführen.&lt;br /&gt;
&lt;br /&gt;
== Kritik ==&lt;br /&gt;
Durch [[OpenCL]] existiert eine einheitliche Schnittstelle zur Umsetzung von GPGPU-Berechnungen. Der Nachteil gegenüber herkömmlichen CPUs ist die massive Parallelität, mit der die Programme ausgeführt werden müssen, um diese Vorteile zu nutzen. Auch sind GPUs im Funktionsumfang beschränkt. Für den wissenschaftlichen Bereich existieren spezielle Grafikmodelle ([[Nvidia Tesla]], [[AMD FireStream]]). Der Speicher dieser Grafikkarten verfügt über [[Fehlerkorrekturverfahren]] und deren Genauigkeit bei der Berechnung von [[Gleitkommazahl]]en ist größer, was sich auch in den Kosten widerspiegelt.&lt;br /&gt;
&lt;br /&gt;
== Programmierung ==&lt;br /&gt;
Für die Entwicklung GPGPU-fähiger Programme stehen vor allem [[OpenCL]], [[Compute Unified Device Architecture|CUDA]], und seit 2012 [[C++ AMP]] zur Verfügung. OpenCL ist ein offener Standard, der auf vielen Plattformen zur Verfügung steht, CUDA dagegen ist ein proprietäres [[Framework]] von [[Nvidia]] und auch nur auf GPUs dieses Herstellers lauffähig. AMP ist eine von [[Microsoft]] initiierte [[C++]]-Spracherweiterung, die sich jedoch auch innerhalb der Microsoft-Entwicklergemeinschaft nicht durchsetzen konnte, so dass AMP von Microsoft abgeschrieben wurde (Status &amp;quot;deprecated&amp;quot;), und Visual Studio 2022 der letzte AMP-unterstützende Compiler sein wird.&lt;br /&gt;
&lt;br /&gt;
Ein neuerer Ansatz ist [[OpenACC]], das ähnlich wie [[OpenMP]] über Compiler-Pragmas gesteuert wird. Damit wird gewöhnlicher Sourcecode, z.&amp;amp;nbsp;B. in C++, automatisch parallelisiert, indem gewisse Compiler-Pragmas wie &amp;lt;code&amp;gt;#pragma acc parallel&amp;lt;/code&amp;gt; den seriell formulierten For-Schleifen vorangestellt werden. Der Portierungs-Aufwand ist so relativ klein. Allerdings führt eine automatische Parallelisierung nicht immer zu optimalen Lösungen. OpenACC kann also explizite Parallelprogrammierung wie in OpenCL nie ganz ersetzen. Dennoch ist es in vielen Fällen lohnend, auf diese einfache Art hohe Beschleunigungs-Faktoren auf GPGPU erreichen zu können. OpenACC wird von kommerziellen Compilern wie PGI und freien Compilern wie der [[GNU Compiler Collection]] unterstützt.&lt;br /&gt;
&lt;br /&gt;
Um Programme auf einer GPU auszuführen, benötigt man ein Hostprogramm, das die Steuerung des Informationsflusses übernimmt. Meist wird zur Laufzeit der in einer [[C (Programmiersprache)|C]]-ähnlichen Sprache formulierte GPGPU-Code auf Anweisung des Hostprogrammes kompiliert und an den Grafikprozessor zur Weiterverarbeitung gesandt, der dann die errechneten Daten an das Hostprogramm zurückgibt.&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
* [[Grafikkarte]]&lt;br /&gt;
* [[Cell (Prozessor)]]&lt;br /&gt;
* [[Streamprozessor]]&lt;br /&gt;
* [[Vektorprozessor]]&lt;br /&gt;
* [[Direct Rendering Manager]] – Render-Nodes ermöglichen direkten Zugriff&lt;br /&gt;
* [[Heterogeneous System Architecture]]&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
* {{Literatur | Autor=Matt Pharr | Titel=GPU Gems 2 | Kapitel=Part IV - General-Purpose Computation on GPUs: A Primer | Verlag=Addison-Wesley Publishing Company |  Jahr= 2005| ISBN=0-321-33559-7}}&lt;br /&gt;
* {{Literatur | Autor= David B. Kirk | Titel=Programming Massively Parallel Processors: A Hands-on Approach [Paperback] | Verlag=Morgan Kaufmann |  Jahr=2010|ISBN=978-0-12-381472-2}}&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://developer.nvidia.com/object/gpu_gems_2_home.html GPU Gems 2]&lt;br /&gt;
* [http://www.gpgpu.org GPGPU.org]&lt;br /&gt;
* [http://www.appleinsider.com/articles/08/01/24/nvidia_working_on_first_gpgpus_for_apple_macs.html Nvidia working on first GPGPUs for Apple Macs, AppleInsider (January 24, 2008)]&lt;br /&gt;
* [http://www.gpu4vision.org GPU4Vision] GPGPU Publications, Videos and Software&lt;br /&gt;
* [http://www.planet3dnow.de/vbulletin/showthread.php?t=362621 GPGPU Computing - ein Überblick für Anfänger und Fortgeschrittene] (planet3dnow.de 26. Mai 2009)&lt;br /&gt;
* Tobias Preis, Peter Virnau, Wolfgang Paul, Johannes J. Schneider: &amp;#039;&amp;#039;GPU accelerated Monte Carlo simulation of the 2D and 3D Ising model.&amp;#039;&amp;#039; In: &amp;#039;&amp;#039;Journal of Computational Physics.&amp;#039;&amp;#039; 228, 2009, S.&amp;amp;nbsp;4468–4477, {{DOI|10.1016/j.jcp.2009.03.018}}.&lt;br /&gt;
&lt;br /&gt;
{{Navigationsleiste Prozessorarchitektur}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Prozessorarchitektur nach Verwendung]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Hoffender2021</name></author>
	</entry>
</feed>