Page 74 - 《软件学报》2024年第6期
P. 74

2650                                                       软件学报  2024  年第  35  卷第  6  期


                 译实现. 第  5  节通过实验验证该优化方法的有效性. 第            6  节给出总结与展望.

                 1   相关工作

                    国际上围绕     SPM  结构特点及片上数据移动优化开展了一系列研究. Venkataramani 等人针对                 SPM  用于多线
                 程应用程序时遇到的挑战, 提出了一个协调数据管理的编译时框架                     [7] , 可以自动识别共享/私有变量, 并将这些变量
                 及这些变量的拷贝, 一起放置到合适的片内或片外存储器中. Tao                  等人提出了一个用于优化          SPM  和主存之间的多
                                              [8]
                 线程数据传输的编译时框架          MSDTM , 该框架通过应用程序分析和依赖性检查来确定数据传输操作的分配, 并
                                                                                           [9]
                 通过所设计的性能模型来推导数据传输的最佳粒度. Chakraborty                等人设计了一个名为        UniSPM 的框架, 使用低
                 开销的递归启发式算法来解决           NP-hard  的映射问题, 为基于   NoC  的  SPM  多核多阶段多线程应用程序提供统一的
                 线程和数据映射框架. 李建江等人对           IBM Cell 的众核存储层次特点提出了一种基于运行支持库的                  OpenMP 数组
                 私有化的编译优化方法        [10] , 对可重用数据进行私有化, 充分利用有限的          SPM  资源减少   DMA  通信, 以提升程序执
                 行效率. Yu  等人基于   SPM  提出了一种新的      GPU  资源管理方法    [11] , 通过将寄存器文件扩展到空闲的       SPM  资源上,
                 在逻辑上提供了一个更大的寄存器文件, 从而提高                 GPU  的线程并行性. 上述存储层次相关优化工作针对                Cell、
                                               处理器芯片主要由
                 GPU  等商用众核架构特征开展, 而国产高性能申威众核处理器与上述硬件平台在众核架构和存储层次上都存在
                 较大的差异, 因此需要探索针对申威众核处理器架构和存储结构特征的优化.
                    近年来, 业界基于申威众核平台开展了许多面向                SPM  结构特征的编译优化工作. 何王全等人在面向申威众核
                 的并行编程语言      Parallel C  的设计与实现中提出了数据自动布局与          DMA  缓冲优化    [12,13] , 通过编译器分析程序数
                 据访问特征和访存收益模型, 完成小容量数组在                SPM  上的自动布局, 并针对循环中的连续访问优化, 完成自动
                 DMA  缓冲优化. Wu   等人针对“神威·太湖之光”超算系统上支持              DMA  的  SPM  存储结构, 提出了一种基于带宽感
                 知的  OpenCL  程序循环平铺方法     [14] , 对传统的仅带宽和仅容量考虑的循环平铺方法进行了改进, 有效提升了带宽
                 利用率和   SPM  重用. 在实现   OpenCL  编译系统在申威众核处理器上的内存模型映射过程中, 实施了针对                     SPM  的
                 访存优化, 即在    SPM  空间充足的情况下, 将主存中的数据通过             DMA  存放到  SPM  中  [15] . Zhou  等人针对申威众核
                 处理器核心的     SPM  存储结构特点, 开展了基础函数库的内存延迟优化                [16] , 他们提出了一种有效的自动数据转换
                 方法和一种表查找方法来优化基础函数库的访存延迟. 上述工作充分利用了申威众核处理器                               SPM+DMA   的硬件
                 特征, 但是限于目标平台特点, 没有考虑到新一代众核处理器上私有                     SPM+共享   SPM+DMA+RMA   的片上存储层
                 次与数据移动机制特征, 无法发挥共享            SPM  及片上  RMA  通信的优势.

                 2   研究平台及编程语言

                    本文所提方法主要面向申威众核处理器进行设计, 基于新一代申威众核上的并行编程语言及编译系统                                  Parallel
                 C 2.0  进行实现. 下面就相关概念和基本知识予以介绍.

                 2.1   新一代申威众核处理器
                    本文的研究工作面向国产申威众核处理器. 申威众核处理器已经经过多代发展, 下面以神威新一代超级计算
                 机使用的最新一代申威众核处理器            SW26010Pro [17] 为例, 对申威众核处理器的结构进行介绍.
                    SW26010Pro  是面向高性能计算领域开发的处理器, 采用片上计算阵列集群和共享存储结构相结合的异构众
                 核体系结构. 如图     2  所示, SW26010Pro               6  个核组组成. 核组内采用异构众核结构, 包含           1  个管
                 理核心和   1  个运算核心阵列. 每个运算核心阵列包含            64  个运算核心, 采用拓扑为     8×8  的阵列高速通信网络进行连
                 接, 支持运算核心间      SPM  上的  RMA  通信.
                    单个核组的存储系统结构如图            3  所示, 运算核心有    256 KB  的  SRAM  作为数据缓存, SRAM   可分档配置为
                 SPM  和  Cache. 所有运算核心共享主存, 可以通过       ld/st 访存指令直接访问主存空间. 运算核心还可以通过              DMA  实
                 现  SPM  和主存之间的批量数据传输, DMA         传输的效率与传输的数据量、DMA            命令数量、数据在主存中的连续
                 性以及   DMA  传输方式等密切相关. 此外, 运算核心阵列还支持              SPM  共享和  RMA  两种机制实现阵列上       SPM  间的
   69   70   71   72   73   74   75   76   77   78   79