{
  "schemaVersion": 1,
  "lessonId": "performance-03",
  "contentHash": "8035a6f01d72cddc68632f648e4e09b96b1e34f69f29a1d0bd99144f3f418f5f",
  "rendererHash": "a1bd5b648f4731ae5d5f0a24811c2540d1a0a132149ce589d17c4113509cbedf",
  "kind": "executed",
  "generatedAt": "2026-10-20T10:46:00.292509+00:00",
  "provenance": "recorded_cpu_computation",
  "environment": {
    "backend": "cpu",
    "deviceCount": 1,
    "jax": "0.9.2",
    "numpy": "2.4.4",
    "matplotlib": "3.10.8"
  },
  "stdout": "Trace directory: /private/var/folders/mp/_mq7srqx2y10p5nhjz9m7hj40000gn/T/jax-course-trace-aocqwa5x\n{\n  \"input_wait_us\": [\n    1257,\n    1260,\n    1258,\n    1259\n  ],\n  \"model_and_wait_us\": [\n    49,\n    42,\n    30,\n    30\n  ],\n  \"step_us\": [\n    1312,\n    1306,\n    1290,\n    1292\n  ]\n}\nFour named steps verified; host annotations are not isolated device kernels.\n",
  "data": {
    "kind": "line",
    "x": [
      0,
      1,
      2,
      3
    ],
    "xlabel": "captured step",
    "ylabel": "host annotation duration (microseconds)",
    "series": [
      {
        "label": "injected input wait",
        "y": [
          1257,
          1260,
          1258,
          1259
        ]
      },
      {
        "label": "model call and completion wait",
        "y": [
          49,
          42,
          30,
          30
        ]
      }
    ]
  }
}
