ai-infra-interview-305

第 230 题:如何支持异构计算?CPUGPUTPU统一调度?

题目

如何支持异构计算?CPUGPUTPU统一调度?


完整讲解

一、异构计算类型

CPU、GPU、TPU算力类型不同;任务可能指定「仅 GPU」「仅 TPU」或「CPU 兜底」。统一调度:资源池中 同时存在 多种设备类型;调度器按 job 的 request(如 nvidia.com/gpu、tpu.googleapis.com/v3)做 匹配与放置,并保证 同一 job 内 设备类型一致(或显式支持混合时再细说)。

二、统一调度设计

资源抽象:每种设备通过 device plugin自定义 resource 暴露(如 gpu、tpu、npux);request/limit 统一为「某 resource 的数量」。调度:scheduler 在 Filter 阶段排除不满足 resource 与 node label(如 accelerator=tpu-v3)的节点;Score 时可按类型、拓扑、利用率打分。运行时训练代码按设备类型 选后端(CUDA、XLA/TPU、CPU);平台通过 环境变量或注入 告知当前分配类型,或 同一镜像 内多后端并存、按 env 选择。

三、多集群与统一队列

GPU 与 TPU 分属不同 集群或 region,可 统一队列/API:用户提交时指定「偏好 GPU 或 TPU」或「任意」;上层调度 将 job 路由到对应集群,或 联邦 多集群资源视图后由统一 scheduler 分配。计费与 quota 需按设备类型分别统计与限制。

面试要点


记忆要点

  1. 异构 = 多设备类型;统一 request + label 匹配。
  2. 调度 Filter/Score;运行时按类型选 CUDA/XLA/CPU。
  3. 多集群可统一 API/队列;计费按类型。
返回模块 返回总览