Changes

Jump to: navigation, search

Thunderbird

1,343 bytes removed, 09:53, 10 April 2017
1. Optimize
== Team Members ==
# [mailto:ksanghun@myseneca.ca?subject=GPU610 Sanghun Kim]
# [mailto:hpark77@myseneca.ca?subject=GPU610 Heetai Park]
# [mailto:wlee64@myseneca.ca?subject=GPU610 Wonho Lee]
# [mailto:ksanghun@myseneca.ca?subject=GPU610,hpark77@myseneca.ca?subject=GPU610,;wlee64@myseneca.ca?subject=GPU610 eMail All]
== Progress ==
=== Assignment 1 ===
 
==== Profiling: LZW algorithm ====
It's a simple version of LZW compression algorithm with 12 bit codes.
0.00 4.08 0.00 1 0.00 0.00 ~_Hashtable()
==== Profiling: Ray-tracing algorithm ====
Source Code: https://github.com/ksanghun/CUDA_raytrace/blob/master/GPUAssaginemt/cputest.cpp
 
[[File:Profiling_Raytrace.png]]
 
 
==== '''Ray-Tracing Algorithm''' ====
 
[[File:rt_1.png]]
 
==== '''Ray-sphere Intersection''' ====
 
[[File:rt_2.png]]
 
==== '''Trace''' ====
 
[[File:rt_3.png]]
 
==== '''Floating-Point Considerations''' ====
 
[[File:Raytrace_floatingerror.PNG ‎]]
----
=== Assignment 2 ===
==== 1. Parallelize ====
- render()
 
 
[[File:Render_CvsP2.png]]
 
 
- main()
 
 
[[File:main_CvsP2.png]]
 
==== 2. Performance ====
[[File:Data_CvsP.PNG]]
 
 
[[File:Graph_CvsP.PNG]]
 
----
 
=== Assignment 3 ===
==== 1. Optimize ====
- Global to constant memory
 
 
[[File:PvsO2.png]]
 
==== 2. Performance ====
[[File:Data_PvsO.PNG]]
 
 
[[File:Graph_PvsO.PNG]]
==== Profiling: Ray-tracing algorithm ====
Source Code: https://www.scratchapixel.com/lessons/3d-basic-rendering/introduction-to-ray-tracing/ray-tracing-practical-example
[[File:Profile.JPG]]
==== Profiling: bubble vs quick algorithm 3. GPU Occupancy ====It's a simple version of sorting algorithm[[File:rt_5.png]]Source code----
void BubbleSort(int arr[], int size) { int tmp; /*used for swapping*/ int i; int j; for (i = 0; i<size - 1; i++) { for (j = 0; j<size - 1 - i; j++) { if (arr[j + 1] < arr[j]) { /* compare the two neighbors */ tmp = arr[j]; /* swap a[j] and a[j+1] */ arr[j] Conclusion == arr[j + 1]; arr[j + 1] = tmp; } } } } void InsertionSort(int arr[], int left, int right) { int curr; int i, j; for (i = left + 1; i <= right; i++) { curr = arr[i]; for (j = i; j>0 && arr[j - 1] > curr; j--) { arr[j] . Output == arr[j - 1]; } arr[j] = curr; } } void QuickSort(int arr[], int left, int right) { if (right - left <= 3) { InsertionSort(arr, left, right); } else { int pivotpt = (left + right) Video: https:/ 2; /youtu.be/index of the pivot3wV-ObHWZhg int i = left; int j = right - 1; swap(arr[pivotpt], arr[right]); pivotpt = right; int pivot = arr[pivotpt]; while (i<j) { while (i< right - 1 && arr[i]<pivot) i++; while (j > 0 && arr[j]>pivot) j--; if (i<j) swap(arr[i++], arr[j--]); } if (i 2. Performance ==== j && arr[i] < arr[pivotpt]) i++; swap(arr[i], arr[pivotptFile:Graph_CvsPvsO.PNG]); QuickSort(arr, left, i - 1); QuickSort(arr, i + 1, right); } } void QuickSort(int arr[], int size) { QuickSort(arr, 0, size - 1); }
35
edits

Navigation menu