{
  "schemaVersion": 1,
  "lessonId": "tpu-06",
  "contentHash": "59d9ebf07ea1f8d61e29d1453c803ce4ba21902ab870f37fcb1976de8ffdc26f",
  "rendererHash": "a1bd5b648f4731ae5d5f0a24811c2540d1a0a132149ce589d17c4113509cbedf",
  "kind": "executed",
  "generatedAt": "2026-10-20T10:58:51.060890+00:00",
  "provenance": "recorded_cpu_computation",
  "environment": {
    "backend": "cpu",
    "deviceCount": 1,
    "jax": "0.9.2",
    "numpy": "2.4.4",
    "matplotlib": "3.10.8"
  },
  "stdout": "Precision comparison: [{'policy': 'bf16 (fp32 accum)', 'max_abs_err': 0.03718, 'mean_abs_err': 0.00756, 'weight_bytes': 16384, 'scale_bytes': 256}, {'policy': 'bf16 (bf16 accum)', 'max_abs_err': 0.05545, 'mean_abs_err': 0.00912, 'weight_bytes': 16384, 'scale_bytes': 256}, {'policy': 'int8 per-col (fp32 accum)', 'max_abs_err': 0.12516, 'mean_abs_err': 0.02322, 'weight_bytes': 16384, 'scale_bytes': 256}]\nRetained trace directory: /Users/tahabsn/Documents/ChatGPT/jaxpathways/tpu-xprof-trace\nCaptured *.xplane.pb trace count: 3 steady_ms: 0.1457\n",
  "data": {
    "kind": "bar",
    "labels": [
      "bf16 (fp32 accum)",
      "bf16 (bf16 accum)",
      "int8 per-col (fp32 accum)"
    ],
    "xlabel": "matmul precision policy",
    "ylabel": "absolute error vs fp32 reference",
    "series": [
      {
        "label": "max abs error",
        "y": [
          0.03718,
          0.05545,
          0.12516
        ]
      },
      {
        "label": "mean abs error",
        "y": [
          0.00756,
          0.00912,
          0.02322
        ]
      }
    ]
  }
}
