...
首页> 外文期刊>IEEE Transactions on Computers >Array regrouping and its use in compiling data-intensive, embedded applications
【24h】

Array regrouping and its use in compiling data-intensive, embedded applications

机译:数组重组及其在编译数据密集型嵌入式应用程序中的用途

获取原文
获取原文并翻译 | 示例
           

摘要

One of the key challenges facing computer architects and compiler writers is the increasing discrepancy between processor cycle times and main memory access times. To alleviate this problem in array-intensive embedded signal and video processing applications, compilers may employ either control-centric transformations that change data access patterns of nested loops or data-centric transformations that modify memory layouts of multidimensional arrays. Most of the memory layout optimizations proposed so far either modify the layout of each array independently or are based on explicit data reorganizations at runtime. We focus on a compiler technique, called array regrouping, that automatically maps multiple arrays into a single data (array) space to improve data access pattern. We present a mathematical framework that enables us to systematically derive suitable mappings for a given array-intensive embedded application. The framework divides the arrays accessed in a given program into several groups and each group is independently layout-transformed to improve spatial locality and reduce the number of conflict misses. As compared to the previous approaches, the proposed technique makes two new contributions: 1) It presents a graph based formulation of the array regrouping problem and 2) it demonstrates potential benefits of this aggressive array-regrouping strategy in optimizing behavior of embedded systems. Extensive experimental results demonstrate significant improvements in cache miss rates and execution times. An important advantage of this approach over the previous techniques that target conflict misses is that it reduces conflict misses without increasing the data space requirements of the application being optimized. This is a very desirable property in many embedded/portable environments where data space requirements determine the minimum physical memory capacity. In addition to performance related issues, with the increased use of embedded/portable devices, improving energy efficiency of applications is becoming a critical issue. To develop a truly energy-efficient system, energy constraints should be taken into account early in the design process, i.e., at the source level in software compilation and behavioral level in hardware compilation. Source-level optimizations are particularly important in data-dominated media applications. We also show how our array regrouping strategy increases energy savings from using multiple low-power operating modes provided in current memory modules. Using a set of array-intensive benchmarks, we observe significant savings in memory system energy.
机译:计算机架构师和编译器编写者面临的主要挑战之一是处理器周期时间和主内存访问时间之间越来越大的差异。为了缓解阵列密集型嵌入式信号和视频处理应用程序中的此问题,编译器可以采用更改嵌套循环的数据访问模式的以控制为中心的转换,也可以使用修改多维阵列的内存布局的以数据为中心的转换。到目前为止,大多数建议的内存布局优化要么独立地修改每个阵列的布局,要么基于运行时的显式数据重组。我们专注于一种称为数组重组的编译器技术,该技术可以将多个数组自动映射到单个数据(数组)空间中,以改善数据访问模式。我们提出了一个数学框架,该框架使我们能够系统地为给定的阵列密集型嵌入式应用程序导出合适的映射。该框架将在给定程序中访问的数组分为几组,每组独立进行布局转换,以改善空间局部性并减少冲突未命中的次数。与以前的方法相比,所提出的技术做出了两个新贡献:1)提出了基于图形的阵列重组问题的公式; 2)证明了这种积极的阵列重组策略在优化嵌入式系统性能方面的潜在优势。大量的实验结果表明,缓存未命中率和执行时间有了显着改善。该方法相对于针对冲突遗漏的先前技术的一个重要优点是,它可以减少冲突遗漏,而不会增加被优化应用程序的数据空间要求。在许多嵌入式/便携式环境中,这是非常理想的属性,在这些环境中,数据空间要求决定了最小物理内存容量。除了与性能相关的问题外,随着嵌入式/便携式设备使用的增加,提高应用程序的能源效率也成为一个关键问题。为了开发真正的节能系统,应在设计过程的早期即在软件编译的源代码级别和硬件编译的行为级别考虑能源限制。源级优化在以数据为主导的媒体应用程序中尤其重要。我们还将展示我们的阵列重组策略如何通过使用当前内存模块中提供的多种低功耗操作模式来提高节能效果。使用一组阵列密集型基准,我们观察到显着节省了内存系统的能源。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号