一种全局内存访问的方法和设备的制造方法_5

文档序号:9471303阅读:来源:国知局
的单 元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
[0230] 上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存 储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机 设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的 部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,简称 ROM)、随机存取存储器(RandomAccessMemory,简称RAM)、磁碟或者光盘等各种可以存储程 序代码的介质。
[0231] 最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽 管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然 可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替 换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精 神和范围。
【主权项】
1. 一种全局内存访问的方法,其特征在于,包括: 在访问只读全局内存数据块时,根据所述数据块的标志位判断所述数据块是否已进行 转置; 若未进行转置,则判断访问模式是否为按列依次访问,若所述访问模式为所述按列依 次访问,则在访问所述数据块的同时对所述数据块进行转置,得到转置数据块并对所述转 置数据块进行存储; 若已进行转置,则判断所述访问模式是否为所述按列依次访问,若所述访问模式为所 述按列依次访问,则访问所述转置数据块,使得访问所述转置数据块时能够进行合并访问, 若所述访问模式不为所述按列依次访问,则访问转置之前的数据块。2. 根据权利要求1所述的方法,其特征在于,所述判断访问模式是否为按列依次访问 包括: 判断所述访问模式是否为按列访问; 若判断所述访问模式为按列访问,则再判断所述访问模式是否为依次访问。3. 根据权利要求1或2所述的方法,其特征在于,所述数据块的标志位为第一标识; 所述在访问所述数据块的同时对所述数据块进行转置,得到转置数据块并对所述转置 数据块进行存储包括: 将所述数据块的标志位从所述第一标识更新为第二标识,并将所述当前half-warp线 程束访问的元素通过局部内存进行转置,并存至新的数据空间中。4. 根据权利要求3所述的方法,其特征在于,所述判断访问模式是否为按列访问包括: 获取当前halfiarp线程束访问所述数据块时所访问的每个元素的索引值,根据所述 索引值并按照第一公式获取每个元素对应的列号; 若每个元素对应的列号相等,且相邻索引值之间相差为N,N表示所述数据块的列数, 则确定所述访问模式为所述按列访问; 若每个兀素对应的列号中有两个列号相差为1,同时列号相等的相邻索引值相差为N, 其中的列号大者对应的每个元素按照第二公式得出的行号中最小值为〇,列号小者对应的 每个元素按照所述第二公式得出的行号中最大值为M-l,M表示所述数据块的行数,则确定 所述访问模式为所述按列访问; 其中,所述第一公式包括所述第二公式包括:m表示所述行号,columnlndex表示所述列号,index 表示所述索引值,N表示所述数据块的列数。5. 根据权利要求4所述的方法,其特征在于,所述判断所述访问模式是否为依次访问 包括: 将此次halfiarp线程束所访问每个元素对应的索引值中的最小索引值按照所述第 一公式得到的第一列号,与上一次half-warp线程束所访问每个元素对应的索引值中的最 大索引值按照所述第一公式得到的第二列号进行比较; 若所述第一列号与所述第二列号相等,且所述最小索引值和所述最大索引值满足第三 公式,则确定所述访问模式为所述依次访问; 若所述第一列号与所述第二列号相差为1,且所述最小索引值按照所述第二公式得到 的行号为0,所述最大索引值按照所述第二公式得到的行号为M-1,则确定所述访问模式为 所述依次访问; 所述第三公式包括:,maxIndex表示所述最大索引值,minIndex表示所述 最小索引值。6. 根据权利要求3所述的方法,其特征在于,所述将所述当前half-warp线程束访问的 元素通过局部内存进行转置,并存至新的数据空间中包括: 获取所述数据块的空间大小,在全局内存中分配同等大小的数据空间,同时分配局部 内存用于存储待转置的元素; 将所述当前half-warp线程束访问的元素进行转置,并将转置后的元素存储在局部内 存中; 将转置后的元素形成的转置数据块写回所述全局内存分配的同等大小的数据空间; 其中,所述局部内存的大小为: Block_dim*(Block_dim+l)*sizeof(typeofData) Block_dim表示所述当前half-warp线程束的线程个数,sizeof(typeofData)表示所 述数据块中的一个元素的存储空间大小。7. 根据权利要求6所述的方法,其特征在于,所述方法还包括: 在访问所述数据块或所述转置数据块时,根据当前halfiarp线程束访问的每个元素 的索引值中的最大值,判断此次访问是否结束; 若所述当前half-warp线程束访问的每个元素的索引值中的最大值满足:maxlndex=M*N-1,则确定此次访问结束; 其中,maxlndex表示所述当前half-warp线程束访问的每个元素的索引值中的最大 值。8. 根据权利要求1所述的方法,其特征在于,所述根据所述数据块的标志位判断所述 数据块是否已进行转置包括: 若所述标志位为所述第一标识,则确定所述数据块未进行转置; 若所述标志位为所述第二标识,则确定所述数据块已进行转置。9. 一种设备,其特征在于,包括: 第一判断单元,用于在访问只读全局内存数据块时,根据所述数据块的标志位判断所 述数据块是否已进行转置; 第二判断单元,用于若未进行转置,则判断访问模式是否为按列依次访问; 转置单元,用于若所述访问模式为所述按列依次访问,则在访问所述数据块的同时对 所述数据块进行转置,得到转置数据块并对所述转置数据块进行存储; 所述第二判断单元,还用于若已进行转置,则判断所述访问模式是否为所述按列依次 访问; 访问单元,用于若所述访问模式为所述按列依次访问,则访问所述转置数据块,使得访 问所述转置数据块时能够进行合并访问,若所述访问模式不为所述按列依次访问,则访问 转置之前的数据块。10. 根据权利要求9所述的设备,其特征在于,所述判断单元具体用于: 判断所述访问模式是否为按列访问; 若判断所述访问模式为按列访问,则再判断所述访问模式是否为依次访问。11. 根据权利要求9或10所述的设备,其特征在于,所述数据块的标志位为第一标识; 所述转置单元具体用于: 将所述数据块的标志位从所述第一标识更新为第二标识,并将所述当前half-warp线 程束访问的元素通过局部内存进行转置,并存至新的数据空间中。12. 根据权利要求11所述的设备,其特征在于,所述判断单元具体用于: 获取当前halfiarp线程束访问所述数据块时所访问的每个元素的索引值,根据所述 索引值并按照第一公式获取每个元素对应的列号; 若每个元素对应的列号相等,且相邻索引值之间相差为N,N表示所述数据块的列数, 则确定所述访问模式为所述按列访问; 若每个兀素对应的列号中有两个列号相差为1,同时列号相等的相邻索引值相差为N, 其中的列号大者对应的每个元素按照第二公式得出的行号中最小值为〇,列号小者对应的 每个元素按照所述第二公式得出的行号中最大值为M-I,M表示所述数据块的行数,则确定 所述访问模式为所述按列访问; 其中,所述第一公式包括:所述第二公式包括:,columnlndex表示所述列号,index表示所述索引 值,m表示所述行号,N表示所述数据块的列数。13. 根据权利要求12所述的设备,其特征在于,所述判断单元具体用于: 将此次halfiarp线程束所访问每个元素对应的索引值中的最小索引值按照所述第 一公式得到的第一列号,与上一次half-warp线程束所访问每个元素对应的索引值中的最 大索引值按照所述第一公式得到的第二列号进行比较; 若所述第一列号与所述第二列号相等,且将所述最小索引值和所述最大索引值满足第 三公式,则确定所述访问模式为所述依次访问; 若所述第一列号与所述第二列号相差为1,且所述最小索引值按照所述第二公式得到 的行号为〇,所述最大索引值按照所述第二公式得到的行号为M-1,则确定所述访问模式为 所述依次访问; 所述第三公式包括:,maxIndex表示所述最大索引值,minIndex表示所述 最小索引值。14. 根据权利要求11所述的设备,其特征在于,所述转置单元具体用于: 获取所述数据块的空间大小,在全局内存中分配同等大小的数据空间,同时分配局部 内存用于存储待转置的元素; 将所述当前half-warp线程束访问的元素进行转置,并将转置后的元素存储在局部内 存中; 将转置后的元素形成的转置数据块写回所述全局内存分配的同等大小的数据空间; 其中,所述局部内存的大小为: Block_dim*(Block_dim+l)*sizeof(typeofData), Block_dim表示所述当前half-warp线程束的线程个数,sizeof(typeofData)表示所 述数据块中的一个元素的存储空间大小。15. 根据权利要求14所述的设备,其特征在于,所述判断单元还用于: 在访问所述数据块或所述转置数据块时,根据当前halfiarp线程束访问的每个元素 的索引值中的最大值,判断此次访问是否结束; 若所述当前half-warp线程束访问的每个元素的索引值中的最大值满足:maxlndex=M*N-1,则确定此次访问结束; 其中,maxlndex表示所述当前half-warp线程束访问的每个元素的索引值中的最大 值。16. 根据权利要求9所述的设备,其特征在于,所述判断单元具体用于: 若所述标志位为所述第一标识,则确定所述数据块未进行转置; 若所述标志位为所述第二标识,则确定所述数据块已进行转置。
【专利摘要】本发明实施例提供一种全局内存访问的方法和设备,涉及通信领域,解决了全局内存访问中可能出现的非合并访问情况,从而提高全局内存的访问带宽。具体方案为:在访问只读全局内存数据块时,根据数据块的标志位判断数据块是否已进行转置;若未进行转置,则判断访问模式是否为按列依次访问,若访问模式为按列依次访问,则在访问数据块的同时对数据块进行转置,得到转置数据块并对转置数据块进行存储;若已进行转置,则判断访问模式是否为按列依次访问,若访问模式为按列依次访问,则访问转置数据块,使得访问转置数据块时能够进行合并访问,若访问模式不为按列依次访问,则访问转置之前的数据块。本发明用于只读全局内存的访问。
【IPC分类】G06F12/02, G06F17/30
【公开号】CN105224467
【申请号】CN201410240235
【发明人】王丽娜, 史晓华, 常玉立
【申请人】华为技术有限公司, 北京航空航天大学
【公开日】2016年1月6日
【申请日】2014年5月30日
当前第5页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1