SuperAPI AI 工具集

cpu-cache-opt

编程与开发

查看项目

更新于 10-16 06:49

技能介绍

用途:引导代理进行缓存感知编程,覆盖缓存未命中诊断、数据布局转换(AoS→SoA)、伪共享检测与修复、预取以及缓存友好算法设计。

主要能力:用 perf 测量缓存性能,例如 perf stat -e cache-references,cache-misses,cycles,instructions ./prog,以及 L1/L2/L3 未命中分解;缓存行基础(x86-64 与多数 ARM 平台为 64 字节,L1 约 4 周期、L2 约 12 周期、L3 约 40 周期、主存约 200–300 周期);AoS 与 SoA 布局对比;常见不友好模式(链表指针追逐、跨步访问、冷热字段混排);伪共享检测与填充修复;手动预取(__builtin_prefetch、_mm_prefetch);循环分块等缓存友好算法设计。

使用方式:先测量再优化,用 perf 计数器定位问题;按需对齐数据到缓存行(如 alignas(64));将热数据与冷数据分离;对多线程计数器做缓存行填充;预取距离通常取 8–32 个元素。

适用场景:C/C++ 与 Rust 中缓存未命中率高、多线程因缓存变慢、需要 SIMD 友好布局或矩阵运算优化的场景。

限制:资料未提供具体收费、平台支持范围与效果保证;预取过早或过晚均无效,需实测调优。