Differences

This shows you the differences between two versions of the page.

Link to this comparison view

cpl:unpub [2015/12/23 22:59]
octavian.moraru [Hints/FAQ]
cpl:unpub [2015/12/23 23:17] (current)
octavian.moraru [Hints/FAQ:]
Line 25: Line 25:
 Premisa acestul concurs este că avem la dispoziție o arhitectură fictivă care execută instrucțiuni LLVM IR. Pentru a executa o instrucțiune LLVM IR pe procesorul fictiv este necesar un anumit număr de cicluri de ceas. Astfel, putem estima cât de costisitoare este execuția unei instrucțiuni. Premisa acestul concurs este că avem la dispoziție o arhitectură fictivă care execută instrucțiuni LLVM IR. Pentru a executa o instrucțiune LLVM IR pe procesorul fictiv este necesar un anumit număr de cicluri de ceas. Astfel, putem estima cât de costisitoare este execuția unei instrucțiuni.
  
-Pentru aceasta fiecare ​pass va folosi un fișier de intrare care conține pe fiecare linie numele unei instrucțiuni LLVM IR și un cost/scor asociat.+Pentru aceasta fiecare ​pas va folosi un fișier de intrare care conține pe fiecare linie numele unei instrucțiuni LLVM IR și un cost/scor asociat.
 Exemplu: Exemplu:
 <​code>​ <​code>​
Line 66: Line 66:
  
 <note tip> <note tip>
-  * **Q:** Cum pot prelua o opțiune din linia de comandă în cadrul ​pass-ului ​LLVM?+  * **Q:** Cum pot prelua o opțiune din linia de comandă în cadrul ​pasului ​LLVM?
   * **A:** Folosind API-ul [[http://​llvm.org/​releases/​3.6.2/​docs/​CommandLine.html|CommandLine]]   * **A:** Folosind API-ul [[http://​llvm.org/​releases/​3.6.2/​docs/​CommandLine.html|CommandLine]]
  
Line 139: Line 139:
 ===== Concurs ===== ===== Concurs =====
  
-Regula este simplă: cine obține cel mai mic scor pentru benchmark-ul dat, câștigă. Pentru a micșora costul de execuție puteți implementa orice pași de optimizare doriți, pe care îi puteți apela în orice ordine. **Atenție** însă: nu aveți voie să folosiți pașii LLVM, nici direct (nu aveți voie să îi apelați), nici indirect (nu aveți voie să preluați cod - verificați ce înseamnă [[cpl:​meta:​notare##​penalizare_pentru_teme_copiate|temă copiată]]). ​ Aceeași regulă se aplică și pentru pașii de analiză. ​Pentru mai multe detalii, consultați [[:​cpl:​teme:​general|regulamentul]],​ secțiunea //Reguli de realizare a temelor//​. +Regula este simplă: cine obține cel mai mic scor pentru benchmark-ul dat, câștigă. Pentru a micșora costul de execuție puteți implementa orice pași de optimizare doriți, pe care îi puteți apela în orice ordine. **Atenție** însă: nu aveți voie să folosiți pașii LLVM, nici direct (nu aveți voie să îi apelați), nici indirect (nu aveți voie să preluați cod - verificați ce înseamnă [[cpl:​meta:​notare##​penalizare_pentru_teme_copiate|temă copiată]]). ​ Aceeași regulă se aplică și pentru pașii de analiză.
 ===== Implementare ===== ===== Implementare =====
  
Line 155: Line 154:
   * {{:​cpl:​concurs-arhiva.zip|Arhiva de start}}   * {{:​cpl:​concurs-arhiva.zip|Arhiva de start}}
   * [[http://​llvm.org/​releases/​3.6.2/​docs/​index.html|Documentația]] LLVM   * [[http://​llvm.org/​releases/​3.6.2/​docs/​index.html|Documentația]] LLVM
 +  * Loop Unrolling:
 +    * Dragon Book: Capitolele 10.4.5, 9.6
 +    * Muchnik: Capitolul 18 (Secțiunea 18.4), Capitolul 14
   * Testare: **TODO**   * Testare: **TODO**
cpl/unpub.1450904360.txt.gz · Last modified: 2015/12/23 22:59 by octavian.moraru
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0