[发明专利]一种面向流处理器的局部内存访问模式动态记录器有效
申请号: | 201210185144.X | 申请日: | 2012-06-06 |
公开(公告)号: | CN102722446A | 公开(公告)日: | 2012-10-10 |
发明(设计)人: | 史晓华 | 申请(专利权)人: | 北京航空航天大学 |
主分类号: | G06F12/02 | 分类号: | G06F12/02 |
代理公司: | 北京永创新实专利事务所 11121 | 代理人: | 官汉增 |
地址: | 100191*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 面向 处理器 局部 内存 访问 模式 动态 记录器 | ||
技术领域
本发明涉及一种面向流处理器的局部内存访问模式动态记录器,属于微处理器体系结构和编译技术领域。
背景技术
流处理器是目前在计算机系统中得到广泛应用的处理器类型之一,其代表为GPU,即图形处理器。流处理器在针对大规模数据的浮点计算上具有突出的效率优势,因此也被用于高性能计算和数据并行处理。
流处理器在内存访问机制上与CPU等典型架构有着明显的不同,这使得许多原基于CPU设计程序转化为流处理器上运行的程序后,会在内存访问上遭遇效率瓶颈,而其中最有代表性的效率瓶颈来自于对流处理器中局部内存块的访问冲突。记录程序运行时流处理器中局部内存的访问模式,可以定位其中局部内存块的访问冲突,得到这些相关数据后,编程人员、编译器或者流处理器本身,都可以规划出程序针对局部内存访问的优化方法,从而提高程序的运行效率。
发明内容
针对现有技术中存在的问题,本发明提出一种面向流处理器的局部内存访问模式动态记录器,解决了如何发现和统计由于访问局部内存块冲突而导致的程序运行瓶颈的问题。
本发明提出一种面向流处理器的局部内存访问模式动态记录器,所述的动态记录器包括局部内存访问转接模块和访问记录模块两部分。
所述的局部内存访问转接模块将所有线程对局部内存的访问进行转接,并将其中的相关信息记录在另一模块即访问记录模块中;所述的访问记录模块为具有M个定长记录的内存单元或者寄存器单元。
局部内存访问转接模块的实现控制过程包括以下几个步骤:
步骤一:当局部内存访问模式动态记录器获得线程A在当前运行的程序中的指令地址P对局部内存块O的访问申请后,进入步骤二;
步骤二:判断地址P是否存在于已有的访问记录模块中,如果是,将线程A的线程号写入访问记录模块中的该记录位置,并将记录中的频度加1,当某一记录中L个线程号被全部占用,而待写入的线程号与已有线程号均不同时,可以任选一当前线程号进行覆盖,或者放弃写入;如果不是,执行步骤三;
步骤三:判断当前访问记录模块的存储空间是否已满,如果是,找到访问频度最低的记录,将其删除;如果不是,执行步骤四;
步骤四:在访问记录模块中增加1个新的访问记录,将线程A的指令地址、被访问的局部内存块号码、当前线程号等信息写入该记录,频度置为1;
步骤五:继续执行当前线程A对局部内存块O的访问。
本发明的优点在于:
(1)本发明提出一种面向流处理器的局部内存访问模式动态记录器,对原有程序的运行效率影响较小;
(2)本发明提出一种面向流处理器的局部内存访问模式动态记录器,对原有程序的正确性不作改变,不影响原有程序的语义;
(3)本发明提出一种面向流处理器的局部内存访问模式动态记录器,能够动态记录导致局部内存块冲突最多的线程和程序地址;
附图说明
图1是本发明中访问记录器的结构示意图;
图2是本发明中局部内存访问转接模块的流程图。
具体实施方式
下面将结合附图对本发明作进一步的详细说明。
本发明提出一种面向流处理器的局部内存访问模式动态记录器,其结构如图1所示,包括局部内存访问转接模块和访问记录模块两部分:
所述的局部内存访问转接模块如图1所示,该模块将所有线程对局部内存的访问进行转接,并将其中的相关信息记录在另一模块即访问记录模块中,该模块可以通过编程语言实现,例如C或者C++语言,也可以在微处理器芯片中实现。图1中的“局部内存块”,指的是流处理器中现有的局部内存块,“线程”指的是当前在流处理器上运行的线程。
局部内存访问转接模块的实现控制过程包括以下几个步骤,如图2所示:
步骤一:当局部内存访问模式动态记录器获得线程A在当前运行的程序中的指令地址P对局部内存块O的访问申请后,进入步骤二;
步骤二:判断地址P是否存在于已有的访问记录模块中,如果是,将线程A的线程号写入访问记录模块中的该记录位置,并将记录中的频度加1,当某一记录中L个线程号被全部占用,而待写入的线程号与已有线程号均不同时,可以任选一当前线程号进行覆盖,或者放弃写入;如果不是,执行步骤三;
步骤三:判断当前访问记录模块的存储空间是否已满,如果是,找到访问频度最低的记录,将其删除;如果不是,执行步骤四;
步骤四:在访问记录模块中增加1个新的访问记录,将线程A的指令地址、被访问的局部内存块号码、当前线程号等信息写入该记录,频度置为1;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京航空航天大学,未经北京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210185144.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:具有阻挡层的弹性封罩及其制造方法
- 下一篇:可选功率巷道灯