第十周开发日志(3.30-4.5)
工作总结
本周的主要工作是完成 rknpu 任务调度器的正式落地。
这一周把提交、排队、分发、完成、唤醒这一整条路径实现了,让单次 submit 能在多核上并行推进,并在结束后正确返回到用户态。 提交链接
本周进展
- 完成了
rknpu调度器主路径的搭建,路径为card1 -> scheduler -> queue -> driver. - 保留阻塞式
submit,在内核内部为每次 submit 维护独立 waiter,使用户线程可以在提交后挂起等待,并在任务真正结束后被唤醒。 - 引入 worker 驱动的后台推进模型,通过全局
kick机制唤醒调度线程,避免提交线程自己承担全部硬件推进逻辑。 - 完成多核分发路径,支持把同一批任务按 lane 切分后投递到多个 core 上并行执行。
- 把队列层的职责收敛到“维护 ready submit、lane 游标和完成进度”这几个核心状态上,调度器负责选择可下发任务,驱动负责实际硬件提交和中断观测。
本周结论
本周已经完成 rknpu 任务调度器的主体实现。当前版本具备了完整的阻塞提交、后台 worker 推进、多核 lane 分发、terminal 唤醒能力。