CMU 15-418 (Spring 2012) Final Project:
ISPC Performance Monitor
Jin Seop Kim (jinseopk@andrew.cmu.edu) and Dong Bae Jun (djun@andrew.cmu.edu)
Reports
Working Schedule
Week |
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. |
Working Log
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.