optimizarea unei arhitecturi multicore prin simulare şi design space exploration
DESCRIPTION
Panu Mihai Tudor Calculatoare An 4 Conducător: Prof. Dr. Ing. Vinţan Lucian Îndrumător: Conf. Dr. Ing. Florea Adrian. Optimizarea unei arhitecturi multicore prin simulare şi Design Space Exploration. Singlecore Scalarea frecvenţei a ajuns la saturaţie: P = f · V 2 · C - PowerPoint PPT PresentationTRANSCRIPT
Optimizarea unei arhitecturi multicore prin simulare şi Design
Space Exploration
Panu Mihai TudorCalculatoare An 4
Conducător: Prof. Dr. Ing. Vinţan LucianÎndrumător: Conf. Dr. Ing. Florea Adrian
De la singlecore la multicoreSinglecore
Scalarea frecvenţei a ajuns la saturaţie:P = f · V2 · C
Exploatarea ILP şi TLP prin inovaţii arhitecturale este costisitoareSemantică redusăNu exploatează TLP la nivel de granularitate suficientGap procesor memorie îngrijorător
MulticoreParalelism la toate nivelurileGap-ul se atenuează prin mutithreading, multitaskingFrecvente mai mici de lucru, putere consumată mai micăPerformanţele cresc prin numărul de core-uriPot fi omogene sau neomogene
Impedimentele multicore
Coerenţa cache-urilor. Protocoalele MESI, MOESI.
Programarea paralelă
Complexitate crescută. Debugging dificil.
Consumul de putere rămâne o problemă.
Scopul lucrării. Obiective.
Scopul final:Determinarea unei arhitecturi multicore optime pentru benchmark-urile paralele SPLASH-2, prin DSE.
Obiective:Utilizarea, dezvoltarea şi exploatarea a 2 simulatoare diferite:
Unisim – modularMulti2sim – monolitic
Platforma UNISIM
AvantajeCadru de simulare modular, se poate extinde uşor.Două nivele de modelare, CLM şi TLM.Simulatoare numeroase şi arhitecturi diverse (Shared Memory, Distributed Memory).Poate fi integrat într-un sistem ADSE.
DezavantajeModularitatea şi comunicaţiile între module duc la viteze de simulare mult mai mici.Necesită dezvoltare pentru a produce rezultate detaliate în urma unei simulări.
Platforma UNISIM – simulatorul utilizat
Simulatorul PPC - Pthread.
Platforma Unisim - Concluzii
Documentaţia existentă este inadecvată.Instalarea, înţelegerea şi extinderea mediului sunt dificile.Permite doar simulări de arhitecturi Dualcore.Nu s-a folosit în DSE.
Simulatorul Multi2simAvantaje
Simulator monolitic event-driven, viteză de simulare mai mare.Parametrii de configurare ai unei arhitecturi multicore numeroşi (mai ales nucleu).Ierarhii de cache-uri parametrizabile.Reteaua de interconectare poate fi bus sau fat tree, lăţimea de bandă se poate selecta.Rezultatele unei simulări sunt detaliate.Arhitecură x86, nu necesită crosscompilator, nucleele pot să utilizeze SMT.
DezavantajeEste greu de extins.Nu permite full system simulation.
Multi2sim – Ierarhii de memorii cache
Multi2sim – flow diagram
Benchmark-uri
Parametriiarhitecturali
Fişierierarhie
cache-uri
Generatorierarhii
cache-uri
Input Simulare Output Prelucrarerezultate
Script automatizareexecuţie
Interpretarevizuală
Multi2Sim
Timp simulare o configuraţie:
6 – 8 ore!
Extinderea simulatorului – Generator ierarhii cache-uri
Aplicaţie dezvoltată pentru a genera fişiere de configurare cache cu două nivele. Cele 6 modele implementate sunt scalabile.
Extinderea simulatorului – Parserul de rezultate
Aplicaţie dezvoltată pentru a prelua uşor rezultatele unei simulări. Extrage:
Rata de procesareAcurateţea globală de predicţieRata de hit în memoriile cache
Multi2sim - Concluzii
Documentaţie mediocră, însă codul este explicat.Uşor de instalat şi de utilizat.Poate fi integrat într-o soluţie ADSE.
DSE – Metodologia de simulareS-a urmărit optimzarea unei arhitecturi multicore,
utilizănd simulatorul Multi2sim. S-a folosit o metodă simplă de hillclimbing.
Benchmark-uri:FFTLUOceanRadixRayrace
Căutare:Parametrii nucleuParametrii multicore
Arhitectura iniţială
Variaţie un singur parametru
Simularebenchmarkuri
Preluare şianaliză rezultate
Selecţie valoare optimă
pentru parametru
Reactualizarearhitectură
DSE – Level 1 Caches
Rata de procesare pe cache-urile de nivel 1.
128 256 512 1024 2048
0.70
0.72
0.74
0.76
0.78
0.80
0.82
0.84
0.86
Average Global IPC
Level 1Caches
Global IPC Direct MappedGlobal IPC 2 wayGlobal IPC 4 way
Number of blocks
IPC
DSE – Level 2 Caches
Rata de procesare pe cache-urile de nivel 2.
8192 16384 32768 65536 131072
0.60
0.65
0.70
0.75
0.80
0.85
0.90
Average Global IPC
Level 2 Cache
Global IPC 2 wayGlobal IPC 4 wayGlobal IPC 8 way
Number of blocks
IPC
DSE – Factor SuperscalaritateRata de procesare în funcţie de factorul de
superscalaritate.
1 2 4 8 16
0.65
0.67
0.69
0.71
0.73
0.75
0.77
0.79
0.81
0.83
0.85
Factorul de Superscalaritate
Factor de Superscalaritate
Factor
IPC
DSE – Arhitectura VBRata de procesare în funcţie arhitectura folosită,
cu VB sau ROB.
FFT LU OCEAN RADIX RAYTRACE AVERAGE
0.00
0.20
0.40
0.60
0.80
1.00
1.20
Performance Gain With VB Architecture
ROBVB
Benchmark
IPC
DSE – MultithreadingRata de procesare în funcţie numărul de
threaduri.
1 2 4 8 16 32
0.80
0.90
1.00
1.10
1.20
1.30
1.40
1.50
1.60
1.70
1.80
Multithread
Average Global IPC
Threads
Threads
IPC
DSE – SMT versus MulticoreAnaliză comparativă între SMT şi multicore.
1 2 4 8
0.90
1.13
1.43
1.80
2.26
2.85
3.58
4.51
5.68
7.15
Multithread & Multicore
CoresIdealThreads
Number of Cores or Threads
IPC
DSE – MulticorePerformanţele sistemelor multicoreîn funcţie de ierarhia de cache utilizată
1 2 4 8 16
1.00
2.00
3.00
4.00
5.00
6.00
7.00
1
2
3
4
5
6
7
Performanta pe diferite ierarhii de cache
Model AModel BModel C
Cores
IPC
Concluzii şi dezvoltări
Concluzii:Performanţa creşte cu 400% pentru 8-core cu SMT şi 600% pentru 16 core cu SMT.Se preferă un simulator monolitic pentru ca este mai rapid.TLP este esenţial, implementarea pe multicore este superioară faţă de singlecore.Dezvoltarea simulatoarelor este relativ uşoară cât timp se lucrează pe preprocesare şi postprocesare.
Dezvoltări:Paralelizarea simulatoarelor este o opţiune.Optimizare şi pe ansamblul de parametrii ai compilatorului.DSE poate fi îmbunătăţit prin implementarea unor algoritmi de căutare inteligenţi.Alte metode de reducere a timpului mare de simulare.