From b63d942935928762e9f13a591294577b70544302 Mon Sep 17 00:00:00 2001 From: helenazzzzz Date: Sun, 17 Sep 2023 17:17:31 -0400 Subject: [PATCH 1/4] code up to section 3 --- src/main.cpp | 22 +++---- stream_compaction/common.cu | 12 +++- stream_compaction/cpu.cu | 38 ++++++++++-- stream_compaction/efficient.cu | 106 ++++++++++++++++++++++++++++++++- stream_compaction/naive.cu | 34 ++++++++++- 5 files changed, 189 insertions(+), 23 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index 896ac2b..d91533b 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 << 23; // 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]; @@ -27,8 +27,8 @@ int main(int argc, char* argv[]) { printf("** SCAN TESTS **\n"); printf("****************\n"); - genArray(SIZE - 1, a, 50); // Leave a 0 at the end to test that edge case - a[SIZE - 1] = 0; + genArray(SIZE, a, 50); // Leave a 0 at the end to test that edge case + // a[SIZE - 1] = 0; printArray(SIZE, a, true); // initialize b using StreamCompaction::CPU::scan you implement @@ -51,7 +51,7 @@ 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 @@ -64,21 +64,21 @@ int main(int argc, char* argv[]) { 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); @@ -102,8 +102,8 @@ int main(int argc, char* argv[]) { // Compaction tests - genArray(SIZE - 1, a, 4); // Leave a 0 at the end to test that edge case - a[SIZE - 1] = 0; + genArray(SIZE, a, 4); // Leave a 0 at the end to test that edge case + // a[SIZE - 1] = 0; printArray(SIZE, a, true); int count, expectedCount, expectedNPOT; @@ -137,14 +137,14 @@ 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); system("pause"); // stop Win32 console from closing on exit diff --git a/stream_compaction/common.cu b/stream_compaction/common.cu index 2ed6d63..7bef1f3 100644 --- a/stream_compaction/common.cu +++ b/stream_compaction/common.cu @@ -23,7 +23,10 @@ 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 i = blockIdx.x * blockDim.x + threadIdx.x; + if (i < n) { + idata[i] > 0 ? bools[i] = 1 : bools[i] = 0; + } } /** @@ -32,7 +35,12 @@ namespace StreamCompaction { */ __global__ void kernScatter(int n, int *odata, const int *idata, const int *bools, const int *indices) { - // TODO + int i = blockIdx.x * blockDim.x + threadIdx.x; + if (i < n) { + if (bools[i]) { + odata[indices[i]] = idata[i]; + } + } } } diff --git a/stream_compaction/cpu.cu b/stream_compaction/cpu.cu index 719fa11..d639a43 100644 --- a/stream_compaction/cpu.cu +++ b/stream_compaction/cpu.cu @@ -19,7 +19,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++) { + sum += idata[i]; + odata[i] = sum; + } timer().endCpuTimer(); } @@ -30,9 +34,15 @@ namespace StreamCompaction { */ int compactWithoutScan(int n, int *odata, const int *idata) { timer().startCpuTimer(); - // TODO + int length = 0; + for (int i = 0; i < n; i++) { + if (idata[i] != 0) { + odata[length] = idata[i]; + length++; + } + } timer().endCpuTimer(); - return -1; + return length; } /** @@ -42,9 +52,27 @@ namespace StreamCompaction { */ int compactWithScan(int n, int *odata, const int *idata) { timer().startCpuTimer(); - // TODO + int* temp = new int[n]; + int* tempScanned = new int[n]; + for (int i = 0; i < n; i++) { + idata[i] > 0 ? temp[i] = 1 : temp[i] = 0; + } + + int sum = 0; + for (int i = 0; i < n; i++) { + tempScanned[i] = sum; + sum += temp[i]; + } + + int count = 0; + for (int i = 0; i < n; i++) { + if (temp[i] == 1) { + odata[tempScanned[i]] = idata[i]; + count++; + } + } timer().endCpuTimer(); - return -1; + return count; } } } diff --git a/stream_compaction/efficient.cu b/stream_compaction/efficient.cu index 2db346e..bd872b8 100644 --- a/stream_compaction/efficient.cu +++ b/stream_compaction/efficient.cu @@ -3,6 +3,8 @@ #include "common.h" #include "efficient.h" +#define blockSize 128 + namespace StreamCompaction { namespace Efficient { using StreamCompaction::Common::PerformanceTimer; @@ -12,12 +14,58 @@ namespace StreamCompaction { return timer; } + __global__ void kernUp(int d, int n, int* odata) { + const int p = 1 << d; + const int k = (blockIdx.x * blockDim.x + threadIdx.x) * 2 * p; + if (k < n) { + odata[2 * p + k - 1] += odata[p + k - 1]; + } + odata[n - 1] = 0; + } + + __global__ void kernDown(int d, int n, int* odata) { + const int p = 1 << d; + const int k = (blockIdx.x * blockDim.x + threadIdx.x) * 2 * p; + if (k < n) { + int t = odata[p + k - 1]; + odata[p + k - 1] = odata[2 * p + k - 1]; + odata[2 * p + k - 1] += t; + } + } + /** * Performs prefix-sum (aka scan) on idata, storing the result into odata. */ void scan(int n, int *odata, const int *idata) { timer().startGpuTimer(); - // TODO + int* dev_data; + + // allocate enough memory to the next power of two + const int expN = 1 << ilog2ceil(n); + const int extra = expN - n; + + cudaMalloc((void**)&dev_data, expN * sizeof(int)); + + cudaMemcpy(dev_data + extra, idata, n * sizeof(int), cudaMemcpyHostToDevice); + + // up + for (int d = 0; d < ilog2ceil(n); d++) { + kernUp << > > (d, expN, dev_data); + } + + // down + for (int d = ilog2ceil(n) - 1; d >= 0; d--) { + kernDown << > > (d, expN, dev_data); + } + + cudaMemcpy(odata, dev_data + extra + 1, (n - 1) * sizeof(int), cudaMemcpyDeviceToHost); + odata[n - 1] += idata[n - 1]; + if (n > 1) { + odata[n - 1] += odata[n - 2]; + } + + cudaFree(dev_data); + timer().endGpuTimer(); } @@ -32,9 +80,61 @@ namespace StreamCompaction { */ int compact(int n, int *odata, const int *idata) { timer().startGpuTimer(); - // TODO + int* dev_idata; + int* dev_hasValue; + int* dev_scanned; + int* dev_odata; + + int total = 0; + + const int expN = 1 << ilog2ceil(n); + const int extra = expN - n; + + cudaMalloc((void**)&dev_idata, n * sizeof(int)); + cudaMalloc((void**)&dev_hasValue, n * sizeof(int)); + + cudaMemcpy(dev_idata, idata, n * sizeof(int), cudaMemcpyHostToDevice); + cudaMemcpy(dev_hasValue, idata, n * sizeof(int), cudaMemcpyHostToDevice); + + const dim3 fullBlocksPerGrid((expN + blockSize - 1) / blockSize); + + // get 0 and non 0 elements + StreamCompaction::Common::kernMapToBoolean <<>>(n, dev_hasValue, dev_idata); + + // scan + + cudaMalloc((void**)&dev_scanned, expN * sizeof(int)); + + cudaMemcpy(dev_scanned + extra, dev_hasValue, n * sizeof(int), cudaMemcpyDeviceToDevice); + + for (int d = 0; d < ilog2ceil(n); d++) { + kernUp << > > (d, expN, dev_scanned); + } + + for (int d = ilog2ceil(n) - 1; d >= 0; d--) { + kernDown << > > (d, expN, dev_scanned); + } + + cudaMemcpy(&total, dev_scanned + expN - 1, sizeof(int), cudaMemcpyDeviceToHost); + if (idata[n - 1] > 0) { + total++; + } + + // scatter + cudaMalloc((void**)&dev_odata, expN * sizeof(int)); + + StreamCompaction::Common::kernScatter << > > (n, dev_odata, dev_idata, dev_hasValue, dev_scanned + extra); + + // cudaMemcpy(odata, dev_scanned + extra, n * sizeof(int), cudaMemcpyDeviceToHost); + cudaMemcpy(odata, dev_odata, expN * sizeof(int), cudaMemcpyDeviceToHost); + + cudaFree(dev_idata); + cudaFree(dev_hasValue); + cudaFree(dev_scanned); + cudaFree(dev_odata); + timer().endGpuTimer(); - return -1; + return total; } } } diff --git a/stream_compaction/naive.cu b/stream_compaction/naive.cu index 4308876..6efe1fb 100644 --- a/stream_compaction/naive.cu +++ b/stream_compaction/naive.cu @@ -11,14 +11,44 @@ namespace StreamCompaction { static PerformanceTimer timer; return timer; } - // TODO: __global__ + + __global__ void kernAdd(int d, int *odata, const int *idata) { + int k = blockIdx.x * blockDim.x + threadIdx.x; + int space = 1 << (d - 1); + if (k >= space) { + odata[k] = idata[k] + idata[k - space]; + } + else { + odata[k] = idata[k]; + } + } /** * Performs prefix-sum (aka scan) on idata, storing the result into odata. */ void scan(int n, int *odata, const int *idata) { timer().startGpuTimer(); - // TODO + + int* dev_odata; + int* dev_idata; + + cudaMalloc((void**)&dev_odata, n * sizeof(int)); + cudaMalloc((void**)&dev_idata, n * sizeof(int)); + + cudaMemcpy(dev_odata, odata, n * sizeof(int), cudaMemcpyHostToDevice); + cudaMemcpy(dev_idata, idata, n * sizeof(int), cudaMemcpyHostToDevice); + + dim3 fullBlocksPerGrid((n + 128 - 1) / 128); + for (int i = 1; i <= ilog2ceil(n); i++) { + kernAdd<<>>(i, dev_odata, dev_idata); + std::swap(dev_odata, dev_idata); + } + std::swap(dev_odata, dev_idata); + + cudaMemcpy(odata, dev_odata, n * sizeof(int), cudaMemcpyDeviceToHost); + + cudaFree(dev_odata); + cudaFree(dev_idata); timer().endGpuTimer(); } } From c85481d14f4bed4472e8c924eeeb05ea9b8eeb66 Mon Sep 17 00:00:00 2001 From: helenazzzzz Date: Tue, 19 Sep 2023 23:15:03 -0400 Subject: [PATCH 2/4] code and image upload --- img/blocksize.jpg | Bin 0 -> 33565 bytes img/nsight.jpg | Bin 0 -> 284782 bytes img/runtime.jpg | Bin 0 -> 36761 bytes src/main.cpp | 6 ++--- stream_compaction/cpu.cu | 3 ++- stream_compaction/efficient.cu | 46 ++++++++++++++++++--------------- stream_compaction/naive.cu | 23 ++++++++++------- stream_compaction/thrust.cu | 22 +++++++++++++--- 8 files changed, 63 insertions(+), 37 deletions(-) create mode 100644 img/blocksize.jpg create mode 100644 img/nsight.jpg create mode 100644 img/runtime.jpg diff --git a/img/blocksize.jpg b/img/blocksize.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4ac9970262644e5b77041ebaf7f68a3fca4f369f GIT binary patch literal 33565 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 Md7}SYzdauPAHQ(TDF6Tf literal 0 HcmV?d00001 diff --git a/img/nsight.jpg b/img/nsight.jpg new file mode 100644 index 0000000000000000000000000000000000000000..483883cc6209ced5149c2dcffc190ff227711045 GIT binary patch literal 284782 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%0D$p84?9 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%0AL5?aXkPg}yYm_Q?~ovFeb+C{ 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

k8 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 A1poj5 literal 0 HcmV?d00001 diff --git a/img/runtime.jpg b/img/runtime.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1b832f525974d6062f6732a32a175126f5c499cd GIT binary patch literal 36761 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 literal 0 HcmV?d00001 diff --git a/src/main.cpp b/src/main.cpp index d91533b..5e70abe 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -13,7 +13,7 @@ #include #include "testing_helpers.hpp" -const int SIZE = 1 << 23; // feel free to change the size of array +const int SIZE = 1 << 24; // 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]; @@ -85,14 +85,14 @@ int main(int argc, char* argv[]) { 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"); diff --git a/stream_compaction/cpu.cu b/stream_compaction/cpu.cu index d639a43..da389bc 100644 --- a/stream_compaction/cpu.cu +++ b/stream_compaction/cpu.cu @@ -21,8 +21,9 @@ namespace StreamCompaction { timer().startCpuTimer(); int sum = 0; for (int i = 0; i < n; i++) { - sum += idata[i]; odata[i] = sum; + sum += idata[i]; + } timer().endCpuTimer(); } diff --git a/stream_compaction/efficient.cu b/stream_compaction/efficient.cu index bd872b8..c9a3934 100644 --- a/stream_compaction/efficient.cu +++ b/stream_compaction/efficient.cu @@ -3,7 +3,7 @@ #include "common.h" #include "efficient.h" -#define blockSize 128 +#define logBlockSize 6 namespace StreamCompaction { namespace Efficient { @@ -37,36 +37,34 @@ 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(); + const int blockSize = 1 << logBlockSize; int* dev_data; // allocate enough memory to the next power of two - const int expN = 1 << ilog2ceil(n); + const int log = ilog2ceil(n); + const int expN = 1 << log; const int extra = expN - n; cudaMalloc((void**)&dev_data, expN * sizeof(int)); cudaMemcpy(dev_data + extra, idata, n * sizeof(int), cudaMemcpyHostToDevice); + timer().startGpuTimer(); + // up - for (int d = 0; d < ilog2ceil(n); d++) { - kernUp << > > (d, expN, dev_data); + for (int d = 0; d < log; d++) { + kernUp << > (d + logBlockSize + 1))), blockSize >> > (d, expN, dev_data); } // down - for (int d = ilog2ceil(n) - 1; d >= 0; d--) { - kernDown << > > (d, expN, dev_data); + for (int d = log - 1; d >= 0; d--) { + kernDown << > (d + logBlockSize + 1))), blockSize >> > (d, expN, dev_data); } - cudaMemcpy(odata, dev_data + extra + 1, (n - 1) * sizeof(int), cudaMemcpyDeviceToHost); - odata[n - 1] += idata[n - 1]; - if (n > 1) { - odata[n - 1] += odata[n - 2]; - } + timer().endGpuTimer(); + cudaMemcpy(odata, dev_data + extra, n * sizeof(int), cudaMemcpyDeviceToHost); cudaFree(dev_data); - - timer().endGpuTimer(); } /** @@ -79,7 +77,8 @@ namespace StreamCompaction { * @returns The number of elements remaining after compaction. */ int compact(int n, int *odata, const int *idata) { - timer().startGpuTimer(); + const int blockSize = 1 << logBlockSize; + int* dev_idata; int* dev_hasValue; int* dev_scanned; @@ -87,7 +86,8 @@ namespace StreamCompaction { int total = 0; - const int expN = 1 << ilog2ceil(n); + const int log = ilog2ceil(n); + const int expN = 1 << log; const int extra = expN - n; cudaMalloc((void**)&dev_idata, n * sizeof(int)); @@ -98,6 +98,8 @@ namespace StreamCompaction { const dim3 fullBlocksPerGrid((expN + blockSize - 1) / blockSize); + timer().startGpuTimer(); + // get 0 and non 0 elements StreamCompaction::Common::kernMapToBoolean <<>>(n, dev_hasValue, dev_idata); @@ -107,12 +109,12 @@ namespace StreamCompaction { cudaMemcpy(dev_scanned + extra, dev_hasValue, n * sizeof(int), cudaMemcpyDeviceToDevice); - for (int d = 0; d < ilog2ceil(n); d++) { - kernUp << > > (d, expN, dev_scanned); + for (int d = 0; d < log; d++) { + kernUp << > (d + logBlockSize + 1))), blockSize >> > (d, expN, dev_scanned); } - for (int d = ilog2ceil(n) - 1; d >= 0; d--) { - kernDown << > > (d, expN, dev_scanned); + for (int d = log - 1; d >= 0; d--) { + kernDown << > (d + logBlockSize + 1))), blockSize >> > (d, expN, dev_scanned); } cudaMemcpy(&total, dev_scanned + expN - 1, sizeof(int), cudaMemcpyDeviceToHost); @@ -125,6 +127,8 @@ namespace StreamCompaction { StreamCompaction::Common::kernScatter << > > (n, dev_odata, dev_idata, dev_hasValue, dev_scanned + extra); + timer().endGpuTimer(); + // cudaMemcpy(odata, dev_scanned + extra, n * sizeof(int), cudaMemcpyDeviceToHost); cudaMemcpy(odata, dev_odata, expN * sizeof(int), cudaMemcpyDeviceToHost); @@ -133,7 +137,7 @@ namespace StreamCompaction { cudaFree(dev_scanned); cudaFree(dev_odata); - timer().endGpuTimer(); + return total; } } diff --git a/stream_compaction/naive.cu b/stream_compaction/naive.cu index 6efe1fb..f9adbc1 100644 --- a/stream_compaction/naive.cu +++ b/stream_compaction/naive.cu @@ -3,6 +3,8 @@ #include "common.h" #include "naive.h" +#define logBlockSize 6 + namespace StreamCompaction { namespace Naive { using StreamCompaction::Common::PerformanceTimer; @@ -12,7 +14,7 @@ namespace StreamCompaction { return timer; } - __global__ void kernAdd(int d, int *odata, const int *idata) { + __global__ void kernAdd(int d, int* odata, const int* idata) { int k = blockIdx.x * blockDim.x + threadIdx.x; int space = 1 << (d - 1); if (k >= space) { @@ -26,8 +28,8 @@ 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(); + void scan(int n, int* odata, const int* idata) { + const int blockSize = 1 << logBlockSize; int* dev_odata; int* dev_idata; @@ -35,21 +37,24 @@ namespace StreamCompaction { cudaMalloc((void**)&dev_odata, n * sizeof(int)); cudaMalloc((void**)&dev_idata, n * sizeof(int)); - cudaMemcpy(dev_odata, odata, n * sizeof(int), cudaMemcpyHostToDevice); + cudaMemcpy(dev_odata, idata, n * sizeof(int), cudaMemcpyHostToDevice); cudaMemcpy(dev_idata, idata, n * sizeof(int), cudaMemcpyHostToDevice); - dim3 fullBlocksPerGrid((n + 128 - 1) / 128); + timer().startGpuTimer(); + + dim3 fullBlocksPerGrid((n + blockSize - 1) / blockSize); for (int i = 1; i <= ilog2ceil(n); i++) { - kernAdd<<>>(i, dev_odata, dev_idata); + kernAdd << > > (i, dev_odata, dev_idata); std::swap(dev_odata, dev_idata); } - std::swap(dev_odata, dev_idata); - cudaMemcpy(odata, dev_odata, n * sizeof(int), cudaMemcpyDeviceToHost); + timer().endGpuTimer(); + + cudaMemcpy(odata + 1, dev_idata, (n - 1) * sizeof(int), cudaMemcpyDeviceToHost); cudaFree(dev_odata); cudaFree(dev_idata); - timer().endGpuTimer(); + } } } diff --git a/stream_compaction/thrust.cu b/stream_compaction/thrust.cu index 1def45e..90b24da 100644 --- a/stream_compaction/thrust.cu +++ b/stream_compaction/thrust.cu @@ -18,11 +18,27 @@ 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_odata; + int* dev_idata; + + cudaMalloc((void**)&dev_odata, n * sizeof(int)); + cudaMalloc((void**)&dev_idata, n * sizeof(int)); + + cudaMemcpy(dev_odata, odata, sizeof(int) * n, cudaMemcpyHostToDevice); + cudaMemcpy(dev_idata, idata, sizeof(int) * n, cudaMemcpyHostToDevice); + + thrust::device_ptr dev_thrust_odata(dev_odata); + 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_odata); + timer().endGpuTimer(); + + cudaMemcpy(odata, dev_odata, sizeof(int) * n, cudaMemcpyDeviceToHost); + } } } From 64d375b741d10bbb1191a0363f26da24a600c8d0 Mon Sep 17 00:00:00 2001 From: helenazzzzz <32421864+helenazzzzz@users.noreply.github.com> Date: Tue, 19 Sep 2023 23:45:26 -0400 Subject: [PATCH 3/4] Update README.md --- README.md | 92 +++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 86 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 0e38ddb..072346a 100644 --- a/README.md +++ b/README.md @@ -3,12 +3,92 @@ 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) +* Helena Zhang +* Tested on: Windows 11, i7-10750 @ 2.6GHz 16GB, Geforce RTX 2060 6GB -### (TODO: Your README) +### Performance analysis -Include analysis, etc. (Remember, this is public, so don't put -anything here that you don't want to share with the world.) +First up, I compared the runtimes of different GPU implementations (naive scan, work efficient scan, and stream compaction) on an array size of 2^20 and took the average of three runs each to find the optimal block size on my GPU: +![](img/blocksize.jpg) + +Although the runtimes past 64 threads per block were similar, 64 threads per block narrowly beat out the larger blocksizes. + +Next, using the optimal blocksize of 64, I compared the runtimes of the base CPU exclusive scan, and the three GPU scan implementations: naive, work efficient, and thrust. I ran each implementation on each array size 5 times and took the average to account for any potential outliers. + +![](img/runtime.jpg) + +The CPU runtime scaled linearly with the increase in array size, so the trendline appeared to be linear on a chart with log-scaled runtime on log-scaled array size. The GPU implementation all ran slower than the CPU implementation on small array sizes, and only the naive implementation showed a large spike in runtime at the end. The work efficient implementation runtime increased slowly towards the end, and the thrust runtime remained the fastest at the end. + +In regards to the optimized work efficient GPU implementation, I managed to minimize the number of blocks needed at small numbers of threads. During the upstream / downstream summation, there were only a few additions done at the top levels of the tree. Instead of taking the 2^d th thread to run in the kernel, I scaled each thread with a factor of 2^(d-1), so that only k threads are needed. In addition, instead of launching approximately N / blocksize blocks at each level of summation, I launched only **1 << (ilogceil(N) - d - log(blocksize) - 1)** blocks, which is significantly fewer blocks. For any d, only every other 2^d numbers will get incremented, meaning there should be at most **1 << (ilogceil(N) - d - 1)** threads. Since the max number of threads in each block is **blocksize**, we will scale down the number of threads by a factor of that, leaving each level only launching **1 << (ilogceil(N) - d - log(blocksize) - 1)** blocks, and every thread in those blocks are used. + +For the fastest implementation, **thrust::exclusive_scan**, I've observed its execution in Nsight: + +![](img/nsight.jpg) + +Assuming **cudeEventRecord** are the GPU timer operations, there are 5 operations within exclusive scan: **cudaMalloc**, **DeviceScanInitKernel**, **DeviceScanKernel**, **cudaStreamSynchronize**, **cudaFree**. Since **idata** was copied into device memory prior to starting the GPU timer, **cudaMalloc** was likely an operation to store temporary data within the operation since that memory was freed at the end of this function. The two scan operations were likely performing the addition, and they took the least time, meaning the **cudaMalloc** most likely allocated some shared memory for these operations to execute quickly. + +Finally, an overview of all the runtimes: +``` + +**************** +** SCAN TESTS ** +**************** + [ 1 6 1 30 17 6 13 30 37 3 40 40 21 ... 29 12 ] +==== cpu scan, power-of-two ==== + elapsed time: 14.2981ms (std::chrono Measured) + [ 0 1 7 8 38 55 61 74 104 141 144 184 224 ... 410838503 410838532 ] +==== cpu scan, non-power-of-two ==== + elapsed time: 13.4163ms (std::chrono Measured) + [ 0 1 7 8 38 55 61 74 104 141 144 184 224 ... 410838422 410838469 ] + passed +==== naive scan, power-of-two ==== + elapsed time: 16.1973ms (CUDA Measured) + [ 0 1 7 8 38 55 61 74 104 141 144 184 224 ... 410838503 410838532 ] + passed +==== naive scan, non-power-of-two ==== + elapsed time: 16.1932ms (CUDA Measured) + [ 0 1 7 8 38 55 61 74 104 141 144 184 224 ... 0 0 ] + passed +==== work-efficient scan, power-of-two ==== + elapsed time: 7.42416ms (CUDA Measured) + [ 0 1 7 8 38 55 61 74 104 141 144 184 224 ... 410838503 410838532 ] + passed +==== work-efficient scan, non-power-of-two ==== + elapsed time: 7.27318ms (CUDA Measured) + [ 0 1 7 8 38 55 61 74 104 141 144 184 224 ... 410838422 410838469 ] + passed +==== thrust scan, power-of-two ==== + elapsed time: 1.18771ms (CUDA Measured) + [ 0 1 7 8 38 55 61 74 104 141 144 184 224 ... 410838503 410838532 ] + passed +==== thrust scan, non-power-of-two ==== + elapsed time: 1.35674ms (CUDA Measured) + [ 0 1 7 8 38 55 61 74 104 141 144 184 224 ... 410838422 410838469 ] + passed + +***************************** +** STREAM COMPACTION TESTS ** +***************************** + [ 0 0 3 1 2 3 0 1 2 1 0 0 0 ... 2 2 ] +==== cpu compact without scan, power-of-two ==== + elapsed time: 36.814ms (std::chrono Measured) + [ 3 1 2 3 1 2 1 2 2 3 2 2 3 ... 2 2 ] + passed +==== cpu compact without scan, non-power-of-two ==== + elapsed time: 37.0357ms (std::chrono Measured) + [ 3 1 2 3 1 2 1 2 2 3 2 2 3 ... 1 2 ] + passed +==== cpu compact with scan ==== + elapsed time: 77.7415ms (std::chrono Measured) + [ 3 1 2 3 1 2 1 2 2 3 2 2 3 ... 2 2 ] + passed +==== work-efficient compact, power-of-two ==== + elapsed time: 14.5762ms (CUDA Measured) + [ 3 1 2 3 1 2 1 2 2 3 2 2 3 ... 2 2 ] + passed +==== work-efficient compact, non-power-of-two ==== + elapsed time: 14.472ms (CUDA Measured) + [ 3 1 2 3 1 2 1 2 2 3 2 2 3 ... 1 2 ] + passed +``` From c61b7bd5bc6fc12c22b2f550b4577a34c968a831 Mon Sep 17 00:00:00 2001 From: helenazzzzz <32421864+helenazzzzz@users.noreply.github.com> Date: Tue, 19 Sep 2023 23:52:20 -0400 Subject: [PATCH 4/4] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 072346a..db5ab3d 100644 --- a/README.md +++ b/README.md @@ -28,6 +28,8 @@ For the fastest implementation, **thrust::exclusive_scan**, I've observed its ex Assuming **cudeEventRecord** are the GPU timer operations, there are 5 operations within exclusive scan: **cudaMalloc**, **DeviceScanInitKernel**, **DeviceScanKernel**, **cudaStreamSynchronize**, **cudaFree**. Since **idata** was copied into device memory prior to starting the GPU timer, **cudaMalloc** was likely an operation to store temporary data within the operation since that memory was freed at the end of this function. The two scan operations were likely performing the addition, and they took the least time, meaning the **cudaMalloc** most likely allocated some shared memory for these operations to execute quickly. +Based on the increased runtimes of all the implementations, a large bottleneck seems to be caused by excessive yet unproductive blocks, hence reducing and packing blocks enhanced the runtime. + Finally, an overview of all the runtimes: ```