Sunteți pe pagina 1din 4

1.

Definiti notiunea de multime Pareto in cadrul optimizarii multi-obiectiv (petru


o problema de minimizare). De ce este dificila selectia indivizilor in cadrul
algoritmilor genetici de tip multi-obiectiv in raport cu cei mono-obiectiv? Cum s-
ar putea rezolva aceasta problema?
O multime Pareto este o multime de decizii ( indivizi ) care sunt eficienti Pareto. O multime
eficienta Pareto reprezinta situatiile in care orice modificare aditionala pentru a imbunatati un
individ este imposibila fara a inrautati un alt individ.

Selectia in cadrul algoritmilor genetic de tip multi-obiectiv este dificila deorece nu se pot
compara diferiti indivizi pentru ca acestia sunt evaluati in functie de mai multe criterii, nu doar
de unul singur.

Aceasta problema se poate rezolva folosind mai multe multimi Pareto pentru a sorta indivizii.

2. De ce este dificil de predictionat un branch cu un comportament puternic


entropic si nepolarizat intr-un anumit context dinamic (binar) de aparitie (LHR,
GHR, etc.)? Ce strategii exista in vederea transformarii sale intr-un branch mai
polarizat si deci mai predictibil?
Dificultatea vine din faptul ca anumite branch-uri dinamice, intr-un anumit context binar de
aparitie, au un comportament nepolarizat, fiind atat Taken cat si Not Taken in proportii
semnificative.

Asadar in cazul acestor branch-uri nepolarizate, comportamentul lor memorat ca o lunga


secventa (zeci de milioane) de „0” (Not Taken) si de „1” (Taken), este impredictibil din punct de
vedere al nevoilor noastre ingineresti.

Strategii:

- Marim lungimea contextului binar asociat fiecarui branch. Pe 32 de biti, aproximativ


17% din salturi sunt impredictibile, dar pe 64 de biti scade la 4%. Contextul de predictie
pe 64 de biti nu e fezabil practic, dar micsoreaza entropia.
- Cautam informatii cu ajutorul carora branch-urile nepredictictibile sa devina mai
polarizante (mai predictibile).
3.

a. Avantaje ale predictiei neuronale (perceptroane simple) a branch-urilor, in


raport cu schemele clasice (bazate pe numaratoare saturate). Dezavantajele
predicitiei prin perceptroane simple

b. Algoritmul de invatare pentru predictorul de branch-uri de tip perceptron


a. Un avatantaj important este acela ca, in comparatie cu schemele clasice de predictie,
predictia neuronala poate exploata corelatii mai profunde la complexitati liniare, in loc de
complexitati exponentiale.

Predictorul neuronal are o acuratete mult mai consistenta ,cu un procent de aproape 4%, in
comparatie cu schemele clasice de predictie. O retea neuronala poate sa extraga informatie
aditionala de predictie dintr-un numar limitat de biti.

Dezavantajul mare pe care il prezinta predictorului neuronal este latenta mare.

b. Algoritmul de invatare :

1. Adresa de salt este folosita pentru a produce un index i є 0..N -1 in tabela de


perceptroni
2. Al i-ulea perceptron este fetch-uit din tabel intr-un vector de ponderi
3. Valorea lui y este calculata ca fiind produsul scalar dintre P si registrul de istorie globala
4. Salt-ul este predictionat not taken daca y este negativ si taken in caz contrar
5. Odata de rezultatul saltului devine cunoscut, algoritmul de invatare foloseste acest
rezultat si valoarea lui y pentru a face update in vectorul de ponderi
6. Vectorul P este scris inapoi in cea de i-a intrare in tabela
4.

a. Definiti notiunile: benchmark, trace, design space exploration

b. Avantaje ale simularii execution-driven (cycle by cycle) fata de simularea


trace-driven. Exemplu de aplicatie la care simularea trace-driven este mai
avantajoasa. De ce?

a.
Benchmark = este un program sau un set de programe care are/au scopul de a evalua
performantele unui sistem de calcul. Se pot folosi mai multe metode: trace-driven simulation,
execution driven simulation.
Trace = program masina obtinut in urma executiei sale, un fisier continand toate instructiunile
masina in ordinea rularii lor impreuna cu adresele acestora. Trace-urile contin doar instructiuni
de load, store si branch.
Design Space Exploration = DSE = activitate de a explora diferite alternative de design inainte
de implementare, de mare ajutor in optimizari.

b. In ceea ce priveste simularea execution-driven, se cunoaste in fiecare moment continutul


resurselor arhitecturale ( registrii, locatii de memorie, etc). Simularea se face detaliat, la nivel
de ciclu de executie al procesorului. Are ca output continul registrelor, gradul de incarcare a
acestora, rata de procesare, de hit, etc.
In ceea ce priveste simularea trace-driven, aceasta este mai bun la simularea cache-urilor de
date si instructiuni, a mecanismelor de memorie virtuala, datorita faptului ca ofera pattern-uri
reale de adrese.

5. Principiile estimarii limitelor de performanta obtenabile prin actuala


paradigma de procesare a instructiunilor (Instruction Level Parallelism),
utilizand un model Oracle de procesare (resure nelimitate si alte idealizari). In ce
consta utilitatea modelului? (cuantificarea unor limitari; exemple)
Fiecărei instrucţiuni i se asociază un parametru numit PIT (Parallel Instruction Time),
semnificând numărul impulsului de tact în care instrucţiunea respectivă poate fi lansată în
execuţia propriu-zisă. Dacă o instrucţiune următoare este dependentă RAW printr-un registru
sau printr-o variabilă de memorie de instrucţiunea curentă, atunci ei i se va aloca un nou PIT dat
de relaţia:

PITnou = PITvechi + L, unde L = latenţa instrucţiunii curente

Acest proces de alocare PIT continuă în mod similar, în N(N-1)/2 treceri prin trace, unde N
reprezintă numărul de instrucţiuni din trace, până la finele acestuia.

În final se obţine gradul teoretic de paralelism disponibil:

IRteoretic = N/ PITmax

Folosind modelul Oracle, se ignoră hazardurile false de tip WAR şi WAW, considerându-se deci
un "renaming" perfect, analiză anti-alias perfectă şi o predicţie perfectă a branch-urilor. Aşadar,
un registru reutilizat ca destinaţie în trace (primind deci o nouă viaţă), este automat redenumit
cu unul disponibil, pentru a elimina total hazardurile WAR şi WAW şi deci pentru a mări gradul
de paralelism al trace-ului.

S-ar putea să vă placă și