当前位置: 首页 > news >正文

CANN/ge LLM缓存pull_cache API

# pull_cache

【免费下载链接】geGE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端的友好接入能力,并同时支持 onnx、pb 等主流模型格式的解析与编译。项目地址: https://gitcode.com/cann/ge

产品支持情况

  • Atlas A3 训练系列产品/Atlas A3 推理系列产品:支持
  • Atlas A2 推理系列产品:支持
  • Atlas A2 训练系列产品:不支持

函数功能

根据CacheKey,从对应的Prompt节点拉取KV到本地KV Cache,仅当LLMRole为DECODER时可调用。

函数原型

pull_cache(cache_key: Union[CacheKey, CacheKeyByIdAndIndex], kv_cache: KvCache, batch_index: int = 0, size: int = -1, **kwargs)

参数说明

参数名称数据类型取值说明
cache_keyUnion[CacheKey, CacheKeyByIdAndIndex]需要被拉取的CacheKey。该CacheKey需要和allocate_cache的CacheKey保持一致。
通过req_id,prefix_id,model_id拉取则传入CacheKey。
通过cache_id,batch_index拉取则传入CacheKeyByIdAndIndex。
kv_cacheKvCache目标KV Cache。
batch_indexint表示目标KV Cache的batch index,默认为0。
sizeint默认为-1。
设置为>0的整数,表示要拉取的tensor大小。
或设置为-1,表示完整拷贝:本地单个KV的大小减去dst_cache_offset大小。
**kwargsNA这个是Python函数的可扩展参数通用写法,一般通过key=value的方式直接传入参数。
可选参数的详细信息请参考表1。

表 1**kwargs的可选参数

参数名称数据类型取值说明
src_layer_rangeOptional[range]可选参数,用于按层pull kv场景。传输源的layer的范围,step只支持1。不设置时为传输所有layer。需要注意这里是layer的index,而不是tensor的index,即1个layer对应连续N个tensor(K/V),这里要求分配内存时,必须是KV,...,KV排布,不支持其他场景。N为tensor_num_per_layer的取值,默认为2。
dst_layer_rangeOptional[range]可选参数,用于按层pull kv场景。传输目标的layer的范围,step只支持1。不设置时为传输所有layer。需要注意这里是layer的index,而不是tensor的index,即1个layer对应连续N个tensor(K/V),这里要求分配内存时,必须是KV,...,KV排布,不支持其他场景。N为tensor_num_per_layer的取值,默认为2。
src_cache_offsetOptional[int]设置>=0的整数。表示从src_cache tensor的offset位置拉取size大小的数据
dst_cache_offsetOptional[int]设置>=0的整数。表示将源数据拉取到dst_cache tensor的offset起始位置
tensor_num_per_layerOptional[int]可选参数,表示每层的tensor的数量,默认值是2,取值范围是[1,cache的tensor总数]。当src_layer_range或dst_layer_range取值为非默认值时, tensor_num_per_layer可以保持默认值,也可以输入其他值,输入其他值的时,tensor_num_per_layer的取值还需要被当前cache的tensor总数整除。

调用示例

from llm_datadist import * ... cache_keys = [CacheKey(1, req_id=1), CacheKey(1, req_id=2)] kv_cache_manager.pull_cache(cache_keys[0], cache, 0) # 使能layer_range功能 kv_cache_manager.pull_cache(cache_keys[1], cache, 1, src_layer_range=range(0,2), dst_layer_range=range(2,4)) # 使能offset功能 kv_cache_manager.pull_cache(cache_keys[1], cache, src_cache_offset=0, dst_cache_offset=0)

返回值

正常情况下无返回值。

参数错误可能抛出TypeError或ValueError。

执行时间超过sync_kv_timeout配置会抛出LLMException异常。

约束说明

  • 使用同一条链路时,不支持该接口和transfer_cache_async接口并发。
  • 本接口不支持并发调用。

【免费下载链接】geGE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端的友好接入能力,并同时支持 onnx、pb 等主流模型格式的解析与编译。项目地址: https://gitcode.com/cann/ge

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

http://www.jsqmd.com/news/1120429/

相关文章:

  • CANN/cannbot-skills科学模型NPU迁移指南
  • 终极Houdini流程资产库:qLib让你的特效创作效率翻倍
  • Saber手写笔记:跨平台开源笔记工具的完整使用指南
  • 3个策略掌握Hermes WebUI多模型智能切换
  • 5个场景解锁Noctalia Shell:从自动化钩子到系统服务深度集成
  • Juggl事件系统详解:如何监听和处理图视图中的交互事件
  • Wabbajack多平台下载器架构设计:实现高性能分布式下载与智能调度的技术方案
  • Czkawka终极指南:如何用开源工具快速清理磁盘空间,告别存储焦虑
  • 2026年AI模型实操红黑榜:六模型生存指南
  • RVC语音转换框架终极指南:10分钟打造专属AI语音模型
  • 地平线征程5芯片与iCAR V27的智能驾驶技术解析
  • 为什么选择postcss-write-svg?5大优势彻底改变你的CSS图形开发
  • 解密DeepPurpose:AI如何重塑药物研发的底层逻辑与实践范式
  • Wunjo CE终极指南:5分钟掌握免费AI视频编辑神器
  • CANN/GE dflow FunctionPp类SetCompileConfig方法
  • 如何用IYUUPlus实现PT自动辅种:新手完整指南
  • DCG技术如何革新芯片设计流程与优化策略
  • Intel RealSense SDK 2.0深度解析:从3D视觉到机器人感知的完整开发指南
  • 从源码到部署:GoExec Docker容器化方案与跨平台使用终极指南
  • 智能布局生成:Grid 不是摆满卡片,而是表达内容关系
  • Yuzu模拟器版本管理:3分钟构建专业级Switch游戏环境
  • 基于检索的语音转换:10分钟训练实战与高效部署指南
  • GPT-4.1为何成企业级首选:稳定性、确定性与工程收敛
  • 保护隐私必学:3分钟掌握ExifCleaner跨平台元数据清理技巧
  • Qwen3-VL-4B-Instruct-FP8:边缘计算场景下的多模态架构演进
  • 从入门到精通:jupyterlab-vim使用技巧与高级玩法
  • 如何在电脑上免费玩Switch游戏:yuzu模拟器完整指南
  • 从DFT到AI:UMA如何将催化材料设计从“天“缩短到“秒“
  • Python-Backdoor跨平台持久化技术:Windows与Unix系统实现对比
  • 车载图像处理芯片技术解析与市场趋势