Changes

Jump to: navigation, search

Happy Valley

1,148 bytes added, 11:07, 11 April 2018
m
Assignment 3
==== Switching to shared memory ====
''' Source Code '''VISUAL PROFILER suggested few ideas for optimization:
<pre>- Concurrent Kernel Execution code here!<- Low Memcpy/pre>Compute Overlap Concurrent Kernel Execution can let CUDA programmers launch several kernels asynchronously by utilizing Stream functionalities. Unfortunately, it is not applicable for the Bitonic sort algorithm since for the same reason we cannot parallelize 2 outer loops. If we launch kernels in parallel, they will start 'competing' for the data values and thus we will end up having race conditions. Low memcpy/compute overlap is related to the Concurrent Kernel Execution. In theory, you can pass chunks of the input array asynchronously into each kernel in the array. However, it seems to be hard to partition the inout data in any meaningful way. ==== Switching to CudaMallocHost ==== There is slightly performance increase when switch to CudaMallocHost. ''' The data table ''' [[File:HVMallocHosttable.png|800px]] ''' The diagram ''' [[File:HVMallocHost.png|800px]]
==== Switching to x86 from x64 ====
Although the result of the program did not change, the console showed this warning massage:
==4500== Warning: Unified Memory Profiling is not supported on the underlying platform. System requirements for unified memory can be found at: http://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#um-requirements
 
=== Reference ===
 
''' Links '''
 
<pre>
http://parallelcomp.uw.hu/ch09lev1sec2.html
</pre>
 
<pre>
https://www.geeksforgeeks.org/bitonic-sort/
</pre>
 
<pre>
https://en.wikipedia.org/wiki/Selection_sort
</pre>
56
edits

Navigation menu