GithubHelp home page GithubHelp logo

lijing1989 / cpu2006-express Goto Github PK

View Code? Open in Web Editor NEW

This project forked from sjp38/cpu2006-express

0.0 0.0 0.0 218 KB

Run SPEC CPU2006 on Linux with either an Intel, ARM, or PowerPC processors.

Shell 100.00%

cpu2006-express's Introduction

SPEC CPU2006 Express

This harness performs SPEC CPU2006 benchmarking using GCC. Capabilities include in installing prerequisites, building and installing SPEC CPU2006, and running reportable integer and floating-point runs.

Note: You must provide the cpu2006 tar archive.

Contents:

Download:

To download these files, first install git:

sudo yum install git

Or if you are using a Debian-based distribution:

sudo apt-get install git

Clone this repository:

sudo git clone https://github.com/ryanspoone/cpu2006-express.git

Change directories and run this script:

cd cpu2006-express/
sudo chmod +x cpu2006express.sh
sudo ./cpu2006express.sh

Required file tree:

|-- config
|   |-- linux32-arm32-gcc.cfg
|   |-- linux32-intel32-gcc.cfg
|   |-- linux64-arm64-gcc.cfg
|   |-- linux64-intel64-gcc.cfg
|   `-- linux64-powerpc-gcc.cfg
|
|-- bin
|   |-- setup.sh
|   |-- spinner.sh
|   `-- user_input.sh
|
|-- cpu2006-*.tar* (You provide this file)
|
 `-- cpu2006express.sh

Usage:

Change to directory where files are, then start benchmarking by issuing the following command:

For a full run:

sudo ./cpu2006express.sh -c

Customized run:

sudo ./cpu2006express.sh [OPTIONS]

Where the options are:

Option          GNU long option         Meaning
   -h             --help                  Show this message
   -r             --rebuild               Force SPEC CPU2006 rebuild and installation
   -o             --onecopy               Do a single copy run
   -i             --int                   Run integer
   -f             --fp                    Run floating-point
   -c             --complete              Do a complete run (int and fp) with defaults
   -p             --prereq                Install prerequisites
   -q             --quiet                 Show less detailed information

Supported Systems:

Intel

  • core2
  • nehalem
  • westmere
  • sandybridge
  • ivybridge
  • haswell
  • broadwell
  • bonnell
  • silvermont
  • corei7
  • corei7-avx
  • core-avx-i
  • core-avx2
  • atom

ARM

  • armv8-a
  • armv7-a
  • cortex-a9
  • cortex-a15
  • marvell-pj4
  • generic
  • xgene1
  • thunderx
  • cortex-a72
  • cortex-a57
  • cortex-a53

PowerPC

  • power8
  • power7
  • powerpc
  • powerpc64
  • rs64

Tested Systems:

Operating Systems

  • Ubuntu 14.04+
  • CentOS 7+
  • RHEL 6.5+

Platforms

  • ARM
    • 64-bit
      • X-Gene 1
    • 32-bit
      • Cortex-a15
  • Intel
    • 64-bit
      • Ivybridge
      • Haswell
      • Broadwell
  • PowerPC
    • 64-bit
      • Power8

TODO:

  1. Add config flags xml
  2. Isolate floating-point run errors

Adding Additional Systems:

If your system isn't being detected:

  1. Add something simpler to this below line 184 in the cpu2006express.sh file:

    • Change YOUR_SYSTEM_KEYWORD to the keyword infront of your processor name in the /proc/cpuinfo file.

############################################################

If CPU is still empty

This is mainly for X systems

Example: X

############################################################ if [ -z "$CPU" ]; then CPU=$(grep 'YOUR_SYSTEM_KEYWORD' /proc/cpuinfo | uniq | sed 's/YOUR_SYSTEM_KEYWORD\s*:\s//g') fi

2. Add something simpler to this below line **[296](https://github.com/ryanspoone/CPU2006-Express/blob/master/cpu2006express.sh#L296)** in the **[cpu2006express.sh](https://github.com/ryanspoone/CPU2006-Express/blob/master/cpu2006express.sh)** file:
+ Change ***`YOUR_SYSTEM`*** to your processor name in the **`/proc/cpuinfo`** file.
+ Change ***`YOUR_SYSTEM_CONFIG`*** to your config file name.

```bash
elif [[ $CPU == *'YOUR_SYSTEM'* ]]; then
 export GCC_CONFIG='YOUR_SYSTEM_CONFIG'
  1. Add your machine information to user_input.sh.
  2. Make sure your system is using the -march= flag, otherwise you might want to add a case to line 274 in the cpu2006express.sh file.
    • I had to add PowerPC this way because they use -mcpu instead.

Runspec Errors:

/usr/bin/ld: cannot find -lm and/or /usr/bin/ld: cannot find -lc

  • RHEL: remove -static from the compiler flags in the config file.

copy 0 non-zero return code or other build errors.

Change the portability options for that benchmark. Here are some options:

  • -DSPEC_CPU_LP64
    • This macro specifies that the target system uses the LP64 data model; specifically, that integers are 32 bits, while longs and pointers are 64 bits.
  • -DSPEC_CPU_Linux
    • This macro indicates that the benchmark is being compiled on a system running Linux.
  • -DSPEC_CPU_Linux_X64
    • This macro indicates that the benchmark is being compiled on an AMD64-compatible system running the Linux operating system.
  • -DSPEC_CPU_Linux_IA32
    • This macro indicates that the benchmark is being compiled on an Intel IA32-compatible system running the Linux operating system.

Some more helpful portability flags are located here: http://www.spec.org/auto/cpu2006/flags/400.perlbench.flags.html

cpu2006-express's People

Contributors

ryanspoone avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.