diff --git a/lectures/memory-hierarchies/slides.qmd b/lectures/memory-hierarchies/slides.qmd index 86a69902f4092834b3a03c846cd11db9bf668adb..d7caad410b88702485a39c9d509ee7d3329fdf9a 100644 --- a/lectures/memory-hierarchies/slides.qmd +++ b/lectures/memory-hierarchies/slides.qmd @@ -337,7 +337,7 @@ Techniques to provide data ahead of time ## Memory Pyramid (downwards) {auto-animate=true} -Order of magnitude on Levante (AMD EPYC 7763) +Based on a typical Levante node (AMD EPYC 7763) - Base frequency: 2.45 GHz @@ -345,87 +345,33 @@ Order of magnitude on Levante (AMD EPYC 7763) ## Memory Pyramid (downwards) {auto-animate=true} -::::::::{.r-stack} +Based on a typical Levante node (AMD EPYC 7763) -:::{.normal style="color: #ffcccc; font-size: 3em; font-weight: bold; rotate: -30deg; opacity: 0.5;"} - -Check numbers - -::: - -:::{.normal} - -Order of magnitude on Levante (AMD EPYC 7763) - - Access time (ns) Capacity ------------- ----------------- --------- -Register ~0.4 1 KB - -::: - -:::::::: +<table data-auto-animate-target="memtbl"><thead> +<tr class="header"><th data-id="h11"></th><th data-id="h12" style="text-align: left;">Latency</th><th data-id="h13" style="text-align: left;">Capacity</th></tr> +</thead><tbody> +<tr class="odd"><td data-id="c11">Register</td><td data-id="c12" style="text-align: left;">~0.4 ns</td><td data-id="c13" style="text-align: left;">1 KB</td></tr> +</tbody></table> :::{.incremental} - - L1 Cache about 3 times slower + - L1-L3 Cache are a few times slower ::: ## Memory Pyramid (downwards) {auto-animate=true} -::::::::{.r-stack} +Based on a typical Levante node (AMD EPYC 7763) -:::{.normal style="color: #ffcccc; font-size: 3em; font-weight: bold; rotate: -30deg; opacity: 0.5;"} - -Check numbers - -::: - -:::{.normal} - -Order of magnitude on Levante (AMD EPYC 7763) - - Access time (ns) Capacity ------------- ----------------- --------- -Register ~0.4 1 KB -L1 Cache ~1.1 32 KB - -::: - -:::::::: - -:::{.incremental} - - - Same factors for L2 and L3 - -::: - - -## Memory Pyramid (downwards) {auto-animate=true} - -::::::::{.r-stack} - -:::{.normal style="color: #ffcccc; font-size: 3em; font-weight: bold; rotate: -30deg; opacity: 0.5;"} - -Check numbers - -::: - -:::{.normal} - -Order of magnitude on Levante (AMD EPYC 7763) - - Access time (ns) Capacity ------------- ----------------- --------- -Register ~0.4 1 KB -L1 Cache ~1.1 32 KB -L2 Cache ~3.3 512 KB -L3 Cache ~12.8 32 MB - -::: - -:::::::: +<table data-auto-animate-target="memtbl"><thead> +<tr class="header"><th data-id="h11"></th><th data-id="h12" style="text-align: left;">Latency</th><th data-id="h13" style="text-align: left;">Capacity</th></tr> +</thead><tbody> +<tr class="odd"><td data-id="c11">Register</td><td data-id="c12" style="text-align: left;">~0.4 ns</td><td data-id="c13" style="text-align: left;">1 KB</td></tr> +<tr class="even"><td data-id="c21">L1 Cache</td><td data-id="c22" style="text-align: left;">~1 ns</td><td data-id="c22" style="text-align: left;">32 KB</td></tr> +<tr class="odd"><td data-id="c31">L2 Cache</td><td data-id="c32" style="text-align: left;">a few ns</td><td data-id="c33" style="text-align: left;">512 KB</td></tr> +<tr class="even"><td data-id="c41">L3 Cache</td><td data-id="c42" style="text-align: left;">~10 ns</td><td data-id="c43" style="text-align: left;">32 MB</td></tr> +</tbody></table> :::{.incremental} @@ -437,29 +383,17 @@ L3 Cache ~12.8 32 MB ## Memory Pyramid (downwards) {auto-animate=true} -::::::::{.r-stack} - -:::{.normal style="color: #ffcccc; font-size: 3em; font-weight: bold; rotate: -30deg; opacity: 0.5;"} - -Check numbers - -::: - -:::{.normal} - -Order of magnitude on Levante (AMD EPYC 7763) - - Access time (ns) Capacity ------------- ----------------- --------- -Register ~0.4 1 KB -L1 Cache ~1.1 32 KB -L2 Cache ~3.3 512 KB -L3 Cache ~12.8 32 MB -Main Memory 60 256 GB - -::: +Based on a typical Levante node (AMD EPYC 7763) -:::::::: +<table data-auto-animate-target="memtbl"><thead> +<tr class="header"><th data-id="h11"></th><th data-id="h12" style="text-align: left;">Latency</th><th data-id="h13" style="text-align: left;">Capacity</th></tr> +</thead><tbody> +<tr class="odd"><td data-id="c11">Register</td><td data-id="c12" style="text-align: left;">~0.4 ns</td><td data-id="c13" style="text-align: left;">1 KB</td></tr> +<tr class="even"><td data-id="c21">L1 Cache</td><td data-id="c22" style="text-align: left;">~1 ns</td><td data-id="c22" style="text-align: left;">32 KB</td></tr> +<tr class="odd"><td data-id="c31">L2 Cache</td><td data-id="c32" style="text-align: left;">a few ns</td><td data-id="c33" style="text-align: left;">512 KB</td></tr> +<tr class="even"><td data-id="c41">L3 Cache</td><td data-id="c42" style="text-align: left;">~10 ns</td><td data-id="c43" style="text-align: left;">32 MB</td></tr> +<tr class="odd"><td data-id="c51">Main Memory</td><td data-id="c52" style="text-align: left;">10s of ns</td><td data-id="c53" style="text-align: left;">256 GB</td></tr> +</tbody></table> :::{.incremental} @@ -471,30 +405,18 @@ Main Memory 60 256 GB ## Memory Pyramid (downwards) {auto-animate=true} -::::::::{.r-stack} - -:::{.normal style="color: #ffcccc; font-size: 3em; font-weight: bold; rotate: -30deg; opacity: 0.5;"} - -Check numbers - -::: - -:::{.normal} - -Order of magnitude on Levante (AMD EPYC 7763) - - Access time (ns) Capacity ------------- ----------------- --------- -Register ~0.4 1 KB -L1 Cache ~1.1 32 KB -L2 Cache ~3.3 512 KB -L3 Cache ~12.8 32 MB -Main Memory 60 256 GB -SSD 100 200 TB +Based on a typical Levante node (AMD EPYC 7763) -::: - -:::::::: +<table data-auto-animate-target="memtbl"><thead> +<tr class="header"><th data-id="h11"></th><th data-id="h12" style="text-align: left;">Latency</th><th data-id="h13" style="text-align: left;">Capacity</th></tr> +</thead><tbody> +<tr class="odd"><td data-id="c11">Register</td><td data-id="c12" style="text-align: left;">~0.4 ns</td><td data-id="c13" style="text-align: left;">1 KB</td></tr> +<tr class="even"><td data-id="c21">L1 Cache</td><td data-id="c22" style="text-align: left;">~1 ns</td><td data-id="c22" style="text-align: left;">32 KB</td></tr> +<tr class="odd"><td data-id="c31">L2 Cache</td><td data-id="c32" style="text-align: left;">a few ns</td><td data-id="c33" style="text-align: left;">512 KB</td></tr> +<tr class="even"><td data-id="c41">L3 Cache</td><td data-id="c42" style="text-align: left;">~10 ns</td><td data-id="c43" style="text-align: left;">32 MB</td></tr> +<tr class="odd"><td data-id="c51">Main Memory</td><td data-id="c52" style="text-align: left;">10s of ns</td><td data-id="c53" style="text-align: left;">256 GB</td></tr> +<tr class="even"><td data-id="c61">SSD</td><td data-id="c62" style="text-align: left;">100s of µs</td><td data-id="c63" style="text-align: left;">200 TB</td></tr> +</tbody></table> :::{.incremental} @@ -506,31 +428,19 @@ SSD 100 200 TB ## Memory Pyramid (downwards) {auto-animate=true} -::::::::{.r-stack} - -:::{.normal style="color: #ffcccc; font-size: 3em; font-weight: bold; rotate: -30deg; opacity: 0.5;"} - -Check numbers - -::: - -:::{.normal} - -Order of magnitude on Levante (AMD EPYC 7763) - - Access time (ns) Capacity ------------- ----------------- --------- -Register ~0.4 1 KB -L1 Cache ~1.1 32 KB -L2 Cache ~3.3 512 KB -L3 Cache ~12.8 32 MB -Main Memory ~60 256 GB -SSD ~100 200 TB -Hard disk ~3000 130 PB - -::: - -:::::::: +Based on a typical Levante node (AMD EPYC 7763) + +<table data-auto-animate-target="memtbl"><thead> +<tr class="header"><th data-id="h11"></th><th data-id="h12" style="text-align: left;">Latency</th><th data-id="h13" style="text-align: left;">Capacity</th></tr> +</thead><tbody> +<tr class="odd"><td data-id="c11">Register</td><td data-id="c12" style="text-align: left;">~0.4 ns</td><td data-id="c13" style="text-align: left;">1 KB</td></tr> +<tr class="even"><td data-id="c21">L1 Cache</td><td data-id="c22" style="text-align: left;">~1 ns</td><td data-id="c22" style="text-align: left;">32 KB</td></tr> +<tr class="odd"><td data-id="c31">L2 Cache</td><td data-id="c32" style="text-align: left;">a few ns</td><td data-id="c33" style="text-align: left;">512 KB</td></tr> +<tr class="even"><td data-id="c41">L3 Cache</td><td data-id="c42" style="text-align: left;">~10 ns</td><td data-id="c43" style="text-align: left;">32 MB</td></tr> +<tr class="odd"><td data-id="c51">Main Memory</td><td data-id="c52" style="text-align: left;">10s of ns</td><td data-id="c53" style="text-align: left;">256 GB</td></tr> +<tr class="even"><td data-id="c61">SSD</td><td data-id="c62" style="text-align: left;">100s of µs</td><td data-id="c63" style="text-align: left;">200 TB</td></tr> +<tr class="odd"><td data-id="c71">Hard disk</td><td data-id="c72" style="text-align: left;">a few ms</td><td data-id="c73" style="text-align: left;">130 PB</td></tr> +</tbody></table>