By their very name caches are often overlooked and yet play a vital role in the performance of modern and indeed future hardware. Using MAGPIE (Machine Automated General Performance Improvement via Evolution of software) we show genetic improvement GI can reduce the cache load of existing computer programs. Operating on lines of C and C++ source code using local search, Magpie can generate new functionally equivalent variants which generate fewer L1 data cache misses. Cache miss reduction is tested on two industrial open source programs (Google's Open Location Code OLC and Uber's Hexagonal Hierarchical Spatial Index H3) and two 2D photograph image processing tasks, counting pixels and OpenCV's SEEDS segmentation algorithm. Magpie's patches functionally generalise. In one case they reduce data misses on the highest performance L1 cache dramatically by 47 percent.
翻译:通过它们的命名方式,缓存经常被忽略,然而在现代以及未来的硬件性能中却扮演着至关重要的角色。使用 MAGPIE (机器自动化一般性能改善 via software 的演化),我们展示了遗传改进 (GI) 能够减少现有计算机程序的缓存负载。Magpie 使用局部搜索操作 C 和 C++ 代码行,能够生成新的具有相同功能的变形,这些变形能够产生更少的 L1 数据缓存未命中。缓存未命中的减少经过了两个开源的工业级软件 (Google 的 OLC 和 Uber 的 H3) 以及两个二维的图像处理任务进行测试,即计算像素和 OpenCV 的 SEEDS 分割算法。Magpie 的修补程序具有功能概括性。在某种情况下,它们能够将最高性能的 L1 缓存数据未命中减少 47%。