From 318efb1b5febbf32b86600b37285b8b59d4a6b25 Mon Sep 17 00:00:00 2001 From: ananthaks Date: Sat, 15 Sep 2018 17:22:27 -0400 Subject: [PATCH 1/8] Added CPU Scan --- stream_compaction/CMakeLists.txt | 2 +- stream_compaction/cpu.cu | 94 +++++++++++++++++++++++++++----- 2 files changed, 82 insertions(+), 14 deletions(-) diff --git a/stream_compaction/CMakeLists.txt b/stream_compaction/CMakeLists.txt index cdbef77..48e2f35 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_60 ) diff --git a/stream_compaction/cpu.cu b/stream_compaction/cpu.cu index 05ce667..a240a79 100644 --- a/stream_compaction/cpu.cu +++ b/stream_compaction/cpu.cu @@ -1,26 +1,48 @@ #include #include "cpu.h" -#include "common.h" +#include "common.h" namespace StreamCompaction { namespace CPU { - using StreamCompaction::Common::PerformanceTimer; - PerformanceTimer& timer() - { - static PerformanceTimer timer; - return timer; + +//#define RUN_DEBUG + + using StreamCompaction::Common::PerformanceTimer; + PerformanceTimer& timer() + { + static PerformanceTimer timer; + return timer; } + void printArray(int n, int *a, bool abridged = false) { + 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"); + } + /** * CPU scan (prefix sum). * For performance analysis, this is supposed to be a simple for loop. * (Optional) For better understanding before starting moving to GPU, you can simulate your GPU scan in this function first. */ void scan(int n, int *odata, const int *idata) { - timer().startCpuTimer(); - // TODO - timer().endCpuTimer(); + //timer().startCpuTimer(); + + odata[0] = 0; + + for(int i = 1; i < n; ++i) + { + odata[i] = odata[i - 1] + idata[i - 1]; + } + + //timer().endCpuTimer(); } /** @@ -30,9 +52,18 @@ namespace StreamCompaction { */ int compactWithoutScan(int n, int *odata, const int *idata) { timer().startCpuTimer(); - // TODO + + int outIndex = 0; + for (int i = 0; i < n; ++i) + { + if (idata[i] != 0) + { + odata[outIndex++] = idata[i]; + } + } + timer().endCpuTimer(); - return -1; + return (outIndex); } /** @@ -41,10 +72,47 @@ namespace StreamCompaction { * @returns the number of elements remaining after compaction. */ int compactWithScan(int n, int *odata, const int *idata) { + + // Keeping allocations outside of timer + auto *tempValidator = new int[n]; + auto *scanArray = new int[n]; + timer().startCpuTimer(); - // TODO + + // 1. Compute temporary array + for (int i = 0; i < n; ++i) + { + tempValidator[i] = (idata[i] != 0 ? 1 : 0); + } + +#ifdef RUN_DEBUG + printArray(n, tempValidator, true); +#endif + + // 2. Perform exclusive scan + scan(n, scanArray, tempValidator); + +#ifdef RUN_DEBUG + printArray(n, odata, true); +#endif + + // 3. Scatter + int outIndex = 0; + for(int i = 0; i < n; ++i) + { + if(tempValidator[i] != 0) + { + outIndex = scanArray[i]; + odata[outIndex] = idata[i]; + } + } + timer().endCpuTimer(); - return -1; + + delete[] tempValidator; + delete[] scanArray; + + return (outIndex + 1); } } } From e2224b0d4763b52ae36a626a9cefef2f8a349059 Mon Sep 17 00:00:00 2001 From: ananthaks Date: Sat, 15 Sep 2018 19:04:42 -0400 Subject: [PATCH 2/8] Added Naive GPU Scan --- stream_compaction/naive.cu | 86 ++++++++++++++++++++++++++++++++++---- 1 file changed, 77 insertions(+), 9 deletions(-) diff --git a/stream_compaction/naive.cu b/stream_compaction/naive.cu index 9218f8e..0866603 100644 --- a/stream_compaction/naive.cu +++ b/stream_compaction/naive.cu @@ -5,21 +5,89 @@ namespace StreamCompaction { namespace Naive { - using StreamCompaction::Common::PerformanceTimer; - PerformanceTimer& timer() - { - static PerformanceTimer timer; - return timer; + using StreamCompaction::Common::PerformanceTimer; + PerformanceTimer& timer() + { + static PerformanceTimer timer; + return timer; } - // TODO: __global__ + + // Global variables + int *device_iData; + int *device_oData; + +#define blockSize 128 + + /** + * Kernel to perform a Naive scan on a integer array + */ + __global__ void kernScan(int n, int power, int* outputData, int* inputData) + { + int index = (blockIdx.x * blockDim.x) + threadIdx.x; + + // Fetch it once + const int currData = inputData[index]; + + if(index >= power) + { + outputData[index] = inputData[index - power] + currData; + } + else + { + outputData[index] = currData; + } + } + + /** + * Shifts the whole array to the right by one in parallel + */ + __global__ void kernMakeExclusive(int n, int* outputData, int* inputData) + { + int index = (blockIdx.x * blockDim.x) + threadIdx.x; + + outputData[index] = index != 0 ? inputData[index - 1] : 0; + } /** * Performs prefix-sum (aka scan) on idata, storing the result into odata. */ - void scan(int n, int *odata, const int *idata) { - timer().startGpuTimer(); - // TODO + void scan(int n, int *odata, const int *idata) + { + // 1. Allocate the memory in device + cudaMalloc((void**)&device_iData, n * (sizeof(int))); + cudaMalloc((void**)&device_oData, n * (sizeof(int))); + cudaMemcpy(device_iData, idata, sizeof(int) * n, cudaMemcpyHostToDevice); + cudaDeviceSynchronize(); + + timer().startGpuTimer(); + + // 2. Compute Block count + dim3 numBlocks((n + blockSize - 1) / blockSize); + + // 3. Call the kernel + const int logn = ilog2ceil(n); + for (int i = 1; i <= logn; ++i) + { + const int power = 1 << (i - 1); + kernScan << < numBlocks, blockSize >> > (n, power, device_oData, device_iData); + + // Swap + int* temp = device_iData; + device_iData = device_oData; + device_oData = temp; + } + + // Make it exclusive as we need that for stream compaction later on + kernMakeExclusive <<< numBlocks, blockSize >> > (n, device_oData, device_iData); + timer().endGpuTimer(); + + cudaDeviceSynchronize(); + cudaMemcpy(odata, device_oData, sizeof(int) * n, cudaMemcpyDeviceToHost); + + // 4. Free up any gpu memory + cudaFree(device_iData); + cudaFree(device_oData); } } } From 7b5b21593526ce4111620740d516a5f252abdede Mon Sep 17 00:00:00 2001 From: ananthaks Date: Sat, 15 Sep 2018 19:16:58 -0400 Subject: [PATCH 3/8] Just some code cleanups --- stream_compaction/efficient.cu | 10 +++++----- stream_compaction/naive.cu | 28 ++++++++++++++-------------- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/stream_compaction/efficient.cu b/stream_compaction/efficient.cu index 36c5ef2..fd1d622 100644 --- a/stream_compaction/efficient.cu +++ b/stream_compaction/efficient.cu @@ -5,11 +5,11 @@ namespace StreamCompaction { namespace Efficient { - using StreamCompaction::Common::PerformanceTimer; - PerformanceTimer& timer() - { - static PerformanceTimer timer; - return timer; + using StreamCompaction::Common::PerformanceTimer; + PerformanceTimer& timer() + { + static PerformanceTimer timer; + return timer; } /** diff --git a/stream_compaction/naive.cu b/stream_compaction/naive.cu index 0866603..da28e11 100644 --- a/stream_compaction/naive.cu +++ b/stream_compaction/naive.cu @@ -23,18 +23,18 @@ namespace StreamCompaction { */ __global__ void kernScan(int n, int power, int* outputData, int* inputData) { - int index = (blockIdx.x * blockDim.x) + threadIdx.x; + const int index = (blockIdx.x * blockDim.x) + threadIdx.x; // Fetch it once - const int currData = inputData[index]; + const auto curr_data = inputData[index]; if(index >= power) { - outputData[index] = inputData[index - power] + currData; + outputData[index] = inputData[index - power] + curr_data; } else { - outputData[index] = currData; + outputData[index] = curr_data; } } @@ -43,7 +43,7 @@ namespace StreamCompaction { */ __global__ void kernMakeExclusive(int n, int* outputData, int* inputData) { - int index = (blockIdx.x * blockDim.x) + threadIdx.x; + const int index = (blockIdx.x * blockDim.x) + threadIdx.x; outputData[index] = index != 0 ? inputData[index - 1] : 0; } @@ -54,31 +54,31 @@ namespace StreamCompaction { void scan(int n, int *odata, const int *idata) { // 1. Allocate the memory in device - cudaMalloc((void**)&device_iData, n * (sizeof(int))); - cudaMalloc((void**)&device_oData, n * (sizeof(int))); + cudaMalloc(reinterpret_cast(&device_iData), n * (sizeof(int))); + cudaMalloc(reinterpret_cast(&device_oData), n * (sizeof(int))); cudaMemcpy(device_iData, idata, sizeof(int) * n, cudaMemcpyHostToDevice); cudaDeviceSynchronize(); timer().startGpuTimer(); // 2. Compute Block count - dim3 numBlocks((n + blockSize - 1) / blockSize); + dim3 num_blocks((n + blockSize - 1) / blockSize); // 3. Call the kernel - const int logn = ilog2ceil(n); - for (int i = 1; i <= logn; ++i) + const auto logn = ilog2ceil(n); + for (auto i = 1; i <= logn; ++i) { - const int power = 1 << (i - 1); - kernScan << < numBlocks, blockSize >> > (n, power, device_oData, device_iData); + const auto power = 1 << (i - 1); + kernScan << < num_blocks, blockSize >> > (n, power, device_oData, device_iData); // Swap - int* temp = device_iData; + const auto temp = device_iData; device_iData = device_oData; device_oData = temp; } // Make it exclusive as we need that for stream compaction later on - kernMakeExclusive <<< numBlocks, blockSize >> > (n, device_oData, device_iData); + kernMakeExclusive <<< num_blocks, blockSize >> > (n, device_oData, device_iData); timer().endGpuTimer(); From 665321117003d1fc8bf310692a3aa62b9f80348c Mon Sep 17 00:00:00 2001 From: ananthaks Date: Sun, 16 Sep 2018 15:11:11 -0400 Subject: [PATCH 4/8] Added Efficient scanning for power of 2 --- src/testing_helpers.hpp | 4 +- stream_compaction/efficient.cu | 119 +++++++++++++++++++++++++++++++-- stream_compaction/naive.cu | 14 ++++ stream_compaction/thrust.cu | 4 +- 4 files changed, 133 insertions(+), 8 deletions(-) diff --git a/src/testing_helpers.hpp b/src/testing_helpers.hpp index 46337ab..4431984 100644 --- a/src/testing_helpers.hpp +++ b/src/testing_helpers.hpp @@ -51,8 +51,8 @@ void onesArray(int n, int *a) { void genArray(int n, int *a, int maxval) { srand(time(nullptr)); - - for (int i = 0; i < n; i++) { + + for (int i = 0; i < n; i++) { a[i] = rand() % maxval; } } diff --git a/stream_compaction/efficient.cu b/stream_compaction/efficient.cu index fd1d622..8e485f8 100644 --- a/stream_compaction/efficient.cu +++ b/stream_compaction/efficient.cu @@ -12,13 +12,124 @@ namespace StreamCompaction { return timer; } + // Global variables + int* device_iData; + int* device_oData; + +#define blockSize 128 + + + void printArray(int n, const int *a, bool abridged = false) { + 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"); + } + + + /** + * Kernel to perform a Work efficient scan on a integer array + */ + __global__ void kernUpSweep(int n, int two_d, int* outputData) + { + const int index = (blockIdx.x * blockDim.x) + threadIdx.x; + + const int two_d_1 = two_d * 2; + + if(index % two_d_1 != 0) + { + return; + } + + const int oldIndex = index + two_d - 1; + const int newIndex = index + two_d_1 - 1; + + const int currData = outputData[newIndex]; + + outputData[newIndex] = newIndex != (n - 1) ? currData + outputData[oldIndex] : 0; + } + + /** + * Kernel to perform a Work efficient scan on a integer array + */ + __global__ void kernDownSweep(int n, int two_d, int* outputData) + { + const int index = (blockIdx.x * blockDim.x) + threadIdx.x; + + const int two_d_1 = two_d * 2; + + if (index % two_d_1 != 0) + { + return; + } + + const int oldIndex = index + two_d - 1; + const int newIndex = index + two_d_1 - 1; + + const int dataAtNewIndex = outputData[newIndex]; + + const int t = outputData[oldIndex]; + outputData[oldIndex] = dataAtNewIndex; + outputData[newIndex] = t + outputData[newIndex]; + } + + /** + * Shifts the whole array to the right by one in parallel + */ + __global__ void kernMakeExclusive(int n, int* outputData, int* inputData) + { + const int index = (blockIdx.x * blockDim.x) + threadIdx.x; + + outputData[index] = index != 0 ? inputData[index - 1] : 0; + } + /** * Performs prefix-sum (aka scan) on idata, storing the result into odata. */ - void scan(int n, int *odata, const int *idata) { - timer().startGpuTimer(); - // TODO - timer().endGpuTimer(); + void scan(int n, int *odata, const int *idata) + { + // 1. Allocate the memory in device + cudaMalloc(reinterpret_cast(&device_iData), n * sizeof(int)); + cudaMalloc(reinterpret_cast(&device_oData), n * sizeof(int)); + cudaMemcpy(device_iData, idata, sizeof(int) * n, cudaMemcpyHostToDevice); + cudaMemcpy(device_oData, idata, sizeof(int) * n, cudaMemcpyHostToDevice); + cudaDeviceSynchronize(); + + timer().startGpuTimer(); + + // 2. Compute Block count + dim3 num_blocks((n + blockSize - 1) / blockSize); + + // 3. Call the kernel + const int log_n = ilog2ceil(n); + // 3a. UpSweep + int power_2 = 1; + for(int d = 0; d < log_n; ++d) + { + power_2 = (1 << d); + kernUpSweep << < num_blocks, blockSize >> > (n, power_2, device_oData); + } + + // 3b. DownSweep + for (int d = log_n - 1; d >= 0; --d) + { + power_2 = (1 << d); + kernDownSweep << < num_blocks, blockSize >> > (n, power_2, device_oData); + } + + timer().endGpuTimer(); + + cudaDeviceSynchronize(); + cudaMemcpy(odata, device_oData, sizeof(int) * n, cudaMemcpyDeviceToHost); + + // 4. Free up any gpu memory + cudaFree(device_iData); + cudaFree(device_oData); } /** diff --git a/stream_compaction/naive.cu b/stream_compaction/naive.cu index da28e11..46b98a4 100644 --- a/stream_compaction/naive.cu +++ b/stream_compaction/naive.cu @@ -18,6 +18,18 @@ namespace StreamCompaction { #define blockSize 128 + void printArray(int n, int *a, bool abridged = false) { + 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"); + } + /** * Kernel to perform a Naive scan on a integer array */ @@ -85,6 +97,8 @@ namespace StreamCompaction { cudaDeviceSynchronize(); cudaMemcpy(odata, device_oData, sizeof(int) * n, cudaMemcpyDeviceToHost); + printArray(n, odata, true); + // 4. Free up any gpu memory cudaFree(device_iData); cudaFree(device_oData); diff --git a/stream_compaction/thrust.cu b/stream_compaction/thrust.cu index 36b732d..0bd31da 100644 --- a/stream_compaction/thrust.cu +++ b/stream_compaction/thrust.cu @@ -18,11 +18,11 @@ namespace StreamCompaction { * Performs prefix-sum (aka scan) on idata, storing the result into odata. */ void scan(int n, int *odata, const int *idata) { - timer().startGpuTimer(); + //timer().startGpuTimer(); // 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()); - timer().endGpuTimer(); + //timer().endGpuTimer(); } } } From a55e00947306c135f6d50a339893ed4bf6df0070 Mon Sep 17 00:00:00 2001 From: ananthaks Date: Mon, 17 Sep 2018 17:31:14 -0400 Subject: [PATCH 5/8] Update --- img/wtf.PNG | Bin 0 -> 32539 bytes stream_compaction/efficient.cu | 38 ++++++++++++++++++-------- stream_compaction/thrust.cu | 48 +++++++++++++++++++++++++-------- 3 files changed, 64 insertions(+), 22 deletions(-) create mode 100644 img/wtf.PNG diff --git a/img/wtf.PNG b/img/wtf.PNG new file mode 100644 index 0000000000000000000000000000000000000000..8fb9c2a2cbcaf45c71c4186d236d90a93d96603a GIT binary patch literal 32539 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 literal 0 HcmV?d00001 diff --git a/stream_compaction/efficient.cu b/stream_compaction/efficient.cu index 8e485f8..24fed8d 100644 --- a/stream_compaction/efficient.cu +++ b/stream_compaction/efficient.cu @@ -88,44 +88,60 @@ namespace StreamCompaction { outputData[index] = index != 0 ? inputData[index - 1] : 0; } + + inline int RoundToPower2(int n) + { + int start = 2; + + while(start <= n) + { + start *= 2; + } + return start; + } + + /** * Performs prefix-sum (aka scan) on idata, storing the result into odata. */ void scan(int n, int *odata, const int *idata) { + const int numElements = RoundToPower2(n); + const int numTotalBytes = numElements * sizeof(int); + const int numActualBytes = n * sizeof(int); + // 1. Allocate the memory in device - cudaMalloc(reinterpret_cast(&device_iData), n * sizeof(int)); - cudaMalloc(reinterpret_cast(&device_oData), n * sizeof(int)); - cudaMemcpy(device_iData, idata, sizeof(int) * n, cudaMemcpyHostToDevice); - cudaMemcpy(device_oData, idata, sizeof(int) * n, cudaMemcpyHostToDevice); + cudaMalloc(reinterpret_cast(&device_oData), numTotalBytes); + cudaMemcpy(device_oData, idata, numActualBytes, cudaMemcpyHostToDevice); + cudaDeviceSynchronize(); timer().startGpuTimer(); // 2. Compute Block count - dim3 num_blocks((n + blockSize - 1) / blockSize); + dim3 num_blocks((numElements + blockSize - 1) / blockSize); // 3. Call the kernel - const int log_n = ilog2ceil(n); + const int log_n = ilog2ceil(numElements); // 3a. UpSweep int power_2 = 1; for(int d = 0; d < log_n; ++d) { power_2 = (1 << d); - kernUpSweep << < num_blocks, blockSize >> > (n, power_2, device_oData); + kernUpSweep << < num_blocks, blockSize >> > (numElements, power_2, device_oData); } // 3b. DownSweep for (int d = log_n - 1; d >= 0; --d) { power_2 = (1 << d); - kernDownSweep << < num_blocks, blockSize >> > (n, power_2, device_oData); + kernDownSweep << < num_blocks, blockSize >> > (numElements, power_2, device_oData); } timer().endGpuTimer(); cudaDeviceSynchronize(); - cudaMemcpy(odata, device_oData, sizeof(int) * n, cudaMemcpyDeviceToHost); + cudaMemcpy(odata, device_oData, numActualBytes, cudaMemcpyDeviceToHost); // 4. Free up any gpu memory cudaFree(device_iData); @@ -141,9 +157,9 @@ namespace StreamCompaction { * @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) { + int compact(int n, int *odata, const int *idata) + { timer().startGpuTimer(); - // TODO timer().endGpuTimer(); return -1; } diff --git a/stream_compaction/thrust.cu b/stream_compaction/thrust.cu index 0bd31da..493f4bf 100644 --- a/stream_compaction/thrust.cu +++ b/stream_compaction/thrust.cu @@ -8,21 +8,47 @@ namespace StreamCompaction { namespace Thrust { - using StreamCompaction::Common::PerformanceTimer; - PerformanceTimer& timer() - { - static PerformanceTimer timer; - return timer; + using StreamCompaction::Common::PerformanceTimer; + PerformanceTimer& timer() + { + static PerformanceTimer timer; + return timer; } + + thrust::device_ptr dev_thrustInputData; + thrust::device_ptr dev_thrustOutputData; + int* device_iData; + int* device_oData; + +#define blockSize 128 + /** * Performs prefix-sum (aka scan) on idata, storing the result into odata. */ - void scan(int n, int *odata, const int *idata) { - //timer().startGpuTimer(); - // 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()); - //timer().endGpuTimer(); + void scan(int n, int *odata, const int *idata) + { + const int numTotalBytes = n * sizeof(int); + + cudaMalloc(reinterpret_cast(&device_iData), numTotalBytes); + cudaMalloc(reinterpret_cast(&device_oData), numTotalBytes); + + cudaMemcpy(device_iData, idata, numTotalBytes, cudaMemcpyHostToDevice); + cudaDeviceSynchronize(); + + dev_thrustInputData = thrust::device_ptr(device_iData); + dev_thrustOutputData = thrust::device_ptr(device_oData); + + timer().startGpuTimer(); + + thrust::exclusive_scan(dev_thrustInputData, n + dev_thrustInputData, dev_thrustOutputData); + + timer().endGpuTimer(); + + cudaDeviceSynchronize(); + cudaMemcpy(odata, device_oData, numTotalBytes, cudaMemcpyDeviceToHost); + + cudaFree(device_iData); + cudaFree(device_oData); } } } From fa6b4e431c6c7a8799a67be86d3bb8cd2a1fc21a Mon Sep 17 00:00:00 2001 From: ananthaks Date: Tue, 18 Sep 2018 14:25:55 -0400 Subject: [PATCH 6/8] Finished all parts --- stream_compaction/common.cu | 17 ++++-- stream_compaction/cpu.cu | 10 ---- stream_compaction/efficient.cu | 96 ++++++++++++++++++++++++++++++++-- stream_compaction/naive.cu | 2 - 4 files changed, 105 insertions(+), 20 deletions(-) diff --git a/stream_compaction/common.cu b/stream_compaction/common.cu index 8fc0211..fa95ca7 100644 --- a/stream_compaction/common.cu +++ b/stream_compaction/common.cu @@ -22,8 +22,10 @@ namespace StreamCompaction { * 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) + { + const int index = (blockIdx.x * blockDim.x) + threadIdx.x; + bools[index] = idata[index] == 0 ? 0 : 1; } /** @@ -31,8 +33,15 @@ namespace StreamCompaction { * 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) + { + const int index = (blockIdx.x * blockDim.x) + threadIdx.x; + int outIndex; + if (bools[index] != 0) + { + outIndex = indices[index]; + odata[outIndex] = idata[index]; + } } } diff --git a/stream_compaction/cpu.cu b/stream_compaction/cpu.cu index a240a79..4ae21a3 100644 --- a/stream_compaction/cpu.cu +++ b/stream_compaction/cpu.cu @@ -6,8 +6,6 @@ namespace StreamCompaction { namespace CPU { -//#define RUN_DEBUG - using StreamCompaction::Common::PerformanceTimer; PerformanceTimer& timer() { @@ -85,17 +83,9 @@ namespace StreamCompaction { tempValidator[i] = (idata[i] != 0 ? 1 : 0); } -#ifdef RUN_DEBUG - printArray(n, tempValidator, true); -#endif - // 2. Perform exclusive scan scan(n, scanArray, tempValidator); -#ifdef RUN_DEBUG - printArray(n, odata, true); -#endif - // 3. Scatter int outIndex = 0; for(int i = 0; i < n; ++i) diff --git a/stream_compaction/efficient.cu b/stream_compaction/efficient.cu index 24fed8d..1de7040 100644 --- a/stream_compaction/efficient.cu +++ b/stream_compaction/efficient.cu @@ -15,12 +15,15 @@ namespace StreamCompaction { // Global variables int* device_iData; int* device_oData; + int* device_bools; + int* device_sortedbools; #define blockSize 128 void printArray(int n, const int *a, bool abridged = false) { - printf(" [ "); + + if(" [ "); for (int i = 0; i < n; i++) { if (abridged && i + 2 == 15 && n > 16) { i = n - 2; @@ -32,6 +35,20 @@ namespace StreamCompaction { } + void PrintCUDAArray(int n, const int* cudaArrayPtr) + { + cudaDeviceSynchronize(); + + int* temp = new int[n]; + cudaMemcpy(temp, cudaArrayPtr, n * sizeof(n), cudaMemcpyDeviceToHost); + + printArray(n, temp, true); + + delete[] temp; + } + + + /** * Kernel to perform a Work efficient scan on a integer array */ @@ -159,9 +176,80 @@ namespace StreamCompaction { */ int compact(int n, int *odata, const int *idata) { - timer().startGpuTimer(); - timer().endGpuTimer(); - return -1; + const int numElements = RoundToPower2(n); + const int numTotalBytes = numElements * sizeof(int); + const int numActualBytes = n * sizeof(int); + + int* tempHolder = new int[n]; + + printArray(n, idata, true); + + // 1. Allocate the memory in device + cudaMalloc(reinterpret_cast(&device_iData), numTotalBytes); + cudaMalloc(reinterpret_cast(&device_oData), numTotalBytes); + cudaMalloc(reinterpret_cast(&device_bools), numTotalBytes); + cudaMalloc(reinterpret_cast(&device_sortedbools), numTotalBytes); + + cudaMemcpy(device_iData, idata, numActualBytes, cudaMemcpyHostToDevice); + + cudaDeviceSynchronize(); + + timer().startGpuTimer(); + + // 2. Compute Block count + dim3 num_blocks((numElements + blockSize - 1) / blockSize); + + // 3. Call the kernel + + // 3a. Map to bools + StreamCompaction::Common::kernMapToBoolean << > > (numElements, device_bools, device_iData); + cudaMemcpy(device_sortedbools, device_bools, numActualBytes, cudaMemcpyHostToHost); + + // 3b. UpSweep + const int log_n = ilog2ceil(numElements); + int power_2 = 1; + for (int d = 0; d < log_n; ++d) + { + power_2 = (1 << d); + kernUpSweep << < num_blocks, blockSize >> > (numElements, power_2, device_sortedbools); + } + + // 3c. DownSweep + for (int d = log_n - 1; d >= 0; --d) + { + power_2 = (1 << d); + kernDownSweep << < num_blocks, blockSize >> > (numElements, power_2, device_sortedbools); + } + + // 3d. Compact + StreamCompaction::Common::kernScatter << > > (numElements, device_oData, device_iData, device_bools, device_sortedbools); + + // 4. Manually copy from the GPU the bools and check the number of valida values to return + cudaDeviceSynchronize(); + cudaMemcpy(tempHolder, device_bools, numActualBytes, cudaMemcpyDeviceToHost); + int count = 0; + for(int i = 0; i < n; ++i) + { + if(tempHolder[i] != 0) + { + count++; + } + } + + timer().endGpuTimer(); + + // Copy over the results + cudaDeviceSynchronize(); + cudaMemcpy(odata, device_oData, numActualBytes, cudaMemcpyDeviceToHost); + + // 5. Free up any gpu memory + cudaFree(device_iData); + cudaFree(device_oData); + cudaFree(device_bools); + cudaFree(device_sortedbools); + delete[] tempHolder; + + return (count); } } } diff --git a/stream_compaction/naive.cu b/stream_compaction/naive.cu index 46b98a4..fd728d0 100644 --- a/stream_compaction/naive.cu +++ b/stream_compaction/naive.cu @@ -97,8 +97,6 @@ namespace StreamCompaction { cudaDeviceSynchronize(); cudaMemcpy(odata, device_oData, sizeof(int) * n, cudaMemcpyDeviceToHost); - printArray(n, odata, true); - // 4. Free up any gpu memory cudaFree(device_iData); cudaFree(device_oData); From fdfc819187a9e81653fa8fd212c9547e2efcbe48 Mon Sep 17 00:00:00 2001 From: ananthaks Date: Tue, 18 Sep 2018 16:28:58 -0400 Subject: [PATCH 7/8] Add c++ arguments; Added some images; ceated readme draft --- README.md | 49 +++++++++++++++--- ...New Microsoft PowerPoint Presentation.pptx | Bin 0 -> 39017 bytes img/compaction.jpg | Bin 0 -> 24774 bytes img/example.png | Bin 0 -> 41781 bytes img/example_sc.jpg | Bin 0 -> 176128 bytes src/main.cpp | 40 +++++++++++--- stream_compaction/efficient.cu | 1 - stream_compaction/naive.cu | 4 +- 8 files changed, 75 insertions(+), 19 deletions(-) create mode 100644 img/New Microsoft PowerPoint Presentation.pptx create mode 100644 img/compaction.jpg create mode 100644 img/example.png create mode 100644 img/example_sc.jpg diff --git a/README.md b/README.md index 0e38ddb..9d199a9 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,47 @@ CUDA Stream Compaction -====================== +==================== -**University of Pennsylvania, CIS 565: GPU Programming and Architecture, Project 2** +**University of Pennsylvania, CIS 565: GPU Programming and Architecture** -* (TODO) YOUR NAME HERE - * (TODO) [LinkedIn](), [personal website](), [twitter](), etc. -* Tested on: (TODO) Windows 22, i7-2222 @ 2.22GHz 22GB, GTX 222 222MB (Moore 2222 Lab) +**Anantha Srinivas** +[LinkedIn](https://www.linkedin.com/in/anantha-srinivas-00198958/), [Twitter](https://twitter.com/an2tha) -### (TODO: Your README) +**Tested on:** +* Windows 10, i7-8700 @ 3.20GHz 16GB, GTX 1080 8097MB (Personal) +* Built for Visual Studio 2017 using the v140 toolkit -Include analysis, etc. (Remember, this is public, so don't put -anything here that you don't want to share with the world.) +--- +Introduction +--- + +Stream Compaction is a technique used to remove specific unwanted elements from a continous array of elements. + +![Figure 1: Stream Compaction](img/compaction.jpg) + +Given an input of elements and a list of removable items as shown in the above figure [1], we need to generate a new array of output that contains only the desired elements. + +Stream compaction has many uses included optimizing ray collections in Path Tracers or compressing sparse matrices. Running Stream compaction on a CPU for a large number of elements ( > 2^8) might not be efficient. We will try to parallelize this algorithm to achieve a better peformance. + +Implementation +--- +Stream Compaction on the GPU can roughly be broken down into three steps. + +1. `Initialization` +2. `Scan` + 1. `UpSweep` + 2. `DownSweep` +3. `Scatter` + +![Figure 2: Stream compaction example](img/example_sc.jpg) + +Performance Analysis +--- + +Further questions +--- + +References +--- + +[1] - [GPU Gems Chapter 39](https://developer.nvidia.com/gpugems/GPUGems3/gpugems3_ch39.html) diff --git a/img/New Microsoft PowerPoint Presentation.pptx b/img/New Microsoft PowerPoint Presentation.pptx new file mode 100644 index 0000000000000000000000000000000000000000..b018a49dc1880f713d15b94c5299ff0b1099c204 GIT binary patch literal 39017 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 Be3k$J literal 0 HcmV?d00001 diff --git a/img/example_sc.jpg b/img/example_sc.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0225e474376495797bab9d19ac8e3cb552ef4c74 GIT binary patch literal 176128 zcmeFa2{@GR+dn)dDMAa8EEPp0MY5Yp2r!)D`+uM3`9J^Tc;EMTgj)x$>%PwOysrB?Kj-H>uRGcxZ4z=^ zT}4d=a^S!LNCNl?p^ZS4Aan;0?tg(FhrloTBlPr#4$(6*FdRN|jPckpCPpSEW|ou3 znORP-FfkoJef-2JHgIGxwTE)A?@z%>vaG^_YbxHyJo-Xbpq7u;GsiwhZy$tI&jbfyy#9GqCbEA z@X6cS3{RX-T@ZhDgze7T^uoHM{1OlG>`z^~8BYt`n7T;VSM4v&{$q*-{BLRY-xd2G zdJRL4(H#IMkM0Bn3fVhF)T74xpQhX+F-;*(kYeg-kYU-5_2FtV633KXwpy7ax%*I0 zJ6M^UWxQksif=$3!Yr!OAZ__OGzf17k(&mIGr=2B(KN`CTa!uj}f^_)XC^do4 zd*}sbMz&NTDf*&CPZ;IeLY>&&Nz6vB9}UuyO@oARlP=OAcMJeMM+|A(r-Z$A`zMS- zO&sq4P^!BeqcKN+Z^QT7@F@3BF$GT%3#(`%pFsvCVof!O25DgNJxPP4i_jp#WfK(d z7}Arj0QlBL#GF2v28l7K(pJS@hi($#KCHRjfbtH1Jz^?U@hIX~JPi_WvJNPy{$0@A zvFwbM_sCtcSWRgEA`NnZ{C4V}%m8q@P9{>1!guvRJIwU2^=bc`DhUJ&qaUw^Xg4gG z7yP>veTd&IQ8OH_SP@2pAdAR@er7QnVimmL4gMwv^zWuH!zuGUYNSEBhWu6)|IEq1 zzl8tH$)D%s&vWwUIr-yH{^8gD_>(_A{txc@gS-BM^?$JNpZMf|ijw}sCx2qbf1?rp z#PNUP_&?mrAHM7VkskcRt^DCu{%|Y*(%cGKi(0LCm?SvaLODl+;6tsEgJ3!W?m#x! zd$hTm1|K3K^4*)|Tb3dh(gHAQD^pOCFe{}OMh01JT&8!0nQ+bhXZ*5J`5unnr3>HL zGzX24@g8!6Nb)JEa+tMImfRzd#>Dm_jjkYp-vjdy9GUU(ouWbYN zzb_v2Dhf<-Pi8|mHKA*QG)QUuss-PAF@T7ZzCN+GvFmTW<2dLFXgb!xiD0@r6U)BV zKL!2W`^B6AHVr7SP1$QSNL}bBNtEXjzptJh3tw;*(ch*)l5A)Y zXDGE8WiCX6_+@QUKGa3iARdYBo2pg*zqvQmQEDi3c7Vc8gE(ULOr6bek373}k}%VV z58a`_F$IoUa9eUt4rbH7MgQme*S5hwt)D89zr%8$Gpb}96gk^@%!6Ewh9@bE{F8h0 zgssZZAeYJ}QDm?-sAna7$9AR}QQc32oT79_Lh(-)G3P#oi$snJeF}&CS1yrwfY!+0}H@n}(jn%-R*xASeMEq&wE2&bibz;zv=K`8E5? zIm)&Ld0mcz^$(k;A%TFJNJNsLbMY-UQ+~MNbRC@F_6{EEJ!rShaCpWjnD?v9w%l)eSrpv>i+FMZg?si zBF_*r7c)wO{Dcvrw1Opt z99>7DQz&^J8syfPD?m{K%TcYtQqyX@2bIpPi%ejpL3mJag-~yR@#Y=4^9;h;U@fMA z2Kf*4$sqfj9rLTBro$^0!A<|~_sjseHtQy~n6c3HMkvJ{efLugZq?Ckhk+REzqq&l z_rJ!F?7A2bzoZ_~AeiGc2w`~lWH_{}um(HIH_T4XSi$`M_uo~rn^hP3O97`p^8aH_ z|37AbyHSzNhZyyhC6`Bj&pnEXW1^%9N{kNO>r{US{{-qC&|`d2xbSONI6po z=HJ^KxH!8`U7_m*4H7&xiQHpG%;wP`6lFeqwLD0X-9}O3ku=C_)H`bwf_#>h(uJo% z_mf02g9NX1riE_eU(C-bI5n8noTerbdMVRwTq5KYx@3 z)we4bGv(meHCmmMgb6%8^iGRGwZG=pTC1O@s-5o1sUpso5R z{w_!cz!4gNSd^qeV!wkA4EshD8^Zhv=&=C4Sw48~5CSf-y#9AVz&dQEhC1jL7wCnI zXb@8Pu1Ywx@Ehp2Xb{#7R#g8g2K8av<2PZz0O@ZA@y$@?8yrN;BSLo>u**a^_UB&J z-(_L@n>EndpJG;@LpPxfl)#m3AF-8rKhxg@f&R@LaG`Eh;!VC?

mwd#@&OdsDF; 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