序言

GPGPU-Simer都应该体验过Sim在虚拟机中奇慢无比的速度,一个在真实环境下几ms就跑完的benchmark,在Sim下通常需要几十分钟到几小时。跑一次实验benchmark多了基本就得一天,比较浪费时间。
等待总是无聊的,本篇博客将给出我自己总结的几种加快Sim运行速度的解决方案。

方案一:堆硬件

ssd,加内存,上好CPU,使劲堆,有钱任性

方案二:减少Sim输出

输出信息打印出来是很耗时间的,Sim本身的很多输出是并没有太大的作用,可以将无用的输出注释掉

方案三:在真实机子上装Sim

Sim是一个比较小众的仿真器,编译用的还是gcc 4.5.1, cuda 4.2,Ubuntu 10.04. 所以才选用虚拟机作为运行平台。官方给的虚拟机镜像是Ubuntu 12.04,所以在真实电脑较新的Ubuntu系统上装Sim是理论上可行的(虽然我没试过)。但是缺点很明显,需要折腾,手动编译gcc就够受的,还要解决各种依赖和软件版本问题。最大的缺点就是,一旦崩溃,有时只能重装。我觉得除非是linux大神,否则不建议这么弄。

方案四:虚拟机编译,正常电脑运行

这是实验室博士发现的一个方法。也是本博客重点说明的一个方案。

首先要明白Sim的模拟机制,我在这篇博客里进行了简单介绍。总结为一句话:GPGPU-Sim编译生成的库文件是模拟cuda程序运行的关键。

基于这个原理,我来介绍一下该方案的细节。
环境 : GPGPU-Sim3.2.2,Ubuntu 14.04,CPU i7,12G 内存

  1. 在Ubuntu下,新建一个文件夹-Sim
  2. 在Sim下新建lib_default文件夹,先在虚拟机中编译Sim,将Sim生成的libcudart.solibOpenCL.so相关的lib文件全都拷到Sim文件夹下。
  3. 将虚拟机中cuda安装目录下的bin文件夹拷到sim文件下。其实bin中的东西我们只需要一部分,省事一块考进来。
  4. 新建一个setvar.sh文件,内容如下
export CUDA_INSTALL_PATH=~/sim
export LD_LIBRARY_PATH=./lib_default

然后执行 source setvar.sh,这里请区分source setvar.sh./setvar.sh的效果。

将benchmark拷贝到sim文件夹下,就可以用sim模拟执行了。

此方案实现了在真实机子上用Sim模拟benchmark运行而不用装gcc4.5.1和cuda4.x。并且非常灵活,我们可以将修改的GPGPU-Sim生成的libs放在不同的文件夹下,然后写sh跑就可以了。

打个广告,欢迎光临我的淘宝苹果店-加菲猫和光叔的苹果店,里面有宇宙无敌超级好吃的栖霞大苹果

转载请注明出处!

GPGPU-Sim(番外)-如何加快GPGPU-Sim的运行速度相关推荐

  1. 机器学习番外篇(1):极大似然估计和最小二乘法

    最近自己会把自己个人博客中的文章陆陆续续的复制到CSDN上来,欢迎大家关注我的 个人博客,以及我的github. 番外篇的内容主要是讲解一些在机器学习中经常会用到但是比较边缘化的知识,或者是某几个知识 ...

  2. 神经网络学习小记录-番外篇——常见问题汇总

    神经网络学习小记录-番外篇--常见问题汇总 前言 问题汇总 1.下载问题 a.代码下载 b. 权值下载 c. 数据集下载 2.环境配置问题 a.20系列所用的环境 b.30系列显卡环境配置 c.CPU ...

  3. sim卡没坏但苹果手机无服务_解决手机插SIM卡后都显示“无SIM卡”的故障问题

    故障现象 顾客描述手机插SIM卡后都显示"无SIM卡". 维修过程 引起插入SIM卡却显示"无SIM卡"的故障,除了可能是SIM卡座的供电.时钟.复 位及SIM ...

  4. Android开发:第五日番外——过时的函数和被横杠的函数

    零.... 好吧,估计以后每篇都会来个零开头进行吐槽了.话说第五日正番依旧难产中,先把番外给写了.番外嘛都是一些小的知识点,未免遗忘,特此记录.今天发现关于设计模式,本人零概念啊,这是什么概念啊,虽然 ...

  5. 多线程番外之真假*程

    多线程番外之真假*程 //写在之前 "有没有同学心里有疑问的,多线程才涉及那么很浅显的一点,为什么会惊现番外这一说呢,所谓番外,就是对正文做的补充,通常不录入正文,是作者主动在题材中加入的部 ...

  6. java优先队列的入队函数,算法与数据结构番外(1):优先队列

    这是算法与数据结构番外系列的第一篇,这个系列未来的主要内容是补充一些与算法与数据结构相关的知识,这些知识比较零碎,同时也与正传关系密切,往往需要阅读了正传的相关内容以后,才能较好的理解这部分内容.如果 ...

  7. python的类和对象——类的静态字段番外篇

    什么是静态字段 在开始之前,先上图,解释一下什么是类的静态字段(我有的时候会叫它类的静态变量,总之说的都是它.后面大多数情况可能会简称为类变量.): 我们看上面的例子,这里的money就是静态字段,首 ...

  8. [zt]数学之美番外篇:平凡而又神奇的贝叶斯方法

    数学之美番外篇:平凡而又神奇的贝叶斯方法 Tags: 数学, 机器学习与人工智能, 计算机科学 save it69 saved tags: 贝叶斯 math bayesian algorithm 数学 ...

  9. 『中级篇』docker之wordpress容器SSL(番外篇)(78)

    原创文章,欢迎转载.转载请注明:转载自IT人故事会,谢谢! 原文链接地址:『中级篇』docker之wordpress容器SSL(番外篇)(78) 搞了2天终于搞定了,现在分享给大家. apache2 ...

  10. 『中级篇』docker之虚拟机创建vagrant技巧(番外篇)(81)

    原创文章,欢迎转载.转载请注明:转载自IT人故事会,谢谢! 原文链接地址:『中级篇』docker之虚拟机创建vagrant技巧(番外篇)(81) 之前一直用的原生的centos7的源镜像安装虚拟机,然 ...

最新文章

  1. 分享Kali Linux 2016.2第49周镜像文件
  2. 如何利用office绘制施工进度计划横道图?
  3. matlab生产计划问题,用MATLAB解决综合生产计划编制过程中的优化问题
  4. [NOIP2006] 数列
  5. AI和大数据下,前端技术将如何发展?
  6. WebBrowser 控件中屏蔽alert,confirm脚本对话框的方法。
  7. ubuntu14.0.4下安装pycharm
  8. html5中如何自动跳转页面,实现HTML5上滑跳转页面的两种方法
  9. 七台河计算机网络工程专业,网络工程本科专业介绍
  10. 重磅!阿里宣布成立芯片公司,“平头哥”能解决中国的“无芯之痛”吗?
  11. Linux Shell脚本的10个有用的“面试问题和解答”
  12. web sqlite linux,基于嵌入式Linux和Sqlite的Web服务器的研究及应用
  13. php得到第一个数组_php怎么获取数组第一个元素
  14. Web前端 — Bootstrap(2)
  15. WebStorm 汉化教程-Mac
  16. PR曲线(ROC曲线)是如何画出来的?
  17. 有效使用网易有道词典客户端
  18. java超链接大全_JavaFX超链接
  19. 人工智能:《时代周刊》2019年度100大最佳发明榜单发布!
  20. Idea报错: A JNI error has occurred

热门文章

  1. OMG,学它!java培训讲师面试技巧
  2. 变态的什么“华旭金卡”公司
  3. PHP云盘网盘系统源码+快速对接多家云存储+全新一键安装版
  4. 一次SDN控制器环境搭建之路
  5. 西门子精智系列HMI屏幕用户管理密码组态示例(页面+IO域)
  6. 【新手入门】什么是量化投资?
  7. 毕业设计 matlab led,基于Matlab的单相半波可控整流电路的设计与仿真论文和Matlab源码...
  8. oracle00011,Oracle EXP-00011 导出数据时空表报错的解决
  9. CSS 使用 a 标签的 mailto 属性在网页中链接 Email 地址(琐碎知识点整理)
  10. windows安装nmap_如何为Windows操作系统下载和安装Nmap?