From cee3e40be43e2c34c2820daaa9a87ef0b20b855a Mon Sep 17 00:00:00 2001 From: Oliver Hendrych Date: Mon, 15 Sep 2025 11:49:40 -0400 Subject: [PATCH 1/8] stream compaction cpu implementation --- stream_compaction/cpu.cu | 34 ++++++++++++++++++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/stream_compaction/cpu.cu b/stream_compaction/cpu.cu index 719fa115..77737a1d 100644 --- a/stream_compaction/cpu.cu +++ b/stream_compaction/cpu.cu @@ -20,6 +20,11 @@ namespace StreamCompaction { void scan(int n, int *odata, const int *idata) { timer().startCpuTimer(); // TODO + int sum = 0; + for (int i = 0; i < n; i++) { + odata[i] = sum; + sum += idata[i]; + } timer().endCpuTimer(); } @@ -31,8 +36,15 @@ namespace StreamCompaction { int compactWithoutScan(int n, int *odata, const int *idata) { timer().startCpuTimer(); // TODO + int index = 0; + for (int i = 0; i < n; i++) { + if (idata[i]) + { + odata[index++] = idata[i]; + } + } timer().endCpuTimer(); - return -1; + return index; } /** @@ -41,10 +53,28 @@ namespace StreamCompaction { * @returns the number of elements remaining after compaction. */ int compactWithScan(int n, int *odata, const int *idata) { + int* bool_array = new int[n]; + int* scanned_array = new int[n]; timer().startCpuTimer(); // TODO + for (int i = 0; i < n; i++) { + bool_array[i] = idata[i] == 0 ? 0 : 1; + } + int sum = 0; + for (int i = 0; i < n; i++) { + scanned_array[i] = sum; + sum += bool_array[i]; + } + for (int i = 0; i < n; i++) { + if (bool_array[i] == 1) { + odata[scanned_array[i]] = idata[i]; + } + } + int length = scanned_array[n - 1] + bool_array[n - 1]; timer().endCpuTimer(); - return -1; + delete [] bool_array; + delete [] scanned_array; + return length; } } } From 8a775f5bc65a78d9f518ba6c007244c549ed796a Mon Sep 17 00:00:00 2001 From: Oliver Hendrych Date: Tue, 16 Sep 2025 14:37:06 -0400 Subject: [PATCH 2/8] relatively small, pot efficient --- src/main.cpp | 2 +- stream_compaction/common.h | 4 + stream_compaction/efficient.cu | 136 ++++++++++++++++++++++++++++++++- stream_compaction/naive.cu | 48 +++++++++++- 4 files changed, 187 insertions(+), 3 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index 3d5c8820..c9ec254e 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -71,7 +71,7 @@ int main(int argc, char* argv[]) { 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); diff --git a/stream_compaction/common.h b/stream_compaction/common.h index d2c1fed9..836d21e2 100644 --- a/stream_compaction/common.h +++ b/stream_compaction/common.h @@ -30,6 +30,10 @@ inline int ilog2ceil(int x) { return x == 1 ? 0 : ilog2(x - 1) + 1; } +inline int divup(int num, int denom) { + return (num + denom - 1) / denom; +} + namespace StreamCompaction { namespace Common { __global__ void kernMapToBoolean(int n, int *bools, const int *idata); diff --git a/stream_compaction/efficient.cu b/stream_compaction/efficient.cu index 2db346ee..fc2b819c 100644 --- a/stream_compaction/efficient.cu +++ b/stream_compaction/efficient.cu @@ -1,5 +1,6 @@ #include #include +#include #include "common.h" #include "efficient.h" @@ -12,12 +13,145 @@ namespace StreamCompaction { return timer; } + const int maxBlockSize = 128; + + // assumes padding to block size; + __global__ void kernBlockScan(int n, int blockLog2Ceil, int* data) { + int blockOffset = blockDim.x * blockIdx.x; + int idx = threadIdx.x + 1; + // upsweep + for (int i = 1; i <= blockLog2Ceil; i++) { + int pos = idx * (1 << i) - 1; + if (pos < blockDim.x) { + pos += blockOffset; + int offset = 1 << (i - 1); + data[pos] = data[pos] + data[pos - offset]; + } + __syncthreads(); + } + // downsweep + // set root to 0 + + if (threadIdx.x == blockDim.x - 1) { + data[blockOffset + blockDim.x - 1] = 0; + } + + for (int i = blockLog2Ceil; i > 0; i--) { + int pos = idx * (1 << i) - 1; + if (pos < blockDim.x) { + pos += blockOffset; + int offset = 1 << (i - 1); + int t = data[pos - offset]; + data[pos - offset] = data[pos]; + data[pos] = t + data[pos]; + } + + __syncthreads(); + } + } + + // assumes padding to block size; + __global__ void kernBlockScanStoreSum(int n, int blockLog2Ceil, int* data, int* sums) { + int blockOffset = blockDim.x * blockIdx.x; + int idx = threadIdx.x + 1; + // upsweep + for (int i = 1; i <= blockLog2Ceil; i++) { + int pos = idx * (1 << i) - 1; + if (pos < blockDim.x) { + pos += blockOffset; + int offset = 1 << (i - 1); + data[pos] = data[pos] + data[pos - offset]; + } + __syncthreads(); + } + // store sum for cross block sum later + if (threadIdx.x == 0) { + sums[blockIdx.x] = data[blockOffset + blockDim.x - 1]; + } + __syncthreads(); + // downsweep + // set root to 0 + + if (threadIdx.x == blockDim.x - 1) { + data[blockOffset + blockDim.x - 1] = 0; + } + + for (int i = blockLog2Ceil; i > 0; i--) { + int pos = idx * (1 << i) - 1; + if (pos < blockDim.x) { + pos += blockOffset; + int offset = 1 << (i - 1); + int t = data[pos - offset]; + data[pos - offset] = data[pos]; + data[pos] = t + data[pos]; + } + + __syncthreads(); + } + } + + // assumes padding to block size; + __global__ void kernAddSums(int* data, const int* sums) { + int idx = blockDim.x * (blockIdx.x) + threadIdx.x; + data[idx] += sums[blockIdx.x]; + } + /** * Performs prefix-sum (aka scan) on idata, storing the result into odata. */ void scan(int n, int *odata, const int *idata) { + timer().startGpuTimer(); - // TODO + + //std::vector scanArrays{}; + + //int scanArrayLen = divup(n, maxBlockSize) * maxBlockSize; + //while (scanArrayLen > maxBlockSize) { + // int* d_array; + // cudaMalloc(&d_array, scanArrayLen * sizeof(int)); + // checkCUDAError("cudaMalloc scanArrayLen failed"); + // cudaMemset(d_array, 0, scanArrayLen * sizeof(int)); + // scanArrays.push_back(d_array); + // scanArrayLen = divup(n, scanArrayLen) * maxBlockSize; + //} + //{ + // // scanArrayLen = maxBlockSize now + // int* d_array; + // cudaMalloc(&d_array, scanArrayLen * sizeof(int)); + // checkCUDAError("cudaMalloc scanArrayLen failed"); + // cudaMemset(d_array, 0, scanArrayLen * sizeof(int)); + // scanArrays.push_back(d_array); + //} + + size_t sizeInBytes = n * sizeof(int); + + int* d_data; + cudaMalloc(&d_data, sizeInBytes); + checkCUDAError("cudaMalloc d_data failed"); + + int blockSize = 4; + int gridSize = divup(n, blockSize); + + int* d_sums; + cudaMalloc(&d_sums, gridSize * sizeof(int)); + + cudaMemcpy(d_data, idata, sizeInBytes, cudaMemcpyHostToDevice); + checkCUDAError("cudaMemcpy idata failed"); + + + kernBlockScanStoreSum << > > (n, ilog2ceil(blockSize), d_data, d_sums); + kernBlockScan<< <1, gridSize >> > (n, ilog2ceil(gridSize), d_sums); + kernAddSums << > >(d_data, d_sums); + + // due to the fact that we want to make the inclusive scan exclusive instead + //odata[0] = 0; + //cudaMemcpy(odata + 1, d_data, sizeInBytes - sizeof(int), cudaMemcpyDeviceToHost); + cudaMemcpy(odata, d_data, sizeInBytes, cudaMemcpyDeviceToHost); + //cudaMemcpy(odata, d_sums, gridSize * sizeof(int), cudaMemcpyDeviceToHost); + checkCUDAError("cudaMemcpy odata failed"); + + cudaFree(d_data); + checkCUDAError("cudaFree d_data failed"); timer().endGpuTimer(); } diff --git a/stream_compaction/naive.cu b/stream_compaction/naive.cu index 43088769..cdb1403e 100644 --- a/stream_compaction/naive.cu +++ b/stream_compaction/naive.cu @@ -11,7 +11,20 @@ namespace StreamCompaction { static PerformanceTimer timer; return timer; } - // TODO: __global__ + + __global__ void inclusiveScanAdd(const int n, const int stride, const int* idata, int* odata) { + int idx = blockIdx.x * blockDim.x + threadIdx.x; + if (idx >= n) { + return; + } + if (stride > idx) { + odata[idx] = idata[idx]; + } + else + { + odata[idx] = idata[idx] + idata[idx - stride]; + } + } /** * Performs prefix-sum (aka scan) on idata, storing the result into odata. @@ -19,6 +32,39 @@ namespace StreamCompaction { void scan(int n, int *odata, const int *idata) { timer().startGpuTimer(); // TODO + + size_t sizeInBytes = n * sizeof(int); + + int* d_odata; + int* d_idata; + cudaMalloc(&d_odata, sizeInBytes); + checkCUDAError("cudaMalloc d_odata failed"); + cudaMalloc(&d_idata, sizeInBytes); + checkCUDAError("cudaMalloc d_idata failed"); + + cudaMemcpy(d_idata, idata, sizeInBytes, cudaMemcpyHostToDevice); + checkCUDAError("cudaMemcpy d_idata failed"); + + int blockSize = 128; + int gridSize = divup(n, blockSize); + + for (int i = 0; i < ilog2ceil(n); i++) { + int stride = 1 << i; + inclusiveScanAdd << > > (n, stride, d_idata, d_odata); + checkCUDAError("inclusiveScanAdd failed"); + std::swap(d_odata, d_idata); + } + + // due to the fact that we want to make the inclusive scan exclusive instead + odata[0] = 0; + cudaMemcpy(odata + 1, d_idata, sizeInBytes - sizeof(int), cudaMemcpyDeviceToHost); + checkCUDAError("cudaMemcpy odata failed"); + + cudaFree(d_odata); + checkCUDAError("cudaFree d_odata failed"); + cudaFree(d_idata); + checkCUDAError("cudaFree d_idata failed"); + timer().endGpuTimer(); } } From 312c5ae8079fe71a148912d0ff353ecdbb06ec9d Mon Sep 17 00:00:00 2001 From: Oliver Hendrych Date: Tue, 16 Sep 2025 15:28:12 -0400 Subject: [PATCH 3/8] efficient any size --- src/main.cpp | 5 +- stream_compaction/efficient.cu | 98 ++++++++++++++++++---------------- 2 files changed, 56 insertions(+), 47 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index c9ec254e..a720f602 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 = 1 << 20; // 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]; @@ -29,6 +29,9 @@ int main(int argc, char* argv[]) { genArray(SIZE - 1, a, 50); // Leave a 0 at the end to test that edge case a[SIZE - 1] = 0; + /*for (int i = 0; i < SIZE; i++) { + a[i] = 1; + }*/ printArray(SIZE, a, true); // initialize b using StreamCompaction::CPU::scan you implement diff --git a/stream_compaction/efficient.cu b/stream_compaction/efficient.cu index fc2b819c..ff67dec9 100644 --- a/stream_compaction/efficient.cu +++ b/stream_compaction/efficient.cu @@ -13,10 +13,10 @@ namespace StreamCompaction { return timer; } - const int maxBlockSize = 128; + const int maxBlockSize = 4; // assumes padding to block size; - __global__ void kernBlockScan(int n, int blockLog2Ceil, int* data) { + __global__ void kernBlockScan(int blockLog2Ceil, int* data) { int blockOffset = blockDim.x * blockIdx.x; int idx = threadIdx.x + 1; // upsweep @@ -51,7 +51,7 @@ namespace StreamCompaction { } // assumes padding to block size; - __global__ void kernBlockScanStoreSum(int n, int blockLog2Ceil, int* data, int* sums) { + __global__ void kernBlockScanStoreSum(int blockLog2Ceil, int* data, int* sums) { int blockOffset = blockDim.x * blockIdx.x; int idx = threadIdx.x + 1; // upsweep @@ -103,55 +103,61 @@ namespace StreamCompaction { timer().startGpuTimer(); - //std::vector scanArrays{}; - - //int scanArrayLen = divup(n, maxBlockSize) * maxBlockSize; - //while (scanArrayLen > maxBlockSize) { - // int* d_array; - // cudaMalloc(&d_array, scanArrayLen * sizeof(int)); - // checkCUDAError("cudaMalloc scanArrayLen failed"); - // cudaMemset(d_array, 0, scanArrayLen * sizeof(int)); - // scanArrays.push_back(d_array); - // scanArrayLen = divup(n, scanArrayLen) * maxBlockSize; - //} - //{ - // // scanArrayLen = maxBlockSize now - // int* d_array; - // cudaMalloc(&d_array, scanArrayLen * sizeof(int)); - // checkCUDAError("cudaMalloc scanArrayLen failed"); - // cudaMemset(d_array, 0, scanArrayLen * sizeof(int)); - // scanArrays.push_back(d_array); - //} - - size_t sizeInBytes = n * sizeof(int); - - int* d_data; - cudaMalloc(&d_data, sizeInBytes); - checkCUDAError("cudaMalloc d_data failed"); - - int blockSize = 4; - int gridSize = divup(n, blockSize); - - int* d_sums; - cudaMalloc(&d_sums, gridSize * sizeof(int)); - - cudaMemcpy(d_data, idata, sizeInBytes, cudaMemcpyHostToDevice); + if (n <= 0) { + return; + } + + std::vector scanArrays{}; + std::vector scanArrayLens{}; + + // ceil to next maxBlockSize + int scanArrayLen = divup(n, maxBlockSize) * maxBlockSize; + while (scanArrayLen > maxBlockSize) { + int* d_array; + cudaMalloc(&d_array, scanArrayLen * sizeof(int)); + checkCUDAError("cudaMalloc scanArrayLen failed"); + cudaMemset(d_array, 0, scanArrayLen * sizeof(int)); + scanArrays.push_back(d_array); + scanArrayLens.push_back(scanArrayLen); + //fprintf(stderr, "Size %i\n", scanArrayLen); + // divide by maxBlockSize then ceil to it + scanArrayLen = divup(scanArrayLen / maxBlockSize, maxBlockSize) * maxBlockSize; + } + { + // scanArrayLen = maxBlockSize now + int* d_array; + cudaMalloc(&d_array, scanArrayLen * sizeof(int)); + checkCUDAError("cudaMalloc scanArrayLen failed"); + cudaMemset(d_array, 0, scanArrayLen * sizeof(int)); + scanArrays.push_back(d_array); + scanArrayLens.push_back(scanArrayLen); + } + + cudaMemcpy(scanArrays[0], idata, n * sizeof(int), cudaMemcpyHostToDevice); checkCUDAError("cudaMemcpy idata failed"); + for (int i = 0; i < scanArrays.size() - 1; i++) { + int arrayLen = scanArrayLens[i]; + kernBlockScanStoreSum << < arrayLen / maxBlockSize, maxBlockSize >> > (ilog2ceil(maxBlockSize), scanArrays[i], scanArrays[i + 1]); + checkCUDAError("kernBlockScanStoreSum failed"); + } + kernBlockScan << <1, maxBlockSize >> > (ilog2ceil(maxBlockSize), scanArrays.back()); + checkCUDAError("kernBlockScan failed"); - kernBlockScanStoreSum << > > (n, ilog2ceil(blockSize), d_data, d_sums); - kernBlockScan<< <1, gridSize >> > (n, ilog2ceil(gridSize), d_sums); - kernAddSums << > >(d_data, d_sums); + for (int i = scanArrays.size() - 2; i >= 0; i--) { + int arrayLen = scanArrayLens[i]; + kernAddSums << < arrayLen / maxBlockSize, maxBlockSize >> > (scanArrays[i], scanArrays[i + 1]); + checkCUDAError("kernAddSums failed"); + } - // due to the fact that we want to make the inclusive scan exclusive instead - //odata[0] = 0; - //cudaMemcpy(odata + 1, d_data, sizeInBytes - sizeof(int), cudaMemcpyDeviceToHost); - cudaMemcpy(odata, d_data, sizeInBytes, cudaMemcpyDeviceToHost); - //cudaMemcpy(odata, d_sums, gridSize * sizeof(int), cudaMemcpyDeviceToHost); + cudaMemcpy(odata, scanArrays[0], n * sizeof(int), cudaMemcpyDeviceToHost); + //cudaMemcpy(odata, scanArrays.back(), scanArrayLens.back() * sizeof(int), cudaMemcpyDeviceToHost); checkCUDAError("cudaMemcpy odata failed"); - cudaFree(d_data); - checkCUDAError("cudaFree d_data failed"); + for (int i = 0; i < scanArrays.size(); i++) { + cudaFree(scanArrays[i]); + checkCUDAError("cudaFree scanArrays[i] failed"); + } timer().endGpuTimer(); } From 904b06eb181fa2209003489b9b6aaab8e189b61b Mon Sep 17 00:00:00 2001 From: Oliver Hendrych Date: Tue, 16 Sep 2025 16:08:31 -0400 Subject: [PATCH 4/8] efficient compaction and oops forgot couple syncthreads --- src/main.cpp | 2 +- stream_compaction/common.cu | 14 ++++- stream_compaction/efficient.cu | 109 ++++++++++++++++++++++++++++++++- 3 files changed, 119 insertions(+), 6 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index a720f602..4ecbb083 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -13,7 +13,7 @@ #include #include "testing_helpers.hpp" -const int SIZE = 1 << 20; // feel free to change the size of array +const int SIZE = 1 << 26; // 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]; diff --git a/stream_compaction/common.cu b/stream_compaction/common.cu index 2ed6d630..f4632198 100644 --- a/stream_compaction/common.cu +++ b/stream_compaction/common.cu @@ -23,7 +23,11 @@ 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 idx = blockDim.x * blockIdx.x + threadIdx.x; + if (idx > n) { + return; + } + bools[idx] = idata[idx] == 0 ? 0 : 1; } /** @@ -32,7 +36,13 @@ namespace StreamCompaction { */ __global__ void kernScatter(int n, int *odata, const int *idata, const int *bools, const int *indices) { - // TODO + int idx = blockDim.x * blockIdx.x + threadIdx.x; + if (idx > n) { + return; + } + if (bools[idx]) { + odata[indices[idx]] = idata[idx]; + } } } diff --git a/stream_compaction/efficient.cu b/stream_compaction/efficient.cu index ff67dec9..41962d7e 100644 --- a/stream_compaction/efficient.cu +++ b/stream_compaction/efficient.cu @@ -13,7 +13,10 @@ namespace StreamCompaction { return timer; } - const int maxBlockSize = 4; + using StreamCompaction::Common::kernMapToBoolean; + using StreamCompaction::Common::kernScatter; + + const int maxBlockSize = 128; // assumes padding to block size; __global__ void kernBlockScan(int blockLog2Ceil, int* data) { @@ -35,6 +38,7 @@ namespace StreamCompaction { if (threadIdx.x == blockDim.x - 1) { data[blockOffset + blockDim.x - 1] = 0; } + __syncthreads(); for (int i = blockLog2Ceil; i > 0; i--) { int pos = idx * (1 << i) - 1; @@ -75,6 +79,7 @@ namespace StreamCompaction { if (threadIdx.x == blockDim.x - 1) { data[blockOffset + blockDim.x - 1] = 0; } + __syncthreads(); for (int i = blockLog2Ceil; i > 0; i--) { int pos = idx * (1 << i) - 1; @@ -172,9 +177,107 @@ namespace StreamCompaction { */ int compact(int n, int *odata, const int *idata) { timer().startGpuTimer(); - // TODO + if (n <= 0) { + return -1; + } + + int topArrayLen = divup(n, maxBlockSize) * maxBlockSize; + + int* d_idata; + cudaMalloc(&d_idata, topArrayLen * sizeof(int)); + checkCUDAError("cudaMalloc d_idata failed"); + cudaMemset(d_idata, 0, topArrayLen * sizeof(int)); + checkCUDAError("cudaMemset d_idata failed"); + cudaMemcpy(d_idata, idata, n * sizeof(int), cudaMemcpyHostToDevice); + checkCUDAError("cudaMemcpy d_idata failed"); + + int* d_bools; + cudaMalloc(&d_bools, topArrayLen * sizeof(int)); + checkCUDAError("cudaMalloc d_bools failed"); + + kernMapToBoolean << > > (topArrayLen, d_bools, d_idata); + checkCUDAError("kernMapToBoolean failed"); + + std::vector scanArrays{}; + std::vector scanArrayLens{}; + + // ceil to next maxBlockSize + int scanArrayLen = topArrayLen; + while (scanArrayLen > maxBlockSize) { + int* d_array; + cudaMalloc(&d_array, scanArrayLen * sizeof(int)); + checkCUDAError("kernMapToBoolean failed"); + cudaMemset(d_array, 0, scanArrayLen * sizeof(int)); + checkCUDAError("cudaMemset d_array failed"); + scanArrays.push_back(d_array); + scanArrayLens.push_back(scanArrayLen); + //fprintf(stderr, "Size %i\n", scanArrayLen); + // divide by maxBlockSize then ceil to it + scanArrayLen = divup(scanArrayLen / maxBlockSize, maxBlockSize) * maxBlockSize; + } + { + // scanArrayLen = maxBlockSize now + int* d_array; + cudaMalloc(&d_array, scanArrayLen * sizeof(int)); + checkCUDAError("cudaMalloc scanArrayLen failed"); + cudaMemset(d_array, 0, scanArrayLen * sizeof(int)); + checkCUDAError("cudaMemset d_array failed"); + scanArrays.push_back(d_array); + scanArrayLens.push_back(scanArrayLen); + } + + cudaMemcpy(scanArrays[0], d_bools, topArrayLen * sizeof(int), cudaMemcpyDeviceToDevice); + checkCUDAError("cudaMemcpy d_bools failed"); + + for (int i = 0; i < scanArrays.size() - 1; i++) { + int arrayLen = scanArrayLens[i]; + kernBlockScanStoreSum << < arrayLen / maxBlockSize, maxBlockSize >> > (ilog2ceil(maxBlockSize), scanArrays[i], scanArrays[i + 1]); + checkCUDAError("kernBlockScanStoreSum failed"); + } + kernBlockScan << <1, maxBlockSize >> > (ilog2ceil(maxBlockSize), scanArrays.back()); + checkCUDAError("kernBlockScan failed"); + + for (int i = scanArrays.size() - 2; i >= 0; i--) { + int arrayLen = scanArrayLens[i]; + kernAddSums << < arrayLen / maxBlockSize, maxBlockSize >> > (scanArrays[i], scanArrays[i + 1]); + checkCUDAError("kernAddSums failed"); + } + + int* d_indices = scanArrays[0]; + + cudaDeviceSynchronize(); + + int compactLen; + int lastBool; + cudaMemcpy(&compactLen, &d_indices[topArrayLen - 1], sizeof(int), cudaMemcpyDeviceToHost); + checkCUDAError("cudaMemcpy compactLen failed"); + cudaMemcpy(&lastBool, &d_bools[topArrayLen - 1], sizeof(int), cudaMemcpyDeviceToHost); + checkCUDAError("cudaMemcpy lastBool failed"); + compactLen += lastBool; + + int* d_odata; + cudaMalloc(&d_odata, compactLen * sizeof(int)); + checkCUDAError("cudaMalloc d_odata failed"); + + kernScatter << > > (n, d_odata, d_idata, d_bools, d_indices); + checkCUDAError("kernScatter failed"); + cudaDeviceSynchronize(); + cudaMemcpy(odata, d_odata, compactLen * sizeof(int), cudaMemcpyDeviceToHost); + checkCUDAError("cudaMemcpy d_odata failed"); + + for (int i = 0; i < scanArrays.size(); i++) { + cudaFree(scanArrays[i]); + checkCUDAError("cudaFree scanArrays[i] failed"); + } + cudaFree(d_bools); + checkCUDAError("cudaFree d_bools failed"); + cudaFree(d_idata); + checkCUDAError("cudaFree d_idata failed"); + cudaFree(d_odata); + checkCUDAError("cudaFree d_odata failed"); + timer().endGpuTimer(); - return -1; + return compactLen; } } } From 95bae172324396b2462dcfdfba314df158a46feb Mon Sep 17 00:00:00 2001 From: Oliver Hendrych Date: Tue, 16 Sep 2025 20:20:28 -0400 Subject: [PATCH 5/8] add thrust impl --- stream_compaction/thrust.cu | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/stream_compaction/thrust.cu b/stream_compaction/thrust.cu index 1def45e7..390bc8ab 100644 --- a/stream_compaction/thrust.cu +++ b/stream_compaction/thrust.cu @@ -22,6 +22,13 @@ namespace StreamCompaction { // 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::device_vector dv_idata(idata, idata + n); + thrust::device_vector dv_odata(n); + + thrust::exclusive_scan(dv_idata.begin(), dv_idata.end(), dv_odata.begin()); + + thrust::copy(dv_odata.begin(), dv_odata.end(), odata); + timer().endGpuTimer(); } } From b7b4d9eaa54179fddae2c1aa34acc9976c47e489 Mon Sep 17 00:00:00 2001 From: Oliver Hendrych Date: Tue, 16 Sep 2025 23:47:23 -0400 Subject: [PATCH 6/8] add readme, exclude memory calls from timing, and choose optimal block sizes --- README.md | 147 +++++++++++++++++- img/nsight_compute.png | Bin 0 -> 171587 bytes img/nsight_systems_thrust.png | Bin 0 -> 82250 bytes img/scan_runtime_vs_block_size.png | Bin 0 -> 20972 bytes img/scan_runtime_vs_input_length.png | Bin 0 -> 32394 bytes img/stream_compaction_diagram.png | Bin 0 -> 11192 bytes ...tream_compaction_runtime_vs_block_size.png | Bin 0 -> 18599 bytes stream_compaction/efficient.cu | 36 +++-- stream_compaction/naive.cu | 9 +- stream_compaction/thrust.cu | 7 +- 10 files changed, 171 insertions(+), 28 deletions(-) create mode 100644 img/nsight_compute.png create mode 100644 img/nsight_systems_thrust.png create mode 100644 img/scan_runtime_vs_block_size.png create mode 100644 img/scan_runtime_vs_input_length.png create mode 100644 img/stream_compaction_diagram.png create mode 100644 img/stream_compaction_runtime_vs_block_size.png diff --git a/README.md b/README.md index 0e38ddb1..d7603c2e 100644 --- a/README.md +++ b/README.md @@ -3,12 +3,147 @@ CUDA Stream Compaction **University of Pennsylvania, CIS 565: GPU Programming and Architecture, Project 2** -* (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) +![](img/stream_compaction_diagram.png) -### (TODO: Your README) +* Oliver Hendrych + * [LinkedIn](https://www.linkedin.com/in/oliver-hendrych/) +* Tested on: Windows 11, i7-14700K @ 3.4GHz 32GB, RTX 4070 SUPER 12GB (Personal) -Include analysis, etc. (Remember, this is public, so don't put -anything here that you don't want to share with the world.) +## Description +This project implements exclusive scan (prefix sum) on the CPU, with a naive GPU implementation, with a work-efficient GPU implementation, and finally by wrapping thrust calls. Leveraging these scan implementations, it also implements stream compaction, which is the process of removing certain (in this case, 0) elements from an array. Stream compaction is achieved through CPU implementations with and without using scan, and a GPU implementation, using the work-efficient scan. All implementations scale to any size of input array, including non-powers of two (efficiently). + +## Performance + +### Block Size + +The runtime for various block sizes affecting the GPU implementations are recorded below. CPU and Thrust implementations were averaged and are included for comparison. + +#### Runtime (ms) vs Block Size +| Block Size | Scan | | | | Compaction | | | +|------------|---------|-------------|----------------------|--------------|--------------------|-----------------|----------------------| +| Block Size | CPU | GPU - Naive | GPU - Work-efficient | GPU - Thrust | CPU - without scan | CPU - with scan | GPU - Work-efficient | +| 4 | 27.4916 | 231.784 | 28.3375 | 2.0969 | 123.318 | 241.689 | 47.2288 | +| 8 | 27.4916 | 142.151 | 17.6827 | 2.0969 | 123.318 | 241.689 | 29.7216 | +| 16 | 27.4916 | 70.1123 | 7.82448 | 2.0969 | 123.318 | 241.689 | 13.8916 | +| 32 | 27.4916 | 37.9731 | 4.7431 | 2.0969 | 123.318 | 241.689 | 9.0921 | +| 64 | 27.4916 | 37.5656 | 3.98858 | 2.0969 | 123.318 | 241.689 | 8.68864 | +| 128 | 27.4916 | 37.524 | 4.54752 | 2.0969 | 123.318 | 241.689 | 8.55347 | +| 256 | 27.4916 | 36.7617 | 4.5695 | 2.0969 | 123.318 | 241.689 | 8.95078 | +| 512 | 27.4916 | 38.0105 | 4.38698 | 2.0969 | 123.318 | 241.689 | 8.64563 | +| 1024 | 27.4916 | 35.8252 | 5.87482 | 2.0969 | 123.318 | 241.689 | 10.196 | + +Below is a graph of the scan runtime across various block sizes (from the table above). Best (lowest) runtime for GPU implementations is marked. + +![](img/scan_runtime_vs_block_size.png) + +Below is a graph of the stream compaction runtime across various block sizes (from the table above). Best (lowest) runtime for GPU implementation is marked. + +![](img/stream_compaction_runtime_vs_block_size.png) + +#### Optimal + +The optimal block size for the naive GPU scan implementation was 1024, with block sizes from 32 to 1024 having similar runtimes. The optimal block size for the work-efficient GPU scan implementation was 64, and 128 for the work-efficient stream compaction (with 64 behaving similarly). The work-efficient GPU implementation should do better with increasing block sizes, as that reduces the number of layers (and therefore kernel invokations) that the algorithm must use. However, each thread requires a fair amount of resources to complete its operations. Therefore, it makes sense that having a smaller block size would increase performance, as more blocks could be scheduled on the same SM. + +### Input Length + +#### Runtime (ms) vs Input Length +| Input Length | CPU | GPU - Naive | GPU - Work-efficient | GPU - Thrust | +|--------------|---------|-------------|----------------------|--------------| +| 2^0 | 0.0001 | 0.002048 | 0.190464 | 0.131392 | +| 2^2 | 0.0001 | 0.216064 | 0.177152 | 0.083904 | +| 2^4 | 0.0001 | 0.079872 | 0.132096 | 0.053568 | +| 2^6 | 0.0002 | 0.120832 | 0.180224 | 0.055328 | +| 2^8 | 0.0002 | 0.073728 | 0.117792 | 0.079584 | +| 2^10 | 0.0006 | 0.195776 | 0.18432 | 0.134144 | +| 2^12 | 0.0018 | 0.183296 | 0.351232 | 0.07168 | +| 2^14 | 0.0069 | 0.12288 | 0.280576 | 0.405504 | +| 2^16 | 0.0223 | 0.311008 | 0.29504 | 0.130784 | +| 2^18 | 0.1128 | 0.460416 | 0.169536 | 0.347808 | +| 2^20 | 0.4782 | 0.363488 | 0.194592 | 0.374752 | +| 2^22 | 1.6566 | 0.812992 | 0.696896 | 0.564224 | +| 2^24 | 8.907 | 8.42656 | 1.42976 | 0.881376 | +| 2^26 | 27.4916 | 35.8252 | 3.98858 | 2.0969 | + +![](scan_runtime_vs_input_length.png) + +Note: both axes are on a logarithmic scale. + +As can be seen in the table and graph, the CPU implementation remains faster until the 2^20 (approximately 1 million) elements mark. We can also see that the GPU implementations remain largerly constant in their runtimes up to this point. This likely means that there is overhead involved in the GPU implementations that are not worth the cost until 2^20 elements are in the array (on this machine). As such, in actual deployments, it would make sense for the scan function to determine which implementation to use based on the size and on profiling done on the machine. Smaller arrays would be scanned on the CPU, while large ones would be processed on the GPU. + +#### Thrust Timeline + +![](nsight_systems_thrust.png) + +First, the device vector for the input is created and its contents are copied (`cub::DeviceFor::Bulk`), and the device vector for the output is created. Between the two `cudaEventRecord` (which happens after the first pictured `cudaStreamSynchronize`), the thrust invocation takes place, and we can see a few cuda calls. First, a `cudaMalloc` call appears. A couple helper library calls appear to get the kernel `DeviceScanInitKernel` and its name, then that kernel is run. Similarly, a couple cuda calls appear before a call to the actual `DeviceScanKernel`. Then, the device syncronizes, a `cudaFree` occurs (presumably to free the previously allocated memory), then the `cudaEventRecord` appears, marking the end of the thrust invokation. After that, a cudaMemcpy takes place (to copy the information back to the host). The allocation (and later free) are likely to create some internal buffers necessary for the scan implementation. The init kernel takes almost no time at all, especially compared to the actual scan kernel. + +## Observations + +![](nsight_compute.png) + +Looking at Nsight Compute, it would appear that the main bottleneck in all implementations is the memory. The naive implementation (`inclusiveScanAdd`) is consistently around 90% memory throughput, while at only 10% compute throughput. Similarly, while the work-efficient implementation (`kernBlockScanStoreSum`) achieves a much higher compute throughput (especially in the first layers/invocations), it reaches 97.49% memory throughput, so it would again appear to be limited by memory throughput. The final `kernAddSums` (the second longest invokation in the work-efficient implementation) also reaches 86% memory throughput, meaning it is also likely bandwidth limited. + +## Test Output + +Below is an output of the tests with a power-of-two size of `2^26` and a non-power-of-two size of `2^26-3`, with samples being from 0 to 50. This is near the limit of the size of the input arrays, as larger results in integer overflow near the ends of the array. A block size of 1024 was chosen for the naive implementation, and a block size of 64 was chosen for the work-efficient implementation, as +``` +**************** +** SCAN TESTS ** +**************** + [ 47 4 39 1 24 9 35 15 30 20 24 19 21 ... 12 0 ] +==== cpu scan, power-of-two ==== + elapsed time: 27.1716ms (std::chrono Measured) + [ 0 47 51 90 91 115 124 159 174 204 224 248 267 ... 1643558162 1643558174 ] +==== cpu scan, non-power-of-two ==== + elapsed time: 27.2493ms (std::chrono Measured) + [ 0 47 51 90 91 115 124 159 174 204 224 248 267 ... 1643558094 1643558110 ] + passed +==== naive scan, power-of-two ==== + elapsed time: 35.9803ms (CUDA Measured) + passed +==== naive scan, non-power-of-two ==== + elapsed time: 36.0246ms (CUDA Measured) + passed +==== work-efficient scan, power-of-two ==== + elapsed time: 4.49821ms (CUDA Measured) + [ 0 47 51 90 91 115 124 159 174 204 224 248 267 ... 1643558162 1643558174 ] + passed +==== work-efficient scan, non-power-of-two ==== + elapsed time: 3.91286ms (CUDA Measured) + passed +==== thrust scan, power-of-two ==== + elapsed time: 2.12493ms (CUDA Measured) + passed +==== thrust scan, non-power-of-two ==== + elapsed time: 2.87011ms (CUDA Measured) + passed + +***************************** +** STREAM COMPACTION TESTS ** +***************************** + [ 0 1 3 2 2 2 2 3 2 0 1 3 2 ... 1 0 ] +==== cpu compact without scan, power-of-two ==== + elapsed time: 122.684ms (std::chrono Measured) + [ 1 3 2 2 2 2 3 2 1 3 2 2 1 ... 1 1 ] + passed +==== cpu compact without scan, non-power-of-two ==== + elapsed time: 121.005ms (std::chrono Measured) + [ 1 3 2 2 2 2 3 2 1 3 2 2 1 ... 1 1 ] + passed +==== cpu compact with scan ==== + elapsed time: 283.972ms (std::chrono Measured) + [ 1 3 2 2 2 2 3 2 1 3 2 2 1 ... 1 1 ] + passed +==== work-efficient compact, power-of-two ==== + elapsed time: 8.92416ms (CUDA Measured) + passed +==== work-efficient compact, non-power-of-two ==== + elapsed time: 8.2688ms (CUDA Measured) + passed +``` + +### Mistakes + +Original profiling was done including the `cudaMalloc`, `cudaMemcpy`, `cudaFree`, and other initial/final memory operations for the GPU implementations. This had a drastic impact on perceived performance, with the work-efficient implementation especially appearing to perform much worse. Originally, the allocations were included in the work-efficient scan due to their dynamic nature as a part of the dynamic number and size of the layers. + +A bug was encountered once when switching to the Release configuration and having large memory sizes, but did not appear in the debug builds. The first instinct was then that it was a race condition, and, indeed, a `__syncthreads()` was missing in the downsweep implementation, after the root of the tree was set to 0 but before the rest of the downsweep took place. \ No newline at end of file diff --git a/img/nsight_compute.png b/img/nsight_compute.png new file mode 100644 index 0000000000000000000000000000000000000000..da2b5599f35792ed04600d16928489eb64ddf9be GIT binary patch literal 171587 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%0Dn16Kijh=BWix z%&4Hkll!peM*K>_Y`&h(b;=Q}HWglN(ne$H(Om$Ituy&)Kq-Q?5WOL1&zudp`Cu+F zZzQ;XS@X^dpk^2pWN=bolpS09(KPVf!k25sWsF8+VXaNC=CS?R^h+a^YU6@Hs!m1- zwfqHk5pjIJvR=x&mraPjvyw)3W;pg*BgHAm0tmD-V!J$NSuoby$jxIHzP zD=S!ZR=`*xT`ByQAhXcJlj@0LuND>-9sw<%H!MCJ$HYt=1*DHX9XP1I4+AWr1(W_! zIbox<%`^-&2BgowN1_`(4QEm`rkrxu1aiJkOfFM2h@|JIy^JHSlyCg z}y!9URVqJ5_^F14bh6t9> zDZARUY@|)9EX30FZ?K7ViJg{aF zaF{O*S2?WbZVmzR^gVkH(rS9+tyH;ikVM1*lto85WECGP_;!t^8*mzf0w`_d6_~8q zN1WW;LA;aJY?J?BN@B$0Q*GYI5fY>+m7M$DVh&^lPagztbd&~pk3P|n^VrF3HziZ0 zUTJL8p4Lg6obQ2H0Pr)EVfwFiXXZQ39Eqf3R(WO5hRx?`Jq@1z@3|Uy;|LNXq+?jyBYi*NqvDD_z9DQsAPd9icAx%kyR* zY(?dHv|Cs1z}5BI>9=p6gCt)6soS0lzS|R@a7D<;fb4pYm1St*qts^VV&ZVS2~EMu zrDK=i^Q^+fZ>9oY9I&$+V*!=!OUA;Xk{~u90jlucw5gka8@8bzc9^_!(N`g0dV z;2Jx28du>wd>zi{_dFEN)~ouH{Q5yyJpvNS`4QXVOv?!A7;>PLn0;e8pO;_sHZ+tP zKKRz}FrPh&X1zW0L{+@!2*= zw;)dkO3D86HT=Wxlpnx(6>Nnq^QQIPI|8gDaqo0!%yOUMA(e~PZ1;XA-r~;-Jws^EG*4mNw>y+`sRG915Aim4NmHnU&i2;biZ9_|3z z%^Y*G^DrcdYX(E#%5%JCb_q5Vs;BX%{7eB@^iu;bWC)M)3JU=gBmnSkkvJueAD+?j z0YFLFc)OU7G9IG)t3HC_DG(cfu$HNDqK>Qpqnh@pNjL}K0khPRII%(XhTZZ*s!-2` z@&^=D&(O*ga)7b@&`r;mc;PS&nVsp^i^X;zj-nElSTau|ixUCpF5Z%wo;>*7P+la3 zl&rY!mp>f4wD(3T$lOzw_6F}EfGWgJ+Iug$x#hhKD_Bsi&e45F!Ee^Z!1t5$`^jQ< zf||A!dBI@RPid~Vjv{U1>gJQe3i6oSw2+PFP|Bm9UkkOW{A6B!@{L0FBR9w;18aa0 zU;sU~0Z7(3JDgILgTZ^zoI|R`#PhAZ4@^g?un#)oEPh|i)ZXIy&nRIdA8lz8e}n_T zu#?Nr3nP_$n@gjyF+0Ayg8gMBcI{-6O#Y2$dOajFbRzchu}k|{E#aG2J~Cdm3Jv+4 zNS-zLIKW zIvC!hdQwGVp5Mm2$_UWUM=q;S|KDcSa>zU_E#>T&_ABoI;GNSX8`0YU!%vGc{fGZx z+<0@DOeuX7M?ZRPLv&vBKcuRe-X?0^i}K@$b?IUd`+bpuk1|UBpg%;Qu9!@ngF6+;DI<$f?#4Yeq&&4oX55{Do{yX%9HbP zxB({0;{Np>!EW&hYeM@BkQr!`o4;U%0AoN_)@p)4h$@m+C}r0Ua6`l)W3KiM{nX=e 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 PkwR5bL!n6S?vwumL5ZjI literal 0 HcmV?d00001 diff --git a/img/scan_runtime_vs_input_length.png b/img/scan_runtime_vs_input_length.png new file mode 100644 index 0000000000000000000000000000000000000000..bc5e603e88bbafd2beb69bd373ae78d2c62c03aa GIT binary patch literal 32394 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 P4~3$F>irTqlfeHECY-V3 literal 0 HcmV?d00001 diff --git a/stream_compaction/efficient.cu b/stream_compaction/efficient.cu index 41962d7e..9e7f9d7b 100644 --- a/stream_compaction/efficient.cu +++ b/stream_compaction/efficient.cu @@ -16,7 +16,7 @@ namespace StreamCompaction { using StreamCompaction::Common::kernMapToBoolean; using StreamCompaction::Common::kernScatter; - const int maxBlockSize = 128; + const int maxBlockSize = 64; // assumes padding to block size; __global__ void kernBlockScan(int blockLog2Ceil, int* data) { @@ -106,7 +106,6 @@ namespace StreamCompaction { */ void scan(int n, int *odata, const int *idata) { - timer().startGpuTimer(); if (n <= 0) { return; @@ -141,6 +140,8 @@ namespace StreamCompaction { cudaMemcpy(scanArrays[0], idata, n * sizeof(int), cudaMemcpyHostToDevice); checkCUDAError("cudaMemcpy idata failed"); + timer().startGpuTimer(); + for (int i = 0; i < scanArrays.size() - 1; i++) { int arrayLen = scanArrayLens[i]; kernBlockScanStoreSum << < arrayLen / maxBlockSize, maxBlockSize >> > (ilog2ceil(maxBlockSize), scanArrays[i], scanArrays[i + 1]); @@ -155,6 +156,8 @@ namespace StreamCompaction { checkCUDAError("kernAddSums failed"); } + timer().endGpuTimer(); + cudaMemcpy(odata, scanArrays[0], n * sizeof(int), cudaMemcpyDeviceToHost); //cudaMemcpy(odata, scanArrays.back(), scanArrayLens.back() * sizeof(int), cudaMemcpyDeviceToHost); checkCUDAError("cudaMemcpy odata failed"); @@ -163,7 +166,6 @@ namespace StreamCompaction { cudaFree(scanArrays[i]); checkCUDAError("cudaFree scanArrays[i] failed"); } - timer().endGpuTimer(); } /** @@ -176,7 +178,6 @@ namespace StreamCompaction { * @returns The number of elements remaining after compaction. */ int compact(int n, int *odata, const int *idata) { - timer().startGpuTimer(); if (n <= 0) { return -1; } @@ -195,8 +196,10 @@ namespace StreamCompaction { cudaMalloc(&d_bools, topArrayLen * sizeof(int)); checkCUDAError("cudaMalloc d_bools failed"); - kernMapToBoolean << > > (topArrayLen, d_bools, d_idata); - checkCUDAError("kernMapToBoolean failed"); + + int* d_odata; + cudaMalloc(&d_odata, n * sizeof(int)); + checkCUDAError("cudaMalloc d_odata failed"); std::vector scanArrays{}; std::vector scanArrayLens{}; @@ -226,6 +229,11 @@ namespace StreamCompaction { scanArrayLens.push_back(scanArrayLen); } + timer().startGpuTimer(); + + kernMapToBoolean << > > (topArrayLen, d_bools, d_idata); + checkCUDAError("kernMapToBoolean failed"); + cudaMemcpy(scanArrays[0], d_bools, topArrayLen * sizeof(int), cudaMemcpyDeviceToDevice); checkCUDAError("cudaMemcpy d_bools failed"); @@ -245,23 +253,22 @@ namespace StreamCompaction { int* d_indices = scanArrays[0]; + + kernScatter << > > (n, d_odata, d_idata, d_bools, d_indices); + checkCUDAError("kernScatter failed"); + + timer().endGpuTimer(); + cudaDeviceSynchronize(); int compactLen; - int lastBool; cudaMemcpy(&compactLen, &d_indices[topArrayLen - 1], sizeof(int), cudaMemcpyDeviceToHost); checkCUDAError("cudaMemcpy compactLen failed"); + int lastBool; cudaMemcpy(&lastBool, &d_bools[topArrayLen - 1], sizeof(int), cudaMemcpyDeviceToHost); checkCUDAError("cudaMemcpy lastBool failed"); compactLen += lastBool; - int* d_odata; - cudaMalloc(&d_odata, compactLen * sizeof(int)); - checkCUDAError("cudaMalloc d_odata failed"); - - kernScatter << > > (n, d_odata, d_idata, d_bools, d_indices); - checkCUDAError("kernScatter failed"); - cudaDeviceSynchronize(); cudaMemcpy(odata, d_odata, compactLen * sizeof(int), cudaMemcpyDeviceToHost); checkCUDAError("cudaMemcpy d_odata failed"); @@ -276,7 +283,6 @@ namespace StreamCompaction { cudaFree(d_odata); checkCUDAError("cudaFree d_odata failed"); - timer().endGpuTimer(); return compactLen; } } diff --git a/stream_compaction/naive.cu b/stream_compaction/naive.cu index cdb1403e..bb559f37 100644 --- a/stream_compaction/naive.cu +++ b/stream_compaction/naive.cu @@ -30,8 +30,6 @@ 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(); - // TODO size_t sizeInBytes = n * sizeof(int); @@ -45,9 +43,11 @@ namespace StreamCompaction { cudaMemcpy(d_idata, idata, sizeInBytes, cudaMemcpyHostToDevice); checkCUDAError("cudaMemcpy d_idata failed"); - int blockSize = 128; + int blockSize = 1024; int gridSize = divup(n, blockSize); + timer().startGpuTimer(); + for (int i = 0; i < ilog2ceil(n); i++) { int stride = 1 << i; inclusiveScanAdd << > > (n, stride, d_idata, d_odata); @@ -55,6 +55,8 @@ namespace StreamCompaction { std::swap(d_odata, d_idata); } + timer().endGpuTimer(); + // due to the fact that we want to make the inclusive scan exclusive instead odata[0] = 0; cudaMemcpy(odata + 1, d_idata, sizeInBytes - sizeof(int), cudaMemcpyDeviceToHost); @@ -65,7 +67,6 @@ namespace StreamCompaction { cudaFree(d_idata); checkCUDAError("cudaFree d_idata failed"); - timer().endGpuTimer(); } } } diff --git a/stream_compaction/thrust.cu b/stream_compaction/thrust.cu index 390bc8ab..fd3cc711 100644 --- a/stream_compaction/thrust.cu +++ b/stream_compaction/thrust.cu @@ -18,18 +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) { - 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::device_vector dv_idata(idata, idata + n); thrust::device_vector dv_odata(n); - thrust::exclusive_scan(dv_idata.begin(), dv_idata.end(), dv_odata.begin()); + timer().startGpuTimer(); - thrust::copy(dv_odata.begin(), dv_odata.end(), odata); + thrust::exclusive_scan(dv_idata.begin(), dv_idata.end(), dv_odata.begin()); timer().endGpuTimer(); + + thrust::copy(dv_odata.begin(), dv_odata.end(), odata); } } } From fc31fa60e0939e4371383f3d156d4d0f52852715 Mon Sep 17 00:00:00 2001 From: Oliver Hendrych Date: Tue, 16 Sep 2025 23:49:29 -0400 Subject: [PATCH 7/8] add speedup to readme --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index d7603c2e..94e01e4e 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,8 @@ CUDA Stream Compaction This project implements exclusive scan (prefix sum) on the CPU, with a naive GPU implementation, with a work-efficient GPU implementation, and finally by wrapping thrust calls. Leveraging these scan implementations, it also implements stream compaction, which is the process of removing certain (in this case, 0) elements from an array. Stream compaction is achieved through CPU implementations with and without using scan, and a GPU implementation, using the work-efficient scan. All implementations scale to any size of input array, including non-powers of two (efficiently). +The work-efficient GPU implemenation achieves a 6.89x speedup over the CPU implementation at input sizes of 2^26 (3.98858ms vs 27.4916ms). + ## Performance ### Block Size From 5d60714ab903a23d3eea1be2f139474adf6b17c2 Mon Sep 17 00:00:00 2001 From: Oliver Hendrych Date: Tue, 16 Sep 2025 23:50:08 -0400 Subject: [PATCH 8/8] image paths --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 94e01e4e..8222ea2f 100644 --- a/README.md +++ b/README.md @@ -67,7 +67,7 @@ The optimal block size for the naive GPU scan implementation was 1024, with bloc | 2^24 | 8.907 | 8.42656 | 1.42976 | 0.881376 | | 2^26 | 27.4916 | 35.8252 | 3.98858 | 2.0969 | -![](scan_runtime_vs_input_length.png) +![](img/scan_runtime_vs_input_length.png) Note: both axes are on a logarithmic scale. @@ -75,13 +75,13 @@ As can be seen in the table and graph, the CPU implementation remains faster unt #### Thrust Timeline -![](nsight_systems_thrust.png) +![](img/nsight_systems_thrust.png) First, the device vector for the input is created and its contents are copied (`cub::DeviceFor::Bulk`), and the device vector for the output is created. Between the two `cudaEventRecord` (which happens after the first pictured `cudaStreamSynchronize`), the thrust invocation takes place, and we can see a few cuda calls. First, a `cudaMalloc` call appears. A couple helper library calls appear to get the kernel `DeviceScanInitKernel` and its name, then that kernel is run. Similarly, a couple cuda calls appear before a call to the actual `DeviceScanKernel`. Then, the device syncronizes, a `cudaFree` occurs (presumably to free the previously allocated memory), then the `cudaEventRecord` appears, marking the end of the thrust invokation. After that, a cudaMemcpy takes place (to copy the information back to the host). The allocation (and later free) are likely to create some internal buffers necessary for the scan implementation. The init kernel takes almost no time at all, especially compared to the actual scan kernel. ## Observations -![](nsight_compute.png) +![](img/nsight_compute.png) Looking at Nsight Compute, it would appear that the main bottleneck in all implementations is the memory. The naive implementation (`inclusiveScanAdd`) is consistently around 90% memory throughput, while at only 10% compute throughput. Similarly, while the work-efficient implementation (`kernBlockScanStoreSum`) achieves a much higher compute throughput (especially in the first layers/invocations), it reaches 97.49% memory throughput, so it would again appear to be limited by memory throughput. The final `kernAddSums` (the second longest invokation in the work-efficient implementation) also reaches 86% memory throughput, meaning it is also likely bandwidth limited.