Paper Reading

OSDI25 XSched

scheduling for XPUs 在XPU上实现抢占式调度 CPU的抢占式调度 抢占式调度(Preemptive Scheduling)是一种 操作系统调度策略 ,核心思想是: 当有更高优先级或更紧急的任务需要运行时,操作系统可以 立即中断当前正在运行的任务 ,把 CPU 资源“抢”过来给那个更高优先级的任务。 XPU XPU: FPGA, NPU, GPU 目前在XPU上做了很多的任务 但是好像没有什么调度 Opps: 抽象成…

scheduling for XPUs

在XPU上实现抢占式调度

CPU的抢占式调度

抢占式调度(Preemptive Scheduling)是一种操作系统调度策略,核心思想是:

当有更高优先级或更紧急的任务需要运行时,操作系统可以立即中断当前正在运行的任务,把 CPU 资源“抢”过来给那个更高优先级的任务。

XPU

XPU: FPGA, NPU, GPU

目前在XPU上做了很多的任务

但是好像没有什么调度

Opps: 抽象成任务

他们在交任务时有硬件queue

Design: XQueue

所以我们可以用一层抽象来表示我们的任务。XQueue就是一个任务Queue

我们在任务层和硬件层中间加一层调度层,来实现我们的抢占式调度方案

Design:多层级的阻断方法

Level 1 阻断CPU-XPU的任务提交 用纯软件cpp实现

Level 2 把Hardware Queue 跟硬件阻断 用instruct实现

Level 3 阻断运行时的程序 用GPU trap handler/用时间片轮询的GPU,时间片=0

实验

用两个进程,来向队列里发,来看时延

If you need to cite this post

Haibin Lai. (August 12, 2025). “OSDI25 XSched” [Blog post]. Retrieved from https://www.haibinlaiblog.top/posts/osdi25-xsched/

@online{lai-osdi25-xsched,
  title={OSDI25 XSched},
  author={Haibin Lai},
  year={2025},
  url={https://www.haibinlaiblog.top/posts/osdi25-xsched/},
}