鲲鹏社区首页
中文
注册
开发者
我要评分
获取效率
正确性
完整性
易理解
在线提单
论坛求助

CMF简介

本文档详细描述了CMF(Cache Management Framework,缓存管理框架)的概念和架构,提供CMF编译安装和使用说明。

CMF是基于鲲鹏硬件平台开发的缓存控制框架,由内核态驱动与命令行工具组成。内核态驱动与命令行工具通过ioctl进行交互。命令行工具先解析用户命令行参数,然后通过用户态API将解析后的命令行参数发送给内核态驱动,内核态驱动获取用户态参数后解析参数合法性,通过合法性校验后由硬件访问模块完成对硬件寄存器的查询与设置。

CMF通过变更硬件寄存器的值影响系统中L2 Cache(二级缓存)、L3 Cache(三级缓存)等资源的分配。

架构图

图1 CMF架构图

应用场景

在使用鲲鹏920新型号处理器+昇腾800I A3推理服务器部署场景下存在算子下发速度较慢,导致的NPU空闲占比较高,进而造成解码时延较长问题。CMF通过变更硬件寄存器的值影响系统中L2 Cache资源的分配,使Qwen 2 1.5B模型decode(解码)时延降低7%。

此外,CMF提供对外接口,外部应用可通过直接调用API接口完成与驱动的交互,从而查看与修改硬件资源的分配策略。

使用限制

  • 当前仅支持物理机设置。
  • 驱动加载需在root用户权限下进行。
  • L2 I/D(Instruction/Data Cache)配置均不得少于2路。
  • 受驱动修改限制的核不能进行电源状态切换,电源状态切换时会导致复位。典型的电源状态切换包括重启、LPI打开、非performance模式下低功耗特性等。
  • 需要先加载内核态驱动,确认内核态驱动加载成功后,方可通过命令行工具对硬件寄存器进行读写。