发明名称 |
一种基于GPU的Cache模拟器及其空间并行加速模拟方法 |
摘要 |
本发明提出了一种基于GPU的Cache模拟器及其空间并行加速方法,该Cache模拟器包括Cache初始化模块、Trace预处理模块、Trace基数排序模块、Cache模拟模块及Cache模拟结果统计显示模块,本发明依托GPU强大的并行处理资源,对访存序列进行预处理,利用Cache配置文件的关联性,通过运行在GPU上的基数排序算法对访存序列进行并行排序,得到映射到每一个组上的连续的访存序列,从而进行组间并行的Cache模拟,并通过不同层次不同粒度的并行模拟算法,有效的缩短了Cache模拟时间,提高了Cache的模拟效率,精确模拟Cache的行为,并且开发环境简单,易于实现。 |
申请公布号 |
CN101814039A |
申请公布日期 |
2010.08.25 |
申请号 |
CN201010105094.0 |
申请日期 |
2010.02.02 |
申请人 |
北京航空航天大学 |
发明人 |
高小鹏;万寒;王志强;李毅;龙翔 |
分类号 |
G06F9/455(2006.01)I;G06F12/08(2006.01)I;G06T1/20(2006.01)I;G06T1/60(2006.01)I |
主分类号 |
G06F9/455(2006.01)I |
代理机构 |
北京永创新实专利事务所 11121 |
代理人 |
周长琪 |
主权项 |
一种基于GPU的Cache模拟器,其特征在于,包括Cache初始化模块、Trace预处理模块、Trace基数排序模块、Cache模拟模块、Cache模拟结果统计显示模块;Cache初始化模块用于对Cache配置进行初始化,将Cache配置参数传递给Trace预处理模块和Cache模拟模块;Trace预处理模块用于从用户设定的Trace文件读取访存序列,根据Cache配置参数中的Cache的块大小和Cache组数计算访存序列中各访存记录将映射到的Cache组号,并记录映射到每个Cache组的访存记录的数量,计算每个Cache组中的第一个访存记录在整体访存序列中的下标;Trace基数排序模块用于在GPU的显存中为访存序列动态分配空间,将经过Trace预处理模块处理后的访存序列下载到分配好的GPU的显存空间,并对访存序列以Cache组号为关键字并行地进行基数排序;Cache模拟模块,在GPU上启动多个线程并行地运行,并对线程内各要模拟的Cache组内的块进行初始化,设置每一个Cache块的标记tag为0,状态state为无效Invalid,定位映射到该线程要模拟的Cache组的第一个访存记录的下标,依次读取访存记录,对于每一个访存记录,与组内的Cache块进行匹配,确定是否命中,并根据替换策略调整组内的Cache块的组织结构;Cache模拟结果统计显示模块用于对Cache模拟模块产生的各Cache组的局部统计信息进行综合,得到整个Cache模拟的统计结果和性能参数,将其保存到结果文件或输出到终端;Cache块包括tag信息与state信息,Cache块层数由用户或Cache配置文件指定,第一层Cache块信息及各Cache组的局部统计信息存放在共享存储器Shared Memory里,其他层次的Cache块信息、各Cache组的历史局部统计信息与访存序列存放在全局存储器Global Memory中。 |
地址 |
100191 北京市海淀区学院路37号 |