220 likes | 332 Vues
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
E N D
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 · V2· C Exploatarea ILP şi TLP prin inovaţii arhitecturale este costisitoare Semantică redusă Nu exploatează TLP la nivel de granularitate suficient Gap procesor memorie îngrijorător Multicore Paralelism la toate nivelurile Gap-ul se atenuează prin mutithreading, multitasking Frecvente mai mici de lucru, putere consumată mai mică Performanţele cresc prin numărul de core-uri Pot fi omogene sau neomogene De la singlecore la multicore
Coerenţa cache-urilor. Protocoalele MESI, MOESI. Programarea paralelă Complexitate crescută. Debugging dificil. Consumul de putere rămâne o problemă. Impedimentele multicore
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 – modular Multi2sim – monolitic Scopul lucrării. Obiective.
Avantaje Cadru 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. Dezavantaje Modularitatea ş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 PPC - Pthread. Platforma UNISIM – simulatorul utilizat
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. Platforma Unisim - Concluzii
Avantaje 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. Dezavantaje Este greu de extins. Nu permite full system simulation. Simulatorul Multi2sim
Multi2sim – flow diagram Parametrii arhitecturali Generator ierarhii cache-uri Fişier ierarhie cache-uri Benchmark-uri Script automatizare execuţie Simulare Prelucrare rezultate Input Output Multi2Sim Interpretare vizuală Timp simulare o configuraţie: 6 – 8 ore!
Aplicaţie dezvoltată pentru a genera fişiere de configurare cache cu două nivele. Cele 6 modele implementate sunt scalabile. Extinderea simulatorului – Generator ierarhii cache-uri
Aplicaţie dezvoltată pentru a prelua uşor rezultatele unei simulări. Extrage: Rata de procesare Acurateţea globală de predicţie Rata de hit în memoriile cache Extinderea simulatorului – Parserul de rezultate
Documentaţie mediocră, însă codul este explicat. Uşor de instalat şi de utilizat. Poate fi integrat într-o soluţie ADSE. Multi2sim - Concluzii
S-a urmărit optimzarea unei arhitecturi multicore, utilizănd simulatorul Multi2sim. S-a folosit o metodă simplă de hillclimbing. Benchmark-uri: FFT LU Ocean Radix Rayrace Căutare: Parametrii nucleu Parametrii multicore DSE – Metodologia de simulare Arhitectura iniţială Reactualizare arhitectură Variaţie un singur parametru Simulare benchmarkuri Selecţie valoare optimă pentru parametru Preluare şi analiză rezultate
Rata de procesare pe cache-urile de nivel 1. DSE – Level 1 Caches
Rata de procesare pe cache-urile de nivel 2. DSE – Level 2 Caches
Rata de procesare în funcţie de factorul de superscalaritate. DSE – Factor Superscalaritate
Rata de procesare în funcţie arhitectura folosită, cu VB sau ROB. DSE – Arhitectura VB
Rata de procesare în funcţie numărul de threaduri. DSE – Multithreading
Analiză comparativă între SMT şi multicore. DSE – SMT versus Multicore
Performanţele sistemelor multicore în funcţie de ierarhia de cache utilizată DSE – Multicore
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. Concluzii şi dezvoltări