gem5: 可运行的spec2006 benchmark总结

gem5中运行spec2006的环境:

  • ALPHA架构;
  • 需要通过alpha交叉编译工具链编译spec2006;
  • 需要设置静态编译环境,优化选项-static;
  • 准备benchmark运行所需要的exe和input,最好将他们全部放在一个文件夹中;
  • 本文采用ref数据集,实际上有些测试集需要all里面的数据;

根据gem5中运行spec2006的步骤设置好benchmark运行环境后,即可逐个测试benchmark是否可以运行。

根据自己的需求修改run_gem5_alpha_spec06_benchmark.sh文件中关于build/ALPHA/gem5.opt后面的参数,最好指定最大运行指令数目–maxinsts,方便测试,否则运行时间太长,同时根据自己的路径修改benchmark.py文件,接着即可运行run_gem5_alpha_spec06_benchmark.sh文件。

如果该文件运行完,并且runscript.log最后显示“reached the max instruction“则表示运行成功,如果没看到,那么就要检查*.err和runscript.log中提示的错误。通常都是缺少数据集运行中所需要的文件,缺什么内容就去spec/data中寻找对应的文件。

通过测试,目前可以运行的程序如下:

CINT06 running(1) or not(0) Running error
400.perlbench 0 panic: fault (unalign) detected @ PC (0x120091d84=>0x120091d88)
401.bzip2 1
403.gcc 0 panic: Tried to access unmapped address 0x10.
429.mcf 1
445.gobmk 1
456.hmmer 1
458.sjeng 1
462.libquantum 1
464.h264ref 1
471.omnetpp 1
473.astar 1
483.xalancbmk 0 panic: fault (arith) detected @ PC (0x120437420=>0x120437424)
CFP06 running(1) or not Running error
410.bwaves 1
416.gamess 1
433.milc 1
434.zeusmp 1
435.gromacs 1
436.cactusADM 0 panic: fault (unalign) detected @ PC (0x120029184=>0x120029188)
437.leslie3d 1
444.namd 1
447.dealII 1
450.soplex 1
453.povray 1 have error, need to check
454.calculix 1
459.GemsFDTD 1
465.tonto 1
470.lbm 1
481.wrf 1
482.sphinx3 1

Note: 有错误的程序还在寻找解决方案中。

时间: 2024-12-20 17:09:39

gem5: 可运行的spec2006 benchmark总结的相关文章

Gem5下同时模拟多个benchmark

仅模拟一个benchmark的脚本 # Copyright (c) 2006-2008 The Regents of The University of Michigan # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions a

spec2006中精确的simulation points执行点

使用测试集spec2006测试cpu性能时,如果完全跑完所有程序,需要数周甚至数月,周期非常长,想得到实验结果,黄花菜都凉了!现在比较认可的做法是从simulation point开始运行,那么如何生成它呢? 使用simpoints工具,自己从头到尾跑一遍生成BBV,再寻找simpoints: 使用前人的现有的simpoints结果,spec2006_simpoints,来源于http://www.freewebs.com/gkofwarf/simpoints.htm,作者信息,该文档包含21个

gem5验证数组的缓存优化

陆续写些关于新书<自己动手写CPU>的博客,本篇主要是讲解 gem5验证数组的缓存优化 软件优化是提高cache命中率的十分有效的手段,cache的基本原理是利用程序局部性,而软件优化可以通过提高程序局部性,从而提高cache命中率.举一个例子如下: 程序A: #include <stdio.h> int main() { int i=0,j=0; long count=0; long temp[51200][8]; for(i=0;i<51200;i++) for(j=0;

gem5验证cache的不同映像方式对cache命中率的影响

陆续写些关于新书<自己动手写CPU>的博客,本篇主要是讲解 gem5验证cache的不同映像方式对cache命中率的影响. cache的基本在http://blog.csdn.net/leishangwen/article/details/30049469中已有介绍,此处不再重复,只是简单介绍一下. 主要由三大部分组成: Cache存储体:存放由主存调入的指令与数据块. 地址转换部件:建立目录表以实现主存地址到缓存地址的转换. 替换部件:在缓存已满时按一定策略进行数据块替换,并修改地址转换部件

20150924 Web Server(Http服务)

第一:Web Service基础 @1:补充  TCP.UDP OSI模型,TCP(应用.表示.会话)资源子网,下四具为通信子网. 前三层在用户进程进行(用户空间用户程序,后四层在内核中. Ip地址主机至主机(通信双方) 数据链路层mac设备到设备之间的通信 TCP/IP提供进程地址(端口号) TCP:面向链接在通信前创建虚拟链路(三次握手),通信完成后 还要拆除链路.可提供可靠流协议.0-65535 UDP:用户数据报协议(User dataGram Protocol),无链接协议( 无法保证

Mysql基准测试详细解说(根据慕课网:《打造扛得住Mysql数据库架构》视频课程实时笔录)

什么是基准测试 基准测试是一种测量和评估软件性能指标的活动用于建立某个时刻的性能基准,以便当系统发生软硬件变化时重新进行基准测试以及评估变化对性能的影响. 我们可以这样认为:基准测试是针对系统设置的一种压力测试.用来观察系统在不同压力下的行为,评估系统的容量,观察系统如何处理不同的数据,但是要注意的是基准测试和通常所说的压力测试还是有区别的. 基准测试要尽量的直接和简单,使各个结果之间容易比较,基准测试所使用的数据通常是由测试工具所生成的,只能用于评估服务器的 处理能力:而压力测试通常是通过真实

201509281125_《为什么移动app会很慢的深度分析(摘自司徒正美博客园文章)》

我写过不少文章来讨论为什么移动Web应用程序很慢,这也引起了不少的讨论.但是不幸的是,这些讨论没有像我喜欢的那样的基于事实. 所以我这篇文章的目地就是给这些问题带来一些真正的证据,而不是仅仅过来对骂.在这篇文章的中,你可以看到基准测试(benchmark),可以看到专家的观点,你甚至可以看到非常诚实(honest-to-God)的期刊文章.这篇文章有超过100个引用(不是开玩笑).我不保证这篇文章能使你信服,甚至不保证这篇文章中的所有内容都是正确的(在这样大规模的文章中做到这一点几乎是不可能的)

hibench学习

hibench包含几个hadoop的负载 micro benchmarksSort:使用hadoop randomtextwriter生成数据,并对数据进行排序. Wordcount:统计输入数据中每个单词的出现次数,输入数据使用hadoop randomtextwriter生成. TeraSort:输入数据由hadoop teragen产生,通过key值进行排序. hdfs benchmarks增强行的dfsio:通过产生大量同时执行读写请求的任务测试hadoop机群的hdfs吞吐量 web

为什么移动Web应用很慢?

前些日子,看到Herb Sutter在自己的博客中推荐了一篇文章<Why mobile web apps are slow>,在推荐里他这样写道: “I don’t often link to other articles, but this one is worth reading.” 我不经常链接到其它文章,但是这篇文章的确值得一读. “He offers data (imagine!) to justly debunk many common memes and “easy answer