[转帖]SPEC2006

spec2006 · 浏览次数 : 0

小编点评

**安装Spec2006步骤:** 1. 下载Spec2006的安装包。 2. 将安装包解压缩到指定位置。 3. 修改`./shrc`文件中的`LD_LIBRARY_PATH`和`LD_LIBRARY_PATH`变量,以便Spec2006可以找到库文件。 4. 运行`./install.sh`命令。 5. 完成安装后,运行`./shrc`文件设置环境变量。 6. 运行Spec2006。 **注意:** * 在使用之前,请确保已安装了gcc和gfortran编译器。 * `Spec2006`文档中提供了详细的安装步骤和配置指南。 * 如果遇到任何问题,请参考Spec2006文档或联系作者支持。

正文

安装步骤

# Ubuntu16.04
# 注意安装gFortran
. ./install.sh
. ./shrc

            一般情况下经过以上步骤即可安装完毕,进行使用,注意需要执行shrc设置完环境变量以后才可正常执行后续的各种操作。

            此外SPEC官方并不建议使用root权限,因为所有的测试集并不需要修改系统文件。

    常用命令

    runspec int --noreportable --n=1 --size=test

    • 正式运行SPEC2006之前需要跑一下test尺寸,test尺寸比较小,因此跑起来耗时教短,可用于确保所有测试集都可正常编译运行。
    • int:表明这是整数测试集,这个参数也可用fp,all代替,分表表示只使用浮点测试集和所有测试集。
    • –noreportable 不生成报告 --reportable生成报告,若开启将会生成诸如html,pdf等格式的报告。
    • –n=1:表示只跑一轮,每个测试集只会跑一遍。若要生成报告,则至少跑3轮
    • –size=test:表示这次只跑少量集合,用于测试所有集合是否都已经编译执行正确

    runspec int --reportable --size=ref -I

    • -I 表示跑benchmark的适合忽略错误,如果中途出错也不会停下来。
    • 如果没有指定rate和copies则为测试speed,speed只能测试单核性能。
    • 若想测试多核性能,则可通过 --rate=128进行指定,这里讲使用128个线程。
    • rate和speed指标的区别请看
      Q15. What is the difference between a “rate” and a “speed” metric?

    如何检测自己的电脑是多少核心的呢?

    • 逻辑CPU核心数(包括超线程技术):
    cat /proc/cpuinfo |grep "processor"|sort -u|wc -l
    
      • 物理CPU个数:
      grep "physical id" /proc/cpuinfo|sort -u|wc -l 
      
        或者
        grep "physical id" /proc/cpuinfo|sort -u 
        
          • 每个物理CPU上的真实内核个数:
          grep "cpu cores" /proc/cpuinfo|uniq
          
            • 每个物理CPU上逻辑内核个数:
            grep "siblings" /proc/cpuinfo|uniq
            
              • 若每个核心上的逻辑内核比真实内核多,则说明开启了超线程技术
              • 来源Linux读取CPU信息

              runspec 481 --noreportable --n=1

              • 有时候为了修复编译错误,可以让他单独跑481这一项

              runspec -c xxx.cfg

              • -c用于指定配置文件,如果没有指定,则默认使用根目录的config文件夹下的default.cfg作为配置文件

              常见错误

              gcc5.x如何跑SPEC2006

              • 在无法通过的测试集的gcc编译选项上加 --std=gnu89

              缺少库文件

              • 在gcc的编译选项上加 -include /usr/include/memory.h include 后面的路径需要换成自己的,这里只是举个例子

              447.dealII 遇到 error: ‘ptrdiff_t’ does not name a type

              • linux下需要引入 头文件,使用上述方法在config文件中找到447.dealII的配置在CXXPORTABILITY后面加上 -include cstddef -include cstdlib -include cstring
              • 进入的头文件若是系统库,则不需要具体路径

              spec2006 fp test failed with 416.gamess and 481.wrf

              • 416 miscompare 问题是gcc旧版本的bug,当开启O2优化的适合会出错
              • 升级新版本gcc或者用-O0进行编译或者换一个编译器
              • 483 end of file 问题,我是通过把配置文件中的wrf_data_header_size=8注释掉解决的

              如果不幸需要自己编译工具链,可能会遇到更多奇怪的问题

              Specmd5sum multiple definition of `getline’

              • Specmd5sum文件夹中的库文件跟系统库文件的函数冲突了,打开md5sum.c,注释掉#include "getline.h"

              在perl中make时遇到 MAKE: *** NO RULE TO MAKE TARGET ‘<COMMAND-LINE>’

              • 这是因为gcc在高版本中改变了输出,以至于这里没有及时过滤掉,其实只要将makefile(注意不是Makefile)中<command-line>
                的那一行全删掉即可。
              • 这里有个问题是,buildtools每次编译都会将之前生成的东西清空,然后重新生成makefile文件,因此手工删除makefile中的会失败。
              • 于是自己随便在网上找了一段代码用于删除makefile文件中的’<command-line>’
              #include <stdio.h>
              #include <stdlib.h>
              #include <string.h>
              

              void Delete(char* filepath, char str[])
              {
              char buf[4096]; //每读取一行,都将内容放到该数组中
              FILE* fp = fopen(filepath, "r"); //filepath里是原内容

              FILE* fpt = fopen("temp", "w");    //将filepath文件第n行内容删除后存入temp.txt中 
              
              while(!feof(fp)) 
              {  
                 fgets(buf,sizeof(buf), fp);  
              	if (!strstr(buf,str)) 
              	{      
              	  fprintf(fpt, "%s", buf); 
                            printf("%s\n",buf);
              	}
              } 
              fclose(fp);
              fclose(fpt);
              
              fpt = fopen("temp", "r");
              fp = fopen(filepath, "w");
              fgets(buf, sizeof(buf), fpt);	
              while(!feof(fpt))
              {
                 fprintf(fp, "%s", buf);
                 fgets(buf, sizeof(buf), fpt);
              }
              
              fclose(fp);
              fclose(fpt);
              

              }

              void main()
              {
              Delete("x2p/makefile", "command");
              Delete("makefile", "command");
              }

                • 将上述代码另存为delete.c,置于工具链中的perl-5.8.7根目录下
                • 并修改buildtools中的shell脚本,如下打加号的部分
                    DYLD_LIBRARY_PATH=`pwd`
                    export LD_LIBRARY_PATH DYLD_LIBRARY_PATH
                    ./Configure   -dOes -Ud_flock $PERLFLAGS -Ddosuid=undef -Dprefix=$INSTALLDIR -Dd_bincompat3=undef -A ldflags=-L${INSTALLDIR}/lib -A ccflags=-I${INSTALLDIR}/include -Ui_db -Ui_gdbm -Ui_ndbm -Ui_dbm -Uuse5005threads ; testordie "error configuring perl"
                
                • gcc -o del delete.c
                • ./del
                • cd x2p
                • $MYMAKE
                • cd ../
                • ./del
                $MYMAKE; testordie "error building perl"
                ./perl installperl; testordie "error installing perl"
                

                  Blog:Spec2006

                  与[转帖]SPEC2006相似的内容:

                  [转帖]SPEC2006

                  安装步骤 # Ubuntu16.04 # 注意安装gFortran . ./install.sh . ./shrc 一般情况下经过以上步骤即可安装完毕,进行使用,注意需要执行shrc设置完环境变量以后才可正常执行后续的各种操作。 此外SPEC官方并不建议使用root权限,因为所有的测试集并不需要修改

                  [转帖]SPEC2006移入docker后的运行问题

                  https://www.cnblogs.com/csxyc/p/7157890.html 实验需要给SPEC2006的benchmark绑定CPUID,于是想到用docker分配CPU资源,写一个简单的DOCKERFILE文件完成配置 1 FROM cmbant/docker-gcc-build 2

                  [转帖]Silicon M1不讲武德?用SPEC2006和2017测试M1

                  https://new.qq.com/rain/a/20201119A0HPJE00 Silicon M1不讲武德?用SPEC2006和2017测试M1比武X86同样不落下风。 首先要申明的是,这项测试由评测机构anandtech进行,由于Apple Silicon搭配macOS系统与其它系统和硬件

                  [转帖]飞腾2021-2022的产品规则

                  https://zhuanlan.zhihu.com/p/259824108 腾锐 D3000,采用14nm工艺,单核性能提高一倍。 由于飞腾官方从来没有给出过自家任何CPU的单核心跑分数据,那么就只能参考飞腾粉丝说的: FT-2000/4 @ 3.0GHz 的 Spec2006 int 单核成绩接

                  [转帖]SPEC-cpu2006的详细使用一键安装、手动安装。

                  一、SPEC-cpu2006简介 SPEC CPU 2006 benchmark是SPEC新一代的行业标准化的CPU测试基准套件。重点测试系统的处理器,内存子系统和编译器。 说明:由于spec2006支持多种类型操作系统。以下安装、测试、移植等介绍均基于Unix 和其他的 Unix-like sys

                  [转帖]飞腾2021-2022的产品规则

                  https://zhuanlan.zhihu.com/p/259824108 腾锐 D3000,采用14nm工艺,单核性能提高一倍。 由于飞腾官方从来没有给出过自家任何CPU的单核心跑分数据,那么就只能参考飞腾粉丝说的: FT-2000/4 @ 3.0GHz 的 Spec2006 int 单核成绩接

                  [转帖]龙芯二进制翻译性能的不严谨分析

                  https://zhuanlan.zhihu.com/p/580008360 先读一下胡老师的大作 节取一些内容如下,下面有官方测试参数: 一通操作猛如虎,一看跑分不如知乎答主: 龙芯UnixBench分高,龙芯说了原因如下: 二进制翻译性如下(LATX就是翻译到X86): 胡老师说spec2000

                  [转帖]

                  Linux ubuntu20.04 网络配置(图文教程) 因为我是刚装好的最小系统,所以很多东西都没有,在开始配置之前需要做下准备 环境准备 系统:ubuntu20.04网卡:双网卡 网卡一:供连接互联网使用网卡二:供连接内网使用(看情况,如果一张网卡足够,没必要做第二张网卡) 工具: net-to

                  [转帖]

                  https://cloud.tencent.com/developer/article/2168105?areaSource=104001.13&traceId=zcVNsKTUApF9rNJSkcCbB 前言 Redis作为高性能的内存数据库,在大数据量的情况下也会遇到性能瓶颈,日常开发中只有时刻

                  [转帖]ISV 、OSV、 SIG 概念

                  ISV 、OSV、 SIG 概念 2022-10-14 12:29530原创大杂烩 本文链接:https://www.cndba.cn/dave/article/108699 1. ISV: Independent Software Vendors “独立软件开发商”,特指专门从事软件的开发、生产、