CSE 420 Computer Architecture -- Spring 2019 Programming Assignment 1 (100 point)
Task 1: Profile the benchmark with perf on real machine
Know your CPU first! Please state the CPU vendor and the model name you are using for this assignment, with following information.
- CPU frequency
- Cache hierarchy and size (How many cache levels and the size of each level)
Then use pert utility to collect following stats for all 4 workloads with 2 optimization version provided in the benchmark. (8 combinations in total)
- Total Instruction
- Ll data cache load
- Ll data cache load miss rate
- Last level cache load
- Last level cache load miss rate
- Branch instructions
- Branch prediction miss rate
You need to prepare a table and plot the above data in a graph for better visualization, and answer following questions.
- Describe each workload's characteristic. Which are memory intensive applications? Which one is
more cache friendly? Which one does show the challenge to branch prediction?
- Summarize the change between optimized and non-optimized binaries in the data you collect for all 4 workloads. Do all 4 workloads shows the same behavior change between different compiler optimization? Does compiler optimization change the program attribute like whether they are cache or branch friendly or not?
Task 2: Profile the benchmark in gems simulator
Use the following CPU setting to configure your simulated system in gems
- CPU type: Deriv0 3CPU
- The size of Ll instruction cache and Ll data cache are set as the same as your CPU's L1 instruction and data cache .
- Since gems does not expose L3 cache sett ings, the L2 cache will be the last level cache in gems. Apply the size of your CPU's last level cache to the L2 cache in gems.
- Other settings remain in default
Run the 4 workloads using optimized binaries only from the benchmark in gems with 2 different L2 cache replacement policies: LRU and RandomRepl, collect the data relevant to cache stats including execution time, and compare them with the data from task 1. Which cache replacement policy give you the performance most close to what you measure from your CPU?
As the same in task 1, you need to provide tables and graphs to present the same measurement data.
Due Date
The due date of the assignment is 11 :59pm, Jan 31.
What to Turn in for Grading
- Create a working directory, named "cse420-assgn01-LastName_Firstlnitial", for the assignment to include
- A pdf document with all tables, graphs, and answers from this assignment. Don't forget to add your name and ASU id in the
- A folder with all stats and config files with proper names you collect from
- A readme text file with all the commands you use for task 1 and task Alternatively, you could have a script file with comments inside on how to use it.
- Compress the directory into a zip archive file named cse420-assgn01-LastName_Firstlnitial.zip. Note that any object code or temporary files should not be included in the submission. Submit the zip archive to the course Canvas by the due date and
- There will be 20 points penalty per day if the submission is lat e. Note that submissions are time stamped by Canvas. If you have multiple submissions, only the newest one will be graded. If needed, you can send an email to the instructor and TA to drop a
- The assignment must be done individually. No collaboration is allowed, except the open discussion in the forum on
- ASU Academic Integrity Policy (htt p:// asu.e du/ aca demicinte grity), and FSE Honor Code (htt p:/ / engineering .asu .edu/ int egrity ) are strictly enforced and followed.