CMU 15-418 (Spring 2012) Final Project:
ISPC Performance Monitor
Jin Seop Kim (firstname.lastname@example.org) and Dong Bae Jun (email@example.com)
||What We Plan To Do
||What We Actually Did
|Apr 1-7||Research analysis and measurement methods for ISPC.|
Design cache and IPC analysis mechanism.
|Confirmed that we could extract cache and ipc information from intel performance counter monitor. |
Decided to measure runtime and divergence with direct implementation.
|Apr 8-14||Build and learn ISPC source codes.||Set up build environment and tried different configurations. |
|Apr 15-21||Prototype visulization tools.||Developed a graphical result viewer based on Java. |
|Apr 23-26||Plan and determine how divergence can be detected in ISPC.||Researched the instrument option in ISPC compiler. Decided to provide a user library to extract the lane status for the defined monitoring region.|
|Apr 27-29||Add a new option to the current ISPC or implement a separate library.||Start implementing a separate library. Tried various ways for the most effective display.|
|Apr 30-May 3||Continue the development.||Finished a rough draft for ISPC monitor library. Added more functionalities to the visualization tool.|
|May 4-6||Polish divergence detection and improve visualization.||Tested with a large data set. Provided the aggregate summary. |
|May 7-10||Test, debug, and finalize the project||Fixed several issues with user library and visualization tool. Prepared for parallelism competition.|
03/31/2012: brainstorming and deciding the project topic.
04/02/2012: working on the project website.
04/05/2012: running examples and getting familiar with intel performance counter monitor.
04/06/2012: cloning ispc respository.
04/08/2012: building llvm and ispc on the core-i7 test box.
04/09/2012: analyzing ispc source codes to understand how SIMD instructions are generated.
04/10/2012: trying several ispc options such as --emit-c++, --target=generic-4, and --instrument.
04/13/2012: studying ispc parallel execution model.
04/16/2012: prototyping a basic visualization tool which displays divergence, runtime, cache utilization, and ipc with bar graphs.
04/18/2012: reconsidering about practical and useful performance results.
04/20/2012: carnival week with parties and interviews.
04/23/2012: finishing checkpoint writeup.
04/24/2012: designing the user library interfaces to extract the lane status only for the specified region
04/28/2012: writing ISPC Performance Monitor user library.
04/30/2012: improving the visualization tool with interactive and intuitive displays.
05/03/2012: finishing the first draft of ISPC Performance Monitor user library.
05/04/2012: writing sample test program for performance monitoring and running several cases.
05/06/2012: adding the functionality for aggregate statistics.
05/07/2012: fixing efficiency issues with the visualization tool.
05/08/2012: finalizing the user library and the visualization tool.
05/09/2012: preparing for the parallelism competition.
05/11/2012: writing the final report.