Enhancements, fixups

This commit is contained in:
Théophile Bastian 2024-12-01 12:17:32 +01:00
parent 829fc0f0f4
commit bbb4fdad42
4 changed files with 423 additions and 17 deletions

View file

@ -31,20 +31,32 @@
\end{tightitemize} \end{tightitemize}
\end{column} \end{column}
\end{columns} \end{columns}
\pause{}
\begin{center}
\textbf{\alert{These pieces can (mostly) be modeled independently!}}
\end{center}
\end{frame} \end{frame}
\begin{frame}{Dependencies and the ROB} \begin{frame}{Dependencies and the ROB}
\begin{columns}
\begin{column}{0.35\textwidth}
\begin{center}
\includegraphics[width=\textwidth]{cpu_frontend.svg}
\end{center}
\end{column}
\hfill
\begin{column}{0.64\textwidth}
\begin{tightitemize}{0pt}
\begin{itemize} \begin{itemize}
\item Dependencies can stall execution \item Dependencies can stall execution
\item Maybe instructions further down can be executed right now? \item Maybe instructions further down can be executed right now?
\end{itemize}
\begin{center}
\textbf{\alert{$\to$ Out-of-Order CPUs}}
\end{center}
\begin{itemize}
\item ROB: circular buffer of \uops{} \item ROB: circular buffer of \uops{}
\item First possible instruction is issued \item First possible instruction is issued
\end{itemize} \end{itemize}
\end{tightitemize}
\end{column}
\end{columns}
\end{frame} \end{frame}
\begin{frame}{How do we get insights from this complex system?} \begin{frame}{How do we get insights from this complex system?}
@ -101,13 +113,16 @@
\item \alert{\uica{}} and \alert{\uopsinfo{}}: research, good accuracy. \item \alert{\uica{}} and \alert{\uopsinfo{}}: research, good accuracy.
Intel CPUs. Intel CPUs.
\item \alert{\ithemal{}}: machine-learning based. \item \alert{\ithemal{}}: machine-learning based.
\item \alert{\gus{}}: instrumentation-based code analyzer (not
static) $\leadsto$ slow. Access to mode information. Made in the
CORSE team.
\end{itemize} \end{itemize}
\bigskip
Except Ithemal, \alert{all} are (to some extent) based on manually-made Except Ithemal, \alert{all} are (to some extent) based on manually-made
models! models!\\
\pause{}
\bigskip{}
\begin{center}
\textbf{\alert{Ambition:}} \alert{automated} model generation.
\end{center}
\end{frame} \end{frame}
\begin{frame}{When I started my PhD\ldots} \begin{frame}{When I started my PhD\ldots}

View file

@ -67,7 +67,7 @@
\item{} Measure to verify \item{} Measure to verify
\bigskip \bigskip
\item{} If so, \textbf{\[ \item{} If so, \textbf{\[
\mucount{i} = 3 \cyc{\kerK_{k_0}} - k \mucount{i} = 3 \cyc{\kerK_{k_0}} - k_0
\]} \]}
\end{itemize} \end{itemize}

View file

@ -36,6 +36,7 @@ loop:
\begin{itemize} \begin{itemize}
\item Instrument full kernel $\kerK$: for each basic block, \item Instrument full kernel $\kerK$: for each basic block,
$\operatorname{occur}(\text{bb})$ $\operatorname{occur}(\text{bb})$
\item Measure total kernel time \textbf{in context}
\item For each tool \item For each tool
\begin{itemize} \begin{itemize}
\item for each bb, \item for each bb,
@ -47,7 +48,6 @@ loop:
\operatorname{prediction}(\text{bb}) \operatorname{prediction}(\text{bb})
\] \]
\end{itemize} \end{itemize}
\item Measure total kernel time
\end{itemize} \end{itemize}
\pause \pause

View file

@ -0,0 +1,391 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="165mm"
height="88.896568mm"
viewBox="0 0 165 88.896568"
version="1.1"
id="svg1"
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25, custom)"
sodipodi:docname="cpu_frontend.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview1"
pagecolor="#505050"
bordercolor="#eeeeee"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
inkscape:zoom="1.3113872"
inkscape:cx="344.29192"
inkscape:cy="302.3516"
inkscape:window-width="1916"
inkscape:window-height="1041"
inkscape:window-x="1920"
inkscape:window-y="18"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" />
<defs
id="defs1">
<marker
style="overflow:visible"
id="ArrowWide"
refX="0"
refY="0"
orient="auto-start-reverse"
inkscape:stockid="Wide arrow"
markerWidth="1"
markerHeight="1"
viewBox="0 0 1 1"
inkscape:isstock="true"
inkscape:collect="always"
preserveAspectRatio="xMidYMid">
<path
style="fill:none;stroke:context-stroke;stroke-width:1;stroke-linecap:butt"
d="M 3,-3 0,0 3,3"
transform="rotate(180,0.125,0)"
sodipodi:nodetypes="ccc"
id="path1" />
</marker>
<marker
style="overflow:visible"
id="ArrowWide-0"
refX="0"
refY="0"
orient="auto-start-reverse"
inkscape:stockid="Wide arrow"
markerWidth="1"
markerHeight="1"
viewBox="0 0 1 1"
inkscape:isstock="true"
inkscape:collect="always"
preserveAspectRatio="xMidYMid">
<path
style="fill:none;stroke:context-stroke;stroke-width:1;stroke-linecap:butt"
d="M 3,-3 0,0 3,3"
transform="rotate(180,0.125,0)"
sodipodi:nodetypes="ccc"
id="path1-7" />
</marker>
<marker
style="overflow:visible"
id="ArrowWide-0-4"
refX="0"
refY="0"
orient="auto-start-reverse"
inkscape:stockid="Wide arrow"
markerWidth="1"
markerHeight="1"
viewBox="0 0 1 1"
inkscape:isstock="true"
inkscape:collect="always"
preserveAspectRatio="xMidYMid">
<path
style="fill:none;stroke:context-stroke;stroke-width:1;stroke-linecap:butt"
d="M 3,-3 0,0 3,3"
transform="rotate(180,0.125,0)"
sodipodi:nodetypes="ccc"
id="path1-7-3" />
</marker>
<marker
style="overflow:visible"
id="ArrowWide-9"
refX="0"
refY="0"
orient="auto-start-reverse"
inkscape:stockid="Wide arrow"
markerWidth="1"
markerHeight="1"
viewBox="0 0 1 1"
inkscape:isstock="true"
inkscape:collect="always"
preserveAspectRatio="xMidYMid">
<path
style="fill:none;stroke:context-stroke;stroke-width:1;stroke-linecap:butt"
d="M 3,-3 0,0 3,3"
transform="rotate(180,0.125,0)"
sodipodi:nodetypes="ccc"
id="path1-5" />
</marker>
<marker
style="overflow:visible"
id="ArrowWide-7"
refX="0"
refY="0"
orient="auto-start-reverse"
inkscape:stockid="Wide arrow"
markerWidth="1"
markerHeight="1"
viewBox="0 0 1 1"
inkscape:isstock="true"
inkscape:collect="always"
preserveAspectRatio="xMidYMid">
<path
style="fill:none;stroke:context-stroke;stroke-width:1;stroke-linecap:butt"
d="M 3,-3 0,0 3,3"
transform="rotate(180,0.125,0)"
sodipodi:nodetypes="ccc"
id="path1-53" />
</marker>
<marker
style="overflow:visible"
id="ArrowWide-1"
refX="0"
refY="0"
orient="auto-start-reverse"
inkscape:stockid="Wide arrow"
markerWidth="1"
markerHeight="1"
viewBox="0 0 1 1"
inkscape:isstock="true"
inkscape:collect="always"
preserveAspectRatio="xMidYMid">
<path
style="fill:none;stroke:context-stroke;stroke-width:1;stroke-linecap:butt"
d="M 3,-3 0,0 3,3"
transform="rotate(180,0.125,0)"
sodipodi:nodetypes="ccc"
id="path1-2" />
</marker>
<marker
style="overflow:visible"
id="ArrowWide-6"
refX="0"
refY="0"
orient="auto-start-reverse"
inkscape:stockid="Wide arrow"
markerWidth="1"
markerHeight="1"
viewBox="0 0 1 1"
inkscape:isstock="true"
inkscape:collect="always"
preserveAspectRatio="xMidYMid">
<path
style="fill:none;stroke:context-stroke;stroke-width:1;stroke-linecap:butt"
d="M 3,-3 0,0 3,3"
transform="rotate(180,0.125,0)"
sodipodi:nodetypes="ccc"
id="path1-0" />
</marker>
</defs>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-5,-9.9999999)">
<rect
style="fill:#c0e3f5;fill-opacity:1;stroke:#000000;stroke-width:0.0133841"
id="rect1"
width="149.98662"
height="79.986618"
x="20.006693"
y="10.006692" />
<text
xml:space="preserve"
style="font-size:7.05556px;line-height:1.25;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans, Normal';font-variant-ligatures:none;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.264583"
x="75.22686"
y="25.236549"
id="text3"><tspan
sodipodi:role="line"
id="tspan3"
style="stroke-width:0.264583"
x="75.22686"
y="25.236549">FRONTEND</tspan></text>
<path
style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#ArrowWide)"
d="M 5,40 H 33.74813"
id="path4" />
<path
style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#ArrowWide-0)"
d="M 64.709525,40 H 79.042893"
id="path4-6" />
<path
style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#ArrowWide-0-4)"
d="m 109.70952,40 h 14.33337"
id="path4-6-4" />
<g
id="g13"
transform="translate(0,-3.1049999)">
<g
id="g7"
transform="matrix(1.000053,0,0,0.6666667,4.9976138,14.368332)">
<rect
style="fill:#69b2d8;fill-opacity:1;stroke:#000000;stroke-width:0.00866583;stroke-dasharray:none"
id="rect3"
width="29.991335"
height="14.991334"
x="30.004333"
y="35.609333" />
</g>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;line-height:1.25;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans, Normal';font-variant-ligatures:none;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.264583"
x="37.847084"
y="45.209263"
id="text5"><tspan
sodipodi:role="line"
id="tspan5"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans, Normal';font-variant-ligatures:none;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke-width:0.264583"
x="37.847084"
y="45.209263">Decoder</tspan></text>
</g>
<g
id="g14"
transform="translate(0,-3.1049999)">
<g
id="g7-0"
transform="matrix(1.000053,0,0,0.66658008,49.997613,14.372066)">
<rect
style="fill:#69b2d8;fill-opacity:1;stroke:#000000;stroke-width:0.00866583;stroke-dasharray:none"
id="rect3-6"
width="29.991335"
height="14.991334"
x="30.004333"
y="35.609333" />
</g>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;line-height:1.25;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans, Normal';font-variant-ligatures:none;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.264583"
x="81.988571"
y="45.122448"
id="text5-1"><tspan
sodipodi:role="line"
id="tspan5-5"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans, Normal';font-variant-ligatures:none;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke-width:0.264583"
x="81.988571"
y="45.122448">Renamer</tspan></text>
</g>
<path
style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#ArrowWide)"
d="m 140,44.542893 v 7"
id="path17" />
<path
style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#ArrowWide-9)"
d="m 95.434788,62.042893 v 7"
id="path17-4" />
<g
id="g15"
transform="translate(0,-3.1049999)">
<g
id="g7-5"
transform="matrix(1.000053,0,0,0.66658008,94.997613,14.372066)">
<rect
style="fill:#69b2d8;fill-opacity:1;stroke:#000000;stroke-width:0.00866583;stroke-dasharray:none"
id="rect3-69"
width="29.991335"
height="14.991334"
x="30.004333"
y="35.609333" />
</g>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;line-height:1.25;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans, Normal';font-variant-ligatures:none;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.264583"
x="137.17778"
y="43.455025"
id="text5-3"><tspan
sodipodi:role="line"
id="tspan5-7"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans, Normal';font-variant-ligatures:none;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke-width:0.264583"
x="137.17778"
y="43.455025">…</tspan></text>
</g>
<text
xml:space="preserve"
style="font-size:7.05556px;line-height:1.25;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans, Normal';font-variant-ligatures:none;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.264583"
x="20.037083"
y="28.754669"
id="text10"><tspan
sodipodi:role="line"
id="tspan10"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;font-family:Sans;-inkscape-font-specification:'Sans, Normal';font-variant-ligatures:none;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke-width:0.264583"
x="20.037083"
y="28.754669">Instruction</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;font-family:Sans;-inkscape-font-specification:'Sans, Normal';font-variant-ligatures:none;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke-width:0.264583"
x="20.037083"
y="37.57412"
id="tspan11">flow</tspan></text>
<g
id="g12"
transform="translate(0,-2.4222487)">
<rect
style="fill:#69b2d8;fill-opacity:1;stroke:none;stroke-width:1.01708;stroke-dasharray:none"
id="rect11"
width="120"
height="10"
x="35"
y="54.922249" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;line-height:1.25;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans, Normal';font-variant-ligatures:none;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.264583"
x="65.290894"
y="61.694405"
id="text12"><tspan
sodipodi:role="line"
id="tspan12"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans, Normal';font-variant-ligatures:none;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke-width:0.264583"
x="65.290894"
y="61.694405">Reorder buffer (ROB)</tspan></text>
</g>
<g
id="g16"
transform="translate(-0.43478775,-1.8886414)">
<rect
style="fill:#69b2d8;fill-opacity:1;stroke:none;stroke-width:1.01708;stroke-dasharray:none"
id="rect11-9"
width="120"
height="10"
x="35.434788"
y="71.888641" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;line-height:1.25;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans, Normal';font-variant-ligatures:none;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.264583"
x="88.009926"
y="78.90609"
id="text12-2"><tspan
sodipodi:role="line"
id="tspan12-6"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans, Normal';font-variant-ligatures:none;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke-width:0.264583"
x="88.009926"
y="78.90609">Issue</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans, Normal';font-variant-ligatures:none;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke-width:0.264583"
x="88.009926"
y="85.961639"
id="tspan15" /></text>
</g>
<path
style="fill:none;stroke:#000000;stroke-width:0.789922;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#ArrowWide)"
d="M 45,80 V 98.140532"
id="path22" />
<path
style="fill:none;stroke:#000000;stroke-width:0.789922;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#ArrowWide-1)"
d="M 78.56817,79.970409 V 98.11094"
id="path22-0" />
<path
style="fill:none;stroke:#000000;stroke-width:0.789922;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#ArrowWide-6)"
d="M 112.13634,79.970409 V 98.110943"
id="path22-2" />
<path
style="fill:none;stroke:#000000;stroke-width:0.789922;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#ArrowWide-7)"
d="M 145.70451,79.970409 V 98.110943"
id="path22-6" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.05556px;line-height:1.25;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans, Normal';font-variant-ligatures:none;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.264583"
x="193.66086"
y="24.500828"
id="text36"><tspan
sodipodi:role="line"
id="tspan38"
x="193.66086"
y="24.500828" /></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 17 KiB