“Master theorem 只处理 $aT(n/b)+f(n)$ 型规则分治。缓存无关模型还需为同一递归计算块传输,CPU 递推不能替代 cache recurrence;Work–Dep…”
形式陈述 ​
理想缓存 ​
它沿用外存模型的缓存
递归矩阵转置是该模型上的一种构造策略,而不是模型定义的一部分:它不断把矩形切半;当子问题首次装入任一级缓存后,在内部复用连续块,因而同一代码适配多层尺度。这是“无参数但有局部性证明”,不是不考虑缓存。
直觉
缓存无关算法并非拒绝分块,而是让递归在许多尺度上同时产生局部块。分析者事后针对任意实际
例子与边界
失败边界 ​
任意递归并不自动最优:糟糕布局仍会逐元素跨块。现实组相联、TLB、预取和写回偏离 ideal cache,模型结论是传输上界而非精确计时。递归栈与基础阈值也有成本。
Cache-aware 算法显式按
最优替换是假想分析器,不是算法知道未来。Cache-oblivious 证明若依 ideal-cache 的包含性质,可逐层分析多级缓存;现实 conflict miss 仍可能改变常数。数据布局与递归访问顺序必须相配,仅有其中一项不保证局部性。
递归转置的状态演化 ​
对
朴素行主序矩阵按列扫描时,相邻访问相距整行,若行长大于缓存,每元素都可能 miss。二者 CPU 操作同为
Ideal-cache 假设的作用 ​
全相联与最优替换保证只要工作集不超过
Cache-aware blocking 直接选 tile 边长约
多级和失败边界 ​
Ideal-cache 的包含/最优性可让两级分析逐级应用到多层,但现实 set associativity 会产生 conflict misses。基础阈值、递归栈和并行 false sharing 也不在最简模型里,应作为实现边界而非否定渐近结论。
推论与应用
该模型允许用同一份递归布局或访问程序同时分析 L1、末级缓存和外存层级。缓存无关搜索树、van Emde Boas 布局与递归矩阵算法由此共享“代码无参数、界仍含参数”的接口;若某项保证还依赖 tall-cache、连续布局或最优替换,应用结论必须把这些条件一并带上。
参考资料
- Frigo et al., “Cache-Oblivious Algorithms,” FOCS 1999.
- Harald Prokop, Cache-Oblivious Algorithms, MIT thesis, 1999.