Open main menu

CDOT Wiki β

Changes

Three-Star

108 bytes added, 09:54, 9 April 2018
Assignment 3
=== Assignment 1 ===
==== Image Profiling Processor Application ====Chosen to profile image profiling processing as shown here: http://www.dreamincode.net/forums/topic/76816-image-processing-tutorial/ , using the sample program files(main/image.h/image.cpp), where it processeses PGM(portable gray map) files. 
pulled PGM sample files from here: https://userpages.umbc.edu/~rostamia/2003-09-math625/images.html
There are some possible issues with working with the simple-lzw-compression-algorithm and CUDA. You cannot use the C++ string type in a kernel because CUDA does not include a device version of the C++ String library that would be able run on the GPU. Even if it was possible to use string in a kernel, it's not something you would want to do because string handles memory dynamically, which would be likely to be slow.
 
https://stackoverflow.com/questions/26993351/is-there-a-penalty-to-using-char-variables-in-cuda-kernels?utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_qa
Essentially, using chars on the gpu would require we use 8-bit arithmetic and need to convert from 32-bit arithmetic for operations. On top of that, the compress function refers to a map of strings/int pairs to shrink the size of the file. Even if we did manage the character operations, it would need to somehow use the string map to get the corresponding integer which could lead to being unable to use device memory for optimization.
rotateKernel<<<dGrid, dBlock >>>(d_a, d_b, rows, cols, sin1, cos1);
The graph below shows the pronounced difference between the different sin cos methods. [[MediaFile:Assign3assign3-sincosall.png]]
There may be other variables that could be moved outside the kernel like r0 and c0, but due to time limitations they weren't tested.
 
All assignments compared in this file under "a1a2a3comps" sheet.
[[File:Assignment3_profile.xlsx.txt]]
https://github.com/dleung25/GPU610-Assignment3-Image-Profiling
 
[We used the images in the Github and 100 degrees for all our tests]
122
edits