添加项目说明书文件与技术报告与设计文档相同
本项目面向真实 RISC-V RVV 1.0 硬件上的 LLM 推理并发调度问题,围绕 llama.cpp server 高并发请求下的 V-state 上下文切换、线程迁移和 TTFT 尾延迟退化,构建了可复现的观测工具链,并实现了基于 sched_ext 的 V 状态感知调度优化。
项目完成了三项核心工作:
scx_llama_prev_shadow
用户态:llama.cpp PREFILL 批处理上限调整为 512 token(max_prefill_tokens_per_slot = 512) 内核态:基于 sched_ext BPF 的 scx_llama_prev_shadow 调度器(prev-first conservative V-shadow)
用户态:llama.cpp PREFILL 批处理上限调整为 512 token(max_prefill_tokens_per_slot = 512)
max_prefill_tokens_per_slot = 512
内核态:基于 sched_ext BPF 的 scx_llama_prev_shadow 调度器(prev-first conservative V-shadow)
第一阶段:用户态绑核(已排除 - 缩核导致 TPS 大幅下降) ├── affinity(静态绑核) ├── cpuset(cgroup v2) └── adaptive(动态热/冷线程) 第二阶段:sched_ext BPF 调度器 ├── scx_llama_select — 最保守,仅证明 sched_ext 可行 ├── scx_llama_sticky — enqueue 粘性(太激进,c8 变慢) ├── scx_llama_percpu — per-CPU 专用 DSQ(V-state -12%,迁移 +563%) ├── scx_llama_privileged — 5倍时间片(1B c8 早期正收益) ├── owner-first V-shadow — 迁移暴增 385%,TPS 下降(被废弃) ├── scx_llama_ttft_fair — phase bridge + TTFT 分流(探索分支) └── scx_llama_prev_shadow — conservative V-shadow(← 最终采用) 第三阶段:用户态 + 内核态协同 └── cap512 + conservative V-shadow(← 最终方案)
探索阶段的过期方案与赛题原文统一保存在 历史调度方案与实现,不作为最终结论引用。
server-context.cpp
max_prefill_tokens_per_slot
仓库仅保留两个关键对照:无 V-shadow 的 per-CPU stealing 和 no-vhot 消融。其他用户态绑核、phase-aware、TTFT fair 和 RVV window 实现已移除;设计过程和淘汰原因见技术报告第六章,阶段性文档保存在 历史调度方案与实现。
llama-server
/root/llama.cpp/build/bin/llama-server
见 results/README.md。
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802047560号
面向 RISC-V Vector 扩展的大语言模型推理并发调度优化
本项目面向真实 RISC-V RVV 1.0 硬件上的 LLM 推理并发调度问题,围绕 llama.cpp server 高并发请求下的 V-state 上下文切换、线程迁移和 TTFT 尾延迟退化,构建了可复现的观测工具链,并实现了基于 sched_ext 的 V 状态感知调度优化。
项目完成了三项核心工作:
scx_llama_prev_shadowconservative V-shadow 调度器,并结合 llama.cpp PREFILL 批处理上限优化;最终方案:cap512 + conservative V-shadow
正式结果(Llama-3.2-3B, 24请求, repeats=3)
四方案消融对比(c8 单次)
调度方案演进
提交材料
文档导航
探索阶段的过期方案与赛题原文统一保存在 历史调度方案与实现,不作为最终结论引用。
方案与源码对照
代码评分主轴
最终方案(cap512 + conservative V-shadow)
server-context.cpp的max_prefill_tokens_per_slot历史方案
仓库仅保留两个关键对照:无 V-shadow 的 per-CPU stealing 和 no-vhot 消融。其他用户态绑核、phase-aware、TTFT fair 和 RVV window 实现已移除;设计过程和淘汰原因见技术报告第六章,阶段性文档保存在 历史调度方案与实现。
实验环境
llama-server,板端路径/root/llama.cpp/build/bin/llama-server)数据
见 results/README.md。