From 6fba7eb50e9b903a2e3dab2cef465e44785eafe2 Mon Sep 17 00:00:00 2001 From: Gabe Naghi Date: Thu, 15 Sep 2016 20:55:48 -0400 Subject: [PATCH 01/24] CPU implementations --- stream_compaction/CMakeLists.txt | 2 +- stream_compaction/cpu.cu | 58 ++++++++++++++++++++++++++++---- 2 files changed, 53 insertions(+), 7 deletions(-) diff --git a/stream_compaction/CMakeLists.txt b/stream_compaction/CMakeLists.txt index cdbef77..cee1b43 100644 --- a/stream_compaction/CMakeLists.txt +++ b/stream_compaction/CMakeLists.txt @@ -13,5 +13,5 @@ set(SOURCE_FILES cuda_add_library(stream_compaction ${SOURCE_FILES} - OPTIONS -arch=sm_20 + OPTIONS -arch=sm_35 ) diff --git a/stream_compaction/cpu.cu b/stream_compaction/cpu.cu index e600c29..3caf725 100644 --- a/stream_compaction/cpu.cu +++ b/stream_compaction/cpu.cu @@ -8,8 +8,14 @@ namespace CPU { * CPU scan (prefix sum). */ void scan(int n, int *odata, const int *idata) { - // TODO - printf("TODO\n"); + + //exclusive scan: first element of output is 0 + odata[0] = 0; + + for (int i = 0; i < n - 1; ++i) + { + odata[i + 1] = odata[i] + idata[i]; + } } /** @@ -18,8 +24,19 @@ 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 oIndex = 0; + + for (int i = 0; i < n; ++i) + { + if (idata[i]) + { + odata[oIndex] = idata[i]; + ++oIndex; + } + } + + return oIndex; } /** @@ -28,8 +45,37 @@ 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 *temp = new int[n]; + int *scanResult = new int[n]; + // compute the temp array + for (int i = 0; i < n; ++i) + { + if (idata[i]) + temp[i] = 1; + else + temp[i] = 0; + } + + // Run exclusive scan on temp array + scan(n, scanResult, temp); + + // result of scan is index into final array + int oCnt = 0; + for (int i = 0; i < n; ++i) + { + // only write if tmp array has 1 + if (temp[i]) + { + odata[scanResult[i]] = idata[i]; + ++oCnt; + } + } + + delete[] temp; + delete[] scanResult; + + return oCnt; } } From 83bdacc9d6bf32857982566b71fb21211677ce06 Mon Sep 17 00:00:00 2001 From: Gabe Naghi Date: Sun, 18 Sep 2016 15:12:51 -0400 Subject: [PATCH 02/24] initial naive GPU implementation. Untested due to *invalid device function* --- stream_compaction/common.h | 2 ++ stream_compaction/naive.cu | 43 +++++++++++++++++++++++++++++++++++--- 2 files changed, 42 insertions(+), 3 deletions(-) diff --git a/stream_compaction/common.h b/stream_compaction/common.h index 4f52663..e3f2cd0 100644 --- a/stream_compaction/common.h +++ b/stream_compaction/common.h @@ -7,6 +7,8 @@ #define FILENAME (strrchr(__FILE__, '/') ? strrchr(__FILE__, '/') + 1 : __FILE__) #define checkCUDAError(msg) checkCUDAErrorFn(msg, FILENAME, __LINE__) +#define blocksize 128 + /** * Check for CUDA errors; print and exit if there was a problem. */ diff --git a/stream_compaction/naive.cu b/stream_compaction/naive.cu index 3d86b60..3caab2e 100644 --- a/stream_compaction/naive.cu +++ b/stream_compaction/naive.cu @@ -6,14 +6,51 @@ namespace StreamCompaction { namespace Naive { -// TODO: __global__ + __global__ void parallelAdd(int n, int depth, int* odata, int* idata) +{ + int k = (blockIdx.x * blockDim.x) + threadIdx.x; + + if (k >= n || k < (int) powf(2, depth - 1)) + return; + + odata[k] = idata[k - (int)powf(2, depth - 1)] + idata[k]; +} /** * 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"); + + dim3 numBlocks = (n + blocksize - 1) / blocksize; + + int * dev_beforeScan; + int * dev_afterScan; + + cudaMalloc((void **)&dev_beforeScan, n * sizeof(int)); + checkCUDAError("cudaMalloc dev_beforeScan failed!"); + cudaMalloc((void **)&dev_afterScan, n * sizeof(int)); + checkCUDAError("cudaMalloc dev_afterScan failed!"); + + cudaMemcpy(dev_beforeScan, idata, sizeof(int) * n, cudaMemcpyHostToDevice); + checkCUDAError("cudaMemcpy idata to dev_afterScan failed!"); + + //for d = 1 to lg(n) do + for (int depth = 1; depth <= ilog2(n); ++depth) + { + parallelAdd << > >(n, depth, dev_afterScan, dev_beforeScan); + + //ping-pong buffers + int * temp = dev_afterScan; + dev_afterScan = dev_beforeScan; + dev_beforeScan = temp; + } + + //because of ping-ponging, last iteration will be stored in beforeScan + cudaMemcpy(odata, dev_beforeScan, sizeof(int) * n, cudaMemcpyDeviceToHost); + checkCUDAError("cudaMemcpy dev_beforeScan to odata failed!"); + + cudaFree(dev_beforeScan); + cudaFree(dev_afterScan); } } From 0b96d76e3a61b8e06dbd3238a7b144271ec9c2e6 Mon Sep 17 00:00:00 2001 From: GABRIEL NAGHI Date: Mon, 19 Sep 2016 13:00:59 -0400 Subject: [PATCH 03/24] fixed naive implementation --- stream_compaction/naive.cu | 42 +++++++++++++++++++++++++++++++++----- 1 file changed, 37 insertions(+), 5 deletions(-) diff --git a/stream_compaction/naive.cu b/stream_compaction/naive.cu index 3caab2e..08ea0ca 100644 --- a/stream_compaction/naive.cu +++ b/stream_compaction/naive.cu @@ -3,6 +3,20 @@ #include "common.h" #include "naive.h" +#define DEBUG 0 + +void printArray2(int n, int *a, bool abridged = true) { + printf(" [ "); + for (int i = 0; i < n; i++) { + if (abridged && i + 2 == 15 && n > 16) { + i = n - 2; + printf("... "); + } + printf("%3d ", a[i]); + } + printf("]\n"); +} + namespace StreamCompaction { namespace Naive { @@ -10,10 +24,13 @@ namespace Naive { { int k = (blockIdx.x * blockDim.x) + threadIdx.x; - if (k >= n || k < (int) powf(2, depth - 1)) + if (k >= n) return; - odata[k] = idata[k - (int)powf(2, depth - 1)] + idata[k]; + if (k < (int)powf(2, depth - 1)) + odata[k] = idata[k]; + else + odata[k] = idata[k - (int)powf(2, depth - 1)] + idata[k]; } /** @@ -35,10 +52,21 @@ void scan(int n, int *odata, const int *idata) { checkCUDAError("cudaMemcpy idata to dev_afterScan failed!"); //for d = 1 to lg(n) do - for (int depth = 1; depth <= ilog2(n); ++depth) + for (int depth = 1; depth <= ilog2ceil(n); ++depth) { +#if DEBUG + printf("--------------before scan %d-------------------\n", depth); + cudaMemcpy(odata, dev_beforeScan, sizeof(int) * n, cudaMemcpyDeviceToHost); + printArray2(n, odata); +#endif parallelAdd << > >(n, depth, dev_afterScan, dev_beforeScan); - + +#if DEBUG + printf("--------------after scan %d-------------------\n", depth); + cudaMemcpy(odata, dev_afterScan, sizeof(int) * n, cudaMemcpyDeviceToHost); + printArray2(n, odata); + printf("-----------------------------------------------\n", depth); +#endif //ping-pong buffers int * temp = dev_afterScan; dev_afterScan = dev_beforeScan; @@ -46,7 +74,9 @@ void scan(int n, int *odata, const int *idata) { } //because of ping-ponging, last iteration will be stored in beforeScan - cudaMemcpy(odata, dev_beforeScan, sizeof(int) * n, cudaMemcpyDeviceToHost); + //additionally, we need to convert the inclusive scan into an exclusive scan + odata[0] = 0; + cudaMemcpy(&odata[1], dev_beforeScan, sizeof(int) * (n-1), cudaMemcpyDeviceToHost); checkCUDAError("cudaMemcpy dev_beforeScan to odata failed!"); cudaFree(dev_beforeScan); @@ -55,3 +85,5 @@ void scan(int n, int *odata, const int *idata) { } } + + From cd8376dfc27933e81f65729421380ad926463a45 Mon Sep 17 00:00:00 2001 From: GABRIEL NAGHI Date: Tue, 20 Sep 2016 15:18:53 -0400 Subject: [PATCH 04/24] efficient scan working, memset size in bytes --- stream_compaction/efficient.cu | 128 ++++++++++++++++++++++++++++++++- 1 file changed, 125 insertions(+), 3 deletions(-) diff --git a/stream_compaction/efficient.cu b/stream_compaction/efficient.cu index b2f739b..541dbf2 100644 --- a/stream_compaction/efficient.cu +++ b/stream_compaction/efficient.cu @@ -3,17 +3,139 @@ #include "common.h" #include "efficient.h" +#define DEBUG 1 + +void printArray3(int n, int *a, bool abridged = true) { + printf(" [ "); + for (int i = 0; i < n; i++) { + if (abridged && i + 2 == 15 && n > 16) { + i = n - 2; + printf("... "); + } + printf("%3d ", a[i]); + } + printf("]\n"); +} + namespace StreamCompaction { namespace Efficient { -// TODO: __global__ +__global__ void upSweep(int n, int depth, int *data) +{ + int index = (blockIdx.x * blockDim.x) + threadIdx.x; + + if (index >= n) + return; + + int k = index * powf(2, depth + 1) ; + + if ( k >= n ) + return; + + int myIndex = k + powf(2, depth + 1) - 1; + int neighborIndex = k + powf(2, depth) - 1; + + data[myIndex] += data[neighborIndex]; +} + +__global__ void downSweep(int n, int depth, int *data) +{ + int index = (blockIdx.x * blockDim.x) + threadIdx.x; + + if (index >= n) + return; + + int k = index * powf(2, depth + 1); + + if (k >= n) + return; + + // save left child + int leftChildIndex = k + powf(2, depth) - 1; + + int temp = data[leftChildIndex]; + + //set right child to this node's value + int rightChildIndex = k + powf(2, depth + 1) - 1; + data[leftChildIndex] = data[rightChildIndex]; + + // set right child tp old left + this value + data[rightChildIndex] += 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"); + + dim3 numBlocks = (n + blocksize - 1) / blocksize; + int rounded_n = powf(2, ilog2ceil(n)); + int * dev_data; + + cudaMalloc((void **)&dev_data, rounded_n * sizeof(int)); + checkCUDAError("cudaMalloc dev_data failed!"); + + cudaMemcpy(dev_data, idata, sizeof(int) * n, cudaMemcpyHostToDevice); + checkCUDAError("cudaMemcpy idata to dev_data failed!"); + + // Fill in remaining space with zeros. + // Not sure this matters actually matters, so long as the correct + // data range is copied back at the end + cudaMemset(&dev_data[n], 0, sizeof(int) * (rounded_n - n)); + checkCUDAError("cudaMemset dev_data failed!"); + + //up sweep + for (int depth = 0; depth < ilog2ceil(n); ++depth) + { +#if DEBUG + printf("--------------before upsweep %d-------------------\n", depth); + cudaMemcpy(odata, dev_data, sizeof(int) * n, cudaMemcpyDeviceToHost); + printArray3(n, odata); +#endif + upSweep << > >(rounded_n, depth, dev_data); + checkCUDAError("upSweep Kernel failed!"); +#if DEBUG + printf("--------------after upsweep %d-------------------\n", depth); + cudaMemcpy(odata, dev_data, sizeof(int) * n, cudaMemcpyDeviceToHost); + printArray3(n, odata); + printf("-----------------------------------------------\n", depth); +#endif + } + + //down-sweep + cudaMemset(&dev_data[n-1], 0, sizeof(int) * (rounded_n - n + 1)); //pretty questionable +#if DEBUG + int * testZeroes = (int *)malloc(sizeof (int) * rounded_n); + printf("--------------test zeros-------------------\n"); + cudaMemcpy(testZeroes, dev_data, sizeof(int) * rounded_n, cudaMemcpyDeviceToHost); + printArray3(rounded_n, testZeroes, false); + free(testZeroes); +#endif + + printf("whats going on here? rounded_n = %d, n = %d\n", rounded_n, n); + for (int depth = ilog2ceil(n) - 1; depth >= 0; --depth) + { +#if DEBUG + printf("--------------before downsweep %d-------------------\n", depth); + cudaMemcpy(odata, dev_data, sizeof(int) * n, cudaMemcpyDeviceToHost); + printArray3(n, odata); +#endif + downSweep << > >(rounded_n, depth, dev_data); + checkCUDAError("downSweep Kernel failed!"); +#if DEBUG + printf("--------------after downsweep %d-------------------\n", depth); + cudaMemcpy(odata, dev_data, sizeof(int) * n, cudaMemcpyDeviceToHost); + printArray3(n, odata); + printf("-----------------------------------------------\n", depth); +#endif + } + + + //copy back only the relevant data + cudaMemcpy(odata, dev_data, sizeof(int) * n, cudaMemcpyDeviceToHost); + checkCUDAError("cudaMemcpy dev_data to odata failed!"); + } /** From aaa2d14bf8654074cfb0b7f8686ac71ae8f45a18 Mon Sep 17 00:00:00 2001 From: GABRIEL NAGHI Date: Tue, 20 Sep 2016 15:29:29 -0400 Subject: [PATCH 05/24] remove extraneous debugs; --- stream_compaction/efficient.cu | 35 +++------------------------------- stream_compaction/naive.cu | 25 ------------------------ 2 files changed, 3 insertions(+), 57 deletions(-) diff --git a/stream_compaction/efficient.cu b/stream_compaction/efficient.cu index 541dbf2..97f6d81 100644 --- a/stream_compaction/efficient.cu +++ b/stream_compaction/efficient.cu @@ -88,47 +88,18 @@ void scan(int n, int *odata, const int *idata) { //up sweep for (int depth = 0; depth < ilog2ceil(n); ++depth) { -#if DEBUG - printf("--------------before upsweep %d-------------------\n", depth); - cudaMemcpy(odata, dev_data, sizeof(int) * n, cudaMemcpyDeviceToHost); - printArray3(n, odata); -#endif upSweep << > >(rounded_n, depth, dev_data); checkCUDAError("upSweep Kernel failed!"); -#if DEBUG - printf("--------------after upsweep %d-------------------\n", depth); - cudaMemcpy(odata, dev_data, sizeof(int) * n, cudaMemcpyDeviceToHost); - printArray3(n, odata); - printf("-----------------------------------------------\n", depth); -#endif } + // place 0 at end of array + cudaMemset(&dev_data[n-1], 0, sizeof(int) * (rounded_n - n + 1)); + //down-sweep - cudaMemset(&dev_data[n-1], 0, sizeof(int) * (rounded_n - n + 1)); //pretty questionable -#if DEBUG - int * testZeroes = (int *)malloc(sizeof (int) * rounded_n); - printf("--------------test zeros-------------------\n"); - cudaMemcpy(testZeroes, dev_data, sizeof(int) * rounded_n, cudaMemcpyDeviceToHost); - printArray3(rounded_n, testZeroes, false); - free(testZeroes); -#endif - - printf("whats going on here? rounded_n = %d, n = %d\n", rounded_n, n); for (int depth = ilog2ceil(n) - 1; depth >= 0; --depth) { -#if DEBUG - printf("--------------before downsweep %d-------------------\n", depth); - cudaMemcpy(odata, dev_data, sizeof(int) * n, cudaMemcpyDeviceToHost); - printArray3(n, odata); -#endif downSweep << > >(rounded_n, depth, dev_data); checkCUDAError("downSweep Kernel failed!"); -#if DEBUG - printf("--------------after downsweep %d-------------------\n", depth); - cudaMemcpy(odata, dev_data, sizeof(int) * n, cudaMemcpyDeviceToHost); - printArray3(n, odata); - printf("-----------------------------------------------\n", depth); -#endif } diff --git a/stream_compaction/naive.cu b/stream_compaction/naive.cu index 08ea0ca..9741da5 100644 --- a/stream_compaction/naive.cu +++ b/stream_compaction/naive.cu @@ -3,20 +3,6 @@ #include "common.h" #include "naive.h" -#define DEBUG 0 - -void printArray2(int n, int *a, bool abridged = true) { - printf(" [ "); - for (int i = 0; i < n; i++) { - if (abridged && i + 2 == 15 && n > 16) { - i = n - 2; - printf("... "); - } - printf("%3d ", a[i]); - } - printf("]\n"); -} - namespace StreamCompaction { namespace Naive { @@ -54,19 +40,8 @@ void scan(int n, int *odata, const int *idata) { //for d = 1 to lg(n) do for (int depth = 1; depth <= ilog2ceil(n); ++depth) { -#if DEBUG - printf("--------------before scan %d-------------------\n", depth); - cudaMemcpy(odata, dev_beforeScan, sizeof(int) * n, cudaMemcpyDeviceToHost); - printArray2(n, odata); -#endif parallelAdd << > >(n, depth, dev_afterScan, dev_beforeScan); -#if DEBUG - printf("--------------after scan %d-------------------\n", depth); - cudaMemcpy(odata, dev_afterScan, sizeof(int) * n, cudaMemcpyDeviceToHost); - printArray2(n, odata); - printf("-----------------------------------------------\n", depth); -#endif //ping-pong buffers int * temp = dev_afterScan; dev_afterScan = dev_beforeScan; From d6974cdb7093e46a9197a2b3087b56ed15696b4f Mon Sep 17 00:00:00 2001 From: GABRIEL NAGHI Date: Tue, 20 Sep 2016 17:00:21 -0400 Subject: [PATCH 06/24] efficient compaction scatter and maptoboolen implemenations. Working. --- stream_compaction/common.cu | 21 +++++++++-- stream_compaction/efficient.cu | 67 +++++++++++++++++++++++++++++++++- 2 files changed, 82 insertions(+), 6 deletions(-) diff --git a/stream_compaction/common.cu b/stream_compaction/common.cu index fe872d4..dd35ab4 100644 --- a/stream_compaction/common.cu +++ b/stream_compaction/common.cu @@ -22,8 +22,14 @@ namespace Common { * Maps an array to an array of 0s and 1s for stream compaction. Elements * 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 +__global__ void kernMapToBoolean(int n, int *bools, const int *idata) +{ + int index = (blockIdx.x * blockDim.x) + threadIdx.x; + + if (index >= n) + return; + + bools[index] = idata[index] ? 1 : 0; } /** @@ -31,8 +37,15 @@ __global__ void kernMapToBoolean(int n, int *bools, const int *idata) { * if bools[idx] == 1, it copies idata[idx] to odata[indices[idx]]. */ __global__ void kernScatter(int n, int *odata, - const int *idata, const int *bools, const int *indices) { - // TODO + const int *idata, const int *bools, const int *indices) +{ + int index = (blockIdx.x * blockDim.x) + threadIdx.x; + + if (index >= n) + return; + + if (bools[index]) + odata[indices[index]] = idata[index]; } } diff --git a/stream_compaction/efficient.cu b/stream_compaction/efficient.cu index 97f6d81..ea5b2fa 100644 --- a/stream_compaction/efficient.cu +++ b/stream_compaction/efficient.cu @@ -68,6 +68,7 @@ __global__ void downSweep(int n, int depth, int *data) * Performs prefix-sum (aka scan) on idata, storing the result into odata. */ void scan(int n, int *odata, const int *idata) { + /* Safer way to do this would be to use cudaPointerGetAttributes to check if already on device*/ dim3 numBlocks = (n + blocksize - 1) / blocksize; int rounded_n = powf(2, ilog2ceil(n)); @@ -107,8 +108,11 @@ void scan(int n, int *odata, const int *idata) { cudaMemcpy(odata, dev_data, sizeof(int) * n, cudaMemcpyDeviceToHost); checkCUDAError("cudaMemcpy dev_data to odata failed!"); + cudaFree(dev_data); } + + /** * Performs stream compaction on idata, storing the result into odata. * All zeroes are discarded. @@ -119,8 +123,67 @@ void scan(int n, int *odata, const int *idata) { * @returns The number of elements remaining after compaction. */ int compact(int n, int *odata, const int *idata) { - // TODO - return -1; + dim3 numBlocks = (n + blocksize - 1) / blocksize; + + //device pointers + int * dev_idata; + int * dev_odata; + int * dev_bools; + int * dev_indices; + cudaMalloc((void **)&dev_idata, n * sizeof(int)); + checkCUDAError("cudaMalloc dev_idata failed!"); + cudaMalloc((void **)&dev_odata, n * sizeof(int)); + checkCUDAError("cudaMalloc dev_odata failed!"); + cudaMalloc((void **)&dev_bools, n * sizeof(int)); + checkCUDAError("cudaMalloc dev_bools failed!"); + cudaMalloc((void **)&dev_indices, n * sizeof(int)); + checkCUDAError("cudaMalloc dev_indices failed!"); + + //host pointers + int * bools = (int *)malloc(n * sizeof(int)); + int * scanResult = (int *)malloc(n * sizeof(int)); + + //compute temp array of bools + cudaMemcpy(dev_idata, idata, sizeof(int) * n, cudaMemcpyHostToDevice); + checkCUDAError("cudaMemcpy idata to dev_idata failed!"); + Common::kernMapToBoolean << < numBlocks, blocksize >> >(n, dev_bools, dev_idata); + checkCUDAError("kernMapToBoolean failed!"); + cudaMemcpy(bools, dev_bools, sizeof(int) * n, cudaMemcpyDeviceToHost); + checkCUDAError("cudaMemcpy dev_bools to bools failed!"); + + + //run exclusive scan on temp array + scan(n, scanResult, bools); + cudaMemcpy(dev_indices, scanResult, sizeof(int) * n, cudaMemcpyHostToDevice); + checkCUDAError("cudaMemcpy scanResult to dev_indices failed!"); + + //scatter + cudaMemset(dev_odata, 0, n * sizeof(int)); + Common::kernScatter << < numBlocks, blocksize >> >(n, dev_odata, + dev_idata, dev_bools, dev_indices); + + cudaMemcpy(odata, dev_odata, n * sizeof(int), cudaMemcpyDeviceToHost); + checkCUDAError("cudaMemcpy dev_odata to odata failed!"); + + cudaFree(dev_bools); + cudaFree(dev_idata); + cudaFree(dev_odata); + cudaFree(dev_indices); + free(bools); + free(scanResult); + + //count valid blocks. Only nonzero is valid + // This block of code feels really wrong and against the entire spirit of the project + for (int i = 0; i < n; ++i) + { + if (!odata[i]) + return i; + } + + return n; + + + } } From f2bdbc9ad020fada02a260b46b69ad8094e87804 Mon Sep 17 00:00:00 2001 From: GABRIEL NAGHI Date: Tue, 20 Sep 2016 17:04:56 -0400 Subject: [PATCH 07/24] clean up --- stream_compaction/efficient.cu | 24 ++++++------------------ 1 file changed, 6 insertions(+), 18 deletions(-) diff --git a/stream_compaction/efficient.cu b/stream_compaction/efficient.cu index ea5b2fa..b44c22f 100644 --- a/stream_compaction/efficient.cu +++ b/stream_compaction/efficient.cu @@ -3,20 +3,6 @@ #include "common.h" #include "efficient.h" -#define DEBUG 1 - -void printArray3(int n, int *a, bool abridged = true) { - printf(" [ "); - for (int i = 0; i < n; i++) { - if (abridged && i + 2 == 15 && n > 16) { - i = n - 2; - printf("... "); - } - printf("%3d ", a[i]); - } - printf("]\n"); -} - namespace StreamCompaction { namespace Efficient { @@ -84,7 +70,7 @@ void scan(int n, int *odata, const int *idata) { // Not sure this matters actually matters, so long as the correct // data range is copied back at the end cudaMemset(&dev_data[n], 0, sizeof(int) * (rounded_n - n)); - checkCUDAError("cudaMemset dev_data failed!"); + checkCUDAError("cudaMemset dev_data 1 failed!"); //up sweep for (int depth = 0; depth < ilog2ceil(n); ++depth) @@ -95,6 +81,7 @@ void scan(int n, int *odata, const int *idata) { // place 0 at end of array cudaMemset(&dev_data[n-1], 0, sizeof(int) * (rounded_n - n + 1)); + checkCUDAError("cudaMemset dev_data 2 failed!"); //down-sweep for (int depth = ilog2ceil(n) - 1; depth >= 0; --depth) @@ -159,9 +146,12 @@ int compact(int n, int *odata, const int *idata) { //scatter cudaMemset(dev_odata, 0, n * sizeof(int)); + checkCUDAError("cudaMemset dev_odata failed!"); Common::kernScatter << < numBlocks, blocksize >> >(n, dev_odata, dev_idata, dev_bools, dev_indices); + checkCUDAError("kernScatter failed!"); + // copy compacted array to output cudaMemcpy(odata, dev_odata, n * sizeof(int), cudaMemcpyDeviceToHost); checkCUDAError("cudaMemcpy dev_odata to odata failed!"); @@ -172,7 +162,7 @@ int compact(int n, int *odata, const int *idata) { free(bools); free(scanResult); - //count valid blocks. Only nonzero is valid + // count and return # valid blocks. Only nonzero is valid. // This block of code feels really wrong and against the entire spirit of the project for (int i = 0; i < n; ++i) { @@ -182,8 +172,6 @@ int compact(int n, int *odata, const int *idata) { return n; - - } } From 28c9099d2e0ce4084774593053b98463ac76ffe7 Mon Sep 17 00:00:00 2001 From: GABRIEL NAGHI Date: Tue, 20 Sep 2016 17:47:33 -0400 Subject: [PATCH 08/24] thrust implementation done --- stream_compaction/thrust.cu | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/stream_compaction/thrust.cu b/stream_compaction/thrust.cu index d8dbb32..f1d292b 100644 --- a/stream_compaction/thrust.cu +++ b/stream_compaction/thrust.cu @@ -9,13 +9,34 @@ namespace StreamCompaction { namespace Thrust { +/*int *dev_idata;*/ +int *dev_odata; + +thrust::device_vector dev_thrust_idata; +thrust::device_vector dev_thrust_odata; + /** * Performs prefix-sum (aka scan) on idata, storing the result into odata. */ 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()); + /* + cudaMalloc((void**)&dev_idata, n * sizeof(int)); + checkCUDAError("cudaMalloc dev_idata failed!");*/ + cudaMalloc((void**)&dev_odata, n * sizeof(int)); + checkCUDAError("cudaMalloc dev_odata failed!"); + /*cudaMemcpy(dev_idata, idata, n * sizeof(int), cudaMemcpyHostToDevice); + checkCUDAError("cudaMemcpy idata to dev_idata failed!");*/ + + thrust::device_vector dev_thrust_idata(idata, idata + n); + thrust::device_vector dev_thrust_odata(odata, odata + n); + + thrust::exclusive_scan(dev_thrust_idata.begin(), dev_thrust_idata.end(), + dev_thrust_odata.begin()); + + thrust::copy(dev_thrust_odata.begin(), dev_thrust_odata.end(), dev_odata); + + cudaMemcpy(odata, dev_odata, n*sizeof(int), cudaMemcpyDeviceToHost); + checkCUDAError("cudaMemcpy dev_odata to odata failed!"); } } From f44cd7c6b38bdd676ce4a0f14688e9cdecc40697 Mon Sep 17 00:00:00 2001 From: GABRIEL NAGHI Date: Thu, 22 Sep 2016 12:52:14 -0400 Subject: [PATCH 09/24] change scan to accept host or device pointers --- stream_compaction/efficient.cu | 51 ++++++++++++++++++++++------------ 1 file changed, 34 insertions(+), 17 deletions(-) diff --git a/stream_compaction/efficient.cu b/stream_compaction/efficient.cu index b44c22f..c58a7b7 100644 --- a/stream_compaction/efficient.cu +++ b/stream_compaction/efficient.cu @@ -58,13 +58,27 @@ void scan(int n, int *odata, const int *idata) { dim3 numBlocks = (n + blocksize - 1) / blocksize; int rounded_n = powf(2, ilog2ceil(n)); + int * dev_data; - cudaMalloc((void **)&dev_data, rounded_n * sizeof(int)); checkCUDAError("cudaMalloc dev_data failed!"); - cudaMemcpy(dev_data, idata, sizeof(int) * n, cudaMemcpyHostToDevice); - checkCUDAError("cudaMemcpy idata to dev_data failed!"); + cudaPointerAttributes attr; + cudaPointerGetAttributes(&attr, idata); + checkCUDAError("cudaPointerGetAttributes idata failed!"); + + if (attr.memoryType == cudaMemoryTypeHost) + { + //copy local data to device + cudaMemcpy((void*) dev_data, idata, sizeof(int) * n, cudaMemcpyHostToDevice); + checkCUDAError("cudaMemcpy idata to dev_data (host) failed!"); + } + else + { + //copy local data to device + cudaMemcpy((void*)dev_data, idata, sizeof(int) * n, cudaMemcpyDeviceToDevice); + checkCUDAError("cudaMemcpy idata to dev_data (device) failed!"); + } // Fill in remaining space with zeros. // Not sure this matters actually matters, so long as the correct @@ -90,10 +104,18 @@ void scan(int n, int *odata, const int *idata) { checkCUDAError("downSweep Kernel failed!"); } - - //copy back only the relevant data - cudaMemcpy(odata, dev_data, sizeof(int) * n, cudaMemcpyDeviceToHost); - checkCUDAError("cudaMemcpy dev_data to odata failed!"); + cudaPointerGetAttributes(&attr, odata); + checkCUDAError("cudaPointerGetAttributes odata failed!"); + if (attr.memoryType == cudaMemoryTypeHost) + { + cudaMemcpy(odata, dev_data, sizeof(int) * n, cudaMemcpyDeviceToHost); + checkCUDAError("cudaMemcpy dev_data to odata (host) failed!"); + } + else + { + cudaMemcpy(odata, dev_data, sizeof(int) * n, cudaMemcpyDeviceToDevice); + checkCUDAError("cudaMemcpy dev_data to odata (device) failed!"); + } cudaFree(dev_data); } @@ -154,7 +176,9 @@ int compact(int n, int *odata, const int *idata) { // copy compacted array to output cudaMemcpy(odata, dev_odata, n * sizeof(int), cudaMemcpyDeviceToHost); checkCUDAError("cudaMemcpy dev_odata to odata failed!"); - + + int cnt = scanResult[n-1]; + cudaFree(dev_bools); cudaFree(dev_idata); cudaFree(dev_odata); @@ -162,15 +186,8 @@ int compact(int n, int *odata, const int *idata) { free(bools); free(scanResult); - // count and return # valid blocks. Only nonzero is valid. - // This block of code feels really wrong and against the entire spirit of the project - for (int i = 0; i < n; ++i) - { - if (!odata[i]) - return i; - } - - return n; + // return # valid blocks + return cnt; } From eeb54ed4df64a397350ceaced337ee570b5e8a65 Mon Sep 17 00:00:00 2001 From: GABRIEL NAGHI Date: Thu, 22 Sep 2016 12:54:32 -0400 Subject: [PATCH 10/24] remove feature - scan accept host or device pointers. must use cudaMallocHost in order for it to work --- stream_compaction/efficient.cu | 36 +++++++--------------------------- 1 file changed, 7 insertions(+), 29 deletions(-) diff --git a/stream_compaction/efficient.cu b/stream_compaction/efficient.cu index c58a7b7..b0a9bf8 100644 --- a/stream_compaction/efficient.cu +++ b/stream_compaction/efficient.cu @@ -58,27 +58,13 @@ void scan(int n, int *odata, const int *idata) { dim3 numBlocks = (n + blocksize - 1) / blocksize; int rounded_n = powf(2, ilog2ceil(n)); - int * dev_data; + cudaMalloc((void **)&dev_data, rounded_n * sizeof(int)); checkCUDAError("cudaMalloc dev_data failed!"); - cudaPointerAttributes attr; - cudaPointerGetAttributes(&attr, idata); - checkCUDAError("cudaPointerGetAttributes idata failed!"); - - if (attr.memoryType == cudaMemoryTypeHost) - { - //copy local data to device - cudaMemcpy((void*) dev_data, idata, sizeof(int) * n, cudaMemcpyHostToDevice); - checkCUDAError("cudaMemcpy idata to dev_data (host) failed!"); - } - else - { - //copy local data to device - cudaMemcpy((void*)dev_data, idata, sizeof(int) * n, cudaMemcpyDeviceToDevice); - checkCUDAError("cudaMemcpy idata to dev_data (device) failed!"); - } + cudaMemcpy(dev_data, idata, sizeof(int) * n, cudaMemcpyHostToDevice); + checkCUDAError("cudaMemcpy idata to dev_data failed!"); // Fill in remaining space with zeros. // Not sure this matters actually matters, so long as the correct @@ -104,18 +90,10 @@ void scan(int n, int *odata, const int *idata) { checkCUDAError("downSweep Kernel failed!"); } - cudaPointerGetAttributes(&attr, odata); - checkCUDAError("cudaPointerGetAttributes odata failed!"); - if (attr.memoryType == cudaMemoryTypeHost) - { - cudaMemcpy(odata, dev_data, sizeof(int) * n, cudaMemcpyDeviceToHost); - checkCUDAError("cudaMemcpy dev_data to odata (host) failed!"); - } - else - { - cudaMemcpy(odata, dev_data, sizeof(int) * n, cudaMemcpyDeviceToDevice); - checkCUDAError("cudaMemcpy dev_data to odata (device) failed!"); - } + + //copy back only the relevant data + cudaMemcpy(odata, dev_data, sizeof(int) * n, cudaMemcpyDeviceToHost); + checkCUDAError("cudaMemcpy dev_data to odata failed!"); cudaFree(dev_data); } From f2595fbb221944c185ad7e0740561e08f3893ace Mon Sep 17 00:00:00 2001 From: GABRIEL NAGHI Date: Fri, 23 Sep 2016 12:55:59 -0400 Subject: [PATCH 11/24] started documentation --- README.md | 39 ++++++++++++++++++++++++++++++++++----- 1 file changed, 34 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index b71c458..8631192 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,42 @@ CUDA Stream Compaction ====================== +***PAGE UNDER CONSTRUCTION*** + **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) +* Gabriel Naghi +* Tested on: Windows 7, i7-6700 @ 3.70GHz 16GB, Quadro K620 222MB (Moore 100C Lab) + +## Overview + +In this project, I implemented three Stream Compation algorithms. + +Stream compaction is the process of compressing a list of elements, removing any elements +which don't match some criteria and replacing the "good" elements in their original ordering. +This algorithm will be useful in the future when dong ray-racing, where once rays have escaped +the scene, we no longer need to process them and thus wish to elmiate them from our list. + +While this process is easily done in an iteraive fashion, we can also employ some parallel algorithms +to compute the compacted array more quickly. These parallel algorithms require that first a temporary boolean +mapping of the list must be created, which then undergoes an "exclusive scan". It is here that we can divide +our algorithms into naive and efficientimplementations. For comparison's sake, the scan method was also +employed in a CPU implementation. + +For the purposes of our implementation, the criteria for inclusion in the output list in non-zero value. + +### CPU Implementation + +The CPU implementation simply iterates through each index in the array and places it at the end of a +list if it meets the criteria. This is equivalent to the python dictionary comprehension one-liner: + +output_list = [ elt for elt in input_list if elt != 0 ] + + + +### Naive Parallel Implementation -### (TODO: Your README) +### Efficient Parallel Implementation -Include analysis, etc. (Remember, this is public, so don't put -anything here that you don't want to share with the world.) +## Performance Analysis \ No newline at end of file From 97454f1dd4b5b619fc235f3c07be69c84a08e151 Mon Sep 17 00:00:00 2001 From: Gabe Naghi Date: Mon, 26 Sep 2016 23:53:54 -0400 Subject: [PATCH 12/24] fix element count bug --- stream_compaction/efficient.cu | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stream_compaction/efficient.cu b/stream_compaction/efficient.cu index b0a9bf8..776803b 100644 --- a/stream_compaction/efficient.cu +++ b/stream_compaction/efficient.cu @@ -155,7 +155,7 @@ int compact(int n, int *odata, const int *idata) { cudaMemcpy(odata, dev_odata, n * sizeof(int), cudaMemcpyDeviceToHost); checkCUDAError("cudaMemcpy dev_odata to odata failed!"); - int cnt = scanResult[n-1]; + int cnt = bools[n-1] ? scanResult[n-1] + 1 : scanResult[n-1]; cudaFree(dev_bools); cudaFree(dev_idata); From 8a5284db292fb781382c9440006372df3a63d3df Mon Sep 17 00:00:00 2001 From: Gabriel Naghi Date: Tue, 27 Sep 2016 17:31:22 -0400 Subject: [PATCH 13/24] add performance graphs --- images/efficient_blocksize.png | Bin 0 -> 76592 bytes images/naive_blocksize.png | Bin 0 -> 74540 bytes images/scan_times.png | Bin 0 -> 153489 bytes 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 images/efficient_blocksize.png create mode 100644 images/naive_blocksize.png create mode 100644 images/scan_times.png diff --git a/images/efficient_blocksize.png b/images/efficient_blocksize.png new file mode 100644 index 0000000000000000000000000000000000000000..0bfdec4180636a7f87ab71c7538666b533139adb GIT binary patch literal 76592 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

e*6I&v=pDaN=O7N^L? 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­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 F{|5$cA29#` literal 0 HcmV?d00001 From be99658f7d787d7298ff4e5ccd66d9f819857900 Mon Sep 17 00:00:00 2001 From: gabenaghi Date: Tue, 27 Sep 2016 20:31:41 -0400 Subject: [PATCH 14/24] add cpu description --- README.md | 33 ++++++++++++++++++++++++--------- 1 file changed, 24 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 8631192..25a6318 100644 --- a/README.md +++ b/README.md @@ -14,23 +14,36 @@ In this project, I implemented three Stream Compation algorithms. Stream compaction is the process of compressing a list of elements, removing any elements which don't match some criteria and replacing the "good" elements in their original ordering. -This algorithm will be useful in the future when dong ray-racing, where once rays have escaped +This algorithm will be useful in the future when dong ray-tracing, where once rays have escaped the scene, we no longer need to process them and thus wish to elmiate them from our list. -While this process is easily done in an iteraive fashion, we can also employ some parallel algorithms +This is equivalent to the python dictionary comprehension one-liner: + +output_list = [ elt for elt in input_list if elt != 0 ] + +While this process is easily done in an iterative fashion, we can also employ some parallel algorithms to compute the compacted array more quickly. These parallel algorithms require that first a temporary boolean -mapping of the list must be created, which then undergoes an "exclusive scan". It is here that we can divide -our algorithms into naive and efficientimplementations. For comparison's sake, the scan method was also -employed in a CPU implementation. +mapping of the list must be created, which then undergoes an "exclusive scan". + +A "scan" is an operation that creates and ouput list such that for each index an input list, the output list +contains the sums of all elements preceeding it in the input list. The term "exclusive" means that the first +element of the output array is always 0, and thus the last element of the input array is excluded. This contrasts +with an "inclusive" scan, which begins with the first element of the input array. + +It is here that we can divide our algorithms into naive and efficientimplementations. For comparison's sake, +the scan method was also implemented as a CPU function. For the purposes of our implementation, the criteria for inclusion in the output list in non-zero value. ### CPU Implementation -The CPU implementation simply iterates through each index in the array and places it at the end of a -list if it meets the criteria. This is equivalent to the python dictionary comprehension one-liner: +The CPU implementation functions in the most straightforward way possible. At each index, it simply adds the value at that index plus the preceeding calculated value, much like a fibbonacci sequence. + +The only optimization I was able to make here was that, instead of re-summing all input elements 0 through j-1 to compute +element j, I simply add input element j-1 to output element j-2. We will see later in performace analysis, however, that +optimizations are inherit to the CPU implementation due to hardware features such as memory cacheing. + -output_list = [ elt for elt in input_list if elt != 0 ] @@ -39,4 +52,6 @@ output_list = [ elt for elt in input_list if elt != 0 ] ### Efficient Parallel Implementation -## Performance Analysis \ No newline at end of file +## Performance Analysis + +***PICTORAL DEPICTIONS OF ALGORITHMS DRAWN FROM CIS565 LECTURE NOTES*** From 3a761fb2c964040f730c09c579c9a85b100357b2 Mon Sep 17 00:00:00 2001 From: Gabriel Naghi Date: Tue, 27 Sep 2016 20:39:02 -0400 Subject: [PATCH 15/24] add some pictures --- README.md | 16 +++++++++++----- images/stream_compaction.jpg | Bin 0 -> 24774 bytes 2 files changed, 11 insertions(+), 5 deletions(-) create mode 100644 images/stream_compaction.jpg diff --git a/README.md b/README.md index 25a6318..417928d 100644 --- a/README.md +++ b/README.md @@ -17,10 +17,16 @@ which don't match some criteria and replacing the "good" elements in their origi This algorithm will be useful in the future when dong ray-tracing, where once rays have escaped the scene, we no longer need to process them and thus wish to elmiate them from our list. +![Source: Nvidia GPU Gems 3](images/stream_compaction.jpg) + This is equivalent to the python dictionary comprehension one-liner: +~~~ + output_list = [ elt for elt in input_list if elt != 0 ] +~~~ + While this process is easily done in an iterative fashion, we can also employ some parallel algorithms to compute the compacted array more quickly. These parallel algorithms require that first a temporary boolean mapping of the list must be created, which then undergoes an "exclusive scan". @@ -41,17 +47,17 @@ The CPU implementation functions in the most straightforward way possible. At ea The only optimization I was able to make here was that, instead of re-summing all input elements 0 through j-1 to compute element j, I simply add input element j-1 to output element j-2. We will see later in performace analysis, however, that -optimizations are inherit to the CPU implementation due to hardware features such as memory cacheing. - - - +optimizations are inherit to the CPU implementation due to hardware features such as memory caching. ### Naive Parallel Implementation +![](images/naive_blocksize.png) + ### Efficient Parallel Implementation +![](images/efficient_blocksize.png) ## Performance Analysis -***PICTORAL DEPICTIONS OF ALGORITHMS DRAWN FROM CIS565 LECTURE NOTES*** +![](images/scan_times.png) diff --git a/images/stream_compaction.jpg b/images/stream_compaction.jpg new file mode 100644 index 0000000000000000000000000000000000000000..726a7dfc1340691ec0dc74555ff455db4130a511 GIT binary patch literal 24774 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 Date: Tue, 27 Sep 2016 20:43:01 -0400 Subject: [PATCH 16/24] add scan image --- README.md | 4 +++- images/scan.tiff | Bin 0 -> 18694 bytes 2 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 images/scan.tiff diff --git a/README.md b/README.md index 417928d..805f235 100644 --- a/README.md +++ b/README.md @@ -31,11 +31,13 @@ While this process is easily done in an iterative fashion, we can also employ so to compute the compacted array more quickly. These parallel algorithms require that first a temporary boolean mapping of the list must be created, which then undergoes an "exclusive scan". -A "scan" is an operation that creates and ouput list such that for each index an input list, the output list +A "scan" (depicted below) is an operation that creates and ouput list such that for each index an input list, the output list contains the sums of all elements preceeding it in the input list. The term "exclusive" means that the first element of the output array is always 0, and thus the last element of the input array is excluded. This contrasts with an "inclusive" scan, which begins with the first element of the input array. +![](images/scan.tiff) + It is here that we can divide our algorithms into naive and efficientimplementations. For comparison's sake, the scan method was also implemented as a CPU function. diff --git a/images/scan.tiff b/images/scan.tiff new file mode 100644 index 0000000000000000000000000000000000000000..69d43388783f9cb335376a88e2cb7e86b8e959da GIT binary patch literal 18694 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 Date: Tue, 27 Sep 2016 20:47:16 -0400 Subject: [PATCH 17/24] algo pics --- README.md | 6 ++++++ images/efficient_parallel_downsweep.tiff | Bin 0 -> 43838 bytes images/efficient_parallel_upsweep.tiff | Bin 0 -> 42112 bytes images/naive_parallel.tiff | Bin 0 -> 39454 bytes 4 files changed, 6 insertions(+) create mode 100644 images/efficient_parallel_downsweep.tiff create mode 100644 images/efficient_parallel_upsweep.tiff create mode 100644 images/naive_parallel.tiff diff --git a/README.md b/README.md index 805f235..3a04a1e 100644 --- a/README.md +++ b/README.md @@ -54,10 +54,16 @@ optimizations are inherit to the CPU implementation due to hardware features suc ### Naive Parallel Implementation +![](images/naive_parallel.tiff) + ![](images/naive_blocksize.png) ### Efficient Parallel Implementation +![](images/efficient_parallel_upsweep.tiff) + +![](images/efficient_parallel_downsweep.tiff) + ![](images/efficient_blocksize.png) ## Performance Analysis diff --git a/images/efficient_parallel_downsweep.tiff b/images/efficient_parallel_downsweep.tiff new file mode 100644 index 0000000000000000000000000000000000000000..f86ca3c46eb71f4fe3037be1838740f134d6cad4 GIT binary patch literal 43838 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

R`@O?|$3=g^D1{Mo=eHy_9mL$SI)pZoq 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�kp$50t4G2Vl}krL|Kn73y9~kq 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


=LYPAn398FV_vSd|XA_|f?!;O;sEN-g@x5{v? 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

rN`8NuK;z1EnN+^AlCCU{=Munr|QCX-WR3)ko z)rlHLO`{m7uV?~V7_ETTLtCLe&;jUJbPBoveI8wl?m~~EXV9w{42B;ggVDxVVs>Bx zG5auCm=erYOdDnp^AfYd!oniRqQGLvV$b5s62+3ja+0N*rIlrfWrk%9i^qy#)vy*= zPb?jK2wQ-?h`o&+!oI<-<2Z3rI6a&_&JVW-my4^wHQ@$uGq`nDE>;;;0y6J_#XT;{%{n!t(7qi!~53w(D;5ei>OgOwb_Hq<(+~64C zSm4BQN^_cW`f|o|7IQXoj&rVX@o=ef*>i<(WpQ2Py2mxk&B86sZO-k-oy2{X`wsU@ z9wd(hk0}qC=P*wNPZ!S&FNRl!*NQigHF zKbSw4|2qE||ECQi8%#D(Hl%O3vSDb$M}dt3#sU<941ucxqXM4WL4rpF>jj?* zp@igx9EDi^?w7nI`B(}kr6Wa^Iw939^-)?z+Fd$Tx?Xx# zMnJ|&X0Oa8nMqlK>=xN@*>c$tIgFf+T##Ie+(UVUyrw)=zF2-h0imF!KvO7D7*s?n z>MGI|%N56!*py6^Vw5f^O)K*&+bADWu2){%EVL4%@kT4O?!N7Gg_RkK6$iaUEVA2c0aP9$mEVR^5ZTExLc}Y3W7jUDtcBucRNOe^GzdK*oS#P+{=WaFe00 z;TgjzBcc(>sLW_;i})7bE#+HY7)u!Y8J{^76ZEcol%k7p&EXS=xtjJbXRt#%x>jT!E z+u61|Z!g;Z!baXE!luaO zb=vRL?abrs<9yM1)n%(ouFDfwS=VUS4mS=rFSjbUkM3sfN8P79HhUcKc(6lg2W>}# zCyS?>=XuYSo#s39cg}cedZl=c?ULCQx9gs_kaw{6EgudaU!NN!G|8QGk@VTu-nZO$ zWw+JtQ@a^tQ}PM&yq~e(albi=A>}CLjlZG)QUBQh!+>J}bJQ)=0_pA4Iu{Ywl;^=X`d*t_|?|HM=V(+zT=?8!K8yT3EL7X6Im0368jFR96EYv`LO%prX-Q1grt|r+mbJ(u%|?% zjHl|SmZqW7XlecF>ggxbzh?Ml+|N|WEXe$vMb5gPt(sk!{Vm5or$1LK_jDd6kDfPn zWXqAtqg+S#9({St_E_C<;_-~*%lSU}_X;!$N>8w!h(0k@Xj9m5Qu1Wp$lvr4Z0()+)Ic{(U<0`y{aExHoM$#Md`|!tNd3pYd}qO&D(3F zYh%~9U+=h~bK}ZQshg*2d1^E2pt?PEjCyMQRKt#j!A9%Gjwb!4+GgeE3oYU;#kcrw z<=$q!opk$K>)zItwy?H^_JH=69X=gT?s(i8>2&Pu@7mtgbJybTooE0L4FP^+4 zznp&+`Remb(rd!&f;VDss%F(@Tjnh09=_fAc4j_oetjY39oM^4i?WM1-y6U0Wq2@V zmLitE{gw4W@WX{=jpdFNhm~imA*<^jGu8yxD*x8`yZe*-r#I`dpIJT^ev$jq^mY5! K$!{UwzWoD30HOr| literal 0 HcmV?d00001 From ec84932617cc70143012ff93d063506b87221373 Mon Sep 17 00:00:00 2001 From: Gabriel Naghi Date: Tue, 27 Sep 2016 21:08:50 -0400 Subject: [PATCH 18/24] more readme --- README.md | 8 ++++++++ images/efficient_parallel_upsweep.tiff | Bin 42112 -> 26968 bytes 2 files changed, 8 insertions(+) diff --git a/README.md b/README.md index 3a04a1e..95585f3 100644 --- a/README.md +++ b/README.md @@ -56,8 +56,16 @@ optimizations are inherit to the CPU implementation due to hardware features suc ![](images/naive_parallel.tiff) +As depicted above, the Naive parallel implmentation computes several pairwise adds for each level in 0 to lg n. + +While this limits the number of parallel loops that need to be launched, this algorithm is not considered "work efficient" since the number of additions that must be computed is O(n lgn). + +I optimized this implementation be launching a scan of an array of length 2^15 using different thread counts. The results are depicted below. In this graph and those later, Po2 stands for Power of Two. + ![](images/naive_blocksize.png) +This graph shows that a 256 blocksize has the lowest average runtime, so this is the value I selected for the final analysis. + ### Efficient Parallel Implementation ![](images/efficient_parallel_upsweep.tiff) diff --git a/images/efficient_parallel_upsweep.tiff b/images/efficient_parallel_upsweep.tiff index 0e35a57be6166bd4a235ddf38adfd1499d09360c..0675f228ad745709f8a866d3cc7bf252974c5f5c 100644 GIT binary patch delta 23736 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 Sx&yg8&~_vHC#qyS*8c;c5A10G delta 38815 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 From 2e0731eaa4008ab8905c09b4054f02cc5adef4c8 Mon Sep 17 00:00:00 2001 From: Gabriel Naghi Date: Tue, 27 Sep 2016 21:21:46 -0400 Subject: [PATCH 19/24] README --- README.md | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 95585f3..6895183 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,7 @@ output_list = [ elt for elt in input_list if elt != 0 ] While this process is easily done in an iterative fashion, we can also employ some parallel algorithms to compute the compacted array more quickly. These parallel algorithms require that first a temporary boolean -mapping of the list must be created, which then undergoes an "exclusive scan". +mapping of the list must be created, which then undergoes an "exclusive scan". The result of the scan the represents the indices of elements in the output array, which occurs in a simple operation called "scatter." A "scan" (depicted below) is an operation that creates and ouput list such that for each index an input list, the output list contains the sums of all elements preceeding it in the input list. The term "exclusive" means that the first @@ -68,10 +68,20 @@ This graph shows that a 256 blocksize has the lowest average runtime, so this is ### Efficient Parallel Implementation +The work-efficient scan implementation can be split into two pieces. + +The first part, depicted below, is the "upsweep." Here, by using a binary tree representation of the array, we compute several intermidate vlaues at each leve + ![](images/efficient_parallel_upsweep.tiff) +Next, we carry out a "downsweep," which swaps some values and accumalates value in necessary locations in the array. + ![](images/efficient_parallel_downsweep.tiff) +All in all, this algorithm does O(n) adds on the upsweep and O(n) adds on the downsweep, which together is stil O(n). + +As I did with the naive implementation, I optimized the thread count per block in the efficient implementation. The test results below indicate that the shortest average runtime occurs at 512 threads per block. + ![](images/efficient_blocksize.png) ## Performance Analysis From a43abb966da2945dc2af231d2060069563943883 Mon Sep 17 00:00:00 2001 From: Gabriel Naghi Date: Tue, 27 Sep 2016 22:00:10 -0400 Subject: [PATCH 20/24] README --- README.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/README.md b/README.md index 6895183..bd56639 100644 --- a/README.md +++ b/README.md @@ -84,6 +84,23 @@ As I did with the naive implementation, I optimized the thread count per block i ![](images/efficient_blocksize.png) +### Thrust Implementation + +Since we don't have the Thrust source code, its really quite hard to tell what precisely it is doing. However, the kernels which are repeated called are: +1. Accumulate Tiles (memcopy?) +2. Exclusive Scan +3. Downsweep. This seems to take elemensts from a couple different algorithms we've seen. I would not be suprised if there is some hybrid algorithm implemented by Thrust. + ## Performance Analysis +Interstingly enough, the CPU implementation completely blew all other implementations out of the water. Indeed, at the lower array sizes, I could hardly get a timing since the algorithm would complete execution before a they system clock would even tick. + +As I alluded to earlier, I think much of the credit here is due to CPU caching. All the memory locations with which we need do deal are both temporally and spatially local, so each index in the array likely needs only a couple instructions to complete, and likely no disk waits. In fact, if the compiler is smart enough, it might even be holding the values we need in registers. Given a Hyperthredded Quad Core CPU running at 3.7 GHz, an array of length 2^15 would finish in quite close to no time at all- which is what we see here. ![](images/scan_times.png) + +On the other hand, we see our parallel algorthms lagging behind quite a biut. Nvidia's Thrust implementation is seen working quite well,but only for arrays of size not-power-of-two. Very strage. + +Additionally, our naive implementation is seen crushing our work efficient implementation. I believe this is because the bottleneck here is memory access, which the work efficient implementation does rather a lot of (especially in the add/swap downsweep.) In general, I question how valuable "saving work" is on a GPU, particularly addition, since the devices are so heavily optimized for arithmetic. + +## Test Suite Output + From b3d01aa73f26b40bcfdc6a3a62dba091fefc0d84 Mon Sep 17 00:00:00 2001 From: Gabe Naghi Date: Tue, 27 Sep 2016 22:10:21 -0400 Subject: [PATCH 21/24] sources and test output --- README.md | 53 +++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 47 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index bd56639..86df8f2 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ which don't match some criteria and replacing the "good" elements in their origi This algorithm will be useful in the future when dong ray-tracing, where once rays have escaped the scene, we no longer need to process them and thus wish to elmiate them from our list. -![Source: Nvidia GPU Gems 3](images/stream_compaction.jpg) +![](images/stream_compaction.jpg)*Source: Nvidia GPU Gems 3* This is equivalent to the python dictionary comprehension one-liner: @@ -36,7 +36,7 @@ contains the sums of all elements preceeding it in the input list. The term "exc element of the output array is always 0, and thus the last element of the input array is excluded. This contrasts with an "inclusive" scan, which begins with the first element of the input array. -![](images/scan.tiff) +![](images/scan.tiff)*Source: CIS565 Lecture Slides* It is here that we can divide our algorithms into naive and efficientimplementations. For comparison's sake, the scan method was also implemented as a CPU function. @@ -54,7 +54,7 @@ optimizations are inherit to the CPU implementation due to hardware features suc ### Naive Parallel Implementation -![](images/naive_parallel.tiff) +![](images/naive_parallel.tiff)*Source: CIS565 Lecture Slides* As depicted above, the Naive parallel implmentation computes several pairwise adds for each level in 0 to lg n. @@ -72,11 +72,11 @@ The work-efficient scan implementation can be split into two pieces. The first part, depicted below, is the "upsweep." Here, by using a binary tree representation of the array, we compute several intermidate vlaues at each leve -![](images/efficient_parallel_upsweep.tiff) +![](images/efficient_parallel_upsweep.tiff)*Source: CIS565 Lecture Slides* Next, we carry out a "downsweep," which swaps some values and accumalates value in necessary locations in the array. -![](images/efficient_parallel_downsweep.tiff) +![](images/efficient_parallel_downsweep.tiff)*Source: CIS565 Lecture Slides* All in all, this algorithm does O(n) adds on the upsweep and O(n) adds on the downsweep, which together is stil O(n). @@ -103,4 +103,45 @@ On the other hand, we see our parallel algorthms lagging behind quite a biut. Nv Additionally, our naive implementation is seen crushing our work efficient implementation. I believe this is because the bottleneck here is memory access, which the work efficient implementation does rather a lot of (especially in the add/swap downsweep.) In general, I question how valuable "saving work" is on a GPU, particularly addition, since the devices are so heavily optimized for arithmetic. ## Test Suite Output - +```$ ./cis565_stream_compaction_test.exe + +**************** +** SCAN TESTS ** +**************** + [ 38 19 38 37 5 47 15 35 0 12 3 0 42 ... 7 0 ] +==== cpu scan, power-of-two ==== + [ 0 38 57 95 132 137 184 199 234 234 246 249 249 ... 803684 803691 ] +==== cpu scan, non-power-of-two ==== + [ 0 38 57 95 132 137 184 199 234 234 246 249 249 ... 803630 803660 ] + passed +==== naive scan, power-of-two ==== + passed +==== naive scan, non-power-of-two ==== + passed +==== work-efficient scan, power-of-two ==== + passed +==== work-efficient scan, non-power-of-two ==== + passed +==== thrust scan, power-of-two ==== + passed +==== thrust scan, non-power-of-two ==== + passed + +***************************** +** STREAM COMPACTION TESTS ** +***************************** + [ 2 3 2 1 3 1 1 1 2 0 1 0 2 ... 3 0 ] +==== cpu compact without scan, power-of-two ==== + [ 2 3 2 1 3 1 1 1 2 1 2 1 1 ... 2 3 ] + passed +==== cpu compact without scan, non-power-of-two ==== + [ 2 3 2 1 3 1 1 1 2 1 2 1 1 ... 2 2 ] + passed +==== cpu compact with scan ==== + [ 2 3 2 1 3 1 1 1 2 1 2 1 1 ... 2 3 ] + passed +==== work-efficient compact, power-of-two ==== + passed +==== work-efficient compact, non-power-of-two ==== + passed +``` From 9886d1cf1dc86ed09c207bc75ea9457ff8842587 Mon Sep 17 00:00:00 2001 From: gabenaghi Date: Tue, 27 Sep 2016 22:17:02 -0400 Subject: [PATCH 22/24] fix some formatting --- README.md | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 86df8f2..fd289b8 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,9 @@ which don't match some criteria and replacing the "good" elements in their origi This algorithm will be useful in the future when dong ray-tracing, where once rays have escaped the scene, we no longer need to process them and thus wish to elmiate them from our list. -![](images/stream_compaction.jpg)*Source: Nvidia GPU Gems 3* +![](images/stream_compaction.jpg) + +*Source: Nvidia GPU Gems 3* This is equivalent to the python dictionary comprehension one-liner: @@ -36,7 +38,9 @@ contains the sums of all elements preceeding it in the input list. The term "exc element of the output array is always 0, and thus the last element of the input array is excluded. This contrasts with an "inclusive" scan, which begins with the first element of the input array. -![](images/scan.tiff)*Source: CIS565 Lecture Slides* +![](images/scan.tiff) + +*Source: CIS565 Lecture Slides* It is here that we can divide our algorithms into naive and efficientimplementations. For comparison's sake, the scan method was also implemented as a CPU function. @@ -54,7 +58,9 @@ optimizations are inherit to the CPU implementation due to hardware features suc ### Naive Parallel Implementation -![](images/naive_parallel.tiff)*Source: CIS565 Lecture Slides* +![](images/naive_parallel.tiff) + +*Source: CIS565 Lecture Slides* As depicted above, the Naive parallel implmentation computes several pairwise adds for each level in 0 to lg n. @@ -103,7 +109,8 @@ On the other hand, we see our parallel algorthms lagging behind quite a biut. Nv Additionally, our naive implementation is seen crushing our work efficient implementation. I believe this is because the bottleneck here is memory access, which the work efficient implementation does rather a lot of (especially in the add/swap downsweep.) In general, I question how valuable "saving work" is on a GPU, particularly addition, since the devices are so heavily optimized for arithmetic. ## Test Suite Output -```$ ./cis565_stream_compaction_test.exe +~~~ +$ ./cis565_stream_compaction_test.exe **************** ** SCAN TESTS ** @@ -144,4 +151,4 @@ Additionally, our naive implementation is seen crushing our work efficient imple passed ==== work-efficient compact, non-power-of-two ==== passed -``` +~~~ From 8614ae5d6f956b0cfc4b4c23366e9ea359715af8 Mon Sep 17 00:00:00 2001 From: gabenaghi Date: Tue, 27 Sep 2016 22:25:21 -0400 Subject: [PATCH 23/24] spelling is hard --- README.md | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index fd289b8..f596d0c 100644 --- a/README.md +++ b/README.md @@ -10,12 +10,12 @@ CUDA Stream Compaction ## Overview -In this project, I implemented three Stream Compation algorithms. +In this project, I implemented three Stream Compaction algorithms. Stream compaction is the process of compressing a list of elements, removing any elements which don't match some criteria and replacing the "good" elements in their original ordering. This algorithm will be useful in the future when dong ray-tracing, where once rays have escaped -the scene, we no longer need to process them and thus wish to elmiate them from our list. +the scene, we no longer need to process them and thus wish to elminate them from our list. ![](images/stream_compaction.jpg) @@ -33,8 +33,8 @@ While this process is easily done in an iterative fashion, we can also employ so to compute the compacted array more quickly. These parallel algorithms require that first a temporary boolean mapping of the list must be created, which then undergoes an "exclusive scan". The result of the scan the represents the indices of elements in the output array, which occurs in a simple operation called "scatter." -A "scan" (depicted below) is an operation that creates and ouput list such that for each index an input list, the output list -contains the sums of all elements preceeding it in the input list. The term "exclusive" means that the first +A "scan" (depicted below) is an operation that creates and output list such that for each index an input list, the output list +contains the sums of all elements preceding it in the input list. The term "exclusive" means that the first element of the output array is always 0, and thus the last element of the input array is excluded. This contrasts with an "inclusive" scan, which begins with the first element of the input array. @@ -42,17 +42,17 @@ with an "inclusive" scan, which begins with the first element of the input array *Source: CIS565 Lecture Slides* -It is here that we can divide our algorithms into naive and efficientimplementations. For comparison's sake, +It is here that we can divide our algorithms into naive and efficient implementations. For comparison's sake, the scan method was also implemented as a CPU function. For the purposes of our implementation, the criteria for inclusion in the output list in non-zero value. ### CPU Implementation -The CPU implementation functions in the most straightforward way possible. At each index, it simply adds the value at that index plus the preceeding calculated value, much like a fibbonacci sequence. +The CPU implementation functions in the most straightforward way possible. At each index, it simply adds the value at that index plus the preceding calculated value, much like a Fibonacci sequence. The only optimization I was able to make here was that, instead of re-summing all input elements 0 through j-1 to compute -element j, I simply add input element j-1 to output element j-2. We will see later in performace analysis, however, that +element j, I simply add input element j-1 to output element j-2. We will see later in performance analysis, however, that optimizations are inherit to the CPU implementation due to hardware features such as memory caching. @@ -62,7 +62,7 @@ optimizations are inherit to the CPU implementation due to hardware features suc *Source: CIS565 Lecture Slides* -As depicted above, the Naive parallel implmentation computes several pairwise adds for each level in 0 to lg n. +As depicted above, the Naive parallel implementation computes several pairwise adds for each level in 0 to lg n. While this limits the number of parallel loops that need to be launched, this algorithm is not considered "work efficient" since the number of additions that must be computed is O(n lgn). @@ -70,17 +70,17 @@ I optimized this implementation be launching a scan of an array of length 2^15 u ![](images/naive_blocksize.png) -This graph shows that a 256 blocksize has the lowest average runtime, so this is the value I selected for the final analysis. +This graph shows that a 256 block size has the lowest average runtime, so this is the value I selected for the final analysis. ### Efficient Parallel Implementation The work-efficient scan implementation can be split into two pieces. -The first part, depicted below, is the "upsweep." Here, by using a binary tree representation of the array, we compute several intermidate vlaues at each leve +The first part, depicted below, is the "upsweep." Here, by using a binary tree representation of the array, we compute several intermediate values at each level. ![](images/efficient_parallel_upsweep.tiff)*Source: CIS565 Lecture Slides* -Next, we carry out a "downsweep," which swaps some values and accumalates value in necessary locations in the array. +Next, we carry out a "downsweep," which swaps some values and accumulates value in necessary locations in the array. ![](images/efficient_parallel_downsweep.tiff)*Source: CIS565 Lecture Slides* @@ -95,16 +95,16 @@ As I did with the naive implementation, I optimized the thread count per block i Since we don't have the Thrust source code, its really quite hard to tell what precisely it is doing. However, the kernels which are repeated called are: 1. Accumulate Tiles (memcopy?) 2. Exclusive Scan -3. Downsweep. This seems to take elemensts from a couple different algorithms we've seen. I would not be suprised if there is some hybrid algorithm implemented by Thrust. +3. Downsweep. This seems to take elements from a couple different algorithms we've seen. I would not be surprised if there is some hybrid algorithm implemented by Thrust. ## Performance Analysis -Interstingly enough, the CPU implementation completely blew all other implementations out of the water. Indeed, at the lower array sizes, I could hardly get a timing since the algorithm would complete execution before a they system clock would even tick. +Interestingly enough, the CPU implementation completely blew all other implementations out of the water. Indeed, at the lower array sizes, I could hardly get a timing since the algorithm would complete execution before a they system clock would even tick. As I alluded to earlier, I think much of the credit here is due to CPU caching. All the memory locations with which we need do deal are both temporally and spatially local, so each index in the array likely needs only a couple instructions to complete, and likely no disk waits. In fact, if the compiler is smart enough, it might even be holding the values we need in registers. Given a Hyperthredded Quad Core CPU running at 3.7 GHz, an array of length 2^15 would finish in quite close to no time at all- which is what we see here. ![](images/scan_times.png) -On the other hand, we see our parallel algorthms lagging behind quite a biut. Nvidia's Thrust implementation is seen working quite well,but only for arrays of size not-power-of-two. Very strage. +On the other hand, we see our parallel algorithms lagging behind quite a bit. Nvidia's Thrust implementation is seen working quite well, but only for arrays of size not-power-of-two. Very strange. Additionally, our naive implementation is seen crushing our work efficient implementation. I believe this is because the bottleneck here is memory access, which the work efficient implementation does rather a lot of (especially in the add/swap downsweep.) In general, I question how valuable "saving work" is on a GPU, particularly addition, since the devices are so heavily optimized for arithmetic. From 37e8ca33f1098228ec71dba37903630c57c71f9d Mon Sep 17 00:00:00 2001 From: gabenaghi Date: Tue, 27 Sep 2016 22:26:01 -0400 Subject: [PATCH 24/24] remove construction sign :) --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index f596d0c..46aa033 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,6 @@ CUDA Stream Compaction ====================== -***PAGE UNDER CONSTRUCTION*** - **University of Pennsylvania, CIS 565: GPU Programming and Architecture, Project 2** * Gabriel Naghi