From 8e0196f2c42cc75f0a3160f06764b0cdd65a891a Mon Sep 17 00:00:00 2001 From: Andrewzhuyx <46278301+Andrewzhuyx@users.noreply.github.com> Date: Wed, 22 Sep 2021 05:18:34 -0400 Subject: [PATCH 1/3] draft --- Performance.xlsx | Bin 0 -> 8875 bytes README.md | 39 ++++- img/Scan_Performance.png | Bin 0 -> 128955 bytes img/Stream_Compaction_Performance.png | Bin 0 -> 110565 bytes src/main.cpp | 51 ++++-- stream_compaction/common.cu | 15 +- stream_compaction/common.h | 2 + stream_compaction/cpu.cu | 42 ++++- stream_compaction/efficient.cu | 223 +++++++++++++++++++++++++- stream_compaction/efficient.h | 9 ++ stream_compaction/naive.cu | 46 +++++- stream_compaction/naive.h | 2 + stream_compaction/thrust.cu | 8 + 13 files changed, 408 insertions(+), 29 deletions(-) create mode 100644 Performance.xlsx create mode 100644 img/Scan_Performance.png create mode 100644 img/Stream_Compaction_Performance.png diff --git a/Performance.xlsx b/Performance.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..d28cb65c447930f514d86d770446f5e6b66dc2c7 GIT binary patch literal 8875 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%0D?Fbj*QDmVqTc1LV<3*wP~a6Ry4HLS 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 literal 0 HcmV?d00001 diff --git a/src/main.cpp b/src/main.cpp index 896ac2b..d0a9bfc 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -13,7 +13,7 @@ #include #include "testing_helpers.hpp" -const int SIZE = 1 << 8; // feel free to change the size of array +const int SIZE = 10000000; // feel free to change the size of array const int NPOT = SIZE - 3; // Non-Power-Of-Two int *a = new int[SIZE]; int *b = new int[SIZE]; @@ -51,48 +51,63 @@ int main(int argc, char* argv[]) { printDesc("naive scan, power-of-two"); StreamCompaction::Naive::scan(SIZE, c, a); printElapsedTime(StreamCompaction::Naive::timer().getGpuElapsedTimeForPreviousOperation(), "(CUDA Measured)"); - //printArray(SIZE, c, true); + printArray(SIZE, c, true); printCmpResult(SIZE, b, c); - /* For bug-finding only: Array of 1s to help find bugs in stream compaction or scan + //* For bug-finding only: Array of 1s to help find bugs in stream compaction or scan onesArray(SIZE, c); printDesc("1s array for finding bugs"); StreamCompaction::Naive::scan(SIZE, c, a); - printArray(SIZE, c, true); */ + printArray(SIZE, c, true); //*/ zeroArray(SIZE, c); printDesc("naive scan, non-power-of-two"); StreamCompaction::Naive::scan(NPOT, c, a); printElapsedTime(StreamCompaction::Naive::timer().getGpuElapsedTimeForPreviousOperation(), "(CUDA Measured)"); - //printArray(SIZE, c, true); + printArray(SIZE, c, true); printCmpResult(NPOT, b, c); zeroArray(SIZE, c); printDesc("work-efficient scan, power-of-two"); StreamCompaction::Efficient::scan(SIZE, c, a); printElapsedTime(StreamCompaction::Efficient::timer().getGpuElapsedTimeForPreviousOperation(), "(CUDA Measured)"); - //printArray(SIZE, c, true); + printArray(SIZE, c, true); printCmpResult(SIZE, b, c); zeroArray(SIZE, c); printDesc("work-efficient scan, non-power-of-two"); StreamCompaction::Efficient::scan(NPOT, c, a); printElapsedTime(StreamCompaction::Efficient::timer().getGpuElapsedTimeForPreviousOperation(), "(CUDA Measured)"); - //printArray(NPOT, c, true); + printArray(NPOT, c, true); printCmpResult(NPOT, b, c); + zeroArray(SIZE, c); + printDesc("optimized work-efficient scan, power-of-two"); + StreamCompaction::Efficient::optimizedScan(SIZE, c, a); + printElapsedTime(StreamCompaction::Efficient::timer().getGpuElapsedTimeForPreviousOperation(), "(CUDA Measured)"); + printArray(SIZE, c, true); + printCmpResult(SIZE, b, c); + + zeroArray(SIZE, c); + printDesc("optimized work-efficient scan, non-power-of-two"); + StreamCompaction::Efficient::optimizedScan(NPOT, c, a); + printElapsedTime(StreamCompaction::Efficient::timer().getGpuElapsedTimeForPreviousOperation(), "(CUDA Measured)"); + printArray(NPOT, c, true); + printCmpResult(NPOT, b, c); + + zeroArray(SIZE, c); printDesc("thrust scan, power-of-two"); StreamCompaction::Thrust::scan(SIZE, c, a); printElapsedTime(StreamCompaction::Thrust::timer().getGpuElapsedTimeForPreviousOperation(), "(CUDA Measured)"); - //printArray(SIZE, c, true); + printArray(SIZE, c, true); printCmpResult(SIZE, b, c); zeroArray(SIZE, c); printDesc("thrust scan, non-power-of-two"); StreamCompaction::Thrust::scan(NPOT, c, a); printElapsedTime(StreamCompaction::Thrust::timer().getGpuElapsedTimeForPreviousOperation(), "(CUDA Measured)"); - //printArray(NPOT, c, true); + printArray(NPOT, c, true); printCmpResult(NPOT, b, c); printf("\n"); @@ -137,14 +152,28 @@ int main(int argc, char* argv[]) { printDesc("work-efficient compact, power-of-two"); count = StreamCompaction::Efficient::compact(SIZE, c, a); printElapsedTime(StreamCompaction::Efficient::timer().getGpuElapsedTimeForPreviousOperation(), "(CUDA Measured)"); - //printArray(count, c, true); + printArray(count, c, true); printCmpLenResult(count, expectedCount, b, c); zeroArray(SIZE, c); printDesc("work-efficient compact, non-power-of-two"); count = StreamCompaction::Efficient::compact(NPOT, c, a); printElapsedTime(StreamCompaction::Efficient::timer().getGpuElapsedTimeForPreviousOperation(), "(CUDA Measured)"); - //printArray(count, c, true); + printArray(count, c, true); + printCmpLenResult(count, expectedNPOT, b, c); + + zeroArray(SIZE, c); + printDesc("optimized work-efficient compact, power-of-two"); + count = StreamCompaction::Efficient::optimizedCompact(SIZE, c, a); + printElapsedTime(StreamCompaction::Efficient::timer().getGpuElapsedTimeForPreviousOperation(), "(CUDA Measured)"); + printArray(count, c, true); + printCmpLenResult(count, expectedCount, b, c); + + zeroArray(SIZE, c); + printDesc("optimized work-efficient compact, non-power-of-two"); + count = StreamCompaction::Efficient::optimizedCompact(NPOT, c, a); + printElapsedTime(StreamCompaction::Efficient::timer().getGpuElapsedTimeForPreviousOperation(), "(CUDA Measured)"); + printArray(count, c, true); printCmpLenResult(count, expectedNPOT, b, c); system("pause"); // stop Win32 console from closing on exit diff --git a/stream_compaction/common.cu b/stream_compaction/common.cu index 2ed6d63..e403b14 100644 --- a/stream_compaction/common.cu +++ b/stream_compaction/common.cu @@ -23,7 +23,15 @@ namespace StreamCompaction { * which map to 0 will be removed, and elements which map to 1 will be kept. */ __global__ void kernMapToBoolean(int n, int *bools, const int *idata) { - // TODO + int index = blockIdx.x * blockDim.x + threadIdx.x; + if (index < n) { + if (idata[index] == 0) { + bools[index] = 0; + } + else { + bools[index] = 1; + } + } } /** @@ -32,7 +40,10 @@ namespace StreamCompaction { */ __global__ void kernScatter(int n, int *odata, const int *idata, const int *bools, const int *indices) { - // TODO + int index = blockIdx.x * blockDim.x + threadIdx.x; + if (index < n && bools[index] == 1) { + odata[indices[index]] = idata[index]; + } } } diff --git a/stream_compaction/common.h b/stream_compaction/common.h index d2c1fed..f15181e 100644 --- a/stream_compaction/common.h +++ b/stream_compaction/common.h @@ -12,6 +12,8 @@ #define FILENAME (strrchr(__FILE__, '/') ? strrchr(__FILE__, '/') + 1 : __FILE__) #define checkCUDAError(msg) checkCUDAErrorFn(msg, FILENAME, __LINE__) +#define blockSize 256 +#define efficientBlockSize 256 /** * Check for CUDA errors; print and exit if there was a problem. diff --git a/stream_compaction/cpu.cu b/stream_compaction/cpu.cu index 719fa11..54bd316 100644 --- a/stream_compaction/cpu.cu +++ b/stream_compaction/cpu.cu @@ -19,7 +19,14 @@ namespace StreamCompaction { */ void scan(int n, int *odata, const int *idata) { timer().startCpuTimer(); - // TODO + int curr; + int sum = idata[0]; + odata[0] = 0; + for (int i = 1; i < n; i++) { + curr = idata[i]; + odata[i] = sum; + sum += curr; + } timer().endCpuTimer(); } @@ -30,9 +37,14 @@ namespace StreamCompaction { */ int compactWithoutScan(int n, int *odata, const int *idata) { timer().startCpuTimer(); - // TODO + int count = 0; + for (int i = 0; i < n; i++) { + if (idata[i] != 0) { + odata[count++] = idata[i]; + } + } timer().endCpuTimer(); - return -1; + return count; } /** @@ -41,10 +53,28 @@ namespace StreamCompaction { * @returns the number of elements remaining after compaction. */ int compactWithScan(int n, int *odata, const int *idata) { - timer().startCpuTimer(); - // TODO + int* indicator = new int[n]; + timer().startCpuTimer(); + for (int i = 0; i < n; i++) { + if (idata[i] == 0) { + indicator[i] = 0; + } + else { + indicator[i] = 1; + } + } + odata[0] = 0; // odata is currently the array storing the exclusive scan result + for (int i = 1; i < n; i++) { + odata[i] = odata[i - 1] + indicator[i - 1]; + } + int count = odata[n - 1] + indicator[n - 1]; + for (int i = 0; i < n; i++) { + if (indicator[i] != 0) { + odata[odata[i]] = idata[i]; //odata is now the compacted array + } + } timer().endCpuTimer(); - return -1; + return count; } } } diff --git a/stream_compaction/efficient.cu b/stream_compaction/efficient.cu index 2db346e..6cabcf3 100644 --- a/stream_compaction/efficient.cu +++ b/stream_compaction/efficient.cu @@ -16,9 +16,145 @@ namespace StreamCompaction { * Performs prefix-sum (aka scan) on idata, storing the result into odata. */ void scan(int n, int *odata, const int *idata) { + int round = 1 << ilog2ceil(n); + int* dev_data; + cudaMalloc((void**)&dev_data, round * sizeof(int)); + checkCUDAError("cudaMalloc dev_data failed!"); + cudaMemcpy(dev_data, idata, sizeof(int) * n, cudaMemcpyHostToDevice); timer().startGpuTimer(); - // TODO + for (int i = 0; i < ilog2(round); i++) { + int numThreads = (round >> (i + 1)); + dim3 fullBlocksPerGrid(numThreads / efficientBlockSize); + if (fullBlocksPerGrid.x == 0) { + kernUpSweep << <1, numThreads >> > (round, i, dev_data); + } + else { + kernUpSweep << > > (round, i, dev_data); + } + checkCUDAError("kernUpSweep failed!"); + cudaDeviceSynchronize(); + } + kernSetRootZero << <1, 1 >> > (round, dev_data); + for (int i = ilog2(round) - 1; i >= 0; i--) { + int numThreads = (round >> (i + 1)); + dim3 fullBlocksPerGrid(numThreads / efficientBlockSize); + if (fullBlocksPerGrid.x == 0) { + kernDownSweep << <1, numThreads >> > (round, i, dev_data); + } + else { + kernDownSweep << > > (round, i, dev_data); + } + checkCUDAError("kernDownSweep failed!"); + cudaDeviceSynchronize(); + } timer().endGpuTimer(); + cudaMemcpy(odata, dev_data, sizeof(int) * n, cudaMemcpyDeviceToHost); + cudaFree(dev_data); + } + + __global__ void kernUpSweep(int n, int level, int* arr) { + int index = (blockIdx.x * blockDim.x + threadIdx.x) << (level + 1); + if (index < n) { + arr[index + (1 << (level + 1)) - 1] += arr[index + (1 << level) - 1]; + } + } + + + __global__ void kernSetRootZero(int n, int* arr) { + arr[n - 1] = 0; + } + + __global__ void kernDownSweep(int n, int level, int* arr) { + int index = (blockIdx.x * blockDim.x + threadIdx.x) << (level + 1); + if (index < n) { + int left = arr[index + (1 << level) - 1]; + arr[index + (1 << level) - 1] = arr[index + (1 << (level + 1)) - 1]; + arr[index + (1 << (level + 1)) - 1] += left; + } + } + + __global__ void kernScanShared(int n, int logn, int* arr, int* sums) { + __shared__ int sArr[2 * efficientBlockSize]; + int index = 2 * (blockIdx.x * blockDim.x + threadIdx.x); + if (index < n) { + sArr[2 * threadIdx.x] = arr[index]; + sArr[2 * threadIdx.x + 1] = arr[index + 1]; + for (int i = 0; i < logn; i++) { + __syncthreads(); + if (threadIdx.x < (blockDim.x >> i)) { + sArr[(threadIdx.x << (i + 1)) + (1 << (i + 1)) - 1] += sArr[(threadIdx.x << (i + 1)) + (1 << i) - 1]; + } + } + __syncthreads(); + if (threadIdx.x == 0) { + sums[blockIdx.x] = sArr[2 * blockDim.x - 1]; + sArr[2 * blockDim.x - 1] = 0; + } + for (int i = logn - 1; i >= 0; i--) { + __syncthreads(); + if (threadIdx.x < (blockDim.x >> i)) { + int left = sArr[(threadIdx.x << (i + 1)) + (1 << i) - 1]; + sArr[(threadIdx.x << (i + 1)) + (1 << i) - 1] = sArr[(threadIdx.x << (i + 1)) + (1 << (i + 1)) - 1]; + sArr[(threadIdx.x << (i + 1)) + (1 << (i + 1)) - 1] += left; + } + } + __syncthreads(); + arr[index] = sArr[2 * threadIdx.x]; + arr[index + 1] = sArr[2 * threadIdx.x + 1]; + __syncthreads(); + } + } + + + void optimizedScan(int n, int* odata, const int* idata) { + int round = 1 << ilog2ceil(n); + int* dev_data; + cudaMalloc((void**)&dev_data, round * sizeof(int)); + checkCUDAError("cudaMalloc dev_data failed!"); + cudaMemcpy(dev_data, idata, sizeof(int) * n, cudaMemcpyHostToDevice); + timer().startGpuTimer(); + optimizedScanRecursive(round, dev_data); + timer().endGpuTimer(); + cudaMemcpy(odata, dev_data, sizeof(int) * n, cudaMemcpyDeviceToHost); + cudaFree(dev_data); + } + + + void optimizedScanRecursive(int n, int* dev_data) { + int round = 1 << ilog2ceil(n); + dim3 fullBlocksPerGrid(round / (2 * efficientBlockSize)); + int* dev_sum; + if (fullBlocksPerGrid.x == 0) { + int logn = ilog2(round); + cudaMalloc((void**)&dev_sum, 1 * sizeof(int)); + kernScanShared << <1, round / 2>> > (round, logn, dev_data, dev_sum); + } + else { + cudaMalloc((void**)&dev_sum, fullBlocksPerGrid.x * sizeof(int)); + int logn = ilog2(efficientBlockSize) + 1; + kernScanShared << > > (round, logn, dev_data, dev_sum); + } + cudaDeviceSynchronize(); + if (fullBlocksPerGrid.x > 1) { + optimizedScanRecursive(fullBlocksPerGrid.x, dev_sum); + cudaDeviceSynchronize(); + fullBlocksPerGrid.x = (round / efficientBlockSize); + kernBlockIncrement << > > (round, dev_data, dev_sum); + cudaDeviceSynchronize(); + } + cudaFree(dev_sum); + + } + + __global__ void kernBlockIncrement(int n, int* data, int* increment) { + int index = blockIdx.x * blockDim.x + threadIdx.x; + __shared__ int offset; + if (threadIdx.x == 0) { + offset = increment[index / (2 * efficientBlockSize)]; + } + __syncthreads(); + data[index] += offset; + } /** @@ -31,10 +167,91 @@ namespace StreamCompaction { * @returns The number of elements remaining after compaction. */ int compact(int n, int *odata, const int *idata) { + int round = 1 << ilog2ceil(n); + int* dev_scan, *dev_bool, *dev_idata, *dev_odata; + cudaMalloc((void**)&dev_scan, round * sizeof(int)); + checkCUDAError("cudaMalloc dev_scan failed!"); + cudaMalloc((void**)&dev_bool, n * sizeof(int)); + checkCUDAError("cudaMalloc dev_bool failed!"); + 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, sizeof(int) * n, cudaMemcpyHostToDevice); + timer().startGpuTimer(); + dim3 fullBlocksPerGrid((n + efficientBlockSize - 1) / efficientBlockSize); + Common::kernMapToBoolean << > > (n, dev_bool, dev_idata); + checkCUDAError("kernMapToBoolean failed!"); + cudaMemcpy(dev_scan, dev_bool, sizeof(int) * n, cudaMemcpyDeviceToDevice); + for (int i = 0; i < ilog2(round); i++) { + int numThreads = (round >> (i + 1)); + dim3 fullBlocksPerGrid(numThreads / efficientBlockSize); + if (fullBlocksPerGrid.x == 0) { + kernUpSweep << <1, numThreads >> > (round, i, dev_scan); + } + else { + kernUpSweep << > > (round, i, dev_scan); + } + checkCUDAError("kernUpSweep failed!"); + cudaDeviceSynchronize(); + } + kernSetRootZero << <1, 1 >> > (round, dev_scan); + for (int i = ilog2(round) - 1; i >= 0; i--) { + int numThreads = (round >> (i + 1)); + dim3 fullBlocksPerGrid(numThreads / efficientBlockSize); + if (fullBlocksPerGrid.x == 0) { + kernDownSweep << <1, numThreads >> > (round, i, dev_scan); + } + else { + kernDownSweep << > > (round, i, dev_scan); + } + checkCUDAError("kernDownSweep failed!"); + cudaDeviceSynchronize(); + } + Common::kernScatter << > > (n, dev_odata, dev_idata, dev_bool, dev_scan); + checkCUDAError("kernScatter failed!"); + timer().endGpuTimer(); + cudaMemcpy(odata, dev_odata, sizeof(int) * n, cudaMemcpyDeviceToHost); + int count, lastBool; + cudaMemcpy(&count, &dev_scan[n-1], sizeof(int), cudaMemcpyDeviceToHost); + cudaMemcpy(&lastBool, &dev_bool[n - 1], sizeof(int), cudaMemcpyDeviceToHost); + cudaFree(dev_scan); + cudaFree(dev_bool); + cudaFree(dev_idata); + cudaFree(dev_odata); + return count + lastBool; + } + + int optimizedCompact(int n, int* odata, const int* idata) { + int round = 1 << ilog2ceil(n); + int* dev_scan, * dev_bool, * dev_idata, * dev_odata; + cudaMalloc((void**)&dev_scan, round * sizeof(int)); + checkCUDAError("cudaMalloc dev_scan failed!"); + cudaMalloc((void**)&dev_bool, n * sizeof(int)); + checkCUDAError("cudaMalloc dev_bool failed!"); + 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, sizeof(int) * n, cudaMemcpyHostToDevice); timer().startGpuTimer(); - // TODO + dim3 fullBlocksPerGrid((n + efficientBlockSize - 1) / efficientBlockSize); + Common::kernMapToBoolean << > > (n, dev_bool, dev_idata); + checkCUDAError("kernMapToBoolean failed!"); + cudaMemcpy(dev_scan, dev_bool, sizeof(int) * n, cudaMemcpyDeviceToDevice); + optimizedScanRecursive(n, dev_scan); + Common::kernScatter << > > (n, dev_odata, dev_idata, dev_bool, dev_scan); + checkCUDAError("kernScatter failed!"); timer().endGpuTimer(); - return -1; + cudaMemcpy(odata, dev_odata, sizeof(int) * n, cudaMemcpyDeviceToHost); + int count, lastBool; + cudaMemcpy(&count, &dev_scan[n - 1], sizeof(int), cudaMemcpyDeviceToHost); + cudaMemcpy(&lastBool, &dev_bool[n - 1], sizeof(int), cudaMemcpyDeviceToHost); + cudaFree(dev_scan); + cudaFree(dev_bool); + cudaFree(dev_idata); + cudaFree(dev_odata); + return count + lastBool; } } } diff --git a/stream_compaction/efficient.h b/stream_compaction/efficient.h index 803cb4f..5921571 100644 --- a/stream_compaction/efficient.h +++ b/stream_compaction/efficient.h @@ -7,7 +7,16 @@ namespace StreamCompaction { StreamCompaction::Common::PerformanceTimer& timer(); void scan(int n, int *odata, const int *idata); + void optimizedScan(int n, int* odata, const int* idata); + void optimizedScanRecursive(int n, int* dev_data); int compact(int n, int *odata, const int *idata); + int optimizedCompact(int n, int* odata, const int* idata); + + __global__ void kernUpSweep(int n, int level, int* arr); + __global__ void kernDownSweep(int n, int level, int* arr); + __global__ void kernSetRootZero(int n, int* arr); + __global__ void kernScanShared(int n, int logn, int* arr); + __global__ void kernBlockIncrement(int n, int* data, int* increment); } } diff --git a/stream_compaction/naive.cu b/stream_compaction/naive.cu index 4308876..19bafa0 100644 --- a/stream_compaction/naive.cu +++ b/stream_compaction/naive.cu @@ -3,6 +3,8 @@ #include "common.h" #include "naive.h" + + namespace StreamCompaction { namespace Naive { using StreamCompaction::Common::PerformanceTimer; @@ -17,9 +19,51 @@ namespace StreamCompaction { * Performs prefix-sum (aka scan) on idata, storing the result into odata. */ void scan(int n, int *odata, const int *idata) { + int* dev_data1, * dev_data2; + cudaMalloc((void**)&dev_data1, n * sizeof(int)); + checkCUDAError("cudaMalloc dev_data1 failed!"); + cudaMalloc((void**)&dev_data2, n * sizeof(int)); + checkCUDAError("cudaMalloc dev_data2 failed!"); + cudaMemcpy(dev_data1, idata, sizeof(int) * n, cudaMemcpyHostToDevice); + cudaMemcpy(dev_data2, idata, sizeof(int), cudaMemcpyHostToDevice); + dim3 fullBlocksPerGrid((n + blockSize - 1) / blockSize); timer().startGpuTimer(); - // TODO + for (int i = 0; i < ilog2ceil(n); i++) { + kernParallelScan << > > (n, i, dev_data1, dev_data2); + checkCUDAError("kernParallelScan failed!"); + cudaDeviceSynchronize(); + int* temp = dev_data1; + dev_data1 = dev_data2; + dev_data2 = temp; + } + kernInclusiveToExclusive << > > (n, dev_data1, dev_data2); + checkCUDAError("kernInclusiveToExclusive failed!"); timer().endGpuTimer(); + cudaMemcpy(odata, dev_data2, sizeof(int) * n, cudaMemcpyDeviceToHost); + cudaFree(dev_data1); + cudaFree(dev_data2); + } + + __global__ void kernParallelScan(int n, int level, int *src, int *dest) { + int index = blockIdx.x * blockDim.x + threadIdx.x; + if (index < n) { + if (index >= (1 << level)) { + dest[index] = src[index - (1 << level)] + src[index]; + } + else { + dest[index] = src[index]; + } + } + } + + __global__ void kernInclusiveToExclusive(int n, int *src, int *dest) { + int index = blockIdx.x * blockDim.x + threadIdx.x; + if (index == 0) { + dest[index] = 0; + } else if (index < n){ + dest[index] = src[index - 1]; + } } } } + diff --git a/stream_compaction/naive.h b/stream_compaction/naive.h index 37dcb06..f28c981 100644 --- a/stream_compaction/naive.h +++ b/stream_compaction/naive.h @@ -7,5 +7,7 @@ namespace StreamCompaction { StreamCompaction::Common::PerformanceTimer& timer(); void scan(int n, int *odata, const int *idata); + __global__ void kernParallelScan(int n, int level, int* src, int* dest); + __global__ void kernInclusiveToExclusive(int n, int* src, int* dest); } } diff --git a/stream_compaction/thrust.cu b/stream_compaction/thrust.cu index 1def45e..47343b2 100644 --- a/stream_compaction/thrust.cu +++ b/stream_compaction/thrust.cu @@ -18,11 +18,19 @@ namespace StreamCompaction { * Performs prefix-sum (aka scan) on idata, storing the result into odata. */ void scan(int n, int *odata, const int *idata) { + int* dev_idata; + cudaMalloc((void**)&dev_idata, sizeof(int) * n); + checkCUDAError("cudaMalloc dev_idata failed!"); + cudaMemcpy(dev_idata, idata, sizeof(int) * n, cudaMemcpyHostToDevice); + thrust::device_ptr dev_thrust_idata(dev_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()); + thrust::exclusive_scan(dev_thrust_idata, dev_thrust_idata + n, dev_thrust_idata); timer().endGpuTimer(); + cudaMemcpy(odata, dev_idata, sizeof(int) * n, cudaMemcpyDeviceToHost); + cudaFree(dev_idata); } } } From dde7e080dba0b6e16f975831789a1285ea3fc436 Mon Sep 17 00:00:00 2001 From: Andrewzhuyx <46278301+Andrewzhuyx@users.noreply.github.com> Date: Wed, 22 Sep 2021 05:33:32 -0400 Subject: [PATCH 2/3] readme --- README.md | 22 ++++++++++++++-------- src/main.cpp | 4 ++-- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index b3e0708..16e8d6b 100644 --- a/README.md +++ b/README.md @@ -4,38 +4,44 @@ CUDA Stream Compaction **University of Pennsylvania, CIS 565: GPU Programming and Architecture, Project 2** * Yuxuan Zhu - * [LinkedIn](https://www.linkedin.com/in/andrewyxzhu/), [personal website]() + * [LinkedIn](https://www.linkedin.com/in/andrewyxzhu/) * Tested on: Windows 10, i7-7700HQ @ 2.80GHz 16GB, GTX 1050 4096MB (Personal Laptop) **Introduction** + This project implemented different versions of the exclusive scanning algorithm and the stream compaction algorithm. I implemented one CPU version of exclusive scanning and four GPU versions of exclusive scanning. + The CPU version of exclusive scanning supports in-place scanning operation by using local variables. It is surprisingly fast, even for millions of elements. The first GPU version of exclusive scanning is naive scanning, which iterativesly sums the array elements and does O(nlog n) computations. The second GPU version of exclusive scanning is the work efficient version, which consists of an up-sweep portion and a down-sweep portion. I -launched different number of threads for each level of computation to reduce the number of "wasted" threads. -The third GPU version is done by calling the thrust library. It is highly optimized and extremely fast for large arrays. -The fourth GPU version is optimized based on the second version. I used shared memory to decrease the freqeuncy of global memory access. It is +launched different number of threads for each level of computation to reduce the number of "wasted" threads and improve performance. +The third GPU version is optimized based on the second version. I used shared memory to decrease the freqeuncy of global memory access. It is roughly twice as fast as the second version. It is also faster than the CPU version for larger arrays. This is considered extra credit. +The fourth GPU version is done by calling the thrust library. It is highly optimized and extremely fast for large arrays. I also implemented two CPU versions of stream compaction and two GPU versions of stream compaction. The first CPU version does stream compaction iteratively. It is quite fast. The second CPU version simulates the stream compaction algorithm on a GPU by using scanning. It is a lot slower. The first GPU version uses work efficient scanning to implement the stream compaction. It is quite fast. -The second GPU version uses the optimized work efficient scanning to implement stream compaction. It is also faster than the first version. +The second GPU version uses the optimized work efficient scanning to implement stream compaction. It is also faster than the first version and often faster than +the CPU version. **Performance Analysis** -I empirically found that the best block size is 256 for all version of scan. +I empirically found that the best block size is 256 for all versions of scan. ![Scan](img/Scan_Performance.png) The graph above shows the performance comparsion among the different versions of the algorithm. The CPU version is almost always faster, unless the array size is extremely large. The thrust library performance is always strictly better than my implementations. This is reasonable since I did not optimize everything due to -my current limited understanding of GPU performance. I don't know what's happening under the hood yet. I tried to analyze performance bottle necks by commenting out certain kernels and checking how much improvement in performance we get. For example, I realized the kernel that adds block increment to each element in a block is very slow. I changed the code to use shared memory to improve the bottleneck due to global memory read/write speed. +my current limited understanding of GPU performance. For example, I did not try to reduce bank conflicts. I don't know what's happening under the hood for the thrust version of scanning yet. I tried to analyze performance bottle necks of my algorithms by commenting out certain kernels and checking how much improvement in performance I get. For example, I realized the kernel that adds block increment to each element in a block is very slow due to frequent read/write of global memory. I optimized the code to use shared memory to improve the bottleneck. ![Compaction](img/Stream_Compaction_Performance.png) -The graph above shows the performance comparision among different version of stream compaction. The CPU version was out-performed by my GPU version when the array size is larger than 100000. +The graph above shows the performance comparision among different versions of stream compaction algorithm. The CPU version was out-performed by my optimized GPU version when the array size is larger than 100000. + +Below is an attachment of the output of my test program. +``` **************** ** SCAN TESTS ** **************** [ 34 43 38 22 3 18 25 14 49 31 41 44 20 ... 9 0 ] ==== cpu scan, power-of-two ==== elapsed time: 9.4994ms (std::chrono Measured) [ 0 34 77 115 137 140 158 183 197 246 277 318 362 ... 244933885 244933894 ] ==== cpu scan, non-power-of-two ==== elapsed time: 6.9843ms (std::chrono Measured) [ 0 34 77 115 137 140 158 183 197 246 277 318 362 ... 244933830 244933839 ] passed ==== naive scan, power-of-two ==== elapsed time: 26.3491ms (CUDA Measured) [ 0 34 77 115 137 140 158 183 197 246 277 318 362 ... 244933885 244933894 ] passed ==== naive scan, non-power-of-two ==== elapsed time: 25.6866ms (CUDA Measured) [ 0 34 77 115 137 140 158 183 197 246 277 318 362 ... 0 0 ] passed ==== work-efficient scan, power-of-two ==== elapsed time: 18.4584ms (CUDA Measured) [ 0 34 77 115 137 140 158 183 197 246 277 318 362 ... 244933885 244933894 ] passed ==== work-efficient scan, non-power-of-two ==== elapsed time: 17.1187ms (CUDA Measured) [ 0 34 77 115 137 140 158 183 197 246 277 318 362 ... 244933830 244933839 ] passed ==== optimized work-efficient scan, power-of-two ==== elapsed time: 8.34717ms (CUDA Measured) [ 0 34 77 115 137 140 158 183 197 246 277 318 362 ... 244933885 244933894 ] passed ==== optimized work-efficient scan, non-power-of-two ==== elapsed time: 7.95645ms (CUDA Measured) [ 0 34 77 115 137 140 158 183 197 246 277 318 362 ... 244933830 244933839 ] passed ==== thrust scan, power-of-two ==== elapsed time: 1.05674ms (CUDA Measured) [ 0 34 77 115 137 140 158 183 197 246 277 318 362 ... 244933885 244933894 ] passed ==== thrust scan, non-power-of-two ==== elapsed time: 1.1897ms (CUDA Measured) [ 0 34 77 115 137 140 158 183 197 246 277 318 362 ... 244933830 244933839 ] passed ***************************** ** STREAM COMPACTION TESTS ** ***************************** [ 1 1 0 3 3 1 2 3 1 3 0 2 1 ... 3 0 ] ==== cpu compact without scan, power-of-two ==== elapsed time: 31.6402ms (std::chrono Measured) [ 1 1 3 3 1 2 3 1 3 2 1 2 1 ... 2 3 ] passed ==== cpu compact without scan, non-power-of-two ==== elapsed time: 28.173ms (std::chrono Measured) [ 1 1 3 3 1 2 3 1 3 2 1 2 1 ... 3 2 ] passed ==== cpu compact with scan ==== elapsed time: 52.5519ms (std::chrono Measured) [ 1 1 3 3 1 2 3 1 3 2 1 2 1 ... 2 3 ] passed ==== work-efficient compact, power-of-two ==== elapsed time: 21.0639ms (CUDA Measured) [ 1 1 3 3 1 2 3 1 3 2 1 2 1 ... 2 3 ] passed ==== work-efficient compact, non-power-of-two ==== elapsed time: 20.3782ms (CUDA Measured) [ 1 1 3 3 1 2 3 1 3 2 1 2 1 ... 3 2 ] passed ==== optimized work-efficient compact, power-of-two ==== elapsed time: 11.0875ms (CUDA Measured) [ 1 1 3 3 1 2 3 1 3 2 1 2 1 ... 2 3 ] passed ==== optimized work-efficient compact, non-power-of-two ==== elapsed time: 11.0332ms (CUDA Measured) [ 1 1 3 3 1 2 3 1 3 2 1 2 1 ... 3 2 ] passed ``` diff --git a/src/main.cpp b/src/main.cpp index d0a9bfc..6c83f11 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -55,10 +55,10 @@ int main(int argc, char* argv[]) { printCmpResult(SIZE, b, c); //* For bug-finding only: Array of 1s to help find bugs in stream compaction or scan - onesArray(SIZE, c); + /**onesArray(SIZE, c); printDesc("1s array for finding bugs"); StreamCompaction::Naive::scan(SIZE, c, a); - printArray(SIZE, c, true); //*/ + printArray(SIZE, c, true); */ zeroArray(SIZE, c); printDesc("naive scan, non-power-of-two"); From f469ec9868d84d17537b1dda2fb2ecf55701738d Mon Sep 17 00:00:00 2001 From: Andrewzhuyx <46278301+Andrewzhuyx@users.noreply.github.com> Date: Wed, 22 Sep 2021 05:35:41 -0400 Subject: [PATCH 3/3] format --- README.md | 83 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 82 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 16e8d6b..f52b2db 100644 --- a/README.md +++ b/README.md @@ -44,4 +44,85 @@ The graph above shows the performance comparision among different versions of st Below is an attachment of the output of my test program. -``` **************** ** SCAN TESTS ** **************** [ 34 43 38 22 3 18 25 14 49 31 41 44 20 ... 9 0 ] ==== cpu scan, power-of-two ==== elapsed time: 9.4994ms (std::chrono Measured) [ 0 34 77 115 137 140 158 183 197 246 277 318 362 ... 244933885 244933894 ] ==== cpu scan, non-power-of-two ==== elapsed time: 6.9843ms (std::chrono Measured) [ 0 34 77 115 137 140 158 183 197 246 277 318 362 ... 244933830 244933839 ] passed ==== naive scan, power-of-two ==== elapsed time: 26.3491ms (CUDA Measured) [ 0 34 77 115 137 140 158 183 197 246 277 318 362 ... 244933885 244933894 ] passed ==== naive scan, non-power-of-two ==== elapsed time: 25.6866ms (CUDA Measured) [ 0 34 77 115 137 140 158 183 197 246 277 318 362 ... 0 0 ] passed ==== work-efficient scan, power-of-two ==== elapsed time: 18.4584ms (CUDA Measured) [ 0 34 77 115 137 140 158 183 197 246 277 318 362 ... 244933885 244933894 ] passed ==== work-efficient scan, non-power-of-two ==== elapsed time: 17.1187ms (CUDA Measured) [ 0 34 77 115 137 140 158 183 197 246 277 318 362 ... 244933830 244933839 ] passed ==== optimized work-efficient scan, power-of-two ==== elapsed time: 8.34717ms (CUDA Measured) [ 0 34 77 115 137 140 158 183 197 246 277 318 362 ... 244933885 244933894 ] passed ==== optimized work-efficient scan, non-power-of-two ==== elapsed time: 7.95645ms (CUDA Measured) [ 0 34 77 115 137 140 158 183 197 246 277 318 362 ... 244933830 244933839 ] passed ==== thrust scan, power-of-two ==== elapsed time: 1.05674ms (CUDA Measured) [ 0 34 77 115 137 140 158 183 197 246 277 318 362 ... 244933885 244933894 ] passed ==== thrust scan, non-power-of-two ==== elapsed time: 1.1897ms (CUDA Measured) [ 0 34 77 115 137 140 158 183 197 246 277 318 362 ... 244933830 244933839 ] passed ***************************** ** STREAM COMPACTION TESTS ** ***************************** [ 1 1 0 3 3 1 2 3 1 3 0 2 1 ... 3 0 ] ==== cpu compact without scan, power-of-two ==== elapsed time: 31.6402ms (std::chrono Measured) [ 1 1 3 3 1 2 3 1 3 2 1 2 1 ... 2 3 ] passed ==== cpu compact without scan, non-power-of-two ==== elapsed time: 28.173ms (std::chrono Measured) [ 1 1 3 3 1 2 3 1 3 2 1 2 1 ... 3 2 ] passed ==== cpu compact with scan ==== elapsed time: 52.5519ms (std::chrono Measured) [ 1 1 3 3 1 2 3 1 3 2 1 2 1 ... 2 3 ] passed ==== work-efficient compact, power-of-two ==== elapsed time: 21.0639ms (CUDA Measured) [ 1 1 3 3 1 2 3 1 3 2 1 2 1 ... 2 3 ] passed ==== work-efficient compact, non-power-of-two ==== elapsed time: 20.3782ms (CUDA Measured) [ 1 1 3 3 1 2 3 1 3 2 1 2 1 ... 3 2 ] passed ==== optimized work-efficient compact, power-of-two ==== elapsed time: 11.0875ms (CUDA Measured) [ 1 1 3 3 1 2 3 1 3 2 1 2 1 ... 2 3 ] passed ==== optimized work-efficient compact, non-power-of-two ==== elapsed time: 11.0332ms (CUDA Measured) [ 1 1 3 3 1 2 3 1 3 2 1 2 1 ... 3 2 ] passed ``` + +``` + +**************** +** SCAN TESTS ** +**************** + [ 34 43 38 22 3 18 25 14 49 31 41 44 20 ... 9 0 ] +==== cpu scan, power-of-two ==== + elapsed time: 9.4994ms (std::chrono Measured) + [ 0 34 77 115 137 140 158 183 197 246 277 318 362 ... 244933885 244933894 ] +==== cpu scan, non-power-of-two ==== + elapsed time: 6.9843ms (std::chrono Measured) + [ 0 34 77 115 137 140 158 183 197 246 277 318 362 ... 244933830 244933839 ] + passed +==== naive scan, power-of-two ==== + elapsed time: 26.3491ms (CUDA Measured) + [ 0 34 77 115 137 140 158 183 197 246 277 318 362 ... 244933885 244933894 ] + passed +==== naive scan, non-power-of-two ==== + elapsed time: 25.6866ms (CUDA Measured) + [ 0 34 77 115 137 140 158 183 197 246 277 318 362 ... 0 0 ] + passed +==== work-efficient scan, power-of-two ==== + elapsed time: 18.4584ms (CUDA Measured) + [ 0 34 77 115 137 140 158 183 197 246 277 318 362 ... 244933885 244933894 ] + passed +==== work-efficient scan, non-power-of-two ==== + elapsed time: 17.1187ms (CUDA Measured) + [ 0 34 77 115 137 140 158 183 197 246 277 318 362 ... 244933830 244933839 ] + passed +==== optimized work-efficient scan, power-of-two ==== + elapsed time: 8.34717ms (CUDA Measured) + [ 0 34 77 115 137 140 158 183 197 246 277 318 362 ... 244933885 244933894 ] + passed +==== optimized work-efficient scan, non-power-of-two ==== + elapsed time: 7.95645ms (CUDA Measured) + [ 0 34 77 115 137 140 158 183 197 246 277 318 362 ... 244933830 244933839 ] + passed +==== thrust scan, power-of-two ==== + elapsed time: 1.05674ms (CUDA Measured) + [ 0 34 77 115 137 140 158 183 197 246 277 318 362 ... 244933885 244933894 ] + passed +==== thrust scan, non-power-of-two ==== + elapsed time: 1.1897ms (CUDA Measured) + [ 0 34 77 115 137 140 158 183 197 246 277 318 362 ... 244933830 244933839 ] + passed + +***************************** +** STREAM COMPACTION TESTS ** +***************************** + [ 1 1 0 3 3 1 2 3 1 3 0 2 1 ... 3 0 ] +==== cpu compact without scan, power-of-two ==== + elapsed time: 31.6402ms (std::chrono Measured) + [ 1 1 3 3 1 2 3 1 3 2 1 2 1 ... 2 3 ] + passed +==== cpu compact without scan, non-power-of-two ==== + elapsed time: 28.173ms (std::chrono Measured) + [ 1 1 3 3 1 2 3 1 3 2 1 2 1 ... 3 2 ] + passed +==== cpu compact with scan ==== + elapsed time: 52.5519ms (std::chrono Measured) + [ 1 1 3 3 1 2 3 1 3 2 1 2 1 ... 2 3 ] + passed +==== work-efficient compact, power-of-two ==== + elapsed time: 21.0639ms (CUDA Measured) + [ 1 1 3 3 1 2 3 1 3 2 1 2 1 ... 2 3 ] + passed +==== work-efficient compact, non-power-of-two ==== + elapsed time: 20.3782ms (CUDA Measured) + [ 1 1 3 3 1 2 3 1 3 2 1 2 1 ... 3 2 ] + passed +==== optimized work-efficient compact, power-of-two ==== + elapsed time: 11.0875ms (CUDA Measured) + [ 1 1 3 3 1 2 3 1 3 2 1 2 1 ... 2 3 ] + passed +==== optimized work-efficient compact, non-power-of-two ==== + elapsed time: 11.0332ms (CUDA Measured) + [ 1 1 3 3 1 2 3 1 3 2 1 2 1 ... 3 2 ] + passed + + +```