首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

一种加速异构处理器池化运算的方法和系统 

申请/专利权人:湖南大学

申请日:2024-03-11

公开(公告)日:2024-06-28

公开(公告)号:CN118260070A

主分类号:G06F9/50

分类号:G06F9/50;G06N3/063;G06N3/0464

优先权:

专利状态码:在审-公开

法律状态:2024.06.28#公开

摘要:本发明公开了一种面向异构处理器的池化运算函数高性能实现方法,通过将特征图在空间维度进行分块,使用直接存储器访问DirectMemoryAccess,简称DMA控制数据在内存和高速缓存的传输,从而构建双缓冲机制使得访存延迟得以隐藏,同时依据向量运算资源数目和SIMD特性设计实现并行运算策略以充分利用运算资源,并在计算过程中进行数据重用,减少访存数量。

主权项:1.一种加速异构处理器池化运算的方法,其特征在于,包括以下步骤:1CPU获取用于池化操作计算的多个参数,根据获取的所有参数分配DSP存储空间并构造DSP函数参数,并通过thread接口设置DSP启动计算核心数量,并将DSP函数参数发送到DSP端;2DSP端依据其AM空间的大小和DSP函数参数中的输入数据的尺寸、输出数据的尺寸进行分块参数决策,以得到分块参数,包括输入子块尺寸和输出子块尺寸,根据分块参数中的输入子块尺寸和输出子块尺寸在AM空间中获取两组输入子块存储空间stream_in[0]、stream_in[1]和输出子块存储空间stream_out[0]、stream_out[1],将输入数据的N维度和C维度进行合并,最终得到一个值为N*C的维度B,其编号是从0到B-1,并将输出数据的N维度和C维度进行合并,最终得到一个值为N*C的维度B,其编号是从0到B-1,根据DSP的计算核心数量将维度B平均分配给每一个DSP计算核心,并获取每一个DSP计算核心各自被划分到的维度的起始编号ch以及维度的总数ch_size。3每个DSP计算核心分别按照步骤2得到的输入子块尺寸和输出子块尺寸将输入数据和输出数据分别划分成多个输入数据子块BlockINp,q和输出数据子块BlockOUTp,q,其中BlockINp,q表示第p行第q列的输入数据子块,BlockOUTp,q表示第p行第q列的输出数据子块,其中p∈[0,M-1],q∈[0,N-1],其中M表示划分得到的输入数据子块输出数据子块的总行数,N表示划分得到的输入数据子块输出数据子块的总列数。4每个DSP计算核心设置计数器i=0,计数器j=0;5每个DSP计算核心判断i是否小于M,如果是则转入步骤6,否则说明DSP端的操作已经完成,然后转入步骤16;6每个DSP计算核心判断j是否小于N,如果是则转入步骤7,否则转入步骤15;7每个DSP计算核心设置流标志位flag=0,计数器k=0,并将第i行第j列输入数据子块BlockINi,j中的第ch+k维数据传入输入子块存储空间stream_in[flag]对应的AM空间,并转入步骤8;8每个DSP计算核心判断k是否小于ch_size-1,如果是则转入步骤9,否则转入步骤13;9每个DSP计算核心将第i行第j列输入数据子块BlockINi,j中的第ch+k+1维数据传入输入子块存储空间stream_in[!flag]对应的AM空间,并转入步骤10,其中!表示取反操作;10每个DSP计算核心等待将第i行第j列输入数据子块BlockINi,j中的第ch+k维数据传入输入子块存储空间stream_in[flag]对应的AM空间完毕,调用计算核心函数对stream_in[flag]对应的AM空间中的第i行第j列输入数据子块BlockINi,j中的第ch+k维数据am_in进行处理,以获得计算后的结果数据am_out,将该结果数据存储在stream_out[flag]中,然后将该结果数据传入第i行第j列输出数据子块BlockOUTi,j中第ch+k维数据对应的区域,并转入步骤11;11每个DSP计算核心对flag进行取反操作。并转入步骤12;12每个DSP计算核心设置k=k+1,并返回步骤8;13每个DSP计算核心等待将第i行第j列输入数据子块BlockINi,j中的第ch+k维数据传入输入子块存储空间stream_in[flag]对应的AM空间完毕,调用计算核心函数对stream_in[flag]对应的AM空间中的第i行第j列输入数据子块BlockINi,j中的第ch+k维数据am_in进行处理,以获得计算后的结果数据am_out,将该结果数据存储在stream_out[flag]中,然后将该结果数据传入第i行第j列输出数据子块BlockOUTi,j中第ch+k维数据对应的区域。14每个DSP计算核心设置j=j+1,并返回步骤6;15每个DSP计算核心设置i=i+1,并返回步骤5;16CPU将来自DSP计算核心的池化操作处理的计算结果传输到步骤1所获取的用于池化操作计算的多个参数中输出数据的指针所指向的空间。

全文数据:

权利要求:

百度查询: 湖南大学 一种加速异构处理器池化运算的方法和系统

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。