一、分类说明

整理所读到论文中经常使用的内存分析工作负载。

按照特点可以分为延迟敏感型、带宽密集型;按照作用可以分为AI、HPC、Database等

博客用于内存性能评估的workload中整理了常见的workloads,但是主要还是重在基本介绍,没有对其访存特征等镜像介绍。
本文借鉴这篇博客,自己分析、运行相关workloads。

二、LLM inference

1.llama.cpp

轻量化的大模型推理框架、适用于嵌入型系统、边缘节点上进行大模型推理。

访存特征:

  1. 模型权重加载阶段:采用大块连续内存、或者可选mmap()映射模型参数。具有较好的空间局部性、较差的时间局部性(一次加载一次使用)
  2. 推理阶段:主要是KV-Cache需要大量内存访问,读写频繁、更新频繁、各个层中存在一些张量操作也需要访存。高读密集型

内存需求:

​ 同其他大模型推理需求相似,内存需求量主要来自模型权重与KV-cache。模型权重内存使用量与精读有关、KV-Cache与依赖层数有关。一个qwen-7b在llama.cpp的内存占用量约为14~16B

其他:

​ llama.cpp的内存管理采用统一预分配内存池,使用offset二次分配与访问,最后集中释放的方式进行内存管理。其ggml内存中有对内存的一次性malloc(ggml_init)ggml_new_tensor、ggml_new_tensor_1d进行内存内存二次分配、ggml_free进行内存释放。Arena 分配器(“批发内存,零售指针,整单清场”)


本站由 Zane Jiang 使用 Stellar 1.33.1 主题创建,一款很棒的 Hexo 主题!

总访问 次 || 本页访问
总访客 人 || 本页访客