第十周开发日志(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 唤醒能力。