使用与体系结构无关的程序特征表征对存储器访问模式的优化
Characterizing Optimizations to Memory Access Patterns using Architecture-Independent Program Features
摘要:
高性能计算开发人员面临着在不同架构上优化OpenCL工作负载性能的挑战。架构无关的OpenCL特性描述(AIWC)工具是Oclgrind OpenCL模拟器的一个插件,它收集OpenCL程序的指标,可用于理解和预测程序在任意给定硬件架构上的性能。然而,AIWC指标并不总是容易解释的,并不反映一些重要的内存访问模式,影响跨架构的效率。我们提出了一个新的度量并行空间局部性-内存访问同时发出的OpenCL工作项(线程)的接近度。我们实现了并行空间局部性度量的AIWC框架,并分析了矩阵乘法和扩展OpenDwarfs OpenCL基准测试的结果。在矩阵乘法的实现中观察到的并行空间局部性度量的差异反映了所执行的优化。新的度量标准可用于区分OpenDwarfs基准测试,基于影响其在各种架构上的性能的内存访问模式。向AIWC提出的改进建议将帮助HPC开发人员更好地理解复杂代码的内存访问模式,并指导针对任意硬件目标的代码优化。
英文摘要:
High-performance computing developers are faced with the challenge of optimizing the performance of OpenCL workloads on diverse architectures. The Architecture-Independent Workload Characterization (AIWC) tool is a plugin for the Oclgrind OpenCL simulator that gathers metrics of OpenCL programs that can be used to understand and predict program performance on an arbitrary given hardware architecture. However, AIWC metrics are not always easily interpreted and do not reflect some important memory access patterns affecting efficiency across architectures. We propose a new metric of parallel spatial locality -- the closeness of memory accesses simultaneously issued by OpenCL work-items (threads). We implement the parallel spatial locality metric in the AIWC framework, and analyse gathered results on matrix multiply and the Extended OpenDwarfs OpenCL benchmarks. The differences in the observed parallel spatial locality metric across implementations of matrix multiply reflect the optimizations performed. The new metric can be used to distinguish between the OpenDwarfs benchmarks based on the memory access patterns affecting their performance on various architectures. The improvements suggested to AIWC will help HPC developers better understand memory access patterns of complex codes and guide optimization of codes for arbitrary hardware targets.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。