From 8b5923fdef9e6755cf7b920565422938cdcb11a9 Mon Sep 17 00:00:00 2001 From: Derek Christ Date: Tue, 17 Sep 2024 12:18:07 +0200 Subject: [PATCH] Add FIMDRAM slides --- images/dramsys.svg | 43 ++++--- images/ems.svg | 224 ------------------------------------ images/gemv.svg | 78 +++++-------- images/gemv_0.svg | 58 ++++------ images/gemv_1.svg | 58 ++++------ images/gemv_2.svg | 58 ++++------ images/gemv_3.svg | 58 ++++------ images/gemv_4.svg | 58 ++++------ images/gemv_interleaved.svg | 113 ++++++++---------- images/gemv_normal.svg | 95 +++++---------- images/rptu_black.svg | 60 ---------- images/rptu_white.svg | 70 ----------- main.tex | 98 +++++++++++++++- monitor.sh | 2 +- 14 files changed, 323 insertions(+), 750 deletions(-) delete mode 100644 images/ems.svg delete mode 100644 images/rptu_black.svg delete mode 100644 images/rptu_white.svg diff --git a/images/dramsys.svg b/images/dramsys.svg index 5bd11aa..0df08f4 100644 --- a/images/dramsys.svg +++ b/images/dramsys.svg @@ -8,7 +8,7 @@ height="200.54208" viewBox="0 0 544.99329 200.54209" sodipodi:docname="dramsys.svg" - inkscape:version="1.3.2 (091e20ef0f, 2023-11-25, custom)" + inkscape:version="1.3.2 (091e20ef0f, 2023-11-25)" 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" @@ -1791,15 +1791,15 @@ inkscape:pageopacity="0" inkscape:pagecheckerboard="0" inkscape:deskcolor="#d1d1d1" - inkscape:zoom="0.84987348" - inkscape:cx="436.53557" - inkscape:cy="289.45485" - inkscape:window-width="2194" - inkscape:window-height="1158" + inkscape:zoom="2.1230186" + inkscape:cx="494.57881" + inkscape:cy="182.52313" + inkscape:window-width="1536" + inkscape:window-height="888" inkscape:window-x="0" inkscape:window-y="0" inkscape:window-maximized="1" - inkscape:current-layer="g1"> + inkscape:current-layer="g276"> - PIMHBM + + + + - - -image/svg+xml \ No newline at end of file diff --git a/images/gemv.svg b/images/gemv.svg index 391ccf6..f106efc 100644 --- a/images/gemv.svg +++ b/images/gemv.svg @@ -5,10 +5,10 @@ version="1.1" id="svg1" width="458.20844" - height="289.9837" - viewBox="0 0 305.47229 193.32247" + height="289.98373" + viewBox="0 0 305.47229 193.32249" sodipodi:docname="gemv.svg" - inkscape:version="1.3.2 (091e20ef0f, 2023-11-25, custom)" + inkscape:version="1.3.2 (091e20ef0f, 2023-11-25)" 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" @@ -23,10 +23,10 @@ inkscape:pagecheckerboard="0" inkscape:deskcolor="#d1d1d1" inkscape:zoom="1.409392" - inkscape:cx="97.914562" - inkscape:cy="241.23878" - inkscape:window-width="2194" - inkscape:window-height="1158" + inkscape:cx="211.43869" + inkscape:cy="142.25992" + inkscape:window-width="1536" + inkscape:window-height="888" inkscape:window-x="0" inkscape:window-y="0" inkscape:window-maximized="1" @@ -4055,7 +4055,7 @@ d="M 2.1960444,0.00338089 0.0345365,-6.9877461 h 1.2496217 l 1.1145275,4.0190537 0.4052828,1.5198102 c 0.016887,-0.067547 0.1435376,-0.5488204 0.3715091,-1.4522631 l 1.1145275,-4.0866008 h 1.2158482 l 1.0469804,4.0528272 0.3377356,1.3509424 0.4052827,-1.3847159 1.2158482,-4.0190537 h 1.148301 L 7.4647198,0.00338089 H 6.2150981 L 5.1005706,-4.1845406 4.8303821,-5.4003888 3.4118925,0.00338089 Z M 10.656321,2.6714922 V -9.6558574 h 2.634338 v 0.9794333 h -1.452263 v 10.368483 h 1.452263 v 0.9794333 z m 3.41113,-7.4301833 c 0,-1.1483011 0.109764,-2.0686306 0.337735,-2.769432 0.244859,-0.692358 0.591038,-1.2327349 1.046981,-1.6211309 0.47283,-0.3799525 1.055424,-0.5741505 1.756225,-0.5741505 0.515047,0 0.962546,0.1182074 1.350942,0.3377356 0.405283,0.2026413 0.726132,0.5066034 0.979434,0.9118861 0.244858,0.388396 0.439056,0.8612258 0.57415,1.4184896 0.151981,0.5657071 0.236415,1.3340556 0.236415,2.2966021 0,1.1314142 -0.118207,2.0433004 -0.337736,2.7356584 -0.227971,0.7008013 -0.57415,1.24117831 -1.04698,1.62113086 -0.47283,0.38839595 -1.063867,0.57415053 -1.756225,0.57415053 -0.928773,0 -1.654904,-0.33773561 -2.195281,-1.01320681 -0.633255,-0.81056548 -0.94566,-2.11084758 -0.94566,-3.91773298 z m 1.215848,0 c 0,1.5789139 0.177311,2.6343377 0.540377,3.1747146 0.379953,0.5234902 0.844339,0.77679194 1.384716,0.77679194 0.540377,0 0.987877,-0.25330174 1.350942,-0.77679194 0.379953,-0.5403769 0.574151,-1.5958007 0.574151,-3.1747146 0,-1.5958008 -0.194198,-2.6512245 -0.574151,-3.1747147 -0.363065,-0.5150468 -0.810565,-0.7767919 -1.350942,-0.7767919 -0.565707,0 -1.004763,0.2279715 -1.317169,0.6754712 -0.405283,0.5910373 -0.607924,1.6802346 -0.607924,3.2760354 z m 6.932023,4.76207199 V -1.3475615 h 1.350943 v 1.35094239 c 0,0.48971662 -0.09288,0.88655596 -0.270189,1.18207461 -0.185754,0.3124054 -0.464386,0.5572637 -0.844339,0.7430183 L 22.114002,1.4218704 C 22.35886,1.303663 22.536171,1.1347952 22.654379,0.91526702 22.789473,0.71262566 22.85702,0.40866361 22.85702,0.00338089 Z m 6.830703,-4.76207199 c 0,-1.1483011 0.109764,-2.0686306 0.337736,-2.769432 0.244858,-0.692358 0.591037,-1.2327349 1.04698,-1.6211309 0.47283,-0.3799525 1.055424,-0.5741505 1.756225,-0.5741505 0.515047,0 0.962547,0.1182074 1.350942,0.3377356 0.405283,0.2026413 0.726132,0.5066034 0.979434,0.9118861 0.244858,0.388396 0.439056,0.8612258 0.57415,1.4184896 0.151981,0.5657071 0.236415,1.3340556 0.236415,2.2966021 0,1.1314142 -0.118207,2.0433004 -0.337735,2.7356584 -0.227972,0.7008013 -0.574151,1.24117831 -1.046981,1.62113086 -0.47283,0.38839595 -1.063867,0.57415053 -1.756225,0.57415053 -0.928773,0 -1.654904,-0.33773561 -2.195281,-1.01320681 -0.633255,-0.81056548 -0.94566,-2.11084758 -0.94566,-3.91773298 z m 1.215848,0 c 0,1.5789139 0.177311,2.6343377 0.540377,3.1747146 0.379953,0.5234902 0.844339,0.77679194 1.384716,0.77679194 0.540377,0 0.987877,-0.25330174 1.350942,-0.77679194 0.379953,-0.5403769 0.574151,-1.5958007 0.574151,-3.1747146 0,-1.5958008 -0.194198,-2.6512245 -0.574151,-3.1747147 -0.363065,-0.5150468 -0.810565,-0.7767919 -1.350942,-0.7767919 -0.565707,0 -1.004763,0.2279715 -1.317169,0.6754712 -0.405283,0.5910373 -0.607924,1.6802346 -0.607924,3.2760354 z m 6.932023,-0.8781126 v -1.3509424 h 1.350943 v 1.3509424 z m 0,5.64018459 V -1.3475615 h 1.350943 v 1.35094239 z m 7.573721,0 H 43.585543 V -7.5618967 c -0.295519,0.2701885 -0.675472,0.540377 -1.148301,0.8105655 -0.455943,0.2701885 -0.861226,0.4728298 -1.215849,0.6079241 v -1.1483011 c 0.650141,-0.2870752 1.224292,-0.6585844 1.722452,-1.1145275 0.489717,-0.4474996 0.844339,-0.8865559 1.04698,-1.3171688 h 0.776792 z m 3.039621,-2.53301699 1.249621,-0.1013207 c 0.08443,0.6079241 0.303963,1.0723105 0.641698,1.384716 0.337736,0.2955186 0.743018,0.43905624 1.215848,0.43905624 0.557264,0 1.030094,-0.21108474 1.41849,-0.64169764 0.405283,-0.4221695 0.607924,-0.99632 0.607924,-1.7224516 0,-0.6754712 -0.194198,-1.1989614 -0.574151,-1.5873573 -0.388396,-0.4052828 -0.878112,-0.6079241 -1.486036,-0.6079241 -0.388396,0 -0.734575,0.092877 -1.046981,0.2701885 -0.295518,0.1857545 -0.531933,0.4052827 -0.709244,0.6754712 l -1.114528,-0.1350943 0.94566,-4.9647134 h 4.795845 v 1.1145275 h -3.850186 l -0.540376,2.6005642 c 0.582593,-0.4052827 1.190518,-0.6079241 1.823772,-0.6079241 0.852782,0 1.562027,0.2955187 2.127734,0.8781126 0.582594,0.5910373 0.878113,1.342499 0.878113,2.2628285 0,0.8781126 -0.253302,1.6380177 -0.743019,2.2628286 -0.633254,0.79367864 -1.477593,1.18207459 -2.533017,1.18207459 -0.878112,0 -1.604244,-0.24485831 -2.161508,-0.74301833 C 48.18719,-1.0604863 47.874785,-1.7190707 47.807238,-2.5296361 Z m 9.802776,5.2011283 H 55.009449 V 1.6920589 h 1.41849 v -10.368483 h -1.41849 v -0.9794333 h 2.600565 z m 0,0" style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" aria-label="w[0, 0:15]" - transform="matrix(0.46264,0,0,0.46264,5.7180436,32.366298)" + transform="matrix(0.46264,0,0,0.46264,5.7180432,32.366298)" clip-path="url(#clipPath4-9)" id="path149-6" /> - PIM Unit 0 - PIM Unit 1 + + - PIM Unit 7 + - PIM Unit 0 - PIM Unit 1 + + - PIM Unit 7 + - PIM Unit 0 - PIM Unit 1 + + - PIM Unit 7 + - PIM Unit 0 - PIM Unit 1 + + - PIM Unit 7 + - PIM Unit 0 - PIM Unit 1 + + - PIM Unit 7 + - PIM Unit 0 - PIM Unit 1 + + - PIM Unit 7 + - - - + id="g3" + transform="translate(-51.5)"> @@ -595,19 +584,8 @@ mjx-container[jax="SVG"] path[data-c], mjx-container[jax="SVG&quo - - - + id="g6" + transform="translate(-51.5)"> @@ -1205,7 +1183,8 @@ mjx-container[jax="SVG"] path[data-c], mjx-container[jax="SVG&quo + id="g7" + transform="translate(-51.5)"> + id="g9" + transform="translate(-51.5)"> @@ -1452,7 +1432,8 @@ mjx-container[jax="SVG"] path[data-c], mjx-container[jax="SVG&quo + id="g10" + transform="translate(-51.5)"> + id="g11" + transform="translate(-51.5)"> + id="g13" + transform="translate(-51.5)"> @@ -1554,7 +1537,8 @@ mjx-container[jax="SVG"] path[data-c], mjx-container[jax="SVG&quo + id="g14" + transform="translate(-51.5)"> + id="g15" + transform="translate(-51.5)"> + id="g16" + transform="translate(-51.5)"> - - - + id="g19" + transform="translate(-51.5)"> @@ -1846,7 +1821,8 @@ mjx-container[jax="SVG"] path[data-c], mjx-container[jax="SVG&quo + id="g20" + transform="translate(-51.5)"> + id="g22" + transform="translate(-51.5)"> @@ -1928,7 +1905,8 @@ mjx-container[jax="SVG"] path[data-c], mjx-container[jax="SVG&quo + id="g23" + transform="translate(-51.5)"> + id="g24" + transform="translate(-51.5)"> + id="g25" + transform="translate(-51.5)"> + id="g26" + transform="translate(-51.5)" /> - - - + transform="translate(-51.5)"> @@ -767,22 +754,9 @@ mjx-container[jax="SVG"] path[data-c], mjx-container[jax="SVG&quo - - - + transform="translate(-51.5)"> @@ -1018,7 +992,7 @@ mjx-container[jax="SVG"] path[data-c], mjx-container[jax="SVG&quo + transform="translate(-51.5)"> + transform="translate(-51.5)"> + transform="translate(-51.5)"> @@ -1121,22 +1095,9 @@ mjx-container[jax="SVG"] path[data-c], mjx-container[jax="SVG&quo - - - + transform="translate(-51.5)"> @@ -1372,10 +1333,10 @@ mjx-container[jax="SVG"] path[data-c], mjx-container[jax="SVG&quo + transform="translate(-51.5)" /> + transform="translate(-51.5)"> + transform="translate(-51.5)"> @@ -1475,7 +1436,7 @@ mjx-container[jax="SVG"] path[data-c], mjx-container[jax="SVG&quo + transform="translate(-51.5)"> + transform="translate(-51.5)"> @@ -1556,7 +1517,7 @@ mjx-container[jax="SVG"] path[data-c], mjx-container[jax="SVG&quo + transform="translate(-51.5)"> + transform="translate(-51.5)"> @@ -1637,7 +1598,7 @@ mjx-container[jax="SVG"] path[data-c], mjx-container[jax="SVG&quo + transform="translate(-51.5)"> + transform="translate(-51.5)"> @@ -1761,7 +1722,7 @@ mjx-container[jax="SVG"] path[data-c], mjx-container[jax="SVG&quo + transform="translate(-51.5)"> + transform="translate(-51.5)"> @@ -1859,7 +1820,7 @@ mjx-container[jax="SVG"] path[data-c], mjx-container[jax="SVG&quo + transform="translate(-51.5)"> + transform="translate(-51.5)"> + transform="translate(-51.5)"> - - - - - - - - - - - - - diff --git a/images/rptu_white.svg b/images/rptu_white.svg deleted file mode 100644 index 1b2ecdf..0000000 --- a/images/rptu_white.svg +++ /dev/null @@ -1,70 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/main.tex b/main.tex index a14a069..87c7008 100644 --- a/main.tex +++ b/main.tex @@ -121,7 +121,9 @@ \visible<6>{\begin{block}{Remark}The nearer the computation is to the memory cells, the higher the achievable bandwidth!\end{block}} \end{frame} -\begin{frame}{Samsung's HBM-PIM/FIMDRAM\autocite{lee2021}} +\section{Samsung HBM-PIM/FIMDRAM} + +\begin{frame}{Samsung HBM-PIM/FIMDRAM\autocite{lee2021}} \begin{itemize} \item Real-world PIM implementation based on HBM2 \item PIM units embedded at the bank level @@ -131,6 +133,100 @@ \end{figure} \end{frame} +\begin{frame}{Samsung HBM-PIM/FIMDRAM\autocite{lee2021}} + \begin{columns} + \begin{column}{0.4\textwidth} + Processing units: + \begin{itemize} + \item Two 16-wide 16-bit FPUs + \item Register files and control unit + \end{itemize} + Instructions: + \begin{itemize} + \item Control: NOP, JUMP, EXIT + \item Data: MOV (ReLU), FILL + \item Arithmetic: ADD, MUL, MAC, MAD + \end{itemize} + \end{column} + \begin{column}{0.6\textwidth} + \begin{figure} + \includesvg[width=\textwidth]{images/pu} + \end{figure} + \end{column} + \end{columns} +\end{frame} + +\begin{frame}{HBM-PIM/FIMDRAM GEMV Operation} + \begin{figure} + \only<1>{\includesvg[width=0.8\textwidth]{images/gemv_normal}} + \only<2>{\includesvg[width=0.9\textwidth]{images/gemv_interleaved}} + \end{figure} +\end{frame} + +\begin{frame}{HBM-PIM/FIMDRAM GEMV Operation\autocite{kang2022}} + \begin{figure} + \only<1>{\includesvg[width=0.55\textwidth]{images/gemv.svg}} + \only<2>{\includesvg[width=0.55\textwidth]{images/gemv_0.svg}} + \only<3>{\includesvg[width=0.55\textwidth]{images/gemv_1.svg}} + \only<4>{\includesvg[width=0.55\textwidth]{images/gemv_2.svg}} + \only<5>{\includesvg[width=0.55\textwidth]{images/gemv_3.svg}} + \only<6>{\includesvg[width=0.55\textwidth]{images/gemv_4.svg}} + \end{figure} +\end{frame} + +\begin{frame}{HBM-PIM/FIMDRAM} + \begin{huge} + How fast is it? + \end{huge}\\ + + Research should ... + \begin{itemize} + \item ... conduct simulations to explore \alert{performance gains} + \item ... consider also the programmability to identify \alert{challenges} + \end{itemize} +\end{frame} + +\section{Virtual Prototype} + +\begin{frame}{Virtual Prototype} + \begin{itemize} + \item Coupling of gem5 and DRAMSys + \item Implementation of HBM-PIM in DRAM model + \end{itemize} + + \begin{figure} + \includesvg[width=0.8\textwidth]{images/dramsys.svg} + \end{figure} +\end{frame} + +\begin{frame}{Software Library} + Software support library + \begin{columns} + \begin{column}{0.5\textwidth} + \begin{itemize} + \item Initialization + \begin{itemize} + \item Assembly and loading of microkernel + \end{itemize} + \item Execution + \begin{itemize} + \item Generation of RD and WR requests + \item Insetion of memory barriers + \end{itemize} + \end{itemize} + \end{column} + + \begin{column}{0.5\textwidth} + \begin{figure} + \includesvg[width=0.8\textwidth]{images/data_structures.svg} + \end{figure} + \end{column} + \end{columns} +\end{frame} + +\begin{frame}[fragile]{Example: GEMV Kernel} +\end{frame} + \begin{frame} \frametitle{Outline} \tableofcontents diff --git a/monitor.sh b/monitor.sh index 4098793..93fef86 100755 --- a/monitor.sh +++ b/monitor.sh @@ -1,2 +1,2 @@ #!/bin/bash -latexmk -lualatex -latexoption=-halt-on-error -shell-escape -pvc -quiet -output-directory=build main.tex +latexmk -lualatex -latexoption=-halt-on-error -shell-escape -pvc -quiet main.tex