{"id":2890,"date":"2026-02-26T17:39:51","date_gmt":"2026-02-26T17:39:51","guid":{"rendered":"https:\/\/basavapurushottam.com\/?p=2890"},"modified":"2026-02-26T17:42:27","modified_gmt":"2026-02-26T17:42:27","slug":"the-memory-wall","status":"publish","type":"post","link":"https:\/\/basavapurushottam.com\/index.php\/2026\/02\/26\/the-memory-wall\/","title":{"rendered":"The Memory Wall"},"content":{"rendered":"\n<p><\/p>\n\n\n\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta charset=\"UTF-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Playfair+Display:ital,wght@0,400;0,700;0,900;1,400&#038;family=Source+Serif+4:ital,opsz,wght@0,8..60,300;0,8..60,400;0,8..60,600;1,8..60,300;1,8..60,400&#038;family=JetBrains+Mono:wght@400;600&#038;display=swap\" rel=\"stylesheet\">\n<style>\n  :root {\n    --ink: #1a1209;\n    --paper: #faf7f2;\n    --warm: #f5ede0;\n    --accent: #c0392b;\n    --accent2: #2471a3;\n    --gold: #b7860b;\n    --muted: #7a6a55;\n    --border: #d4c5b0;\n    --code-bg: #2d2416;\n    --diagram-bg: #fff9f0;\n  }\n\n  * { margin: 0; padding: 0; box-sizing: border-box; }\n\n  body {\n    background: var(--paper);\n    color: var(--ink);\n    font-family: 'Source Serif 4', Georgia, serif;\n    font-size: 18px;\n    line-height: 1.8;\n  }\n\n  \/* \u2500\u2500\u2500 Header \u2500\u2500\u2500 *\/\n  header {\n    background: var(--ink);\n    color: var(--paper);\n    padding: 80px 40px 60px;\n    text-align: center;\n    position: relative;\n    overflow: hidden;\n  }\n\n  header::before {\n    content: '';\n    position: absolute;\n    inset: 0;\n    background: repeating-linear-gradient(\n      45deg,\n      transparent,\n      transparent 40px,\n      rgba(255,255,255,0.015) 40px,\n      rgba(255,255,255,0.015) 80px\n    );\n  }\n\n  .series-label {\n    font-family: 'JetBrains Mono', monospace;\n    font-size: 11px;\n    letter-spacing: 3px;\n    text-transform: uppercase;\n    color: var(--gold);\n    margin-bottom: 24px;\n  }\n\n  h1 {\n    font-family: 'Playfair Display', serif;\n    font-size: clamp(36px, 6vw, 64px);\n    font-weight: 900;\n    line-height: 1.1;\n    margin-bottom: 20px;\n    position: relative;\n  }\n\n  .subtitle {\n    font-size: 18px;\n    color: rgba(250,247,242,0.65);\n    font-style: italic;\n    font-weight: 300;\n    max-width: 600px;\n    margin: 0 auto 40px;\n  }\n\n  .header-meta {\n    display: flex;\n    justify-content: center;\n    gap: 32px;\n    font-family: 'JetBrains Mono', monospace;\n    font-size: 12px;\n    color: rgba(250,247,242,0.45);\n    letter-spacing: 1px;\n  }\n\n  \/* \u2500\u2500\u2500 Layout \u2500\u2500\u2500 *\/\n  .container {\n    max-width: 780px;\n    margin: 0 auto;\n    padding: 60px 24px 100px;\n  }\n\n  \/* \u2500\u2500\u2500 Typography \u2500\u2500\u2500 *\/\n  h2 {\n    font-family: 'Playfair Display', serif;\n    font-size: 30px;\n    font-weight: 700;\n    margin: 72px 0 20px;\n    color: var(--ink);\n    position: relative;\n    padding-left: 20px;\n  }\n\n  h2::before {\n    content: '';\n    position: absolute;\n    left: 0;\n    top: 6px;\n    bottom: 6px;\n    width: 3px;\n    background: var(--accent);\n  }\n\n  h3 {\n    font-family: 'Playfair Display', serif;\n    font-size: 22px;\n    font-weight: 700;\n    margin: 40px 0 12px;\n    color: var(--ink);\n  }\n\n  p { margin-bottom: 20px; color: #2a1f10; }\n\n  strong { font-weight: 600; color: var(--ink); }\n\n  em { color: var(--muted); }\n\n  blockquote {\n    border-left: 3px solid var(--gold);\n    padding: 16px 24px;\n    margin: 36px 0;\n    background: var(--warm);\n    font-style: italic;\n    font-size: 19px;\n    color: var(--ink);\n    border-radius: 0 8px 8px 0;\n  }\n\n  blockquote strong { font-style: normal; }\n\n  \/* \u2500\u2500\u2500 Drop cap \u2500\u2500\u2500 *\/\n  .dropcap::first-letter {\n    font-family: 'Playfair Display', serif;\n    font-size: 5em;\n    font-weight: 900;\n    float: left;\n    line-height: 0.75;\n    margin: 8px 10px -4px 0;\n    color: var(--accent);\n  }\n\n  \/* \u2500\u2500\u2500 Diagram containers \u2500\u2500\u2500 *\/\n  .diagram {\n    margin: 48px 0;\n    background: var(--diagram-bg);\n    border: 1px solid var(--border);\n    border-radius: 12px;\n    overflow: hidden;\n  }\n\n  .diagram-title {\n    background: var(--ink);\n    color: var(--paper);\n    padding: 10px 20px;\n    font-family: 'JetBrains Mono', monospace;\n    font-size: 12px;\n    letter-spacing: 2px;\n    text-transform: uppercase;\n  }\n\n  .diagram svg {\n    display: block;\n    width: 100%;\n  }\n\n  \/* \u2500\u2500\u2500 Tables \u2500\u2500\u2500 *\/\n  .table-wrap {\n    margin: 36px 0;\n    overflow-x: auto;\n  }\n\n  table {\n    width: 100%;\n    border-collapse: collapse;\n    font-size: 16px;\n  }\n\n  thead tr {\n    background: var(--ink);\n    color: var(--paper);\n  }\n\n  thead th {\n    padding: 12px 18px;\n    text-align: left;\n    font-family: 'JetBrains Mono', monospace;\n    font-size: 12px;\n    letter-spacing: 1px;\n  }\n\n  tbody tr:nth-child(even) { background: var(--warm); }\n  tbody tr:nth-child(odd) { background: #fff; }\n\n  tbody td {\n    padding: 12px 18px;\n    border-bottom: 1px solid var(--border);\n  }\n\n  \/* \u2500\u2500\u2500 Solution cards \u2500\u2500\u2500 *\/\n  .solutions-grid {\n    display: grid;\n    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));\n    gap: 20px;\n    margin: 36px 0;\n  }\n\n  .solution-card {\n    background: #fff;\n    border: 1px solid var(--border);\n    border-radius: 10px;\n    padding: 24px;\n    border-top: 3px solid var(--accent2);\n    transition: transform 0.2s, box-shadow 0.2s;\n  }\n\n  .solution-card:hover {\n    transform: translateY(-3px);\n    box-shadow: 0 8px 24px rgba(0,0,0,0.1);\n  }\n\n  .solution-card h4 {\n    font-family: 'Playfair Display', serif;\n    font-size: 18px;\n    margin-bottom: 8px;\n    color: var(--ink);\n  }\n\n  .solution-card p {\n    font-size: 15px;\n    margin: 0;\n    color: var(--muted);\n    line-height: 1.6;\n  }\n\n  .solution-icon {\n    font-size: 28px;\n    margin-bottom: 10px;\n  }\n\n  \/* \u2500\u2500\u2500 Callout \u2500\u2500\u2500 *\/\n  .callout {\n    background: linear-gradient(135deg, #1a1209 0%, #2d2416 100%);\n    color: var(--paper);\n    padding: 36px 40px;\n    border-radius: 12px;\n    margin: 48px 0;\n  }\n\n  .callout h3 {\n    font-family: 'Playfair Display', serif;\n    color: var(--gold);\n    margin: 0 0 12px;\n    font-size: 20px;\n  }\n\n  .callout p { color: rgba(250,247,242,0.85); margin: 0; font-size: 17px; }\n\n  \/* \u2500\u2500\u2500 Footer \u2500\u2500\u2500 *\/\n  footer {\n    background: var(--ink);\n    color: rgba(250,247,242,0.5);\n    text-align: center;\n    padding: 40px 24px;\n    font-family: 'JetBrains Mono', monospace;\n    font-size: 12px;\n    letter-spacing: 1px;\n  }\n\n  \/* \u2500\u2500\u2500 Animations \u2500\u2500\u2500 *\/\n  @keyframes fadeUp {\n    from { opacity: 0; transform: translateY(24px); }\n    to { opacity: 1; transform: translateY(0); }\n  }\n\n  .animate {\n    animation: fadeUp 0.7s ease both;\n  }\n\n  .animate-delay-1 { animation-delay: 0.1s; }\n  .animate-delay-2 { animation-delay: 0.2s; }\n  .animate-delay-3 { animation-delay: 0.3s; }\n\n  \/* Progress bar animation *\/\n  @keyframes growWidth {\n    from { width: 0; }\n    to { width: var(--target-w); }\n  }\n\n  .bar-fill {\n    animation: growWidth 1.5s ease both;\n    animation-delay: 0.3s;\n  }\n\n  \/* Pulse for waiting indicator *\/\n  @keyframes pulse {\n    0%, 100% { opacity: 1; }\n    50% { opacity: 0.3; }\n  }\n\n  .waiting { animation: pulse 1.4s ease-in-out infinite; }\n\n  hr {\n    border: none;\n    border-top: 1px solid var(--border);\n    margin: 60px 0;\n  }\n<\/style>\n<\/head>\n<body>\n\n\n<div class=\"container\">\n\n  <!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 SECTION 1 \u2550\u2550\u2550 -->\n  <h2>The Chef Who Had to Wait<\/h2>\n\n  <p class=\"dropcap\">Imagine a world-class chef who can prepare 100 dishes per hour. The kitchen is state-of-the-art, the chef is lightning fast \u2014 and completely idle most of the day.<\/p>\n\n  <p>The problem? The pantry is slow. Ingredients arrive at a rate that supports only 30 dishes per hour. The chef spends most of the day standing around, <em>waiting<\/em>.<\/p>\n\n  <p>This, in essence, is the <strong>Memory Wall<\/strong> \u2014 one of the most important and least talked-about limits in modern computing.<\/p>\n\n  <!-- DIAGRAM 1: Chef Analogy -->\n  <div class=\"diagram\">\n    <div class=\"diagram-title\">Fig 1 \u2014 The Chef Analogy<\/div>\n    <svg viewBox=\"0 0 720 260\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"height:260px\">\n      <defs>\n        <marker id=\"arrow\" markerWidth=\"8\" markerHeight=\"8\" refX=\"6\" refY=\"3\" orient=\"auto\">\n          <path d=\"M0,0 L0,6 L8,3 z\" fill=\"#7a6a55\"\/>\n        <\/marker>\n        <marker id=\"arrow-red\" markerWidth=\"8\" markerHeight=\"8\" refX=\"6\" refY=\"3\" orient=\"auto\">\n          <path d=\"M0,0 L0,6 L8,3 z\" fill=\"#c0392b\"\/>\n        <\/marker>\n        <marker id=\"arrow-blue\" markerWidth=\"8\" markerHeight=\"8\" refX=\"6\" refY=\"3\" orient=\"auto\">\n          <path d=\"M0,0 L0,6 L8,3 z\" fill=\"#2471a3\"\/>\n        <\/marker>\n      <\/defs>\n\n      <!-- Pantry \/ Memory -->\n      <rect x=\"30\" y=\"60\" width=\"160\" height=\"140\" rx=\"10\" fill=\"#f5ede0\" stroke=\"#d4c5b0\" stroke-width=\"1.5\"\/>\n      <text x=\"110\" y=\"95\" text-anchor=\"middle\" font-family=\"'Playfair Display',serif\" font-size=\"15\" font-weight=\"700\" fill=\"#1a1209\">PANTRY<\/text>\n      <text x=\"110\" y=\"116\" text-anchor=\"middle\" font-family=\"'Source Serif 4',serif\" font-size=\"12\" fill=\"#7a6a55\">(Memory \/ RAM)<\/text>\n      <text x=\"110\" y=\"155\" text-anchor=\"middle\" font-family=\"'JetBrains Mono',monospace\" font-size=\"13\" fill=\"#c0392b\" font-weight=\"600\">30 dishes\/hr<\/text>\n      <text x=\"110\" y=\"175\" text-anchor=\"middle\" font-family=\"'Source Serif 4',serif\" font-size=\"12\" fill=\"#7a6a55\">ingredient supply<\/text>\n\n      <!-- Arrow: slow conveyor -->\n      <line x1=\"195\" y1=\"130\" x2=\"320\" y2=\"130\" stroke=\"#c0392b\" stroke-width=\"2\" stroke-dasharray=\"6 4\" marker-end=\"url(#arrow-red)\"\/>\n      <rect x=\"210\" y=\"105\" width=\"100\" height=\"24\" rx=\"4\" fill=\"#fdecea\"\/>\n      <text x=\"260\" y=\"121\" text-anchor=\"middle\" font-family=\"'JetBrains Mono',monospace\" font-size=\"11\" fill=\"#c0392b\">SLOW ROAD<\/text>\n      <text x=\"260\" y=\"155\" text-anchor=\"middle\" font-family=\"'Source Serif 4',serif\" font-size=\"11\" fill=\"#7a6a55\">bottleneck<\/text>\n\n      <!-- Chef \/ CPU -->\n      <rect x=\"330\" y=\"60\" width=\"160\" height=\"140\" rx=\"10\" fill=\"#e8f4fd\" stroke=\"#aed6f1\" stroke-width=\"1.5\"\/>\n      <text x=\"410\" y=\"95\" text-anchor=\"middle\" font-family=\"'Playfair Display',serif\" font-size=\"15\" font-weight=\"700\" fill=\"#1a1209\">CHEF<\/text>\n      <text x=\"410\" y=\"116\" text-anchor=\"middle\" font-family=\"'Source Serif 4',serif\" font-size=\"12\" fill=\"#7a6a55\">(Processor \/ GPU)<\/text>\n      <text x=\"410\" y=\"155\" text-anchor=\"middle\" font-family=\"'JetBrains Mono',monospace\" font-size=\"13\" fill=\"#2471a3\" font-weight=\"600\">100 dishes\/hr<\/text>\n      <text x=\"410\" y=\"175\" text-anchor=\"middle\" font-family=\"'Source Serif 4',serif\" font-size=\"12\" fill=\"#7a6a55\">capability<\/text>\n\n      <!-- Waiting indicator -->\n      <text x=\"530\" y=\"110\" font-family=\"'Source Serif 4',serif\" font-size=\"14\" fill=\"#c0392b\" class=\"waiting\">\u23f3 Waiting\u2026<\/text>\n      <text x=\"530\" y=\"135\" font-family=\"'Source Serif 4',serif\" font-size=\"13\" fill=\"#7a6a55\">70% idle time<\/text>\n      <text x=\"530\" y=\"158\" font-family=\"'Source Serif 4',serif\" font-size=\"13\" fill=\"#7a6a55\">not cooking<\/text>\n\n      <!-- Gap label -->\n      <rect x=\"250\" y=\"210\" width=\"220\" height=\"30\" rx=\"6\" fill=\"#1a1209\"\/>\n      <text x=\"360\" y=\"230\" text-anchor=\"middle\" font-family=\"'JetBrains Mono',monospace\" font-size=\"12\" fill=\"#faf7f2\" letter-spacing=\"2\">THE MEMORY WALL GAP<\/text>\n    <\/svg>\n  <\/div>\n\n  <!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 SECTION 2 \u2550\u2550\u2550 -->\n  <h2>What Is the Memory Wall?<\/h2>\n\n  <p>Every computer has two key components: the <strong>Processor (CPU\/GPU)<\/strong> \u2014 the brain that does calculations \u2014 and <strong>Memory (RAM)<\/strong> \u2014 the pantry that stores data the processor needs.<\/p>\n\n  <p>Over the past few decades, processor speeds have grown dramatically, roughly doubling every two years. But memory speed has grown much more slowly. The gap between the two has widened so far that processors now spend a large portion of their time simply <em>waiting<\/em> for data to arrive from memory.<\/p>\n\n  <!-- DIAGRAM 2: Speed Gap Over Time -->\n  <div class=\"diagram\">\n    <div class=\"diagram-title\">Fig 2 \u2014 The Growing Speed Gap (1980\u20132024)<\/div>\n    <svg viewBox=\"0 0 720 300\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"height:300px\">\n      <!-- Grid -->\n      <line x1=\"80\" y1=\"30\" x2=\"80\" y2=\"240\" stroke=\"#d4c5b0\" stroke-width=\"1\"\/>\n      <line x1=\"80\" y1=\"240\" x2=\"680\" y2=\"240\" stroke=\"#d4c5b0\" stroke-width=\"1\"\/>\n      <!-- Horizontal guides -->\n      <line x1=\"80\" y1=\"80\" x2=\"680\" y2=\"80\" stroke=\"#e8ddd0\" stroke-width=\"0.8\" stroke-dasharray=\"4 4\"\/>\n      <line x1=\"80\" y1=\"130\" x2=\"680\" y2=\"130\" stroke=\"#e8ddd0\" stroke-width=\"0.8\" stroke-dasharray=\"4 4\"\/>\n      <line x1=\"80\" y1=\"180\" x2=\"680\" y2=\"180\" stroke=\"#e8ddd0\" stroke-width=\"0.8\" stroke-dasharray=\"4 4\"\/>\n\n      <!-- Y labels -->\n      <text x=\"72\" y=\"85\" text-anchor=\"end\" font-family=\"'JetBrains Mono',monospace\" font-size=\"10\" fill=\"#7a6a55\">1000\u00d7<\/text>\n      <text x=\"72\" y=\"135\" text-anchor=\"end\" font-family=\"'JetBrains Mono',monospace\" font-size=\"10\" fill=\"#7a6a55\">100\u00d7<\/text>\n      <text x=\"72\" y=\"185\" text-anchor=\"end\" font-family=\"'JetBrains Mono',monospace\" font-size=\"10\" fill=\"#7a6a55\">10\u00d7<\/text>\n      <text x=\"72\" y=\"243\" text-anchor=\"end\" font-family=\"'JetBrains Mono',monospace\" font-size=\"10\" fill=\"#7a6a55\">1\u00d7<\/text>\n\n      <!-- X labels -->\n      <text x=\"80\" y=\"258\" text-anchor=\"middle\" font-family=\"'JetBrains Mono',monospace\" font-size=\"10\" fill=\"#7a6a55\">1980<\/text>\n      <text x=\"230\" y=\"258\" text-anchor=\"middle\" font-family=\"'JetBrains Mono',monospace\" font-size=\"10\" fill=\"#7a6a55\">1990<\/text>\n      <text x=\"380\" y=\"258\" text-anchor=\"middle\" font-family=\"'JetBrains Mono',monospace\" font-size=\"10\" fill=\"#7a6a55\">2000<\/text>\n      <text x=\"530\" y=\"258\" text-anchor=\"middle\" font-family=\"'JetBrains Mono',monospace\" font-size=\"10\" fill=\"#7a6a55\">2010<\/text>\n      <text x=\"680\" y=\"258\" text-anchor=\"middle\" font-family=\"'JetBrains Mono',monospace\" font-size=\"10\" fill=\"#7a6a55\">2024<\/text>\n\n      <!-- CPU curve (steep) -->\n      <path d=\"M80,240 C130,235 180,215 230,195 C280,175 330,145 380,110 C430,80 480,60 530,47 C580,38 630,33 680,32\"\n            fill=\"none\" stroke=\"#2471a3\" stroke-width=\"2.5\"\/>\n      <!-- CPU fill -->\n      <path d=\"M80,240 C130,235 180,215 230,195 C280,175 330,145 380,110 C430,80 480,60 530,47 C580,38 630,33 680,32 L680,240 Z\"\n            fill=\"#2471a3\" fill-opacity=\"0.08\"\/>\n\n      <!-- Memory curve (gentle) -->\n      <path d=\"M80,240 C180,238 280,230 380,220 C480,212 580,205 680,200\"\n            fill=\"none\" stroke=\"#c0392b\" stroke-width=\"2.5\"\/>\n      <!-- Memory fill -->\n      <path d=\"M80,240 C180,238 280,230 380,220 C480,212 580,205 680,200 L680,240 Z\"\n            fill=\"#c0392b\" fill-opacity=\"0.08\"\/>\n\n      <!-- Gap arrow -->\n      <line x1=\"660\" y1=\"200\" x2=\"660\" y2=\"35\" stroke=\"#b7860b\" stroke-width=\"1.5\" stroke-dasharray=\"4 3\" marker-end=\"url(#arrow)\"\/>\n      <rect x=\"590\" y=\"100\" width=\"60\" height=\"36\" rx=\"4\" fill=\"#fff9f0\" stroke=\"#d4c5b0\" stroke-width=\"1\"\/>\n      <text x=\"620\" y=\"114\" text-anchor=\"middle\" font-family=\"'JetBrains Mono',monospace\" font-size=\"10\" fill=\"#b7860b\">GAP<\/text>\n      <text x=\"620\" y=\"128\" text-anchor=\"middle\" font-family=\"'JetBrains Mono',monospace\" font-size=\"10\" fill=\"#b7860b\">~50\u00d7<\/text>\n\n      <!-- Legend -->\n      <line x1=\"100\" y1=\"275\" x2=\"130\" y2=\"275\" stroke=\"#2471a3\" stroke-width=\"2.5\"\/>\n      <text x=\"136\" y=\"279\" font-family=\"'Source Serif 4',serif\" font-size=\"12\" fill=\"#1a1209\">Processor speed<\/text>\n      <line x1=\"300\" y1=\"275\" x2=\"330\" y2=\"275\" stroke=\"#c0392b\" stroke-width=\"2.5\"\/>\n      <text x=\"336\" y=\"279\" font-family=\"'Source Serif 4',serif\" font-size=\"12\" fill=\"#1a1209\">Memory speed<\/text>\n\n      <!-- Y axis label -->\n      <text x=\"16\" y=\"150\" transform=\"rotate(-90 16 150)\" text-anchor=\"middle\" font-family=\"'JetBrains Mono',monospace\" font-size=\"10\" fill=\"#7a6a55\">Relative speed<\/text>\n    <\/svg>\n  <\/div>\n\n  <blockquote>\n    <strong>One-sentence version:<\/strong> The processor is so fast that it finishes its work and must sit idle, waiting for the next batch of data from memory \u2014 like our chef waiting for ingredients.\n  <\/blockquote>\n\n  <!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 SECTION 3 \u2550\u2550\u2550 -->\n  <h2>Why Can&#8217;t We Just Make Memory Faster?<\/h2>\n\n  <p>This is where physics steps in. When engineers design computer chips, they face a fundamental geometric constraint: <strong>computing power grows with chip area, but memory connections can only grow with chip perimeter.<\/strong><\/p>\n\n  <p>Think of it like a city. If you double the city&#8217;s area (more buildings = more computing), you don&#8217;t double the number of gates in the city wall (perimeter = memory connections). The wall grows much more slowly than the city.<\/p>\n\n  <!-- DIAGRAM 3: Area vs Perimeter -->\n  <div class=\"diagram\">\n    <div class=\"diagram-title\">Fig 3 \u2014 Area vs. Perimeter: The Root of the Problem<\/div>\n    <svg viewBox=\"0 0 720 260\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"height:260px\">\n      <!-- Chip 1 -->\n      <rect x=\"50\" y=\"60\" width=\"80\" height=\"80\" rx=\"4\" fill=\"#e8f4fd\" stroke=\"#2471a3\" stroke-width=\"2\"\/>\n      <text x=\"90\" y=\"107\" text-anchor=\"middle\" font-family=\"'JetBrains Mono',monospace\" font-size=\"11\" fill=\"#2471a3\">1\u00d7 chip<\/text>\n      <!-- dots for compute -->\n      <circle cx=\"70\" cy=\"80\" r=\"4\" fill=\"#2471a3\" opacity=\"0.6\"\/>\n      <circle cx=\"90\" cy=\"80\" r=\"4\" fill=\"#2471a3\" opacity=\"0.6\"\/>\n      <circle cx=\"110\" cy=\"80\" r=\"4\" fill=\"#2471a3\" opacity=\"0.6\"\/>\n      <circle cx=\"70\" cy=\"100\" r=\"4\" fill=\"#2471a3\" opacity=\"0.6\"\/>\n      <circle cx=\"90\" cy=\"100\" r=\"4\" fill=\"#2471a3\" opacity=\"0.6\"\/>\n      <circle cx=\"110\" cy=\"100\" r=\"4\" fill=\"#2471a3\" opacity=\"0.6\"\/>\n      <!-- memory pins on edge (red ticks) -->\n      <line x1=\"60\" y1=\"58\" x2=\"60\" y2=\"50\" stroke=\"#c0392b\" stroke-width=\"2\"\/>\n      <line x1=\"80\" y1=\"58\" x2=\"80\" y2=\"50\" stroke=\"#c0392b\" stroke-width=\"2\"\/>\n      <line x1=\"100\" y1=\"58\" x2=\"100\" y2=\"50\" stroke=\"#c0392b\" stroke-width=\"2\"\/>\n      <line x1=\"120\" y1=\"58\" x2=\"120\" y2=\"50\" stroke=\"#c0392b\" stroke-width=\"2\"\/>\n      <text x=\"90\" y=\"175\" text-anchor=\"middle\" font-family=\"'Source Serif 4',serif\" font-size=\"13\" fill=\"#1a1209\">Compute: <tspan font-weight=\"700\" fill=\"#2471a3\">1\u00d7<\/tspan><\/text>\n      <text x=\"90\" y=\"195\" text-anchor=\"middle\" font-family=\"'Source Serif 4',serif\" font-size=\"13\" fill=\"#1a1209\">Memory: <tspan font-weight=\"700\" fill=\"#c0392b\">1\u00d7<\/tspan><\/text>\n\n      <!-- Arrow -->\n      <text x=\"195\" y=\"107\" text-anchor=\"middle\" font-size=\"24\" fill=\"#7a6a55\">\u2192<\/text>\n\n      <!-- Chip 2 (4\u00d7 area = 2\u00d7 side) -->\n      <rect x=\"230\" y=\"40\" width=\"120\" height=\"120\" rx=\"4\" fill=\"#e8f4fd\" stroke=\"#2471a3\" stroke-width=\"2\"\/>\n      <text x=\"290\" y=\"107\" text-anchor=\"middle\" font-family=\"'JetBrains Mono',monospace\" font-size=\"11\" fill=\"#2471a3\">4\u00d7 chip<\/text>\n      <circle cx=\"255\" cy=\"60\" r=\"4\" fill=\"#2471a3\" opacity=\"0.5\"\/>\n      <circle cx=\"275\" cy=\"60\" r=\"4\" fill=\"#2471a3\" opacity=\"0.5\"\/>\n      <circle cx=\"295\" cy=\"60\" r=\"4\" fill=\"#2471a3\" opacity=\"0.5\"\/>\n      <circle cx=\"315\" cy=\"60\" r=\"4\" fill=\"#2471a3\" opacity=\"0.5\"\/>\n      <circle cx=\"335\" cy=\"60\" r=\"4\" fill=\"#2471a3\" opacity=\"0.5\"\/>\n      <circle cx=\"255\" cy=\"80\" r=\"4\" fill=\"#2471a3\" opacity=\"0.5\"\/>\n      <circle cx=\"275\" cy=\"80\" r=\"4\" fill=\"#2471a3\" opacity=\"0.5\"\/>\n      <circle cx=\"295\" cy=\"80\" r=\"4\" fill=\"#2471a3\" opacity=\"0.5\"\/>\n      <circle cx=\"315\" cy=\"80\" r=\"4\" fill=\"#2471a3\" opacity=\"0.5\"\/>\n      <circle cx=\"335\" cy=\"80\" r=\"4\" fill=\"#2471a3\" opacity=\"0.5\"\/>\n      <!-- 6 memory pins (2\u00d7 of 4, not 4\u00d7) -->\n      <line x1=\"244\" y1=\"38\" x2=\"244\" y2=\"30\" stroke=\"#c0392b\" stroke-width=\"2\"\/>\n      <line x1=\"264\" y1=\"38\" x2=\"264\" y2=\"30\" stroke=\"#c0392b\" stroke-width=\"2\"\/>\n      <line x1=\"284\" y1=\"38\" x2=\"284\" y2=\"30\" stroke=\"#c0392b\" stroke-width=\"2\"\/>\n      <line x1=\"304\" y1=\"38\" x2=\"304\" y2=\"30\" stroke=\"#c0392b\" stroke-width=\"2\"\/>\n      <line x1=\"324\" y1=\"38\" x2=\"324\" y2=\"30\" stroke=\"#c0392b\" stroke-width=\"2\"\/>\n      <line x1=\"344\" y1=\"38\" x2=\"344\" y2=\"30\" stroke=\"#c0392b\" stroke-width=\"2\"\/>\n      <text x=\"290\" y=\"175\" text-anchor=\"middle\" font-family=\"'Source Serif 4',serif\" font-size=\"13\" fill=\"#1a1209\">Compute: <tspan font-weight=\"700\" fill=\"#2471a3\">4\u00d7<\/tspan><\/text>\n      <text x=\"290\" y=\"195\" text-anchor=\"middle\" font-family=\"'Source Serif 4',serif\" font-size=\"13\" fill=\"#1a1209\">Memory: <tspan font-weight=\"700\" fill=\"#c0392b\">2\u00d7<\/tspan><\/text>\n\n      <!-- Arrow -->\n      <text x=\"415\" y=\"107\" text-anchor=\"middle\" font-size=\"24\" fill=\"#7a6a55\">\u2192<\/text>\n\n      <!-- Chip 3 (9\u00d7 area = 3\u00d7 side) -->\n      <rect x=\"440\" y=\"20\" width=\"160\" height=\"160\" rx=\"4\" fill=\"#e8f4fd\" stroke=\"#2471a3\" stroke-width=\"2\"\/>\n      <text x=\"520\" y=\"107\" text-anchor=\"middle\" font-family=\"'JetBrains Mono',monospace\" font-size=\"11\" fill=\"#2471a3\">9\u00d7 chip<\/text>\n      <!-- memory pins = only 3\u00d7 -->\n      <line x1=\"452\" y1=\"18\" x2=\"452\" y2=\"10\" stroke=\"#c0392b\" stroke-width=\"2\"\/>\n      <line x1=\"468\" y1=\"18\" x2=\"468\" y2=\"10\" stroke=\"#c0392b\" stroke-width=\"2\"\/>\n      <line x1=\"484\" y1=\"18\" x2=\"484\" y2=\"10\" stroke=\"#c0392b\" stroke-width=\"2\"\/>\n      <line x1=\"500\" y1=\"18\" x2=\"500\" y2=\"10\" stroke=\"#c0392b\" stroke-width=\"2\"\/>\n      <line x1=\"516\" y1=\"18\" x2=\"516\" y2=\"10\" stroke=\"#c0392b\" stroke-width=\"2\"\/>\n      <line x1=\"532\" y1=\"18\" x2=\"532\" y2=\"10\" stroke=\"#c0392b\" stroke-width=\"2\"\/>\n      <line x1=\"548\" y1=\"18\" x2=\"548\" y2=\"10\" stroke=\"#c0392b\" stroke-width=\"2\"\/>\n      <line x1=\"564\" y1=\"18\" x2=\"564\" y2=\"10\" stroke=\"#c0392b\" stroke-width=\"2\"\/>\n      <line x1=\"580\" y1=\"18\" x2=\"580\" y2=\"10\" stroke=\"#c0392b\" stroke-width=\"2\"\/>\n      <text x=\"520\" y=\"195\" text-anchor=\"middle\" font-family=\"'Source Serif 4',serif\" font-size=\"13\" fill=\"#1a1209\">Compute: <tspan font-weight=\"700\" fill=\"#2471a3\">9\u00d7<\/tspan><\/text>\n      <text x=\"520\" y=\"215\" text-anchor=\"middle\" font-family=\"'Source Serif 4',serif\" font-size=\"13\" fill=\"#1a1209\">Memory: <tspan font-weight=\"700\" fill=\"#c0392b\">3\u00d7<\/tspan><\/text>\n\n      <!-- Legend -->\n      <circle cx=\"100\" cy=\"240\" r=\"5\" fill=\"#2471a3\"\/>\n      <text x=\"112\" y=\"244\" font-family=\"'Source Serif 4',serif\" font-size=\"12\" fill=\"#1a1209\">Compute units (area)<\/text>\n      <line x1=\"320\" y1=\"240\" x2=\"340\" y2=\"240\" stroke=\"#c0392b\" stroke-width=\"2\"\/>\n      <text x=\"348\" y=\"244\" font-family=\"'Source Serif 4',serif\" font-size=\"12\" fill=\"#1a1209\">Memory connections (perimeter)<\/text>\n    <\/svg>\n  <\/div>\n\n  <div class=\"table-wrap\">\n    <table>\n      <thead>\n        <tr>\n          <th>Chip Area<\/th>\n          <th>Computing Power<\/th>\n          <th>Memory Speed<\/th>\n          <th>Gap<\/th>\n        <\/tr>\n      <\/thead>\n      <tbody>\n        <tr><td>1\u00d7<\/td><td>1\u00d7<\/td><td>1\u00d7<\/td><td>\u2014<\/td><\/tr>\n        <tr><td>4\u00d7<\/td><td>4\u00d7<\/td><td>2\u00d7<\/td><td>2\u00d7 gap<\/td><\/tr>\n        <tr><td>9\u00d7<\/td><td>9\u00d7<\/td><td>3\u00d7<\/td><td>3\u00d7 gap<\/td><\/tr>\n        <tr><td>100\u00d7<\/td><td>100\u00d7<\/td><td>10\u00d7<\/td><td>10\u00d7 gap<\/td><\/tr>\n      <\/tbody>\n    <\/table>\n  <\/div>\n\n  <p>Every time computing power quadruples, memory speed only doubles. The gap keeps widening \u2014 by the laws of geometry, not by any engineering failure.<\/p>\n\n  <!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 SECTION 4 \u2550\u2550\u2550 -->\n  <h2>Why AI Makes This Far Worse<\/h2>\n\n  <p>Modern AI systems don&#8217;t just encounter the memory wall \u2014 they crash into it at full speed. Consider what a large AI model actually requires:<\/p>\n\n  <!-- DIAGRAM 4: AI Data Hunger -->\n  <div class=\"diagram\">\n    <div class=\"diagram-title\">Fig 4 \u2014 AI Models Are Memory-Hungry<\/div>\n    <svg viewBox=\"0 0 720 220\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"height:220px\">\n      <!-- Background grid lines -->\n      <line x1=\"150\" y1=\"20\" x2=\"150\" y2=\"180\" stroke=\"#d4c5b0\" stroke-width=\"1\"\/>\n      <line x1=\"150\" y1=\"180\" x2=\"700\" y2=\"180\" stroke=\"#d4c5b0\" stroke-width=\"1\"\/>\n\n      <!-- Bar 1: Small model -->\n      <rect x=\"175\" y=\"155\" width=\"60\" height=\"25\" rx=\"3\" fill=\"#2471a3\"\/>\n      <text x=\"205\" y=\"149\" text-anchor=\"middle\" font-family=\"'JetBrains Mono',monospace\" font-size=\"10\" fill=\"#2471a3\">1 GB<\/text>\n      <text x=\"205\" y=\"198\" text-anchor=\"middle\" font-family=\"'Source Serif 4',serif\" font-size=\"12\" fill=\"#1a1209\">Small<\/text>\n      <text x=\"205\" y=\"212\" text-anchor=\"middle\" font-family=\"'Source Serif 4',serif\" font-size=\"11\" fill=\"#7a6a55\">model<\/text>\n\n      <!-- Bar 2: BERT -->\n      <rect x=\"290\" y=\"135\" width=\"60\" height=\"45\" rx=\"3\" fill=\"#2471a3\" opacity=\"0.8\"\/>\n      <text x=\"320\" y=\"129\" text-anchor=\"middle\" font-family=\"'JetBrains Mono',monospace\" font-size=\"10\" fill=\"#2471a3\">~0.4 GB<\/text>\n      <text x=\"320\" y=\"198\" text-anchor=\"middle\" font-family=\"'Source Serif 4',serif\" font-size=\"12\" fill=\"#1a1209\">BERT<\/text>\n      <text x=\"320\" y=\"212\" text-anchor=\"middle\" font-family=\"'Source Serif 4',serif\" font-size=\"11\" fill=\"#7a6a55\">2018<\/text>\n\n      <!-- Bar 3: GPT-3 -->\n      <rect x=\"405\" y=\"65\" width=\"60\" height=\"115\" rx=\"3\" fill=\"#b7860b\" opacity=\"0.85\"\/>\n      <text x=\"435\" y=\"58\" text-anchor=\"middle\" font-family=\"'JetBrains Mono',monospace\" font-size=\"10\" fill=\"#b7860b\">~350 GB<\/text>\n      <text x=\"435\" y=\"198\" text-anchor=\"middle\" font-family=\"'Source Serif 4',serif\" font-size=\"12\" fill=\"#1a1209\">GPT-3<\/text>\n      <text x=\"435\" y=\"212\" text-anchor=\"middle\" font-family=\"'Source Serif 4',serif\" font-size=\"11\" fill=\"#7a6a55\">2020<\/text>\n\n      <!-- Bar 4: Modern LLM -->\n      <rect x=\"520\" y=\"30\" width=\"60\" height=\"150\" rx=\"3\" fill=\"#c0392b\"\/>\n      <text x=\"550\" y=\"23\" text-anchor=\"middle\" font-family=\"'JetBrains Mono',monospace\" font-size=\"10\" fill=\"#c0392b\">1 TB+<\/text>\n      <text x=\"550\" y=\"198\" text-anchor=\"middle\" font-family=\"'Source Serif 4',serif\" font-size=\"12\" fill=\"#1a1209\">Modern<\/text>\n      <text x=\"550\" y=\"212\" text-anchor=\"middle\" font-family=\"'Source Serif 4',serif\" font-size=\"11\" fill=\"#7a6a55\">LLM 2024<\/text>\n\n      <!-- Hardware bandwidth line -->\n      <line x1=\"155\" y1=\"110\" x2=\"700\" y2=\"110\" stroke=\"#1a1209\" stroke-width=\"1.5\" stroke-dasharray=\"6 4\"\/>\n      <rect x=\"610\" y=\"95\" width=\"90\" height=\"22\" rx=\"4\" fill=\"#1a1209\"\/>\n      <text x=\"655\" y=\"110\" text-anchor=\"middle\" font-family=\"'JetBrains Mono',monospace\" font-size=\"10\" fill=\"#faf7f2\">H\/W limit<\/text>\n\n      <!-- Overflow arrow -->\n      <line x1=\"555\" y1=\"30\" x2=\"555\" y2=\"12\" stroke=\"#c0392b\" stroke-width=\"1.5\" marker-end=\"url(#arrow-red)\"\/>\n      <text x=\"580\" y=\"10\" font-family=\"'Source Serif 4',serif\" font-size=\"11\" fill=\"#c0392b\">exceeds memory bandwidth<\/text>\n    <\/svg>\n  <\/div>\n\n  <p>A large model might need <strong>10 TB\/sec of data movement<\/strong> while the hardware can deliver only 1 TB\/sec. That&#8217;s a 10\u00d7 shortfall \u2014 one full &#8220;order of magnitude.&#8221; Some training workloads require 100\u00d7 more data movement than available bandwidth.<\/p>\n\n  <p>This is why AI systems are expensive to run, consume enormous electricity, and require specialized hardware \u2014 it&#8217;s not just computation that&#8217;s costly, it&#8217;s the constant movement of data.<\/p>\n\n  <!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 SECTION 5 \u2550\u2550\u2550 -->\n  <h2>Amdahl&#8217;s Law: Why More GPUs Don&#8217;t Always Help<\/h2>\n\n  <p>You might think: &#8220;Fine \u2014 let&#8217;s just add more GPUs!&#8221; But a classic principle called <strong>Amdahl&#8217;s Law<\/strong> explains exactly why this doesn&#8217;t fix the problem.<\/p>\n\n  <h3>Amdahl&#8217;s Law (Simply Put)<\/h3>\n\n  <blockquote>The speed of a system is always limited by the part that <em>cannot<\/em> be sped up.\n  <\/blockquote>\n\n  <p>If 10% of a task must happen sequentially \u2014 one step at a time \u2014 then even with infinite processors handling the other 90%, you can never exceed a <strong>10\u00d7 speedup<\/strong>. You hit a hard ceiling.<\/p>\n\n  <!-- DIAGRAM 5: Amdahl's Law Visualised -->\n  <div class=\"diagram\">\n    <div class=\"diagram-title\">Fig 5 \u2014 Amdahl&#8217;s Law &amp; the Memory Bottleneck<\/div>\n    <svg viewBox=\"0 0 720 280\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"height:280px\">\n\n      <!-- Scenario A: Before (balanced) -->\n      <text x=\"50\" y=\"30\" font-family=\"'Playfair Display',serif\" font-size=\"14\" font-weight=\"700\" fill=\"#1a1209\">Scenario A: Compute-bound<\/text>\n      <!-- Full bar -->\n      <rect x=\"50\" y=\"40\" width=\"280\" height=\"30\" rx=\"4\" fill=\"#e8f4fd\" stroke=\"#d4c5b0\" stroke-width=\"1\"\/>\n      <!-- Compute part -->\n      <rect x=\"50\" y=\"40\" width=\"224\" height=\"30\" rx=\"4\" fill=\"#2471a3\"\/>\n      <!-- Memory part -->\n      <rect x=\"274\" y=\"40\" width=\"56\" height=\"30\" rx=\"0\" fill=\"#c0392b\"\/>\n      <rect x=\"274\" y=\"40\" width=\"56\" height=\"30\" rx=\"4\" fill=\"#c0392b\"\/>\n      <text x=\"162\" y=\"61\" text-anchor=\"middle\" font-family=\"'JetBrains Mono',monospace\" font-size=\"11\" fill=\"white\">Compute 80%<\/text>\n      <text x=\"302\" y=\"61\" text-anchor=\"middle\" font-family=\"'JetBrains Mono',monospace\" font-size=\"10\" fill=\"white\">Mem 20%<\/text>\n\n      <text x=\"350\" y=\"61\" font-family=\"'Source Serif 4',serif\" font-size=\"13\" fill=\"#7a6a55\">\u2192 Adding GPUs helps a lot<\/text>\n\n      <!-- Scenario B: AI workload (memory dominated) -->\n      <text x=\"50\" y=\"110\" font-family=\"'Playfair Display',serif\" font-size=\"14\" font-weight=\"700\" fill=\"#1a1209\">Scenario B: Memory-bound (AI workloads)<\/text>\n      <rect x=\"50\" y=\"120\" width=\"280\" height=\"30\" rx=\"4\" fill=\"#fdecea\" stroke=\"#d4c5b0\" stroke-width=\"1\"\/>\n      <rect x=\"50\" y=\"120\" width=\"56\" height=\"30\" rx=\"4\" fill=\"#2471a3\"\/>\n      <rect x=\"106\" y=\"120\" width=\"224\" height=\"30\" rx=\"0\" fill=\"#c0392b\"\/>\n      <rect x=\"106\" y=\"120\" width=\"224\" height=\"30\" rx=\"4\" fill=\"#c0392b\"\/>\n      <text x=\"78\" y=\"141\" text-anchor=\"middle\" font-family=\"'JetBrains Mono',monospace\" font-size=\"10\" fill=\"white\">20%<\/text>\n      <text x=\"218\" y=\"141\" text-anchor=\"middle\" font-family=\"'JetBrains Mono',monospace\" font-size=\"11\" fill=\"white\">Memory waiting 80%<\/text>\n\n      <!-- GPU speedup comparison -->\n      <text x=\"350\" y=\"141\" font-family=\"'Source Serif 4',serif\" font-size=\"13\" fill=\"#c0392b\">\u2192 Adding GPUs barely helps<\/text>\n\n      <!-- Speedup chart -->\n      <text x=\"50\" y=\"190\" font-family=\"'Playfair Display',serif\" font-size=\"14\" font-weight=\"700\" fill=\"#1a1209\">Max Speedup from Adding GPUs:<\/text>\n\n      <!-- Bars -->\n      <!-- Compute-bound: 5\u00d7 speedup -->\n      <rect x=\"50\" y=\"205\" width=\"200\" height=\"22\" rx=\"3\" fill=\"#2471a3\"\/>\n      <text x=\"258\" y=\"221\" font-family=\"'JetBrains Mono',monospace\" font-size=\"12\" fill=\"#2471a3\">5\u00d7 speedup<\/text>\n      <text x=\"30\" y=\"221\" text-anchor=\"end\" font-family=\"'Source Serif 4',serif\" font-size=\"12\" fill=\"#7a6a55\">80%<\/text>\n\n      <!-- Memory-bound: 1.25\u00d7 speedup -->\n      <rect x=\"50\" y=\"238\" width=\"50\" height=\"22\" rx=\"3\" fill=\"#c0392b\"\/>\n      <text x=\"108\" y=\"254\" font-family=\"'JetBrains Mono',monospace\" font-size=\"12\" fill=\"#c0392b\">1.25\u00d7 speedup<\/text>\n      <text x=\"30\" y=\"254\" text-anchor=\"end\" font-family=\"'Source Serif 4',serif\" font-size=\"12\" fill=\"#7a6a55\">20%<\/text>\n\n      <!-- Note -->\n      <rect x=\"420\" y=\"200\" width=\"270\" height=\"60\" rx=\"8\" fill=\"#fff9f0\" stroke=\"#d4c5b0\"\/>\n      <text x=\"555\" y=\"220\" text-anchor=\"middle\" font-family=\"'Source Serif 4',serif\" font-size=\"13\" fill=\"#1a1209\">Even with 100 GPUs,<\/text>\n      <text x=\"555\" y=\"238\" text-anchor=\"middle\" font-family=\"'Source Serif 4',serif\" font-size=\"13\" fill=\"#1a1209\">a memory-bound task gives<\/text>\n      <text x=\"555\" y=\"256\" text-anchor=\"middle\" font-family=\"'JetBrains Mono',monospace\" font-size=\"14\" font-weight=\"700\" fill=\"#c0392b\">only 1.25\u00d7 improvement<\/text>\n    <\/svg>\n  <\/div>\n\n  <p>This is exactly what happens in many real AI workloads today. The memory wall turns data movement into the new &#8220;serial bottleneck&#8221; that Amdahl&#8217;s Law describes \u2014 except this time it&#8217;s a hardware limit, not a software one.<\/p>\n\n  <!-- DIAGRAM 6: The Family of Limits -->\n  <div class=\"diagram\">\n    <div class=\"diagram-title\">Fig 6 \u2014 The Three Physics Walls of Modern Computing<\/div>\n    <svg viewBox=\"0 0 720 200\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"height:200px\">\n      <!-- Wall 1 -->\n      <rect x=\"30\" y=\"30\" width=\"200\" height=\"130\" rx=\"10\" fill=\"#fff\" stroke=\"#d4c5b0\" stroke-width=\"1.5\"\/>\n      <rect x=\"30\" y=\"30\" width=\"200\" height=\"6\" rx=\"10\" fill=\"#2471a3\"\/>\n      <text x=\"130\" y=\"70\" text-anchor=\"middle\" font-family=\"'Playfair Display',serif\" font-size=\"15\" font-weight=\"700\" fill=\"#1a1209\">Power Wall<\/text>\n      <text x=\"130\" y=\"92\" text-anchor=\"middle\" font-family=\"'Source Serif 4',serif\" font-size=\"13\" fill=\"#7a6a55\">Chips overheat if<\/text>\n      <text x=\"130\" y=\"110\" text-anchor=\"middle\" font-family=\"'Source Serif 4',serif\" font-size=\"13\" fill=\"#7a6a55\">clocked faster<\/text>\n      <text x=\"130\" y=\"140\" text-anchor=\"middle\" font-family=\"'JetBrains Mono',monospace\" font-size=\"11\" fill=\"#2471a3\">Ended GHz race<\/text>\n      <text x=\"130\" y=\"158\" text-anchor=\"middle\" font-family=\"'JetBrains Mono',monospace\" font-size=\"11\" fill=\"#2471a3\">~2004<\/text>\n\n      <!-- Wall 2 -->\n      <rect x=\"260\" y=\"30\" width=\"200\" height=\"130\" rx=\"10\" fill=\"#fff\" stroke=\"#d4c5b0\" stroke-width=\"1.5\"\/>\n      <rect x=\"260\" y=\"30\" width=\"200\" height=\"6\" rx=\"10\" fill=\"#b7860b\"\/>\n      <text x=\"360\" y=\"70\" text-anchor=\"middle\" font-family=\"'Playfair Display',serif\" font-size=\"15\" font-weight=\"700\" fill=\"#1a1209\">Dennard Scaling<\/text>\n      <text x=\"360\" y=\"92\" text-anchor=\"middle\" font-family=\"'Source Serif 4',serif\" font-size=\"13\" fill=\"#7a6a55\">Chips no longer get<\/text>\n      <text x=\"360\" y=\"110\" text-anchor=\"middle\" font-family=\"'Source Serif 4',serif\" font-size=\"13\" fill=\"#7a6a55\">more efficient as<\/text>\n      <text x=\"360\" y=\"128\" text-anchor=\"middle\" font-family=\"'Source Serif 4',serif\" font-size=\"13\" fill=\"#7a6a55\">they shrink<\/text>\n      <text x=\"360\" y=\"152\" text-anchor=\"middle\" font-family=\"'JetBrains Mono',monospace\" font-size=\"11\" fill=\"#b7860b\">Ended ~2006<\/text>\n\n      <!-- Wall 3 (highlighted) -->\n      <rect x=\"490\" y=\"30\" width=\"200\" height=\"130\" rx=\"10\" fill=\"#fdecea\" stroke=\"#c0392b\" stroke-width=\"2\"\/>\n      <rect x=\"490\" y=\"30\" width=\"200\" height=\"6\" rx=\"10\" fill=\"#c0392b\"\/>\n      <text x=\"590\" y=\"70\" text-anchor=\"middle\" font-family=\"'Playfair Display',serif\" font-size=\"15\" font-weight=\"700\" fill=\"#1a1209\">Memory Wall<\/text>\n      <text x=\"590\" y=\"92\" text-anchor=\"middle\" font-family=\"'Source Serif 4',serif\" font-size=\"13\" fill=\"#7a6a55\">Processors wait for<\/text>\n      <text x=\"590\" y=\"110\" text-anchor=\"middle\" font-family=\"'Source Serif 4',serif\" font-size=\"13\" fill=\"#7a6a55\">data more than<\/text>\n      <text x=\"590\" y=\"128\" text-anchor=\"middle\" font-family=\"'Source Serif 4',serif\" font-size=\"13\" fill=\"#7a6a55\">they compute<\/text>\n      <text x=\"590\" y=\"152\" text-anchor=\"middle\" font-family=\"'JetBrains Mono',monospace\" font-size=\"11\" fill=\"#c0392b\" font-weight=\"600\">Today&#8217;s key limit<\/text>\n\n      <!-- Together label -->\n      <text x=\"360\" y=\"192\" text-anchor=\"middle\" font-family=\"'Source Serif 4',serif\" font-size=\"13\" fill=\"#7a6a55\" font-style=\"italic\">Together they explain why simply &#8220;adding more chips&#8221; no longer works.<\/text>\n    <\/svg>\n  <\/div>\n\n  <!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 SECTION 6 \u2550\u2550\u2550 -->\n  <h2>What Is Being Done About It?<\/h2>\n\n  <p>Engineers and researchers are attacking the memory wall from multiple directions simultaneously. Here are the most promising approaches:<\/p>\n\n  <!-- DIAGRAM 7: HBM Architecture -->\n  <div class=\"diagram\">\n    <div class=\"diagram-title\">Fig 7 \u2014 High Bandwidth Memory (HBM): Stacking Memory on the Processor<\/div>\n    <svg viewBox=\"0 0 720 240\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"height:240px\">\n      <!-- Traditional: far away -->\n      <text x=\"170\" y=\"25\" text-anchor=\"middle\" font-family=\"'Playfair Display',serif\" font-size=\"14\" font-weight=\"700\" fill=\"#1a1209\">Traditional<\/text>\n\n      <!-- CPU -->\n      <rect x=\"80\" y=\"40\" width=\"100\" height=\"60\" rx=\"6\" fill=\"#e8f4fd\" stroke=\"#2471a3\" stroke-width=\"2\"\/>\n      <text x=\"130\" y=\"75\" text-anchor=\"middle\" font-family=\"'JetBrains Mono',monospace\" font-size=\"12\" fill=\"#2471a3\">CPU\/GPU<\/text>\n\n      <!-- Long wire -->\n      <path d=\"M180,70 L280,70 L280,120 L80,120 L80,160 L180,160\" stroke=\"#c0392b\" stroke-width=\"2\" fill=\"none\" stroke-dasharray=\"6 3\"\/>\n      <text x=\"210\" y=\"115\" text-anchor=\"middle\" font-family=\"'Source Serif 4',serif\" font-size=\"11\" fill=\"#c0392b\">long distance<\/text>\n\n      <!-- RAM -->\n      <rect x=\"80\" y=\"160\" width=\"100\" height=\"50\" rx=\"6\" fill=\"#fdecea\" stroke=\"#c0392b\" stroke-width=\"2\"\/>\n      <text x=\"130\" y=\"190\" text-anchor=\"middle\" font-family=\"'JetBrains Mono',monospace\" font-size=\"12\" fill=\"#c0392b\">DRAM<\/text>\n\n      <!-- Bandwidth label -->\n      <text x=\"170\" y=\"230\" text-anchor=\"middle\" font-family=\"'JetBrains Mono',monospace\" font-size=\"11\" fill=\"#7a6a55\">~50 GB\/s bandwidth<\/text>\n\n      <!-- Divider -->\n      <line x1=\"350\" y1=\"20\" x2=\"350\" y2=\"220\" stroke=\"#d4c5b0\" stroke-width=\"1\" stroke-dasharray=\"6 4\"\/>\n\n      <!-- HBM: stacked -->\n      <text x=\"530\" y=\"25\" text-anchor=\"middle\" font-family=\"'Playfair Display',serif\" font-size=\"14\" font-weight=\"700\" fill=\"#1a1209\">With HBM<\/text>\n\n      <!-- Stacked layers -->\n      <rect x=\"430\" y=\"130\" width=\"200\" height=\"35\" rx=\"4\" fill=\"#e8f4fd\" stroke=\"#2471a3\" stroke-width=\"2\"\/>\n      <text x=\"530\" y=\"153\" text-anchor=\"middle\" font-family=\"'JetBrains Mono',monospace\" font-size=\"12\" fill=\"#2471a3\">GPU Processor<\/text>\n\n      <rect x=\"450\" y=\"95\" width=\"160\" height=\"28\" rx=\"4\" fill=\"#e8f4fe\" stroke=\"#2471a3\" stroke-width=\"1.5\"\/>\n      <text x=\"530\" y=\"114\" text-anchor=\"middle\" font-family=\"'JetBrains Mono',monospace\" font-size=\"10\" fill=\"#2471a3\">HBM Layer 3<\/text>\n\n      <rect x=\"450\" y=\"67\" width=\"160\" height=\"28\" rx=\"4\" fill=\"#d5eef9\" stroke=\"#2471a3\" stroke-width=\"1.5\"\/>\n      <text x=\"530\" y=\"86\" text-anchor=\"middle\" font-family=\"'JetBrains Mono',monospace\" font-size=\"10\" fill=\"#2471a3\">HBM Layer 2<\/text>\n\n      <rect x=\"450\" y=\"39\" width=\"160\" height=\"28\" rx=\"4\" fill=\"#c5e4f5\" stroke=\"#2471a3\" stroke-width=\"1.5\"\/>\n      <text x=\"530\" y=\"58\" text-anchor=\"middle\" font-family=\"'JetBrains Mono',monospace\" font-size=\"10\" fill=\"#2471a3\">HBM Layer 1<\/text>\n\n      <!-- Short connections -->\n      <line x1=\"530\" y1=\"95\" x2=\"530\" y2=\"67\" stroke=\"#2471a3\" stroke-width=\"3\"\/>\n      <line x1=\"530\" y1=\"130\" x2=\"530\" y2=\"95\" stroke=\"#2471a3\" stroke-width=\"3\"\/>\n\n      <!-- Bandwidth label -->\n      <text x=\"530\" y=\"190\" text-anchor=\"middle\" font-family=\"'JetBrains Mono',monospace\" font-size=\"11\" fill=\"#2471a3\" font-weight=\"600\">3,000+ GB\/s bandwidth<\/text>\n      <text x=\"530\" y=\"207\" text-anchor=\"middle\" font-family=\"'Source Serif 4',serif\" font-size=\"12\" fill=\"#7a6a55\">60\u00d7 improvement<\/text>\n\n      <text x=\"530\" y=\"228\" text-anchor=\"middle\" font-family=\"'JetBrains Mono',monospace\" font-size=\"11\" fill=\"#b7860b\">Used in NVIDIA H100, A100<\/text>\n    <\/svg>\n  <\/div>\n\n  <div class=\"solutions-grid\">\n    <div class=\"solution-card\">\n      <div class=\"solution-icon\">\ud83e\uddf1<\/div>\n      <h4>High Bandwidth Memory (HBM)<\/h4>\n      <p>Memory stacked directly on the processor chip using 3D packaging. Eliminates the long data journey across a circuit board. NVIDIA&#8217;s H100 achieves over 3 TB\/s \u2014 60\u00d7 faster than traditional RAM.<\/p>\n    <\/div>\n    <div class=\"solution-card\">\n      <div class=\"solution-icon\">\ud83e\udde0<\/div>\n      <h4>Processing-in-Memory (PIM)<\/h4>\n      <p>Instead of moving data to the processor, small processors are built directly into the memory chip. The data never has to travel at all. Early commercial products are beginning to appear.<\/p>\n    <\/div>\n    <div class=\"solution-card\">\n      <div class=\"solution-icon\">\u26a1<\/div>\n      <h4>Smarter Caching<\/h4>\n      <p>Small ultra-fast memory banks (caches) built onto the processor chip store frequently used data. Modern AI chips use much larger caches and smarter prediction algorithms to reduce idle waiting time.<\/p>\n    <\/div>\n    <div class=\"solution-card\">\n      <div class=\"solution-icon\">\u2702\ufe0f<\/div>\n      <h4>Sparsity &amp; Compression<\/h4>\n      <p>If a model doesn&#8217;t need all its parameters for every task, why load them all? Pruning removes unnecessary parameters; quantisation uses lower-precision numbers \u2014 dramatically reducing data movement.<\/p>\n    <\/div>\n    <div class=\"solution-card\">\n      <div class=\"solution-icon\">\ud83d\udd06<\/div>\n      <h4>Optical Interconnects<\/h4>\n      <p>Transmitting data using light instead of electrical signals. Light travels faster and doesn&#8217;t generate heat, potentially solving both the memory wall and power wall simultaneously.<\/p>\n    <\/div>\n    <div class=\"solution-card\">\n      <div class=\"solution-icon\">\ud83c\udf10<\/div>\n      <h4>Near-Memory Architectures<\/h4>\n      <p>Chip designs like Cerebras and Graphcore use massive chips with enormous on-chip memory, so data never leaves the chip. Trades conventional processor flexibility for raw memory bandwidth.<\/p>\n    <\/div>\n  <\/div>\n\n  <!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 SECTION 7 \u2550\u2550\u2550 -->\n  <h2>Why Everyone Should Care<\/h2>\n\n  <!-- DIAGRAM 8: Real-world impact -->\n  <div class=\"diagram\">\n    <div class=\"diagram-title\">Fig 8 \u2014 Real-World Consequences of the Memory Wall<\/div>\n    <svg viewBox=\"0 0 720 180\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"height:180px\">\n      <!-- Node 1: Energy -->\n      <circle cx=\"130\" cy=\"90\" r=\"55\" fill=\"#fff9f0\" stroke=\"#b7860b\" stroke-width=\"2\"\/>\n      <text x=\"130\" y=\"78\" text-anchor=\"middle\" font-size=\"22\">\u26a1<\/text>\n      <text x=\"130\" y=\"98\" text-anchor=\"middle\" font-family=\"'Playfair Display',serif\" font-size=\"13\" font-weight=\"700\" fill=\"#1a1209\">Energy<\/text>\n      <text x=\"130\" y=\"115\" text-anchor=\"middle\" font-family=\"'Source Serif 4',serif\" font-size=\"11\" fill=\"#7a6a55\">Data centres<\/text>\n      <text x=\"130\" y=\"130\" text-anchor=\"middle\" font-family=\"'Source Serif 4',serif\" font-size=\"11\" fill=\"#7a6a55\">consume more power<\/text>\n\n      <line x1=\"187\" y1=\"90\" x2=\"233\" y2=\"90\" stroke=\"#d4c5b0\" stroke-width=\"1.5\" stroke-dasharray=\"4 3\"\/>\n\n      <!-- Node 2: Cost -->\n      <circle cx=\"290\" cy=\"90\" r=\"55\" fill=\"#fff9f0\" stroke=\"#c0392b\" stroke-width=\"2\"\/>\n      <text x=\"290\" y=\"78\" text-anchor=\"middle\" font-size=\"22\">\ud83d\udcb8<\/text>\n      <text x=\"290\" y=\"98\" text-anchor=\"middle\" font-family=\"'Playfair Display',serif\" font-size=\"13\" font-weight=\"700\" fill=\"#1a1209\">AI Cost<\/text>\n      <text x=\"290\" y=\"115\" text-anchor=\"middle\" font-family=\"'Source Serif 4',serif\" font-size=\"11\" fill=\"#7a6a55\">Running AI models<\/text>\n      <text x=\"290\" y=\"130\" text-anchor=\"middle\" font-family=\"'Source Serif 4',serif\" font-size=\"11\" fill=\"#7a6a55\">is expensive<\/text>\n\n      <line x1=\"347\" y1=\"90\" x2=\"393\" y2=\"90\" stroke=\"#d4c5b0\" stroke-width=\"1.5\" stroke-dasharray=\"4 3\"\/>\n\n      <!-- Node 3: Climate -->\n      <circle cx=\"450\" cy=\"90\" r=\"55\" fill=\"#fff9f0\" stroke=\"#2471a3\" stroke-width=\"2\"\/>\n      <text x=\"450\" y=\"78\" text-anchor=\"middle\" font-size=\"22\">\ud83c\udf0d<\/text>\n      <text x=\"450\" y=\"98\" text-anchor=\"middle\" font-family=\"'Playfair Display',serif\" font-size=\"13\" font-weight=\"700\" fill=\"#1a1209\">Climate<\/text>\n      <text x=\"450\" y=\"115\" text-anchor=\"middle\" font-family=\"'Source Serif 4',serif\" font-size=\"11\" fill=\"#7a6a55\">AI&#8217;s carbon<\/text>\n      <text x=\"450\" y=\"130\" text-anchor=\"middle\" font-family=\"'Source Serif 4',serif\" font-size=\"11\" fill=\"#7a6a55\">footprint grows<\/text>\n\n      <line x1=\"507\" y1=\"90\" x2=\"553\" y2=\"90\" stroke=\"#d4c5b0\" stroke-width=\"1.5\" stroke-dasharray=\"4 3\"\/>\n\n      <!-- Node 4: Progress -->\n      <circle cx=\"610\" cy=\"90\" r=\"55\" fill=\"#fff9f0\" stroke=\"#1a1209\" stroke-width=\"2\"\/>\n      <text x=\"610\" y=\"78\" text-anchor=\"middle\" font-size=\"22\">\ud83d\udd2c<\/text>\n      <text x=\"610\" y=\"98\" text-anchor=\"middle\" font-family=\"'Playfair Display',serif\" font-size=\"13\" font-weight=\"700\" fill=\"#1a1209\">Innovation<\/text>\n      <text x=\"610\" y=\"115\" text-anchor=\"middle\" font-family=\"'Source Serif 4',serif\" font-size=\"11\" fill=\"#7a6a55\">Limits what AI<\/text>\n      <text x=\"610\" y=\"130\" text-anchor=\"middle\" font-family=\"'Source Serif 4',serif\" font-size=\"11\" fill=\"#7a6a55\">can become<\/text>\n    <\/svg>\n  <\/div>\n\n  <p>The memory wall has consequences that reach far beyond chip design labs:<\/p>\n\n  <p><strong>Energy &amp; climate:<\/strong> A significant portion of data centre electricity is spent moving data, not computing. Solving the memory wall could dramatically reduce AI&#8217;s carbon footprint \u2014 a problem that grows with every new model.<\/p>\n\n  <p><strong>AI accessibility:<\/strong> The expense of running large AI models is partly a memory problem. Better memory architecture could make AI faster, cheaper, and accessible to smaller organisations and developing economies.<\/p>\n\n  <p><strong>The end of &#8220;just build faster chips&#8221;:<\/strong> For decades, computers doubled in power every two years (Moore&#8217;s Law). The memory wall \u2014 alongside the power wall \u2014 is one of the key reasons that era has ended. Simply building faster processors no longer automatically produces faster systems.<\/p>\n\n  <!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 CLOSING \u2550\u2550\u2550 -->\n  <hr>\n\n  <div class=\"callout\">\n    <h3>The Big Takeaway<\/h3>\n    <p>We have built processors of extraordinary speed \u2014 but we haven&#8217;t built equally fast highways to deliver data to them. The processor sits at the end of a slow road, waiting. This is the memory wall. And it explains, more than almost any other concept, why adding more GPUs doesn&#8217;t always make AI faster, why data centres consume enormous power, and why the next frontier in computing is not just about making processors faster \u2014 but about rethinking how data <em>moves<\/em>.<\/p>\n  <\/div>\n\n  <p>The chef is brilliant. The kitchen is magnificent. We just need a better pantry \u2014 and a much faster delivery system.<\/p>\n\n<\/div>\n\n<footer>\n  Disclaimer : Made with Claude AI for graphics.\n<\/footer>\n\n<\/body>\n<\/html>\n\n","protected":false},"excerpt":{"rendered":"<p>The Chef Who Had to Wait Imagine a world-class chef who can prepare 100 dishes per hour. The kitchen is state-of-the-art, the chef is lightning fast \u2014 and completely idle most of the day. The problem? The pantry is slow. Ingredients arrive at a rate that supports only 30 dishes per hour. The chef spends [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"off","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":""},"categories":[67],"tags":[147,145],"class_list":["post-2890","post","type-post","status-publish","format-standard","hentry","category-lai","tag-compute","tag-memory"],"_links":{"self":[{"href":"https:\/\/basavapurushottam.com\/index.php\/wp-json\/wp\/v2\/posts\/2890","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/basavapurushottam.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/basavapurushottam.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/basavapurushottam.com\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/basavapurushottam.com\/index.php\/wp-json\/wp\/v2\/comments?post=2890"}],"version-history":[{"count":3,"href":"https:\/\/basavapurushottam.com\/index.php\/wp-json\/wp\/v2\/posts\/2890\/revisions"}],"predecessor-version":[{"id":2893,"href":"https:\/\/basavapurushottam.com\/index.php\/wp-json\/wp\/v2\/posts\/2890\/revisions\/2893"}],"wp:attachment":[{"href":"https:\/\/basavapurushottam.com\/index.php\/wp-json\/wp\/v2\/media?parent=2890"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/basavapurushottam.com\/index.php\/wp-json\/wp\/v2\/categories?post=2890"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/basavapurushottam.com\/index.php\/wp-json\/wp\/v2\/tags?post=2890"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}