Linux 用 Maple Tree 管理进程的 VMA,将虚拟地址区间关联到映射对象。
附源码片段 · 内存管理
怎样组织、分配和回收有限的空间?
包括物理页、GPU KV 块及向量压缩;持久化文件组织归入存储。
Linux 用 Maple Tree 管理进程的 VMA,将虚拟地址区间关联到映射对象。
伙伴分配器把空闲物理页组织为不同 order 的连续块,并用空闲链表管理同阶块。
缓存块命中后可能需要从队列中间移除,双向链表让这一步保持常数时间。
将逻辑连续的 token 缓存映射到分散的物理块,减轻显存碎片与重复存储。
把向量拆成多组子向量,用各自码本中的编号表示每组子向量。
通过分块、融合与重计算,让注意力计算更适应 GPU 存储层次。
Linux IIO 的 kfifo 缓冲在采样进入内核与用户态读取之间暂存数据,按先进先出顺序交付采样记录。
Redis List 提供左右两端的插入和弹出;在 quicklist 编码下,用带头尾指针的双向节点链组织紧凑数据块。
nginx 将小额分配变成池内游标推进,并以池的生命周期统一释放;较大的分配另建记录管理。
Linux SLUB 将同类对象组织在 slab 中,并用 per-CPU freelist 满足常见分配,避免每次都访问集中管理的部分空闲 slab 列表。
Linux 把 list_head 嵌入业务对象,通过成员偏移找回宿主,并在编译期检查指针类型。
Redis SDS 把字节长度与可用容量放进头部,追加按长度复制,正文允许包含零字节。
CPython 的 list 把对象指针连续存储,在扩容时适当预留空间,并在占用低于一半前避免缩容。
PyTorch 的非重入 activation checkpoint 在反向传播需要中间张量时重新执行对应前向片段,以额外计算换取更低的激活存储需求。