{
 "rule": "studies/compare/PROBLEM.md, 2026-11-08 18:18 (reported, not used)",
 "what": "Array size a memory keeps busy in single-token decoding (every weight read once per token), from the measured clock, utilization and bits per useful MAC (M3) of each process's 256-MAC CV-GEMV row on the base layer. Peak bandwidth only; a real controller reaches less, so every size is an upper bound.",
 "memories": [
  {
   "name": "LPDDR4X-4266 x32",
   "mt_s": 4266,
   "bus_bits": 32,
   "peak_gb_s": 17.064
  },
  {
   "name": "LPDDR5-6400 x32",
   "mt_s": 6400,
   "bus_bits": 32,
   "peak_gb_s": 25.6
  },
  {
   "name": "LPDDR5X-8533 x16",
   "mt_s": 8533,
   "bus_bits": 16,
   "peak_gb_s": 17.066
  },
  {
   "name": "LPDDR5X-8533 x32",
   "mt_s": 8533,
   "bus_bits": 32,
   "peak_gb_s": 34.132
  },
  {
   "name": "LPDDR5X-8533 x64",
   "mt_s": 8533,
   "bus_bits": 64,
   "peak_gb_s": 68.264
  },
  {
   "name": "LPDDR5X-8533 x128",
   "mt_s": 8533,
   "bus_bits": 128,
   "peak_gb_s": 136.528
  },
  {
   "name": "LPDDR5X-8533 x256",
   "mt_s": 8533,
   "bus_bits": 256,
   "peak_gb_s": 273.056
  },
  {
   "name": "HBM3-6400 x1024 (one stack)",
   "mt_s": 6400,
   "bus_bits": 1024,
   "peak_gb_s": 819.2
  }
 ],
 "sizes": [
  64,
  128,
  256,
  512,
  1024,
  2048,
  4096
 ],
 "measured_sizes": [
  64,
  256
 ],
 "qwen25_05b_macs_per_token": 493961216,
 "qwen25_05b_macs_per_token_parts": {
  "per_layer": 14909440,
  "layers": 24,
  "output_projection": 136134656
 },
 "by_process": {
  "nangate45": {
   "inputs_256": {
    "clock_used_mhz": 250.0,
    "met_target": true,
    "utilization": 0.9854132901134521,
    "M3_bits_per_useful_mac": 4.625,
    "cell_area_um2": 97164.2
   },
   "inputs_64": {
    "clock_used_mhz": 250.0,
    "utilization": 0.9854132901134521,
    "M3_bits_per_useful_mac": 5.375,
    "cell_area_um2": 25117.8
   },
   "bandwidth_needed_gb_s": {
    "cv_gemv_64": 10.59319286871961,
    "cv_gemv_256": 36.460291734197725,
    "w8a8_256": 65.46166394779772
   },
   "by_memory": [
    {
     "memory": "LPDDR4X-4266 x32",
     "peak_gb_s": 17.064,
     "gmac_s": 29.51610810810811,
     "macs_per_cycle_needed": 119.81209672830727,
     "size": 128,
     "above_largest": false,
     "size_measured": false,
     "qwen25_05b_tokens_per_s": 59.75389798236327
    },
    {
     "memory": "LPDDR5-6400 x32",
     "peak_gb_s": 25.6,
     "gmac_s": 44.281081081081076,
     "macs_per_cycle_needed": 179.74623044096728,
     "size": 256,
     "above_largest": false,
     "size_measured": true,
     "qwen25_05b_tokens_per_s": 89.64485398197958
    },
    {
     "memory": "LPDDR5X-8533 x16",
     "peak_gb_s": 17.066,
     "gmac_s": 29.519567567567567,
     "macs_per_cycle_needed": 119.82613940256046,
     "size": 128,
     "above_largest": false,
     "size_measured": false,
     "qwen25_05b_tokens_per_s": 59.76090148658061
    },
    {
     "memory": "LPDDR5X-8533 x32",
     "peak_gb_s": 34.132,
     "gmac_s": 59.03913513513513,
     "macs_per_cycle_needed": 239.65227880512091,
     "size": 256,
     "above_largest": false,
     "size_measured": true,
     "qwen25_05b_tokens_per_s": 119.52180297316121
    },
    {
     "memory": "LPDDR5X-8533 x64",
     "peak_gb_s": 68.264,
     "gmac_s": 118.07827027027027,
     "macs_per_cycle_needed": 479.30455761024183,
     "size": 512,
     "above_largest": false,
     "size_measured": false,
     "qwen25_05b_tokens_per_s": 239.04360594632243
    },
    {
     "memory": "LPDDR5X-8533 x128",
     "peak_gb_s": 136.528,
     "gmac_s": 236.15654054054053,
     "macs_per_cycle_needed": 958.6091152204837,
     "size": 1024,
     "above_largest": false,
     "size_measured": false,
     "qwen25_05b_tokens_per_s": 478.08721189264486
    },
    {
     "memory": "LPDDR5X-8533 x256",
     "peak_gb_s": 273.056,
     "gmac_s": 472.31308108108107,
     "macs_per_cycle_needed": 1917.2182304409673,
     "size": 2048,
     "above_largest": false,
     "size_measured": false,
     "qwen25_05b_tokens_per_s": 956.1744237852897
    },
    {
     "memory": "HBM3-6400 x1024 (one stack)",
     "peak_gb_s": 819.2,
     "gmac_s": 1416.9945945945944,
     "macs_per_cycle_needed": 5751.879374110953,
     "size": null,
     "above_largest": true,
     "size_measured": false,
     "qwen25_05b_tokens_per_s": 2868.6353274233466
    }
   ],
   "w8a8_256_M3_bits_per_useful_mac": 8.25
  },
  "asap7": {
   "inputs_256": {
    "clock_used_mhz": 1000.0,
    "met_target": true,
    "utilization": 0.9838187702265372,
    "M3_bits_per_useful_mac": 4.625,
    "cell_area_um2": 8985.99
   },
   "inputs_64": {
    "clock_used_mhz": 1000.0,
    "utilization": 0.9838187702265372,
    "M3_bits_per_useful_mac": 5.375,
    "cell_area_um2": 2274.2
   },
   "bandwidth_needed_gb_s": {
    "cv_gemv_64": 42.30420711974111,
    "cv_gemv_256": 145.6051779935275,
    "w8a8_256": 261.84665579119087
   },
   "by_memory": [
    {
     "memory": "LPDDR4X-4266 x32",
     "peak_gb_s": 17.064,
     "gmac_s": 29.51610810810811,
     "macs_per_cycle_needed": 30.001570412517783,
     "size": 64,
     "above_largest": false,
     "size_measured": true,
     "qwen25_05b_tokens_per_s": 59.75389798236327
    },
    {
     "memory": "LPDDR5-6400 x32",
     "peak_gb_s": 25.6,
     "gmac_s": 44.281081081081076,
     "macs_per_cycle_needed": 45.009388335704124,
     "size": 64,
     "above_largest": false,
     "size_measured": true,
     "qwen25_05b_tokens_per_s": 89.64485398197958
    },
    {
     "memory": "LPDDR5X-8533 x16",
     "peak_gb_s": 17.066,
     "gmac_s": 29.519567567567567,
     "macs_per_cycle_needed": 30.005086770981507,
     "size": 64,
     "above_largest": false,
     "size_measured": true,
     "qwen25_05b_tokens_per_s": 59.76090148658061
    },
    {
     "memory": "LPDDR5X-8533 x32",
     "peak_gb_s": 34.132,
     "gmac_s": 59.03913513513513,
     "macs_per_cycle_needed": 60.01017354196301,
     "size": 64,
     "above_largest": false,
     "size_measured": true,
     "qwen25_05b_tokens_per_s": 119.52180297316121
    },
    {
     "memory": "LPDDR5X-8533 x64",
     "peak_gb_s": 68.264,
     "gmac_s": 118.07827027027027,
     "macs_per_cycle_needed": 120.02034708392603,
     "size": 128,
     "above_largest": false,
     "size_measured": false,
     "qwen25_05b_tokens_per_s": 239.04360594632243
    },
    {
     "memory": "LPDDR5X-8533 x128",
     "peak_gb_s": 136.528,
     "gmac_s": 236.15654054054053,
     "macs_per_cycle_needed": 240.04069416785205,
     "size": 256,
     "above_largest": false,
     "size_measured": true,
     "qwen25_05b_tokens_per_s": 478.08721189264486
    },
    {
     "memory": "LPDDR5X-8533 x256",
     "peak_gb_s": 273.056,
     "gmac_s": 472.31308108108107,
     "macs_per_cycle_needed": 480.0813883357041,
     "size": 512,
     "above_largest": false,
     "size_measured": false,
     "qwen25_05b_tokens_per_s": 956.1744237852897
    },
    {
     "memory": "HBM3-6400 x1024 (one stack)",
     "peak_gb_s": 819.2,
     "gmac_s": 1416.9945945945944,
     "macs_per_cycle_needed": 1440.300426742532,
     "size": 2048,
     "above_largest": false,
     "size_measured": false,
     "qwen25_05b_tokens_per_s": 2868.6353274233466
    }
   ],
   "w8a8_256_M3_bits_per_useful_mac": 8.25
  },
  "sky130hd": {
   "inputs_256": {
    "clock_used_mhz": 125.0,
    "met_target": true,
    "utilization": 0.9854132901134521,
    "M3_bits_per_useful_mac": 4.625,
    "cell_area_um2": 574340
   },
   "inputs_64": {
    "clock_used_mhz": 125.0,
    "utilization": 0.9854132901134521,
    "M3_bits_per_useful_mac": 5.375,
    "cell_area_um2": 137696
   },
   "bandwidth_needed_gb_s": {
    "cv_gemv_64": 5.296596434359805,
    "cv_gemv_256": 18.230145867098862,
    "w8a8_256": 32.73083197389886
   },
   "by_memory": [
    {
     "memory": "LPDDR4X-4266 x32",
     "peak_gb_s": 17.064,
     "gmac_s": 29.51610810810811,
     "macs_per_cycle_needed": 239.62419345661453,
     "size": 256,
     "above_largest": false,
     "size_measured": true,
     "qwen25_05b_tokens_per_s": 59.75389798236327
    },
    {
     "memory": "LPDDR5-6400 x32",
     "peak_gb_s": 25.6,
     "gmac_s": 44.281081081081076,
     "macs_per_cycle_needed": 359.49246088193456,
     "size": 512,
     "above_largest": false,
     "size_measured": false,
     "qwen25_05b_tokens_per_s": 89.64485398197958
    },
    {
     "memory": "LPDDR5X-8533 x16",
     "peak_gb_s": 17.066,
     "gmac_s": 29.519567567567567,
     "macs_per_cycle_needed": 239.65227880512091,
     "size": 256,
     "above_largest": false,
     "size_measured": true,
     "qwen25_05b_tokens_per_s": 59.76090148658061
    },
    {
     "memory": "LPDDR5X-8533 x32",
     "peak_gb_s": 34.132,
     "gmac_s": 59.03913513513513,
     "macs_per_cycle_needed": 479.30455761024183,
     "size": 512,
     "above_largest": false,
     "size_measured": false,
     "qwen25_05b_tokens_per_s": 119.52180297316121
    },
    {
     "memory": "LPDDR5X-8533 x64",
     "peak_gb_s": 68.264,
     "gmac_s": 118.07827027027027,
     "macs_per_cycle_needed": 958.6091152204837,
     "size": 1024,
     "above_largest": false,
     "size_measured": false,
     "qwen25_05b_tokens_per_s": 239.04360594632243
    },
    {
     "memory": "LPDDR5X-8533 x128",
     "peak_gb_s": 136.528,
     "gmac_s": 236.15654054054053,
     "macs_per_cycle_needed": 1917.2182304409673,
     "size": 2048,
     "above_largest": false,
     "size_measured": false,
     "qwen25_05b_tokens_per_s": 478.08721189264486
    },
    {
     "memory": "LPDDR5X-8533 x256",
     "peak_gb_s": 273.056,
     "gmac_s": 472.31308108108107,
     "macs_per_cycle_needed": 3834.4364608819346,
     "size": 4096,
     "above_largest": false,
     "size_measured": false,
     "qwen25_05b_tokens_per_s": 956.1744237852897
    },
    {
     "memory": "HBM3-6400 x1024 (one stack)",
     "peak_gb_s": 819.2,
     "gmac_s": 1416.9945945945944,
     "macs_per_cycle_needed": 11503.758748221906,
     "size": null,
     "above_largest": true,
     "size_measured": false,
     "qwen25_05b_tokens_per_s": 2868.6353274233466
    }
   ],
   "w8a8_256_M3_bits_per_useful_mac": 8.25
  },
  "gf180": {
   "inputs_256": {
    "clock_used_mhz": 118.90606420927466,
    "met_target": false,
    "utilization": 0.9838187702265372,
    "M3_bits_per_useful_mac": 4.625,
    "cell_area_um2": 2811630.0
   },
   "inputs_64": {
    "clock_used_mhz": 124.68827930174564,
    "utilization": 0.9838187702265372,
    "M3_bits_per_useful_mac": 5.375,
    "cell_area_um2": 720068
   },
   "bandwidth_needed_gb_s": {
    "cv_gemv_64": 5.274838792985174,
    "cv_gemv_256": 17.313338643701247,
    "w8a8_256": 29.28933509968578
   },
   "by_memory": [
    {
     "memory": "LPDDR4X-4266 x32",
     "peak_gb_s": 17.064,
     "gmac_s": 29.51610810810811,
     "macs_per_cycle_needed": 252.31320716927456,
     "size": 256,
     "above_largest": false,
     "size_measured": true,
     "qwen25_05b_tokens_per_s": 59.75389798236327
    },
    {
     "memory": "LPDDR5-6400 x32",
     "peak_gb_s": 25.6,
     "gmac_s": 44.281081081081076,
     "macs_per_cycle_needed": 378.5289559032717,
     "size": 512,
     "above_largest": false,
     "size_measured": false,
     "qwen25_05b_tokens_per_s": 89.64485398197958
    },
    {
     "memory": "LPDDR5X-8533 x16",
     "peak_gb_s": 17.066,
     "gmac_s": 29.519567567567567,
     "macs_per_cycle_needed": 252.34277974395448,
     "size": 256,
     "above_largest": false,
     "size_measured": true,
     "qwen25_05b_tokens_per_s": 59.76090148658061
    },
    {
     "memory": "LPDDR5X-8533 x32",
     "peak_gb_s": 34.132,
     "gmac_s": 59.03913513513513,
     "macs_per_cycle_needed": 504.68555948790896,
     "size": 512,
     "above_largest": false,
     "size_measured": false,
     "qwen25_05b_tokens_per_s": 119.52180297316121
    },
    {
     "memory": "LPDDR5X-8533 x64",
     "peak_gb_s": 68.264,
     "gmac_s": 118.07827027027027,
     "macs_per_cycle_needed": 1009.3711189758179,
     "size": 1024,
     "above_largest": false,
     "size_measured": false,
     "qwen25_05b_tokens_per_s": 239.04360594632243
    },
    {
     "memory": "LPDDR5X-8533 x128",
     "peak_gb_s": 136.528,
     "gmac_s": 236.15654054054053,
     "macs_per_cycle_needed": 2018.7422379516358,
     "size": 2048,
     "above_largest": false,
     "size_measured": false,
     "qwen25_05b_tokens_per_s": 478.08721189264486
    },
    {
     "memory": "LPDDR5X-8533 x256",
     "peak_gb_s": 273.056,
     "gmac_s": 472.31308108108107,
     "macs_per_cycle_needed": 4037.4844759032717,
     "size": 4096,
     "above_largest": false,
     "size_measured": false,
     "qwen25_05b_tokens_per_s": 956.1744237852897
    },
    {
     "memory": "HBM3-6400 x1024 (one stack)",
     "peak_gb_s": 819.2,
     "gmac_s": 1416.9945945945944,
     "macs_per_cycle_needed": 12112.926588904695,
     "size": null,
     "above_largest": true,
     "size_measured": false,
     "qwen25_05b_tokens_per_s": 2868.6353274233466
    }
   ],
   "w8a8_256_M3_bits_per_useful_mac": 8.25
  },
  "ihp-sg13g2": {
   "inputs_256": {
    "clock_used_mhz": 125.0,
    "met_target": true,
    "utilization": 0.9854132901134521,
    "M3_bits_per_useful_mac": 4.625,
    "cell_area_um2": 1079470.0
   },
   "inputs_64": {
    "clock_used_mhz": 125.0,
    "utilization": 0.9854132901134521,
    "M3_bits_per_useful_mac": 5.375,
    "cell_area_um2": 284668
   },
   "bandwidth_needed_gb_s": {
    "cv_gemv_64": 5.296596434359805,
    "cv_gemv_256": 18.230145867098862,
    "w8a8_256": 32.73083197389886
   },
   "by_memory": [
    {
     "memory": "LPDDR4X-4266 x32",
     "peak_gb_s": 17.064,
     "gmac_s": 29.51610810810811,
     "macs_per_cycle_needed": 239.62419345661453,
     "size": 256,
     "above_largest": false,
     "size_measured": true,
     "qwen25_05b_tokens_per_s": 59.75389798236327
    },
    {
     "memory": "LPDDR5-6400 x32",
     "peak_gb_s": 25.6,
     "gmac_s": 44.281081081081076,
     "macs_per_cycle_needed": 359.49246088193456,
     "size": 512,
     "above_largest": false,
     "size_measured": false,
     "qwen25_05b_tokens_per_s": 89.64485398197958
    },
    {
     "memory": "LPDDR5X-8533 x16",
     "peak_gb_s": 17.066,
     "gmac_s": 29.519567567567567,
     "macs_per_cycle_needed": 239.65227880512091,
     "size": 256,
     "above_largest": false,
     "size_measured": true,
     "qwen25_05b_tokens_per_s": 59.76090148658061
    },
    {
     "memory": "LPDDR5X-8533 x32",
     "peak_gb_s": 34.132,
     "gmac_s": 59.03913513513513,
     "macs_per_cycle_needed": 479.30455761024183,
     "size": 512,
     "above_largest": false,
     "size_measured": false,
     "qwen25_05b_tokens_per_s": 119.52180297316121
    },
    {
     "memory": "LPDDR5X-8533 x64",
     "peak_gb_s": 68.264,
     "gmac_s": 118.07827027027027,
     "macs_per_cycle_needed": 958.6091152204837,
     "size": 1024,
     "above_largest": false,
     "size_measured": false,
     "qwen25_05b_tokens_per_s": 239.04360594632243
    },
    {
     "memory": "LPDDR5X-8533 x128",
     "peak_gb_s": 136.528,
     "gmac_s": 236.15654054054053,
     "macs_per_cycle_needed": 1917.2182304409673,
     "size": 2048,
     "above_largest": false,
     "size_measured": false,
     "qwen25_05b_tokens_per_s": 478.08721189264486
    },
    {
     "memory": "LPDDR5X-8533 x256",
     "peak_gb_s": 273.056,
     "gmac_s": 472.31308108108107,
     "macs_per_cycle_needed": 3834.4364608819346,
     "size": 4096,
     "above_largest": false,
     "size_measured": false,
     "qwen25_05b_tokens_per_s": 956.1744237852897
    },
    {
     "memory": "HBM3-6400 x1024 (one stack)",
     "peak_gb_s": 819.2,
     "gmac_s": 1416.9945945945944,
     "macs_per_cycle_needed": 11503.758748221906,
     "size": null,
     "above_largest": true,
     "size_measured": false,
     "qwen25_05b_tokens_per_s": 2868.6353274233466
    }
   ],
   "w8a8_256_M3_bits_per_useful_mac": 8.25
  }
 },
 "missing": []
}