From e45ae6dacef2031eb304dc19506844fe64ee8576 Mon Sep 17 00:00:00 2001 From: cyy0915 Date: Sun, 18 Sep 2022 23:39:34 -0400 Subject: [PATCH] finish --- README.md | 81 ++++++++++++++++++++++++++++--- img/compact.png | Bin 0 -> 73601 bytes img/scan.png | Bin 0 -> 86490 bytes stream_compaction/common.cu | 12 ++++- stream_compaction/cpu.cu | 35 ++++++++++++-- stream_compaction/efficient.cu | 85 +++++++++++++++++++++++++++++++-- stream_compaction/naive.cu | 32 ++++++++++++- stream_compaction/thrust.cu | 8 ++++ 8 files changed, 235 insertions(+), 18 deletions(-) create mode 100644 img/compact.png create mode 100644 img/scan.png diff --git a/README.md b/README.md index 0e38ddb..ac899a7 100644 --- a/README.md +++ b/README.md @@ -3,12 +3,81 @@ 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) +* Yiyang Chen + * [LinkedIn](https://www.linkedin.com/in/yiyang-chen-6a7641210/), [personal website](https://cyy0915.github.io/) +* Tested on: Windows 10, i5-8700k @ 3.7GHz, GTX 1080, personal computer -### (TODO: Your README) +## Features +I implemented part 1 to part 5 -Include analysis, etc. (Remember, this is public, so don't put -anything here that you don't want to share with the world.) +For part 5, I optimized it so that when array size is large enough, efficient is always faster than naive, and naive is always faster than cpu. I did it by optimize the number of thread in up sweep and down sweep +## Performance Analysis +I have roughly optimized the block sizes. I found that 128 is ok. + +![](img/scan.png) + +![](img/compact.png) + +See the above graphs, notice the axis + +* **Phenomena:** In `scan` function, when the array length is large enough (>2^18), for runtime, cpu > naive > efficient > thrust. And in `compact` function, also when the array length is large enough, for runtime, cpu > efficient. However, when the array length is small, cpu < naive < thrust < efficient. + +* **Explanation:** + * cpu: O(n) time complexity, very normal. I think the bottleneck is computation. + * naive: run parallel in GPU, so it's faster than cpu implementation when the array length is large. I think when the array length is small the bottleneck is memory I/O, so it's slower than cpu. + * efficient: run parallel in GPU and don't need two buffers, so it's faster than naive when the array length is large. I think when the array length is small the bottleneck is also memory I/O, and it invoke more device functions compared to naive implementation, so it's even slower than naive. + + +```**************** +** SCAN TESTS ** +**************** + [ 23 47 43 2 9 23 22 34 41 24 17 1 6 ... 40 0 ] +==== cpu scan, power-of-two ==== + elapsed time: 1.4016ms (std::chrono Measured) + [ 0 23 70 113 115 124 147 169 203 244 268 285 286 ... 25709761 25709801 ] +==== cpu scan, non-power-of-two ==== + elapsed time: 1.4073ms (std::chrono Measured) + [ 0 23 70 113 115 124 147 169 203 244 268 285 286 ... 25709686 25709735 ] + passed +==== naive scan, power-of-two ==== + elapsed time: 0.76112ms (CUDA Measured) + passed +==== naive scan, non-power-of-two ==== + elapsed time: 0.763008ms (CUDA Measured) + passed +==== work-efficient scan, power-of-two ==== + elapsed time: 0.476032ms (CUDA Measured) + passed +==== work-efficient scan, non-power-of-two ==== + elapsed time: 0.479264ms (CUDA Measured) + passed +==== thrust scan, power-of-two ==== + elapsed time: 0.191008ms (CUDA Measured) + passed +==== thrust scan, non-power-of-two ==== + elapsed time: 0.213728ms (CUDA Measured) + passed + +***************************** +** STREAM COMPACTION TESTS ** +***************************** + [ 1 1 3 2 1 3 2 2 3 2 3 1 0 ... 2 0 ] +==== cpu compact without scan, power-of-two ==== + elapsed time: 2.1584ms (std::chrono Measured) + [ 1 1 3 2 1 3 2 2 3 2 3 1 3 ... 1 2 ] + passed +==== cpu compact without scan, non-power-of-two ==== + elapsed time: 2.0913ms (std::chrono Measured) + [ 1 1 3 2 1 3 2 2 3 2 3 1 3 ... 3 3 ] + passed +==== cpu compact with scan ==== + elapsed time: 5.7503ms (std::chrono Measured) + [ 1 1 3 2 1 3 2 2 3 2 3 1 3 ... 1 2 ] + passed +==== work-efficient compact, power-of-two ==== + elapsed time: 0.618016ms (CUDA Measured) + passed +==== work-efficient compact, non-power-of-two ==== + elapsed time: 0.636352ms (CUDA Measured) + passed``` \ No newline at end of file diff --git a/img/compact.png b/img/compact.png new file mode 100644 index 0000000000000000000000000000000000000000..1dded4c63158ea3bd88c314baa3091b19772a9c7 GIT binary patch literal 73601 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 z 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

?msL&QRdxL331)!47>BgCN2G6dJO(Glqr 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 K^_r`$fBqjC%K#1l literal 0 HcmV?d00001 diff --git a/stream_compaction/common.cu b/stream_compaction/common.cu index 2ed6d63..86dd09e 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 index = (blockIdx.x * blockDim.x) + threadIdx.x; + if (index < n) { + bools[index] = idata[index] != 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 index = (blockIdx.x * blockDim.x) + threadIdx.x; + if (index < n) { + if (bools[index] == 1) { + odata[indices[index]] = idata[index]; + } + } } } diff --git a/stream_compaction/cpu.cu b/stream_compaction/cpu.cu index 719fa11..f86e526 100644 --- a/stream_compaction/cpu.cu +++ b/stream_compaction/cpu.cu @@ -19,7 +19,10 @@ namespace StreamCompaction { */ void scan(int n, int *odata, const int *idata) { timer().startCpuTimer(); - // TODO + odata[0] = 0; + for (int i = 1; i < n; i++) { + odata[i] = odata[i - 1] + idata[i - 1]; + } timer().endCpuTimer(); } @@ -30,9 +33,15 @@ namespace StreamCompaction { */ int compactWithoutScan(int n, int *odata, const int *idata) { timer().startCpuTimer(); - // TODO + int oi = 0; + for (int i = 0; i < n; i++) { + if (idata[i] > 0) { + odata[oi] = idata[i]; + oi++; + } + } timer().endCpuTimer(); - return -1; + return oi; } /** @@ -42,9 +51,25 @@ namespace StreamCompaction { */ int compactWithScan(int n, int *odata, const int *idata) { timer().startCpuTimer(); - // TODO + int* bools = new int[n], * indices = new int[n]; + for (int i = 0; i < n; i++) { + bools[i] = idata[i] != 0; + } + //scan + indices[0] = 0; + for (int i = 1; i < n; i++) { + indices[i] = indices[i - 1] + bools[i - 1]; + } + for (int i = 0; i < n; i++) { + if (idata[i] > 0) { + odata[indices[i]] = idata[i]; + } + } + int count = indices[n - 1] + bools[n - 1]; + delete[] bools; + delete[] indices; timer().endCpuTimer(); - return -1; + return count; } } } diff --git a/stream_compaction/efficient.cu b/stream_compaction/efficient.cu index 2db346e..0a4dc4d 100644 --- a/stream_compaction/efficient.cu +++ b/stream_compaction/efficient.cu @@ -12,15 +12,54 @@ namespace StreamCompaction { return timer; } + __global__ void kernUpSweep(int n, int t, int* data) { + int index = (blockIdx.x * blockDim.x) + threadIdx.x; + if (index < n) { + data[t * index + t - 1] += data[t * index + (t >> 1) - 1]; + } + } + __global__ void kernDownSweep(int n, int t, int* data) { + int index = (blockIdx.x * blockDim.x) + threadIdx.x; + if (index < n) { + int tmp = data[t * index + (t >> 1) - 1]; + data[t * index + (t >> 1) - 1] = data[t * index + t - 1]; + data[t * index + t - 1] += tmp; + } + } + __global__ void kernSetArray(int value, int index, int* data) { + data[index] = value; + } + /** * Performs prefix-sum (aka scan) on idata, storing the result into odata. */ void scan(int n, int *odata, const int *idata) { + int blockSize = 128; + int* buffer; + int N = 1 << ilog2ceil(n); + cudaMalloc((void**)&buffer, N * sizeof(int)); + cudaMemcpy(buffer, idata, n * sizeof(int), cudaMemcpyHostToDevice); + timer().startGpuTimer(); - // TODO + for (int d = 0; d < ilog2ceil(n); d++) { + int computeCount = n >> d + 1; //up sweep is n, down sweep is N. It's not a typo + dim3 blockCount((computeCount + blockSize - 1) / blockSize); + kernUpSweep << > > (computeCount, 1<> > (0, N - 1, buffer); + for (int d = ilog2ceil(n) - 1; d >= 0; d--) { + int computeCount = N >> d + 1; + dim3 blockCount((computeCount + blockSize - 1) / blockSize); + kernDownSweep << > > (computeCount, 1 << d+1, buffer); + } timer().endGpuTimer(); + + cudaMemcpy(odata, buffer, n * sizeof(int), cudaMemcpyDeviceToHost); + cudaFree(buffer); } + /** * Performs stream compaction on idata, storing the result into odata. * All zeroes are discarded. @@ -31,10 +70,50 @@ namespace StreamCompaction { * @returns The number of elements remaining after compaction. */ int compact(int n, int *odata, const int *idata) { + int* bools, * indices, * ibuffer, * obuffer; + cudaMalloc((void**)&bools, n * sizeof(int)); + cudaMalloc((void**)&indices, n * sizeof(int)); + cudaMalloc((void**)&ibuffer, n * sizeof(int)); + cudaMalloc((void**)&obuffer, n * sizeof(int)); + cudaMemcpy(ibuffer, idata, n * sizeof(int), cudaMemcpyHostToDevice); + + int blockSize = 128; + dim3 blockCount((n + blockSize - 1) / blockSize); + timer().startGpuTimer(); - // TODO + Common::kernMapToBoolean<<>>(n, bools, ibuffer); + + //------------------ scan --------------------- + int N = 1 << ilog2ceil(n); + cudaMemcpy(indices, bools, n * sizeof(int), cudaMemcpyDeviceToDevice); + + for (int d = 0; d < ilog2ceil(n); d++) { + int computeCount = n >> d + 1; //up sweep is n, down sweep is N. It's not a typo + dim3 blockCount((computeCount + blockSize - 1) / blockSize); + kernUpSweep << > > (computeCount, 1 << d + 1, indices); //todo non power of 2 + } + kernSetArray << <1, 1 >> > (0, N - 1, indices); + for (int d = ilog2ceil(n) - 1; d >= 0; d--) { + int computeCount = N >> d + 1; + dim3 blockCount((computeCount + blockSize - 1) / blockSize); + kernDownSweep << > > (computeCount, 1 << d + 1, indices); + } + //------------------ scan --------------------- + + Common::kernScatter << > > (n, obuffer, ibuffer, bools, indices); timer().endGpuTimer(); - return -1; + + int count, bias; + cudaMemcpy(&count, indices + n - 1, sizeof(int), cudaMemcpyDeviceToHost); + cudaMemcpy(&bias, bools + n - 1, sizeof(int), cudaMemcpyDeviceToHost); + int remainNum = count + bias; + cudaMemcpy(odata, obuffer, remainNum * sizeof(int), cudaMemcpyDeviceToHost); + + cudaFree(bools); + cudaFree(indices); + cudaFree(ibuffer); + cudaFree(obuffer); + return remainNum; //todo } } } diff --git a/stream_compaction/naive.cu b/stream_compaction/naive.cu index 4308876..f4ca8b0 100644 --- a/stream_compaction/naive.cu +++ b/stream_compaction/naive.cu @@ -12,14 +12,42 @@ namespace StreamCompaction { return timer; } // TODO: __global__ + __global__ void kernScan(int n, int bias, int* odata, const int* idata) { + int index = (blockIdx.x * blockDim.x) + threadIdx.x; + if (index >= bias && index < n) { + odata[index] = idata[index - bias] + idata[index]; + } + else { + odata[index] = idata[index]; + } + } /** * Performs prefix-sum (aka scan) on idata, storing the result into odata. */ - void scan(int n, int *odata, const int *idata) { + void scan(int n, int* odata, const int* idata) { + int blockSize = 128; + dim3 blockCount((n + blockSize - 1) / blockSize); + + int* buffer1, *buffer2; + cudaMalloc((void**)&buffer1, n * sizeof(int)); + cudaMalloc((void**)&buffer2, n * sizeof(int)); + cudaMemcpy(buffer1, idata, n * sizeof(int), cudaMemcpyHostToDevice); + timer().startGpuTimer(); - // TODO + int in = ilog2ceil(n); + for (int d = 1; d <= in; d++) { + int bias = 1 << d - 1; + kernScan<<>>(n, bias, buffer2, buffer1); + + std::swap(buffer1, buffer2); + } timer().endGpuTimer(); + + cudaMemcpy(odata + 1, buffer1, (n - 1) * sizeof(int), cudaMemcpyDeviceToHost); + odata[0] = 0; + cudaFree(buffer1); + cudaFree(buffer2); } } } diff --git a/stream_compaction/thrust.cu b/stream_compaction/thrust.cu index 1def45e..23f89b3 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) { + thrust::device_vector thrust_idata(idata, idata + n); + thrust::device_vector thrust_odata(n); + 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(thrust_idata.begin(), thrust_idata.end(), thrust_odata.begin()); + timer().endGpuTimer(); + + thrust::copy(thrust_odata.begin(), thrust_odata.end(), odata); } } }