The goal of this project is to use simulator to profile the executions of different benchmark programs, to analyze the performance of different computer systems based on such benchmark programs, and to examine the roles of the compiler.

engineering

Description

 

EEL 5741 – Advanced Microprocessor Systems Project 1: Benchmark Profiling and Processor Architecture

Introduction

The goal of this project is to use simulator to profile the executions of different benchmark programs, to analyze the performance of different computer systems based on such benchmark programs, and to examine the roles of the compiler.

Project Details

1. Read the Simplescalar Tool Set Document and understand the Simplescalar architecture. Download and install Simplescalar 3.0 software package on your computer. Study the usage of SimpleScalar simulation commands sim-fast and sim- profile. Please check the references at the end of this document.

2.  For each of the following five precompiled benchmarks, namely, go.ss, anagram.ss, apsi.ss, cc1.ss, and compress95.ss. Check the outputs. The command lines to use these files are listed as follows:

.                              a)  /simplesim-3.0/ ./sim-profile -iclass BenchMarks_Little/go.ss 50 9 2stone9.in 


.                              b)  /simplesim-3.0/ ./sim-profile -iclass BenchMarks_Little/anagram.ss words <BenchMarks_Little/anagram.in 


.                              c)  /simplesim-3.0/ ./sim-profile -iclass BenchMarks_Little/apsi.ss 


.                              d)  /simplesim-3.0/ ./sim-profile -iclass BenchMarks_Little/cc1.ss -O 1smt.i 


.                              e)  /simplesim-3.0/ ./sim-profile -iclass BenchMarks_Little/compress95.ss <BenchMarks_Little/compress95.in 


3.  Assuming you have the following two machines with the same cycle time but different 
cycles-per-instruction (CPI) for different instruction groups as follows: 
Table 1. CPIs for different types of instructions 
First, let System 1 be the reference machine. With the data you can collect from step 2, compare the performance of these two systems normalized geometric mean. Use System 2 as the reference machine and redo the comparison. Discuss your results. 


 

 

 

 

Instruction Types

Load/Store

Integer

Floating Point

Control Flow and others

System 1

2

1

5

3

System 2

1

 

2

4

3

4.      For this part use the C program for matrix multiplication, i.e., matmul.c, that computes the production of two matrices Amxn x Bnxk. It takes three input parameters, i.e., m, n, and k, randomly generates two matrices, and then computes their product. Compile it with SimpleScalar compiler (i.e., /usr/local/simplescalar/bin/sslittle-na-sstrix-gcc) with no optimization and with level 2 optimization. Here is an example:

/usr/local/simplescalar/bin/sslittle-na-sstrix-gcc –O2 –o

xgccedfile.ss Csoursefile.c

 

$IDIR/bin/sslittle-na-sstrix-gcc -o hello hello.c

 

$IDIR/simplesim-3.0/sim-safe hello

The above command compiles C source code Csoursefile.c to the SimpleScalar binary file xgccedfile.ss with the level 2 optimization option. Note that the SimpleScalar compiler has the similar input format as that of gcc. (If you are not familiar with gcc, you should check the details using the UNIX/Linux manual command, i.e., man gcc.)

.      a)  Let m=n=k=50, simulate the binary files and compare the total instruction counts. 


.      b)  What are the overall CPIs of the computer when running the optimized and non- 
optimized code? Discuss your results. 


 

Optimization Level

Parameters

 

CPI

2

100-100-100

  

None

100-100-100

    

2

50-50-50

 

None

50-50-50

    

   

 

What/how to hand in

Your report should present your experimental results (with tables and/or figures) and show your understanding of the contents we discuss in the class by clearly interpreting these results and/or answering the questions.

A summary section is mandatory that summaries the general observations, experiences, and conclusions you obtained from this project.

 

 

 

Reference

1.  SimpleScalar LLC, http://www.simplescalar.com 


2.  How-to install SimpleScalar on Ubuntu GitHub repository. Here you can find a 
script that installs simplescalar in Ubuntu 16.04 LTS. 
(https://github.com/sdenel/How-to-install-SimpleScalar-on-Ubuntu) 


Simplescalar GitHub repository. Here you can find instructions and sources for 
SPEC95 bechmarks to work with simplescalar. (https://github.com/priyankarroychowdhury3/Simplescalar) 



Related Questions in engineering category