From 4368f6eaa69d93583d8855089859f379ff2c5d2a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9ophile=20Bastian?= Date: Wed, 20 Nov 2024 12:54:09 +0100 Subject: [PATCH] Some writeup --- slides/10_popularization/main.tex | 57 +- slides/20_foundations/main.tex | 104 ++ slides/30_frontend/main.tex | 1 + slides/40_cesasme/main.tex | 1 + slides/50_staticdeps/main.tex | 1 + slides/60_a72combined/main.tex | 1 + .../imgs/20_foundations/cpu_big_picture.svg | 964 ++++++++++++++++++ .../20_foundations/cpu_big_picture.svg.pdf | Bin 0 -> 17147 bytes .../cpu_big_picture_truncate.svg | 862 ++++++++++++++++ .../cpu_big_picture_truncate.svg.pdf | Bin 0 -> 16068 bytes slides/include/macros.tex | 4 +- slides/include/packages.tex | 9 + slides/main.tex | 12 +- 13 files changed, 2012 insertions(+), 4 deletions(-) create mode 100644 slides/30_frontend/main.tex create mode 100644 slides/40_cesasme/main.tex create mode 100644 slides/50_staticdeps/main.tex create mode 100644 slides/60_a72combined/main.tex create mode 100644 slides/assets/imgs/20_foundations/cpu_big_picture.svg create mode 100644 slides/assets/imgs/20_foundations/cpu_big_picture.svg.pdf create mode 100644 slides/assets/imgs/20_foundations/cpu_big_picture_truncate.svg create mode 100644 slides/assets/imgs/20_foundations/cpu_big_picture_truncate.svg.pdf diff --git a/slides/10_popularization/main.tex b/slides/10_popularization/main.tex index f0badc4..0c029b5 100644 --- a/slides/10_popularization/main.tex +++ b/slides/10_popularization/main.tex @@ -4,7 +4,7 @@ \centering \includegraphics[width=\textwidth]{fugaku.jpg} - \emph{Le supercalculateur \emph{Fugaku} ---~© Riken} + \emph{Le supercalculateur \emph{Fugaku} ---~© RIKEN} \end{frame} \begin{frame}[c]{} @@ -18,3 +18,58 @@ \includegraphics[height=0.9\textheight]{serveur_supermicro.png}\\ \emph{Un serveur ---~© Supermicro} \end{frame} + +\begin{frame} + \centering + %\includegraphics[width=\textwidth]{fugaku.jpg} + + \emph{Un processeur} +\end{frame} + +\begin{frame}{Quelques ordres de grandeur} + + \begin{columns} + \begin{column}{0.32\textwidth} + \begin{block}{Nombres} + \begin{itemize} + \item{} \emph{Fugaku}~: 158,976 CPUs + \end{itemize} + \end{block} + \end{column}\hfill + \begin{column}{0.32\textwidth} + \begin{block}{Coût} + \begin{itemize} + \item{} un processeur~: $\sim$~100--1\,000\,€ + \item{} un serveur~: $\sim$~10\,000--50\,000\,€ + \item{} \textit{Fugaku}~: 1 milliard~\$ + \end{itemize} + \end{block} + \end{column}\hfill + \begin{column}{0.32\textwidth} + \begin{block}{Consommation} + \begin{itemize} + \item{} un serveur~: $\sim$~500\,W + \item{} \textit{Fugaku}~: 30--40\,MW ($\sim$~5\,\% d'un + réacteur nucléaire) + \end{itemize} + \end{block} + \end{column} + \end{columns} + + \hfill + \begin{center} + \textbf{$\rightarrow$ gagner quelques \% de performance, c'est très + rentable~!} + \end{center} +\end{frame} + +\begin{frame} + \todo{} + \begin{itemize} + \item De quel genre de programme on parle~? (Calcul scientifique + ---~météo, simulation d'océans, …~---, IA, \ldots) + \item Comment gagner de la perf~? + \item Les 3 bottlenecks + \item Les code analyzers + \end{itemize} +\end{frame} diff --git a/slides/20_foundations/main.tex b/slides/20_foundations/main.tex index dc16c09..043a691 100644 --- a/slides/20_foundations/main.tex +++ b/slides/20_foundations/main.tex @@ -1 +1,105 @@ \section{Foundations} + +\begin{frame}{Bird's eye view of a CPU} + \centering + \includegraphics[height=0.94\textheight]{cpu_big_picture.svg} +\end{frame} + +\begin{frame}{Possible bottlenecks} + \begin{columns} + \begin{column}{0.4\textwidth} + \begin{center} + \includegraphics[width=\textwidth]{cpu_big_picture_truncate.svg} + \end{center} + \end{column} + \hfill + \begin{column}{0.58\textwidth} + \begin{tightitemize}{0pt} + \begin{itemize} + \item \alert{Frontend:} \uops{} issued not fast enough; + issuing faster would speed up computation; + \bigskip + + \item \alert{Backend:} saturated execution units; adding + more units would speed up computation; + \bigskip + + \item \alert{Dependencies:} computation is stalled waiting + for previous results; removing data dependencies would + speed up computation. + \end{itemize} + \end{tightitemize} + \end{column} + \end{columns} +\end{frame} + +\begin{frame}{Dependencies and the ROB} + \begin{itemize} + \item Dependencies can stall execution + \item Maybe instructions further down can be executed right now? + \item ROB: circular buffer of \uops{} + \item First possible instruction is issued + \end{itemize} +\end{frame} + +\begin{frame}{How do we get insights from this complex system?} + \textbf{Hardware counters} + \begin{itemize} + \item Built-in hardware, counters gathered at runtime + \item Very accurate + \item Available data varies from model to model + \item May not even be available at all + \end{itemize} + + \textbf{Simulation?} + \begin{itemize} + \item A modern CPU is \alert{$\sim$\,100e9 transistors}: very complex + models! + \item Very expensive, even for manufacturers for design validation + \item CPU design is industrial secret $\leadsto$ not available anyway + \item \ldots{}\ie{} not feasible. + \end{itemize} +\end{frame} + +\begin{frame}{Enter code analyzers} + \begin{itemize} + \item Tools that predict performance of a piece of assembly code on a + given CPU + \item Features microarchitectural models + \item Most often static analyzers + \item May derive further useful metrics, \eg{} bottlenecks, by + inspecting their model at will + \end{itemize} +\end{frame} + +\begin{frame}{What can be analyzed?} + Pieces of code referred as \alert{``microkernels''}: + + \begin{itemize} + \item body of an (assumed) infinite loop; + \item in steady-state; + \item straight-line code (branches assumed not taken); + \item L1-resident (memory model is out of scope). + \end{itemize} + + Reasonable hypotheses for the category of codes worth optimizing this way! +\end{frame} + +\begin{frame}{Existing code analyzers} + \begin{itemize} + \item Intel \alert{\iaca{}}: proprietary and only compatible with + Intel. First ``good'' code analyzer, now deprecated. Was (is?) + widely used. + \item \alert{\llvmmca{}}: FOSS, production-grade, many + microarchitectures. Based on data from the \texttt{llvm} compiler. + \item \alert{\uica{}} and \alert{\uopsinfo{}}: research, good accuracy. + Intel. + \item \alert{\ithemal{}}: machine-learning based. Not so accurate. + \item \alert{\gus{}}: instrumentation-based code analyzer (not + static) $\leadsto$ slow. Access to mode information. Made in the + CORSE team. + \end{itemize} + + Except Ithemal, \alert{all} are (to some extent) based on manually-made + models! +\end{frame} diff --git a/slides/30_frontend/main.tex b/slides/30_frontend/main.tex new file mode 100644 index 0000000..eb775e1 --- /dev/null +++ b/slides/30_frontend/main.tex @@ -0,0 +1 @@ +\section{A frontend model for the Cortex A72} diff --git a/slides/40_cesasme/main.tex b/slides/40_cesasme/main.tex new file mode 100644 index 0000000..23eef3f --- /dev/null +++ b/slides/40_cesasme/main.tex @@ -0,0 +1 @@ +\section{\cesasme: evaluate and compare state-of-the-art code analyzers} diff --git a/slides/50_staticdeps/main.tex b/slides/50_staticdeps/main.tex new file mode 100644 index 0000000..4171483 --- /dev/null +++ b/slides/50_staticdeps/main.tex @@ -0,0 +1 @@ +\section{\staticdeps: static extraction of memory-carried dependencies} diff --git a/slides/60_a72combined/main.tex b/slides/60_a72combined/main.tex new file mode 100644 index 0000000..1c47dcf --- /dev/null +++ b/slides/60_a72combined/main.tex @@ -0,0 +1 @@ +\section{The \acombined{} model: wrapping it all up} diff --git a/slides/assets/imgs/20_foundations/cpu_big_picture.svg b/slides/assets/imgs/20_foundations/cpu_big_picture.svg new file mode 100644 index 0000000..497a5bc --- /dev/null +++ b/slides/assets/imgs/20_foundations/cpu_big_picture.svg @@ -0,0 +1,964 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + FRONTEND + BACKEND + + + + + + + + Decoder + + + + + + Renamer + + + + + + + + + + Instructionflow + + + Reorder buffer (ROB) + + + + Issue + + + + + Port 1 + + + + + + + Port 2 + + + + + + + Port … + + + + + + + Port n + + + + Pipelined executionunits + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + REGISTERFILE + + + + L1CACHE + + + + + + + + RETIREBUFFER + + + + diff --git a/slides/assets/imgs/20_foundations/cpu_big_picture.svg.pdf b/slides/assets/imgs/20_foundations/cpu_big_picture.svg.pdf new file mode 100644 index 0000000000000000000000000000000000000000..b172a7390a5082c1b9960529ca18ee1cba200c5c GIT binary patch literal 17147 zcmbV!1wdTOvTcCi?h<6M;4lm@xVr~;cXxsX2=4A0GzsqRPH+ew+=4@J|B!Rfx#zxn z-+%9ahCO?Cb?xrz>e@5STGdd#6A@!zW@JO4tUWBdLtq5}0d|I#2s}IhCK(f3GiP%E z+p|a!0RR9niCI`Xn>aq7tqq(_L`;nAj7<>u_z;|&9Zd{u5Zp3KHHKUX>(Q6S)Xu9K z@$jgzbce+uhF5>5d(-OHI2k+`pM{N`#(Y=egjTyfo$;lM%h_ zij2dr4-s%_T__UdaCvG(7*!bt!JEDDrTUujO;Y?XM{AEp4fMRzdCv2|+?@nHR zia}2nNX1V%? zxSn{!4%Qs8Vp*;7GlSJjSiYrKyb3odCObvJ*_Y4=<5n+p;a0CPH1c~tua{RR=@;UE zQnAy}Gb+r5k411@g)Jo&1{dJigYsPzmdLGgy{A88wxjek&ODJrWLMQWJVnHStPR*d@+IarSk;y&JO|vS4=DS{-0>;mLymo6sn9b+L{u+* zqZ3q0h|J$R9Z3n&Q6-_s^#X|1DB(;b6VEu%GT<9up9C6w{J4?&#g-KKEjOlu`aYYd zmbu;q38(G*LYIlNCI)UDq5{-ITXLId9TsljIMy1$7UF~?bLYZB4xmGPx%_rNcxOzW z>6p*Q%?k~C^DyL)vYuvV5Q0o~>GC}Z36sQ?kLoPvVEF3-e4;noW|>yW9D*p{ngdB` zu-1^oT+bCOHZro$_WP-55aC9SR+!$uzrL(%zd8MN*t>sH2v>f>?Ylwu3iC*Mm@vnx z=c_+wM9<^x&5el`iv;7WVuKFN)`4>vGObmNAv(#I?|hBz0_2M2Zxb|*O4w-4i!VNo z{kY`UQD5Qb`*1Y8zefu#ATMm@x9Pru9Xc%`W=><;J!u)gA7IQ7*^x{DNkl_sf=WYb zl6WEIS>)jE#}PkXRB*mE+)1K6&c|RJg_6QOY#8u!BWCv(^EQlr%)m7ClSLC+>ZB=W zT_U6LYL$47w5otM7oLHcQ0vYv`=&nSIYMo;emvo9K`$mZs99>** zfJWq|fvmLpd>*L`m+l}UB3yNB0_tNpyuTKm=_Y%1NJa3OHR&MDS2#>9(W(@N8EVPz zaVmA@1BL-5>0!oB^O=Zci^Z_7DHrpVcB~m0Att;w>qH)cpRD=4-R9bk>*A)LJPlmh zKU~FGCA;pk5uENVKpzR*=IFqgi7IiJ#>mT~+e6 zc&VR+5X`#ml}m8wJh*YVbpm25o$!ANy1!PIq~rv;A7h9wgeh>h%NREsESww^8IM|s ziAKQ?f!M=D9pw~s0Wy}@;)9%`9F(R9styVC`r!)d)buhf;zgTZbPk8L?;rCs!wqYl zCb)@GRZ7K7rx!zqr@qofbPww4cD*hZ=6SzW#H*u$ihP$!hbt;JCOoe#S}8F~&E+2} z{aNh!DpOsO5jKmWu}GEzxAo!ty=%%K)TgsU;0DnzO|A((&eV4gqri>UZ>UsL^h!8~ z!=N*bhORGhy}&pnJhwM^CgCtJIed6&W5@;Ta=;OuqEOvkIxVTF0h6c7cq&y`L85y`vjhd!6I}w9`utW2n&wn^qE&ce z#u1P|y721F^?_U;^2~H{Sy&kaMh@)8&{@xWg;3*Q^b{{)|H$m&ytPR@!G zO41p>$27{HTp*S)@gy-C2u1~kDjW&R3P7S{o_`_6)J#>{v(of&x;VUGN-s`d8;Jlu z$W{-e?;n@%-O1JT!7M@&+m1tmq3)VPqLJdNvs*ZBlt0$QR{64;BNaFUwJuiP2tsEB zdHDv?t}j0BuPG(A>&YIQRC4P#cWSTriVtT5_ss&5;!-5H*BXi5rhE1i5`PPlf_q0E zE0}fq1)7pU+MCyp`{PBLyB@?4bc4?M2@mX89n8fB+U&^m_U+qrHwM%|LC_E5$046q zcNUJmW%_S?YjNU3C?~(hjhy229SH_pO5$$h4LJ(#aVkg0orc-{du<@<<}9w{{Jbsz z@bJ6{o`0AOfX@X0ldvFw8Ng&@@cjO~T6nJbwHwQi;hyWV5ho~fIuJ*A%q?p8WtOfxlOi(f*|kh+bNx$hr3lbOWC&U>l*d2HIfD`SrLcJoN_Ng^)0O& zAGNoS9iQzNdNdU^?`LrBc#ViErEtZLG8yZG zSY#}~xTC6EF}ieOqUSnQ+(bC2*Kfa7b262qI_HKZb+|^JKl^bmDq5nLB^|;9eRnE4 zHbzTOau03yArF47I#dKf6q|0-Ge#>=1h(V=CHD9oCQ~e)q*cpz4-yA$%hvB{#ATG` zkFObWVq&A*(WV@Pm1!=sA8%VSq^LQ?;iT6`dSn!#UJrMi(B;- z^xa8l?jNf5m!5YU;7ENAq-t>BvXR|2Qwh{^nT&88EHXXo^kM09?|y+Pl;Au9^^+$Q%}YbvslH>9!q zT;4PpO}4+bODtEfR7@Uh8Qs4J*^%R5NX9{~ITpk#Yw9_aMS?uLK%E<|B5PsX&Y87% zafP8GPBFts4{3zudYBP(6nf}_2x?{TXt~PA1)XEnDdobWMLBhbNiba2gRZN;~8l0O*6BNOY}VzdrYp zC<`T zh;Dbtk#gznaTUkAZ)@<>O2|x-J70v0EU|1l&EB}55s@^{ET`)9kQU6<+k?(X;rtiPHdz`=YM0`>Wd z2F0mE+j!XoEDr_Mpy@Z%E|U-TOT>q z-vCtyX03Y33T3dOMrSo>;1v8|@6DkoU=S#pecteJEaZ-UI5G4G|gaPO6F(rW1ngr4X2%qjdbi>Jn;p03SeX#PpSozs~= z_+IK~JUGzp zDCx*pm^dwGdB@rC0K(8yquaX0@}F05CvL@S>Rsk3ScL(pT?58dzF4ufJtgljoA6n} zKM`ACWYTYGWam^Dh&q3)d7Wj3m?&E4*d#?;Ya3f9gdHw2kZu7vk}nzaN>b6kf$~Q5 z6q#lRwb)O-+;aQ!6D&&IRUxHeszF{;yM&m}8tME;^F^ymf6D?fJ#ttLlTEsX1@m4b z@?A#pnzAg$&pG>B!CJfGU4~xF7)5f3Sb!f`F|Gv8e@WKZ0mE3HRdYir|}WqI7L|C|V6(8gb4+bcVE!*R)tJBFlr8#$ys zVVvqeQ<`ey?U4?UKVSl4+He3bSPY8c|)`*(8diD^JmxcY8-X^a3LH`;O7(= ziTRdxiv-p3&u!zNw6N=sLbq{p>cLaAtYN0JAL$_dwmvi>KEr^#C1{u3 zax^1`Pm8erq~!x5>?G9J#!Au3>B{zSoA9khisWsn#-ks2%i@wO1*vymoCXNF#M3si zFpaXnYO^1N2uE7f4)G+gdW3UJD&nHLXAqBhJx%+DR~{69;Fy_P_9rWUjbB!;EnQ~h zWxMD}eSAQ@+!KaXObnWW?ad}&C*f>Rn&mBnw_Q);p4N4mnx^!_p_`ki~k!l@%#e^)5p~<^tw@qaq_WTnYdX( zrns2l;;rNACWiRzDUv|C&|JwDldw7YVW^X<9 z9AQFsI7-XVhVpzM--t8}49~QN3{eTW3!{+lVYyY!0-|EN-=qTIbhrbBMav02s3=G|9gvJD&4c$0kT_jpZR<0^S*tW-@A z*NqDGszNdaNOz_dm zFUH`vfTQsAN|LC~Y{90PU97zZtuWhtz!2h?lp-UQ+UbOSI~$TU&`*{8jwlD|OXZd; zEaXqtg@Pc9ueQlgX~gNo$w$)B^70b$!?GwnFzb+Q0$u>pm=xS}+~l31@G0xO` zDP4RmVznc>XeN2})CRsru0{sVvb(9H=qCPw=%K5v{v9f;UhJE&^>7TS4XFl| zQ%8bZ56%L(cpjz~W1})~IRb+q3bM=w5B>R!(hC=tM&x1?R_Nn*yCWkv;#8wt%opv8 z`NLi7_-BkHk{_rWN($|7zb+kTJ13Rw&X&LBY|N7um!khh8!Ll+o{+iy1xVIUYis3h z&GWsN)r~MD4j3;vIwfP^zD%ujK0rY(`?EuN!h*wHc@ZrjGN(bn%_F*nSd@3>>Pz35 zKe3vp^CfVD3yE*(%JR%d$!aeoerSbL;pzT9to34yNxQzjjj!JIH2lusA`W`R=PTV! z?O{_~L1wew!>Wt${MfL%P=xkp?AcYat}l`FDGpX|#ZV zSj4fEy(_n8`_5%I?p)Q$>27gkq>ID(4POx6f=47xZXihhDHAzZ)#A%|3`7$ayi3YKpG!A#%>w%c&i%+I;oj_+(NXy@ROF)a z*ehT8 z-f>hTU+$(z3PU^u{0NArfna+7u6UOrH7S0?wNWs!3p+QZaS+GU9Zq&pVs>94?BhqJ zzUhTXPnr48NEQcplXE{=WlEvr<@!sJ4)Uk+Al_#+FCgQwy>qN&P3WL9G1;p~_Abi2 z0m@>wmzS6FUbh`Aq_KONii#85w;A4_J`AXpUKcCVbB9JE!37Lz#gL{8bI4ZIUv5aD?ra zvHb14gynr462Wz3t-KO;QG#Q*a7xY|2$VQfi0tV3?3C{SMGD{5yrkQ#^+1ZXq+b!plxbEmUlW*$?+_s7@$DY@O?dCfF{%Vp0vPvEKDlHUetWxKTZLJ>+wD*P0C536BpUKEbN=v_Wwv@EA z*t`9{_r2~r^>EY9V}{lB7v02xrb-k18}z1O)(AtcDBzhoi}%X+>0&eMZ#G^V{bQfK z&x^aJrjpAuYxygDhH#%$-2%3VWh7HMn1OFQm#y~q4#nf+AIC;I?F(rreJRUHZ*+>8pEb7X3ZmmY?*r6!xfhk9 zII77`AL(Nd7XC~M7r;o{m7PfJWK(c;>YwYK}XL0FVXGlkBu!q$$r+F5$) zr;sMSYE=5w(9ZjI&wsQ2GN$&}z5ij``k5!cRyX*g0l|P|P)TdlTNqw(B7%_JQHA{jtKGYCwD6lx zc;n-+LHD{H+dmyWMOz|=azxi5O=ed#FYI8+RdK4l40BLn#2h~~hg)=DJp{ARDvVQv zYO;DMO%Kyf`_LB|Dh{U&<|8R#i=~Eobrh6w4^n8k0E;nQ1o(6A3|h=#vNqr8JMD5L z3(r|1Y25Pm+FjXpuN-qYU%7m-QNUNqOVv93x;%EIL}C<87e6iJ0`Vc1;hpZg*~+aw z)w*ySRq&Vn>DF_GOB7FGcb!tzR$AcbND(E$j~_Nsb@@W_N96EO@+oT{Q_b!8W4FFhbeVjI zNm0VGsc|YT-Rc(9NR4NBS+~F=8gHlse}>t?_?ohZVjd;l^qo%@KZ(ru{mVl|K~K96 z^>RDM_B$?FVNO;*+sS0&Oi5cN+h$~vIAwKR0Hcq-XFD;)bahtU;5@5-6eVmuH)tI3 zPgBk5l7V%$sO&`dKfC>9*Nd*J8%WE3ZAabM;4;;9rbSWpVwX62P7sqOKutU$8c@m* zM7KMbM+zL|2RKi{J9FuX=;gl2pPEd(&N|&a^mY3RKV;=pIy4Z+)9vb93VuY*CmoCm?z@FW6WjORPnv!av zEc*LIu`w|xjGpjY){3=Zxw02IUqa_ASZyW3Yh=w4IPZC0dcku~lu{lRFz@VpF{lWlEvF zNTUJX$ut9PqZ}qX@F=*Z$`BNL5X)>$Eh!5<#}@e>LfEQPiOaNKc@!v+N%Q_cfv6+g1z?la62&)OBSY9x8;+nnti%OHBH+Stk$Wa2hO-jhb+C*@UPzrL5w<|hJgdakqJ<2`~d z2YQcINci{N2KahQo{q7*D^CMYGk;|WL>uDrd(S+Ee2|*G9ur3(tBJ88-*JQHq~aIZ zK1Fei(mA%?aXt9FeywO79_p{QR;}$dBeh*6WX(RHeMIJDK+oBixrx^-8J76g5sA|( zapu#VBmM?#!Ad;qNvx)|XFk>G-Lf%Cv&5(%27U+mAe*&{A_`|gd-+op3@Bwpd;w|q z5#8ktSCG-7A0n5pA702IVvjR%ou+fz?p(!~!{IN)21Ak1uW(EBRfc_6D)*|qevEaf zL9v4Yb1idWLL*VfbF&y2LAoGoOt4H8;RF1{$#STGLmAaiRpGMkz;kUIyjS*FaQSZ> z(qjgA9()#ql$G?!c4bZT)MlQPsw-OamKeR>$z|^GqPy6`&ce z4ToMgJem-+FQe!ccCta}!8N2oJnj1Nt8`*R_&9g@&<76nuQ@?vukB|u1a3>`xt%FC zup%%%k_PEvodn}uxB9NYUn_UC!#BKx&SvdBm4D6J+j)b;LA81=6`6h6)sH?-y-E&2 zg1|w!n(vGHIs@&b%@+ouADVFLQ`_*^KJ@q2_ZhSBZpS}aAD126$`gnlO0!8aaefBm zL0oF_6QZBkViV%nO9+(uzJEgS%qlw$@j=OWUjE9{TA}bww4T z9ow{TR_H%{gGszrFu}H7FyBd6)XyUV*L2hEN1v&^E-6pxn`h>4vZzAA% zw8x{mbUp}oT|da-f#&*xUvqWqS0KZ{51>CUsKZgMgCXWo_&T8HHE^;Hed!U;qy1&x z82>O^!-qVo7Vt<5{JaPlfqb}4bLWRWXA{mw`nfbT=7}p%u1s~j6|78^PjTn|4Jzg! zILjOH7$3$P@fF%fVV?;v7sB*PkGp3LV;uo71EZVpNlie8TLcvf)s+V_7Xg4l ziA@85(M+^~GMP6Y~}I-FsF23bV}= z<5PnGAGv(tKDpHBZ*eW$Jq7yTub8f86IVVV-hS>X`48;X zpA6nJ`vhhOas0(!{f8VN=Kp;XkWSo)tv?Vg;Mg01WKkFzqFRmu>#HRb=efA--79@2 z8bzZRVHEc}4_*b@3pAdH_x&WNIP%RqI(WD`E&YRs?i1a3UYk?SQBf{q!OUM&3LbtY z?Q3~A8L=0Wu^lsg4vcOF$`skSoW_FXrCWYBi}PQ2mDkMlYMm4I+mFB3llN4=JL7pe ziS5pnu3fSm6Ats--JU%fXc`zn<<7qB-})7^@JP$Y#IjG@Uhcd3cI;%$?qR~5}9=lcc+_m%r^8U>X z>~kq+WS#J%oV$E@P72Ndf;a+5D0nE+Y>E}K6)C=tkpYqRID;CSIUgpi2Ft%mwN=tq zXD2E96UGrD!ldJ$WWOuZ%kyUNfNDkeHYZ>3n@4c+zZd((kWvbq)h`Y#?Q3+|7Dw44 zJYN{zUgbXR)DP_JU|)Z8Ep`ucZxJiqzFel=KD=vF_JgyJRna}=jD8R+@}u1upM16R z)(VpW{5P2YF!6t5bXkF*zvdnMH{S9OM)ifE6)|x#aDNU1YiOEr70w2=LXOMFfao_ zKmY?P7zAKu=VSpegIGWSo!?rL&IZ;NMuN6x)+PYpZ;7Cjk;yZ0%=sL#FTClCeJ^DO z5DVLHfv|zSgo%Zjx%2O4ev6cxO>9&F9Dm&ZQjqww@G`>Zv^JCHj$de7#lI2EFHH0c zx%)z4|I;0RwC7^z{F`!Cc62d$srxMzGH^2a&1wI4u6d!Jh0P5d|MY;2!9U8(EG)lU z_*Z`em|te(57t=J_Bq?m!qyDHq-J3&XzOJ0r{MQ}Y8J-M=1$L!WMO7!}UJvw#^vEI?K;=ie{?Rp(zzU=CJBAO{G@!VCa&fEj@- zY|Lz60GN}55yT2&=HLLZvjZ7{%$#g53M|Zw94u^{EF1tfb~eV}!WWmbvoSNiD1g`i zAWl|B&gc8sUjh`&#>U7FW`41ljg6g=8N|T}eDMc6D+lAVjW0^<9M5tfC(H9C7|6m1 z1hKQQz6>1v+z!W!1ur=QU}oTRznmP;HSEtOaI!qx@L#?2=cvHUAVzjh5a(|Xus(Os z27We+jg^y;1v9ffdyDm@a~3ubBajWq&cXcL9}oayf1U)E-(LAIMNW3s z=Yjm59xw|FBm2vcK+hIFdxjaz`aHb9wGRZaKFgU|KpfAJ$p!*4a&m%S=Jh!};MwQD z$Md%~UOHmqWPY~(w`cww(0@HMKc^1-@nAj2w4I8r#Y+w+fceEAe-C};zsLTcDGYz5 zVf@ED(7&fJus>VzFDVR%8dlbC)Lh%HMq|GF=SrNCY9wssh$R?1P;k#o)mcyF8_&;Z zCC%pRkx^NaWz)DMs@!tC3@w(D|l!wb*1|rarpD7 zG45FCid(jUHTfa?D6jnNFYnIZ;2Wjo z#XeHR#X5CrpTZ0~waNK3cJ7jfEJwgy#NE_<6FWQ{+w1IOS<$87sm+?fk@-aKz1i$U zb@oJWiBe;$%H>+(J*WnlGMyog4s3k8r|oAYH`)LmW|cK2?bt&9IkbxI8X759YVLpZ zHBuBxt~%#yBOTV>+|1JS{P*ua7@N47x$6RpbYx{I!~s}EWw>5jIjPH`vVD~dgKguN zWuyKKX3@(o9GWZk6^)*rhhAtMCHGtJi9CVd<|YhGPJ5b3AWp1Q|ZqHgKdzm zwdzegz&9kuera;;?F=0MoH+mK)rLmMhtOz89Hi@FuVsYy zq4Cov1h@y-OEXKD&T%lZI(*f|pFfk&p|gJYh{gn8qw2EA*+@ZWWof; z!S$M(Y2oe64YCNAuEia`V)qcr;t=#k+1W4k0u2S-%E4-PANtyMnet35N_)?`TQI_-7uB~w zby|&VZm#m{j}Pg=R$XkTO|#-brN%mLcJookGGn?6YfdE87j4-(UyAT9l*uUPsVO|9 zz5IB}jmMA&K`8|uBSfgt91Xvs4@*gR+u%Q(?*FXgK8%93KsV?-)@{#{`@G>@pU(2W z;0^J6PIXSE&o!6ir7Bs16P9lGo*!k?A#-kTTWL-u-HeFJBG=j*AMx*{JUR+<@xi6~ zZ{`Z!bSCVQ56KKa+ZlbA(<83%*E6vmK&Lil7LsP=zgS(Jzm7*G=4ht!IUe8aIXT(f z6x4Oty7MHF)w_9U#hscm8a@J~-;!$vmVY5-5fT z|J8(axSJgE8+T!9cTSg%N+U9LZY!%ms3JyE0%W3g5l* z-sa#&yjXJk!XiPHq5LW8FPtZRr-#C+{%<-^QB|3q!$M_M?7eCnr6v-#h1$I|sJNDH z>LYVCywXqKKU;dhf(}NM5z;G2UZ+W0>m$=+Jaac9+PTQ)aLR2Qxr-JXi|_V}9o)K@ zqYOjx?JWvt*2K{d<`_Kg!QYpVC0K5w*cwDP7$y+*J@P)%jYp4wBX8(V^SbU%r? zZo8q|OwQD)S!dFo0>2FU5J=mc+w8-iUf!>OBkX>}SngcR@*90CH6-Bu28DVMan;md z|B07#{EE=9v)3h4R*8W}?|@hr3%k9%YC%h9tuU#N=ZBJ_IRIkdfSnEG!se_7(V1Sx zGt*RmT7Kkxc9VBJyy9u>C8f>H*8ZWPlwz#|rkz-2P@sc5F(St+-&w2SilaI7h6SQof)3I4PB_DvpK8IPCV4}fJ|~MrxIv?B ztVy@0H*KDaZ_*06lXQPJ#>~gTwfB(>KIOF2K5X2LJ^WOs2JRKR-wbv~lTbT-cz2Ma zC)CD$F&_R@P3%Fp`z6%7(W}j_E$4Lka0BxK_L7*p(ulOtsjz_2!&thiz0IdTi`<4k zyY2J0I|jSMBSxqF?LCR@@k@9*Wwv!>o0Z9iS{mggmv>uM`0JFAB#r7Ey28w)g`_&C zMnNq?exlU#WPyLG%Oo1H_1x}D{QkKG>9>L(Cv@C3R}}b_vLF- z`$keI>lfv#TkjIXAhCEv#5Rfmanh;XJ5w~s6Y6B02MWvKcGXn<)3(MWV(e4c7QAPM zz1_q{#rJ4qzeK%Lee_!B_*l~-O8ZbYsA7YrRc@biL{B8MARZ?mmr?I8+3pXSqFDGg zna@55b*f|Ihj=ZCmJ#3#~+L?;mts>l&@;w}vl0;%x!Yi~l7#}_nsXy%X zWvH6VmV#W7>eu1r^g;>N3mSBpPL`rQ*%wFTtH)GV)Gvxow_NtquM6MsbX=Xe#C_0R zt;DSFrC)CHz^6P{>NQ*3gYE#AL+ZASt)P*F({r=|__moKbXVWZAx21=;>QumA?G6- z{j}Lm#fuvi7FVibq1T#BbvL@PmkKk#G^2!@nAdQ6OBgDVltgcFSq|8XPZdeuOkxF{ z*(j=;_C(Z3j)1nyEI$IIDGK;4j6tCpa1@x0Uy>5YIBU%%>fr&Ynen&R>j->0onm5g z)1u}sy_lP!Tu`4<)jN|}?F)@JzAEh|qT%idEX8Tcz{JyV$p^&^LJH2MuxxT~DB5u~ zO?J`6K~+Oda>j&7Fr;PiBtbg3aheRAI?(qDGI+x8$$pN^kVOvFtWZwDccfdZ$JpZD zpn;lEA0;^NOzjL4YykN+!S9U*uv`O?x-};=GZL*ql&QB|k@`_gBOZQx!Buvi^YjWW zhx#nL=h|Qfclu05^BC~sxK0D5N3lUH@d3;9Z^Z<2u9 zj%BF%M75(9k%GE8St35F8PyaG3z6g-kT*57cFKVw zT7hg6y~cBheWIW#PS&@4D-#f&Iv~Z&!gNFbI<{;EtYL{yQ3`9hYuyJx0cA;IN*3x# zYMGWMc&Ix9CI~bTGaUD~1soT(-H^yAayHR}(7mCF{vT=t?utpd1+&SKhYbNFWQVzD31=dUX-1nVn=Hlc)iKb)bQ1=#}Q#8eMl$P>KY_03^h!8yJ^5bkNLb4JL)|HIaWMSi@$EBa*FxJ@QRS zhL}-l;*0-^BRMc7v`L!tc zn!?L=Nr zNFqnZqx*1vif@?y6gQ$f&#PPl-70t3R@z(3_6baEq~<%)#8qS(x)xK`_iW;9Zsj6#HQxT{%>cKSonV2Msv8D+ZLiceYK>qz}#w6C^+ zX>)%&d6`r-&V~4(?6Ui~WNKFy4=XuqI|qgEL(`i=x~^XKQvGoHgH6>{JGrR-n4cH7 zc8`!k-V$DZ+^Z>KbzNdsSOsB4bFVK=KP6f-V4*5bP`;PNl)$7$ITENCbFxbh{4zfH z?$~UB_hD$Y@yryIx3o=_X__lxGk`Rma4oV|WXln8qS893kS_PGfI)ZyJdNU{C&m@8 zCqIj%!re@_J2;#{Lu6hgus>*xXCFknG<#)CO0d`7h{`91MRldnPb*!d)NzaxoZ>3$ zk{i;2kMcTWkr!iA}QS; zt)@bXeRVa)N?%>`P?0n9ndk{9)H<;z@p}(CZtZXvL+isX{pw{9Zg}@8BypA!b5JwN zi?y8{2ru$7OB&==sgyPh&Xx0+ma-PVK@BXnvKvr!Z?GF+*8lMQOe86N6tcA2;Vpd> z!5|C{W2Sb|Qsk)7vF(k5C;;`E#oOG_^NnNF?O}a-JNcO?)$DA=Z0p;&RhX7{e+=>c zN|@nf=$?9ZsA4UnF4?YMhCg)&x1nh9LBBPXH#P2o;<)L^Ygm21Pnnn31cE_#ize*P ztf$RPa7PsEeHH9U1!cVv9w{A4$B#Zf*5%w43`*r4X;oOE2SJ2F0qm2zVONj*^)~y}+2>SXJzRn0n3U7$6)+hG?n9%K(+%@Pl z#JLu$$o+21LRb0)z@b|YOz1uLsuG~V++W0g5GHh0Vf;vUO8oFNs=Z+L-PNb|JlrSuG+w71tmDJ% zQ+a^M8}t>EAL*dobG5X7%V$vCedGeS{OQv{c-L(t9YFDbg1<+zhxY*Z6ykEyoSNL; zhhoIn$8XB3U7_FrX%wac$ycIM>3C|BgpHHcZq_W4;PQ$QlW}-ykIBhdcI^iJ_0Qh3 zXtYPtK31sc0Fe)SsFA~!a0->%!>gUgjV$JW&E>3XZ6x4tsN)QKOy_SZ-)5?Uh@p7{s|ubPy2RtVrA|8fk;8eH`six z!C}#q%86)`-*q?+gpKYXSRJ_X(Q{*nudl*4isD^g@pqQ5;5BnxjJ2kdVI3PxK#5hv zvp~#l5wLdQGsR=7Ae&B}x_-0cjn>8b>NYnM;&gmKwty2BouF+rr+;Of#KH&nih9|v z6WEA&&?X1vLr}K-v>L%EMAL+Vv|xM%x}9|pqjo%PW2fQowaNbWh?Si#{^hK3J?Y%g z{vxjr*n}8XN6&3udia{_j7g2Cant(Z3QvSCT2eEKCZw)&m?q@%B!x4uCr$%nc9^Zw zP*r*8Hs~DL6Fff!(pnE{B%K*f^Fldrk|>$ei)}adk$j9}16f@&ioT~gl2x#ad!W3L zzLftMWPhhc0DE}IXZ8V^G?IgfeJrVvi?ii;g(<7(*BRpT%HQeV=jXT2|1m!-%q)K* z>!250@ZX{2{}x%-R25YeSEZA)bGCcI&KVR<%v`Ju{)xZ;iLbvX{BO{8@UsC7EF7Ew z5XUq8#|#9s|4-ohvkvEPWci=yI_Dn{_21C-=XQSU{IAgUKlXL~bNkkxk^KLGuK!=% z^WS6a%zupNzhLaY=jQ(jWB;$1>i>V4?HMd*dj_eW$+zbKVPScBil1Rz(BI){Fz6Zm zWqrZGU%>DG{>94iN8KL?_%jI2_R{8`XE5_Kb`5-i)n8y`762>zGYhU0(u7Xm7=3RYb}wEmSlnj;e# z{F*^F&DeE+1TrH)Q+;DFnlSPkS;mJ~=M zJ)mnB8FT=kJH&i7kTufV{RRN!=<*B(*Ofw@7}xGa_*W;ZTEJpbMpkzywMn4Aokb&P zAFhg0l>@8gd0FbPWiDqsXu?P@v^}0kDQabHQ)G!xox>_{J=I2()`QGbtdj@c*+)gN z3`6rVKMu?};~lai@r-v&@JoE&IA@lJ)jjVWsC_7miBOHjr7`NwMFaNpWRimvB0Bd4 zs$iKHxXl(}zJYKm+uk4i^pz9IEct-RUA*Xfg{EB`Y$;q{cRNJ=;YTTX{_9wh+WJzZ z1!2BRp4cy4ydj^n?{Qtp{qJj3vJ<^4qotC)Us<>L>Hde0p_c&q^J56e`PawLpS<5c zpE-3!6Vu<%@Sh+*@XuY6|GqQw1>sk+@Gt>@z<-cV04-(!2mtznr&F}Edzs|lG4rA+ zX=`c+c#hqF#L!>=Bf>~u|N1FA^ke!*2oWH&qdEu(1f4*^qfo}+QNj3K(*K zeEk_Y#(o^K($6>G7ZV_d>@|flKNLJ0BOr$ofudyAFC + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + FRONTEND + BACKEND + + + + + + + + Decoder + + + + + + Renamer + + + + + + + + + + Instructionflow + + + Reorder buffer (ROB) + + + + Issue + + + + + Port 1 + + + + + + + Port 2 + + + + + + + Port … + + + + + + + Port n + + + + Pipelined executionunits + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/slides/assets/imgs/20_foundations/cpu_big_picture_truncate.svg.pdf b/slides/assets/imgs/20_foundations/cpu_big_picture_truncate.svg.pdf new file mode 100644 index 0000000000000000000000000000000000000000..3830ae91ec53916fb2369987401df65893dc1093 GIT binary patch literal 16068 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
~_1~+b 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

hJ`mNe+R( z5~k^U;pR29!Cp;9Wv{xq1lFaeEXKuhPm8F$n_}G0uCBwYh|Py)tTA*I^^}oX-Ho8YJQzK}# z6gF~O2<$p!Io#LOKgge~o^G=hHu7x`?D9c{GNG}~Mib!KN}#b4O0$2DD|PNkP{~?7 z91DP0m?>3lhpWKWHl{FkfII4FSu(d@d3^7?ocBiCz==X_ixs{a7pLT(ZY`#W_Xg_K z%bEpLl{dMMj12Dg{hDWMkF|TOvIpuD+Yatdq}zhrME%m&#We~pPgXsWT zXCCwA`o6CxXTN98!k}+_->28Ji|Ha!jwgRp#uHV>46NR5~kHIS*^KQ_&WQ>Urp1_M9O$ zTyjgs^RQ|&Jndj$0NyjyTGR!2j@t!gI7c*-1fMUWtNLJgF6D(Td)bc*^Nb3EDcw>Z`GU%JS`pKPrCVN0Tcz(35>b80) z7qPA=nqNd35BCKI-J^bOMhp56fZXG^?mzd`KLB!&M~%niZ$#rS2BydL%z&Lg2ut+*E>tr=tTzBBM+#5rgPq1n)|k(eX=9_p=>#z9U8|2s;RO637J&zPjJfwXQm-;mTITlXNG;&hQmw=q201YY z)JG*7hy1{`!X zkkZl+Wsu>0uyl{a@5^nh{{CG6oHUl9 z5Dy@gI>{d^2^ZePeo9NYE-~*6`H2bZ`tA}b76Hl698v2zm8Wi1I(0n@Gfp`*{xPvV znm-vb^N@0+k!tl#G^M5KcES|-Ys*NYn$6P^+GFdA`CDQq5(>CN3fkG~{pr*9AKo=0 z(1^rR;UTzbR4ZviukX4psEk*9YT7`Dui(UeS<@rOzw)xUO`21wp9Kj)v|ivA8aPp` zgSvUsDIrI^&&!|nk#!l^r`uZ5hiY^+?M#o6k%n+J_gl zbVVhQDFrO-i3@6iyf)pb72gAc3o>u;U0M8Zs@7PTZkJgYb+6!EFy5K|hX>E&ApH5@ zfr7aHe(?Oo&-`nZX(*YR{a&?yMggurSH*uArALfb+0w%l0D=9%4FI&k00;o`2c4p1 zZ~r*Pe-FN-otZrV@;CMI_i=Ay1A~kE%n-j+zo#M~a1|m11cDsGA-gg~6VOHHSs_xF zynAJY@Aq6BDZ1hg!N~L}G7Tx#(lct6F2Mk@=+S66oOPyGT~7gqg&35(09VjEBr~x& p_*dY$Jv6i@JX2@`|J@r-&W4W8ZjKKf1+#NJbdZKdR9+0_e*pkun~?wj literal 0 HcmV?d00001 diff --git a/slides/include/macros.tex b/slides/include/macros.tex index 7b711d3..77d48f2 100644 --- a/slides/include/macros.tex +++ b/slides/include/macros.tex @@ -1,8 +1,8 @@ \newcommand{\uop}{$\mu$OP} \newcommand{\uops}{\uop{}s} -\newcommand{\eg}{\textit{eg.}} -\newcommand{\ie}{\textit{ie.}} +\newcommand{\eg}{e.g.} +\newcommand{\ie}{i.e.} \newcommand{\wrt}{\textit{wrt.}} \newcommand{\kerK}{\mathcal{K}} diff --git a/slides/include/packages.tex b/slides/include/packages.tex index d0dc2ef..2a2be1c 100644 --- a/slides/include/packages.tex +++ b/slides/include/packages.tex @@ -39,3 +39,12 @@ \subincludefrom{#1}{main.tex} \resetgraphicspath{} } + +% Temporarily set leftmargini +\newlength{\STASHleftmargini} +\newenvironment{tightitemize}[1]{ + \setlength{\STASHleftmargini}{\leftmargini} + \setlength{\leftmargini}{#1} +}{ + \setlength{\leftmargini}{\STASHleftmargini} +} diff --git a/slides/main.tex b/slides/main.tex index 7b50b0c..c26c525 100644 --- a/slides/main.tex +++ b/slides/main.tex @@ -21,7 +21,7 @@ Université Grenoble Alpes, inria} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{document} - +\selectlanguage{english} \maketitle{} \begin{frame} @@ -29,7 +29,17 @@ Université Grenoble Alpes, inria} \tableofcontents[hideallsubsections] \end{frame} +\selectlanguage{french} \importchapter{10_popularization} +\selectlanguage{english} \importchapter{20_foundations} +\importchapter{30_frontend} +\importchapter{40_cesasme} +\importchapter{50_staticdeps} +\importchapter{60_a72combined} + +\begin{frame}[standout] + \Large{}Questions? +\end{frame} \end{document}