{
  "schema": "semiagora.deep-simulation.v1",
  "execution_mode": "precomputed-only",
  "experiment_id": "SA-MEM-003-HBM-THERMAL-ROOFLINE-001",
  "slug": "hbm-thermal-bandwidth-roofline",
  "title": "HBM thermal bandwidth roofline",
  "model_boundary": "normalized package-level teaching model, not vendor HBM data",
  "public_boundary": [
    "No live server solver execution.",
    "No PDK or proprietary compact-model ingestion, measured-silicon claim, qualification signoff, upload, account, payment, comment, newsletter signup, or submission workflow.",
    "Third-party tools and source pages remain source links unless separately reviewed."
  ],
  "headline_metric": {
    "name": "best_bandwidth_per_energy_proxy",
    "value": 0.3186,
    "case": {
      "stack_height": 4,
      "target_bandwidth_tbps": 1.6,
      "cooling": "enhanced"
    }
  },
  "rows": [
    {
      "simulation_id": "SA-MEM-003-HBM-THERMAL-ROOFLINE-001",
      "domain": "memory",
      "stack_height": 4,
      "target_bandwidth_tbps": 0.8,
      "cooling": "baseline",
      "power_w_proxy": 7.32,
      "thermal_headroom_c_proxy": 18.628,
      "usable_bandwidth_tbps": 0.8,
      "energy_pj_per_bit_proxy": 9.15,
      "teaching_point": "HBM bandwidth must be read with stack height, energy per bit, and thermal headroom."
    },
    {
      "simulation_id": "SA-MEM-003-HBM-THERMAL-ROOFLINE-001",
      "domain": "memory",
      "stack_height": 4,
      "target_bandwidth_tbps": 0.8,
      "cooling": "enhanced",
      "power_w_proxy": 5.27,
      "thermal_headroom_c_proxy": 31.932,
      "usable_bandwidth_tbps": 0.8,
      "energy_pj_per_bit_proxy": 6.588,
      "teaching_point": "HBM bandwidth must be read with stack height, energy per bit, and thermal headroom."
    },
    {
      "simulation_id": "SA-MEM-003-HBM-THERMAL-ROOFLINE-001",
      "domain": "memory",
      "stack_height": 4,
      "target_bandwidth_tbps": 1.2,
      "cooling": "baseline",
      "power_w_proxy": 9.24,
      "thermal_headroom_c_proxy": 14.596,
      "usable_bandwidth_tbps": 1.1047,
      "energy_pj_per_bit_proxy": 7.7,
      "teaching_point": "HBM bandwidth must be read with stack height, energy per bit, and thermal headroom."
    },
    {
      "simulation_id": "SA-MEM-003-HBM-THERMAL-ROOFLINE-001",
      "domain": "memory",
      "stack_height": 4,
      "target_bandwidth_tbps": 1.2,
      "cooling": "enhanced",
      "power_w_proxy": 6.653,
      "thermal_headroom_c_proxy": 29.029,
      "usable_bandwidth_tbps": 1.2,
      "energy_pj_per_bit_proxy": 5.544,
      "teaching_point": "HBM bandwidth must be read with stack height, energy per bit, and thermal headroom."
    },
    {
      "simulation_id": "SA-MEM-003-HBM-THERMAL-ROOFLINE-001",
      "domain": "memory",
      "stack_height": 4,
      "target_bandwidth_tbps": 1.6,
      "cooling": "baseline",
      "power_w_proxy": 11.16,
      "thermal_headroom_c_proxy": 10.564,
      "usable_bandwidth_tbps": 1.3224,
      "energy_pj_per_bit_proxy": 6.975,
      "teaching_point": "HBM bandwidth must be read with stack height, energy per bit, and thermal headroom."
    },
    {
      "simulation_id": "SA-MEM-003-HBM-THERMAL-ROOFLINE-001",
      "domain": "memory",
      "stack_height": 4,
      "target_bandwidth_tbps": 1.6,
      "cooling": "enhanced",
      "power_w_proxy": 8.035,
      "thermal_headroom_c_proxy": 26.126,
      "usable_bandwidth_tbps": 1.6,
      "energy_pj_per_bit_proxy": 5.022,
      "teaching_point": "HBM bandwidth must be read with stack height, energy per bit, and thermal headroom."
    },
    {
      "simulation_id": "SA-MEM-003-HBM-THERMAL-ROOFLINE-001",
      "domain": "memory",
      "stack_height": 8,
      "target_bandwidth_tbps": 0.8,
      "cooling": "baseline",
      "power_w_proxy": 8.6,
      "thermal_headroom_c_proxy": 15.94,
      "usable_bandwidth_tbps": 0.7615,
      "energy_pj_per_bit_proxy": 10.75,
      "teaching_point": "HBM bandwidth must be read with stack height, energy per bit, and thermal headroom."
    },
    {
      "simulation_id": "SA-MEM-003-HBM-THERMAL-ROOFLINE-001",
      "domain": "memory",
      "stack_height": 8,
      "target_bandwidth_tbps": 0.8,
      "cooling": "enhanced",
      "power_w_proxy": 6.192,
      "thermal_headroom_c_proxy": 29.997,
      "usable_bandwidth_tbps": 0.8,
      "energy_pj_per_bit_proxy": 7.74,
      "teaching_point": "HBM bandwidth must be read with stack height, energy per bit, and thermal headroom."
    },
    {
      "simulation_id": "SA-MEM-003-HBM-THERMAL-ROOFLINE-001",
      "domain": "memory",
      "stack_height": 8,
      "target_bandwidth_tbps": 1.2,
      "cooling": "baseline",
      "power_w_proxy": 10.52,
      "thermal_headroom_c_proxy": 11.908,
      "usable_bandwidth_tbps": 1.0294,
      "energy_pj_per_bit_proxy": 8.7667,
      "teaching_point": "HBM bandwidth must be read with stack height, energy per bit, and thermal headroom."
    },
    {
      "simulation_id": "SA-MEM-003-HBM-THERMAL-ROOFLINE-001",
      "domain": "memory",
      "stack_height": 8,
      "target_bandwidth_tbps": 1.2,
      "cooling": "enhanced",
      "power_w_proxy": 7.574,
      "thermal_headroom_c_proxy": 27.094,
      "usable_bandwidth_tbps": 1.2,
      "energy_pj_per_bit_proxy": 6.312,
      "teaching_point": "HBM bandwidth must be read with stack height, energy per bit, and thermal headroom."
    },
    {
      "simulation_id": "SA-MEM-003-HBM-THERMAL-ROOFLINE-001",
      "domain": "memory",
      "stack_height": 8,
      "target_bandwidth_tbps": 1.6,
      "cooling": "baseline",
      "power_w_proxy": 12.44,
      "thermal_headroom_c_proxy": 7.876,
      "usable_bandwidth_tbps": 1.222,
      "energy_pj_per_bit_proxy": 7.775,
      "teaching_point": "HBM bandwidth must be read with stack height, energy per bit, and thermal headroom."
    },
    {
      "simulation_id": "SA-MEM-003-HBM-THERMAL-ROOFLINE-001",
      "domain": "memory",
      "stack_height": 8,
      "target_bandwidth_tbps": 1.6,
      "cooling": "enhanced",
      "power_w_proxy": 8.957,
      "thermal_headroom_c_proxy": 24.191,
      "usable_bandwidth_tbps": 1.6,
      "energy_pj_per_bit_proxy": 5.598,
      "teaching_point": "HBM bandwidth must be read with stack height, energy per bit, and thermal headroom."
    },
    {
      "simulation_id": "SA-MEM-003-HBM-THERMAL-ROOFLINE-001",
      "domain": "memory",
      "stack_height": 12,
      "target_bandwidth_tbps": 0.8,
      "cooling": "baseline",
      "power_w_proxy": 9.88,
      "thermal_headroom_c_proxy": 13.252,
      "usable_bandwidth_tbps": 0.7114,
      "energy_pj_per_bit_proxy": 12.35,
      "teaching_point": "HBM bandwidth must be read with stack height, energy per bit, and thermal headroom."
    },
    {
      "simulation_id": "SA-MEM-003-HBM-THERMAL-ROOFLINE-001",
      "domain": "memory",
      "stack_height": 12,
      "target_bandwidth_tbps": 0.8,
      "cooling": "enhanced",
      "power_w_proxy": 7.114,
      "thermal_headroom_c_proxy": 28.061,
      "usable_bandwidth_tbps": 0.8,
      "energy_pj_per_bit_proxy": 8.892,
      "teaching_point": "HBM bandwidth must be read with stack height, energy per bit, and thermal headroom."
    },
    {
      "simulation_id": "SA-MEM-003-HBM-THERMAL-ROOFLINE-001",
      "domain": "memory",
      "stack_height": 12,
      "target_bandwidth_tbps": 1.2,
      "cooling": "baseline",
      "power_w_proxy": 11.8,
      "thermal_headroom_c_proxy": 9.22,
      "usable_bandwidth_tbps": 0.9542,
      "energy_pj_per_bit_proxy": 9.8333,
      "teaching_point": "HBM bandwidth must be read with stack height, energy per bit, and thermal headroom."
    },
    {
      "simulation_id": "SA-MEM-003-HBM-THERMAL-ROOFLINE-001",
      "domain": "memory",
      "stack_height": 12,
      "target_bandwidth_tbps": 1.2,
      "cooling": "enhanced",
      "power_w_proxy": 8.496,
      "thermal_headroom_c_proxy": 25.158,
      "usable_bandwidth_tbps": 1.2,
      "energy_pj_per_bit_proxy": 7.08,
      "teaching_point": "HBM bandwidth must be read with stack height, energy per bit, and thermal headroom."
    },
    {
      "simulation_id": "SA-MEM-003-HBM-THERMAL-ROOFLINE-001",
      "domain": "memory",
      "stack_height": 12,
      "target_bandwidth_tbps": 1.6,
      "cooling": "baseline",
      "power_w_proxy": 13.72,
      "thermal_headroom_c_proxy": 5.188,
      "usable_bandwidth_tbps": 1.1217,
      "energy_pj_per_bit_proxy": 8.575,
      "teaching_point": "HBM bandwidth must be read with stack height, energy per bit, and thermal headroom."
    },
    {
      "simulation_id": "SA-MEM-003-HBM-THERMAL-ROOFLINE-001",
      "domain": "memory",
      "stack_height": 12,
      "target_bandwidth_tbps": 1.6,
      "cooling": "enhanced",
      "power_w_proxy": 9.878,
      "thermal_headroom_c_proxy": 22.255,
      "usable_bandwidth_tbps": 1.6,
      "energy_pj_per_bit_proxy": 6.174,
      "teaching_point": "HBM bandwidth must be read with stack height, energy per bit, and thermal headroom."
    }
  ],
  "methods": [
    "Power proxy scales with target bandwidth and stack height.",
    "Thermal headroom penalizes higher power and improves under the enhanced cooling label.",
    "Usable bandwidth is reduced by a throttle-risk factor when headroom is low."
  ],
  "limitations": [
    "No vendor HBM stack, interposer, TSV, microbump, package, CFD, or workload measurement is included.",
    "No product comparison, procurement, or AI-system performance claim is made.",
    "Real HBM work needs package thermal data, workload traces, memory-controller data, and measurement."
  ],
  "evidence": [
    "v64 deep results store every stack height, bandwidth, cooling, power, and headroom row.",
    "CSV export preserves the thermal roofline table.",
    "The memory hierarchy lesson separates HBM system role from DRAM cell physics."
  ],
  "sources": [
    {
      "label": "Ramulator2",
      "url": "https://github.com/CMU-SAFARI/ramulator2",
      "note": "External MIT-licensed DRAM/HBM simulator reference; v64 pages use original teaching data."
    },
    {
      "label": "DRAMsim3",
      "url": "https://github.com/umd-memsys/DRAMsim3",
      "note": "External MIT-licensed DRAM timing and thermal simulator reference."
    },
    {
      "label": "IEEE IRDS",
      "url": "https://irds.ieee.org/",
      "note": "Roadmap source spine for memory hierarchy and emerging memory vocabulary."
    },
    {
      "label": "Google Security RowHammer research note",
      "url": "https://blog.google/security/supporting-rowhammer-research-to/",
      "note": "Public context for RowHammer as a DRAM charge-leakage, refresh, and security-evidence topic."
    }
  ],
  "source_seed_run": "07_assets/factory_lab/experiments/DEEP_SEMICONDUCTOR_V64_2026-08-14/"
}
