news 2026/7/4 8:32:14

CANN/GE LLM缓存分配API

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CANN/GE LLM缓存分配API

# allocate_cache

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

产品支持情况

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

函数功能

分配Cache,分配成功后,会同时被cache_id与cache_keys引用,只有当这些引用都解除后,cache所占用的资源才会实际释放。

cache_id的引用需通过deallocate_cache解除,cache_keys的引用则可以通过以下2种方式解除。

  • Decoder调用pull_cache接口成功后解除。
  • Prompt调用remove_cache_key接口时解除。

函数原型

allocate_cache(cache_desc: CacheDesc, cache_keys: Union[Tuple[CacheKey], List[CacheKey]] = ())

参数说明

参数名称数据类型取值说明
cache_descCacheDescCache的描述。
cache_keysUnion[Tuple[CacheKey], List[CacheKey]]仅当LLMRole为PROMPT时可设置,用于在Decode拉取KV。

调用示例

from llm_datadist import * ... kv_cache_manager = data_dist.kv_cache_manager cache_desc = CacheDesc(80, [2, 2 * 1024 * 1024], DataType.DT_FLOAT16) cache_keys = [CacheKey(prompt_cluster_id=0, req_id=1)] kv_cache = kv_cache_manager.allocate_cache(cache_desc, cache_keys)

返回值

正常情况下返回KvCache。

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

如果cache_keys中包含了分配内存时绑定的CacheKey,则抛出LLMException异常。

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

约束说明

  • 传入cache_keys时,如果Cache的batch size>1,则需要提供相同数量的CacheKey,分别引用一组kv tensor。
  • 如果当次推理的batch未占用满,即存在无效batch_index,则需要插入特殊的CacheKey(将req_id设置为UINT64_MAX)占位,如果空闲的batch_index在末尾,则可以省略。
  • 如果cache_keys存在重复,则最后一个生效。
  • 本接口不支持并发调用。

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

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/4 8:32:01

深入解析事件

事件的由来 在介绍事件之前大家可以先看看下面的例子, PriceManager 负责对商品价格进行处理,当委托对象 GetPriceHandler 的返回值大于100元,按8.8折计算,低于100元按原价计算。 1 public delegate double PriceHandler();2…

作者头像 李华
网站建设 2026/7/4 8:29:37

CANN/GE Python内存分配器API

Allocator 【免费下载链接】ge GE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端…

作者头像 李华
网站建设 2026/7/4 8:28:35

10分钟快速上手:FlipperZeroHondaFirmware安装与配置教程

10分钟快速上手:FlipperZeroHondaFirmware安装与配置教程 【免费下载链接】FlipperZeroHondaFirmware Custom Firmware for the Flipper Zero, to add support for Honda key fobs (FCC ID: KR5V2X) 项目地址: https://gitcode.com/gh_mirrors/fl/FlipperZeroHond…

作者头像 李华
网站建设 2026/7/4 8:27:29

如何在CSS中直接编写SVG?postcss-write-svg完整入门指南

如何在CSS中直接编写SVG?postcss-write-svg完整入门指南 【免费下载链接】postcss-write-svg Write SVGs directly in CSS 项目地址: https://gitcode.com/gh_mirrors/po/postcss-write-svg postcss-write-svg是一款强大的PostCSS插件,它让开发者…

作者头像 李华
网站建设 2026/7/4 8:27:20

Linux 内核 dmatest 模块实战:5步配置与 DMA_MEMCPY 性能测试

Linux 内核 dmatest 模块实战:5步配置与 DMA_MEMCPY 性能测试在嵌入式开发和内核驱动调试中,DMA(直接内存访问)引擎的性能直接影响系统吞吐量。本文将手把手带你完成dmatest模块的完整配置流程,并通过实测数据解读DMA_…

作者头像 李华