首页/新闻资讯/正文详情

Unified Cache Manager(UCM)开发教程:3步扩展自定义存储后端的完整流程

发布时间:2026/9/25 15:53:55 来源:云帆数科 栏目:资讯中心
Unified Cache Manager(UCM)开发教程:3步扩展自定义存储后端的完整流程
Unified Cache ManagerUCM开发教程3步扩展自定义存储后端的完整流程【免费下载链接】unified-cache-managementUnified Cache Manager推理记忆数据管理器是一款以KV Cache为中心的推理加速套件其融合了多类型缓存加速算法工具分级管理并持久化推理过程中产生的KV Cache记忆数据扩大推理上下文窗口以实现高吞吐、低时延的推理体验降低每Token推理成本。项目地址: https://gitcode.com/ModelEngine/unified-cache-managementUnified Cache ManagerUCM是一款以 KV Cache 为中心的推理加速套件它分级管理并持久化推理过程中产生的 KV Cache 记忆数据扩大推理上下文窗口实现高吞吐、低时延的推理体验。本教程将带你通过 3 步扩展 UCM 自定义存储后端理解接口契约 → 实现自定义 Store → 注册并配置生效让你的专属存储引擎如自研分布式存储、私有对象存储快速接入 UCM 缓存体系。为什么需要扩展自定义存储后端UCM 内置了 Posix、NFS、Mooncake、DS3FS、DRAM 等多种生产级存储后端覆盖本地磁盘、共享存储与分布式内存等常见场景。但在以下情况中你可能需要扩展自己的存储后端️ 需要接入自研或私有存储系统内部 KV 存储、专用硬件加速池等 希望针对特定负载定制压缩、量化、编解码策略 在快速验证新缓存算法时先用轻量实现跑通全链路先克隆代码仓库作为开发起点git clone https://gitcode.com/ModelEngine/unified-cache-management第一步读懂 UcmKVStoreBaseV1 接口——扩展自定义 Store 的唯一契约在 UCM 架构中Store 组件负责四类核心工作空间管理KV Cache 存储空间的分配与扩容持久化数据的可靠存储与恢复分级传输存储层级之间的高效数据搬运数据处理量化、压缩与编码转换无论采用哪种实现方式自定义 Store 都必须实现 ucm/store/ucmstore_v1.py 中定义的抽象基类UcmKVStoreBaseV1核心方法一览方法作用一句话理解lookup批量探测块是否存在这些块你们存过吗lookup_on_prefix从头向后扫描遇缺失即停连续命中了多少前缀块lookup_on_reverse从尾向前扫描遇命中即停混合模型如 Mamba复用优化prefetch异步预取块到高速缓存提前把热数据搬快一点load/dump启动 存储↔设备 的 KV 数据传输核心数据搬运入口wait/check等待 / 轮询异步任务完成配合返回的Task句柄使用cc_store返回底层 C 实例指针供原生代码桥接调用 提示所有传输类方法都返回Task句柄UCM 上层通过wait/check异步跟踪进度——异步设计是接口的灵魂实现时请保留该模型。第二步选择实现方式——纯 Python、混合还是纯 CUCM 提供三种扩展模式官方在 docs/source/developer-guide/extending_store.md 中给出了完整对照方式开发速度运行时性能线程支持适用场景纯 Python⭐⭐⭐⭐⭐⭐⭐⭐❌原型验证、算法验证Python/C 混合⭐⭐⭐⭐⭐⭐⭐⭐⚠️复杂逻辑 性能关键路径纯 C推荐⭐⭐⭐⭐⭐⭐⭐⭐✅生产级、高吞吐场景方式一纯 Python 快速原型继承基类并实现抽象方法参考现成实现 ucm/store/mooncakestore/mooncake_connector.pyfrom ucm.store.ucmstore_v1 import UcmKVStoreBaseV1 class UcmCustomStore(UcmKVStoreBaseV1): def __init__(self, config): super().__init__(config) def lookup(self, block_ids): # 返回 [bool]顺序与入参一致 ... def load(self, block_ids, shard_index, dst_tensor): ... # 返回 Task 句柄⚠️性能提醒Python 实现受 GIL 限制仅建议用于开发调试生产环境请升级 C 实现。方式二/三C 高性能实现纯 C 方案是生产级推荐路径核心优势零抽象开销、完整的内存与线程控制且可与内置 Store栈式叠加如你的后端 内置 Cache 层。开发时只需做四件事完整接口规格见 ucm/store/ucmstore_v1.h定义类继承StoreV1实现Setup / Lookup / Load / Dump / Wait / Check等接口暴露工厂函数extern C StoreV1* MakeCustomStore()CMake 编译以SHARED方式产出libcustomstore.so链接接口库storeintf可参考 ucm/store/CMakeLists.txt 与 ucm/store/mooncakestore/CMakeLists.txt编写单元测试参考 ucm/store/test/ 中的用例组织最佳实践速记✅ 用 UCM 智能指针与内存池管理内存避免裸new/delete✅ 用返回UC::Status代替抛异常保证异常安全✅ 实现必须线程安全UCM 会多线程并发调用✅ 热路径标注UCM_PROFILER_SCOPE便于性能剖析第三步注册并配置——3 行代码让自定义 Store 生效实现完成后注册是临门一脚。根据实现方式选择对应入口Python 实现注册到连接工厂仿照 ucm/store/factory_v1.py 中的注册方式延迟加载你的模块UcmConnectorFactoryV1.register_connector( UcmCustomStore, ucm.store.custom.connector, UcmCustomStore )C 实现注册到 Pipeline 构建器仿照 ucm/store/pipeline/connector.py 中的模式写一个 builder 把.so压入流水线def _custom_pipeline_builder(config, pipeline): pipeline.Stack(Custom, custom/libcustomstore.so, config) UcmPipelineStoreBuilder.register(Custom, _custom_pipeline_builder)支持多存储级联叠加——例如在自研后端前再叠一层内置压缩层pipeline.Stack(Compress, ...)→pipeline.Stack(Custom, ...)。YAML 配置激活在 UCM 配置文件中指定连接器即可生效完整示例见 examples/ucm_config_example.yamlucm_connectors: - ucm_connector_name: UcmPipelineStore ucm_connector_config: store_pipeline: Custom # 你在构建器中注册的名字 # ... 其余自定义配置项将配置路径通过kv_connector_extra_config{UCM_CONFIG_FILE: .../your_config.yaml}传给推理引擎自定义存储后端即刻接入。扩展前的自检清单提交前逐项确认避免返工已通读 ucm/store/ucmstore_v1.py 与 ucm/store/ucmstore_v1.h明确了支持的数据类型与压缩算法估算了目标 QPS 与延迟 SLO据此选定扩展方式已准备单元测试参考 ucm/store/test/e2e/已用桩实现stub验证注册链路可用参考资源资源路径官方扩展指南docs/source/developer-guide/extending_store.mdPython 接口定义ucm/store/ucmstore_v1.pyC 接口定义ucm/store/ucmstore_v1.h连接工厂注册入口ucm/store/factory_v1.pyPipeline 构建器ucm/store/pipeline/connector.py混合实现参考ucm/store/pcstore/pcstore_connector_v1.py配置示例examples/ucm_config_example.yaml构建脚本scripts/build_cuda.sh、scripts/build_ascend.sh完成存储后端扩展后你的自定义 Store 就能像内置后端一样参与 KV Cache 分级缓存为推理引擎带来更低的首 Token 时延与更优的每 Token 成本。动手试试3 步走完全流程吧【免费下载链接】unified-cache-managementUnified Cache Manager推理记忆数据管理器是一款以KV Cache为中心的推理加速套件其融合了多类型缓存加速算法工具分级管理并持久化推理过程中产生的KV Cache记忆数据扩大推理上下文窗口以实现高吞吐、低时延的推理体验降低每Token推理成本。项目地址: https://gitcode.com/ModelEngine/unified-cache-management创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关推荐

Trae 使用日志(挑刺版):Java + Maven 项目在 IDEA 里的配置踩坑记录
Trae 使用日志(挑刺版):Java + Maven 项目在 IDEA 里的配置踩坑记录

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 15:53:42

TypeScript Book 项目动态:TypeScript 7.0 正式发布,Go 原生编译器时代的性能与迁移指南
TypeScript Book 项目动态:TypeScript 7.0 正式发布,Go 原生编译器时代的性能与迁移指南

文档教程 【免费下载链接】typescript-book The Concise TypeScript Book: A Concise Guide to Effective Development in TypeScript. Free and Open Source. 项目地址: https://gitcode.com/gh_mirrors/typ/typescript-book 点击查看 免费下载 TypeScript 7.0 于… · 2026/9/25 15:53:18

RAG+LLM抽取年报AI变量,构建绿色全要素生产率实证模型
RAG+LLM抽取年报AI变量,构建绿色全要素生产率实证模型

简介:面向金融科技与环境经济交叉领域的研究者,项目包演示了基于RAG与大语言模型分析A股上市公司年报的完整流程,旨在量化评估人工智能对企业绿色全要素生产率(GTFP)的影响,并引入融资约束异质性视角开展稳… · 2026/9/25 15:52:53

Ghidra MCP 7.0.0 工具整合迁移指南:272→251工具的破坏性变更全解析
Ghidra MCP 7.0.0 工具整合迁移指南:272→251工具的破坏性变更全解析

Ghidra MCP 7.0.0 工具整合迁移指南:272→251工具的破坏性变更全解析 【免费下载链接】ghidra-mcp Ghidra MCP Server — 200 MCP tools for AI-powered reverse engineering. GUI plugin headless server, lazy tool loading, convention enforcement, batch oper… · 2026/9/25 16:24:27

OBS/会议/游戏怎么接入手机麦克风?MicYou虚拟声卡路由保姆级教程
OBS/会议/游戏怎么接入手机麦克风?MicYou虚拟声卡路由保姆级教程

OBS/会议/游戏怎么接入手机麦克风?MicYou虚拟声卡路由保姆级教程 【免费下载链接】MicYou MicYou is a powerful tool that turns your Android device into a high-quality microphone for your PC. 项目地址: https://gitcode.com/gh_mirrors/mi/MicYou MicYou 是一款… · 2026/9/25 16:24:20

基于 Spring Boot 的二手车交易网站的设计与实现
基于 Spring Boot 的二手车交易网站的设计与实现

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 1. 项目背景与意义 随着汽车保有量的持续增长和消费观念的转变,二手车交易市场呈现出快速发展的态势。传统的线下二手车交易存在信息不对称、车源分散、交易… · 2026/9/25 16:23:56

GEOFlow知识库搭建完整指南:pgvector向量检索让AI内容生产有据可依
GEOFlow知识库搭建完整指南:pgvector向量检索让AI内容生产有据可依

GEOFlow知识库搭建完整指南:pgvector向量检索让AI内容生产有据可依 【免费下载链接】GEOFlow Open-source GEO content engineering and multi-site distribution platform with AI quality inspection, illustrated admin help, hosted sites, browser-assisted pu… · 2026/9/25 16:23:31

Agent Skills 实用指南:构建可复用智能体技能体系
Agent Skills 实用指南:构建可复用智能体技能体系

"agent-skills"这个词,最近在AI圈子里被反复提起。我做智能体开发也有两三年了,从最早的提示词堆砌,到后来的函数调用,再到现在围绕技能(skills)来构建智能体,最大的感受是&#xff1… · 2026/9/25 16:23:31

Atlas 300V 24G推理加速卡上部署YOLO:从模型转换到性能调优全攻略
Atlas 300V 24G推理加速卡上部署YOLO:从模型转换到性能调优全攻略

1. Atlas 300V 24G到底是个什么卡1.1 它就是热搜里问的那张“运算加速卡”先说结论:是的,Atlas 300V 24G就是一张标准的运算加速卡,但你要注意它并不是显卡,更不是用来打游戏的。它是昇腾生态里面向数据中心和边缘侧推理场景的PCI… · 2026/9/25 16:23:13

数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)
数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31

创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战
创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31

MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX
MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:37

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码