Optimization pipelines targeting polyhedral programs try to maximize the compute throughput. Traditional approaches favor reuse and temporal locality; while the communicated volume can be low, failure to optimize spatial locality may cause a low I/O performance. Memory allocation schemes using data partitioning such as data tiling can improve the spatial locality, but they are domain-specific and rarely applied by compilers when an existing allocation is supplied. In this paper, we propose to derive a partitioned memory allocation for tiled polyhedral programs using their data flow information. We extend the existing MARS partitioning to handle affine dependences, and determine which dependences can lead to a regular, simple control flow for communications. While this paper consists in a theoretical study, previous work on data partitioning in inter-node scenarios has shown performance improvements due to better bandwidth utilization.
翻译:针对多面体程序的优化管线致力于最大化计算吞吐量。传统方法倾向于重用与时间局部性;尽管通信量可能较低,但未能优化空间局部性会导致I/O性能低下。采用数据分块等数据划分策略的内存分配方案能改善空间局部性,但这些方案具有领域特异性,在已有内存分配时编译器很少应用此类方案。本文提出利用数据流信息为分块多面体程序推导分区内存分配方案。我们扩展了现有的MARS分区方法以处理仿射依赖,并确定哪些依赖关系能产生规则、简单的通信控制流。虽然本文属于理论研究,但此前关于节点间场景中数据分区的研究表明,更好的带宽利用率能带来性能提升。