有效
一种多核DSP上的模板计算优化方法、装置及设备
方建滨、朱芙赓、张鹏、唐滔、车永刚、黄春
中国人民解放军国防科技大学
摘要
本申请涉及一种多核DSP上的模板计算优化方法、装置及设备。所述方法包括:将输入的数据网格划分为若干个数据块,并为每一个数据块分配一个DSP核。在当前时间步,全部DSP核均完成对已分配的数据块进行一级计算,将数据块进一步划分为多个子块,子块包含多个相邻的网格点。在下一时间步,将子块加载至DSP的向量片上存储器,并利用DSP的向量计算单元对子块进行二级计算,得到每个网格点的新值。将计算得到的新值打包成新子块存储回向量片上存储器,新子块采用三缓冲机制通过DSP的数据移动单元从向量片上存储器传输至片外存储器进行加载与存储。采用本方法能够提高多核DSP的计算性能。
1.一种多核DSP上的模板计算优化方法,其特征在于,所述方法包括:获取多核DSP的参数信息,其中,所述参数信息包括:数据网格的信息、模板模式信息以及DSP参数信息;将输入的数据网格划分为若干个数据块,并为每一个所述数据块分配一个DSP核;所述数据块包含若干个网格点;在当前时间步,全部所述DSP核均完成对已分配的所述数据块进行一级计算,将所述数据块进一步划分为多个子块,所述子块包含多个相邻的网格点;在下一时间步,将所述子块加载至DSP的向量片上存储器,并利用所述DSP的向量计算单元对所述子块进行二级计算,得到每个所述网格点的新值;采用三缓冲机制将所述子块加载至DSP的向量片上存储器,基于多核DSP芯片对应的网格参数信息、所述模板模式信息以及所述DSP参数信息确定内存访问路径信息;根据所述路径信息通过一级三缓冲对每一个所述子块进行加载、计算以及存储的三个阶段,以使所述子块完全被向量处理单元进行一级处理;利用二级三缓冲通过所述DSP的向量计算单元对已一级处理的所述子块在主存储器与向量片上存储器之间逐级进行加载、计算以及存储三个阶段的二级计算,得到每个所述网格点的新值;所述三缓冲机制包括:一级三缓冲与二级三缓冲;所述一级三缓冲发生在DSP的向量片上存储器和向量寄存器之间,用于实现子块内部数据加载和计算的并行执行;所述二级三缓冲发生在DSP的向量片上存储器和片外存储器之间,用于实现子块之间数据加载、计算和存储的并行执行;将计算得到的所述新值打包成新子块存储回所述向量片上存储器,所述新子块采用三缓冲机制通过所述DSP的数据移动单元从所述向量片上存储器传输至片外存储器进行加载与存储。
2.根据权利要求1所述的方法,其特征在于,所述数据网格的信息包括:网格大小与网格维度;所述模板模式信息包括:数据依赖范围、数据依赖点数以及数据依赖形状;所述DSP参数信息:全局共享内存的大小、浮点乘加运算单元数量、向量寄存器数量、存储器带宽以及DSP核心数量。
3.根据权利要求2所述的方法,其特征在于,将输入的数据网格划分为若干个数据块,并为每一个所述数据块分配一个DSP核,包括:根据所述参数信息确定微内核形状,根据所述微内核形状将输入的数据网格划分为若干个相同数据列数与数据行数组成的数据块,并为每一个所述数据块分配一个DSP核。
4.根据权利要求1至3任意一项所述的方法,其特征在于,在当前时间步,全部所述DSP核均完成对已分配的所述数据块进行一级计算,将所述数据块进一步划分为多个子块,所述子块包含多个相邻的网格点,包括:在当前时间步,已分配所述数据块的所述DSP核根据DSP参数信息、模板模式信息与微内核形状选择一级计算模式对应的指令,并将所述一级计算模式对应的指令打包成一级指令包,以确保每个时钟周期内能够执行多个乘积累加指令;根据所述乘积累加指令采用矢量化方式对已分配的所述数据块进行一级计算,将所述数据块进一步划分为多个子块,在所述子块中,将多个相邻的网格点组成向量,由向量计算单元进行并行处理。
5.根据权利要求4所述的方法,其特征在于,根据所述路径信息通过一级三缓冲对每一个所述子块进行加载、计算以及存储的三个阶段,以使所述子块完全被向量处理单元进行一级处理,包括:根据所述路径信息通过一级三缓冲对每一个所述子块进行加载、计算以及存储的三个阶段,在加载阶段,将所述子块从所述DSP的向量片上存储器加载至向量处理单元的向量寄存器;在计算阶段,使用所述向量处理单元的向量寄存器的乘加运算单元执行浮点乘加操作;在存储阶段,将所述子块从所述向量寄存器存储回所述向量片上存储器中;通过指令集流水线,在同一时间片段内执行当前所述子块的计算、加载下一个所述子块以及存储上一个所述子块的操作,以使全部所述子块完全被向量处理单元进行一级处理。
6.根据权利要求4所述的方法,其特征在于,利用二级三缓冲通过所述DSP的向量计算单元对已一级处理的所述子块在主存储器与向量片上存储器之间逐级进行加载、计算以及存储三个阶段的二级计算,得到每个所述网格点的新值,包括:利用二级三缓冲通过所述DSP的向量计算单元对已一级处理的所述子块在主存储器与向量片上存储器之间逐级进行加载、计算以及存储三个阶段的二级计算,在加载阶段,将所述子块从主存储器搬运至所述DSP的向量片上存储器;在计算阶段,执行所述一级三缓冲的所有操作;在存储阶段,将所述子块从所述向量片上存储器存储回所述主存储器;通过循环操作,当第一个缓冲区中的所述子块用于计算时,下一个所述子块被加载至所述向量片上存储器的第二个缓冲区中,直至计算完成后,得到每个所述网格点的新值。
7.根据权利要求4至6任一项所述的方法,其特征在于,所述子块的数据向片上传输或向片外传输操作采用交错的单字和双字指令进行优化;所述子块的大小根据所述DSP的片上存储容量、向量计算单元的特性以及数据重用策略进行选择;所述子块的加载和存储操作采用 DMA 引擎进行异步数据传输;所述子块的计算采用微内核进行,以利用所述DSP的向量计算单元与优化的指令流水线技术;所述微内核的形状根据所述DSP的向量寄存器数量、所述向量计算单元的指令包填充约束与指令延迟约束进行设计;将计算得到的所述新值打包成新子块存储回所述向量片上存储器,所述新子块采用三缓冲机制通过所述DSP的数据移动单元从所述向量片上存储器传输至片外存储器进行加载与存储,包括:将计算得到的所述新值打包成新子块存储回所述向量片上存储器,全部所述新子块采用三缓冲机制存储至第三个缓冲区中,并通过所述DSP的数据移动单元从所述向量片上存储器回写至所述主存储器,完成输入数据的加载与存储。
8.一种多核DSP上的模板计算优化装置,其特征在于,所述装置包括:数据块分配模块,用于获取多核DSP的参数信息,其中,所述参数信息包括:数据网格的信息、模板模式信息以及DSP参数信息;将输入的数据网格划分为若干个数据块,并为每一个所述数据块分配一个DSP核;所述数据块包含若干个网格点;数据块分割模块,用于在当前时间步,全部所述DSP核均完成对已分配的所述数据块进行一级计算,将所述数据块进一步划分为多个子块,所述子块包含多个相邻的网格点;模版计算模块,用于在下一时间步,将所述子块加载至DSP的向量片上存储器,并利用所述DSP的向量计算单元对所述子块进行二级计算,得到每个所述网格点的新值;采用三缓冲机制将所述子块加载至DSP的向量片上存储器,基于多核DSP芯片对应的网格参数信息、所述模板模式信息以及所述DSP参数信息确定内存访问路径信息;根据所述路径信息通过一级三缓冲对每一个所述子块进行加载、计算以及存储的三个阶段,以使所述子块完全被向量处理单元进行一级处理;利用二级三缓冲通过所述DSP的向量计算单元对已一级处理的所述子块在主存储器与向量片上存储器之间逐级进行加载、计算以及存储三个阶段的二级计算,得到每个所述网格点的新值;所述三缓冲机制包括:一级三缓冲与二级三缓冲;所述一级三缓冲发生在DSP的向量片上存储器和向量寄存器之间,用于实现子块内部数据加载和计算的并行执行;所述二级三缓冲发生在DSP的向量片上存储器和片外存储器之间,用于实现子块之间数据加载、计算和存储的并行执行;数据搬运模块,用于将计算得到的所述新值打包成新子块存储回所述向量片上存储器,所述新子块采用三缓冲机制通过所述DSP的数据移动单元从所述向量片上存储器传输至片外存储器进行加载与存储。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
暂无引用专利



