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/},
}
Haibin's blog