Pascal (mikroarkitektur)

Nvidia Pascal
NVIDIA-GTX-1070-FoundersEdition-FL.jpg
GTX 1070, det andra kommersiellt tillgängliga kortet som använder Pascal-arkitekturen
Utgivningsdatum 5 april 2016
Tillverkningsprocess
Historia
Företrädare Maxwell
Efterträdare
Supportstatus
Stöds
Målning av Blaise Pascal, eponym för arkitektur

Pascal är kodnamnet för en GPU- mikroarkitektur utvecklad av Nvidia , som efterföljaren till Maxwell -arkitekturen. Arkitekturen introducerades först i april 2016 med lanseringen av Tesla P100 (GP100) den 5 april 2016, och används främst i GeForce 10-serien, med början i GeForce GTX 1080 och GTX 1070 (båda använder GP104 GPU) , som släpptes den 17 maj 2016 respektive 10 juni 2016. Pascal tillverkades med TSMC : s 16 nm FinFET- process, och senare Samsungs   14 nm FinFET-process.

Arkitekturen är uppkallad efter den franske matematikern och fysikern Blaise Pascal från 1600-talet .

I april 2019 aktiverade Nvidia en mjukvaruimplementering av DirectX Raytracing på Pascal-baserade kort som börjar med GTX 1060 6 GB, och i korten i 16-serien , en funktion reserverad för den Turing-baserade RTX-serien fram till den punkten.

Detaljer

Bildskott av GP100 GPU som används i Nvidia Tesla P100-kort
En bild av GP102 GPU som hittats inuti GeForce GTX 1080 Ti-kort
En bild av GP106 GPU hittad inuti GTX 1060-kort

I mars 2014 meddelade Nvidia att efterträdaren till Maxwell skulle bli Pascal-mikroarkitekturen; tillkännagavs den 6 maj 2016 och släpptes den 27 maj samma år. Tesla P100 (GP100-chip) har en annan version av Pascal-arkitekturen jämfört med GTX GPU:er (GP104-chip). Shader -enheterna i GP104 har en Maxwell -liknande design.

Arkitektoniska förbättringar av GP100-arkitekturen inkluderar följande:

  • I Pascal består en SM (streaming multiprocessor) av mellan 64-128 CUDA-kärnor, beroende på om det är GP100 eller GP104. Maxwell packade 128, Kepler 192, Fermi 32 och Tesla endast 8 CUDA-kärnor i en SM; GP100 SM är uppdelad i två bearbetningsblock, som vart och ett har 32 enkelprecisions-CUDA-kärnor, en instruktionsbuffert, en warp-schemaläggare, 2 texturmappningsenheter och 2 dispatch-enheter.
  • CUDA Compute Capability 6.0.
  • High Bandwidth Memory 2 — vissa kort har 16 GiB HBM2 i fyra stackar med totalt 4096-bitars buss med en minnesbandbredd på 720 GB/s.
  • Unified memory — en minnesarkitektur, där CPU och GPU kan komma åt både huvudsystemminne och minne på grafikkortet med hjälp av en teknik som kallas "Page Migration Engine".
  • NVLink — en buss med hög bandbredd mellan CPU och GPU och mellan flera GPU:er. Tillåter mycket högre överföringshastigheter än de som kan uppnås med PCI Express; beräknas ge mellan 80 och 200 GB/s.
  • 16-bitars ( FP16 ) flyttalsoperationer (i vardagligt tal "halv precision") kan utföras med dubbelt så hög hastighet som 32-bitars flyttalsoperationer ("enkel precision") och 64-bitars flyttalsoperationer (i vardagligt tal "dubbel" precision") exekveras med halva hastigheten av 32-bitars flyttalsoperationer.
  • Fler register — dubbelt så många register per CUDA-kärna jämfört med Maxwell.
  • Mer delat minne.
  • Dynamiskt lastbalanseringssystem. Detta tillåter schemaläggaren att dynamiskt justera mängden GPU som tilldelas flera uppgifter, vilket säkerställer att GPU:n förblir mättad med arbete förutom när det inte finns mer arbete som säkert kan distribueras att distribuera. Nvidia har därför säkert aktiverat asynkron beräkning i Pascals drivrutin.
  • Företräde på instruktionsnivå och trådnivå.

Arkitektoniska förbättringar av GP104-arkitekturen inkluderar följande:

  • CUDA Compute Capability 6.1.
  • GDDR5X — ny minnesstandard som stöder 10 Gbit/s datahastigheter, uppdaterad minneskontroller.
  • Samtidig multiprojektion - genererar flera projektioner av en enda geometriström, när den kommer in i SMP-motorn från uppströms shader-stadier.
  • DisplayPort 1.4, HDMI 2.0b.
  • Fjärde generationens Delta Color Compression.
  • Förbättrat SLI-gränssnitt — SLI-gränssnitt med högre bandbredd jämfört med tidigare versioner.
  • PureVideo Feature Set H hårdvaruvideoavkodning HEVC Main10(10bit), Main12(12bit) och VP9 hårdvaruavkodning.
  • HDCP 2.2-stöd för 4K DRM-skyddat innehållsuppspelning och streaming (Maxwell GM200 och GM204 saknar HDCP 2.2-stöd, GM206 stöder HDCP 2.2).
  • NVENC HEVC Main10 10bit hårdvarukodning.
  • GPU Boost 3.0.
  • Företräde på instruktionsnivå. I grafikuppgifter begränsar drivrutinen preemption till pixelnivå, eftersom pixel-uppgifter vanligtvis slutförs snabbt och de allmänna kostnaderna för att göra pixel-nivå preemption är lägre än instruktionsnivå preemption (vilket är dyrt). Beräkningsuppgifter får företräde på trådnivå eller instruktionsnivå, eftersom de kan ta längre tid att slutföra och det finns inga garantier för när en beräkningsuppgift avslutas. Därför möjliggör föraren den dyra instruktionsnivån för dessa uppgifter.

Översikt

Grafikprocessorkluster

Ett chip är uppdelat i Graphics Processor Clusters (GPC). För GP104-chipsen omfattar en GPC 5 SM:er.

Streaming Multiprocessor "Pascal"

En "Streaming Multiprocessor" motsvarar AMD:s Compute Unit . En SMP omfattar 128 enkelprecisions-ALU ("CUDA-kärnor") på GP104-chips och 64 enkelprecisions-ALU:er på GP100-chips.

Det som AMD kallar en CU (beräkningsenhet) kan jämföras med vad Nvidia kallar en SM (streaming multiprocessor). Medan alla CU-versioner består av 64 shader-processorer (dvs. 4 SIMD Vector Units (vardera 16-lane bred) = 64), experimenterade Nvidia (som regelbundet kallar shader-processorer "CUDA-kärnor") med väldigt olika nummer:

  • Tesla 1 kombinerar SM 8 enkelprecisions (FP32) shader-processorer
  • Fermi 1 kombinerar SM 32 enkelprecisions (FP32) shader-processorer
  • Kepler 1 kombinerar SM 192 enkelprecisions (FP32) shader-processorer och även 64 dubbelprecisions (FP64) enheter (åtminstone GK110 GPU)
  • Maxwell 1 SM kombinerar 128 enkelprecisions (FP32) shader-processorer
  • På Pascal beror det på:
    • På GP100 1 kombinerar SM 64 enkelprecisions (FP32) shader-processorer och även 32 dubbelprecisions (FP64) som ger ett 2:1-förhållande mellan enkel- till dubbelprecisionsgenomströmning. GP100 använder mer flexibla FP32-kärnor som kan bearbeta en enda precision eller två halvprecisionsnummer i en tvåelementsvektor. Nvidia avser att ta itu med beräkningen av algoritmer relaterade till djupinlärning med dessa.
    • På GP104 1 SM kombinerar 128 enkelprecisions-ALU:er, 4 dubbelprecisions-ALU:er som ger ett 32:1-förhållande, och en halvprecisions-ALU som innehåller en vektor av två halvprecisionsflöten som kan utföra samma instruktion på båda flottörerna. ett förhållande på 64:1 om samma instruktion används på båda elementen.

Polymorph-Engine 4.0

Polymorph Engine version 4.0 är den enhet som ansvarar för Tessellation . Den överensstämmer funktionellt med AMD:s geometriska processor . Den har flyttats från shadermodulen till TPC:n för att tillåta en Polymorph-motor att mata flera SM:er inom TPC:n.

Pommes frites

  • GP100: Nvidia Tesla P100 GPU-accelerator är inriktad på GPGPU- applikationer som FP64 dubbel precisionsberäkning och djupinlärningsträning som använder FP16. Den använder HBM2-minne . Quadro GP100 använder också GP100 GPU.
  • GP102: Denna GPU används i TITAN Xp, Titan X och GeForce GTX 1080 Ti. Den används även i Quadro P6000 & Tesla P40.
  • GP104: Denna GPU används i GeForce GTX 1070, GTX 1070 Ti och GTX 1080. GTX 1070 har 15/20 och GTX 1070 Ti har 19/20 av sina SMS aktiverade. Båda är anslutna till GDDR5-minne, medan GTX 1080 är ett fullt chip och är anslutet till GDDR5X-minne. Den används även i Quadro P5000, Quadro P4000 och Tesla P4.
  • GP106: Denna GPU används i GeForce GTX 1060 med GDDR5/GDDR5X-minne. Den används även i Quadro P2000.
  • GP107: Denna GPU används i GeForce GTX 1050 Ti och GeForce GTX 1050. Den används även i Quadro P1000, Quadro P600, Quadro P620 & Quadro P400.
  • GP108: Denna GPU används i GeForce GT 1010 och GeForce GT 1030.

På GP104-chippet består en SM av 128 enkelprecisions-ALUer ("CUDA-kärnor"), på GP100 av 64 enkelprecisions-ALUer. På grund av olika organisation av chipsen, som antalet ALU:er med dubbel precision, är den teoretiska dubbelprecisionsprestandan för GP100 hälften av den teoretiska för enkelprecision; förhållandet är 1/32 för GP104-chippet.

Jämförelsetabell för några Kepler-, Maxwell- och Pascal-chips
GK104 GK110 GM204 (GTX 970) GM204 (GTX 980) GM200 GP104 GP100
Dedikerad texturcache per SM 48 KiB
Textur (grafik eller beräkning) eller skrivskyddad data (endast beräkning) cache per SM 48 KiB
Programmerarvalbart delat minne/L1-partitioner per SM 48 KiB delat minne + 16 KiB L1-cache (standard) 48 KiB delat minne + 16 KiB L1-cache (standard)
32 KiB delat minne + 32 KiB L1-cache 32 KiB delat minne + 32 KiB L1-cache
16 KiB delat minne + 48 KiB L1-cache 16 KiB delat minne + 48 KiB L1-cache
Unified L1 cache/textur cache per SM 48 KiB 48 KiB 48 KiB 48 KiB 24 KiB
Dedikerat delat minne per SM 96 KiB 96 KiB 96 KiB 96 KiB 64 KiB
L2-cache per chip 512 KiB 1536 KiB 1792 KiB 2048 KiB 3072 KiB 2048 KiB 4096 KiB

Prestanda

Den teoretiska enkelprecisionsprocessorkraften för en Pascal GPU i GFLOPS beräknas som 2 X (operationer per FMA-instruktion per CUDA-kärna per cykel) × antal CUDA-kärnor × kärnklockhastighet (i GHz).

Den teoretiska dubbelprecisionsprocessorkraften hos en Pascal GPU är 1/2 av enkelprecisionsprestandan på Nvidia GP100 och 1/32 av Nvidia GP102, GP104, GP106, GP107 och GP108.

Den teoretiska halvprecisionsprocessorkraften hos en Pascal GPU är 2× av enkelprecisionsprestandan på GP100 och 1/64 på GP104, GP106, GP107 och GP108.

Efterträdare

Pascal-arkitekturen efterträddes 2017 av Volta på marknaderna för HPC , cloud computing och självkörande bilar och 2018 av Turing på konsument- och företagsmarknaden.

Se även