OSDI25 XSched

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

实验

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