CPU 大模型推理引擎
JLLM-Engine 是一款大语言模型推理服务系统,后端以纯 C++ 编写,通过 pybind11 向 Python 层暴露 Engine 与 AsyncEngine 两套接口。
系统架构参考 vLLM,在 CPU 平台上复现并拓展了其核心调度与内存管理特性,同时融入多项面向 CPU 的专项加速优化,实现了生产级别的推理吞吐与延迟表现。
| 特性 | 描述 |
|---|---|
| Paged Attention | KV Cache 以固定大小的 Page 为单位进行分配与管理,彻底消除内存碎片,大幅提升并发请求数量上限 |
| Chunked Prefill | 将超长 Prefill 请求拆分为若干 Chunk 分批处理,与 Decode 阶段请求混合调度,降低首 Token 延迟(TTFT),提升整体吞吐 |
| Prefix Caching | 对相同系统提示或历史上下文的 KV Cache 进行哈希索引与复用,命中缓存时跳过对应 Prefill 计算,显著降低重复请求的计算开销 |
| 特性 | 描述 |
|---|---|
| 算子融合(Kernel Fusion) | 实现了add_norm, gate_up_swiglu, fused_attention,减少中间内存读写与函数调用开销 |
| AVX2 SIMD 向量化 | 核心计算路径(GEMM、点积、Softmax 等)使用 AVX2 指令集向量化,单核吞吐相比标量实现提升显著 |
| 多线程并行 | 基于openMP实现算子内,充分利用多核 CPU 算力 |
通过 pybind11 提供两套使用模式:
Engine— 同步接口,适用于单次推理、调试与低延迟场景AsyncEngine— 异步接口的连续批处理(Continuous Batching),适用于高并发在线服务
# 克隆仓库
git clone https://github.com/TheJieee/jllm.git
cd jllm
# 编译(使用全部核心)
xmake详细指南请阅读README.md
欢迎提交 Issue 与 Pull Request!
主要贡献方向:
- 支持gpu推理
- 新模型架构适配
- 更多 SIMD 指令集支持(AVX-512、AMX)
- INT8 / BF16 量化推理
- 分布式多机推理
本项目基于 Apache License 2.0 开源。