{
  "type": "excalidraw",
  "version": 2,
  "source": "https://excalidraw.com",
  "elements": [
    {
      "id": "bg",
      "type": "rectangle",
      "x": 20,
      "y": 20,
      "width": 1820,
      "height": 1320,
      "angle": 0,
      "strokeColor": "#cbd5e1",
      "backgroundColor": "#ffffff",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "roundness": {
        "type": 3
      },
      "seed": 12000,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false
    },
    {
      "id": "bg-left",
      "type": "rectangle",
      "x": 45,
      "y": 130,
      "width": 555,
      "height": 805,
      "angle": 0,
      "strokeColor": "#93c5fd",
      "backgroundColor": "#eff6ff",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 45,
      "groupIds": [],
      "roundness": {
        "type": 3
      },
      "seed": 12001,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false
    },
    {
      "id": "bg-mid",
      "type": "rectangle",
      "x": 625,
      "y": 130,
      "width": 580,
      "height": 805,
      "angle": 0,
      "strokeColor": "#a78bfa",
      "backgroundColor": "#f5f3ff",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 42,
      "groupIds": [],
      "roundness": {
        "type": 3
      },
      "seed": 12002,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false
    },
    {
      "id": "bg-right",
      "type": "rectangle",
      "x": 1230,
      "y": 130,
      "width": 565,
      "height": 805,
      "angle": 0,
      "strokeColor": "#34d399",
      "backgroundColor": "#f0fdf4",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 42,
      "groupIds": [],
      "roundness": {
        "type": 3
      },
      "seed": 12003,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false
    },
    {
      "id": "bg-bottom",
      "type": "rectangle",
      "x": 45,
      "y": 970,
      "width": 1750,
      "height": 320,
      "angle": 0,
      "strokeColor": "#f59e0b",
      "backgroundColor": "#fffbeb",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 45,
      "groupIds": [],
      "roundness": {
        "type": 3
      },
      "seed": 12004,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false
    },
    {
      "id": "title",
      "type": "text",
      "x": 420,
      "y": 38,
      "width": 835.2,
      "height": 37.5,
      "angle": 0,
      "strokeColor": "#1e40af",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 12005,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "AI Infra 学习路线思维导图 2026：从岗位选择到可交付项目",
      "fontSize": 30,
      "fontFamily": 5,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "AI Infra 学习路线思维导图 2026：从岗位选择到可交付项目",
      "autoResize": true,
      "lineHeight": 1.25
    },
    {
      "id": "subtitle",
      "type": "text",
      "x": 470,
      "y": 78,
      "width": 754.12,
      "height": 21.25,
      "angle": 0,
      "strokeColor": "#374151",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 12006,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "主线：先建立 GPU/模型/推理引擎共同语言，再按端侧、云端、算子、框架、算法加速选择深入方向",
      "fontSize": 17,
      "fontFamily": 5,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "主线：先建立 GPU/模型/推理引擎共同语言，再按端侧、云端、算子、框架、算法加速选择深入方向",
      "autoResize": true,
      "lineHeight": 1.25
    },
    {
      "id": "center",
      "type": "ellipse",
      "x": 720,
      "y": 390,
      "width": 420,
      "height": 190,
      "angle": 0,
      "strokeColor": "#1e40af",
      "backgroundColor": "#dbeafe",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 12007,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false
    },
    {
      "id": "center-title",
      "type": "text",
      "x": 790,
      "y": 430,
      "width": 253.12000000000003,
      "height": 35,
      "angle": 0,
      "strokeColor": "#1e40af",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 12008,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "AI Infra 核心能力",
      "fontSize": 28,
      "fontFamily": 5,
      "textAlign": "center",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "AI Infra 核心能力",
      "autoResize": true,
      "lineHeight": 1.25
    },
    {
      "id": "center-body",
      "type": "text",
      "x": 785,
      "y": 470,
      "width": 196.56000000000003,
      "height": 67.5,
      "angle": 0,
      "strokeColor": "#1e3a8a",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 12009,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "GPU 体系 + 大模型结构\n算子优化 + 推理引擎\n分布式并行 + 工程落地",
      "fontSize": 18,
      "fontFamily": 5,
      "textAlign": "center",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "GPU 体系 + 大模型结构\n算子优化 + 推理引擎\n分布式并行 + 工程落地",
      "autoResize": true,
      "lineHeight": 1.25
    },
    {
      "id": "left-head",
      "type": "text",
      "x": 75,
      "y": 155,
      "width": 184,
      "height": 28.75,
      "angle": 0,
      "strokeColor": "#1e40af",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 12010,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "一、先选岗位方向",
      "fontSize": 23,
      "fontFamily": 5,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "一、先选岗位方向",
      "autoResize": true,
      "lineHeight": 1.25
    },
    {
      "id": "role-edge",
      "type": "rectangle",
      "x": 75,
      "y": 205,
      "width": 230,
      "height": 150,
      "angle": 0,
      "strokeColor": "#2563eb",
      "backgroundColor": "#dbeafe",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "roundness": {
        "type": 3
      },
      "seed": 12011,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false
    },
    {
      "id": "role-edge-title",
      "type": "text",
      "x": 93,
      "y": 219,
      "width": 80,
      "height": 25,
      "angle": 0,
      "strokeColor": "#2563eb",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 12012,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "端侧推理",
      "fontSize": 20,
      "fontFamily": 5,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "端侧推理",
      "autoResize": true,
      "lineHeight": 1.25
    },
    {
      "id": "role-edge-body",
      "type": "text",
      "x": 93,
      "y": 255,
      "width": 252.0000000000001,
      "height": 75,
      "angle": 0,
      "strokeColor": "#374151",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 12013,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "llama.cpp / MLC / ONNX Runtime\nNPU/GPU/CPU 混合\n内存、电量、延迟优先\n4bit/8bit 量化和 KV 压缩",
      "fontSize": 15,
      "fontFamily": 5,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "llama.cpp / MLC / ONNX Runtime\nNPU/GPU/CPU 混合\n内存、电量、延迟优先\n4bit/8bit 量化和 KV 压缩",
      "autoResize": true,
      "lineHeight": 1.25
    },
    {
      "id": "role-cloud",
      "type": "rectangle",
      "x": 335,
      "y": 205,
      "width": 230,
      "height": 150,
      "angle": 0,
      "strokeColor": "#2563eb",
      "backgroundColor": "#dbeafe",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "roundness": {
        "type": 3
      },
      "seed": 12014,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false
    },
    {
      "id": "role-cloud-title",
      "type": "text",
      "x": 353,
      "y": 219,
      "width": 80,
      "height": 25,
      "angle": 0,
      "strokeColor": "#2563eb",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 12015,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "云端推理",
      "fontSize": 20,
      "fontFamily": 5,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "云端推理",
      "autoResize": true,
      "lineHeight": 1.25
    },
    {
      "id": "role-cloud-body",
      "type": "text",
      "x": 353,
      "y": 255,
      "width": 235.20000000000016,
      "height": 75,
      "angle": 0,
      "strokeColor": "#374151",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 12016,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "vLLM / SGLang / TensorRT-LLM\n多 GPU serving\n吞吐、TTFT、ITL、SLO\n容器、调度、观测",
      "fontSize": 15,
      "fontFamily": 5,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "vLLM / SGLang / TensorRT-LLM\n多 GPU serving\n吞吐、TTFT、ITL、SLO\n容器、调度、观测",
      "autoResize": true,
      "lineHeight": 1.25
    },
    {
      "id": "role-kernel",
      "type": "rectangle",
      "x": 75,
      "y": 390,
      "width": 230,
      "height": 150,
      "angle": 0,
      "strokeColor": "#7c3aed",
      "backgroundColor": "#f3e8ff",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "roundness": {
        "type": 3
      },
      "seed": 12017,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false
    },
    {
      "id": "role-kernel-title",
      "type": "text",
      "x": 93,
      "y": 404,
      "width": 80,
      "height": 25,
      "angle": 0,
      "strokeColor": "#7c3aed",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 12018,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "算子方向",
      "fontSize": 20,
      "fontFamily": 5,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "算子方向",
      "autoResize": true,
      "lineHeight": 1.25
    },
    {
      "id": "role-kernel-body",
      "type": "text",
      "x": 93,
      "y": 440,
      "width": 277.20000000000005,
      "height": 75,
      "angle": 0,
      "strokeColor": "#374151",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 12019,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "CUDA/HIP/Triton/CUTLASS\nmatmul、softmax、norm、MoE\nprofile -> bottleneck -> optimize\n读懂 Nsight / rocprof",
      "fontSize": 15,
      "fontFamily": 5,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "CUDA/HIP/Triton/CUTLASS\nmatmul、softmax、norm、MoE\nprofile -> bottleneck -> optimize\n读懂 Nsight / rocprof",
      "autoResize": true,
      "lineHeight": 1.25
    },
    {
      "id": "role-framework",
      "type": "rectangle",
      "x": 335,
      "y": 390,
      "width": 230,
      "height": 150,
      "angle": 0,
      "strokeColor": "#7c3aed",
      "backgroundColor": "#f3e8ff",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "roundness": {
        "type": 3
      },
      "seed": 12020,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false
    },
    {
      "id": "role-framework-title",
      "type": "text",
      "x": 353,
      "y": 404,
      "width": 80,
      "height": 25,
      "angle": 0,
      "strokeColor": "#7c3aed",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 12021,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "框架方向",
      "fontSize": 20,
      "fontFamily": 5,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "框架方向",
      "autoResize": true,
      "lineHeight": 1.25
    },
    {
      "id": "role-framework-body",
      "type": "text",
      "x": 353,
      "y": 440,
      "width": 210.00000000000014,
      "height": 75,
      "angle": 0,
      "strokeColor": "#374151",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 12022,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "PyTorch compiler / Triton\n图优化、kernel fusion\nruntime scheduler\nKV cache manager",
      "fontSize": 15,
      "fontFamily": 5,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "PyTorch compiler / Triton\n图优化、kernel fusion\nruntime scheduler\nKV cache manager",
      "autoResize": true,
      "lineHeight": 1.25
    },
    {
      "id": "role-algo",
      "type": "rectangle",
      "x": 75,
      "y": 575,
      "width": 490,
      "height": 150,
      "angle": 0,
      "strokeColor": "#ea580c",
      "backgroundColor": "#ffedd5",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "roundness": {
        "type": 3
      },
      "seed": 12023,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false
    },
    {
      "id": "role-algo-title",
      "type": "text",
      "x": 93,
      "y": 589,
      "width": 120,
      "height": 25,
      "angle": 0,
      "strokeColor": "#ea580c",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 12024,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "算法加速方向",
      "fontSize": 20,
      "fontFamily": 5,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "算法加速方向",
      "autoResize": true,
      "lineHeight": 1.25
    },
    {
      "id": "role-algo-body",
      "type": "text",
      "x": 93,
      "y": 625,
      "width": 797.4000000000008,
      "height": 37.5,
      "angle": 0,
      "strokeColor": "#374151",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 12025,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "FlashAttention、speculative decoding、quantization、sparse/long-context attention、MoE routing。\n重点是能解释：省了什么资源、引入什么误差或调度成本、什么时候不适用。",
      "fontSize": 15,
      "fontFamily": 5,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "FlashAttention、speculative decoding、quantization、sparse/long-context attention、MoE routing。\n重点是能解释：省了什么资源、引入什么误差或调度成本、什么时候不适用。",
      "autoResize": true,
      "lineHeight": 1.25
    },
    {
      "id": "center-left1",
      "type": "arrow",
      "x": 720,
      "y": 465,
      "width": -150,
      "height": -190,
      "angle": 0,
      "strokeColor": "#3b82f6",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 12026,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "points": [
        [
          0,
          0
        ],
        [
          -150,
          -190
        ]
      ],
      "startBinding": null,
      "endBinding": null,
      "startArrowhead": null,
      "endArrowhead": "arrow"
    },
    {
      "id": "center-left2",
      "type": "arrow",
      "x": 720,
      "y": 485,
      "width": -150,
      "height": 0,
      "angle": 0,
      "strokeColor": "#7c3aed",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 12027,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "points": [
        [
          0,
          0
        ],
        [
          -150,
          0
        ]
      ],
      "startBinding": null,
      "endBinding": null,
      "startArrowhead": null,
      "endArrowhead": "arrow"
    },
    {
      "id": "center-left3",
      "type": "arrow",
      "x": 720,
      "y": 520,
      "width": -150,
      "height": 130,
      "angle": 0,
      "strokeColor": "#ea580c",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 12028,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "points": [
        [
          0,
          0
        ],
        [
          -150,
          130
        ]
      ],
      "startBinding": null,
      "endBinding": null,
      "startArrowhead": null,
      "endArrowhead": "arrow"
    },
    {
      "id": "mid-head",
      "type": "text",
      "x": 655,
      "y": 155,
      "width": 322,
      "height": 28.75,
      "angle": 0,
      "strokeColor": "#6d28d9",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 12029,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "二、通用底座：所有岗位都要会",
      "fontSize": 23,
      "fontFamily": 5,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "二、通用底座：所有岗位都要会",
      "autoResize": true,
      "lineHeight": 1.25
    },
    {
      "id": "gpu-base",
      "type": "rectangle",
      "x": 655,
      "y": 205,
      "width": 245,
      "height": 155,
      "angle": 0,
      "strokeColor": "#2563eb",
      "backgroundColor": "#dbeafe",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "roundness": {
        "type": 3
      },
      "seed": 12030,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false
    },
    {
      "id": "gpu-base-title",
      "type": "text",
      "x": 673,
      "y": 219,
      "width": 124.80000000000001,
      "height": 25,
      "angle": 0,
      "strokeColor": "#2563eb",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 12031,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "GPU 编程体系",
      "fontSize": 20,
      "fontFamily": 5,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "GPU 编程体系",
      "autoResize": true,
      "lineHeight": 1.25
    },
    {
      "id": "gpu-base-body",
      "type": "text",
      "x": 673,
      "y": 255,
      "width": 250.2000000000001,
      "height": 93.75,
      "angle": 0,
      "strokeColor": "#374151",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 12032,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "thread/block/grid 或 wavefront\nHBM/SMEM/register/cache\ncoalescing、bank conflict\noccupancy、latency hiding\n异步拷贝和 barrier",
      "fontSize": 15,
      "fontFamily": 5,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "thread/block/grid 或 wavefront\nHBM/SMEM/register/cache\ncoalescing、bank conflict\noccupancy、latency hiding\n异步拷贝和 barrier",
      "autoResize": true,
      "lineHeight": 1.25
    },
    {
      "id": "model-base",
      "type": "rectangle",
      "x": 930,
      "y": 205,
      "width": 245,
      "height": 155,
      "angle": 0,
      "strokeColor": "#16a34a",
      "backgroundColor": "#dcfce7",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "roundness": {
        "type": 3
      },
      "seed": 12033,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false
    },
    {
      "id": "model-base-title",
      "type": "text",
      "x": 948,
      "y": 219,
      "width": 100,
      "height": 25,
      "angle": 0,
      "strokeColor": "#16a34a",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 12034,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "大模型结构",
      "fontSize": 20,
      "fontFamily": 5,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "大模型结构",
      "autoResize": true,
      "lineHeight": 1.25
    },
    {
      "id": "model-base-body",
      "type": "text",
      "x": 948,
      "y": 255,
      "width": 226.80000000000015,
      "height": 93.75,
      "angle": 0,
      "strokeColor": "#374151",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 12035,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "Transformer block\nMHA/MQA/GQA、RoPE\nSwiGLU、RMSNorm\nMoE router/top-k/expert FFN\nKV cache 生命周期",
      "fontSize": 15,
      "fontFamily": 5,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "Transformer block\nMHA/MQA/GQA、RoPE\nSwiGLU、RMSNorm\nMoE router/top-k/expert FFN\nKV cache 生命周期",
      "autoResize": true,
      "lineHeight": 1.25
    },
    {
      "id": "kernel-base",
      "type": "rectangle",
      "x": 655,
      "y": 395,
      "width": 245,
      "height": 175,
      "angle": 0,
      "strokeColor": "#7c3aed",
      "backgroundColor": "#f3e8ff",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "roundness": {
        "type": 3
      },
      "seed": 12036,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false
    },
    {
      "id": "kernel-base-title",
      "type": "text",
      "x": 673,
      "y": 409,
      "width": 120,
      "height": 25,
      "angle": 0,
      "strokeColor": "#7c3aed",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 12037,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "算子学习阶梯",
      "fontSize": 20,
      "fontFamily": 5,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "算子学习阶梯",
      "autoResize": true,
      "lineHeight": 1.25
    },
    {
      "id": "kernel-base-body",
      "type": "text",
      "x": 673,
      "y": 445,
      "width": 226.80000000000015,
      "height": 112.5,
      "angle": 0,
      "strokeColor": "#374151",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 12038,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "vector add -> reduce\ntranspose -> GEMM\nlayernorm / rmsnorm\nsoftmax / attention\nMoE dispatch + grouped GEMM\n写 baseline、profile、优化",
      "fontSize": 15,
      "fontFamily": 5,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "vector add -> reduce\ntranspose -> GEMM\nlayernorm / rmsnorm\nsoftmax / attention\nMoE dispatch + grouped GEMM\n写 baseline、profile、优化",
      "autoResize": true,
      "lineHeight": 1.25
    },
    {
      "id": "tool-base",
      "type": "rectangle",
      "x": 930,
      "y": 395,
      "width": 245,
      "height": 175,
      "angle": 0,
      "strokeColor": "#ea580c",
      "backgroundColor": "#ffedd5",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "roundness": {
        "type": 3
      },
      "seed": 12039,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false
    },
    {
      "id": "tool-base-title",
      "type": "text",
      "x": 948,
      "y": 409,
      "width": 80,
      "height": 25,
      "angle": 0,
      "strokeColor": "#ea580c",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 12040,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "工具链",
      "fontSize": 20,
      "fontFamily": 5,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "工具链",
      "autoResize": true,
      "lineHeight": 1.25
    },
    {
      "id": "tool-base-body",
      "type": "text",
      "x": 948,
      "y": 445,
      "width": 210.00000000000014,
      "height": 112.5,
      "angle": 0,
      "strokeColor": "#374151",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 12041,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "PyTorch eager/compile\nTriton kernel\nCUDA/HIP/ROCm 基础\nCUTLASS / CK / FlashInfer\nNsight Compute / Systems\nrocprof / rocTracer",
      "fontSize": 15,
      "fontFamily": 5,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "PyTorch eager/compile\nTriton kernel\nCUDA/HIP/ROCm 基础\nCUTLASS / CK / FlashInfer\nNsight Compute / Systems\nrocprof / rocTracer",
      "autoResize": true,
      "lineHeight": 1.25
    },
    {
      "id": "arch-base",
      "type": "rectangle",
      "x": 655,
      "y": 610,
      "width": 520,
      "height": 160,
      "angle": 0,
      "strokeColor": "#0f766e",
      "backgroundColor": "#ccfbf1",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "roundness": {
        "type": 3
      },
      "seed": 12042,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false
    },
    {
      "id": "arch-base-title",
      "type": "text",
      "x": 673,
      "y": 624,
      "width": 140,
      "height": 25,
      "angle": 0,
      "strokeColor": "#0f766e",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 12043,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "架构演进怎么学",
      "fontSize": 20,
      "fontFamily": 5,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "架构演进怎么学",
      "autoResize": true,
      "lineHeight": 1.25
    },
    {
      "id": "arch-base-body",
      "type": "text",
      "x": 673,
      "y": 660,
      "width": 1071.0000000000011,
      "height": 37.5,
      "angle": 0,
      "strokeColor": "#374151",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 12044,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "按代际理解硬件给软件的新能力：Ampere 异步拷贝，Hopper TMA/WGMMA，Blackwell TMEM/更深异步流水；AMD 侧理解 ROCm、HIP、Matrix Core、RCCL。\n目标不是背参数，而是能说明某个优化为什么依赖某代硬件。",
      "fontSize": 15,
      "fontFamily": 5,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "按代际理解硬件给软件的新能力：Ampere 异步拷贝，Hopper TMA/WGMMA，Blackwell TMEM/更深异步流水；AMD 侧理解 ROCm、HIP、Matrix Core、RCCL。\n目标不是背参数，而是能说明某个优化为什么依赖某代硬件。",
      "autoResize": true,
      "lineHeight": 1.25
    },
    {
      "id": "center-mid1",
      "type": "arrow",
      "x": 930,
      "y": 390,
      "width": -50,
      "height": -30,
      "angle": 0,
      "strokeColor": "#2563eb",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 12045,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "points": [
        [
          0,
          0
        ],
        [
          -50,
          -30
        ]
      ],
      "startBinding": null,
      "endBinding": null,
      "startArrowhead": null,
      "endArrowhead": "arrow"
    },
    {
      "id": "center-mid2",
      "type": "arrow",
      "x": 930,
      "y": 390,
      "width": 110,
      "height": -30,
      "angle": 0,
      "strokeColor": "#16a34a",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 12046,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "points": [
        [
          0,
          0
        ],
        [
          110,
          -30
        ]
      ],
      "startBinding": null,
      "endBinding": null,
      "startArrowhead": null,
      "endArrowhead": "arrow"
    },
    {
      "id": "center-mid3",
      "type": "arrow",
      "x": 920,
      "y": 580,
      "width": -80,
      "height": 20,
      "angle": 0,
      "strokeColor": "#7c3aed",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 12047,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "points": [
        [
          0,
          0
        ],
        [
          -80,
          20
        ]
      ],
      "startBinding": null,
      "endBinding": null,
      "startArrowhead": null,
      "endArrowhead": "arrow"
    },
    {
      "id": "center-mid4",
      "type": "arrow",
      "x": 975,
      "y": 580,
      "width": 80,
      "height": 20,
      "angle": 0,
      "strokeColor": "#ea580c",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 12048,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "points": [
        [
          0,
          0
        ],
        [
          80,
          20
        ]
      ],
      "startBinding": null,
      "endBinding": null,
      "startArrowhead": null,
      "endArrowhead": "arrow"
    },
    {
      "id": "right-head",
      "type": "text",
      "x": 1260,
      "y": 155,
      "width": 230,
      "height": 28.75,
      "angle": 0,
      "strokeColor": "#15803d",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 12049,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "三、推理系统与分布式",
      "fontSize": 23,
      "fontFamily": 5,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "三、推理系统与分布式",
      "autoResize": true,
      "lineHeight": 1.25
    },
    {
      "id": "engine",
      "type": "rectangle",
      "x": 1260,
      "y": 205,
      "width": 245,
      "height": 170,
      "angle": 0,
      "strokeColor": "#2563eb",
      "backgroundColor": "#dbeafe",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "roundness": {
        "type": 3
      },
      "seed": 12050,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false
    },
    {
      "id": "engine-title",
      "type": "text",
      "x": 1278,
      "y": 219,
      "width": 120,
      "height": 25,
      "angle": 0,
      "strokeColor": "#2563eb",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 12051,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "推理引擎核心",
      "fontSize": 20,
      "fontFamily": 5,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "推理引擎核心",
      "autoResize": true,
      "lineHeight": 1.25
    },
    {
      "id": "engine-body",
      "type": "text",
      "x": 1278,
      "y": 255,
      "width": 218.40000000000015,
      "height": 112.5,
      "angle": 0,
      "strokeColor": "#374151",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 12052,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "prefill vs decode\ncontinuous batching\npaged KV cache\nprefix cache / radix cache\nchunked prefill\nOpenAI-compatible server",
      "fontSize": 15,
      "fontFamily": 5,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "prefill vs decode\ncontinuous batching\npaged KV cache\nprefix cache / radix cache\nchunked prefill\nOpenAI-compatible server",
      "autoResize": true,
      "lineHeight": 1.25
    },
    {
      "id": "parallel",
      "type": "rectangle",
      "x": 1530,
      "y": 205,
      "width": 245,
      "height": 170,
      "angle": 0,
      "strokeColor": "#16a34a",
      "backgroundColor": "#dcfce7",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "roundness": {
        "type": 3
      },
      "seed": 12053,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false
    },
    {
      "id": "parallel-title",
      "type": "text",
      "x": 1548,
      "y": 219,
      "width": 80,
      "height": 25,
      "angle": 0,
      "strokeColor": "#16a34a",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 12054,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "并行策略",
      "fontSize": 20,
      "fontFamily": 5,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "并行策略",
      "autoResize": true,
      "lineHeight": 1.25
    },
    {
      "id": "parallel-body",
      "type": "text",
      "x": 1548,
      "y": 255,
      "width": 229.80000000000013,
      "height": 93.75,
      "angle": 0,
      "strokeColor": "#374151",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 12055,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "TP：切矩阵和 attention head\nPP：切 layer + microbatch\nDP：副本和调度\nEP：expert 分片 + all-to-all\nCP/SP：长序列切分",
      "fontSize": 15,
      "fontFamily": 5,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "TP：切矩阵和 attention head\nPP：切 layer + microbatch\nDP：副本和调度\nEP：expert 分片 + all-to-all\nCP/SP：长序列切分",
      "autoResize": true,
      "lineHeight": 1.25
    },
    {
      "id": "accel",
      "type": "rectangle",
      "x": 1260,
      "y": 420,
      "width": 245,
      "height": 175,
      "angle": 0,
      "strokeColor": "#ea580c",
      "backgroundColor": "#ffedd5",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "roundness": {
        "type": 3
      },
      "seed": 12056,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false
    },
    {
      "id": "accel-title",
      "type": "text",
      "x": 1278,
      "y": 434,
      "width": 120,
      "height": 25,
      "angle": 0,
      "strokeColor": "#ea580c",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 12057,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "常见加速手段",
      "fontSize": 20,
      "fontFamily": 5,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "常见加速手段",
      "autoResize": true,
      "lineHeight": 1.25
    },
    {
      "id": "accel-body",
      "type": "text",
      "x": 1278,
      "y": 470,
      "width": 184.80000000000013,
      "height": 112.5,
      "angle": 0,
      "strokeColor": "#374151",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 12058,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "FlashAttention v1-v4\nspeculative decoding\nFP8/INT8/INT4/AWQ/GPTQ\nKV cache quant/offload\nCUDA Graph / compile\nstructured output 加速",
      "fontSize": 15,
      "fontFamily": 5,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "FlashAttention v1-v4\nspeculative decoding\nFP8/INT8/INT4/AWQ/GPTQ\nKV cache quant/offload\nCUDA Graph / compile\nstructured output 加速",
      "autoResize": true,
      "lineHeight": 1.25
    },
    {
      "id": "ops",
      "type": "rectangle",
      "x": 1530,
      "y": 420,
      "width": 245,
      "height": 175,
      "angle": 0,
      "strokeColor": "#7c3aed",
      "backgroundColor": "#f3e8ff",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "roundness": {
        "type": 3
      },
      "seed": 12059,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false
    },
    {
      "id": "ops-title",
      "type": "text",
      "x": 1548,
      "y": 434,
      "width": 80,
      "height": 25,
      "angle": 0,
      "strokeColor": "#7c3aed",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 12060,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "生产工程",
      "fontSize": 20,
      "fontFamily": 5,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "生产工程",
      "autoResize": true,
      "lineHeight": 1.25
    },
    {
      "id": "ops-body",
      "type": "text",
      "x": 1548,
      "y": 470,
      "width": 193.20000000000013,
      "height": 93.75,
      "angle": 0,
      "strokeColor": "#374151",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 12061,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "benchmark: TTFT/ITL/TPS\n压测和容量规划\n多租户、限流、队列\n模型热加载、LoRA serving\n日志、trace、监控、告警",
      "fontSize": 15,
      "fontFamily": 5,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "benchmark: TTFT/ITL/TPS\n压测和容量规划\n多租户、限流、队列\n模型热加载、LoRA serving\n日志、trace、监控、告警",
      "autoResize": true,
      "lineHeight": 1.25
    },
    {
      "id": "engine-compare",
      "type": "rectangle",
      "x": 1260,
      "y": 635,
      "width": 515,
      "height": 155,
      "angle": 0,
      "strokeColor": "#0f766e",
      "backgroundColor": "#ccfbf1",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "roundness": {
        "type": 3
      },
      "seed": 12062,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false
    },
    {
      "id": "engine-compare-title",
      "type": "text",
      "x": 1278,
      "y": 649,
      "width": 384.8000000000002,
      "height": 25,
      "angle": 0,
      "strokeColor": "#0f766e",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 12063,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "vLLM / SGLang / TensorRT-LLM 怎么讲",
      "fontSize": 20,
      "fontFamily": 5,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "vLLM / SGLang / TensorRT-LLM 怎么讲",
      "autoResize": true,
      "lineHeight": 1.25
    },
    {
      "id": "engine-compare-body",
      "type": "text",
      "x": 1278,
      "y": 685,
      "width": 837.000000000001,
      "height": 56.25,
      "angle": 0,
      "strokeColor": "#374151",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 12064,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "vLLM：PagedAttention 和 hash-based prefix cache 管 KV block。\nSGLang：RadixAttention 适合多轮、分支、agentic generation 的 prefix 复用。\nTensorRT-LLM：NVIDIA 侧优化 toolkit，关注 paged attention、in-flight batching、quantization、plugins。",
      "fontSize": 15,
      "fontFamily": 5,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "vLLM：PagedAttention 和 hash-based prefix cache 管 KV block。\nSGLang：RadixAttention 适合多轮、分支、agentic generation 的 prefix 复用。\nTensorRT-LLM：NVIDIA 侧优化 toolkit，关注 paged attention、in-flight batching、quantization、plugins。",
      "autoResize": true,
      "lineHeight": 1.25
    },
    {
      "id": "center-right1",
      "type": "arrow",
      "x": 1140,
      "y": 465,
      "width": 115,
      "height": -180,
      "angle": 0,
      "strokeColor": "#2563eb",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 12065,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "points": [
        [
          0,
          0
        ],
        [
          115,
          -180
        ]
      ],
      "startBinding": null,
      "endBinding": null,
      "startArrowhead": null,
      "endArrowhead": "arrow"
    },
    {
      "id": "center-right2",
      "type": "arrow",
      "x": 1140,
      "y": 490,
      "width": 385,
      "height": -160,
      "angle": 0,
      "strokeColor": "#16a34a",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 12066,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "points": [
        [
          0,
          0
        ],
        [
          385,
          -160
        ]
      ],
      "startBinding": null,
      "endBinding": null,
      "startArrowhead": null,
      "endArrowhead": "arrow"
    },
    {
      "id": "center-right3",
      "type": "arrow",
      "x": 1140,
      "y": 525,
      "width": 115,
      "height": 20,
      "angle": 0,
      "strokeColor": "#ea580c",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 12067,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "points": [
        [
          0,
          0
        ],
        [
          115,
          20
        ]
      ],
      "startBinding": null,
      "endBinding": null,
      "startArrowhead": null,
      "endArrowhead": "arrow"
    },
    {
      "id": "center-right4",
      "type": "arrow",
      "x": 1140,
      "y": 545,
      "width": 385,
      "height": 10,
      "angle": 0,
      "strokeColor": "#7c3aed",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 12068,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "points": [
        [
          0,
          0
        ],
        [
          385,
          10
        ]
      ],
      "startBinding": null,
      "endBinding": null,
      "startArrowhead": null,
      "endArrowhead": "arrow"
    },
    {
      "id": "bottom-head",
      "type": "text",
      "x": 75,
      "y": 995,
      "width": 299,
      "height": 28.75,
      "angle": 0,
      "strokeColor": "#b45309",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 12069,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "四、推荐学习顺序和项目闭环",
      "fontSize": 23,
      "fontFamily": 5,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "四、推荐学习顺序和项目闭环",
      "autoResize": true,
      "lineHeight": 1.25
    },
    {
      "id": "s1-circle",
      "type": "ellipse",
      "x": 80,
      "y": 1065,
      "width": 46,
      "height": 46,
      "angle": 0,
      "strokeColor": "#f59e0b",
      "backgroundColor": "#fde68a",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 12070,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false
    },
    {
      "id": "s1-num",
      "type": "text",
      "x": 96,
      "y": 1075,
      "width": 80,
      "height": 25,
      "angle": 0,
      "strokeColor": "#92400e",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 12071,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "1",
      "fontSize": 20,
      "fontFamily": 5,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "1",
      "autoResize": true,
      "lineHeight": 1.25
    },
    {
      "id": "s1-box",
      "type": "rectangle",
      "x": 75,
      "y": 1130,
      "width": 245,
      "height": 105,
      "angle": 0,
      "strokeColor": "#f59e0b",
      "backgroundColor": "#fff7ed",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "roundness": {
        "type": 3
      },
      "seed": 12072,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false
    },
    {
      "id": "s1-t",
      "type": "text",
      "x": 92,
      "y": 1145,
      "width": 125.12,
      "height": 42.5,
      "angle": 0,
      "strokeColor": "#b45309",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 12073,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "第 1 阶段\nGPU + 算子基础",
      "fontSize": 17,
      "fontFamily": 5,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "第 1 阶段\nGPU + 算子基础",
      "autoResize": true,
      "lineHeight": 1.25
    },
    {
      "id": "s1-b",
      "type": "text",
      "x": 92,
      "y": 1192,
      "width": 319.7599999999999,
      "height": 35,
      "angle": 0,
      "strokeColor": "#374151",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 12074,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "写 vector add / reduce / matmul / softmax\n会看带宽、FLOPs、occupancy",
      "fontSize": 14,
      "fontFamily": 5,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "写 vector add / reduce / matmul / softmax\n会看带宽、FLOPs、occupancy",
      "autoResize": true,
      "lineHeight": 1.25
    },
    {
      "id": "s1-arrow",
      "type": "arrow",
      "x": 128,
      "y": 1088,
      "width": 230,
      "height": 0,
      "angle": 0,
      "strokeColor": "#f59e0b",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 12075,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "points": [
        [
          0,
          0
        ],
        [
          230,
          0
        ]
      ],
      "startBinding": null,
      "endBinding": null,
      "startArrowhead": null,
      "endArrowhead": "arrow"
    },
    {
      "id": "s2-circle",
      "type": "ellipse",
      "x": 370,
      "y": 1065,
      "width": 46,
      "height": 46,
      "angle": 0,
      "strokeColor": "#f59e0b",
      "backgroundColor": "#fde68a",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 12076,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false
    },
    {
      "id": "s2-num",
      "type": "text",
      "x": 386,
      "y": 1075,
      "width": 80,
      "height": 25,
      "angle": 0,
      "strokeColor": "#92400e",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 12077,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "2",
      "fontSize": 20,
      "fontFamily": 5,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "2",
      "autoResize": true,
      "lineHeight": 1.25
    },
    {
      "id": "s2-box",
      "type": "rectangle",
      "x": 365,
      "y": 1130,
      "width": 245,
      "height": 105,
      "angle": 0,
      "strokeColor": "#f59e0b",
      "backgroundColor": "#fff7ed",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "roundness": {
        "type": 3
      },
      "seed": 12078,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false
    },
    {
      "id": "s2-t",
      "type": "text",
      "x": 382,
      "y": 1145,
      "width": 119,
      "height": 42.5,
      "angle": 0,
      "strokeColor": "#b45309",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 12079,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "第 2 阶段\n模型结构拆算子",
      "fontSize": 17,
      "fontFamily": 5,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "第 2 阶段\n模型结构拆算子",
      "autoResize": true,
      "lineHeight": 1.25
    },
    {
      "id": "s2-b",
      "type": "text",
      "x": 382,
      "y": 1192,
      "width": 289.5199999999999,
      "height": 35,
      "angle": 0,
      "strokeColor": "#374151",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 12080,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "手拆 Transformer / MoE forward\n标出 GEMM、norm、attention、all-to-all",
      "fontSize": 14,
      "fontFamily": 5,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "手拆 Transformer / MoE forward\n标出 GEMM、norm、attention、all-to-all",
      "autoResize": true,
      "lineHeight": 1.25
    },
    {
      "id": "s2-arrow",
      "type": "arrow",
      "x": 418,
      "y": 1088,
      "width": 230,
      "height": 0,
      "angle": 0,
      "strokeColor": "#f59e0b",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 12081,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "points": [
        [
          0,
          0
        ],
        [
          230,
          0
        ]
      ],
      "startBinding": null,
      "endBinding": null,
      "startArrowhead": null,
      "endArrowhead": "arrow"
    },
    {
      "id": "s3-circle",
      "type": "ellipse",
      "x": 660,
      "y": 1065,
      "width": 46,
      "height": 46,
      "angle": 0,
      "strokeColor": "#f59e0b",
      "backgroundColor": "#fde68a",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 12082,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false
    },
    {
      "id": "s3-num",
      "type": "text",
      "x": 676,
      "y": 1075,
      "width": 80,
      "height": 25,
      "angle": 0,
      "strokeColor": "#92400e",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 12083,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "3",
      "fontSize": 20,
      "fontFamily": 5,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "3",
      "autoResize": true,
      "lineHeight": 1.25
    },
    {
      "id": "s3-box",
      "type": "rectangle",
      "x": 655,
      "y": 1130,
      "width": 245,
      "height": 105,
      "angle": 0,
      "strokeColor": "#f59e0b",
      "backgroundColor": "#fff7ed",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "roundness": {
        "type": 3
      },
      "seed": 12084,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false
    },
    {
      "id": "s3-t",
      "type": "text",
      "x": 672,
      "y": 1145,
      "width": 102,
      "height": 42.5,
      "angle": 0,
      "strokeColor": "#b45309",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 12085,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "第 3 阶段\n推理引擎复现",
      "fontSize": 17,
      "fontFamily": 5,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "第 3 阶段\n推理引擎复现",
      "autoResize": true,
      "lineHeight": 1.25
    },
    {
      "id": "s3-b",
      "type": "text",
      "x": 672,
      "y": 1192,
      "width": 263.20000000000005,
      "height": 35,
      "angle": 0,
      "strokeColor": "#374151",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 12086,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "跑 vLLM/SGLang，测 TTFT/ITL/TPS\n解释 paged attention / radix cache",
      "fontSize": 14,
      "fontFamily": 5,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "跑 vLLM/SGLang，测 TTFT/ITL/TPS\n解释 paged attention / radix cache",
      "autoResize": true,
      "lineHeight": 1.25
    },
    {
      "id": "s3-arrow",
      "type": "arrow",
      "x": 708,
      "y": 1088,
      "width": 230,
      "height": 0,
      "angle": 0,
      "strokeColor": "#f59e0b",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 12087,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "points": [
        [
          0,
          0
        ],
        [
          230,
          0
        ]
      ],
      "startBinding": null,
      "endBinding": null,
      "startArrowhead": null,
      "endArrowhead": "arrow"
    },
    {
      "id": "s4-circle",
      "type": "ellipse",
      "x": 950,
      "y": 1065,
      "width": 46,
      "height": 46,
      "angle": 0,
      "strokeColor": "#f59e0b",
      "backgroundColor": "#fde68a",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 12088,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false
    },
    {
      "id": "s4-num",
      "type": "text",
      "x": 966,
      "y": 1075,
      "width": 80,
      "height": 25,
      "angle": 0,
      "strokeColor": "#92400e",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 12089,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "4",
      "fontSize": 20,
      "fontFamily": 5,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "4",
      "autoResize": true,
      "lineHeight": 1.25
    },
    {
      "id": "s4-box",
      "type": "rectangle",
      "x": 945,
      "y": 1130,
      "width": 245,
      "height": 105,
      "angle": 0,
      "strokeColor": "#f59e0b",
      "backgroundColor": "#fff7ed",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "roundness": {
        "type": 3
      },
      "seed": 12090,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false
    },
    {
      "id": "s4-t",
      "type": "text",
      "x": 962,
      "y": 1145,
      "width": 102,
      "height": 42.5,
      "angle": 0,
      "strokeColor": "#b45309",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 12091,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "第 4 阶段\n优化一个瓶颈",
      "fontSize": 17,
      "fontFamily": 5,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "第 4 阶段\n优化一个瓶颈",
      "autoResize": true,
      "lineHeight": 1.25
    },
    {
      "id": "s4-b",
      "type": "text",
      "x": 962,
      "y": 1192,
      "width": 280,
      "height": 35,
      "angle": 0,
      "strokeColor": "#374151",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 12092,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "Triton 写 fused RMSNorm/softmax\n或调量化、spec decoding、prefix cache",
      "fontSize": 14,
      "fontFamily": 5,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "Triton 写 fused RMSNorm/softmax\n或调量化、spec decoding、prefix cache",
      "autoResize": true,
      "lineHeight": 1.25
    },
    {
      "id": "s4-arrow",
      "type": "arrow",
      "x": 998,
      "y": 1088,
      "width": 230,
      "height": 0,
      "angle": 0,
      "strokeColor": "#f59e0b",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 12093,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "points": [
        [
          0,
          0
        ],
        [
          230,
          0
        ]
      ],
      "startBinding": null,
      "endBinding": null,
      "startArrowhead": null,
      "endArrowhead": "arrow"
    },
    {
      "id": "s5-circle",
      "type": "ellipse",
      "x": 1240,
      "y": 1065,
      "width": 46,
      "height": 46,
      "angle": 0,
      "strokeColor": "#f59e0b",
      "backgroundColor": "#fde68a",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 12094,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false
    },
    {
      "id": "s5-num",
      "type": "text",
      "x": 1256,
      "y": 1075,
      "width": 80,
      "height": 25,
      "angle": 0,
      "strokeColor": "#92400e",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 12095,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "5",
      "fontSize": 20,
      "fontFamily": 5,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "5",
      "autoResize": true,
      "lineHeight": 1.25
    },
    {
      "id": "s5-box",
      "type": "rectangle",
      "x": 1235,
      "y": 1130,
      "width": 245,
      "height": 105,
      "angle": 0,
      "strokeColor": "#f59e0b",
      "backgroundColor": "#fff7ed",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "roundness": {
        "type": 3
      },
      "seed": 12096,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false
    },
    {
      "id": "s5-t",
      "type": "text",
      "x": 1252,
      "y": 1145,
      "width": 127.16000000000004,
      "height": 42.5,
      "angle": 0,
      "strokeColor": "#b45309",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 12097,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "第 5 阶段\n分布式 serving",
      "fontSize": 17,
      "fontFamily": 5,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "第 5 阶段\n分布式 serving",
      "autoResize": true,
      "lineHeight": 1.25
    },
    {
      "id": "s5-b",
      "type": "text",
      "x": 1252,
      "y": 1192,
      "width": 169.12000000000006,
      "height": 35,
      "angle": 0,
      "strokeColor": "#374151",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 12098,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "TP/PP/DP/EP 实验\nNCCL/RCCL 通信 profile",
      "fontSize": 14,
      "fontFamily": 5,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "TP/PP/DP/EP 实验\nNCCL/RCCL 通信 profile",
      "autoResize": true,
      "lineHeight": 1.25
    },
    {
      "id": "s5-arrow",
      "type": "arrow",
      "x": 1288,
      "y": 1088,
      "width": 230,
      "height": 0,
      "angle": 0,
      "strokeColor": "#f59e0b",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 12099,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "points": [
        [
          0,
          0
        ],
        [
          230,
          0
        ]
      ],
      "startBinding": null,
      "endBinding": null,
      "startArrowhead": null,
      "endArrowhead": "arrow"
    },
    {
      "id": "s6-circle",
      "type": "ellipse",
      "x": 1530,
      "y": 1065,
      "width": 46,
      "height": 46,
      "angle": 0,
      "strokeColor": "#f59e0b",
      "backgroundColor": "#fde68a",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 12100,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false
    },
    {
      "id": "s6-num",
      "type": "text",
      "x": 1546,
      "y": 1075,
      "width": 80,
      "height": 25,
      "angle": 0,
      "strokeColor": "#92400e",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 12101,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "6",
      "fontSize": 20,
      "fontFamily": 5,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "6",
      "autoResize": true,
      "lineHeight": 1.25
    },
    {
      "id": "s6-box",
      "type": "rectangle",
      "x": 1525,
      "y": 1130,
      "width": 245,
      "height": 105,
      "angle": 0,
      "strokeColor": "#f59e0b",
      "backgroundColor": "#fff7ed",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "roundness": {
        "type": 3
      },
      "seed": 12102,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false
    },
    {
      "id": "s6-t",
      "type": "text",
      "x": 1542,
      "y": 1145,
      "width": 102,
      "height": 42.5,
      "angle": 0,
      "strokeColor": "#b45309",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 12103,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "第 6 阶段\n岗位专项作品",
      "fontSize": 17,
      "fontFamily": 5,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "第 6 阶段\n岗位专项作品",
      "autoResize": true,
      "lineHeight": 1.25
    },
    {
      "id": "s6-b",
      "type": "text",
      "x": 1542,
      "y": 1192,
      "width": 218.96000000000012,
      "height": 35,
      "angle": 0,
      "strokeColor": "#374151",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 12104,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "端侧 demo 或云端压测报告\n算子优化 PR 或 engine feature",
      "fontSize": 14,
      "fontFamily": 5,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "端侧 demo 或云端压测报告\n算子优化 PR 或 engine feature",
      "autoResize": true,
      "lineHeight": 1.25
    },
    {
      "id": "interview",
      "type": "rectangle",
      "x": 75,
      "y": 760,
      "width": 490,
      "height": 135,
      "angle": 0,
      "strokeColor": "#ef4444",
      "backgroundColor": "#fee2e2",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "roundness": {
        "type": 3
      },
      "seed": 12105,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false
    },
    {
      "id": "interview-title",
      "type": "text",
      "x": 100,
      "y": 785,
      "width": 120,
      "height": 25,
      "angle": 0,
      "strokeColor": "#dc2626",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 12106,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "面试判断标准",
      "fontSize": 20,
      "fontFamily": 5,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "面试判断标准",
      "autoResize": true,
      "lineHeight": 1.25
    },
    {
      "id": "interview-body",
      "type": "text",
      "x": 100,
      "y": 825,
      "width": 637.4399999999998,
      "height": 40,
      "angle": 0,
      "strokeColor": "#7f1d1d",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 12107,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "不要只背名词。每个技术点都按四句话回答：\n它解决什么瓶颈 -> 用什么数据结构/算子/调度 -> 代价是什么 -> 哪些场景收益最大。",
      "fontSize": 16,
      "fontFamily": 5,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "不要只背名词。每个技术点都按四句话回答：\n它解决什么瓶颈 -> 用什么数据结构/算子/调度 -> 代价是什么 -> 哪些场景收益最大。",
      "autoResize": true,
      "lineHeight": 1.25
    },
    {
      "id": "output",
      "type": "rectangle",
      "x": 1260,
      "y": 815,
      "width": 515,
      "height": 105,
      "angle": 0,
      "strokeColor": "#0ea5e9",
      "backgroundColor": "#e0f2fe",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "roundness": {
        "type": 3
      },
      "seed": 12108,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false
    },
    {
      "id": "output-title",
      "type": "text",
      "x": 1285,
      "y": 840,
      "width": 140,
      "height": 25,
      "angle": 0,
      "strokeColor": "#0284c7",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 12109,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "最终作品集建议",
      "fontSize": 20,
      "fontFamily": 5,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "最终作品集建议",
      "autoResize": true,
      "lineHeight": 1.25
    },
    {
      "id": "output-body",
      "type": "text",
      "x": 1285,
      "y": 880,
      "width": 975.3599999999999,
      "height": 20,
      "angle": 0,
      "strokeColor": "#075985",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 12110,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "一份压测报告 + 一个算子优化 notebook + 一个 mini inference engine 设计文档 + 一个源码阅读笔记。比只刷八股更有说服力。",
      "fontSize": 16,
      "fontFamily": 5,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "一份压测报告 + 一个算子优化 notebook + 一个 mini inference engine 设计文档 + 一个源码阅读笔记。比只刷八股更有说服力。",
      "autoResize": true,
      "lineHeight": 1.25
    },
    {
      "id": "sources",
      "type": "rectangle",
      "x": 75,
      "y": 1260,
      "width": 1700,
      "height": 55,
      "angle": 0,
      "strokeColor": "#94a3b8",
      "backgroundColor": "#f8fafc",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "dashed",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "roundness": {
        "type": 3
      },
      "seed": 12111,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false
    },
    {
      "id": "sources-t",
      "type": "text",
      "x": 95,
      "y": 1276,
      "width": 1346.4000000000012,
      "height": 18.75,
      "angle": 0,
      "strokeColor": "#475569",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 12112,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "资料基准：NVIDIA CUDA Programming Guide / TensorRT-LLM docs；vLLM docs；SGLang docs；Triton docs；AMD ROCm docs。建议每月刷一次目标岗位 JD，回填新的引擎功能和硬件代际。",
      "fontSize": 15,
      "fontFamily": 5,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "资料基准：NVIDIA CUDA Programming Guide / TensorRT-LLM docs；vLLM docs；SGLang docs；Triton docs；AMD ROCm docs。建议每月刷一次目标岗位 JD，回填新的引擎功能和硬件代际。",
      "autoResize": true,
      "lineHeight": 1.25
    },
    {
      "id": "practice-interview-panel-ai-infra-学习路线-2026-mindmap-bg",
      "type": "rectangle",
      "x": 80,
      "y": 1420.0,
      "width": 1580,
      "height": 300,
      "angle": 0,
      "strokeColor": "#64748b",
      "backgroundColor": "#e2e8f0",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 70,
      "groupIds": [],
      "seed": 93001,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "roundness": {
        "type": 3
      }
    },
    {
      "id": "practice-interview-panel-ai-infra-学习路线-2026-mindmap-title",
      "type": "text",
      "x": 108,
      "y": 1442.0,
      "width": 1524,
      "height": 38,
      "angle": 0,
      "strokeColor": "#1e40af",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 91001,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "练习题与面试题补充：GPU/AI Infra 主题",
      "fontSize": 24,
      "fontFamily": 5,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "练习题与面试题补充：GPU/AI Infra 主题",
      "autoResize": false,
      "lineHeight": 1.25
    },
    {
      "id": "practice-interview-panel-ai-infra-学习路线-2026-mindmap-practice-box",
      "type": "rectangle",
      "x": 108,
      "y": 1498.0,
      "width": 748.0,
      "height": 190,
      "angle": 0,
      "strokeColor": "#2563eb",
      "backgroundColor": "#bfdbfe",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 93002,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "roundness": {
        "type": 3
      }
    },
    {
      "id": "practice-interview-panel-ai-infra-学习路线-2026-mindmap-practice-text",
      "type": "text",
      "x": 130,
      "y": 1518.0,
      "width": 725.0,
      "height": 150,
      "angle": 0,
      "strokeColor": "#243042",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 91001,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "练习题\n1. 用自己的话重画本图的数据流或控制流\n2. 补一个最小可验证实验, 明确输入、输出和指标\n3. 列出 3 个容易误解的边界条件并给出反例",
      "fontSize": 17,
      "fontFamily": 5,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "练习题\n1. 用自己的话重画本图的数据流或控制流\n2. 补一个最小可验证实验, 明确输入、输出和指标\n3. 列出 3 个容易误解的边界条件并给出反例",
      "autoResize": false,
      "lineHeight": 1.25
    },
    {
      "id": "practice-interview-panel-ai-infra-学习路线-2026-mindmap-interview-box",
      "type": "rectangle",
      "x": 884.0,
      "y": 1498.0,
      "width": 748.0,
      "height": 190,
      "angle": 0,
      "strokeColor": "#7c3aed",
      "backgroundColor": "#ddd6fe",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 93003,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "roundness": {
        "type": 3
      }
    },
    {
      "id": "practice-interview-panel-ai-infra-学习路线-2026-mindmap-interview-text",
      "type": "text",
      "x": 906.0,
      "y": 1518.0,
      "width": 725.0,
      "height": 150,
      "angle": 0,
      "strokeColor": "#243042",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "seed": 91001,
      "version": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "text": "面试题\n1. 这个主题解决的核心瓶颈是什么\n2. 关键抽象如何映射到硬件或系统组件\n3. 如果线上结果不符合预期, 你会先看哪些证据",
      "fontSize": 17,
      "fontFamily": 5,
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "originalText": "面试题\n1. 这个主题解决的核心瓶颈是什么\n2. 关键抽象如何映射到硬件或系统组件\n3. 如果线上结果不符合预期, 你会先看哪些证据",
      "autoResize": false,
      "lineHeight": 1.25
    }
  ],
  "appState": {
    "gridSize": null,
    "viewBackgroundColor": "#ffffff"
  },
  "files": {}
}