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{column}
\end{columns}
\pause{}
\begin{center}
\textbf{\alert{These pieces can (mostly) be modeled independently!}}
\end{center}
\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}
\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}
\item Dependencies can stall execution
\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 First possible instruction is issued
\end{itemize}
\end{tightitemize}
\end{column}
\end{columns}
\end{frame}
\begin{frame}{How do we get insights from this complex system?}
@ -101,13 +113,16 @@
\item \alert{\uica{}} and \alert{\uopsinfo{}}: research, good accuracy.
Intel CPUs.
\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}
\bigskip
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}
\begin{frame}{When I started my PhD\ldots}

View file

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

View file

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