From fb6021794f2253118a12566e0d20264bc4f9c9df Mon Sep 17 00:00:00 2001 From: nadaOuf Date: Wed, 9 Sep 2015 19:26:08 -0400 Subject: [PATCH 1/5] CPU --- stream_compaction/cpu.cu | 49 +++++++++++++++++++++++++++++++++++----- 1 file changed, 43 insertions(+), 6 deletions(-) diff --git a/stream_compaction/cpu.cu b/stream_compaction/cpu.cu index e600c29..8c00985 100644 --- a/stream_compaction/cpu.cu +++ b/stream_compaction/cpu.cu @@ -8,8 +8,13 @@ namespace CPU { * CPU scan (prefix sum). */ void scan(int n, int *odata, const int *idata) { - // TODO - printf("TODO\n"); + + odata[0] = 0; + + for(int i = 1; i < n; ++i) { + odata[i] = idata[i-1] + odata[i-1]; + } + } /** @@ -18,8 +23,16 @@ void scan(int n, int *odata, const int *idata) { * @returns the number of elements remaining after compaction. */ int compactWithoutScan(int n, int *odata, const int *idata) { - // TODO - return -1; + + int compactN = 0; + for(int i = 0; i < n; ++i) { + if(idata[i] != 0) { + odata[compactN] = idata[i]; + ++compactN; + } + } + + return compactN; } /** @@ -28,8 +41,32 @@ int compactWithoutScan(int n, int *odata, const int *idata) { * @returns the number of elements remaining after compaction. */ int compactWithScan(int n, int *odata, const int *idata) { - // TODO - return -1; + int compactN = 0; + int *intermediate = new int[n]; + int *scanResult = new int[n]; + + for(int i = 0; i < n; ++i) { + if(idata[i] != 0) { + intermediate[i] = 1; + } else { + intermediate[i] = 0; + } + } + + scan(n, scanResult, intermediate); + + for(int i = 0; i < n; ++i) { + if(intermediate[i] == 1) { + odata[scanResult[i]] = idata[i]; + } + } + + compactN = scanResult[n-1]; + if(intermediate[n-1] == 1) { + ++compactN; + } + + return compactN; } } From 807a7319dce60ec9567c4b531cd7eb56aa94d9ef Mon Sep 17 00:00:00 2001 From: nadaOuf Date: Sun, 13 Sep 2015 19:42:01 -0400 Subject: [PATCH 2/5] done with all parts till part4 --- src/main.cpp | 14 ++-- stream_compaction/common.cu | 43 +++++++++++- stream_compaction/common.h | 14 ++++ stream_compaction/cpu.cu | 16 ++++- stream_compaction/efficient.cu | 125 +++++++++++++++++++++++++++++++-- stream_compaction/naive.cu | 56 +++++++++++++-- stream_compaction/thrust.cu | 7 ++ 7 files changed, 252 insertions(+), 23 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index efc8c06..bc85e77 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -16,7 +16,7 @@ #include "testing_helpers.hpp" int main(int argc, char* argv[]) { - const int SIZE = 1 << 8; + const int SIZE = 1 << 16; const int NPOT = SIZE - 3; int a[SIZE], b[SIZE], c[SIZE]; @@ -28,17 +28,17 @@ int main(int argc, char* argv[]) { printf("****************\n"); genArray(SIZE - 1, a, 50); // Leave a 0 at the end to test that edge case - printArray(SIZE, a, true); + //printArray(SIZE, a, true); zeroArray(SIZE, b); printDesc("cpu scan, power-of-two"); StreamCompaction::CPU::scan(SIZE, b, a); - printArray(SIZE, b, true); + //printArray(SIZE, b, true); zeroArray(SIZE, c); printDesc("cpu scan, non-power-of-two"); StreamCompaction::CPU::scan(NPOT, c, a); - printArray(NPOT, b, true); + //printArray(NPOT, b, true); printCmpResult(NPOT, b, c); zeroArray(SIZE, c); @@ -93,20 +93,20 @@ int main(int argc, char* argv[]) { printDesc("cpu compact without scan, power-of-two"); count = StreamCompaction::CPU::compactWithoutScan(SIZE, b, a); expectedCount = count; - printArray(count, b, true); + //printArray(count, b, true); printCmpLenResult(count, expectedCount, b, b); zeroArray(SIZE, c); printDesc("cpu compact without scan, non-power-of-two"); count = StreamCompaction::CPU::compactWithoutScan(NPOT, c, a); expectedNPOT = count; - printArray(count, c, true); + //printArray(count, c, true); printCmpLenResult(count, expectedNPOT, b, c); zeroArray(SIZE, c); printDesc("cpu compact with scan"); count = StreamCompaction::CPU::compactWithScan(SIZE, c, a); - printArray(count, c, true); + //printArray(count, c, true); printCmpLenResult(count, expectedCount, b, c); zeroArray(SIZE, c); diff --git a/stream_compaction/common.cu b/stream_compaction/common.cu index fe872d4..3653379 100644 --- a/stream_compaction/common.cu +++ b/stream_compaction/common.cu @@ -14,6 +14,37 @@ void checkCUDAErrorFn(const char *msg, const char *file, int line) { exit(EXIT_FAILURE); } +void cpyHostToDevice(const int *hst, int *dev, size_t array_size) { + cudaMemcpy( /*destination*/ dev, + /*source*/ hst, + /*size in bytes to copy*/ array_size, + /*cudaMemcpy type*/ cudaMemcpyHostToDevice); + + checkCUDAError("Error copying memory from host to device"); +} + +/** +*/ +void cpyDeviceToHost(int *hst,const int *dev, size_t array_size) { + cudaMemcpy( /*destination*/ hst, + /*source*/ dev, + /*size in bytes to copy*/ array_size, + /*cudaMemcpy type*/ cudaMemcpyDeviceToHost); + + checkCUDAError("Error copying memory from device to host"); +} + +/** +*/ +void cpyDeviceToDevice(const int *src, int *dest, size_t array_size) { + cudaMemcpy( /*destination*/ dest, + /*source*/ src, + /*size in bytes to copy*/ array_size, + /*cudaMemcpy type*/ cudaMemcpyDeviceToDevice); + + checkCUDAError("Error copying memory from device to device"); +} + namespace StreamCompaction { namespace Common { @@ -23,7 +54,11 @@ namespace Common { * which map to 0 will be removed, and elements which map to 1 will be kept. */ __global__ void kernMapToBoolean(int n, int *bools, const int *idata) { - // TODO + int index = (blockIdx.x*blockDim.x) + threadIdx.x; + + if(index < n) { + bools[index] = (idata[index] != 0); + } } /** @@ -32,7 +67,11 @@ __global__ void kernMapToBoolean(int n, int *bools, const int *idata) { */ __global__ void kernScatter(int n, int *odata, const int *idata, const int *bools, const int *indices) { - // TODO + int index = (blockIdx.x*blockDim.x) + threadIdx.x; + + if(index < n && bools[index]) { + odata[indices[index]] = idata[index]; + } } } diff --git a/stream_compaction/common.h b/stream_compaction/common.h index 4f52663..68cf5eb 100644 --- a/stream_compaction/common.h +++ b/stream_compaction/common.h @@ -6,12 +6,26 @@ #define FILENAME (strrchr(__FILE__, '/') ? strrchr(__FILE__, '/') + 1 : __FILE__) #define checkCUDAError(msg) checkCUDAErrorFn(msg, FILENAME, __LINE__) +#define blockSize 512 /** * Check for CUDA errors; print and exit if there was a problem. */ void checkCUDAErrorFn(const char *msg, const char *file = NULL, int line = -1); +void cpyHostToDevice(const int *hst, int *dev, size_t array_size); +void cpyDeviceToHost(int *hst, const int *dev, size_t array_size); +void cpyDeviceToDevice(const int *src, int *dest, size_t array_size); + +inline int power(int x, int y) { + int result = 1; + while(y > 0) { + result *= x; + --y; + } + return result; +} + inline int ilog2(int x) { int lg = 0; while (x >>= 1) { diff --git a/stream_compaction/cpu.cu b/stream_compaction/cpu.cu index 8c00985..93793d7 100644 --- a/stream_compaction/cpu.cu +++ b/stream_compaction/cpu.cu @@ -8,13 +8,23 @@ namespace CPU { * CPU scan (prefix sum). */ void scan(int n, int *odata, const int *idata) { - + + cudaEvent_t start, stop; + cudaEventCreate(&start); + cudaEventCreate(&stop); + cudaEventRecord(start); + odata[0] = 0; for(int i = 1; i < n; ++i) { odata[i] = idata[i-1] + odata[i-1]; } + cudaEventRecord(stop); + cudaEventSynchronize(stop); + float elapsedTime; + cudaEventElapsedTime(&elapsedTime , start, stop); + printf("n is %i time is %f ms on the CPU\n",n, elapsedTime); } /** @@ -54,7 +64,7 @@ int compactWithScan(int n, int *odata, const int *idata) { } scan(n, scanResult, intermediate); - + for(int i = 0; i < n; ++i) { if(intermediate[i] == 1) { odata[scanResult[i]] = idata[i]; @@ -65,7 +75,7 @@ int compactWithScan(int n, int *odata, const int *idata) { if(intermediate[n-1] == 1) { ++compactN; } - + return compactN; } diff --git a/stream_compaction/efficient.cu b/stream_compaction/efficient.cu index b2f739b..ead1e32 100644 --- a/stream_compaction/efficient.cu +++ b/stream_compaction/efficient.cu @@ -6,14 +6,84 @@ namespace StreamCompaction { namespace Efficient { -// TODO: __global__ +__global__ void kernUpSweep(int n, int d, int offset, int *idata) { + int index = (blockIdx.x *blockDim.x) + threadIdx.x; + + if(index < d) { + int ai = offset*((index*2)+1) - 1; + int bi = offset*((index*2)+2) - 1; + if(ai >= n || bi >= n) + return; + if(bi == n-1) + idata[bi] = 0; + else + idata[bi] += idata[ai]; + } +} + +__global__ void kernDownSweep(int n, int d, int offset, int *idata) { + int index = (blockIdx.x *blockDim.x) + threadIdx.x; + + if(index < d) { + int ai = offset*((index*2)+1) - 1; + int bi = offset*((index*2)+2) - 1; + + int temp = idata[ai]; + idata[ai] = idata[bi]; + idata[bi] += temp; + } + +} + /** * Performs prefix-sum (aka scan) on idata, storing the result into odata. */ -void scan(int n, int *odata, const int *idata) { - // TODO - printf("TODO\n"); +void scan(int n, int *hst_odata, const int *hst_idata) { + int *dev_idata; + + //The number of blocks + dim3 blocksPerGrid((n + blockSize -1)/blockSize); + + //The number of threads per block + dim3 threadsPerBlock(blockSize); + + //Allocate memory + cudaMalloc((void**)&dev_idata, n*sizeof(int)); + checkCUDAError("Error in malloc of dev_idata"); + + //copy array to device + cpyHostToDevice(hst_idata, dev_idata, n*sizeof(int)); + + int passes = ilog2ceil(n); + + int offset = 1; + int d = power(2, passes)>>1; + + cudaEvent_t start, stop; + cudaEventCreate(&start); + cudaEventCreate(&stop); + cudaEventRecord(start); + + //Up sweep + for(; d > 0; d >>= 1) { + kernUpSweep<<>>(n, d, offset, dev_idata); + offset *= 2; + } + + for(d = 1; d < n; d *= 2) { + offset >>= 1; + kernDownSweep<<>>(n, d, offset, dev_idata); + } + + cudaEventRecord(stop); + cudaEventSynchronize(stop); + float elapsedTime; + cudaEventElapsedTime(&elapsedTime , start, stop); + printf("time is %f ms on the GPU\n", elapsedTime); + + cpyDeviceToHost(hst_odata, dev_idata, (n*sizeof(int))); + } /** @@ -25,9 +95,50 @@ void scan(int n, int *odata, const int *idata) { * @param idata The array of elements to compact. * @returns The number of elements remaining after compaction. */ -int compact(int n, int *odata, const int *idata) { - // TODO - return -1; +int compact(int n, int *hst_odata, const int *hst_idata) { + int *dev_idata; + int *dev_odata; + int *dev_bools; + int *dev_indices; + + //The number of blocks + dim3 blocksPerGrid((n + blockSize -1)/blockSize); + + //The number of threads per block + dim3 threadsPerBlock(blockSize); + + //Allocate memory + cudaMalloc((void**)&dev_idata, n*sizeof(int)); + checkCUDAError("Error in malloc of dev_idata"); + + cudaMalloc((void**)&dev_odata, n*sizeof(int)); + checkCUDAError("Error in malloc of dev_odata"); + + cudaMalloc((void**)&dev_bools, n*sizeof(int)); + checkCUDAError("Error in malloc of dev_bools"); + + cudaMalloc((void**)&dev_indices, n*sizeof(int)); + checkCUDAError("Error in malloc of dev_indices"); + + //copy array to device + cpyHostToDevice(hst_idata, dev_idata, n*sizeof(int)); + + Common::kernMapToBoolean<<>>(n, dev_bools, dev_idata); + + int *hst_bools = new int[n]; + int *hst_indices = new int[n]; + + cpyDeviceToHost(hst_bools, dev_bools, (n*sizeof(int))); + + scan(n, hst_indices, hst_bools); + + cpyHostToDevice(hst_indices, dev_indices, n*sizeof(int)); + + Common::kernScatter<<>>(n, dev_odata, dev_idata, dev_bools, dev_indices); + + cpyDeviceToHost(hst_odata, dev_odata, n*sizeof(int)); + + return hst_bools[n-1] == 1 ? hst_indices[n-1]+1 : hst_indices[n-1]; } } diff --git a/stream_compaction/naive.cu b/stream_compaction/naive.cu index 3d86b60..bec18b7 100644 --- a/stream_compaction/naive.cu +++ b/stream_compaction/naive.cu @@ -6,14 +6,62 @@ namespace StreamCompaction { namespace Naive { -// TODO: __global__ +int *dev_idata; +int *dev_odata; + +__global__ void kernNaive(int n, int step, int *odata, int *idata) { + + int index = (blockIdx.x *blockDim.x) + threadIdx.x; + + odata[0] = idata[0]; + if(index < n) { + if(index >= step) { + odata[index] = idata[index - step] + idata[index]; + } + } +} /** * Performs prefix-sum (aka scan) on idata, storing the result into odata. */ -void scan(int n, int *odata, const int *idata) { - // TODO - printf("TODO\n"); +void scan(int n, int *hst_odata, const int *hst_idata) { + + //The number of blocks + dim3 blocksPerGrid((n + blockSize - 1)/blockSize); + + //The number of threads per block + dim3 threadsPerBlock(blockSize); + + //Allocate memory + cudaMalloc((void**)&dev_idata, n*sizeof(int)); + checkCUDAError("Error in malloc of dev_idata"); + + cudaMalloc((void**)&dev_odata, n*sizeof(int)); + checkCUDAError("Error in malloc of dev_odata"); + + //copy array to device + cpyHostToDevice(hst_idata, dev_idata, n*sizeof(int)); + + int passes = ilog2ceil(n); + + cudaEvent_t start, stop; + cudaEventCreate(&start); + cudaEventCreate(&stop); + cudaEventRecord(start); + + for(int d = 0; d < passes; ++d) { + kernNaive<<>>(n, power(2, d), dev_odata, dev_idata); + //cpyDeviceToDevice(dev_odata, dev_idata, n*sizeof(int)); + } + + cudaEventRecord(stop); + cudaEventSynchronize(stop); + float elapsedTime; + cudaEventElapsedTime(&elapsedTime , start, stop); + printf("time is %f ms on the GPU\n", elapsedTime); + + cpyDeviceToHost(hst_odata+1, dev_odata, (n-1)*sizeof(int)); + hst_odata[0] = 0; } } diff --git a/stream_compaction/thrust.cu b/stream_compaction/thrust.cu index d8dbb32..ca405eb 100644 --- a/stream_compaction/thrust.cu +++ b/stream_compaction/thrust.cu @@ -16,6 +16,13 @@ void scan(int n, int *odata, const int *idata) { // TODO use `thrust::exclusive_scan` // example: for device_vectors dv_in and dv_out: // thrust::exclusive_scan(dv_in.begin(), dv_in.end(), dv_out.begin()); + thrust::host_vector hst_in(idata, idata+n); + thrust::device_vector dev_in(hst_in); + thrust::device_vector dev_out(n); + + thrust::exclusive_scan(dev_in.begin(), dev_in.end(), dev_out.begin()); + + thrust::copy(dev_out.begin(), dev_out.end(), odata); } } From 6a7dcdddde20f17b56db5dbf18a030fb5f4f59ad Mon Sep 17 00:00:00 2001 From: nadaOuf Date: Sun, 13 Sep 2015 20:07:13 -0400 Subject: [PATCH 3/5] improved naive scan --- stream_compaction/naive.cu | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/stream_compaction/naive.cu b/stream_compaction/naive.cu index bec18b7..322d579 100644 --- a/stream_compaction/naive.cu +++ b/stream_compaction/naive.cu @@ -17,6 +17,8 @@ __global__ void kernNaive(int n, int step, int *odata, int *idata) { if(index < n) { if(index >= step) { odata[index] = idata[index - step] + idata[index]; + } else { + odata[index] = idata[index]; } } } @@ -49,9 +51,12 @@ void scan(int n, int *hst_odata, const int *hst_idata) { cudaEventCreate(&stop); cudaEventRecord(start); - for(int d = 0; d < passes; ++d) { - kernNaive<<>>(n, power(2, d), dev_odata, dev_idata); - //cpyDeviceToDevice(dev_odata, dev_idata, n*sizeof(int)); + for(int d = 1; d <= passes; ++d) { + if(d%2) { + kernNaive<<>>(n, power(2, d - 1), dev_odata, dev_idata); + } else { + kernNaive<<>>(n, power(2, d - 1), dev_idata, dev_odata); + } } cudaEventRecord(stop); @@ -59,8 +64,8 @@ void scan(int n, int *hst_odata, const int *hst_idata) { float elapsedTime; cudaEventElapsedTime(&elapsedTime , start, stop); printf("time is %f ms on the GPU\n", elapsedTime); - - cpyDeviceToHost(hst_odata+1, dev_odata, (n-1)*sizeof(int)); + + cpyDeviceToHost(hst_odata+1, dev_idata, (n-1)*sizeof(int)); hst_odata[0] = 0; } From 952d3797987ada54ff5ece4a84b49bfaf16008b5 Mon Sep 17 00:00:00 2001 From: nadaOuf Date: Sun, 13 Sep 2015 23:14:48 -0400 Subject: [PATCH 4/5] Readme --- README.md | 214 ++++--------------------------------- images/results.PNG | Bin 0 -> 14562 bytes stream_compaction/common.h | 2 +- stream_compaction/cpu.cu | 11 +- 4 files changed, 24 insertions(+), 203 deletions(-) create mode 100644 images/results.PNG diff --git a/README.md b/README.md index a82ea0f..5e60125 100644 --- a/README.md +++ b/README.md @@ -3,211 +3,41 @@ CUDA Stream Compaction **University of Pennsylvania, CIS 565: GPU Programming and Architecture, Project 2** -* (TODO) YOUR NAME HERE -* Tested on: (TODO) Windows 22, i7-2222 @ 2.22GHz 22GB, GTX 222 222MB (Moore 2222 Lab) +* Nada Ouf +* Tested on: Windows 7, i7-2649M @ 2.80GHz 8GB, GTX 520 1024MB -### (TODO: Your README) +### Performance Analysis -Include analysis, etc. (Remember, this is public, so don't put -anything here that you don't want to share with the world.) +##Timing for different problem size -Instructions (delete me) -======================== +After testing different block sizes for both the naive and work-efficient implementations a block size of 256 achieved the best performance results. +The timing results below are measured using a block size of 256. -This is due Sunday, September 13 at midnight. +![](images/results.PNG) -**Summary:** In this project, you'll implement GPU stream compaction in CUDA, -from scratch. This algorithm is widely used, and will be important for -accelerating your path tracer project. -Your stream compaction implementations in this project will simply remove `0`s -from an array of `int`s. In the path tracer, you will remove terminated paths -from an array of rays. +These are the execution times for naive, work-efficient and thrust GPU implementations. +The vertical axis is a logarithmic scale with base 10 that represents the time in ms. +The horizontal axis is the problem size n. -In addition to being useful for your path tracer, this project is meant to -reorient your algorithmic thinking to the way of the GPU. On GPUs, many -algorithms can benefit from massive parallelism and, in particular, data -parallelism: executing the same code many times simultaneously with different -data. -You'll implement a few different versions of the *Scan* (*Prefix Sum*) -algorithm. First, you'll implement a CPU version of the algorithm to reinforce -your understanding. Then, you'll write a few GPU implementations: "naive" and -"work-efficient." Finally, you'll use some of these to implement GPU stream -compaction. +##Explanation of results -**Algorithm overview & details:** There are two primary references for details -on the implementation of scan and stream compaction. +The naive implementation is better in performance because: +- all branches are outside the kernal functions +- the need to copy results from a temporary array to the device output array was eleminated -* The [slides on Parallel Algorithms](https://github.com/CIS565-Fall-2015/cis565-fall-2015.github.io/raw/master/lectures/2-Parallel-Algorithms.pptx) - for Scan, Stream Compaction, and Work-Efficient Parallel Scan. -* GPU Gems 3, Chapter 39 - [Parallel Prefix Sum (Scan) with CUDA](http://http.developer.nvidia.com/GPUGems3/gpugems3_ch39.html). +In my opinion work-efficient is slower than expected because my implementation includes branches in the kernal function. I want to try and eliminate them. -Your GPU stream compaction implementation will live inside of the -`stream_compaction` subproject. This way, you will be able to easily copy it -over for use in your GPU path tracer. +##Test program output +

+ Test code
+ 
+ Test
+ 
+
-## Part 0: The Usual -This project (and all other CUDA projects in this course) requires an NVIDIA -graphics card with CUDA capability. Any card with Compute Capability 2.0 -(`sm_20`) or greater will work. Check your GPU on this -[compatibility table](https://developer.nvidia.com/cuda-gpus). -If you do not have a personal machine with these specs, you may use those -computers in the Moore 100B/C which have supported GPUs. -**HOWEVER**: If you need to use the lab computer for your development, you will -not presently be able to do GPU performance profiling. This will be very -important for debugging performance bottlenecks in your program. -### Useful existing code - -* `stream_compaction/common.h` - * `checkCUDAError` macro: checks for CUDA errors and exits if there were any. - * `ilog2ceil(x)`: computes the ceiling of log2(x), as an integer. -* `main.cpp` - * Some testing code for your implementations. - - -## Part 1: CPU Scan & Stream Compaction - -This stream compaction method will remove `0`s from an array of `int`s. - -In `stream_compaction/cpu.cu`, implement: - -* `StreamCompaction::CPU::scan`: compute an exclusive prefix sum. -* `StreamCompaction::CPU::compactWithoutScan`: stream compaction without using - the `scan` function. -* `StreamCompaction::CPU::compactWithScan`: stream compaction using the `scan` - function. Map the input array to an array of 0s and 1s, scan it, and use - scatter to produce the output. You will need a **CPU** scatter implementation - for this (see slides or GPU Gems chapter for an explanation). - -These implementations should only be a few lines long. - - -## Part 2: Naive GPU Scan Algorithm - -In `stream_compaction/naive.cu`, implement `StreamCompaction::Naive::scan` - -This uses the "Naive" algorithm from GPU Gems 3, Section 39.2.1. We haven't yet -taught shared memory, and you **shouldn't use it yet**. Example 39-1 uses -shared memory, but is limited to operating on very small arrays! Instead, write -this using global memory only. As a result of this, you will have to do -`ilog2ceil(n)` separate kernel invocations. - -Beware of errors in Example 39-1 in the book; both the pseudocode and the CUDA -code in the online version of Chapter 39 are known to have a few small errors -(in superscripting, missing braces, bad indentation, etc.) - -Since the parallel scan algorithm operates on a binary tree structure, it works -best with arrays with power-of-two length. Make sure your implementation works -on non-power-of-two sized arrays (see `ilog2ceil`). This requires extra memory -- your intermediate array sizes will need to be rounded to the next power of -two. - - -## Part 3: Work-Efficient GPU Scan & Stream Compaction - -### 3.1. Scan - -In `stream_compaction/efficient.cu`, implement -`StreamCompaction::Efficient::scan` - -All of the text in Part 2 applies. - -* This uses the "Work-Efficient" algorithm from GPU Gems 3, Section 39.2.2. -* Beware of errors in Example 39-2. -* Test non-power-of-two sized arrays. - -### 3.2. Stream Compaction - -This stream compaction method will remove `0`s from an array of `int`s. - -In `stream_compaction/efficient.cu`, implement -`StreamCompaction::Efficient::compact` - -For compaction, you will also need to implement the scatter algorithm presented -in the slides and the GPU Gems chapter. - -In `stream_compaction/common.cu`, implement these for use in `compact`: - -* `StreamCompaction::Common::kernMapToBoolean` -* `StreamCompaction::Common::kernScatter` - - -## Part 4: Using Thrust's Implementation - -In `stream_compaction/thrust.cu`, implement: - -* `StreamCompaction::Thrust::scan` - -This should be a very short function which wraps a call to the Thrust library -function `thrust::exclusive_scan(first, last, result)`. - -To measure timing, be sure to exclude memory operations by passing -`exclusive_scan` a `thrust::device_vector` (which is already allocated on the -GPU). You can create a `thrust::device_vector` by creating a -`thrust::host_vector` from the given pointer, then casting it. - - -## Part 5: Radix Sort (Extra Credit) (+10) - -Add an additional module to the `stream_compaction` subproject. Implement radix -sort using one of your scan implementations. Add tests to check its correctness. - - -## Write-up - -1. Update all of the TODOs at the top of this README. -2. Add a description of this project including a list of its features. -3. Add your performance analysis (see below). - -All extra credit features must be documented in your README, explaining its -value (with performance comparison, if applicable!) and showing an example how -it works. For radix sort, show how it is called and an example of its output. - -Always profile with Release mode builds and run without debugging. - -### Questions - -* Roughly optimize the block sizes of each of your implementations for minimal - run time on your GPU. - * (You shouldn't compare unoptimized implementations to each other!) - -* Compare all of these GPU Scan implementations (Naive, Work-Efficient, and - Thrust) to the serial CPU version of Scan. Plot a graph of the comparison - (with array size on the independent axis). - * You should use CUDA events for timing. Be sure **not** to include any - explicit memory operations in your performance measurements, for - comparability. - * To guess at what might be happening inside the Thrust implementation, take - a look at the Nsight timeline for its execution. - -* Write a brief explanation of the phenomena you see here. - * Can you find the performance bottlenecks? Is it memory I/O? Computation? Is - it different for each implementation? - -* Paste the output of the test program into a triple-backtick block in your - README. - * If you add your own tests (e.g. for radix sort or to test additional corner - cases), be sure to mention it explicitly. - -These questions should help guide you in performance analysis on future -assignments, as well. - -## Submit - -If you have modified any of the `CMakeLists.txt` files at all (aside from the -list of `SOURCE_FILES`), you must test that your project can build in Moore -100B/C. Beware of any build issues discussed on the Google Group. - -1. Open a GitHub pull request so that we can see that you have finished. - The title should be "Submission: YOUR NAME". -2. Send an email to the TA (gmail: kainino1+cis565@) with: - * **Subject**: in the form of `[CIS565] Project 2: PENNKEY` - * Direct link to your pull request on GitHub - * In the form of a grade (0-100+) with comments, evaluate your own - performance on the project. - * Feedback on the project itself, if any. diff --git a/images/results.PNG b/images/results.PNG new file mode 100644 index 0000000000000000000000000000000000000000..ed020efa83234b4e33cfe02934fdbd51c05ba622 GIT binary patch literal 14562 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 literal 0 HcmV?d00001 diff --git a/stream_compaction/common.h b/stream_compaction/common.h index 68cf5eb..1f9f5ed 100644 --- a/stream_compaction/common.h +++ b/stream_compaction/common.h @@ -6,7 +6,7 @@ #define FILENAME (strrchr(__FILE__, '/') ? strrchr(__FILE__, '/') + 1 : __FILE__) #define checkCUDAError(msg) checkCUDAErrorFn(msg, FILENAME, __LINE__) -#define blockSize 512 +#define blockSize 256 /** * Check for CUDA errors; print and exit if there was a problem. diff --git a/stream_compaction/cpu.cu b/stream_compaction/cpu.cu index 93793d7..9d7446b 100644 --- a/stream_compaction/cpu.cu +++ b/stream_compaction/cpu.cu @@ -9,22 +9,13 @@ namespace CPU { */ void scan(int n, int *odata, const int *idata) { - cudaEvent_t start, stop; - cudaEventCreate(&start); - cudaEventCreate(&stop); - cudaEventRecord(start); - odata[0] = 0; for(int i = 1; i < n; ++i) { odata[i] = idata[i-1] + odata[i-1]; } - cudaEventRecord(stop); - cudaEventSynchronize(stop); - float elapsedTime; - cudaEventElapsedTime(&elapsedTime , start, stop); - printf("n is %i time is %f ms on the CPU\n",n, elapsedTime); + //printf("n is %i time is %f ms on the CPU\n",n, elapsedTime); } /** From a65ec9a77f3b41ab2b848b6bf6e45c51561e0d33 Mon Sep 17 00:00:00 2001 From: nadaOuf Date: Sun, 13 Sep 2015 23:33:51 -0400 Subject: [PATCH 5/5] Updated Readme --- README.md | 68 ++++++++++++++++++++++++++++++--- images/nsight.png | Bin 0 -> 225682 bytes src/main.cpp | 28 +++++++------- stream_compaction/efficient.cu | 1 + stream_compaction/thrust.cu | 11 ++++++ 5 files changed, 89 insertions(+), 19 deletions(-) create mode 100644 images/nsight.png diff --git a/README.md b/README.md index 5e60125..169f17d 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,12 @@ These are the execution times for naive, work-efficient and thrust GPU implement The vertical axis is a logarithmic scale with base 10 that represents the time in ms. The horizontal axis is the problem size n. +##Nsight analysis + +![](images/nsight.png) + +Comparing the time taken by the thrust library, according to the Nsight analysis some of the function calls have very low occupancy which may be because +it used a lot of registers or a low number of threads per block. ##Explanation of results @@ -27,15 +33,67 @@ The naive implementation is better in performance because: - all branches are outside the kernal functions - the need to copy results from a temporary array to the device output array was eleminated -In my opinion work-efficient is slower than expected because my implementation includes branches in the kernal function. I want to try and eliminate them. +In my opinion work-efficient is slower than expected because my implementation includes branches in while all the loops are outside the kernal functions. +The work-efficient implementation still needs to be optimized. ##Test program output

- Test code
- 
- Test
- 
+****************
+** SCAN TESTS **
+****************
+    [  30  36  43  30  43  27  43  21  31  32  19  22  15 ...  12   0 ]
+==== cpu scan, power-of-two ====
+    [   0  30  66 109 139 182 209 252 273 304 336 355 377 ... 1634700 1634712 ]
+==== cpu scan, non-power-of-two ====
+    [   0  30  66 109 139 182 209 252 273 304 336 355 377 ... 1634589 1634618 ]
+    passed
+==== naive scan, power-of-two ====
+time is 0.886432 ms on the GPU
+    [   0  30  66 109 139 182 209 252 273 304 336 355 377 ... 1634700 1634712 ]
+    passed
+==== naive scan, non-power-of-two ====
+time is 0.896960 ms on the GPU
+    [   0  30  66 109 139 182 209 252 273 304 336 355 377 ...   0   0 ]
+    passed
+==== work-efficient scan, power-of-two ====
+time is 1.020288 ms on the GPU
+    [   0  30  66 109 139 182 209 252 273 304 336 355 377 ... 1634700 1634712 ]
+    passed
+==== work-efficient scan, non-power-of-two ====
+time is 1.020128 ms on the GPU
+    [   0  30  66 109 139 182 209 252 273 304 336 355 377 ... 1634589 1634618 ]
+    passed
+==== thrust scan, power-of-two ====
+time is 3.317376 ms on the GPU
+    [   0  30  66 109 139 182 209 252 273 304 336 355 377 ... 1634700 1634712 ]
+    passed
+==== thrust scan, non-power-of-two ====
+time is 0.444320 ms on the GPU
+    [   0  30  66 109 139 182 209 252 273 304 336 355 377 ... 1634589 1634618 ]
+    passed
+
+*****************************
+** STREAM COMPACTION TESTS **
+*****************************
+    [   2   3   4   3   4   2   4   2   3   3   1   2   1 ...   1   0 ]
+==== cpu compact without scan, power-of-two ====
+    [   2   3   4   3   4   2   4   2   3   3   1   2   1 ...   3   1 ]
+    passed
+==== cpu compact without scan, non-power-of-two ====
+    [   2   3   4   3   4   2   4   2   3   3   1   2   1 ...   2   4 ]
+    passed
+==== cpu compact with scan ====
+    [   2   3   4   3   4   2   4   2   3   3   1   2   1 ...   3   1 ]
+    passed
+==== work-efficient compact, power-of-two ====
+time is 1.023168 ms on the GPU
+    [   2   3   4   3   4   2   4   2   3   3   1   2   1 ...   3   1 ]
+    passed
+==== work-efficient compact, non-power-of-two ====
+time is 1.013376 ms on the GPU
+    [   2   3   4   3   4   2   4   2   3   3   1   2   1 ...   2   4 ]
+    passed 
 
diff --git a/images/nsight.png b/images/nsight.png new file mode 100644 index 0000000000000000000000000000000000000000..06faf4307977e31152aa8380753e0d9eefe48f72 GIT binary patch literal 225682 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

h?j4Ph=o*_r3`3&tNGTmx{9Q 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 1; kernDownSweep<<>>(n, d, offset, dev_idata); diff --git a/stream_compaction/thrust.cu b/stream_compaction/thrust.cu index ca405eb..25934e2 100644 --- a/stream_compaction/thrust.cu +++ b/stream_compaction/thrust.cu @@ -20,7 +20,18 @@ void scan(int n, int *odata, const int *idata) { thrust::device_vector dev_in(hst_in); thrust::device_vector dev_out(n); + cudaEvent_t start, stop; + cudaEventCreate(&start); + cudaEventCreate(&stop); + cudaEventRecord(start); + thrust::exclusive_scan(dev_in.begin(), dev_in.end(), dev_out.begin()); + + cudaEventRecord(stop); + cudaEventSynchronize(stop); + float elapsedTime; + cudaEventElapsedTime(&elapsedTime , start, stop); + printf("time is %f ms on the GPU\n", elapsedTime); thrust::copy(dev_out.begin(), dev_out.end(), odata); }