Evolution ofGPUs - FAU · Seminar: Multi-Core ArchitecturesandProgramming. ... Purpose-Berechnungen...

of 27/27
Evolution of GPUs Die Entwicklung der Graphics Processing Units Marvin Kampf und Michael Moese Seminar: Multi-Core Architectures and Programming
  • date post

    20-May-2020
  • Category

    Documents

  • view

    3
  • download

    0

Embed Size (px)

Transcript of Evolution ofGPUs - FAU · Seminar: Multi-Core ArchitecturesandProgramming. ... Purpose-Berechnungen...

  • Evolution of GPUsDie Entwicklung der Graphics Processing Units

    Marvin Kampf und Michael Moese

    Seminar: Multi-Core Architectures and Programming

  • Was bedeutet „Entwicklung hin zur GPU“?

    • Hinzufügen von „Programmierbarkeit“• Von fixen Funktionsleitungen zu

    o mikroprogrammgesteuerten Prozessoreno programmierbaren Prozessoreno skalierbaren Parallelprozessoren

    • Zusätzlicher Anwendungsbereich: GPGPUo General Purpose Computation on Graphics Processing Unit

    Ausnutzen des hohen Parallelitätsgrades bei Nicht-Grafik-Anwendungen

    2

  • Motivation für GPGPU

    • normale Prozessoren stoßen allmählich an ihre Leistungsgrenzen:o Taktfrequenzeno Parallelausführung von Instruktioneno mehr Fehler im Fertigungsprozess bei mehr Flächeo TDP steigt immer weitero Einfluss von kosmischem Rauschen steigt

    Trend zu vielen einfachen, statt wenigenhochkomplexen Prozessoren

    3

  • Chronologische Entwicklung der GPU

    Von der Grafikkarte zur GPU:

    • Mitte 1980er bis 1997: Vor den GPUs• 1999 bis 2004: Frühe GPUs• 2006 Unified Computing und GPUs• Seit 2007: GPU Computing Systems

    4

  • Vor den GPUs (1)

    • frühe Vorläufer: CGA-, EGA-, VGA-Controllero ursprünglich nur zur als Bindeglied zwischen Prozessor und Bildschirm

    (frühe 1980er)o Beschleunigung von 2D-Benutzeroberflächen

    • Mitte der 1980ero Atari ST und Amiga: erste Beschleunigungs- funktionen („bitblitting“:

    Kopier- und Verschiebe- Operationen auf Speicher)o Im PC: Übergang von DOS zu Windows, einfache Befehle, wie

    „zeichne Viereck“

    5

  • Vor den GPUs (2)

    • Mitte der 1990er Jahre: erste 3D-Beschleuniger („3dfxVoodoo Graphics“) mit Hardwarebeschleunigung fürdreiecksbasierte Algorithmen:o Antialiasingo Texture Mappingo Z-Buffer (Tiefenpuffer)o programmierbar mit: Glide

    • 1997: NVIDIA Riva 128o 3D-Beschleuniger für Spiele und 3D-Visualisierungo programmierbar mit: Direct3D, OpenGL

    6

  • Microsoft DirectX

    • API und Laufzeitumgebung für Spiele von Microsoft• seit Windows 95, auch für XBox• später gaben die DirectX-Versionen die minimalen Funktionen für

    Grafikhardware vor

    • Wichtigste Komponente: Direct3D, als Alternative zu OpenGL

    7

  • Frühe GPUs (1)

    • 1999: Nvidia GeForce 256o Erste GPU

    o Single-Chip 3D Echtzeit Grafikprozessor

    o 32-bit Floating-Point-Prozessor

    o konfigurierbare Integer Pixel-Fragment-Pipeline

    o Einheit für Hardware-T&L (Transform & Lightning)

    o programmierbar mit: DirectX 7, OpenGL

    8

  • Frühe GPUs (2)

    • 2001: GeForce 3o Erster programmierbarer Vertex-Prozessor

    • kann Vertex-Shader-Programme ausführen

    • weniger später: Pixel-Shader

    o konfigurierbare 32-bit Floating-Point Pixel-Fragment-Pipeline

    o programmierbar mit: DirectX 8, OpenGL

    9

  • Frühe GPUs (3)

    • 2002: ATI Radeon 9700o programmierbare 24-bit Floating-Point Pixel-Fragment-Prozessor

    o programmierbar mit: DirectX 9, OpenGL

    • 2002-2004: GeForce FX, GeForce 6800o programmierbare 32-bit Floating-Point Pixel-Fragment- und Vertex-

    Prozessor

    o programmierbar mit: DirectX 9 (HLSL), OpenGL (GLSL), Cg

    10

  • Shading Languages (1)

    • z.B. DirectX HLSL oder C for graphics• Skalierbares, paralleles Programmiermodell („High Level Shader

    Language“)

    • Zum Schreiben von Programmen, wie:o Vertex-Shader

    o Pixel-Shader

    o Geometry-Shader

    11

  • Shading Languages (2)

    • Beispiel:o C-Programm für einzelnes Pixel-Fragment (oder einzelnen Vertex)

    schreiben

    12

    Multithread GPU erstellt unabhängige Threads, dieShader-Programm ausführen und Pixel (bzw. Vertex)zeichnen

    Shader-Programm

    Shader-ProgrammThreads

    GPU

    Pixel-Fragmente

    „Pixel-Shader“

  • Shading Languages (3)

    • Neben Renderaufgaben von Echtzeit-Grafik wurde Cg auch für, zumBeispiel, physikalische Simulationen oder anderen General-

    Purpose-Berechnungen verwendet (GPGPU)

    → Erreichten hohe Performance, aber waren schwer zu schreiben,

    da Nicht-Grafik-Berechnungen mit einer Grafik-API wie OpenGL

    ausgedrückt werden mussten

    13

  • Unified Computing und GPUs (1)

    • 2006: NVIDIA GeForce 8800o Erste Unified Graphics and Computing - Architektur

    o Hardware Multithreading: 12288 Threads gleichzeitig in 128

    Prozessorkernen ausführbar

    o programmierbar mit: DirectX 10, OpenGL, C (mittels CUDA parallel

    computing model)

    14

  • Unified Computing und GPUs (2)

    • GeForce 8800 (Fortsetzung)o Erste GPU mit Skalarprozessoren statt Vektorprozessoren

    • Befehle zur Unterstützung von C und anderen General-Purpose-Programmiersprachen

    • Befehle und Hardware zur Unterstützung von Parallelität,Kommunikation und Synchronisation (Thread-Arrays, SharedMemory, …)

    o Streamprozessoren (Unified Shader)• einheitlicher Pool, dem Vertex-, Pixel- und Geometry-Shader-

    Programme zugewiesen werden• oder auch allgemeine Berechnungen mittels CUDA C-Programmen

    15

  • Grafikpipeline

    • Modell aller Schritte einer Bildsynthese• Grobe Aufteilung der Renderschritte in:

    o Anwendung → Geometrie → Rasterung

    • Einführung der Compute-Shader (GPGPU)

    16

    Vor DirectX10:

    Aktuell:

  • GPU Computing Systems (1)

    Zusammenschluss von Rechen-Clustern aus mehrerer GPU-Knoten

    • 2007: Tesla C870, D870, S870o beinhalten 1, 2 oder 4 T8 GPUs

    • basiert auf GeForce 8800• konfiguriert für paralleles Rechnen• erstmals mit IEEE-Konformer Gleitkomma-Arithmetik

    • 2008: Tesla C1060, S1070o benutzt T10 GPUs

    • basierend auf GeForce GTX 280• mit 240 Prozessorkernen, 4GB DRAM Speicher

    o heute: Tesla S1070 Systeme mit Tausenden GPUs

    17

  • GPU Computing Systems (2)

    • 2009: Fermio 512 Prozessorkerne

    o ECC (Error Correction Code) Speicherschutz

    o 64-bit Speicheradressierung

    o Cache-Speicherhierarchie

    o Befehle für C, C++, Fortran, OpenCL, DirectCompute

    18

  • Fermi - Blockdiagramm

    19

  • Kepler - Blockdiagram

    20

  • GPGPU als Anwendungsbeschleuniger (1)

    • Lineare Algebra mit Pixel- und Vertex-Shadero Stark- oder dünnbesetzte Matrizen (dense, sparse) und Vektoren als

    Texturen repräsentiert

    o Berechnung auf der GPU durch Shader-Programme

    21

  • GPGPU als Anwendungsbeschleuniger (2)

    • Simulation von Flüssigkeiteno Allgemein: Lösen von Navier-Stokes-Gleichungen(bei Interesse:

    http://de.wikipedia.org/wiki/Navier-Stokes-Gleichungen)

    o Beschreibung des Impulssatzes für reibungsbehaftete, newtonscheFluide wie Wasser, Luft oder Öl durch Differentialgleichungen

    o Beschleunigung durch GPU-Berechnungen um mehr als eineGrößenordnung

    22

  • GPGPU als Anwendungsbeschleuniger (3)

    • Digitale Signalverarbeitungo Faltungsbasierte Diskrete Wavelet-Transformation

    (http://de.wikipedia.org/wiki/Wavelet-Transformation)

    o Faltung: Gewichtung einer zeitabhängigen Funktion mit einer anderendurch Lösen einer Integralgleichung (zeitdiskret: Summe)

    o Performance-Zuwachs gegenüber normalem PC

    23

  • GPGPU als Anwendungsbeschleuniger (4)

    • Datenbank-Operationeno GPU bietet oftdeutliche Geschwindigkeitsvorteile bei relationalen

    Abfragen, konjunktiver Auswahl oder Aggregationen

    • Moleküldynamiko „cutoff pair potentials“ eine der wichtigsten Berechnungen

    o Ergebnisse 12 bis 20 mal schneller sichtbar als reine CPU-Berechnung

    24

  • GPGPU als Anwendungsbeschleuniger (5)

    • High Performance Computingo Durch NVIDIA‘s Tesla-Karten Einzug des GPGPU-Computings in

    große Rechenzentren als Beschleuniger

    o Manche Supercomputer erreichen zwei Drittel ihrer Rechenleistungdurch GPUs.

    25

  • 26

    Vielen Dank.

  • Quellen

    John Nickolls and William J. Dally. 2010. The GPU Computing Era.IEEE Micro 30, 2 (March 2010)

    Enhua Wu and Youquan Liu. 2008. Emerging technology aboutGPGPU. Circuits and Systems. IEEE Asia Pacific Conference (Nov.30 2008 - Dec. 3 2008)

    27