OpenBMB 开源轻量级 CUDA 推理框架 CPM.cu


OpenBMB推出了CPM.cu,这是一个轻量级且高效的开源CUDA推理框架,专为端侧大型语言模型(LLMs)的部署而设计,并为MiniCPM4提供优化,核心支持稀疏架构投机采样低位宽量化等前沿技术创新。

CPM.cu 亮点包括:

  • 集成了InfLLM v2可训练稀疏注意力内核,可加速长上下文预填充和解码;
  • FR-Spec(频率排序推测采样)通过压缩词汇空间提高草稿效率,显著降低计算开销;
  • 结合了EAGLE-2推测采样、4位量化和基于滑动窗口注意力的长上下文支持,从而在资源受限设备上实现高效部署。
  • 性能方面,在128K-token序列上,预填充速度比Qwen3-8B快2-4倍,解码速度快4-6倍。

CPM.cu  框架结构:

CPM.cu/
├── src/
│ ├── flash_attn/ # 修改后的 Flash-Attention, 支持稀疏和投机采样
│ ├── model/
│ │ ├── minicpm4/ # minicpm4 模型
│ │ │ ├── minicpm4_model.cuh # 模型的核心实现
│ │ │ └── minicpm4_eagle.cuh # 投机采样实现
│ │ ├── model.cuh # 其他代表性模型
│ │ ├── w4a16_gptq_marlin/ # GPTQ 量化计算 kernel
│ │ ├── memory.cuh # 显存分配
│ │ └── layer.cuh # 通用层
│ ├── entry.cu # pybind: 连接 C/CUDA 和 Python
│ └── ...
├── cpmcu/ # python interface
└── ...
  1. cpmcu/ 代码提供了一个 python 的调用接口,里面涉及在 Python 侧 tokenize,调用 C 代码得到模型的输出 logits,在 Python 侧根据 logits 采样并 detokenize 这些过程。我们使用了 pybind 将 C 代码与 Python 代码进行绑定。

  2. src/model/memory.cuh 这里实现了整个推理框架的内存管理,这里我们采用了先分配模型权重,再分配模型中间计算结果所需的空间,最后把所有剩余显存分配给 kv-cache 的内存管理策略。这一点设计上是和 vLLM, SGLang 类似的。分配中间计算结果的空间时可以考虑一下中间计算结果的生命周期,做一点显存复用。

  3. src/model/w4a16_gptq_marlin/ 量化的计算 kernel。这里直接使用了 vLLM 的 Marlin 代码。

  4. src/model/minicpm4/ 这里是模型的架构实现。src/model/下也有其他代表性模型实现。

  5. src/flash_attn/ 我们基于 flash_attn 2.6.3 版本,在上面增加了对 InfLLM v2、投机采样的适配支持。下面我们主要介绍这一部分,也是整个框架实现的难点。

开源地址:https://github.com/OpenBMB/CPM.cu


相關推薦

2024-08-01

练中,有望在 8 月发布! RWKV 官方动态 RWKV-6-World 14B 开源发布 2024 年 7 月 19 日,RWKV 开源基金会宣布正式向全球开源 RWKV-6-World 14B 模型。 RWKV-6-World 14B 是迄今最强的稠密纯 RNN 大语言模型。在最新的性能测试中,该模型英文

2025-04-24

OpenBMB 开源社区宣布推出代码 Agent 新成员「卷姬」,官方介绍其能够「高效获取有价值的内容」。 具体来看,用户只需要在「卷姬」官网输入想要提取的内容,便可在等待后获取到综述报告。而「卷姬」拥有两种处理模式:

2025-06-18

伯克利分校 Sky Computing 实验室开发,现已成为社区驱动的开源项目,为 LLM 推理和服务提供快速易用的库。该工具支持分布式部署和先进的 KV 缓存管理,并能与工业级 LLM 基础设施集成。 以下是 vLLM v0.9.1 一些主要的更新内容

2022-09-21

元。 除了带来最新款显卡以外,NVIDIA 还公布了一个新的开源项目 —— CV-CUDA。CV-CUDA 是一个用于构建加速的端到端计算机视觉和图像处理管道的开源库,可以更快、更高效地大规模处理图像。 如今大多数互联网流量来自于视

2023-06-15

LT 还提供了灵活的分布式训练部署以满足不同的需求。 开源地址:https://github.com/alibaba/graphlearn-for-pytorch 文档地址:https://graphlearn-torch.readthedocs.io/en/latest/index.html 背景介绍 图神经网络作为一种图数据上表示学习的方法已

2025-06-05

晶圆检测的实际部署中,框架的资源调度器会智能识别:轻量级YOLOv5模型的前处理阶段适合部署在带NPU(神经网络处理单元)的工业相机,特征提取层分配至工厂级边缘服务器集群,而复杂的分类决策则交由厂区级GPU节点完成。这

2024-08-08

。 MiniCPM-V 2.6 开源地址: GitHub: https://github.com/OpenBMB/MiniCPM-V HuggingFace: https://huggingface.co/openbmb/MiniCPM-V-2_6

2025-03-26

(AI)图形处理器(GPU)定价策略过高,难以支持大规模的 AI 推理任务。盖尔辛格指出,推理是部署 AI 模型的关键环节,当前行业的发展趋势应该更关注推理,而英伟达的技术在成本效益上难以满足这一需求。 他提到,英伟达用于

2023-04-17

最近的发展如火如荼,LLaMA、Alpaca、Vicuna 和 Dolly 等相继开源。但这些模型通常很大且计算量很大。要构建聊天服务的话,需要一个大型集群来运行推理服务器,同时客户端向服务器发送请求并检索推理输出,且通常还必须在特

2023-03-16

端 torch.func 模块中的 functorch API 以及 GPU 和 CPU 上各种推理、性能和训练优化功能的其他 Beta/Prototype 改进。 新功能的概括介绍: torch.compile 是 PyTorch 2.0 的主要 API,它包装并返回编译后的模型,torch.compile 是一个完全附加

2025-04-18

上海人工智能实验室(上海 AI 实验室)升级并开源了通用多模态大模型书生·万象3.0(InternVL3)。 根据介绍,通过采用创新的多模态预训练和后训练方法,InternVL3 多模态基础能力全面提升,在专家级基准测试、多模态性能全面

2024-07-10

- gemma-2-it 💻 - 新功能 🚀     - transformers推理后端支持开启continuous batching(连续批处理),优化LLM同时服务多请求的吞吐。支持generate / chat / vision任务,欢迎试用。详见:https://inference.readthedocs.io/zh-cn/latest/user_guide/

2022-12-11

CUDA(Compute Unified Device Architecture),是显卡厂商 NVIDIA 推出的运算平台。作为一种通用并行计算架构,CUDA 使 GPU 能够解决复杂的计算问题。 它包含了 CUDA 指令集架构(ISA)以及 GPU 内部的并行计算引擎。 目前,NVIDIA CUDA 12.0 发

2025-03-29

型架构,用于去除图像中的镜头光晕。 该方法通过结合轻量级光晕检测网络与基于 RWKV 的修复网络(利用其线性复杂度的 attention 机制捕捉全局依赖关系,以及增强局部上下文感知的 token 移位机制),解决了光晕消除任务中的