Difference between revisions of "GroupNumberUndefined"

From CDOT Wiki
Jump to: navigation, search
(Created page with "{{GPU610/DPS915 Index | 20171}} = Project Name Goes here = == Team Members == # [mailto:abykin@senecac.ca?subject=gpu610 Andrey Bykin] == Progress == === Assignment 1 === =...")
 
(Assignment 1)
Line 6: Line 6:
 
== Progress ==
 
== Progress ==
 
=== Assignment 1 ===
 
=== Assignment 1 ===
 +
For profiling I decided to use Image Processing. I found a simple image processing code posted on online forums that is written in C++ and has many ways it can be optimized : http://www.dreamincode.net/forums/topic/76816-image-processing-tutorial/. This code is able to take PGM images and manipulate them. I ran my tests using a file with the size of 24mb ( Only the file size matters in the program run time, since that determines how many pixels we have to modify.) I had to modify the code in order for it to be compatible with real time results. First run was done using no optimization when compiling, and shows the follow results.
 +
 +
[[File:Size24NORunTime.PNG]]
 +
 +
This was the run time with 0 optimization enabled.
 +
 +
[[File:Size24NO.PNG]]
 +
 +
This was the profiling information, as you can see the time in the function is almost split equally, and any of the functions can be modified for efficiency and parallel programming. For example this is the implementation of rotation function :
 +
 +
[[File:RotateImage.PNG]]
 +
 +
I also compiled the program using the -O2 flag so that compiler can perform its own optimization and this was the result :
 +
 +
[[File:Size24O2RuneTime.PNG]]
 +
 +
And the Profiling information :
 +
 +
[[File:Size24O2.PNG]]
 +
 +
I think for second part of the assignment I will see which functions can be improved the most and focus on that, but still leaving myself time to work on other functions if necessary.
 +
 
=== Assignment 2 ===
 
=== Assignment 2 ===
 
=== Assignment 3 ===
 
=== Assignment 3 ===

Revision as of 20:29, 5 February 2017


GPU610/DPS915 | Student List | Group and Project Index | Student Resources | Glossary

Project Name Goes here

Team Members

  1. Andrey Bykin

Progress

Assignment 1

For profiling I decided to use Image Processing. I found a simple image processing code posted on online forums that is written in C++ and has many ways it can be optimized : http://www.dreamincode.net/forums/topic/76816-image-processing-tutorial/. This code is able to take PGM images and manipulate them. I ran my tests using a file with the size of 24mb ( Only the file size matters in the program run time, since that determines how many pixels we have to modify.) I had to modify the code in order for it to be compatible with real time results. First run was done using no optimization when compiling, and shows the follow results.

Size24NORunTime.PNG

This was the run time with 0 optimization enabled.

Size24NO.PNG

This was the profiling information, as you can see the time in the function is almost split equally, and any of the functions can be modified for efficiency and parallel programming. For example this is the implementation of rotation function :

RotateImage.PNG

I also compiled the program using the -O2 flag so that compiler can perform its own optimization and this was the result :

Size24O2RuneTime.PNG

And the Profiling information :

Size24O2.PNG

I think for second part of the assignment I will see which functions can be improved the most and focus on that, but still leaving myself time to work on other functions if necessary.

Assignment 2

Assignment 3