Pascal (Mikroarchitektur) - Pascal (microarchitecture)

Nvidia Pascal
NVIDIA-GTX-1070-FoundersEdition-FL.jpg
Die GTX 1070, die zweite kommerziell erhältliche Karte, die die Pascal-Architektur verwendet
Veröffentlichungsdatum 5. April 2016
Herstellungsprozess
Geschichte
Vorgänger Maxwell
Nachfolger

Pascal ist der Codename für eine GPU- Mikroarchitektur, die von Nvidia als Nachfolger der Maxwell- Architektur entwickelt wurde. Die Architektur wurde erstmals im April 2016 mit der Veröffentlichung des Tesla P100 (GP100) am 5. April 2016 eingeführt und wird hauptsächlich in der GeForce 10-Serie verwendet , beginnend mit der GeForce GTX 1080 und GTX 1070 (beide mit der GP104-GPU). , die am 17. Mai 2016 bzw. 10. Juni 2016 veröffentlicht wurden. Pascal wurde mit dem 16- nm- FinFET- Prozess von TSMC und später mit dem 14- nm- FinFET-Prozess von Samsung hergestellt.    

Die Architektur ist nach dem französischen Mathematiker und Physiker Blaise Pascal aus dem 17. Jahrhundert benannt .

Am 18. März 2019 gab Nvidia bekannt, dass sie in einem für April 2019 fälligen Treiber DirectX Raytracing auf Pascal-basierten Karten ab der GTX 1060 6 GB und in den Karten der 16er-Serie aktivieren werden, eine Funktion, die den Turing-basierten Karten vorbehalten ist RTX-Serie bis zu diesem Punkt.

Einzelheiten

Die Aufnahme der GP102-GPU in GeForce GTX 1080 Ti-Karten
Die Aufnahme der GP106-GPU in GTX-1060-Karten

Im März 2014 gab Nvidia bekannt, dass der Nachfolger von Maxwell die Pascal-Mikroarchitektur sein wird; wurde am 6. Mai 2016 angekündigt und am 27. Mai desselben Jahres veröffentlicht. Der Tesla P100 (GP100-Chip) hat eine andere Version der Pascal-Architektur als die GTX-GPUs (GP104-Chip). Die Shader-Einheiten in GP104 haben ein Maxwell- ähnliches Design.

Zu den architektonischen Verbesserungen der GP100-Architektur gehören die folgenden:

  • In Pascal besteht ein SM (Streaming Multiprozessor) aus 64-128 CUDA-Kernen, je nachdem, ob es sich um GP100 oder GP104 handelt. Maxwell packte 128, Kepler 192, Fermi 32 und Tesla nur 8 CUDA-Kerne in einen SM; das GP100 SM ist in zwei Verarbeitungsblöcke unterteilt, von denen jeder 32 CUDA-Kerne mit einfacher Genauigkeit, einen Befehlspuffer, einen Warp-Scheduler, 2 Textur-Mapping-Einheiten und 2 Dispatch-Einheiten hat.
  • CUDA- Rechenfähigkeit 6.1.
  • High Bandwidth Memory 2 — Einige Karten verfügen über 16 GiB HBM2 in vier Stacks mit insgesamt 4096-Bit-Bus mit einer Speicherbandbreite von 720 GB/s.
  • Unified Memory – eine Speicherarchitektur, bei der CPU und GPU mit Hilfe einer Technologie namens "Page Migration Engine" sowohl auf den Hauptsystemspeicher als auch auf den Speicher der Grafikkarte zugreifen können.
  • NVLink – ein Bus mit hoher Bandbreite zwischen CPU und GPU sowie zwischen mehreren GPUs. Ermöglicht viel höhere Übertragungsgeschwindigkeiten als mit PCI Express erreichbar; Schätzungsweise zwischen 80 und 200 GB/s.
  • 16-Bit- ( FP16 ) Gleitkomma-Operationen (umgangssprachlich "halbe Genauigkeit") können mit der doppelten Rate von 32-Bit-Gleitkomma-Operationen ("single precision") und 64-Bit-Gleitkomma-Operationen (umgangssprachlich "double") ausgeführt werden Precision") mit der halben Rate von 32-Bit-Gleitkommaoperationen ausgeführt.
  • Mehr Register – doppelt so viele Register pro CUDA-Kern im Vergleich zu Maxwell.
  • Mehr geteilter Speicher.
  • Dynamisches Lastenausgleichs-Planungssystem. Auf diese Weise kann der Scheduler die GPU-Menge, die mehreren Aufgaben zugewiesen ist, dynamisch anpassen, um sicherzustellen, dass die GPU mit Arbeit gesättigt bleibt, es sei denn, es gibt keine Arbeit mehr, die sicher verteilt werden kann. Nvidia hat daher im Pascal-Treiber asynchrones Computing sicher aktiviert.
  • Präemption auf Anweisungs- und Thread-Ebene.

Zu den architektonischen Verbesserungen der GP104-Architektur gehören die folgenden:

  • CUDA-Rechenfähigkeit 6.1.
  • GDDR5X — neuer Speicherstandard, der Datenraten von 10 Gbit/s unterstützt, aktualisierter Speichercontroller.
  • Simultane Multi-Projection – Generieren mehrerer Projektionen eines einzelnen Geometrie-Streams, wenn dieser von vorgelagerten Shader-Stufen in die SMP-Engine eintritt.
  • DisplayPort 1.4, HDMI 2.0b.
  • Delta-Farbkompression der vierten Generation.
  • Verbesserte SLI-Schnittstelle – SLI-Schnittstelle mit höherer Bandbreite im Vergleich zu den Vorgängerversionen.
  • PureVideo Feature Set H Hardware-Videodekodierung HEVC Main10(10bit), Main12(12bit) und VP9 Hardwaredekodierung.
  • HDCP 2.2-Unterstützung für 4K DRM-geschützte Inhaltswiedergabe und -streaming (Maxwell GM200 und GM204 haben keine HDCP 2.2-Unterstützung, GM206 unterstützt HDCP 2.2).
  • NVENC HEVC Main10 10-Bit-Hardwarecodierung.
  • GPU-Boost 3.0.
  • Vorrang auf Anweisungsebene. Bei Grafikaufgaben beschränkt der Treiber die Vorbelegung auf Pixelebene, da Pixelaufgaben normalerweise schnell beendet werden und die Overhead-Kosten für die Vorbelegung auf Pixelebene geringer sind als die Vorbelegung auf Befehlsebene (die teuer ist). Rechenaufgaben erhalten Vorrang auf Thread- oder Anweisungsebene, da ihre Ausführung länger dauern kann und es keine Garantien dafür gibt, wann eine Rechenaufgabe beendet ist. Daher ermöglicht der Treiber die teure Vorrangstellung auf Befehlsebene für diese Aufgaben.

Überblick

Grafikprozessor-Cluster

Ein Chip ist in Grafikprozessor-Cluster (GPCs) unterteilt. Für die GP104-Chips umfasst ein GPC 5 SMs.

Streaming-Multiprozessor "Pascal"

Ein "Streaming Multiprocessor" entspricht der Compute Unit von AMD . Ein SMP umfasst 128 Single-Precision-ALUs ("CUDA-Cores") auf GP104-Chips und 64 Single-Precision-ALUs auf GP100-Chips.

Was AMD als CU (Recheneinheit) bezeichnet, kann mit dem verglichen werden, was Nvidia als SM (Streaming Multiprocessor) bezeichnet. Während alle CU-Versionen aus 64 Shader-Prozessoren bestehen (dh 4 SIMD Vector Units (jeweils 16-Lane breit) = 64), experimentierte Nvidia (regelmäßig Shader-Prozessoren "CUDA-Kerne" genannt) mit sehr unterschiedlichen Zahlen:

  • Auf Tesla 1 kombiniert SM 8 Single-Precision (FP32) Shader-Prozessoren
  • Auf Fermi 1 kombiniert SM 32 Single-Precision (FP32) Shader-Prozessoren
  • Auf Kepler 1 vereint SM 192 Single-Precision (FP32) Shader-Prozessoren und auch 64 Double-Precision (FP64) Einheiten (zumindest die GK110 GPUs)
  • Auf Maxwell 1 kombiniert SM 128 Single-Precision (FP32) Shader-Prozessoren
  • Bei Pascal kommt es darauf an:
    • Auf dem GP100 kombiniert 1 SM 64 Single-Precision (FP32) Shader-Prozessoren und auch 32 Double-Precision (FP64) und bietet ein 2:1-Verhältnis von Single- zu Double-Precision-Durchsatz. Der GP100 verwendet flexiblere FP32-Kerne, die in der Lage sind, eine oder zwei Zahlen mit halber Genauigkeit in einem Vektor mit zwei Elementen zu verarbeiten. Nvidia will damit die Berechnung von Algorithmen im Zusammenhang mit Deep Learning angehen.
    • Auf dem GP104 kombiniert 1 SM 128 ALUs mit einfacher Genauigkeit, 4 ALUs mit doppelter Genauigkeit mit einem Verhältnis von 32:1 und eine ALU mit halber Genauigkeit, die einen Vektor aus zwei Gleitkommazahlen mit halber Genauigkeit enthält, die denselben Befehl auf beiden Gleitkommazahlen ausführen können ein Verhältnis von 64:1, wenn dieselbe Anweisung für beide Elemente verwendet wird.

Polymorph-Engine 4.0

Die für Tessellation zuständige Einheit ist die Polymorph Engine Version 4.0 . Es entspricht funktional dem Geometric Processor von AMD . Es wurde vom Shader-Modul zum TPC verschoben, damit eine Polymorph-Engine mehrere SMs innerhalb des TPC versorgen kann.

Chips

  • GP100: Der Nvidia Tesla P100 GPU-Beschleuniger ist auf GPGPU- Anwendungen wie FP64 Double Precision Computing und Deep Learning-Training mit FP16 ausgerichtet. Es verwendet HBM2-Speicher . Quadro GP100 verwendet auch die GP100-GPU.
  • GP102: Diese GPU kommt im TITAN Xp, Titan X und der GeForce GTX 1080 Ti zum Einsatz. Es wird auch im Quadro P6000 & Tesla P40 verwendet.
  • GP104: Diese GPU wird in der GeForce GTX 1070, GTX 1070 Ti und der GTX 1080 verwendet. Die GTX 1070 hat 15/20 und die GTX 1070 Ti hat 19/20 ihrer SMs aktiviert. Beide sind mit GDDR5-Speicher verbunden, während die GTX 1080 ein vollwertiger Chip ist und mit GDDR5X-Speicher verbunden ist. Es wird auch im Quadro P5000, Quadro P4000 und Tesla P4 verwendet.
  • GP106: Diese GPU kommt in der GeForce GTX 1060 mit GDDR5/GDDR5X-Speicher zum Einsatz. Es wird auch in der Quadro P2000 verwendet.
  • GP107: Diese GPU kommt in der GeForce GTX 1050 Ti und GeForce GTX 1050 zum Einsatz. Sie kommt auch in der Quadro P1000, Quadro P600, Quadro P620 & Quadro P400 zum Einsatz.
  • GP108: Diese GPU kommt in der GeForce GT 1010 und GeForce GT 1030 zum Einsatz.

Auf dem GP104-Chip besteht ein SM aus 128 Single-Precision-ALUs ("CUDA-Cores"), auf dem GP100 aus 64 Single-Precision-ALUs. Aufgrund der unterschiedlichen Organisation der Chips, wie der Anzahl der ALUs mit doppelter Präzision, ist die theoretische Leistung mit doppelter Präzision des GP100 halb so hoch wie die theoretische für einfache Präzision; das Verhältnis beträgt 1/32 für den GP104-Chip.

Vergleichstabelle einiger Kepler-, Maxwell- und Pascal-Chips
GK104 GK110 GM204 (GTX970) GM204 (GTX980) GM200 GP104 GP100
Dedizierter Textur-Cache pro SM 48 KiB N / A N / A N / A N / A N / A N / A
Textur- (Grafik oder Compute) oder schreibgeschützter Daten-Cache (nur Compute) pro SM N / A 48 KiB N / A N / A N / A N / A N / A
Vom Programmierer wählbare Shared Memory/L1-Partitionen pro SM 48 KiB Shared Memory + 16 KiB L1-Cache (Standard) 48 KiB Shared Memory + 16 KiB L1-Cache (Standard) N / A N / A N / A N / A N / A
32 KiB Shared Memory + 32 KiB L1-Cache 32 KiB Shared Memory + 32 KiB L1-Cache
16 KiB Shared Memory + 48 KiB L1-Cache 16 KiB Shared Memory + 48 KiB L1-Cache
Einheitlicher L1-Cache/Textur-Cache pro SM N / A N / A 48 KiB 48 KiB 48 KiB 48 KiB 24 KiB
Dedizierter gemeinsamer Speicher pro SM N / A N / A 96 KiB 96 KiB 96 KiB 96 KiB 64 KiB
L2-Cache pro Chip 512 KiB 1536 KiB 1792 KiB 2048 KiB 3072 KiB 2048 KiB 4096 KiB

Leistung

Die theoretische Rechenleistung mit einfacher Genauigkeit einer Pascal-GPU in GFLOPS wird berechnet als 2 X (Operationen pro FMA-Anweisung pro CUDA-Kern pro Zyklus) × Anzahl der CUDA-Kerne × Kerntaktrate (in GHz).

Die theoretische Double-Precision-Rechenleistung einer Pascal-GPU beträgt 1/2 der Single-Precision-Leistung von Nvidia GP100 und 1/32 von Nvidia GP102, GP104, GP106, GP107 & GP108.

Die theoretische Verarbeitungsleistung mit halber Genauigkeit einer Pascal-GPU beträgt das 2-fache der Leistung mit einfacher Genauigkeit bei GP100 und 1/64 bei GP104, GP106, GP107 & GP108.

Nachfolger

Die Pascal-Architektur wurde 2017 von Volta in den Märkten HPC , Cloud Computing und selbstfahrende Autos und 2018 von Turing im Consumer- und Business-Markt abgelöst.

Siehe auch

Verweise