收藏 分销(赏)

GPGPU-Sim兼容性问题解决方案及脚本自动化运行方法的研究.pdf

上传人:自信****多点 文档编号:846680 上传时间:2024-03-29 格式:PDF 页数:5 大小:1.44MB
下载 相关 举报
GPGPU-Sim兼容性问题解决方案及脚本自动化运行方法的研究.pdf_第1页
第1页 / 共5页
GPGPU-Sim兼容性问题解决方案及脚本自动化运行方法的研究.pdf_第2页
第2页 / 共5页
亲,该文档总共5页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、 兼容性问题解决方案及脚本自动化运行方法的研究曹建立 仲怡宁 赵晨阳(洛阳师范学院 数学科学学院 河南 洛阳)摘 要:分析了 模拟器在高版本 操作系统上运行时发生的动态链接库不兼容的问题 通过实验发现了解决方案 在此基础上提出了无需编译 源代码便可使用 模拟运行 程序的办法 并给出了利用脚本自动化运行和采集数据的方法.提出的兼容性解决方案和并行运行方式可以提高模拟器部署和工作的效率 对于该模拟器的使用者和研究者有积极借鉴意义.关键词:模拟器 动态链接库 编译 脚本中图分类号:文献标识码:文章编号:()引言 是一款用 来模拟 运行过程的模拟器软件.该模拟器的运行统计结果可以达到时钟周期的精度 其

2、代码和配置文件可根据用户需求来修改 并且提供了可视化工具 来帮助用户直观地观察 内核的运行状态 此外 还集成了可以提供功耗报告的功耗分析模块.因此 成为大量学者研究 体系结构、验证 新设计方案和调度算法的工具.如 等利用 来研究 缓存管理方案 等利用 来研究 技术在 上的应用效果 等利用 来研究 中的内存调度优化.该模拟器基于.开发 在.版本和.版本上运行良好但在.及之后的版本上运行时 会出现动态链接库不兼容的问题.版本和.版本的操作系统分别于 年 月和 年 月发布 目前看来已经比较陈旧 大量主流的计算机硬件已经不再支持该版本的安装与运行.于是 对于众多通过 来研究 体系结构的学者来说 继续使

3、用该软件存在两个问题:一方面 目前主流的计算机硬件具备较高的运算能力 但是因为不支持.之前的版本 所以无法直接运行 另一方面 能运行老版本 系统的硬件大多比较陈旧 且运行 时效率十分低下.虽然这些问题可以通过在新硬件上运行虚拟机来解决 但是经过实验对比 虚拟机的运行效率很低 性能大约是直接在硬件上运行时的/.因此 研究让 可以在新的软硬件平台上直接运行的方法 对于广大模拟器使用者和研究者有着现实意义.模拟器原理 小组在说明文件中指出了开发 的目的:一方面可以让研究者分析 程序瓶颈或者分析调度算法的效果 另一方面可以让没有安装 硬件的计算机也可以运行 程序.因此 提供了性能模拟和功能模拟两个模式

4、:功能模拟仅输出和真实硬件相同的运行结果 性能模拟则在输出结果的同时还输出大量 内部寄存器、缓存、通信网络和功收稿日期:作者简介:曹建立()男 河南洛阳人 讲师 博士 研究方向为计算机体系结构、智能算法 仲怡宁()女山东烟台人 硕士研究生 赵晨阳()男 河南平顶山人 硕士研究生.年 月第 卷 第 期 洛阳师范学院学报 .耗等信息.开发小组在内存中利用堆栈、队列、数组等数据结构模拟了 硬件中的流水线、缓存和寄存器等部件 并利用 来模拟 中 程序的数据流动和指令执行的过程.编译后会产生.和.两个动态链接库.之后使用这两个库替代系统中的默认库 则应该由 硬件来执行的 指令会被拦截 转由 来模拟执行.

5、程序的硬件执行方式和软件模拟调用关系如图 所示.图 程序的硬件执行方式和软件模拟调用关系对于安装有 硬件的平台 在运行时也可以选择使用真实硬件运行.切换方式是修改名为 的系统变量 根据要求指向驱动程序的动态链接库 或者 产生的动态链接库.兼容性问题及解决方案研究者通过修改 的源代码来实现新的资源调度算法、新的缓存置换策略和新的设计的过程中 往往需要用 来追踪、调试代码.这就要求虚拟机调用的动态链接库以源码编译的方式得到 且调试时能访问到源代码.的编译过程已经有大量的文献可以借鉴 在此不再赘述.在 .之前的版本上 经过编译与环境变量配置 即可顺利用模拟器来替代 硬件 以实现 程序的模拟.但是在

6、.版本以及之后的版本上按照传统的方法安装配置后 启动基准程序可能导致运行错误.此时可以使用 调试工具加载程序错误产生的 文件 并用 命令查看调用堆栈 会显示大量同 动态链接库相关的错误报告信息.究其原因 是因为 基于 .版本开发 而较新版本的 系统使用了高版本的 和 编译器(.)不同版本的 的动态运行库文件之间存在不兼容的问题 从而导致了调用运行库出错.其核心问题是 要求 动态链接库版本不能超过.解决该问题的常用办法是通过编译低版本 编译器源码 或者用 命令通过参数指定低版本的方式来重装 和 编译器 然后重新编译 .该方法的缺点是操作比较复杂和耗时.更重要的是 将系统的 和 编译器强制降低版本

7、后 可能给其他软件的编译和运行带来诸多问题.经过反复比较和实验 笔者发现了一种便捷、不干扰其他程序运行的解决办法:在运行 前 用低版本 的库文件替代当前系统的库文件 待运行结束后 再将库文件替换回来.替换操作无需反复复制和删除文件 可以通过灵活的链接命令来实现.例如 本文实验平台中 使用 命令查找发现 需要的 动态链接库文件.位于/目录下 该文件其实是一个链接文件 指向同目录下的库文件 .替换操作步骤如下.()将老版本的动态链接库文件 .复制备份到库目录下 该版本的链接库文件可以从 官网提供的虚拟机中提取.()运行 前 先将系统默认的链接文件 .删除 然后重建该链接文件并指向低版本的动态链接库

8、文件 .可以使用下面命令:/.()此时可以顺利运行 采集和洛阳师范学院学报 年第 期分析 模拟数据.()运行完成后 需要把动态库修改回来 否则可能造成其他程序运行不正常甚至操作系统不正常.可以使用下面命令:/.如果忘记了将链接指向高版本的动态库 并且进行了关机或者重启操作 可能导致系统再次启动时发生异常 并无法进入图形界面.此时需要按下 (到 的文本模式均可 是正常启动的图形界面)切换到文本模式终端 然后执行上面第()步的修改链接操作 重新启动即可.笔者还建议将第()步和第()步的命令写入 脚本 赋予执行权限 并将第()步脚本加入系统启动服务 在第()步加入系统关闭、重启服务 让这些操作自动执

9、行 以避免忘记.待对 的研究完成后 再移除这些脚本.动态链接库执行方式通过对 编译过程和运行过程的分析 发现编译源代码的目标是获得.、.两个动态链接库.因此 对于只需要运行模拟器获得输出结果 而无需在运行期间追踪模拟器代码的应用场景 可以省略下载、编译源码这一步 即直接将编译好的动态链接库复制到本机并经过适当的环境配置(路径、动态链接库路径和环境变量等)来运行模拟器.当然 模拟器运行所需要的其他依赖库也要提前安装.具体步骤如下:()复 制 已 经 编 译 好 的.、.库文件目录到本计算机.()配置 环境变量 指向复制来的动态链接库文件 替代系统中原有的库文件(在安装 硬件和驱动程序的情况下).

10、()复制 配置文件:.、.、.到 程序同一目录下.该步骤建议使用链接文件完成 避免冗余文件.()启动 程序.该方法适合使用多台计算机来并行模拟基准测试程序的研究者 可以有效避免在多台计算机上传输代码和编译代码的重复工作.并行执行方式 利用软件来模拟硬件执行过程大约有 万左右的减速因子 每个 过程需要执行时间少则几十分钟 多则几天.如果采用串行的方式来执行几十个 则每轮测试会消耗数周时间 这对使用者来说是非常高的时间成本.目前无论服务器、台式机还是笔记本电脑大都配备了多核处理器 合理利用多核并行 能大大加速测试过程.并行执行的关键是使用后台执行操作符 并使用 和 工具将输出数据中的重要数据筛选出

11、来 存入指定的文件中 以备分析.以最常使用的 基准程序集为例 其脚本内容如下:读取 文件中保存的需要运行的基准程序所在的文件夹名字 然后进入文件夹 并用后台方式执行.脚本 以创建一个执行脚本时指定的名字的文件之后将输出结果中关于 缓存、运行周期数、名字的信息保存到该文件中.其他的基准程序集也可用该技术来并行执行.其主要代码如下:!/.().洛阳师范学院学报 年第 期 待模拟运行完成后 可以编写脚本 将不同 的多个指标提取出来 以表格的方式显示 方便对比.其主要代码如下:!/.(/()/()研究者有时需要研究不同参数配置下的性能指标 需要进行多轮的修改配置文件、运行 过程.此时需要提前修改好多个

12、配置文件 以不同名字命名 然后在每轮测试开始前将链接指向不同的配置文件 并利用 命令等待最长的 完成.这样可以自动化完成多种配置下整个基准程序集的模拟.其主要代码如下:/指向基准程序所在目录 /指向 配置文件所在目录 .指向不同配置文件 ./.调用脚本后台运行全部测试程序 等待本轮全部测试完成 中间文件和 文件分析 运行过程中会先使用 的 工具来分析 程序 从中提取出 的 和 代码 并写入中间文件 然后读取这些指令进行模拟.在默认配置下这些文件会保留下来.研究这些中间文件的内容对理解 的工作原理 以及程序的运行状况有很大帮助.例如 等基于 指令集的.指令展开研究 设计了缓存 编译器框架.等利用

13、 指令文件分析了 程序中 容量的分布情况 并设计了指令缓存预取机制.文件中记录了 各部件的功耗状况 可用于 功耗研究.中间文件和 文件含义如表 所示.结语本文分析了在高版本 系统上运行 、调用动态库时发生的兼容性问题 并提出了解决方案 之后介绍了一种无需编译源代码即可运行 的简单方法.以 为例 给出了可以自动运行测试、采集结果的脚本参考文件.该方法可以极大提高工作效率.表 中间文件和 文件含义文件名文件包含信息.从 程序中提取出的中间 代码.如果程序中包含多个 则按、顺序编号.从 程序中提取出的针对目标硬件的 代码.包含有指令相对地址 可以观察到 容量.如果程序中包含多个 则按、顺序编号 .模块统计的各部件功耗情况 可用于功耗分析洛阳师范学院学报 年第 期参考文献 .():.():.:.():.:.().:.()():.曹建立赖宏慧芮璋现.的原理与调试.洛阳师范学院学报():.():.():.责任编辑 徐 刚 ():.:洛阳师范学院学报 年第 期

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 论文指导/设计

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服