From a7fc687ca465286295b8c34c32d90928bebdd4cc Mon Sep 17 00:00:00 2001 From: asacoolguy Date: Thu, 13 Sep 2018 15:43:30 -0400 Subject: [PATCH 01/10] finished part 1 --- src/main.cpp | 10 +++- stream_compaction/CMakeLists.txt | 2 +- stream_compaction/cpu.cu | 86 ++++++++++++++++++++++++++++---- stream_compaction/cpu.h | 2 + 4 files changed, 87 insertions(+), 13 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index 1850161..d288586 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -13,7 +13,8 @@ #include #include "testing_helpers.hpp" -const int SIZE = 1 << 8; // feel free to change the size of array +const int SIZE = 1 << 8 +; // 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]; @@ -133,6 +134,13 @@ int main(int argc, char* argv[]) { printArray(count, c, true); printCmpLenResult(count, expectedCount, b, c); + zeroArray(SIZE, c); + printDesc("cpu compact with scan and scatter in single loop"); + count = StreamCompaction::CPU::compactWithScanOnePass(SIZE, c, a); + printElapsedTime(StreamCompaction::CPU::timer().getCpuElapsedTimeForPreviousOperation(), "(std::chrono Measured)"); + printArray(count, c, true); + printCmpLenResult(count, expectedCount, b, c); + zeroArray(SIZE, c); printDesc("work-efficient compact, power-of-two"); count = StreamCompaction::Efficient::compact(SIZE, c, a); diff --git a/stream_compaction/CMakeLists.txt b/stream_compaction/CMakeLists.txt index cdbef77..c8709e7 100644 --- a/stream_compaction/CMakeLists.txt +++ b/stream_compaction/CMakeLists.txt @@ -13,5 +13,5 @@ set(SOURCE_FILES cuda_add_library(stream_compaction ${SOURCE_FILES} - OPTIONS -arch=sm_20 + OPTIONS -arch=sm_50 ) diff --git a/stream_compaction/cpu.cu b/stream_compaction/cpu.cu index 05ce667..8cd66b3 100644 --- a/stream_compaction/cpu.cu +++ b/stream_compaction/cpu.cu @@ -1,15 +1,15 @@ #include #include "cpu.h" -#include "common.h" +#include "common.h" namespace StreamCompaction { namespace CPU { - using StreamCompaction::Common::PerformanceTimer; - PerformanceTimer& timer() - { - static PerformanceTimer timer; - return timer; + using StreamCompaction::Common::PerformanceTimer; + PerformanceTimer& timer() + { + static PerformanceTimer timer; + return timer; } /** @@ -19,7 +19,15 @@ namespace StreamCompaction { */ void scan(int n, int *odata, const int *idata) { timer().startCpuTimer(); - // TODO + + if (n > 0) { + odata[0] = 0; + + for (int i = 1; i < n; i++) { + odata[i] = idata[i - 1] + odata[i - 1]; + } + } + timer().endCpuTimer(); } @@ -30,9 +38,17 @@ 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; } /** @@ -42,9 +58,57 @@ namespace StreamCompaction { */ int compactWithScan(int n, int *odata, const int *idata) { timer().startCpuTimer(); - // TODO + + int count = 0; + + if (n > 0) { + + // first scan + odata[0] = 0; + for (int i = 1; i < n; i++) { + odata[i] = (idata[i - 1] != 0 ? 1 : 0) + odata[i - 1]; + } + + // then scatter + for (int i = 0; i < n; i++) { + if (idata[i] != 0) { + odata[odata[i]] = idata[i]; + count++; + } + } + } + timer().endCpuTimer(); - return -1; + return count; } + + /** + * CPU stream compaction using scan and scatter in a single for loop + * + * @returns the number of elements remaining after compaction. + */ + int compactWithScanOnePass(int n, int *odata, const int *idata) { + timer().startCpuTimer(); + + int count = 0; + + if (n > 0) { + odata[0] = 0; + for (int i = 0; i < n; i++) { + // first scan + if (i < n - 1) { + odata[i + 1] = (idata[i] != 0 ? 1 : 0) + odata[i]; + } + // then scatter + if (idata[i] != 0) { + odata[odata[i]] = idata[i]; + count++; + } + } + } + + timer().endCpuTimer(); + return count; + } } } diff --git a/stream_compaction/cpu.h b/stream_compaction/cpu.h index 236ce11..4573496 100644 --- a/stream_compaction/cpu.h +++ b/stream_compaction/cpu.h @@ -11,5 +11,7 @@ namespace StreamCompaction { int compactWithoutScan(int n, int *odata, const int *idata); int compactWithScan(int n, int *odata, const int *idata); + + int compactWithScanOnePass(int n, int *odata, const int *idata); } } From 3b53b7756e9c78bf083836b32b16fdc97d26f626 Mon Sep 17 00:00:00 2001 From: asacoolguy Date: Fri, 14 Sep 2018 16:07:52 -0400 Subject: [PATCH 02/10] finished part 2 --- src/main.cpp | 12 +++--- stream_compaction/naive.cu | 86 ++++++++++++++++++++++++++++++++++---- 2 files changed, 83 insertions(+), 15 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index d288586..a87c30f 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -13,8 +13,7 @@ #include #include "testing_helpers.hpp" -const int SIZE = 1 << 8 -; // feel free to change the size of array +const int SIZE = 1 << 12; // 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]; @@ -22,7 +21,6 @@ int *c = new int[SIZE]; int main(int argc, char* argv[]) { // Scan tests - printf("\n"); printf("****************\n"); printf("** SCAN TESTS **\n"); @@ -52,11 +50,11 @@ 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 - onesArray(SIZE, c); + // 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); */ @@ -65,7 +63,7 @@ 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); diff --git a/stream_compaction/naive.cu b/stream_compaction/naive.cu index 9218f8e..1a3b910 100644 --- a/stream_compaction/naive.cu +++ b/stream_compaction/naive.cu @@ -5,21 +5,91 @@ namespace StreamCompaction { namespace Naive { - using StreamCompaction::Common::PerformanceTimer; - PerformanceTimer& timer() - { - static PerformanceTimer timer; - return timer; + using StreamCompaction::Common::PerformanceTimer; + PerformanceTimer& timer() + { + static PerformanceTimer timer; + return timer; } - // TODO: __global__ + __global__ void kernNaiveScan(int n, int* input, int* output, int interval) { + int index = (blockIdx.x * blockDim.x) + threadIdx.x; + if (index < n) { + if (index < interval) { + output[index] = input[index]; + } + else if (index >= interval) { + output[index] = input[index - interval] + input[index]; + } + } + } + + __global__ void kernMakeExclusive(int n, int* input, int* output) { + int index = (blockIdx.x * blockDim.x) + threadIdx.x; + if (index < n){ + if (index > 0) { + output[index] = input[index - 1]; + } + else { + output[index] = 0; + } + } + } /** * Performs prefix-sum (aka scan) on idata, storing the result into odata. */ void scan(int n, int *odata, const int *idata) { - timer().startGpuTimer(); - // TODO + if (n <= 0) return; + + // allocate 2 arrays on global memory + int* dev_buffer1; + int* dev_buffer2; + size_t sizeInBytes = n * sizeof(int); + + cudaMalloc((void**)&dev_buffer1, sizeInBytes); + checkCUDAError("cudaMalloc dev_buffer1 failed!"); + + cudaMalloc((void**)&dev_buffer2, sizeInBytes); + checkCUDAError("cudaMalloc dev_buffer2 failed!"); + + // copy the data into global memory + cudaMemcpy(dev_buffer1, idata, sizeInBytes, cudaMemcpyHostToDevice); + checkCUDAError("cudaMemcopy from idata to dev_buffer1 failed!"); + cudaMemcpy(dev_buffer2, dev_buffer1, sizeInBytes, cudaMemcpyDeviceToDevice); + checkCUDAError("cudaMemcopy from dev_buffer1 to dev_buffer2 failed!"); + + int blockSize = 256; + dim3 fullBlocksPerGrid((n + blockSize - 1) / blockSize); + + timer().startGpuTimer(); + + int ceiling = ilog2ceil(n); + int** input = &dev_buffer1; + int** output = &dev_buffer2; + + for (int i = 1; i <= ceiling; i++) { + int interval = 1 << (i - 1); + kernNaiveScan << < fullBlocksPerGrid, blockSize >> > (n, *input, *output, interval); + checkCUDAError("kernNaiveScan failed"); + std::swap(input, output); + + } + + // shift the output array to the right by 1 + kernMakeExclusive << < fullBlocksPerGrid, blockSize >> > (n, *input, *output); + checkCUDAError("kernMakeExclusive failed"); + timer().endGpuTimer(); + + // copy data back + cudaMemcpy(odata, *output, sizeInBytes, cudaMemcpyDeviceToHost); + checkCUDAError("cudaMemcopy from output to odata failed!"); + + // free the allocated arrays + cudaFree(dev_buffer1); + checkCUDAError("cudaFree on dev_buffer1 failed"); + cudaFree(dev_buffer2); + checkCUDAError("cudaFree on dev_buffer2 failed"); } } } From ca36e4f52342816da8647fd090819a0d1899e89c Mon Sep 17 00:00:00 2001 From: asacoolguy Date: Fri, 14 Sep 2018 19:59:42 -0400 Subject: [PATCH 03/10] kind of finished part 3 --- src/main.cpp | 16 +-- stream_compaction/common.cu | 38 +++++- stream_compaction/common.h | 6 + stream_compaction/efficient.cu | 212 +++++++++++++++++++++++++++++++-- stream_compaction/efficient.h | 2 + stream_compaction/naive.cu | 9 +- stream_compaction/thrust.cu | 10 +- 7 files changed, 261 insertions(+), 32 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index a87c30f..1432d7d 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -13,8 +13,8 @@ #include #include "testing_helpers.hpp" -const int SIZE = 1 << 12; // feel free to change the size of array -const int NPOT = SIZE - 3; // Non-Power-Of-Two +const int SIZE = 1 << 3; // feel free to change the size of array +const int NPOT = SIZE - 6; // Non-Power-Of-Two int *a = new int[SIZE]; int *b = new int[SIZE]; int *c = new int[SIZE]; @@ -70,28 +70,28 @@ 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); 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("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"); @@ -143,14 +143,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 8fc0211..2b6f8d1 100644 --- a/stream_compaction/common.cu +++ b/stream_compaction/common.cu @@ -18,12 +18,41 @@ void checkCUDAErrorFn(const char *msg, const char *file, int line) { namespace StreamCompaction { namespace Common { + /** + * Sets a single value in data to a certain value + */ + __global__ void kernSetIndexInData(int n, int index, int value, int *data) { + if (index >= 0 && index < n) { + data[index] = value; + } + } + + /** + * Copies elements from array1 into array2. + * If array 1 has less elements, the empty elements in array 2 will be 0. + * If array 1 has more elementes, the extra elements will not be copied over. + */ + __global__ void kernCopyArray(int size1, int size2, int * array1, int * array2) { + int index = (blockIdx.x * blockDim.x) + threadIdx.x; + if (index < size2) { + if (index < size1) { + array2[index] = array1[index]; + } + else { + array2[index] = 0; + } + } + } + /** * Maps an array to an array of 0s and 1s for stream compaction. Elements * which map to 0 will be removed, and elements which map to 1 will be kept. */ __global__ void kernMapToBoolean(int n, int *bools, const int *idata) { - // TODO + int index = (blockIdx.x * blockDim.x) + threadIdx.x; + if (index < n) { + bools[index] = idata[index] != 0 ? 1 : 0; + } } /** @@ -32,7 +61,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/common.h b/stream_compaction/common.h index 99a1b04..d98dde5 100644 --- a/stream_compaction/common.h +++ b/stream_compaction/common.h @@ -32,11 +32,17 @@ inline int ilog2ceil(int x) { namespace StreamCompaction { namespace Common { + __global__ void kernSetIndexInData(int n, int index, int value, int *data); + + __global__ void kernCopyArray(int size1, int size2, int* array1, int* array2); + __global__ void kernMapToBoolean(int n, int *bools, const int *idata); __global__ void kernScatter(int n, int *odata, const int *idata, const int *bools, const int *indices); + static int blockSize = 256; + /** * This class is used for timing the performance * Uncopyable and unmovable diff --git a/stream_compaction/efficient.cu b/stream_compaction/efficient.cu index 36c5ef2..83a97eb 100644 --- a/stream_compaction/efficient.cu +++ b/stream_compaction/efficient.cu @@ -5,22 +5,111 @@ namespace StreamCompaction { namespace Efficient { - using StreamCompaction::Common::PerformanceTimer; - PerformanceTimer& timer() - { - static PerformanceTimer timer; - return timer; + using StreamCompaction::Common::PerformanceTimer; + PerformanceTimer& timer() + { + static PerformanceTimer timer; + return timer; } + __global__ void kernEfficientUpSweep(int n, int* buffer, int interval) { + int index = (blockIdx.x * blockDim.x) + threadIdx.x * interval; + if (index < n) { + buffer[index + interval - 1] += buffer[index + (interval >> 1) - 1]; + } + } + + __global__ void kernEfficientDownSweep(int n, int* buffer, int interval) { + int index = (blockIdx.x * blockDim.x) + threadIdx.x * interval; + + if (index < n) { + int smallInterval = interval >> 1; + int t = buffer[index + smallInterval - 1]; + buffer[index + smallInterval - 1] = buffer[index + interval - 1]; + buffer[index + interval - 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 - timer().endGpuTimer(); + if (n <= 0) return; + + // allocate buffer array on global memory + int* dev_original; + int* dev_buffer; + + int size = 1 << (ilog2ceil(n)); + size_t originalSizeInBytes = n * sizeof(int); + size_t sizeInBytes = size * sizeof(int); + dim3 fullBlocksPerGrid((size + Common::blockSize - 1) / Common::blockSize); + + cudaMalloc((void**)&dev_original, originalSizeInBytes); + checkCUDAError("cudaMalloc dev_original failed!"); + cudaMalloc((void**)&dev_buffer, sizeInBytes); + checkCUDAError("cudaMalloc dev_buffer failed!"); + + // copy the data into global memory + cudaMemcpy(dev_original, idata, n * sizeof(int), cudaMemcpyHostToDevice); + checkCUDAError("cudaMemcopy from idata to dev_original failed!"); + + // copy the original data into the buffer + Common::kernCopyArray<<>>(n, size, dev_original, dev_buffer); + checkCUDAError("kernCopy from dev_original to dev_buffer failed!"); + + timer().startGpuTimer(); + + //printf("before start: ["); + //cudaMemcpy(odata, dev_buffer, sizeInBytes, cudaMemcpyDeviceToHost); + //for (int i = 0; i < size; i++) { + // printf("%d, ", odata[i]); + //} + //printf("] \n"); + + scanHelper(n, size, dev_buffer); + + timer().endGpuTimer(); + + // copy the buffer data back into the original + Common::kernCopyArray << > >(size, n, dev_buffer, dev_original); + checkCUDAError("kernCopy from dev_buffer to dev_original failed!"); + + // copy data back + cudaMemcpy(odata, dev_original, originalSizeInBytes, cudaMemcpyDeviceToHost); + checkCUDAError("cudaMemcopy from dev_original to odata failed!"); + + // free the allocated arrays + cudaFree(dev_original); + checkCUDAError("cudaFree on dev_original failed"); + cudaFree(dev_buffer); + checkCUDAError("cudaFree on dev_buffer failed"); } + + // helper function for scan + void scanHelper(int n, int size, int* dev_buffer) { + dim3 fullBlocksPerGrid((size + Common::blockSize - 1) / Common::blockSize); + + for (int i = 0; i <= ilog2ceil(n) - 1; i++) { + int interval = 1 << (i + 1); + kernEfficientUpSweep << < fullBlocksPerGrid, Common::blockSize >> > (size, dev_buffer, interval); + checkCUDAError("kernEfficientUpSweep failed!"); + } + + // first set the last value to 0 + Common::kernSetIndexInData << <1, 1 >> > (size, size - 1, 0, dev_buffer); + checkCUDAError("kernSetIndexInData failed!"); + + // down sweep + for (int i = ilog2ceil(n) - 1; i >= 0; i--) { + int interval = 1 << (i + 1); + kernEfficientDownSweep << < fullBlocksPerGrid, Common::blockSize >> > (size, dev_buffer, interval); + checkCUDAError("kernEfficientDownSweep failed!"); + } + } + + /** * Performs stream compaction on idata, storing the result into odata. * All zeroes are discarded. @@ -31,10 +120,109 @@ namespace StreamCompaction { * @returns The number of elements remaining after compaction. */ int compact(int n, int *odata, const int *idata) { - timer().startGpuTimer(); - // TODO - timer().endGpuTimer(); - return -1; + if (n <= 0) return -1; + + int count = 0; + + // ---------------------------------------------- + // ---------- allocate global memory ------------ + // ---------------------------------------------- + + int* dev_original; + int* dev_input; + int* dev_output; + int* dev_bools; + int* dev_indices; + int size = 1 << (ilog2ceil(n)); + size_t originalSizeInBytes = n * sizeof(int); + size_t sizeInBytes = size * sizeof(int); + + cudaMalloc((void**)&dev_original, originalSizeInBytes); + checkCUDAError("cudaMalloc dev_original failed!"); + cudaMalloc((void**)&dev_input, sizeInBytes); + checkCUDAError("cudaMalloc dev_input failed!"); + cudaMalloc((void**)&dev_output, sizeInBytes); + checkCUDAError("cudaMalloc dev_output failed!"); + cudaMalloc((void**)&dev_bools, sizeInBytes); + checkCUDAError("cudaMalloc dev_bools failed!"); + cudaMalloc((void**)&dev_indices, sizeInBytes); + checkCUDAError("cudaMalloc dev_indices failed!"); + + cudaDeviceSynchronize(); + + dim3 fullBlocksPerGrid((size + Common::blockSize - 1) / Common::blockSize); + + // ---------------------------------------------------- + // ---------- copy data into global memory ------------ + // ---------------------------------------------------- + + // copy the input into global memory + cudaMemcpy(dev_original, idata, originalSizeInBytes, cudaMemcpyHostToDevice); + checkCUDAError("cudaMemcopy from idata to dev_original failed!"); + + // copy the original data array into the input array to round it to a size of power of two + Common::kernCopyArray <<>>(n, size, dev_original, dev_input); + checkCUDAError("cudaMemcopy from dev_original to dev_input failed!"); + + // --------------------------------------- + // ---------- start algorithm ------------ + // --------------------------------------- + + timer().startGpuTimer(); + + // turn input into boolean array + Common::kernMapToBoolean << > > (size, dev_bools, dev_input); + checkCUDAError("kernMapToBoolean failed!"); + + // exclusive scan the boolean array + cudaMemcpy(dev_indices, dev_bools, sizeInBytes, cudaMemcpyDeviceToDevice); + checkCUDAError("cudaMemcopy from dev_bools to dev_indices failed!"); + scanHelper(n, size, dev_indices); + + // scatter + Common::kernScatter << > > (n, dev_output, dev_input, dev_bools, dev_indices); + checkCUDAError("kernScatter failed!"); + + timer().endGpuTimer(); + // ----------------------------------------- + // ------------- end algorithm ------------- + // ----------------------------------------- + + + // ----------------------------------------------------------- + // ---------- read global memory into host memory ------------ + // ----------------------------------------------------------- + + // first, read dev_indices to get the count of non-zero elements + cudaMemcpy(odata, dev_indices, originalSizeInBytes, cudaMemcpyDeviceToHost); + checkCUDAError("cudaMemcopy from dev_output to odata failed!"); + count = odata[n - 1]; + if (size != n) count++; // adjust the count if the array size is not power of 2 + + // next, get the output array into the "original" array which has the right size + Common::kernCopyArray << > >(size, n, dev_output, dev_original); + checkCUDAError("cudaMemcopy from dev_original to dev_input failed!"); + + // finally, get the values out of the original array + cudaMemcpy(odata, dev_original, originalSizeInBytes, cudaMemcpyDeviceToHost); + checkCUDAError("cudaMemcopy from dev_output to odata failed!"); + + // ------------------------------------------ + // ---------- free global memory ------------ + // ------------------------------------------ + + cudaFree(dev_original); + checkCUDAError("cudaFree on dev_original failed"); + cudaFree(dev_input); + checkCUDAError("cudaFree on dev_input failed"); + cudaFree(dev_output); + checkCUDAError("cudaFree on dev_output failed"); + cudaFree(dev_bools); + checkCUDAError("cudaFree on dev_bools failed"); + cudaFree(dev_indices); + checkCUDAError("cudaFree on dev_indices failed"); + + return count; } } } diff --git a/stream_compaction/efficient.h b/stream_compaction/efficient.h index 803cb4f..1709858 100644 --- a/stream_compaction/efficient.h +++ b/stream_compaction/efficient.h @@ -8,6 +8,8 @@ namespace StreamCompaction { void scan(int n, int *odata, const int *idata); + void scanHelper(int n, int size, int* dev_buffer); + int compact(int n, int *odata, const int *idata); } } diff --git a/stream_compaction/naive.cu b/stream_compaction/naive.cu index 1a3b910..dfd2368 100644 --- a/stream_compaction/naive.cu +++ b/stream_compaction/naive.cu @@ -29,7 +29,7 @@ namespace StreamCompaction { if (index > 0) { output[index] = input[index - 1]; } - else { + else if (index == 0){ output[index] = 0; } } @@ -58,8 +58,7 @@ namespace StreamCompaction { cudaMemcpy(dev_buffer2, dev_buffer1, sizeInBytes, cudaMemcpyDeviceToDevice); checkCUDAError("cudaMemcopy from dev_buffer1 to dev_buffer2 failed!"); - int blockSize = 256; - dim3 fullBlocksPerGrid((n + blockSize - 1) / blockSize); + dim3 fullBlocksPerGrid((n + Common::blockSize - 1) / Common::blockSize); timer().startGpuTimer(); @@ -69,14 +68,14 @@ namespace StreamCompaction { for (int i = 1; i <= ceiling; i++) { int interval = 1 << (i - 1); - kernNaiveScan << < fullBlocksPerGrid, blockSize >> > (n, *input, *output, interval); + kernNaiveScan << < fullBlocksPerGrid, Common::blockSize >> > (n, *input, *output, interval); checkCUDAError("kernNaiveScan failed"); std::swap(input, output); } // shift the output array to the right by 1 - kernMakeExclusive << < fullBlocksPerGrid, blockSize >> > (n, *input, *output); + kernMakeExclusive << < fullBlocksPerGrid, Common::blockSize >> > (n, *input, *output); checkCUDAError("kernMakeExclusive failed"); timer().endGpuTimer(); diff --git a/stream_compaction/thrust.cu b/stream_compaction/thrust.cu index 36b732d..e3b3268 100644 --- a/stream_compaction/thrust.cu +++ b/stream_compaction/thrust.cu @@ -8,11 +8,11 @@ namespace StreamCompaction { namespace Thrust { - using StreamCompaction::Common::PerformanceTimer; - PerformanceTimer& timer() - { - static PerformanceTimer timer; - return timer; + using StreamCompaction::Common::PerformanceTimer; + PerformanceTimer& timer() + { + static PerformanceTimer timer; + return timer; } /** * Performs prefix-sum (aka scan) on idata, storing the result into odata. From 10289dffde00c599d3493fa3b752238130a5136e Mon Sep 17 00:00:00 2001 From: asacoolguy Date: Sat, 15 Sep 2018 08:07:23 -0400 Subject: [PATCH 04/10] finished part 4 --- src/main.cpp | 2 +- stream_compaction/efficient.cu | 31 +++++++++---------------------- stream_compaction/thrust.cu | 11 ++++++++--- 3 files changed, 18 insertions(+), 26 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index 1432d7d..435c584 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -13,7 +13,7 @@ #include #include "testing_helpers.hpp" -const int SIZE = 1 << 3; // feel free to change the size of array +const int SIZE = 1 << 16; // feel free to change the size of array const int NPOT = SIZE - 6; // Non-Power-Of-Two int *a = new int[SIZE]; int *b = new int[SIZE]; diff --git a/stream_compaction/efficient.cu b/stream_compaction/efficient.cu index 83a97eb..3a71f14 100644 --- a/stream_compaction/efficient.cu +++ b/stream_compaction/efficient.cu @@ -33,9 +33,8 @@ namespace StreamCompaction { /** * Performs prefix-sum (aka scan) on idata, storing the result into odata. */ + // TODO: for somereason this fails for 2^n where n >= 9. weird. am i doing memcpy wrong? void scan(int n, int *odata, const int *idata) { - if (n <= 0) return; - // allocate buffer array on global memory int* dev_original; int* dev_buffer; @@ -55,7 +54,7 @@ namespace StreamCompaction { checkCUDAError("cudaMemcopy from idata to dev_original failed!"); // copy the original data into the buffer - Common::kernCopyArray<<>>(n, size, dev_original, dev_buffer); + Common::kernCopyArray << > >(n, size, dev_original, dev_buffer); checkCUDAError("kernCopy from dev_original to dev_buffer failed!"); timer().startGpuTimer(); @@ -128,7 +127,6 @@ namespace StreamCompaction { // ---------- allocate global memory ------------ // ---------------------------------------------- - int* dev_original; int* dev_input; int* dev_output; int* dev_bools; @@ -137,8 +135,6 @@ namespace StreamCompaction { size_t originalSizeInBytes = n * sizeof(int); size_t sizeInBytes = size * sizeof(int); - cudaMalloc((void**)&dev_original, originalSizeInBytes); - checkCUDAError("cudaMalloc dev_original failed!"); cudaMalloc((void**)&dev_input, sizeInBytes); checkCUDAError("cudaMalloc dev_input failed!"); cudaMalloc((void**)&dev_output, sizeInBytes); @@ -157,13 +153,9 @@ namespace StreamCompaction { // ---------------------------------------------------- // copy the input into global memory - cudaMemcpy(dev_original, idata, originalSizeInBytes, cudaMemcpyHostToDevice); + cudaMemcpy(dev_input, idata, n * sizeof(int), cudaMemcpyHostToDevice); checkCUDAError("cudaMemcopy from idata to dev_original failed!"); - // copy the original data array into the input array to round it to a size of power of two - Common::kernCopyArray <<>>(n, size, dev_original, dev_input); - checkCUDAError("cudaMemcopy from dev_original to dev_input failed!"); - // --------------------------------------- // ---------- start algorithm ------------ // --------------------------------------- @@ -193,26 +185,21 @@ namespace StreamCompaction { // ---------- read global memory into host memory ------------ // ----------------------------------------------------------- - // first, read dev_indices to get the count of non-zero elements - cudaMemcpy(odata, dev_indices, originalSizeInBytes, cudaMemcpyDeviceToHost); + // first, read dev_bool to get the count of non-zero elements + cudaMemcpy(odata, dev_bools, originalSizeInBytes, cudaMemcpyDeviceToHost); checkCUDAError("cudaMemcopy from dev_output to odata failed!"); - count = odata[n - 1]; - if (size != n) count++; // adjust the count if the array size is not power of 2 - - // next, get the output array into the "original" array which has the right size - Common::kernCopyArray << > >(size, n, dev_output, dev_original); - checkCUDAError("cudaMemcopy from dev_original to dev_input failed!"); + for (int i = 0; i < n; i++) { + if (odata[i] != 0) count++; + } // finally, get the values out of the original array - cudaMemcpy(odata, dev_original, originalSizeInBytes, cudaMemcpyDeviceToHost); + cudaMemcpy(odata, dev_output, originalSizeInBytes, cudaMemcpyDeviceToHost); checkCUDAError("cudaMemcopy from dev_output to odata failed!"); // ------------------------------------------ // ---------- free global memory ------------ // ------------------------------------------ - cudaFree(dev_original); - checkCUDAError("cudaFree on dev_original failed"); cudaFree(dev_input); checkCUDAError("cudaFree on dev_input failed"); cudaFree(dev_output); diff --git a/stream_compaction/thrust.cu b/stream_compaction/thrust.cu index e3b3268..d1ad099 100644 --- a/stream_compaction/thrust.cu +++ b/stream_compaction/thrust.cu @@ -18,11 +18,16 @@ 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 dv_in(idata, idata + n); + thrust::device_vector dv_out(n, 0); + 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(dv_in.begin(), dv_in.end(), dv_out.begin()); + timer().endGpuTimer(); + + cudaMemcpy(odata, dv_out.data().get(), n * sizeof(int), cudaMemcpyDeviceToHost); } } } From ee412591b2985fda0b7c8ee29ba84df077e8b894 Mon Sep 17 00:00:00 2001 From: asacoolguy Date: Sat, 15 Sep 2018 13:19:05 -0400 Subject: [PATCH 05/10] debugged a little --- src/testing_helpers.hpp | 14 +-- stream_compaction/common.cu | 2 +- stream_compaction/common.h | 2 +- stream_compaction/efficient.cu | 165 ++++++++++++++++++++------------- stream_compaction/efficient.h | 2 +- 5 files changed, 110 insertions(+), 75 deletions(-) diff --git a/src/testing_helpers.hpp b/src/testing_helpers.hpp index 46337ab..d6cc4e3 100644 --- a/src/testing_helpers.hpp +++ b/src/testing_helpers.hpp @@ -1,8 +1,8 @@ #pragma once -#include -#include -#include +#include +#include +#include #include #include @@ -69,8 +69,8 @@ void printArray(int n, int *a, bool abridged = false) { printf("]\n"); } -template -void printElapsedTime(T time, std::string note = "") -{ - std::cout << " elapsed time: " << time << "ms " << note << std::endl; +template +void printElapsedTime(T time, std::string note = "") +{ + std::cout << " elapsed time: " << time << "ms " << note << std::endl; } \ No newline at end of file diff --git a/stream_compaction/common.cu b/stream_compaction/common.cu index 2b6f8d1..df13128 100644 --- a/stream_compaction/common.cu +++ b/stream_compaction/common.cu @@ -30,7 +30,7 @@ namespace StreamCompaction { /** * Copies elements from array1 into array2. * If array 1 has less elements, the empty elements in array 2 will be 0. - * If array 1 has more elementes, the extra elements will not be copied over. + * If array 1 has more elements, the extra elements will not be copied over. */ __global__ void kernCopyArray(int size1, int size2, int * array1, int * array2) { int index = (blockIdx.x * blockDim.x) + threadIdx.x; diff --git a/stream_compaction/common.h b/stream_compaction/common.h index d98dde5..df1677f 100644 --- a/stream_compaction/common.h +++ b/stream_compaction/common.h @@ -41,7 +41,7 @@ namespace StreamCompaction { __global__ void kernScatter(int n, int *odata, const int *idata, const int *bools, const int *indices); - static int blockSize = 256; + static int blockSize = 512; /** * This class is used for timing the performance diff --git a/stream_compaction/efficient.cu b/stream_compaction/efficient.cu index 3a71f14..5862a95 100644 --- a/stream_compaction/efficient.cu +++ b/stream_compaction/efficient.cu @@ -12,6 +12,9 @@ namespace StreamCompaction { return timer; } + bool debug = false; + int paddedData[1 << 16]; + __global__ void kernEfficientUpSweep(int n, int* buffer, int interval) { int index = (blockIdx.x * blockDim.x) + threadIdx.x * interval; if (index < n) { @@ -19,11 +22,10 @@ namespace StreamCompaction { } } - __global__ void kernEfficientDownSweep(int n, int* buffer, int interval) { + __global__ void kernEfficientDownSweep(int n, int* buffer, int interval, int smallInterval) { int index = (blockIdx.x * blockDim.x) + threadIdx.x * interval; if (index < n) { - int smallInterval = interval >> 1; int t = buffer[index + smallInterval - 1]; buffer[index + smallInterval - 1] = buffer[index + interval - 1]; buffer[index + interval - 1] += t; @@ -33,79 +35,107 @@ namespace StreamCompaction { /** * Performs prefix-sum (aka scan) on idata, storing the result into odata. */ - // TODO: for somereason this fails for 2^n where n >= 9. weird. am i doing memcpy wrong? void scan(int n, int *odata, const int *idata) { - // allocate buffer array on global memory + // allocate 2 arrays on global memory. one original. one resized. + int* dev_padded; int* dev_original; - int* dev_buffer; - int size = 1 << (ilog2ceil(n)); + int logn = ilog2ceil(n); + int paddedSize = 1 << logn; size_t originalSizeInBytes = n * sizeof(int); - size_t sizeInBytes = size * sizeof(int); - dim3 fullBlocksPerGrid((size + Common::blockSize - 1) / Common::blockSize); + size_t paddedSizeInBytes = paddedSize * sizeof(int); + + dim3 fullBlocksPerGrid((paddedSize + Common::blockSize - 1) / Common::blockSize); cudaMalloc((void**)&dev_original, originalSizeInBytes); checkCUDAError("cudaMalloc dev_original failed!"); - cudaMalloc((void**)&dev_buffer, sizeInBytes); - checkCUDAError("cudaMalloc dev_buffer failed!"); + cudaMalloc((void**)&dev_padded, paddedSizeInBytes); + checkCUDAError("cudaMalloc dev_padded failed!"); - // copy the data into global memory - cudaMemcpy(dev_original, idata, n * sizeof(int), cudaMemcpyHostToDevice); + // copy input into dev_original, then copy dev_original into dev_padded + cudaMemcpy(dev_original, idata, originalSizeInBytes, cudaMemcpyHostToDevice); checkCUDAError("cudaMemcopy from idata to dev_original failed!"); - - // copy the original data into the buffer - Common::kernCopyArray << > >(n, size, dev_original, dev_buffer); - checkCUDAError("kernCopy from dev_original to dev_buffer failed!"); + Common::kernCopyArray << > > (n, paddedSize, dev_original, dev_padded); + checkCUDAError("kernCopyArray from dev_original to dev_padded failed!"); timer().startGpuTimer(); - //printf("before start: ["); - //cudaMemcpy(odata, dev_buffer, sizeInBytes, cudaMemcpyDeviceToHost); - //for (int i = 0; i < size; i++) { - // printf("%d, ", odata[i]); - //} - //printf("] \n"); + if (debug) { + printf("before start: ["); + cudaMemcpy(paddedData, dev_padded, paddedSizeInBytes, cudaMemcpyDeviceToHost); + for (int i = 0; i < paddedSize; i++) { + printf("%d, ", paddedData[i]); + } + printf("] \n"); + } - scanHelper(n, size, dev_buffer); + scanHelper(paddedSize, logn, fullBlocksPerGrid, dev_padded); timer().endGpuTimer(); - // copy the buffer data back into the original - Common::kernCopyArray << > >(size, n, dev_buffer, dev_original); - checkCUDAError("kernCopy from dev_buffer to dev_original failed!"); - // copy data back + // copy padded data back into original data + Common::kernCopyArray << > > (paddedSize, n, dev_padded, dev_original); + checkCUDAError("kernCopyArray from dev_padded to dev_original failed!"); + cudaMemcpy(odata, dev_original, originalSizeInBytes, cudaMemcpyDeviceToHost); checkCUDAError("cudaMemcopy from dev_original to odata failed!"); // free the allocated arrays cudaFree(dev_original); checkCUDAError("cudaFree on dev_original failed"); - cudaFree(dev_buffer); - checkCUDAError("cudaFree on dev_buffer failed"); + cudaFree(dev_padded); + checkCUDAError("cudaFree on dev_padded failed"); } // helper function for scan - void scanHelper(int n, int size, int* dev_buffer) { - dim3 fullBlocksPerGrid((size + Common::blockSize - 1) / Common::blockSize); + void scanHelper(int n, int logn, dim3 fullBlocksPerGrid, int* dev_buffer) { - for (int i = 0; i <= ilog2ceil(n) - 1; i++) { + for (int i = 0; i <= logn - 1; i++) { int interval = 1 << (i + 1); - kernEfficientUpSweep << < fullBlocksPerGrid, Common::blockSize >> > (size, dev_buffer, interval); + kernEfficientUpSweep << < fullBlocksPerGrid, Common::blockSize >> > (n, dev_buffer, interval); checkCUDAError("kernEfficientUpSweep failed!"); } + if (debug) { + printf("after up sweep: ["); + cudaMemcpy(paddedData, dev_buffer, n * sizeof(int), cudaMemcpyDeviceToHost); + for (int i = 0; i < n; i++) { + printf("%d, ", paddedData[i]); + } + printf("] \n"); + } + // first set the last value to 0 - Common::kernSetIndexInData << <1, 1 >> > (size, size - 1, 0, dev_buffer); + Common::kernSetIndexInData << <1, 1 >> > (n, n - 1, 0, dev_buffer); checkCUDAError("kernSetIndexInData failed!"); + if (debug) { + printf("after setting last value: ["); + cudaMemcpy(paddedData, dev_buffer, n * sizeof(int), cudaMemcpyDeviceToHost); + for (int i = 0; i < n; i++) { + printf("%d, ", paddedData[i]); + } + printf("] \n"); + } + // down sweep - for (int i = ilog2ceil(n) - 1; i >= 0; i--) { + for (int i = logn - 1; i >= 0; i--) { + int smallInterval = 1 << i; int interval = 1 << (i + 1); - kernEfficientDownSweep << < fullBlocksPerGrid, Common::blockSize >> > (size, dev_buffer, interval); + kernEfficientDownSweep << < fullBlocksPerGrid, Common::blockSize >> > (n, dev_buffer, interval, smallInterval); checkCUDAError("kernEfficientDownSweep failed!"); } + + if (debug) { + printf("after downsweep: ["); + cudaMemcpy(paddedData, dev_buffer, n * sizeof(int), cudaMemcpyDeviceToHost); + for (int i = 0; i < n; i++) { + printf("%d, ", paddedData[i]); + } + printf("] \n"); + } } @@ -127,35 +157,37 @@ namespace StreamCompaction { // ---------- allocate global memory ------------ // ---------------------------------------------- - int* dev_input; - int* dev_output; - int* dev_bools; - int* dev_indices; - int size = 1 << (ilog2ceil(n)); + int *dev_original, *dev_input, *dev_output, *dev_bools, *dev_indices; + int logn = ilog2ceil(n); + int paddedSize = 1 << logn; size_t originalSizeInBytes = n * sizeof(int); - size_t sizeInBytes = size * sizeof(int); + size_t paddedSizeInBytes = paddedSize * sizeof(int); - cudaMalloc((void**)&dev_input, sizeInBytes); + cudaMalloc((void**)&dev_original, originalSizeInBytes); + checkCUDAError("cudaMalloc dev_original failed!"); + cudaMalloc((void**)&dev_input, paddedSizeInBytes); checkCUDAError("cudaMalloc dev_input failed!"); - cudaMalloc((void**)&dev_output, sizeInBytes); + cudaMalloc((void**)&dev_output, paddedSizeInBytes); checkCUDAError("cudaMalloc dev_output failed!"); - cudaMalloc((void**)&dev_bools, sizeInBytes); + cudaMalloc((void**)&dev_bools, paddedSizeInBytes); checkCUDAError("cudaMalloc dev_bools failed!"); - cudaMalloc((void**)&dev_indices, sizeInBytes); + cudaMalloc((void**)&dev_indices, paddedSizeInBytes); checkCUDAError("cudaMalloc dev_indices failed!"); - cudaDeviceSynchronize(); - - dim3 fullBlocksPerGrid((size + Common::blockSize - 1) / Common::blockSize); + dim3 fullBlocksPerGrid((paddedSizeInBytes + Common::blockSize - 1) / Common::blockSize); // ---------------------------------------------------- // ---------- copy data into global memory ------------ // ---------------------------------------------------- - // copy the input into global memory - cudaMemcpy(dev_input, idata, n * sizeof(int), cudaMemcpyHostToDevice); + // first copy the input into dev_original + cudaMemcpy(dev_original, idata, originalSizeInBytes, cudaMemcpyHostToDevice); checkCUDAError("cudaMemcopy from idata to dev_original failed!"); + // then copy the non-padded dev_original data into the padded dev_input + Common::kernCopyArray << > > (n, paddedSize, dev_original, dev_input); + checkCUDAError("kernCopyArray from dev_original to dev_original failed!"); + // --------------------------------------- // ---------- start algorithm ------------ // --------------------------------------- @@ -163,43 +195,46 @@ namespace StreamCompaction { timer().startGpuTimer(); // turn input into boolean array - Common::kernMapToBoolean << > > (size, dev_bools, dev_input); + Common::kernMapToBoolean << > > (paddedSize, dev_bools, dev_input); checkCUDAError("kernMapToBoolean failed!"); // exclusive scan the boolean array - cudaMemcpy(dev_indices, dev_bools, sizeInBytes, cudaMemcpyDeviceToDevice); + cudaMemcpy(dev_indices, dev_bools, paddedSizeInBytes, cudaMemcpyDeviceToDevice); checkCUDAError("cudaMemcopy from dev_bools to dev_indices failed!"); - scanHelper(n, size, dev_indices); + scanHelper(paddedSize, logn, fullBlocksPerGrid, dev_indices); // scatter - Common::kernScatter << > > (n, dev_output, dev_input, dev_bools, dev_indices); + Common::kernScatter << > > (paddedSize, dev_output, dev_input, dev_bools, dev_indices); checkCUDAError("kernScatter failed!"); timer().endGpuTimer(); - // ----------------------------------------- - // ------------- end algorithm ------------- - // ----------------------------------------- // ----------------------------------------------------------- - // ---------- read global memory into host memory ------------ + // ---------- read data from global memory ------------ // ----------------------------------------------------------- - // first, read dev_bool to get the count of non-zero elements - cudaMemcpy(odata, dev_bools, originalSizeInBytes, cudaMemcpyDeviceToHost); - checkCUDAError("cudaMemcopy from dev_output to odata failed!"); + // first, copy dev_bool into dev_original and read it to get the count of non-zero elements. + Common::kernCopyArray << > > (paddedSize, n, dev_bools, dev_original); + checkCUDAError("kernCopyArray from dev_bools to dev_original failed!"); + cudaMemcpy(odata, dev_original, originalSizeInBytes, cudaMemcpyDeviceToHost); + checkCUDAError("cudaMemcopy from dev_original to odata failed!"); for (int i = 0; i < n; i++) { if (odata[i] != 0) count++; } - // finally, get the values out of the original array - cudaMemcpy(odata, dev_output, originalSizeInBytes, cudaMemcpyDeviceToHost); - checkCUDAError("cudaMemcopy from dev_output to odata failed!"); + // finally, copy dev_output into dev_original and read it to get the output + Common::kernCopyArray << > > (paddedSize, n, dev_output, dev_original); + checkCUDAError("kernCopyArray from dev_output to dev_original failed!"); + cudaMemcpy(odata, dev_original, originalSizeInBytes, cudaMemcpyDeviceToHost); + checkCUDAError("cudaMemcopy from dev_original to odata failed!"); // ------------------------------------------ // ---------- free global memory ------------ // ------------------------------------------ + cudaFree(dev_original); + checkCUDAError("cudaFree on dev_original failed"); cudaFree(dev_input); checkCUDAError("cudaFree on dev_input failed"); cudaFree(dev_output); diff --git a/stream_compaction/efficient.h b/stream_compaction/efficient.h index 1709858..26a2107 100644 --- a/stream_compaction/efficient.h +++ b/stream_compaction/efficient.h @@ -8,7 +8,7 @@ namespace StreamCompaction { void scan(int n, int *odata, const int *idata); - void scanHelper(int n, int size, int* dev_buffer); + void scanHelper(int n, int logn, dim3 fullBlocksPerGrid, int* dev_buffer); int compact(int n, int *odata, const int *idata); } From 50fd2b706fe9bc2bbbe988ca6ce304be58894ac2 Mon Sep 17 00:00:00 2001 From: asacoolguy Date: Sat, 15 Sep 2018 13:26:06 -0400 Subject: [PATCH 06/10] fixed the wrong value error. program still crashes for n > 13 --- stream_compaction/common.h | 2 +- stream_compaction/efficient.cu | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/stream_compaction/common.h b/stream_compaction/common.h index df1677f..dcc8dd8 100644 --- a/stream_compaction/common.h +++ b/stream_compaction/common.h @@ -41,7 +41,7 @@ namespace StreamCompaction { __global__ void kernScatter(int n, int *odata, const int *idata, const int *bools, const int *indices); - static int blockSize = 512; + static int blockSize = 128; /** * This class is used for timing the performance diff --git a/stream_compaction/efficient.cu b/stream_compaction/efficient.cu index 5862a95..416ce3c 100644 --- a/stream_compaction/efficient.cu +++ b/stream_compaction/efficient.cu @@ -16,14 +16,14 @@ namespace StreamCompaction { int paddedData[1 << 16]; __global__ void kernEfficientUpSweep(int n, int* buffer, int interval) { - int index = (blockIdx.x * blockDim.x) + threadIdx.x * interval; + int index = (blockIdx.x * blockDim.x + threadIdx.x) * interval; if (index < n) { buffer[index + interval - 1] += buffer[index + (interval >> 1) - 1]; } } __global__ void kernEfficientDownSweep(int n, int* buffer, int interval, int smallInterval) { - int index = (blockIdx.x * blockDim.x) + threadIdx.x * interval; + int index = (blockIdx.x * blockDim.x + threadIdx.x) * interval; if (index < n) { int t = buffer[index + smallInterval - 1]; @@ -35,6 +35,7 @@ namespace StreamCompaction { /** * Performs prefix-sum (aka scan) on idata, storing the result into odata. */ + // TODO: still has that bug where logn > 13 will crash some programs. maybe something wrong with cudaMalloc and memCpy? void scan(int n, int *odata, const int *idata) { // allocate 2 arrays on global memory. one original. one resized. int* dev_padded; From 9ac9a5b791e0868cbe26fcdc44c8e97be5f55f2c Mon Sep 17 00:00:00 2001 From: asacoolguy Date: Sun, 16 Sep 2018 13:50:43 -0400 Subject: [PATCH 07/10] fixed bug --- src/main.cpp | 2 +- stream_compaction/efficient.cu | 28 ++++++++++++++-------------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index 435c584..b45cf81 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -13,7 +13,7 @@ #include #include "testing_helpers.hpp" -const int SIZE = 1 << 16; // 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 - 6; // Non-Power-Of-Two int *a = new int[SIZE]; int *b = new int[SIZE]; diff --git a/stream_compaction/efficient.cu b/stream_compaction/efficient.cu index 416ce3c..811e0d8 100644 --- a/stream_compaction/efficient.cu +++ b/stream_compaction/efficient.cu @@ -12,20 +12,20 @@ namespace StreamCompaction { return timer; } - bool debug = false; +// #define DEBUG int paddedData[1 << 16]; __global__ void kernEfficientUpSweep(int n, int* buffer, int interval) { - int index = (blockIdx.x * blockDim.x + threadIdx.x) * interval; - if (index < n) { + // TODO: this interval thing is overloading the limit of int and causing it to roll back + int index = blockIdx.x * blockDim.x + threadIdx.x; + if (index < n && index % interval == 0) { buffer[index + interval - 1] += buffer[index + (interval >> 1) - 1]; } } __global__ void kernEfficientDownSweep(int n, int* buffer, int interval, int smallInterval) { - int index = (blockIdx.x * blockDim.x + threadIdx.x) * interval; - - if (index < n) { + int index = blockIdx.x * blockDim.x + threadIdx.x; + if (index < n && index % interval == 0) { int t = buffer[index + smallInterval - 1]; buffer[index + smallInterval - 1] = buffer[index + interval - 1]; buffer[index + interval - 1] += t; @@ -61,14 +61,14 @@ namespace StreamCompaction { timer().startGpuTimer(); - if (debug) { +#ifdef DEBUG printf("before start: ["); cudaMemcpy(paddedData, dev_padded, paddedSizeInBytes, cudaMemcpyDeviceToHost); for (int i = 0; i < paddedSize; i++) { printf("%d, ", paddedData[i]); } printf("] \n"); - } +#endif scanHelper(paddedSize, logn, fullBlocksPerGrid, dev_padded); @@ -99,27 +99,27 @@ namespace StreamCompaction { checkCUDAError("kernEfficientUpSweep failed!"); } - if (debug) { +#ifdef DEBUG printf("after up sweep: ["); cudaMemcpy(paddedData, dev_buffer, n * sizeof(int), cudaMemcpyDeviceToHost); for (int i = 0; i < n; i++) { printf("%d, ", paddedData[i]); } printf("] \n"); - } +#endif // first set the last value to 0 Common::kernSetIndexInData << <1, 1 >> > (n, n - 1, 0, dev_buffer); checkCUDAError("kernSetIndexInData failed!"); - if (debug) { +#ifdef DEBUG printf("after setting last value: ["); cudaMemcpy(paddedData, dev_buffer, n * sizeof(int), cudaMemcpyDeviceToHost); for (int i = 0; i < n; i++) { printf("%d, ", paddedData[i]); } printf("] \n"); - } +#endif // down sweep for (int i = logn - 1; i >= 0; i--) { @@ -129,14 +129,14 @@ namespace StreamCompaction { checkCUDAError("kernEfficientDownSweep failed!"); } - if (debug) { +#ifdef DEBUG printf("after downsweep: ["); cudaMemcpy(paddedData, dev_buffer, n * sizeof(int), cudaMemcpyDeviceToHost); for (int i = 0; i < n; i++) { printf("%d, ", paddedData[i]); } printf("] \n"); - } +#endif } From 93ad3579144cb62884d6e919636f4aefe53348c1 Mon Sep 17 00:00:00 2001 From: asacoolguy Date: Mon, 17 Sep 2018 12:12:38 -0400 Subject: [PATCH 08/10] did some speed up for GPU --- src/main.cpp | 38 ++++++++++++++--- stream_compaction/efficient.cu | 77 +++++++++++++++++++++++++--------- stream_compaction/efficient.h | 6 +-- 3 files changed, 94 insertions(+), 27 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index b45cf81..912824d 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 << 16; // feel free to change the size of array const int NPOT = SIZE - 6; // Non-Power-Of-Two int *a = new int[SIZE]; int *b = new int[SIZE]; @@ -67,19 +67,33 @@ int main(int argc, char* argv[]) { printCmpResult(NPOT, b, c); zeroArray(SIZE, c); - printDesc("work-efficient scan, power-of-two"); + printDesc("work-efficient scan, power-of-two, optimized thread number"); StreamCompaction::Efficient::scan(SIZE, c, a); printElapsedTime(StreamCompaction::Efficient::timer().getGpuElapsedTimeForPreviousOperation(), "(CUDA Measured)"); printArray(SIZE, c, true); printCmpResult(SIZE, b, c); zeroArray(SIZE, c); - printDesc("work-efficient scan, non-power-of-two"); + printDesc("work-efficient scan, non-power-of-two, optimized thread number"); StreamCompaction::Efficient::scan(NPOT, c, a); printElapsedTime(StreamCompaction::Efficient::timer().getGpuElapsedTimeForPreviousOperation(), "(CUDA Measured)"); printArray(NPOT, c, true); printCmpResult(NPOT, b, c); + zeroArray(SIZE, c); + printDesc("work-efficient scan, power-of-two, unoptimized thread number"); + StreamCompaction::Efficient::scan(SIZE, c, a, false); + printElapsedTime(StreamCompaction::Efficient::timer().getGpuElapsedTimeForPreviousOperation(), "(CUDA Measured)"); + printArray(SIZE, c, true); + printCmpResult(SIZE, b, c); + + zeroArray(SIZE, c); + printDesc("work-efficient scan, non-power-of-two, unoptimized thread number"); + StreamCompaction::Efficient::scan(NPOT, c, a, false); + 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); @@ -140,19 +154,33 @@ int main(int argc, char* argv[]) { printCmpLenResult(count, expectedCount, b, c); zeroArray(SIZE, c); - printDesc("work-efficient compact, power-of-two"); + printDesc("work-efficient compact, power-of-two, optimized thread number"); count = StreamCompaction::Efficient::compact(SIZE, c, a); printElapsedTime(StreamCompaction::Efficient::timer().getGpuElapsedTimeForPreviousOperation(), "(CUDA Measured)"); printArray(count, c, true); printCmpLenResult(count, expectedCount, b, c); zeroArray(SIZE, c); - printDesc("work-efficient compact, non-power-of-two"); + printDesc("work-efficient compact, non-power-of-two, otimized thread number"); count = StreamCompaction::Efficient::compact(NPOT, c, a); printElapsedTime(StreamCompaction::Efficient::timer().getGpuElapsedTimeForPreviousOperation(), "(CUDA Measured)"); printArray(count, c, true); printCmpLenResult(count, expectedNPOT, b, c); + zeroArray(SIZE, c); + printDesc("work-efficient compact, power-of-two, , unoptimized thread number"); + count = StreamCompaction::Efficient::compact(SIZE, c, a, false); + printElapsedTime(StreamCompaction::Efficient::timer().getGpuElapsedTimeForPreviousOperation(), "(CUDA Measured)"); + printArray(count, c, true); + printCmpLenResult(count, expectedCount, b, c); + + zeroArray(SIZE, c); + printDesc("work-efficient compact, non-power-of-two, unoptimized thread number"); + count = StreamCompaction::Efficient::compact(NPOT, c, a, false); + 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 delete[] a; delete[] b; diff --git a/stream_compaction/efficient.cu b/stream_compaction/efficient.cu index 811e0d8..2772587 100644 --- a/stream_compaction/efficient.cu +++ b/stream_compaction/efficient.cu @@ -15,15 +15,14 @@ namespace StreamCompaction { // #define DEBUG int paddedData[1 << 16]; - __global__ void kernEfficientUpSweep(int n, int* buffer, int interval) { - // TODO: this interval thing is overloading the limit of int and causing it to roll back + __global__ void kernUpSweep(int n, int* buffer, int interval) { int index = blockIdx.x * blockDim.x + threadIdx.x; if (index < n && index % interval == 0) { buffer[index + interval - 1] += buffer[index + (interval >> 1) - 1]; } } - __global__ void kernEfficientDownSweep(int n, int* buffer, int interval, int smallInterval) { + __global__ void kernDownSweep(int n, int* buffer, int interval, int smallInterval) { int index = blockIdx.x * blockDim.x + threadIdx.x; if (index < n && index % interval == 0) { int t = buffer[index + smallInterval - 1]; @@ -32,11 +31,26 @@ namespace StreamCompaction { } } + __global__ void kernEfficientUpSweep(int n, int* buffer, int interval) { + int index = (blockIdx.x * blockDim.x + threadIdx.x) * interval; + if (index < n) { + buffer[index + interval - 1] += buffer[index + (interval >> 1) - 1]; + } + } + + __global__ void kernEfficientDownSweep(int n, int* buffer, int interval, int smallInterval) { + int index = (blockIdx.x * blockDim.x + threadIdx.x) * interval; + if (index < n) { + int t = buffer[index + smallInterval - 1]; + buffer[index + smallInterval - 1] = buffer[index + interval - 1]; + buffer[index + interval - 1] += t; + } + } + /** * Performs prefix-sum (aka scan) on idata, storing the result into odata. */ - // TODO: still has that bug where logn > 13 will crash some programs. maybe something wrong with cudaMalloc and memCpy? - void scan(int n, int *odata, const int *idata) { + void scan(int n, int *odata, const int *idata, bool efficient) { // allocate 2 arrays on global memory. one original. one resized. int* dev_padded; int* dev_original; @@ -70,7 +84,7 @@ namespace StreamCompaction { printf("] \n"); #endif - scanHelper(paddedSize, logn, fullBlocksPerGrid, dev_padded); + scanHelper(paddedSize, logn, dev_padded, efficient); timer().endGpuTimer(); @@ -91,12 +105,24 @@ namespace StreamCompaction { // helper function for scan - void scanHelper(int n, int logn, dim3 fullBlocksPerGrid, int* dev_buffer) { + void scanHelper(int n, int logn, int* dev_buffer, bool efficient) { + + if (efficient) { + for (int i = 0; i <= logn - 1; i++) { + int interval = 1 << (i + 1); + dim3 numBlocks(((n >> (i + 1)) + Common::blockSize + 1) / Common::blockSize); + kernEfficientUpSweep << < numBlocks, Common::blockSize >> > (n, dev_buffer, interval); + checkCUDAError("kernEfficientUpSweep failed!"); + } + } + else { + dim3 fullBlocksPerGrid((n + Common::blockSize - 1) / Common::blockSize); - for (int i = 0; i <= logn - 1; i++) { - int interval = 1 << (i + 1); - kernEfficientUpSweep << < fullBlocksPerGrid, Common::blockSize >> > (n, dev_buffer, interval); - checkCUDAError("kernEfficientUpSweep failed!"); + for (int i = 0; i <= logn - 1; i++) { + int interval = 1 << (i + 1); + kernUpSweep << < fullBlocksPerGrid, Common::blockSize >> > (n, dev_buffer, interval); + checkCUDAError("kernEfficientUpSweep failed!"); + } } #ifdef DEBUG @@ -122,12 +148,25 @@ namespace StreamCompaction { #endif // down sweep - for (int i = logn - 1; i >= 0; i--) { - int smallInterval = 1 << i; - int interval = 1 << (i + 1); - kernEfficientDownSweep << < fullBlocksPerGrid, Common::blockSize >> > (n, dev_buffer, interval, smallInterval); - checkCUDAError("kernEfficientDownSweep failed!"); - } + if (efficient) { + for (int i = logn - 1; i >= 0; i--) { + int smallInterval = 1 << i; + int interval = 1 << (i + 1); + dim3 numBlocks(((n >> (i + 1)) + Common::blockSize + 1) / Common::blockSize); + kernEfficientDownSweep << < numBlocks, Common::blockSize >> > (n, dev_buffer, interval, smallInterval); + checkCUDAError("kernEfficientDownSweep failed!"); + } + } + else { + dim3 fullBlocksPerGrid((n + Common::blockSize - 1) / Common::blockSize); + + for (int i = logn - 1; i >= 0; i--) { + int smallInterval = 1 << i; + int interval = 1 << (i + 1); + kernDownSweep << < fullBlocksPerGrid, Common::blockSize >> > (n, dev_buffer, interval, smallInterval); + checkCUDAError("kernEfficientDownSweep failed!"); + } + } #ifdef DEBUG printf("after downsweep: ["); @@ -149,7 +188,7 @@ namespace StreamCompaction { * @param idata The array of elements to compact. * @returns The number of elements remaining after compaction. */ - int compact(int n, int *odata, const int *idata) { + int compact(int n, int *odata, const int *idata, bool efficient) { if (n <= 0) return -1; int count = 0; @@ -202,7 +241,7 @@ namespace StreamCompaction { // exclusive scan the boolean array cudaMemcpy(dev_indices, dev_bools, paddedSizeInBytes, cudaMemcpyDeviceToDevice); checkCUDAError("cudaMemcopy from dev_bools to dev_indices failed!"); - scanHelper(paddedSize, logn, fullBlocksPerGrid, dev_indices); + scanHelper(paddedSize, logn, dev_indices, efficient); // scatter Common::kernScatter << > > (paddedSize, dev_output, dev_input, dev_bools, dev_indices); diff --git a/stream_compaction/efficient.h b/stream_compaction/efficient.h index 26a2107..419bf2c 100644 --- a/stream_compaction/efficient.h +++ b/stream_compaction/efficient.h @@ -6,10 +6,10 @@ namespace StreamCompaction { namespace Efficient { StreamCompaction::Common::PerformanceTimer& timer(); - void scan(int n, int *odata, const int *idata); + void scan(int n, int *odata, const int *idata, bool efficient = true); - void scanHelper(int n, int logn, dim3 fullBlocksPerGrid, int* dev_buffer); + void scanHelper(int n, int logn, int* dev_buffer, bool efficient); - int compact(int n, int *odata, const int *idata); + int compact(int n, int *odata, const int *idata, bool efficient = true); } } From 82502da3b0c503c0d7aea5b9cea84f218acb72de Mon Sep 17 00:00:00 2001 From: asacoolguy Date: Mon, 17 Sep 2018 16:24:20 -0400 Subject: [PATCH 09/10] replaced some extraneos global memory buffers with cudaMemset --- src/main.cpp | 2 +- stream_compaction/common.cu | 16 ---- stream_compaction/common.h | 2 - stream_compaction/efficient.cu | 129 ++++++++++++++------------------- 4 files changed, 56 insertions(+), 93 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index 912824d..ad7f5a3 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -13,7 +13,7 @@ #include #include "testing_helpers.hpp" -const int SIZE = 1 << 16; // feel free to change the size of array +const int SIZE = 1 << 22; // feel free to change the size of array const int NPOT = SIZE - 6; // 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 df13128..23eacfa 100644 --- a/stream_compaction/common.cu +++ b/stream_compaction/common.cu @@ -27,22 +27,6 @@ namespace StreamCompaction { } } - /** - * Copies elements from array1 into array2. - * If array 1 has less elements, the empty elements in array 2 will be 0. - * If array 1 has more elements, the extra elements will not be copied over. - */ - __global__ void kernCopyArray(int size1, int size2, int * array1, int * array2) { - int index = (blockIdx.x * blockDim.x) + threadIdx.x; - if (index < size2) { - if (index < size1) { - array2[index] = array1[index]; - } - else { - array2[index] = 0; - } - } - } /** * Maps an array to an array of 0s and 1s for stream compaction. Elements diff --git a/stream_compaction/common.h b/stream_compaction/common.h index dcc8dd8..121c925 100644 --- a/stream_compaction/common.h +++ b/stream_compaction/common.h @@ -34,8 +34,6 @@ namespace StreamCompaction { namespace Common { __global__ void kernSetIndexInData(int n, int index, int value, int *data); - __global__ void kernCopyArray(int size1, int size2, int* array1, int* array2); - __global__ void kernMapToBoolean(int n, int *bools, const int *idata); __global__ void kernScatter(int n, int *odata, diff --git a/stream_compaction/efficient.cu b/stream_compaction/efficient.cu index 2772587..e3e7266 100644 --- a/stream_compaction/efficient.cu +++ b/stream_compaction/efficient.cu @@ -53,25 +53,20 @@ namespace StreamCompaction { void scan(int n, int *odata, const int *idata, bool efficient) { // allocate 2 arrays on global memory. one original. one resized. int* dev_padded; - int* dev_original; int logn = ilog2ceil(n); int paddedSize = 1 << logn; size_t originalSizeInBytes = n * sizeof(int); size_t paddedSizeInBytes = paddedSize * sizeof(int); - dim3 fullBlocksPerGrid((paddedSize + Common::blockSize - 1) / Common::blockSize); - - cudaMalloc((void**)&dev_original, originalSizeInBytes); - checkCUDAError("cudaMalloc dev_original failed!"); cudaMalloc((void**)&dev_padded, paddedSizeInBytes); checkCUDAError("cudaMalloc dev_padded failed!"); - // copy input into dev_original, then copy dev_original into dev_padded - cudaMemcpy(dev_original, idata, originalSizeInBytes, cudaMemcpyHostToDevice); + // initialize dev_padded to 0 and copy idata into it + cudaMemset(dev_padded, 0, paddedSizeInBytes); + checkCUDAError("cudaMemset failed"); + cudaMemcpy(dev_padded, idata, originalSizeInBytes, cudaMemcpyHostToDevice); checkCUDAError("cudaMemcopy from idata to dev_original failed!"); - Common::kernCopyArray << > > (n, paddedSize, dev_original, dev_padded); - checkCUDAError("kernCopyArray from dev_original to dev_padded failed!"); timer().startGpuTimer(); @@ -89,22 +84,19 @@ namespace StreamCompaction { timer().endGpuTimer(); - // copy padded data back into original data - Common::kernCopyArray << > > (paddedSize, n, dev_padded, dev_original); - checkCUDAError("kernCopyArray from dev_padded to dev_original failed!"); - - cudaMemcpy(odata, dev_original, originalSizeInBytes, cudaMemcpyDeviceToHost); + // copy padded data back into odata + cudaMemcpy(odata, dev_padded, originalSizeInBytes, cudaMemcpyDeviceToHost); checkCUDAError("cudaMemcopy from dev_original to odata failed!"); // free the allocated arrays - cudaFree(dev_original); - checkCUDAError("cudaFree on dev_original failed"); cudaFree(dev_padded); checkCUDAError("cudaFree on dev_padded failed"); } - // helper function for scan + /** + * Helper function for scan that does the upsweeps and downsweeps + */ void scanHelper(int n, int logn, int* dev_buffer, bool efficient) { if (efficient) { @@ -126,55 +118,55 @@ namespace StreamCompaction { } #ifdef DEBUG - printf("after up sweep: ["); - cudaMemcpy(paddedData, dev_buffer, n * sizeof(int), cudaMemcpyDeviceToHost); - for (int i = 0; i < n; i++) { - printf("%d, ", paddedData[i]); - } - printf("] \n"); + printf("after up sweep: ["); + cudaMemcpy(paddedData, dev_buffer, n * sizeof(int), cudaMemcpyDeviceToHost); + for (int i = 0; i < n; i++) { + printf("%d, ", paddedData[i]); + } + printf("] \n"); #endif // first set the last value to 0 - Common::kernSetIndexInData << <1, 1 >> > (n, n - 1, 0, dev_buffer); + cudaMemset(dev_buffer + n - 1, 0, sizeof(int)); checkCUDAError("kernSetIndexInData failed!"); #ifdef DEBUG - printf("after setting last value: ["); - cudaMemcpy(paddedData, dev_buffer, n * sizeof(int), cudaMemcpyDeviceToHost); - for (int i = 0; i < n; i++) { - printf("%d, ", paddedData[i]); - } - printf("] \n"); + printf("after setting last value: ["); + cudaMemcpy(paddedData, dev_buffer, n * sizeof(int), cudaMemcpyDeviceToHost); + for (int i = 0; i < n; i++) { + printf("%d, ", paddedData[i]); + } + printf("] \n"); #endif // down sweep - if (efficient) { - for (int i = logn - 1; i >= 0; i--) { - int smallInterval = 1 << i; - int interval = 1 << (i + 1); - dim3 numBlocks(((n >> (i + 1)) + Common::blockSize + 1) / Common::blockSize); - kernEfficientDownSweep << < numBlocks, Common::blockSize >> > (n, dev_buffer, interval, smallInterval); - checkCUDAError("kernEfficientDownSweep failed!"); - } + if (efficient) { + for (int i = logn - 1; i >= 0; i--) { + int smallInterval = 1 << i; + int interval = 1 << (i + 1); + dim3 numBlocks(((n >> (i + 1)) + Common::blockSize + 1) / Common::blockSize); + kernEfficientDownSweep << < numBlocks, Common::blockSize >> > (n, dev_buffer, interval, smallInterval); + checkCUDAError("kernEfficientDownSweep failed!"); } - else { - dim3 fullBlocksPerGrid((n + Common::blockSize - 1) / Common::blockSize); - - for (int i = logn - 1; i >= 0; i--) { - int smallInterval = 1 << i; - int interval = 1 << (i + 1); - kernDownSweep << < fullBlocksPerGrid, Common::blockSize >> > (n, dev_buffer, interval, smallInterval); - checkCUDAError("kernEfficientDownSweep failed!"); - } + } + else { + dim3 fullBlocksPerGrid((n + Common::blockSize - 1) / Common::blockSize); + + for (int i = logn - 1; i >= 0; i--) { + int smallInterval = 1 << i; + int interval = 1 << (i + 1); + kernDownSweep << < fullBlocksPerGrid, Common::blockSize >> > (n, dev_buffer, interval, smallInterval); + checkCUDAError("kernEfficientDownSweep failed!"); } + } #ifdef DEBUG - printf("after downsweep: ["); - cudaMemcpy(paddedData, dev_buffer, n * sizeof(int), cudaMemcpyDeviceToHost); - for (int i = 0; i < n; i++) { - printf("%d, ", paddedData[i]); - } - printf("] \n"); + printf("after downsweep: ["); + cudaMemcpy(paddedData, dev_buffer, n * sizeof(int), cudaMemcpyDeviceToHost); + for (int i = 0; i < n; i++) { + printf("%d, ", paddedData[i]); + } + printf("] \n"); #endif } @@ -197,14 +189,13 @@ namespace StreamCompaction { // ---------- allocate global memory ------------ // ---------------------------------------------- - int *dev_original, *dev_input, *dev_output, *dev_bools, *dev_indices; + int *dev_input, *dev_output, *dev_bools, *dev_indices; int logn = ilog2ceil(n); int paddedSize = 1 << logn; size_t originalSizeInBytes = n * sizeof(int); size_t paddedSizeInBytes = paddedSize * sizeof(int); + dim3 fullBlocksPerGrid((paddedSize + Common::blockSize - 1) / Common::blockSize); - cudaMalloc((void**)&dev_original, originalSizeInBytes); - checkCUDAError("cudaMalloc dev_original failed!"); cudaMalloc((void**)&dev_input, paddedSizeInBytes); checkCUDAError("cudaMalloc dev_input failed!"); cudaMalloc((void**)&dev_output, paddedSizeInBytes); @@ -214,20 +205,16 @@ namespace StreamCompaction { cudaMalloc((void**)&dev_indices, paddedSizeInBytes); checkCUDAError("cudaMalloc dev_indices failed!"); - dim3 fullBlocksPerGrid((paddedSizeInBytes + Common::blockSize - 1) / Common::blockSize); - // ---------------------------------------------------- // ---------- copy data into global memory ------------ // ---------------------------------------------------- - // first copy the input into dev_original - cudaMemcpy(dev_original, idata, originalSizeInBytes, cudaMemcpyHostToDevice); + // set dev_input to 0 then copy idata into it + cudaMemset(dev_input, 0, paddedSizeInBytes); + checkCUDAError("cudaMemset failed"); + cudaMemcpy(dev_input, idata, originalSizeInBytes, cudaMemcpyHostToDevice); checkCUDAError("cudaMemcopy from idata to dev_original failed!"); - // then copy the non-padded dev_original data into the padded dev_input - Common::kernCopyArray << > > (n, paddedSize, dev_original, dev_input); - checkCUDAError("kernCopyArray from dev_original to dev_original failed!"); - // --------------------------------------- // ---------- start algorithm ------------ // --------------------------------------- @@ -254,27 +241,21 @@ namespace StreamCompaction { // ---------- read data from global memory ------------ // ----------------------------------------------------------- - // first, copy dev_bool into dev_original and read it to get the count of non-zero elements. - Common::kernCopyArray << > > (paddedSize, n, dev_bools, dev_original); - checkCUDAError("kernCopyArray from dev_bools to dev_original failed!"); - cudaMemcpy(odata, dev_original, originalSizeInBytes, cudaMemcpyDeviceToHost); + // first, copy dev_bool into odata to get the count of non-zero elements + cudaMemcpy(odata, dev_bools, originalSizeInBytes, cudaMemcpyDeviceToHost); checkCUDAError("cudaMemcopy from dev_original to odata failed!"); for (int i = 0; i < n; i++) { if (odata[i] != 0) count++; } - // finally, copy dev_output into dev_original and read it to get the output - Common::kernCopyArray << > > (paddedSize, n, dev_output, dev_original); - checkCUDAError("kernCopyArray from dev_output to dev_original failed!"); - cudaMemcpy(odata, dev_original, originalSizeInBytes, cudaMemcpyDeviceToHost); + // finally, copy dev_output into odata + cudaMemcpy(odata, dev_output, originalSizeInBytes, cudaMemcpyDeviceToHost); checkCUDAError("cudaMemcopy from dev_original to odata failed!"); // ------------------------------------------ // ---------- free global memory ------------ // ------------------------------------------ - cudaFree(dev_original); - checkCUDAError("cudaFree on dev_original failed"); cudaFree(dev_input); checkCUDAError("cudaFree on dev_input failed"); cudaFree(dev_output); From 6a9bdddd11cee53cc10a4b31338fbd9e45133b5b Mon Sep 17 00:00:00 2001 From: asacoolguy Date: Tue, 18 Sep 2018 21:17:42 -0400 Subject: [PATCH 10/10] did readme --- README.md | 137 ++++++++++- data.xlsx | Bin 0 -> 10012 bytes img/compactExplanation.PNG | Bin 0 -> 23883 bytes img/cpuCompact.PNG | Bin 0 -> 93528 bytes img/cpuScan.PNG | Bin 0 -> 51666 bytes img/downSweep.PNG | Bin 0 -> 61590 bytes img/everythingCompact.PNG | Bin 0 -> 83831 bytes img/everythingScan.PNG | Bin 0 -> 79478 bytes img/gpuCompact.PNG | Bin 0 -> 58328 bytes img/gpuScan.PNG | Bin 0 -> 71532 bytes img/naiveParallel.PNG | Bin 0 -> 50702 bytes img/upSweep.PNG | Bin 0 -> 36195 bytes src/main.cpp | 467 ++++++++++++++++++++++++------------- 13 files changed, 432 insertions(+), 172 deletions(-) create mode 100644 data.xlsx create mode 100644 img/compactExplanation.PNG create mode 100644 img/cpuCompact.PNG create mode 100644 img/cpuScan.PNG create mode 100644 img/downSweep.PNG create mode 100644 img/everythingCompact.PNG create mode 100644 img/everythingScan.PNG create mode 100644 img/gpuCompact.PNG create mode 100644 img/gpuScan.PNG create mode 100644 img/naiveParallel.PNG create mode 100644 img/upSweep.PNG diff --git a/README.md b/README.md index 0e38ddb..e00d51a 100644 --- a/README.md +++ b/README.md @@ -3,12 +3,137 @@ 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) +* Yichen Shou + * [LinkedIn](https://www.linkedin.com/in/yichen-shou-68023455/), [personal website](http://www.yichenshou.com/) +* Tested on: Windows 10, i7-6500U @ 2.50GHz 12GB RAM, GeForce 940M 8GB (Personal Laptop) -### (TODO: Your README) +## Project Overview -Include analysis, etc. (Remember, this is public, so don't put -anything here that you don't want to share with the world.) +This projects implements parallel reduction and stream compaction on the GPU using CUDA. Non-parallel reduction and compaction are first implemented on the CPU sequentially to form a ground truth to compare with. Both naive and efficient versions of the parallel algorithms are then implemented on the GPU to see the degree of speed up. +Before starting, I tested the speed of my GPU with different block sizes. Sizes of 128, 512 and 1024 performed relatively similar to each other, while 256 was a bit slower. In the end I chose the block size to be 128. Also note that the size of the arrays I tested with only go up to 2^24. After that I start to run out of memory/run into int overflow problems. + +### What is parallel reduction and stream compaction? + +Parallel reduction refers to any operations that take an array of values in and spits out a single value. In this case, I'm computing the sum given an array of ints. This issue is pretty trivial on the CPU: just do a for loop and add every element. If we store the sum of every value before index 0 to i at index i, then we get an _inclusive scan_. On the other hand, storing the sum of every value from index 0 to i - 1 at index i yields an _exclusive scan_. + +Stream compaction uses exclusive scans to remove unwanted values from an array. From an initial array A of size n, a boolean array, B, of the same size is produced. B[i] will contain a 1 if the A[i] contains a valid value, and a 0 if A[i] contains an invalid value. An exlcusive scan can then be run on the boolean array B to produce array C. Finally, you can iterate through B again. This time, if B[i] is a 1, you can look at C[i] for an index value, and put A[i] at that index value in the final output array. This final scan through B that determines the indices of valid values is called a _scatter_, and it will throw out any invalid values and pack only valid values into the final array. Stream compaction is very useful in programs like path tracers. + +![](img/compactExplanation.PNG) + +### How to implement this on the GPU? + +The process is a bit more complicated on the GPU. Naively, you can just iterate throgh the array a bunch of times and sum up neighbors using an offset. The offset is 2^(d-1) where d is the pass you're doing. So starting at pass 1, youw would add i and i+1 together to be stored at i+1. At pass 2, you would add i and i+2 to be stored at i+2. Pass 3 would dd i and i+4 to be stored at i+4...until everything's been added and stored at the last index. The complexity of this is O(nlogn), compared to the CPU implementation's O(n). + +![](img/naiveParallel.PNG) + +The efficient version of the implementation is more complicated and has two steps: up-sweep and down-sweep. During up-sweep, elements in the array are added up in a balanced binary tree-like fashion, similar to what we did in the naive version but with less operations. Because we're emulating a balanced binary tree, arrays with sizes not a power of 2 must be padded out to the next power of 2. + +![](img/upSweep.PNG) + +The down-sweep is a bit less straight forward. First, you have to set the last element to 0. Then, traversing down the binary tree, you store the node's value in its left child, and store the node's value + the original value of the left child in the right child. Rinse and repeat until every leaf's been visited. + +![](img/downSweep.PNG) + +Finally, compact can be done in the same fashion after using this parallel method to compute the exclusive scan. + +## Performance Analysis + +### CPU implementation + +![](img/cpuScan.PNG) + +First up is CPU scan by itself. The algorithm operating on a power-of-two array gets slightly out performed by one on a non-power-of-two array. This makes sense because the non-power-of-two array is slightly shorter. + +![](img/cpuCompact.PNG) + +I did a little experiment with the CPU compact implementation. Normally, the algorithm iterates through the entire array once for the exclusive scan, and then does another iteration for the scatter step, resulting in two full iterations of the array. I tried implementing an "optimized" version that does both scan and scatter in a single iteration. This version proved to be faster than the normal version, though still not as fast as compaction without scan, which probably has less computations to do as it doesn't concern itself with reduction at all. + +### GPU implementation + +![](img/gpuScan.PNG) + +The graph's a hard to read as each algorithm's power-of-two and non-power-of-two version kind of overlap, but it's clear that the optimized efficient scan algorithm runs the fastest. The non-optimized efficient scan is initially slow than the naive scan, but emerges victorious after 2^16. + +The optimization here simply involves doing some careful calcuations of indices and also tweaking the number of blocks launched to increase GPU throughput. Using the regular efficient implementation, if you launch as many threads as there are elements in the array every time, a lot of the threads will end up idle. This is because up-sweep and down-sweep are essentially binary trees, so with every level traversed, the number of threads needed will half/double. Once you take that into account and only launch threads as needed, the speed increases as every thread in every wrap is now doing meaningful computation instead of just sitting idle. + +![](img/gpuCompact.PNG) + +The same speed incrased due to the optimization can also be seen with stream compaction on the GPU. + +### CPU vs. GPU vs. Thrust + +![](img/everythingScan.PNG) + +Comparing everything together, it's easy to see that naive scan is the slowest, followed by CPU scan and GPU scan. GPU scan appears slower than CPU scan for smaller array sizes, but triumphs over CPU after 2^18. Fastest of all is Thrust scan, which just uses NVIDIA's own Thrust library, built to perform operations like scan in CUDA. + +![](img/everythingCompact.PNG) + +The compact graph shows the same idea with GPU compact underperforming for smaller arrays and slowly winning over CPU compact only as the array gets larger. Surprisingly, the GPU compact is still slower than the sequential CPU compact without scan. I think this is probably because I implemented the GPU algorithm entirely using global memory instead of shared memory. The act of reading/writing to global memory is kown to be a lot slower than just using shared memory in the individual sm. Using shared memory also forces you to divide the array into smaller chunks to be computed by each block, thus leveraging spatial locality of array accesses due to the decreased size. This reason is probably why the Thrust implementation is so fast. It might even do further optimizations based on your GPU itself based on what it detects your GPU is capable of. + +## test program output for 2^20 + +``` +**************** +** SCAN TESTS ** +**************** + [ 24 6 1 13 17 31 49 31 38 39 27 43 2 ... 44 0 ] +==== cpu scan, power-of-two ==== + elapsed time: 2.12622ms (std::chrono Measured) +==== cpu scan, non-power-of-two ==== + elapsed time: 2.88553ms (std::chrono Measured) + passed +==== naive scan, power-of-two ==== + elapsed time: 14.2575ms (CUDA Measured) + passed +==== naive scan, non-power-of-two ==== + elapsed time: 14.2746ms (CUDA Measured) + passed +==== work-efficient scan, power-of-two, optimized thread number ==== + elapsed time: 6.312ms (CUDA Measured) + passed +==== work-efficient scan, non-power-of-two, optimized thread number ==== + elapsed time: 6.292ms (CUDA Measured) + passed +==== work-efficient scan, power-of-two, unoptimized thread number ==== + elapsed time: 11.4663ms (CUDA Measured) + passed +==== work-efficient scan, non-power-of-two, unoptimized thread number ==== + elapsed time: 11.4702ms (CUDA Measured) + passed +==== thrust scan, power-of-two ==== + elapsed time: 1.33098ms (CUDA Measured) + passed +==== thrust scan, non-power-of-two ==== + elapsed time: 1.9503ms (CUDA Measured) + passed + +***************************** +** STREAM COMPACTION TESTS ** +***************************** + [ 1 3 1 2 2 2 0 0 1 1 3 1 3 ... 1 0 ] +==== cpu compact without scan, power-of-two ==== + elapsed time: 4.2319ms (std::chrono Measured) + passed +==== cpu compact without scan, non-power-of-two ==== + elapsed time: 5.80108ms (std::chrono Measured) + passed +==== cpu compact with scan ==== + elapsed time: 5.31476ms (std::chrono Measured) + passed +==== cpu compact with scan and scatter in single loop ==== + elapsed time: 8.32711ms (std::chrono Measured) + passed +==== work-efficient compact, power-of-two, optimized thread number ==== + elapsed time: 8.73712ms (CUDA Measured) + passed +==== work-efficient compact, non-power-of-two, otimized thread number ==== + elapsed time: 8.72816ms (CUDA Measured) + passed +==== work-efficient compact, power-of-two, , unoptimized thread number ==== + elapsed time: 13.9075ms (CUDA Measured) + passed +==== work-efficient compact, non-power-of-two, unoptimized thread number ==== + elapsed time: 13.9254ms (CUDA Measured) + passed +``` \ No newline at end of file diff --git a/data.xlsx b/data.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..defebd1764a524d09aada766354e67b389e69375 GIT binary patch literal 10012 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 TvkL$qK|b#x5j%|P=db?*kM6dj literal 0 HcmV?d00001 diff --git a/img/compactExplanation.PNG b/img/compactExplanation.PNG new file mode 100644 index 0000000000000000000000000000000000000000..8f74795862d9cb79e09f175be6f2645021293961 GIT binary patch literal 23883 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

abylh@r@Oj39g)Bg0wDCd_N@Rf_{|6+dC^?fJx4 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 literal 0 HcmV?d00001 diff --git a/img/cpuScan.PNG b/img/cpuScan.PNG new file mode 100644 index 0000000000000000000000000000000000000000..f6288a2caca412d6358628d2150665035b7704af GIT binary patch literal 51666 zcmeFai9eOw`!~L;Qz;FUwo(zDMpH61m?Cu2K#|y{B=#|;GGso5$|lXq5Go~OW|AR= zQrOB^8wZulWFGf(t^3~l-a6m!^9MYy-*3NOpU>%ZPitN48sFD@t#eKLi00D80*gr` z($c>U>_0{#aT$_Ge_Y{O0Dn{OON)Vj%sGEdQ=6{tEivoZ#;RXGo;?R)6i^r|W9cJ&W9@%A<&v+6Mw)FGr zxsBgkebz1hx~SysqQAm-IfvI@k4RO1lk3W_8=m#yOm5k5&%h0n#dl2goR<{T98aE5 zhGF18-Tl-#tUqcCN24L5pNgL^8UGWBv}y%R8UN`X_g@v!(k; z_xRs0b92+0nwo4aEdI1tvZqpi-fT~Z>;g{Js+xoSarY ztgEWh8EJ2f>zBR~sW`R1$cEoLzrV7$pl)o;m4S4CDz3^6|Jceaa&6eLSYzd*OS*+T zf=7FvZGO9`#ohi%K>_nwWB*Hv&V;A`l`CzJ_pbDM_$m7lW8Iz$)Xz8mfJdVmxWwTf z8y53#JoZ|JYhA$Yi7#$3?k$mO;o5ti*DVSWJyzu9xMeu6Y@6qFgg;sM{()&mu_*ae z0Kd$^EmKo6!DowO#+oxi^|jI4?qYBIcVSDL#KC$0oUJi`thG`&V5`Q$=VQ?_2kN)V za0w;q2yFJ1&pciyB(N!cYyKS5@cy(XO;;to5)KS(ze<0Ub7!W2k|??rUPrga^dLQt zX9-`k(Xy3uuO3wTCGrRV^BYmO=ptMx>K&s?|0!|{;xSAJ)-KY#WV?B4rl``S_p}aG z0TWDpIDIaO6LG7-O`^U1BqoYir@ ztDkIDNR}~MWXheKHS_pLfWG`e<)Tef=QlBz^R?aXALRGzTHjURFgAM7d$eWJKQe8o zeNo!oW=)*|7wsvokWY06Om{BtE1&wZs(jn$!8q_y7tVez5tQ{agAY znRQ%DBk>sT7HYm9hFE-3L^fx?N7}flv5gl9AJ=-G~|r>Md8Led?P3ywU9nIYvtL>ajTC z{R?B1DOZ;it!1|K30O|6U+M2#TTG5A==#*|SNg`ruTO8ng^T%0DQTNm-|#=GuC^PC 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

u11x0Uc5ptU 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 literal 0 HcmV?d00001 diff --git a/img/everythingScan.PNG b/img/everythingScan.PNG new file mode 100644 index 0000000000000000000000000000000000000000..0b7feeb8b53c7f6f4c2f4cec6764b098843a1b94 GIT binary patch literal 79478 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 CCo`S^ literal 0 HcmV?d00001 diff --git a/img/gpuCompact.PNG b/img/gpuCompact.PNG new file mode 100644 index 0000000000000000000000000000000000000000..f84769c809755af117ccb1e58ec8e18ecc25b588 GIT binary patch literal 58328 zcmeEuc{r8p`mpA`Q@gDUMc64(NFrozM=Dbygb-!OLZQq|*?^%PVsbLBu&_`v| zKA`?&Qf-cLD+;cW)OK&=$5n`C3pW;Z!WHs^4&S;~`eLP+LdGvHe6V zd1V_u(;4dru8R6&o(RV;4pZ^FPkXaL&a2p9K}m^?5nDnPcvfAtG~yg{(mrxK_Tcu^ z*(cVA4yWH!Ik}d7l#Fk^C0*C=h3`4o)A0P204!4JN2TaDHkB^C;GYt?>s7y$yb>L| zam%vn3VDA-S(gVDgBqej%U9eD#xZ8!Vep^|2e5z)ki_rYS?C%=^WLy=y|87>{_Ka=DXVU^KZbXX6g@-@-X zeWM-{Nh(PitVs_jcXM8vY3s#UyA<+e9+yaF8EJMu-=cZ8PcnE$e$=D1HMdgmc_$@M zTlZ7jB7ZUmQNaGvz50f<)QPtD$Gjbkv$olb-fx>?5iiX*k;@V!6nQSrDz|4yw*Y+YM&}HU_&YjuREjZON_V%v(p2 zh^H-fMj0*6ei-q$Egm@Ko-b{(gCZ5^#91M~v8~5c-?Q!f{o?BBoTuE&1TPAUs7c%>YVN?ZsQ3)Tox2wsdxRV{ zBP%tZl{VqF-=iXQ(PQ`SqRuQ&R-4CdgBM}zUVf_5n0VdA&OXLF%)zhl%zme0{otYT zxUA>aQ^rlFQa<{a5u0p1?(I(5|KmQp}vVBy_CbN&v^!ROw+}aP0ZCPaX zq&BXSaY|_TgYBO?)%eQryt8dJ{d#<(kHh6#r4^C(VsKh!%e#LUuXS76>{Pr@Bpuq} zZQ?#~Te?miiIrU4ZlBU%%Nu@iV{um+&Zp{jq#j8c=rUDHDr4Q|Q)W3PevYtR@|=Wa zske*xEYYf}jgR6=o;Q5;VLu;iQ8_>r!CsqE5#gfvE3Te4q2tS(z2k+?W$j8lR%kB5 z+a%Q~bwW7H`fsNIC%lOdEH5-$e_~3Zn|bf30=tbI&#wDKkEV&Xq%~J3yvA-W~mdLrMs@bP7B|twD>sI{2&5dXqFUlI_0(<+o*$> zV$E(UIa3bMagfUY4`tifF|`%5P7$9fUS^nSU-rLaImX*hn401lZ3W5po31{*o+ zZ~uhg9ubl`%PIR$d_J1uvtb$R!v8L2e;C^FS)tO@5O2_DcYG|gK!4OryXs7$v?yM9 z_TLZHwh!18$GWar#$EZ)5v(VfW>(ejuyMp|alfd@bKz;X2X;IB+S**@PUu~?nQHAJ zR1NM&N`^qS<-YpLNB^M|y6jMRV?R~s?0LMvd0YiHo)k0?7Ev!+GpAA?(DSG*^l!hO zJiXbWKZ0G`V%HtlZMkhRYS58?+K}@j@s?Q4;DX6qctly3mEkG-;B7Boo3Z#2KUKFM zWo2!5wTOSdEA~4gNBH3M#b+rgs^IXb#1T}vawM`Y-qj}+M!vD%W>>>w*FU;Rw&rueomeht^Cejh=wrh*llwQoe zIYXFu=&i)9SaPd$bel_+&m>W|m}0{g?aqL0$9&o5sVY| zif+GDGU_UKjP+b>-f`zhS8i=4gYp6E$6N&B16R#}ffA3e$1G|N8K*ZoSsM#&Y@hr< z4Dzhvi)wZ>RsACDCE7kOT_;T(&HF5Qw8+VZ%w+?ED(ntaB#au5Q3~1(2TrjgtE?GA z^#oE5&$c5CS{X^D9#b6+{G4d2DtgOFHTO!>RQ2%y z?j?Fis)g-rPoF+bz;6r|G?LiVhq ze8A7yCM9H0)Q$g8haVjs9Ta4Y8iG+Q5d!91#SIMx3q69TUhg)LkUYI^!v-r=`WRo6 z%9>UFZ%C@RRBJ&Y_-fo)!2l=6R0}-8-LSMp>L}tZ^z@3XWj_G!5S7(oHwg&|T}rlg z&h6%#4LHV3($PXbs{^b2567B`$;cRLb<}Ose*L`meB%}_i;5_DzF(iTn=fx(RVjB| z%dQta^ySz}Uk`5JBS5Ax-+hp1?`p7Os=);E(X-Dah z#6(Ou7n*x|l64Qno(i>3e-ss^`TqU;1U!52lP6E&jYR3=e9L>-x6%Lpe=f{J=l^Pby^`{$Q$YPFoV<7Ys&dDC7ppKRs{ZuU?4?9ejuB{h zb0?LS_U)fHZacQIbeF-`^BHq)7uA9von$1Le2446L;xgn?EW{q*o7elqgh6EC(t%Z z(*u21i%-Bz z21&X4%D+B!cWaNQe6%^40(K*jNF+wh6r4$CX7`vHWcl?8-hUQ?5Jy8cVRKs*IZ4PM zal6%8atL>KcmKMg^4ayL)`PCsTZQbZjtbrr%x8Z|$LNfkwY8uuinP(w%MJi)-vw(J z!rx8%Cnn$FSgIMR`eNC}N6*y7a16EP%aSfP+u69fO6OA+MhHInlXXTl7D4i%8gD=J z_gz&9*&e&O>WGD!O3T#Ki#V|S5qsjP?i#F{a?!+lw#)hbdZ}mWl)Uaev- zx>~hu-hYxHOR1qmtzI0=suob3{p3uZ868~Luo;NDnU|OFaJyj~E<%NMuQ@e0gTOTN zQps*V1C4=t_U&Cwi17#rj0{o@*Mh<&m_xPQf*>SXTUZx3VUHOA4t zp!?8dwQ^%OUT2HzY-;x@nQ1_c!63e$v&s3C zLuanU3hS>UPdBoed0}jI{D6M+`1p-g__QLo6c(CG3&1>oOl(~YVrFJNm)(7cqIP+e zfhm^M)GhBJkPHoC1WS98=dylVZQk421#P6|*;DiDr=y#s$hY2YR7v;z-rx4Q{Q4v< zvj&?f@t19Nl?hl!Zb@2&zf#Y!du;aW6h&cS;-h$DSjyrOP|s2$k~O0@&osXKS4F|a zbUODl8&3Ks415gUZqxhHR76-;S;6TOC6p&;h@wV?WJ^lw(lU?rnuUf7zMpPn#qli7 zj+>mqM;}$S;;GnqW*kcbAK#U!e_Unh>^FzlbRS?@-v?FaJ&KD0h|wB_-AjbrXlPH6 z?&+!43X;38@$Q!ob_CaN;yzIt2R*PIDleaF77FC`P>8rbwM6eB93iG31KC=rS*Uj< z2F2?KLu}5=G0>YVEiFGxt(Cco!DZ(}s(sjGa!_??L6N_B+4OlFUBBme}9FI>}lZ`+V|%9jQsW_%A|ZFt8N5_1FrbmDZFhfh1q5*?tSBq z-@mAikj*4l)&8^xKwwYJNWz-1=&!Fi0FeC>B68-79?0GYDr~~2P*+>vHD6t9wea+v z;|=(-`=>7_ANs_k7_9>t2n!uky+2L&+hF(bii)(M7DFgp#eQcGWddo2S} zHeG6pad3+Ht4w{*fz~IuwK=!21%;|XHZJj!=WP}{{csz9|Kh^)MmXXs zsC#-W^ER!~Nk>{?f^Wb6rL<^RGrN@l)Em4GX8vWb*;Tk}%!udm=TzJ#CtN z;!O5CINlWunm7b8wp``CAvTPEl>TfMqNP6IXuj+?g74D4l_5iHKb9!Dw$Wsn&yrsK zH&g#@8wT>XOE9(mzrOBAUok>{`|XvrSt#Za25mxv$+BXMj?dHcmxp6BW0HZdNj^?q zlB@EMVk$ngS?F-ZLf7k*3;QCjw_-BsJH)nBuZk%F@WDMnB!tJkD)vD!-Yi@L{Z5I0GfFW%n#eYrPNrU9u0NfH1VpL(#QcR30pTaS_FkpKR0*XFk zoHFrGvyj<2R^fg3@81VsL(z_ulhOM1yrrk7-1@)%s_WsqSPn7c3kYE8wqGd&Ru@Vz z8^u>uRq5RDI}##-U$=gJE$_&{K+;2D6qZMBY7;s|I}ual+o`n%*-?88)U~vtcOUI! z-UJb}g@pxS*9pj7KHhz*$bvrdB(VESO`2DRduq+Poil6ES}(;q{$lHo9~Uk&T#s-# zO>G}I7!v8`{wnVcnc25*-`>bVTg10NHGjDtA%U4)?Nz2()tijlM%RB{J__8j^K03~ zxO$Ywn)lMbyeI+?xxhQBWfkTGqN%E;Z|AZdY0dvNRu?L-T+^xz$d>c0kGs)x+u2s{ z5XAa%tNg!z|32p#A}m=NCGYX8-=!BKJCc{)2U<^YLNT6{>to;=btKCYIc<6;kT;`v zG8rWYssf~>qy&E1FD=%1;)x4;s1To`YiH9tC*_<2v&8{}^;wBsC`$#8?}PC0 z@bfwO?eXK3dMdlEG}KP{cuKR7&oucqWg9(z@jQ*rEaaI~*|c3Tcdn{vo+|t|oBp|X zhe($Gx`ktstAtg72(d?4;_!!KrCGrKU%8@F!l{CX?ERcY@Z#cP{o{v0?erwU@m0*s z%)n7H$mg@zu975?d8(6{{Z)1U6dw&drigQnW7~ksxU*IMp#785Lr{Dic_S`sOW9c9 z%aR1-sN)E4#`1j#DaL1j9ReBhr^Eq-mAv`iULU5w*QLR~y>g(hp-XdreZ2*;EE$D; z{q1!P`iiMgrQcp}rNP&rrMbVpu0gL4v9G_q-a;p$#j<+18Drc9M?J&K4>>sja`?iSWp1_=qk3}fZCox|DU zUgUhAEGkZM!VD|u``6#iLgkcFDK=m-AmIm0QT8%r>MMC*YDV|*5L+cZVG5wKp{79~@gznlKmQ%h@uTJ06a zR*d)puX6wO^&@;$U;6snE2uw|MMS&66Y<+C+6cGw_19M}w67=j_4ik_(O*knpM#mK z@M#xmWIcXq>0h5wz5H7n76l_#zQEiDvumD~xYwXLa~)juC08x^*1qd6bbbtWZaqcO z2UjCge`}e5S2Or3wY1c)ulqqE(9044&s$Dle|qHsfwvyy zwiOekl-0lv4j4Na@B=%zV8Zbd+@(rcj2-j}0n?D4hGo!`1lvxqV^FZcw(gkdyj`2o zWFmI4W5h~FNs8KBfTkE+xwd9Q{P^NH1x(yb=K;ls)BtE@jvqsRyxCgIvfXO%JpE zoJR^?|2d1eFa-Xp_v-m0DpF?nguSfu zQ$uPT(UTjPOWEr4C>+&;YPZslqF@Cb;ySo2a~)8MXbjfhpQ&HeLEA~GC%b=a1H|5Z zL9MfexV63KAi;E-PbFkGr{55(cF1iz)&Pst?AUGH9ixZC_;?&b_O!Q<>8^U^7DSP! zz!V)F9SLhUm8CgHsDudKym?boo~Ib!V2w&t8jK@>N;Nys!pNTWo&ts~#oYS|VW3?X zW_#U1vfnPXyvc+7nDH~j$u|nDV9E)GSSVG14`Hy2Ar~3uQ8r3 zBt~~@MSa}4?5FREU{prrE}W8Fm4X>SrFw)Hhb4G_ebtB8hCi^czrEIjPHGUuzW(;A zkG>wkzW(-F0*Gm_#=idcs*1j@!@mCZS^`?S0W;}JzrCuWub2&2`t7yEZ7{V2s4a;l z!YVKB;Ur&s=cs~sZ#za;?sJfd_39k-Ic|`=nY5?|EWs7KeJwjgf0LA8dW`kP^~Y(T z-^XEMwnD^m1JehBC^wEe5kHiaq;DtSPpJ6#_&}GUt^8|bO}2hUAP`JG(j~$@XoyWI_jNw1)YL@ zw)!_;5ysd(zhr7{45`T^mODai#L+Gkl<)50G z>VAPcOwQSphpgkIm!|ZfE~TJN&i?dnrr$wQJWJwP>@Iq#$8s={?h;Rnt(v;hBHI zgs#kdUEf@N1do@3*GL#g`kxI34|W+)Yx3c?xLk&><2#(5l5)4)htdq{9Ku8Q8o%rt z&O`ds2~LVr+0M$cl2`fU2phD!q`6 z;1HnlYjNy#7N?(*1TjYHnhGJwo+E8S$OW&8h&3K9G~!irG1+(5q+yC8QI^j!nLu$I zcd1U@bc`MM_!#t(PW_|(*cz9xnTspQA@eq(JTn`#H6&QZCnThcGspu0)gITj5oA;{ z^(W%1)v3`sdcNZ`?fz0-*BGA zNEnw)o9;WTlbPRM5=08ts8$*Rp~VkpG}~TlP0aR(8S9WBJUjQLs4{&sIu8YV*q#CoNH!%wK*j;CR^8 z;?B;qoSdA;=nWqto1pz1J&0GX>P?wUd7!$6oLl00cHA8}`Ocj?*ZQ-T?UR;<3JqvL_ddN^RywCN9asAd692&6n*UPyyqX3}O^wHsQV8^dT5lmsC6yw9n|G>K#9 zUn0AXOO!sbqr6YhGLML8- zNm%5Q<*G9U#G<+!J)0C00SVBs*&D?Z-;H>WRya^NidFE&oDo7MZ)Qy6ZaiI+CiHgB z)}t_1FR7N99XS}kOf)LU6!jX(%gRqyuM#e?S5V8oy1pKu0Z|G;E??Sq`T?ZS0ovUA z4d%%FJ*@1z_->WUi!7Y&QPfgRcGsWln{l&2hp~G1;RR@&Oal<_X9Wcc{PgzrUUMMC zv7rXzxtS7zsIZ>$UqjL&Wr{@Eh?`|_`r?TRXU?r#UqZRlzu0k~ghWUr>THI`8M2Ai z=e*B|dCkH-@lacAq{D-!F<&&K|hk?ic&GNJ}oojUiKG#zY z^tShq{BuYjxOHa6wSQnh%_z&>E*x5taGbPhy(^uZochQ_PaSG9TV=$()9-1Y8V3;_ zBrLm~+vehwtK|A2eZQ;4MMXu48-bqY*Hmz?ZYw8(NGg4zTMC)VB6*kiAma20Bo1(d z-qULW%j2~?2m9fqXDxfS*erhQXq3=B#J`pu1ZHxq2=bf@lG{{v3J7S~y?GQK{yC7o z(#ew`(|x?2ViC_Cekl`;FD>CYQemf<52<1|xBhWhL>06&x(86L93uR=$WD1F$f$(m zht(cgk%-v(mYK@?HuY`}A{ZKKtAQbL@wcm$TmCwG!2I%s3w!73g7`c(ZHR3?+VvmU zQ*NxNY9h|RO$TWH#dtLEwX}y^#Le@J7=x(}1WNeQw_e;_QAzS1Sl#k+RB-nOh@lQm z>UOhlE8V4`uAxzD1y>g^uCHw{DLmmc?%y|-x&~vus5wu`^|fD-0v{P6&=oi}kb`>> zUiQdT(ao4{0NS$SkXHQZp8O2NVRP9-P*lrx{Q2|e=@flYc-GoXQ7h>^y#}L>ywL)Bcl+a@vjxbC^FSSs%4DF zt=&3jI(88l=-K72k+|af>5UT3H))!*8g z2j2&5kPn+0^i(^O%ID~uM|L{%`~`Rr!0`k8H^3bkJYriaVu8E<=El*dx?*y2#y;hv z8QPhfAwb+oQ{FLBXqoL=TQ#OlzM29Zz9y6NU%NU=M%*l~fqq-KGc%Y_#ul-=eY(V{ z-2WB(MLD_<<%28y?#k2jK7!(0Dkg$Aya0po00Z=I=Rc~11Om6s9{cw!>8bl;xeXr( za(4L(8qp}JBnlPCy;8(S$#1#}oG;9y%-+Yr>5)(IPn?i*YQ9}1WK(+`FEUP5^>{~> z4!y0TUa}J2l-s9J|_ z{h4hNBd0}c$jtL;HoczUwn->g@ky#E2R{jJSXVVzw{2*zoE$m4U6u7vyPLz!e2;1T z&l!N%`xVLGH`KU|%=&;+7wn)B$QC6)y5A=-6<>OI{*cK>eu zl;>%J+7k9_Ha1JN_jop%i`%oL{g#Ia&g`DERcv+kDAwRuY`f8O#HH(nsHd#Ph;%xf zztLrU4Rgh&#AA9-??IpE`j6n7OzG?|a>5&3Q4TimbMlXlkk4%Wy;r6wbh~Qcv+)Xr zSD;)QDMe?$yH(4FwT$1N_@?4>0`Z$d=KivL&sYHT1pum(a(nq9+%;=fHa_I3KPBKx zI;OS_{Y{jL(viExms%BDOHVjdt_S4W=H#1uc4npR%Be-HcvDD`x@I}$q0RRni#X04 zHPBzPLx0ag@MO7(fPbg5H99J)JP;QJ(lIv@NKgS+babZr1YNqF{X0s6vRX_oT2oxo zj^J^}?x4dl3lVjusl zaw9MHs*3exPjThK?UK3@c=mvz@l<+6%Gch~LuEwfg0m#)LYL}Vf41PJS;{_|fd zJJhmH(+%&xMjZcMDU@WWA0AjB2@MB(HUXvZ@ z)*U@WGTYv0Qk9F;vU~5l0;*E!+;D<=%z1EHgGIF_rl;$rbR`OcjBZJw27eCPrf)x_ z<;P0NkKcb-Q>Jf>cwp;RcO64%_kSX8wjKv9aQmJL>u#vJ#VTime|gS|0qZA#)!E#B zo7bR@OMFwN2+~0<6ZIgK+(;_#1O*{80P&oU00dJguOI|kc z)dBa42aP)>l0kz*C^k^+N6numnMbH>4Z5fDveQ=CM_4Ux@Hzz4>;~vA32!>6oYyYsjH~v-?@f_VRgFl%kCqb zt5E_j-G*lkZqQ@7;SYsZcTiM%{+3yr=#fjE{a}1jjlgQ}OjN{BnV$Xn(B)T5{0-Pg zQ7VVPnBO}UkWA6F9HRz{ncL{cZvuujD#)2X?%sJ7T3x_ZOJ1l6Ved}2`A0X_j0GaH z{;b8@<|?@7aB<2FoGfrn2|^6N-nIt3Nsi>j`bJjLx3K8E$My>!k0WOKakWjIS(N8< z{FR%ZS%pKl+w;a6(_tP+qE>jQeO!Ic0^RJ@AA5Z?Xr~r$ZoAtZHRCS1zVnhUBU5SM z1KlevUhi{3OBN;+y8_NDeA(NY9UT@w_zsWa8s09|Po*8P6x| z68U0P^Y%o9Ny=t!ZVmA5U-_&Di)?e@!UYwZ$Ml%#B^)gO`+q(FA54Y5Q3(2NAv^mBM z9)2aBk=I2n8#!&_if#u;bHPtQ=X8EsMGRv%kqgmS0i7H)I>(eiW@AC~i^#Ji0>zl7 z3LiBt-jtXws!z8uJ0O`syG5~PP5oo!cj4*maSYgF!9H)=qp#1Y%>dNr*7?u-q55o0 zOFF3oK2JNvo~4uaB~*qs_fAl~x$D-RmJG7ea&kg4ySwaJOOuYW*MACVR3b4X_Pt4o@V z875CLs&GKk&yeQLyuAc_b7DEM6=*kvOfQSxNUD_QC|2yeQrk3v;x=Uz6#J~tFcb+0 z3``abaH5^bw`FRxw67bMp& zrS5xAfZ!QBl~**GR6RkwW4q{1ix?JfIy<&a1LNfDzAzIL6AOkenHp#e0vzJPLAwsp zldv&i(8*cgInH}d$2q)8)Js<0W0>lkDtgUy<2D*-K`t30!8m%*agP5OBO-Hxtv$yc zN2`?t$wzBcA1xTW7B)e8;)7iLtvREEFxdenL+&FlUJmkIhUcI~NtW)n3Zl-o716Wf zIK1ZA*C(6$0yj`jBDM4lZvL@rZ7q$zGFgWrT>@w}=qL|IE)^Z&N#{V19uUjAn_Msz zO10qgT-BefeC}$j;CeE&${)&#?uF)O&+d?=Pk0Hvge0p8wKmO)sCiqYm$Y~b4n(Y! zJO;`e?%}NcITd7<0Zgc1I$NkdH(W`iW@kvQmnHwiJp+UFZ-`LrS(Yqjx-=o}GW=h_ z56}gl;FX>lXyZfzL5q=M&;xg1*bx-cX|Ev>VDXP%rlg+TuUPyiVzneBZrIP@a4!pr z%@1th*f{g3i%2G6WRQ52<4W3qpM4Nn)0 zH56h=A1XB(gn=4GuMR?s5Zp=CKotZLafl%qdAyaNq)K#dX+9G*ao41hqPk7PUm);Y z&09+wu(4}5X(vND^&_M1CxpzIG$KQ8_f15G?iP9~$V~iXJi1I3&Pd%dh_O+(T< z-70gZhMK{F;`oneh&c_rfdl!1Lr8BU!NcrB4yId#C}TF<)cEF zXC19Owd%mn1o_f3R)E`Ro%I7ZKT6~_mc<+sfePKV>{=P4J zD1jqXh_8gWAL{rgu|^^8w}9=-6mUrCS);JoFPXTF&#{J5)cWL{obXrVk!fSc%fKyT zEkBxT+6PB*oJ)hAOE(M2)T64z``UVBrPsJTrlq@90ISla8QP>&dUE>wHzf3AMw=i@ zN~v=Ne9&&lgKX(O0+bFcj*MvKmV4MD#vBi`Yur)!CuYOn0b$g&xMhNe^E(weV4sTh zM0skK>I(htD=Y&&RVr38AUO83MMsdJT_~Yv7AtpQE5)LfvOK>(VWcfa9RjTGD+yo- zTnpidxQ1s><7=xPBjnGARSbXJc|{ZJBV&Wms;5zQ{KVW?@dDB`i=~u9hH?iYG*(1n zZ6LcLJ5lcBd0BxZ;fVC_iRO#+RFg9w!^e64=sR=89%`G~^LVad*S*{=-iF}*JGOhc z07waplCdSI8DtB^&s#WU9G-rxA4rRQ>&f${-1$# z;+>@>hgQpkG5Amyy2B#7W(GZTY&u_nrg@gxaYuskt^mi`>&%de<1D}iq5l&)DMmid zcP)UF?&;RwCz0Rrg{rTn#-ZoH2$P3Zpf?XpmFI=<&T8=T|aZ zw)2WTMk%|mAPZQV_r1&WV_$1*+)Kg`(VmQ|f$HPJJZLU(_qO~3q~csMH5&M7Pz0Q0 zOJGHLf|lte6~tj?J%ofC@8{EPVvMkrsDl(P%`ecSImh-jrk?;TOdjmafKO-s2P{~x zyb@P~iME%AmC3OUCKCb(*l}JjeVXr!bJwo8I}&%|kJWbyMLh=?heHjb-wJ|95VYt1 zg_&>ueYPA0C?DSFQ_CBNLi82z%Mi_w%Y${HYzP(J8gxIr=WrjNJy+V62$88_lF-kc z)ZF)SM+$PGlh9W2M_Zf#4@LXCTUzSu_lf&`Q$n|>f?4ii;eNhein)R+hO4h<+urXcr=LTZfQxcm`&~k5` zpXMEe5Dc_gK?XVj{^}oEokG&gLewLdCK~8B1QRPVR8@nS(B{YlEE5fm%APHqH z7o_T~ba3(V^FeW{qU85TJ5f&hgjBzS;>r(0n92%$6iO_+poxspeyT+J`c=1Pi0x_5 zqNAaKbeKlksldobT3J35?+^=QKcR>B%S^O@1<;jpe*BDLQ5;-}><=o|rxDFPVu-EQ zsV0GV_k43E6u~Vs9gd1BE?P_ec^okgCqL>XpF8Y-^TW`g@CWn@;iw@(w}NCEt*JHS ziYji7y*w0_{l_(7MyxKBef3386xF}shKmNAU3iE!a2u(+`I>;?%NT6*5teuVPK}i- zOcn&FGRg#(G+$Ptx+f2h!pYaS(fx!hdX}rQ88|T1LZG{5h&Mk47|YGRSE}Zn|E)9| z-#Sb|M1n37k@A{jrt!47<$UPGSVxfMeWosK3^y7xEjRa`9?tiNZH6L6s4ByUse_i? z+Egn_>O>iH>nY=xuKX2VV_MYY;LoEzg7ipVHdhERO+^v3n>Pjyc4@;G8b@Pg?6>4T zg#lrW1^oHsnWv3AmacKUc_7~hm{~m;{@7FS^lU3pADLkD@vX9A(H{s6D8d{hext{a zDKZSJnX(q{`dpn}(4^|0;_mEogMogaKUG0Jt*n;!MS&MPCF*Uiuq@(PLAl zG?ep}j#zCVi!HMZ?Neu@KrLP3+U{9SYo5E$G=R0m>48T$l{+1Ly06j62Xg+}6<+l~ z<^hb1p^4Dv80B!s@;)vENz}++`T0MAGl{hrl_I;VafoJ+O2r2GG=5lra zk_}chKV1L~eFBRH@#b!iIQz84z0`{8aSa(&54I-aHkvJ9B-;n3*JN5DO^6;x_h(b) zV1NbYWkAbplP$th?jZ-!J$iZf7V0A(Xe`HVWgtKh;;MN>x8b>uRBdM^>ZxWZcTqTE zb%Qj6aFx*gH*{%0BzhN02!hn6&tC>CabXv$48bON4SSu{cb{r8g|?Zm8=|8sw0vm%M?P&0ub*|_dL3Q}3{2wAVqeZDWPWn$M!5}4|R#T6Y z6v-Gk>vPl|HjWG#(E~oo{^KH{U~i zMI#v%rddpc{ro(J)p@-}M5zV(hRv!bGGW8nWG_UvbdCakktpd+# zilE(FscR#@GtU|NK=mM+vJ>JOy>dZ|V0T7+A2*ncj!rL(k1HsNT0AsTxRBO{%ws zYb@8j#_(9=Aq`QMF;F5-4dj+!dHxpz4elo3iAtIN&`RG`_dfWcX8imf4+n4z#|Ddu z_t~w2fYq^k4N6)<%_gZMs^HtdtVQ@*xH*74E`+b_1;x+t%U&?ciQUK zcQ$7vZ5qXC6~<$Av{3Uo*8YzgZX+z93x?$Vei9M>3b)m>?4ATrg#8S*iV9Jb$4$75yGysqF!C|4(^|TncuVELhB?s z?u9J_w+QO7-&~cy|{DOM}iS} z&KS7>r6Os+0R_%~@;Sh7<77t|BNq0GZVdxquomZ>PynU_0rUPL*#B(66ut=axZ(Vf@3f)< z%K`GM+_aol^a-W)tn^=`!5C2Q!7OEBZzwsg=rkg?#admAwiK{&9|kc=Cg) zw@`#RKb5qepP~_^v`nW0sZA2Ae;WG$#E5#G>1=j42YXFqy;mOi7Y9-x9F`q-mR!&H zK`r=Uh~1g`FNvZg*)W=8$9Ic(Nni5M%6x_IoJ)5(@>hwzGgLx#%`cPP!#%z?0?sf6R>=l@ zWonw^vX36#{pB-V3VelKmWk;A3Kv|KU&JxOJFl$Mk2ID~U;-io+%(X0Bf1>?2aXr#);xOs&7 zN>leuw|M!`i_lvahaUnuS{XsQQVD*D?U2>NdHT{r?&QXa&Oj*?YR=o|?gg4^U^Imb z0(B+KijitTCgc*t`Z^DZ;?%lqj1)twR|W%8cu|*Jvh7WzUwf7?=kn{IU%*;~tA$Dq zm~3SxR}^5o*nv32PKrQniMAn8RGH4>YR2^tZ+;=EUj7l!qlIMi zH+<(8PA0rgSQ*2yoL=6!V>E0c_NXMr5{l1FX&Q(>3hdH%?QD zIC1fJX*GD-TFeoqT(A)&VR>fx~rf#vowv9IHK1k3+x2?YS z6Z*j?I&&T%zSUUH{(c9Yl`0j1cxA7$2x?rG3m3(VftB_rWF)LKd;O=uI!M&r^`#Yq zl%iYmV{^;2)KFH*B&45mrb6B$jj^VCF=%4UNh>2^ zwV5!c?BdG}T+f1tloxo3nB}2-0B_M?E#}t+_ zD8ANKqVYQYHy$d-nqBf9CoA@SL#%cso3cHh+@b^8bh9m{HU0$j3=TXr)n%xxv4UE_ zVZ#NErIt( z_bzBHZMM(eFTc;J9+{f=QlXh>N6fGlUCQw&b|EM{ldt`nHajX%9e%*)H0=CJ*1{ds z&WG&`>K)cC$<^OF(b0FqDl0SLu}tQO>j4qPi$p5YuH-r&$q6a6}f$J8ZVVI6l%oaE=f-d8?>u9w(A{Or1fc#orY~UnW{gB z@AM%#8o}ttGHf#HE^6;{faKaf@jEoK*h1IQLYFwAjSw?E&aidwej?ihN|*%`4%~FB z2O(EqcO5Bj9|Ktz+fbK|J;+tj-U8#7Rj@HG1vY&=G6TKP?`B8LO)(Zyv<~t zzVa*LXf;Tmx-vtWoF~cS6$wt|2Ly&vOLz!LUW%gy=p4KM^EqNS(k)EP(?9gLI)2>t zN~!p@*5bMF{Q8l2i>bvM&SS5mk1!`t2F%}>qcw_$L=zl%iTVf^BUKdfeDb?YaG}(7 zF#uRyl4oXkC?Vb6-C6iE_!Am&x%$RF-@_0>KAg&pw~}nB1upheXQ-CLwskLUZU||% zOt)oR-IP#wl{H(FK+d}`7g19tMXIzv%GWtAQ9Ix+WdXXFC_VMx zlk=P)tFIjSdW7genlw-Im`HtPLt^pK1|A??sw)IWdbEzgNY>7S-zn8=H6%#c?d$h1 zJSefSTqIm(zF*_tY^vF&;7vfh)%uiTGv1fRasm*Xg`a zU4v0i&QS|^dMD<%aYlN+6=h$+N;+S7g$Sn@+mh2aZ!>--mlgRdM6Z)*^d<)5wwet! zW%NC=2t4XP?V%&4RP{nA3jP9tXD$6%62?+(it1P??R?ZJtjaoqeL&Lc!$ z-glSv>#J_q8Eku`|%5B#Wq*zss+ty*_64kCk%1bjW&t5VOU!K@X=35^Y|3f;cl`6owt^QRz&Z>|@OFnpi&^pM zHq(2T2VE0MO<%`*yGyD`w}{Av&l!Ilh8S}<<0Ly-3i01PF3y+Q6sP7Q7keOZc79?^ zP4qR`_7@Dz^k^lY!Nox_)wqh`*^;Yl?SOh=wT=DBbN0&v)5+0fUR5QYrgM#5w$B zwX+dCq>y1*G6~V3X}kw1%H0@8D6JGaT!KVLD3Fwojy2yv)S`t|>M9JKu*uh~xOcA3 zO@IxKwV}dW)%|km98y~+86!Fjgbc(+en^bh5Tn^OeVjl5bg#1IXLmKX9gEn|90%&M z=|}!Kgs{&HgnfAOeWg&cT$fh$As6pB(#A-fyR%Nt$PX8UJll%sW{{LbO}eC*ZQWv@ z(*E5e*&$0=sv`f*_E*xEr;(@+TTm2eG1uN&MkIA-#Z@+ok(*9h!VJs~hEBrXN{q!4 z-1!YI8XzUPR`1ReHYt;6IyN)Ddz1nR-U=~*ynJ=*OKEbAgNA!N@^@}7eAA(u& zUR=YEBkpEXxm2kZl}0{B9z&|l)&T`ZyTmEG<)?m#425nka;hLcx*0gz0|1{NB2ykz z2M&Q0eA~}JpM_G2xu-!vX9F6rFz6C*#p{Fox4bC2EqN=5H!HrV>Z6xpzSUs1Y@oXP z{pDTY=SjZ&ks-t+!4QMZt5{w>@|iejGi>F(JuF$KGy zFuR|F2ZC~@9LD*2-w#}4>-t+IQB(0-Szp9M&l4%;cjTtY{x-djd{AsyS57hAHPp}= z#re~u!V6b{#F_d{Q(r$^R=abfODzzE5_J{cR_;@ysz7fg2L`=m{(kw$^=2}~5IJpK zDW|J%veknQ^=)PF7AxpQC&g_BVud)@-X{~4gVgxdcF%!Spx1;dox@`I)(BCZie>ot zjV~K!qdXRiU!QNaM=}_`=`vlyDtQ^$JZA()& zf5;q5eASi+#n76_B}|4Bx~K|lV6^DwdoCPQvhw^Dje+Olysi6-M>Fmj82+K%8w7Dr z{dfE1oSFGVcOY;ngN-dueDa4(W@?y3CCn|6-U5X>(+RTBmPo-jpSVJ?Dmj_ryTr{U zlbJY?idM{5U7cqw@AL*he>b36V28Y ztgB>JCIRwG5V<8@HyRIV?ZT#pnO%W9=VzS*OVeYstW zesSZe736rFW#)m?f2V_MtMknRC{<3@rMFBV_9tNdL~)|EJCoJhdEzw7M$HW;;iv7J zX1c>-j|FOcc2n#PK7*Y=?Dyn2qqM#O4n{DiFKCfqb2y3wdR|0I!!eK63DHFTZ9EpM zm(_fRFxxG@&;G>vWIbNz8r<090?G5Mh`L|4{;IKi`)9QisrgeOg_f8_-_+oc%0+ zp8b&^H0?YDb3tA#UH^q_X~;n@9kN&4a<|^0BTZ*|oy<}2%UfCybpCMI!|l=0FNY(q z?y&fN`}btV8bAX6B#c@KQH;@mNtLo+nJ3k)-(3`}H&JG3Z^A`PSH;;0V_z_Dv%s5B&)Vb}y;eXtB)ZzOw(q%Pf3<6&hl1^R0_4 zAsa>iaVqo#5$o{z+0p64Z(W%y^#6g|>w4E!W{F8L)>`s`EFHM{A9E~8Lfxc#)7iM3 z9wTYE4A2eA%Q+#^P!07YM4{{{Hm8T3xx*Ea_orL{aqjj=L}ehNDn!g^-(WDqn@+0^Bd0{j%YRX3v+)oZ!KFUUR2ETJyTN2m ziH2~=pbU#1@CzUq#rG&gNZl*s2D5-78j5a!w}Kw;-aIQ6CNVuDYT+_mbJ@2>P`K_5 zR{(@Ji*4YBhhWbCunL9%yQ8Hm?7ZDKH?YBn&;z7%Z2tx*CkBIb+lTbg6b7CRuVVZfcOHKxg?F2SB~dg-H1k{HoLY@@W0zZ?fS^E% zow>FTo55ytF$ntQ)ZD1^^LTi<&4b~H;Knbed~(~4t93){LKxK!@6N?>Om1T_!eLO@ zu+l78!X+atBzfI)F?q3Ui$HAaYKZc~1DollyO@0+Bx8V$qFxqgm%}=*mT=)6m zgwN()9awit!bTy3Rgx~ZXq?mgIqXL^0?J@d`x*Nt5DW;LligSTmO0hoI}sULO$~>6 z5SF+6hYaY80Qi-x#Dt}TOY?8{m%G{292FLmX-~4{y@JfOG43xRY~e86y|JN10^2PV zO!Afo!+=G*d$-i$Tq`&@o`-CRJNk`KDj_LemLQYjUmpuu5fG$RfAx3=l2K-v4hX>{ zarHc0;kM6Zo;?NAJskFTH?qfI#Y0vfd>5up!?V=gD>LcdhkV589~|t{h>`a=?El;d z{en%DfIC`p#wE&K`_rK4feGy+pp{2a~)eGr@ht>k|XTrw$8uXtFo&Or%L?PL} zDFXw$3KX`CnUT=R%yl=`7Q#HUkYGG51z-{NCft~Ab;Bxq)-tluGMc0Q<|Z30b!))% zApXn*E6Scrov>0?kzpeTlOp(!WOagVtvkG3G0B^}L&Bqwi^EWSQ}MTe$p0ui*_c3O zpIQq&A3S~kS3?M?C%4T=n`gn8uMK6XxTKKWAJ`|cKWyTQPr)tOfYHzeYtH(yO`5eq z0W7x987FD=q3AYY_7>SyC3L^U6G#<3wrlWK0OTAh9huj*`RY5#9a}aT|9tVJ@hch1 z^~2XW>u+wl{H?+oRy0@AY=-nsi|-X~aCal0!8=CQemzsA?i5B8XV|dWpr6C|M`!2m z1o_*9U2pYV#f&vo2!37M_{^6c9-7Tm{zi`A&zow#GBXxm12k4ZUV|N2O;+#C5S(Z; zaMfCT<8a(TrR+wJdS|{g>LlUr_z%)k2E|2QkmJ^-C^f_Fo8q#94*e^C``x{eV5h%W zSgo30`*W#ur7yOWvfE_mC0^@;PSZ&iVmMuq>ZKR+Kc}^)Gq!MGH{!S8-9WL8$h|}H z?p3SN7Bh#p?8&fid|d|Uj?U?psh*v;2ZQEjd&Cquf_UK^V9so{eHmV4H$57Tzasf+-AHW^?ej& zESUGxyWHJRDSu`5ku$J5(vZ}UDX$K1R!?gX+S+sFjdQDVf&M`1V87i-4h4~okmqNZ zc)(ITa`^;R?xD0=oIO{e(BUvh)dl^-XS7f3Q%tUA&-he)6yfjp4FrmCl{2{b&^qr? z|Kga{hdYhE;6Kki6(2h?Sylf{_^?^v<4>~E)b17Qr%V3)9QG3%Mq;loa>T0GcjZ;5 z34>+%A@am+hJk#>nvvMu3A7HH(p^ijw@Gcwhq&F`7^2iJ+iI13M1V~|Hb=ehKX3ih zw`jzT#FLOJWu?fa^Zmx}5mW0AVcXBWc)%ah1E~hr8Ob6~>USR-&fOgLfg4+6ukX8* zO2%hMV{-wiaPmWB_KCVksk&#QJp!=qmB^T@3Jxl3z!8*jIk4<fcC2QDf+oZ>KS!{XTurif#){R%6&I00RkUie~A3SVChxQMjCK|%roCc z+^7N(paU7gKbDc!8kZ$LXnpAv56A0GnzuP$Ox;f3CkU;l=FzqmaUHc%q-ij|;qz;B z8*PtJG$uout~A~`N%80R!C86Jm-B0GaB$3TB&ETg(%dp_nyWCtV*@Xv=vh0nI!B_s zO32!Tqc!gHL-={uhCH8iNFvqav!^>7dCLAqXIuaw~IS~~%A%?FOxHQPWmBU_X1CxsIx6!03B%{I@kXuK}Z~H0`HUNqA z;Rp5PwoOEu&HLdzJ^L5whf}IMH2K?`_VNo*t^<#y(~q7;Rj*qc?Jsh?E`GY#?&+ql zfP^@is!BDIF@}|vMQ5RAtbqRiCu?)OROH|=urStxY}wUYN|7vv+yaCzgYBI?QKZr>xQ%LpCOsM5C#{sppd60a5SfM`g1;H@`hR)ddGVk5KW$p)j&003?HCs zA8c101O}G>UHhQ~gzjC;FkFpbPx$xd(SypR(2JKhUJN;LH$!68UBrh-&qM1#)l@ZS zjc7O73B1sV>qU1}zrvp0$j06%j{gwZ^QVBlsLUXQ*6rmk2tKb?Z$edf3+jlQ*6jpf z@ZX{OO6la1X6N^eC_D&v%D~HmHw0z7!(!?>KT;UDda1b`uII|7zUKQ}uzKJscZB>*8w>hhkXc4sh zQK@t(c>d>3SK^iMZY?a2p%y@>e^5#lHLf<*i|xQ z!V97+&z7jlxu!_3i41S$pb~Fga3cU9O4d5Nf=>X>ehEUO^$_R7(0|ZKY+2bE@{0fR zy&TOOg~i|09x39`>o#C1*1iA zS}GJZ3c3}5fW7BW2XHz&+GArG0-x}3t@t*LSvb#|aQ#+R!+gD1?}AvKl?Ky@Gy}(- zF&YSnJ#iq<7X)fHKC$67mj^-2x`AAh6jbr#j2F1Wv9cUUlrldZ%-lC;5+)vGLg6CmS3eZd$} zGZt)dJZ(bV(omk)wbyK?MIH#k$h-G?N=E?9lZ8A_<*3f!vctGvODW|cKjggaXE&@% z_^$zkznmt0iAgFB^U&iXdIeQa#Pi^xs-A_Nx-?-m?f_{eN-L>Ao!US$h#HEMd&Mp< zo&SW;gDQnhcK}2|Vb6~M=1}@>i`zeD?5j8M4~ln>rK{yrNLOo};J;7rhQ0PrjX!AK>!>B}R0 zCxGw1>Vx1|=FN5etA9BEvBbvae1s8SV1?idtBR3Y4m+-nqNPA2uC0T%YWV2 zgkel0S;_3gHkF_3Q=xl~d8L4C+VHo16Hhw~9OG&8b_VF&2>{?76h;CDJqAgR!01<8 z_q*p046`4EQ~x05y&R`hD@^L(T_2evwC^bhXM)j4`9b(CuA}jYh0j2ulcvO!y2_to zq*^H!6-oJqIk9brSrud?1DcwO|ES^@o)|cU5NoXo8{wyOH!UFjO%z;@Z%C^P+DGI@ zqXO^1LPDx5coR?~XRf1^s_~B&R~*L6ygFMEFFSVXUH2IZ!<+N4m2Bs$K!1XMvgc2n z+_o)UWLHRio@X&HsyP!er(&oUU*%p6pyHbg|ChY4!uEBz`Ds3o+TXWR|8}j1Uw;v$ z-{P_ZsBl+Mj?q$N7K6s!_hw=_sckJY#QmH+)#}Ww=o`!7o*cE&0s`G-M7 zAlPpM3`?MJ*Dxp>wJCfJP&IDUWP4{F#uu^jjm?6zOBxm2 zPFbMOgf5UF5Nk$_on+xJx7~MK^LZkR;+q|`)}7&-_@t3cW?_{ zXPA%4miamirmz3fhk*ev%5|FxjigN1uFtE&~3H9sfb&Tj{KUU59HVAiLQ`fE?h?!7>$^U2YWHBC1MtK zarLsy5k=5t1hnJB11@0UM-#4h0^LM2=@9OmakV}iVf5;3*@eAthl`E)(oLOMD9@U^ zO(`<>{;rg~up1&hWajs5q=W2Xs{5lelBKkz=3Q$$xltGjHrWJc_eV#>tLJ3EbO!H@ z?f~=bO<)?Nl1m!RRLIOy9j5*}Mu20pPw_Q3@Dv5! z$`LK%bs2&$DuI^(+ZET_rl))zG%!D_bm%~20_AK#QuuLC+q9-8I!WBMReN?`pE~iT|>B3sCf!Z`al4y0)XHGd#nbGwRMr%g8Y3SW2h^>tbchV`g9xEPRT?3 zf}9al)M5=-Dt2*bV5go2a~?nK^z`X_h=N=5y7DSo`C1E7|9D-9DTN}PP&wP=oNR5IB z(y1P;amw_tJtJj{{xOg2K7hu^+04{|7k%c(rL<|xJ9Rp9vtBtIKZmUw$vrmWzE^sR z5x>yuzUl(hi;VX$2n+I008mg5XI@M4{^{=g>wHbtXbkIi5_-x6%+zlpr57xQo{IoT z0lw)1?Afk^XMviw!`Ok012-kZ3rE5W$Dp9FtS;^CzGz`%f+Ce_jX1FvA-fl$2u>7? zZtxT8tsun$>U>snh5&rf0yR0#y^iv5{;@$;Mq%RZZ#dcLA7a{bs z&KQ!g3y9VZjI#SDu|7ksAT+>i4h8jU0XQvu-? zMdo}2mZj9H`jhEQdBc7Ib##{geAs~h;dJV9!u7j)09lyy-iix*b1e%25S?}F2YRVc z+(Zz!NcF#?*!aX1aF({(yo#&^*TTzCUN49`UUoV;^1JTCf0JAs3ZCl;74J`yv;=4n zTh4mKGZL4?3?oIfNI17EvfKdw02C79CQIGByGii};c#V?vz_(5VJ#A9uJo$@oxYgq zHNn(VW6V@!;`x}dq|y-Lvo&JdqsHGBDvkr4SPDW{3%*csp(5a3usIvBMN?Sz@m9^B zLC!O>rH6SOoQD46aZ{vIP+)mLUQ4^gFY4EHP@kFpQu2*Lw@svdYemq#8pQ; zXl4jXgzRV639jF!4`udGvEzFl&6&Cib&|{O;Lxwc2jKC-Rn+4 zB_&ezSEo#ww$%jW=La|g3~Yg|=hW_JqvrU_Bg>SJ#pg`pq#WyTP5E=W1+Rxky$9R+ zHwFQDZzvgQO<5q~O}JTpNw7H&Jk1NBjXEtDXz#2+JTN-`CrcC`96-Rq04f$p2M>o4 zP|dG>2$bt4h21SIM{By%e7&?+WgaeV(x9 zdCy_0hrm6fS#7J#g=FjiXyKS|j1RyEx#FH%pxLwY`Gs^L!UC{K){HS>#2bzl!dYtwiuNCiJ z&6*?if1SvbPeEU)_U(XW&cRm)kUb_;Lnl!dw=?Z9E_J`e{ApmNp2`stenAIwtbnfG z0v>8m3-&7J2SW%<%W;8$RiXyNjHTOHxyadMzN`}Ce(98wr6==%#W(5=q^$xxxpnKE z;4{#b69zspfkD?Xr!F|r1P=nj!72~1sWMOo-)v1E=Q${|g~u}?!XZWR^e$Pg*XBNA z%a%<)8*Z5o(j+N?#Uq1$`FC1)>_7?F&=bla>eKm!v;ETbpbv*1mmxpEGI@+ycZ%Cm7gLcd$uRfs2TZm$%>lG5{DUPx z>AV=L`f8M5qEU`=pq6^cZkPueG!Ep{Uxl4l;^6G!4Xo5{2M&T0o8?z&NMt_{X zr$^LamrS4FxYPqO`X1&zW(m8<+hqT-k_0>dH^OS4yyqSZ?GNEL>9wO(Is85}*?C&) z8n4*JAl4FJt%!!Nwir#L}aC&a%Go?yBq%6%mK{>N42#k>ugdbu@;!n1x>r zLLY90{mdsVg`j{wS}B3D`!x_rwAs`ms^{l)GvyI}f3GyZH^9495c+`=?=J-&IWaGF z<%46>_w!wV>Vjn86Esl`CSiF3IpdN7z!td&s_w~$?oOj5F8V+ZLdkLMp~7SLn!FA& zzCu(hCA*5Es(&>8e4kjfbG5tic?_Hjs&vs-$y z@Gu43#*VF)qaSak~CnXSwEOKq+aeOc(#3bJ~BP^#0i(CRw?srMtHYuF51 z`oPy;SUJ?#y9-hm{Wl@kbJ3MkSAQRJ`Q6zx4&HOEBDcJp18U0-0DO)NeWVa=Ybq->$+6<9FUQ z^?pNBh|BGor~N!W?2OLG^HBmPBK>8xe)jfzZQ-R1^rrq$%S18;=hkqLj7TQBzo`k6 zsKp9vgj>_Gxsl+#R+mlyeQZ+2L;nDv$N&n^3%Irt=o#Po_I*HsqZSyw9#ec7U6qB8 z@MtC3M3w+4JqUd)`1vZV#lvxb0srF|R;Y76=K71=T z`$jdRgsthOGLI9Ke}6LLn69RUutiSGZbnFtV<3|oP@SNyQQ>po=!4jO@Gob&Esfb< z7m_(bYG`TK@*VYYLMnxt0n~duyp|QzK?!noKS9e=iM&$BBo zwcSuPVJQ13R0@$D8a~BesS~Suo&|O%6?KG7wTVP{K@c-B{fIb5# zS#YG1^ZBPx@7{9betN+DIaasS9D*0FiDEx22%}b^F7yJ%?aw!^5MdJeS4nkGD?$|n z6dkEj7QKiW9NyBHF;hhT@|>k%>p8-H4oJ8*Ym=jw-qdZ?rAW@iif9`EiX;o{_oR2a^h2OOpFBqX^Emty4YmdsrK z?1st+=K;MEd2(LS#8pQ;-Y&;ZH=Z-ziHAbOn7gN^{dAdxRoj^VT`Im>E_D`U! z&Y;yu>>}7XOJGQrlgbDojd#7uyH^VzpFz$HbWVo)|9mp5(?GjgjN-{+zOr1wirIPO z=-|<(2&!!rx{uu<1`SMgtpNwvef7FYUYBWC&lJ^Ix&c+tAd~8;?}C^leLWg$~q!PrAeYu5g$+ zBH`P$GV3$DI3 zi7k_mI_1@0iZJHMWSUt6${jjc62-vLe^;G?CJ^!?&g%+dMzk z!E9Bo6|7DBZi=07PyR>`3k+y>{h};{?6@8SF!@SwC7RgS$w#~I%BsI!F5p%cGusX3 zf$mR``&a`6PNm26NDmf6O+l5dPi_zoX`^1-czX-f0El`{~- zm~dEviY|#N;2`v#`;ptPHj16fk+gcME#w)-({~N@x%)&4alN<-;Ny^xih0H4DsjTm z7Kr2~?ZI4Ij&RCXw6pUHxI+U zBs!@g<0Xd0bP%JztayB@b%3$hSwF-o51GFfO+kgU(Hldt+Z& zGq4Avgi2mbX1;|b?>A;B7m6Y>aWr4k{K|t(v#Mz3WUbtjtquH$AkVL#1F(m!O!Aki zcMk*Y=SUR&QzPPjQ*2eoA)>MXq5d5@$tzh3$@A9IE&iE?`D{R30S7)Lf@!2 z{bej#$%x(fshfpanot_W*Tmjx9bz~-x0S+UZnbLO0{4~7prkCkcB`tirk-)SNd7J* zlpYeR1>pI$pHl|bxZ3|B8DWe)!E89-dZ}~)dy5d>b3TFa{FfcGKD;N5telQ__w{X@ zobu3oCWolAndu`ueFW_iBJWQtcb#a z5?a40q`S}WgH!BxgC)fc;$>}mL?jSWThzbi(BYt+1y$-T9ntgXp`4J4kRhWO**GNO z-_SG#Ppv5THSzzRgrX6ecsd)hM{x^RXle6zCOZXRMG9qb=jVC^IdWj{8?mc#*! zG|Dn!j7y-}ma|Kt6f>5_5L!g%vL!(P0bGSneVVSPQ=~Cx6lg)_u~LvbRlU+vN|e@0 z{xuC+6rBdE9N2JHkQ(XP!2u8;5l!3O;L^4gT4JhRi^vfa?m19PbeY_pX2(@6k7jpL zasW!-tDRXJLbiF3p1dFZ+WV%-|3zQZk)jOkA=kUoSj6QeJECw&FwIC00G^l5Iu5%bs zXG)j61j#*CTTXmc3;Frrd9Xnsl^5~2^q@4e>6EzKO* zJw?Awc3U;3oYJ3Nf-ZgtgBB0{Jbwff10w!7BMCl4tmYU!6OI`Y!QKAxeqqo0BOLbc z!N(g?11LXsnta2+aGGO+%M?LH2&|!>#6W>JSl5(5hr)vH0 z0MaD@r0aw`PzI|Cx5-Lc@%xlof$tpHXwnDO%J&xzO0IC}02DUzOF>q_M0rCj1Alq*m`K>(Y1L zqA%5b+yicvEZN9_?}0u+kjRoZ=JpJ^{4v*7>)XQMft1jkz&kVg6h zCLZQYgo=g)qZ*q&+iA6^Nbib%v8rq-YC7V3m7Vp{|I^1Rr{-sC^Z0OPNNG~y-l&l@ zE?dd=53b)jfwx*EZs$teeHA0CXcS$D_!iAqp{Sv?)B_XV`l8YE7`r1GHh1w%1UUD> zws_Yz0aLkeM-N!d{vy47?rqeobFf*lJ0rp`LIh~a7SA<;NL&5@zj8`gs>vCc5S~cC z|8#H5t0fInrl`Qgy%CkY=D6oEUhUCGIe8M(XJ6@&wz{%j50EU}IS7psUuhqdBn;HV zd?cegNFld(J6+zp6&pTkl$`vv<&_HRB3-6^qHpWG%lA>Zp#;9^bKMfJAdJU~gBd=0 zNi<}{BR9}6f@m<}Q6Rc4ip04sE>_u7OEpH8pw)s@QyxoJQrJ7|nJJQfhw`%c7|0gP zvXnegr)k8b`a6w^>HhBv@Dd%WCq!E^pRIEHYu@0!vbW{sq{KJR)$mEn)OH`wEm)EH zB>{BE`12rwoFT^xGg#pmPpT1T)G9HBRktNnMytlGeGbVG9R;uIpH=<6-R-Y7&C@*~ zr+ya6mqQEXH#g#HIT)_I*Io&^(+bJhs)6CSt#*FT1G(WjOJ?4!G*OWiS!$p4zg-e=ce4Yj~w4 z#EHba)~6w}A~igcCAR#wtY}wk)7$#?C^18_jnt*O_{~b7C|K_#ThSJ+9l`Fqt-s94 ztE)wMv1Pw!E$y(7uq?FiI;@bv2u=GVNHx}2`=xH1-q7_OIb(0KGH_~afUf+Q`&Q?) zm!TG`t3_RU7q4!ejIpS$AtbS(^8Pg-mGG-(zw0!24nK^zQN~_Y7q&ru^x8F z>93<%qr%MM=27zvXUGmoP`=DAhR;gVut%O!C6ZsguQuk|YCK&W$(w6qr!GD~Z5l6;K- zY6OHPl`jI`Qk{T4S>_pT;4S$hn_CNz1fr(<~|3ZdHF|zl8f7`q)?`UkUAeuS944 z9dmi>v*t|q{j~Gt{?{Y($K-xnMXw5}ZOTZ3f4?DAR}4iQt;BD6+))C(s$PEEfwxrd=k8W`jSkUwrf1hQ5XA zyK_%;rc7b&toMNEjgalqV>duh=muYo+-}=AljyGTiHtWZmQA@Jz%Q3=Eb#_3-febq z2iJ}9OnaW!;+B;RRCuW~bLfI#alR*acuu94&O@O|&M4Zk9{H1X?~ibwa3DBZ$-jx{ zqtr5K!tI*S$^iEa{&x;B%eAoGypd~p$*(qyCsd}+TB`iC%b%z-mv(=-cq{Wrc~v#j z^r#gSBd_0a06vi-I&vXkkn@fIF!l(MCK;xXgD^M2I$kJ!g>ye5H#jlgg>#T<*0Jd> zJP~1kj!EHB-N!$Tw5g~aJZ6v}7vy~n`(@6oLAslD(%kgQ(ekPl?<2+29kE6O-G#qL z2k+?(#Ro3NtOl4Kk}8*K)@3)JZ3$dnj`ogS27Qy8t^5A_5%T;(pL5R#2M*&%X@0xa z8g*6!hczwFXgm!Yk6P^hGD|p}HgX~88)BFE7{|GI`AKDh^WiYfqzAjM(Rc61hHjlD zXyyzE-w$8H+WBc3kWC1`G=f-~D~Go5HpC4?w>%U5I|8-6Sj;bFt|({FZr(gqE_D1} zS{fCah2(mi>L0&#Z+HEL-4~Szt*=Fl!z1g@U4I>Ge{OL2P_D6nThmfvfj=iKUSh6S zn@e?x-`wqVm_SmGEMmrEr@fhZh$wbY6I?uYJi^U+r_9*dyXc$6Q>)jJt~epTWqPpw zr=WvD=5dU2CHQWui`~6gk=NOVBg0&2neJP3*Q)cdw+0n}v^`;gY{lfufo} zG*Byh-msUh?lZ=cX-$}jV4bA94Hazn0B@_mxL)&~KY|FCClntF`$HeWxUx$Xx%1C4 z=WW>Esq&M$MQ=_LGt$KOd_wSD?N2>c%<4ex-adAc(2 zdCB;f6&dq`I(HcokEA@Mo8kINT3*IFhyB6ICrvhdmgX7|E#EXv{-N8E2eo1y8 zw-oR8G=a%=O?)|je+ArnogPjv{PH2{{1!2O!*I7Yw~I|`X7s&9pXL%CZ1ZFF6-?f< z$aQ`d5QoA0=5cFWunWsnj~&}{IZxL-&nAmLc^1lAHm-|$ojaMrnP)p+NlyYTqfm9? z>CbEJy45wuv}CwWNq&Dq)#@n4ru>p9aH*91cnosf5Mo?jgX7;PxwoqYrCg$uC36tU zidQ+KT+}lPOMW9ev>pg5%At)e52YI4h(V40W!bPNWy@av#&Ay~1eSlcw}5w1?x6Qu zv4ZV{E&B+~z@F=U*Bg`{y4ne|kx6>+)sOnyXnyy(Mau2UBt?wCdL-~J>t`L>!%D2Kei8~*8a zb@EjmiEc&~G*=y7d2{oJx_5)6PL?aeEya4GG=eH7k6y+b*}>MD2{&#ndTsJ>&&UPe zKemrJpq0A|zka$O;&L!$Y`L0CVk9kax9P>El%pfAFyI6FS2V>9a>zZd#}7vpU4E!8 zDg0z0JaR^xw{WOR@+;XC`%0G*Wo*9J&0Jg1gciU{9rxSOO{bVi@fUsa;c@ntt9}gO zKW%+C6aSng92!)Gy1{?1SLzjxHrgJWwH49#ffzlGjhi|X_m1RhNM7gnDPH^K=A%;( zEgIa^nPISgNZfzDLDSIxYl6JTBN@q?!{qbe1Hs_JO6YUY4|4OcAP2|yM;lH0zzO_w zlP3pQhpMC<^#!@;^P(2wl7ry)fm@w%E= zh_L3{pi|=VEh|>sm}zkC5v0%@(TNjwgHPKkX~Xk;PI=CGTtq8OIkpI^+0q9wCger~ zQ-BVQ5ov*v3dTE|mwcy`U=)Vz4Q{U}&kBTY zim=AF=+#$edeVqip8U!#PuSl?D60*{fFQdu*8zO;EtY#120=z zt9|7o>g-1%?=%TW2fY@~dDq+H$d<&`y19bRrKj?eO)NXM=<{4TVpZ1s$}JHg&Qf8m zTYKCp=lFEB#1*RNPh%&Mye6-LChAeK`NDLg4a)Q?!A96E0U5_sbMc`)wg3 zE?hI<%43B*d!WKuqqAMT2_X)bvVJcFmjgN+1HVbc(&D(gm$i9grymb@pi;HsEpd<0S<}<>Bj)l0 zf+Ick#dUr`X%3oXMEl;Hfjt!|t#gfTp`&E+3(>jdLU`q%EHA_7I0=;=*&fAT5yKhY ztw9MMuE`0u*1dVAFy1T-!*($b!)lxE)tDi8MhIv*(B-R+%Y!BpvM z*E;CH%xMWtJiDUWBad>5p6W|YW&Sz<2~LeIA4MO_WqtHQos^~XFZbt}?#Lfwwq zsq#ItWF>U?GMQSq?2Q>en?`sysn#+(Nfj^}*w-CpS1uDZ>g3IIObrx$m*b(GnuUta z7B_XcP8YV08;EkW&~k60niMlLydU3Cv}Ga zJEks%R-9K|TieO-7Pmx%+1c5=>4$fqhG0nx*lN4-LT5yTw@0TNTZF`#r2C1O!KN2$ zaNgwHCj)s4mh`IFFJ$FUp4nZf@EaMC_a^-bPTF}kd5%Mfx3IUdj_MdcQ5M?DCxG2uJ(b#1t`nRthk2NTNzRE9u=Bio3=VW7z$|&nMI-@!scGh2waW7I zmZpfei518{OPpCM9s3&QJ{KlRV|=4-_$?m}ZTfTebIxSDN%wR6l=2E2#3Q>3nL@N# zGH(V3d+kU&DU+*SA5B>f+Xb05rogGJk zyJb(lL@2(!s@1MXlU#wDt6ZsWTp9P9WLm3b_qU@&9DKb8?&7>BpQFlw>h$&=C68AD zi9}9SZ80fq}b@dW}?-0mYHG+XJL7ul70}D%HocMS3pPV+!SrUSz5tU<rXEFf z1RXr|xz*jB?TSHW@?>#fDv5HT-SFgJTC!zv@V|dW5tx*$!xgqkSvQ}!@r29=Wcgis zkJHEB>yNkF)sNzhillXW8Zm4t>RP9}$A{_Tyt5+hc%Qw~jY_nY$K@9&Z{OK1{BXel zyIfA}`0B54cVp503uVs-z@mNg8@2W`Zq$lT#>L8;r!0KU^fW3YtNd!3=_AgOk2l`+ zS~{uJiV5o_@}%VlzBvUT;4B;wMEK=QrdAzp$H$^7WHNIXyutA};n5MlPf6v6C1UTI zGfp7R#Y|KdWMi*bqj+=6Q^rScW7+=GVNZJBS{jkXV~yIKQnPwlyF*T8>EW1S+pbNl z)?Iaj;dBX;Dfe(s#C`IKc&u#&` zs>dr_4Nu_uJ>LD9$FS~}cI-@nxaEhavXmvw9I(lMxFq}Lre5dqQ_Yw-U16zdk}y85 zO!qK%&&t6}_&hC_{fya7EeDm21xG8h!hd#GiYC(T=DoMw+|ZQJyFze!6))jnJIBS@d@1nEg_?-DVOiP^7V^@FMiS|7iquS>9)#Wo+(QaWH@H&nJv^;ibmf?FfND-QT49D3iF?Yoe8>h>(5UM<2RVU zmD(>aSi%N6Vuz<{n00k?GtUP9*7)16@3Lru{&es7ol8LovJXa97Diqy+r7a1qeV25*%>Y>2n82kB0o$V~#=_nrLJe9@R6O31v=CuzC4x~K5)X2&{}6!?Q*~L;T5HJ%fcM@0n0O&VF~ds<9e_ID@t_J zy1r!jPZPw^Bez(p#@EACvc+(g>?i;nAj>#AF^m;K4s0VWy3a+Mq3JcUSdmhu@P6~F zNm(|qGiAL>8jUlZ_xRqobxbJA$r+AC$y}qnH8v+W&CT_f=2vMpe~OvTFYM^^pF-^W zf7(0qsHU%V?|V+q)wT}QLoL(+q#mVJ1XB?u1~{ldRY-~u0f9t8v;3Qj&$Y}- z*uQ7*XZU`e-?QI&-<-oD8lKHv@4Apbab&dQB(NGrY_hv2SQy!D?ROG)o+8@WCSYLN z7$u6Z5N~tAb#RP$vPgzfeV!s&3rzH;B)y0(K{`kSilkGJdG_8b(bdJp0RuHLyEVFp zYCJGciQ5!hp7q#Z+O=e*aW=@`HM^QN-Ib#MwsSbP2pfD`$|_pNCK3$Ghe;Q}l|E&- zOEs6s{lJ5~Z6Nu*9DhA0f4(+YW|+}#M&Fc1pD|nY%~L2n>Qqi&#CU_OI^5;;vqVL% zR|Vl{!{}>o_KU`bhB94uYSy{*8p-@W@QRi#R;19!9OJiP+mfEUM2=;NIJd_cf2ZSm zD0>DBb3L=eS%)RTvt=YyAs&8iC^BSS9{r(h$+%l1`?JSm>N}Xwx}5qtYdFrY06ZDR z{-yT<&{4EyPien*KZBWSS;alt^}#l6di!PvaNf%_j5Rms^*H7%TvYf{ll*Oc}dr^+_e<48GFEnd(mr)f#XD8{di*BIa@#b zro;Hd-7)d$DHd+$l~^oS^%48={_@4m1KOdif8P=#8n~QG3+rOL&pk&9c<}D_!4!}O zK{MLU9*apmm&(8N;KtcwSDkxKacv*MDf^U;Kte#v6pXfJ+^I4*>elS6Z#kc~et$rB zl!l8MgaSrfnLT#0J{G%Rh5qaPleVgvzShC^VNCfGMwTu!o*>m`JWpx=WHOm~~MIe&O7@g1aoFDIRSsa z^{+P~WO|7mSO36~FjmVS<45mFQqqvCpLZeZtw&ydT(_vy6O_WQ=SE0#ZBHB#g%xrn zpJ*jk#n;s}JZqe~QhUn!>aZ7QF22Gw7l$`EJK)S${rnX~I6NQy-bU4BN$dX? zLN=bTy#|kjpZgG=ll8(EEi4Gr$#{L-+Iq0au)3sEpY;St_b!{u6(&rAu|Q%&l2|*DoxIn9TqFpIW*R(MB|;G@ z*flR~uIsg%9a@WMIqI+A1nPXPn8=dQo~8#qy0zqo$jng7aKQqB#kMckp(j(63mhI; zTp8vaN|MCkR?mTL`x(4WrD`{3i!l7}ZH8O9plU?}^ZB_=W_>N3@IMH0u?l;PMyME< zr`0o&W06~C+Lf?f{Wu{{Mz}+_I2Ud(5I=Qrvu56LQ>xBz?s}k^rVos2IgHi zb}nD$*oX7Lt28nB_zea_reU1OVCND-D!46+gpO*~QB&gIX(Z+Oe0A12U(*zeoCD&? z-EB`}>jV4`UTJabUHk~HLn{ccW{2hR9IKKt$wNW1vA%4+w#Dam7yqTAQXNHoiT|`= z4X`IP2f}kWb4^7QQRbD_>UDK@4L0r4nIzNoSxRaJ7y&;wlTmT#=_WTZgLI@uan*Oq z(VqHiUB87#gcT-7<>PO8~*-HVQJd!%<;svA$^O?2W=ziTkLL9PgM?uh$gE2e#7O9OM^ z@_3b5%aKjfZ)PLXYb;{tqf#@QO0e(5d)H~i9ZHMmGmB>i9qs4lEiq$DmFmFc?0!`~ z_MPQNkQF8rduQimiZQVVqoZ~trEv3DVIdgq<=<++PH!apds`Hd^Wv-5lBfc#V?pus^Ocxr38k$2`GLq{&_LRJwNm zs69t$FuUDxms)3>{O4;+h^(Zvhg=?iIxrN9#*k*}{hlE#*suEy{m{o2z>CVjc{X?P z-5GDgOljUr$~AWvn#WK;Epn!*!f^hSfBBbmrWeg==DpfMax~8bo`=F(Ea)Vv07!?DV$WD_k4k zgC>K@!?n34o|5}R{P&EMm>axjdIql$spUoQ#2gjs`!BnA+!Eq7L!NefdW6{i+r~37 zWi?eL>h}pIEo?hoVd@e%J(z_xCfN$cwlX9E;)C4lWxs);Q7?D6b_QJ3KPS{9eh# zwC&Ki!H5oEnao7Q+&%7re;#mrEqC-N#ZUvNnNbjZExf)e)+z2_Fv|= ztor!@G;Z(}ZeujUucT(E8I zpw0pBl=y#q9`#9CuWF#T&sLvmipqC?4t~Sd;w-OtaaYzi(P`T}6bu*7Ow;<`N9vp% z+%h>&A`P9GBx_#r&6+QMHlQ$j7 ziwj9l+}BhSv@ffnaUKmA4%?;s0o1?(+IE+(r8~VhsJY6eh5%CI%|l(z?+4-ROV7s^simSGz}?oDM?qSL7vQ8C=yLvY8*c3k|Yn1_<3*5`e^S7FsnE< z+WHxQG6FVUB?*5x0liLA?0_9j+4=x{@2(OgZ+lHe)8#x%2hGu@4U4Y;u7<|sTEd{& z0dRSFA~ZqeX&{Y~dLuV=#P)@%zCkL zUlw)8LYbad6K~k>hu9DXzNf&87XE>sAh6RbyF_mT$#0zyaoD)=Mdnd6mzGU;-aO;E z&Rsw2(K6y1DTkIDm){O=a(%whV%zwnXZhrm$6_2~ zurD7uv5Vfh(4mpb>OK4y(0w2)Go`NMz(qd|PmZ-64j78Ii!b~cr_JZFO=Mkc=UkEe z^(Ls2CqVS+esbT=5-^B)1Wa^|Zg>v@*4fh7p_#$uXq!)}%J9nc z7qf|6RfSG4*1=&<@hvU->-#6}Jf>qnEio~p-I_-T8j0O8qGI8d`Wj+&iF`N73S{7N zf-<0$96qA`Jj?_qf}3eoj^#wS>Y_Bf41-<6X$*d}1#NLZfxBM+#t-Xh$7Q<;ce~h{ zIxCLUV|DGD1fFg@W4Fd}exPU`x{65&CUr?-&&|q+hb#E8Gl>}HGb%i1twD>7q(0&m zENp(H1?4W~r5TKDG9BQunuk4GwxC1hftcUK=s);MxIe^K7S1r1`N|@^u`4z_M0W@c z_{zi)SEmPW@fFKc{{y~~8umZnD@yU#bN4agx?n6`z-Q^TXQm=J38^}H(`X#QwA%TC z)7~A|i*`%uR65;R-mFn6ZiK0hx%F54kDOV;&b;R-+s0A zuBgZ5&Uafwn}~SBd6e!iUmh>_&otjoFka3cs~o?2O3k~K7N+l)6e(lhFYtnc#734Xul`I)aHDqgw38s;l%#))2!~=t-O+xS)=2w*xu8>+u zSKZXHk@ug|j&h||fc04C5uW=B#qLa1vAhBBmxyjSNb<*KREH%4fc=;VeC_%8`Wpm# zk(BOcZR)Bx!MlyXVR(J#dATKnbXA^Di4}N}{1@;ZYm>_!CPg6WVm~8K5VGa0ThFY+ zsD1OtNb4Vvgpnb=6XQ+0=Q}94m`G|GZ~iF8YW?>9)dDNH!JPTIE<7> zpfkU%!O>aIL8bS;@C7UsPZ@`~?z!M2{gUFAm!+=D-9s$G_@#o}h~CfF9EQ0{vJBuH zj2dB8B_zuhsusa5f*(ZfE-VI3h# z!`P+F7Arg_7TY%AeZ0*S?P%Q7CT`hwrC0hyLwd%Cua}pKHLQa;l%n-Xe~N5cc+SR* z>0sNo$t^(tT-k1f-HrShhH6c~K4_-TyuO_61m}R~G=RWaVW?|XmA+XPe=|Qg^4X93 zf|OaIjt+MaIu%|bcQyS><6eEtjRkpmD!r7LXO{x-Jk$sw|%?2BiohkoZ?`5~c zji-yaS_5#EaVGp89d~g$)jL4LU6zNPYx0y4BcNE?Cg}dj*w;5qt7gr-cR$U&W6b0@ z$vUYmT-S^{mrv3x%iNI?q;xQ^)Bfpcg`rW?f2Cfqop`u6VO(EpWI1v+9BIS%<3s@1 zM66F(=o1{wa0*L9SUg1*&wolU5&N~G7`*Z{go{LE@NWqoUQE*J)`r?~fLdr~mG&J=pAr(tO%ufn0{B zHE`wE5hyp~NMmWEL<~dKhi7NWZK5UD7ubBXnwIt_=ZXn-&D@bl1FT+>T$~r7TU51L zAHn2d4m6}9oLs1c3e5cBbaTU?9ZLMV=v)}N~wt9 z&T?>|K`L_JqVnQlqpxPHvr#Ay|J$5CzXbFK6bo8hZbw!ih{t0ctQcj*`+K47fHzzY zG%Xa%bMUovS8}!3Z#J?uZbsf(8><2dFJjr__^_Zrw`3Z-?E4AQIBC9BN2fY&pdcS6 zZ7z}4?+#rT4b&>+&%i?6!*)Gr)NYxR(n5B`^|PQqY<~;s|I*wjOonXXG-+NNpTJ1@ z^PWjrVFkb)y7Pg>C1XQebO(jLVs?kSV!U+~SDVp)2v+K`^fGz8Nx~$AAk2ce^N}~s z`3ke1QQo#Z7udbjjV=!VWxLApi?I#OuUiogEd;ydCO`fvv_h@bX|vF~(nj7|}- zMq^6U8PW~>V~fA+D$wS=sb1zCH$PtL0+^r8BH}2&ee#dAlA~Ym)X={>S@=30I8y7y@B&dTpSvMG#MVLi$*Qz{SM1eYLv{G zJKEb1I6>FjC9hGTaThs@4qWfPHg3md%1l*khspT(VZM=oyN0M&5Zn6ziA&d23J^P< zV@)w$ZmXZ0tqG+eIs>lQUCb9Bu{wQI%Fw&hNGg5l^OkJ-)`42?hJ;k1x-a3LQ1>Z> zcG}%rMAypI2TiY1fr!kIuq9bVj=6l~n6^(s1c57wAsXL+8oS|N2W zHs^X3IdZPwYY6tc<#Ye&ItLe9AASIhHDg5Uv+BphepVml?R<*F8~c9kd=9R;*yUXe zpU#%}pl|V4WC(bq@6?LL>!id(c#6?@$RX z%|Rf;-O#Ot1j&BEX`vJVD~p-=Q^c#~&H zKlUqF+`?QJ=+XM6Qi=$86a*fj*(cy2MoRebzWI~K1?_{;G-|}9 zGH$ReJPH5~0ednzMW{;FeIA;f6&WUZ0!fev9GXL^_e;I)irso~=BHC=sUl*Yp0H(E z-H*^WyXw^IO?I|(t)TC{g9B84X%Lati&n;<%gbUuQx1(Op#P6C}IwLm)@OO8KvxF-O@t1Ftabh~L3SMg#_ z{Nsur{hK5wzNs8Yvzx2p)&wEJ`c9>6yBZ59z=dVn%0Dj93WrYrwg=WJSwe$ki;at} z4~TTx)oei}!-=Z3sjaVOp+1kHOm)WB9x>QZ0ZDY+du(?2ARsoVe-WFF^#6m{ob?MO zQDkEL3bFa-En-ui0f^1*(EpCuICyR`xa|EWv3dM|AvO%8DOh5beisR|qg!0Dr%4x2 zk@sE&aigk^vkYDN$GNKVB@x4Q&GYR{+P?^nIdqZqzE4;sz@j1}aBuFwG3B%7rhP1@M zZHiH6i+W^p<5fYS^#R%a(hAfg(fv&}0I%}3hre)>N6a<9I+wpVF!SDE+MijH*z)Y0 z=?__Z)ioJqBaWV~+Cr= zf@oW?xIpY6fan(CmlgOB@sQ`#&~i{DRK!Y)#9YVF7{6HCI4opQI`7x|q_ho$iotjr z(Pup#*A}`8uaMC`sv@~YWCk>EMoq-^x7!>_76(9=O8(J5H`Omx6w4-3y$kd?#syO+ z>&OZn=)Z4#imL$XA&E)@ZI#v=*ht7H1r2OxUK{+WzK#sn1q0p#yZbip(RIb%q~%S- zhK^dFl>TLvcMLd~Ki?o26|`VmjPjSvC`!`c@o=lgcdN}ED8Q8Ot+-QV2F*A#F^TmT zfqpfDA3WZCf}t*!^p+WIs0)$oUxNUlL(>?s(Y;IVA8ryv5CV^{V^Ry(HEr;jNJx$U zzDbf!sHp8+sL5*m-}9c_CKy7*yfy53Jd(3Ii1xzja7rlBN~BV42d^0+z(E7u5cA;m zY3V~jcXARu9%4UGZd++~xAfqWMe2tmF8W8sNkI0{_nh^p?n)5NFTAIR)_*5c`$sX}1|9#1zzRCFqW(!$TL!^Xi0(!?>eX0mN+= zI~t7b2$a9>$VEFhE+AI&@FTNc#8Ad1R;?1Gv|Q70okLj#pR|(Bb~Mz+nkeg=2W;H1 zFl?urzZjO+uPqU|IkXKW*K)_mU3v!mp9ASu4p8 zO&6u4B2C3SUCN`Fs68mDA~ESzaf?tJBsNlzQElOO@)`@}Xc ztKbj}<=-NV-eLpbjMA1i)7M-3)qZ*l5!7V?c#}5c$>m4)mA0V10<=#n#>3+)r2VF% zHkcW+!tRm!n5=8SRNU6kC?;7}Q5k{&dH;O|5LKjOLAvqedNR88v9Y}#?$ZY9o5*=s zFRMEtJfy9wQ3+ZSL0*p!p6Pnl&zej=k#JZS?#@*?PBm4I$tGVAun+qm-apB_600ia z2@k9XM^Mz-sCeTSw+DNpR~pig!bQ*5f-=W+sF0QwA?vEXq-S>B(V@4MJSGRjwLe

M#57OT~R5PTfhBS=@$cT5UB13))hIMx3c}Sanvn&zYXf7`EptUHW>GK}1 z?nR39ahc>@%BZHY0sOav)jb7-!>l(6JY-|xA&T)cP;@rJ4oy0#CT0+XZFFfVnd!RJ zK^YduXWxjNnbql5_DH#y)Ai`dTZm960jv-|K-UT#7GH*6{_l8@Vu-t=gPXp*J8a`n z6-;*hLaM3tNhGJtNb}>$;&l^Yy(;XsfT%qKz7Kw??Hmz4lzyqM#9&a>;TIQONVz;E zVD!uPbnV+YnRUiz(*$Gue8@TnN}%$i?a9>g6max%hx$LyT`o)mz zosR-(%D$#RvGLmQ2U5&PO(14nzY04T?KUgrcW^Lb7Zr`mNSN1=vSsr4>a6EMOi=zr z-Z6qsHGInBgY4O5lKtnG+J?(#-2JMU?jVn+S$`L+X<`pCe-EP3) zw+Q&tw9(V}R27>W0B7tH zz+tXEMY)#_ zo>m2Ls4-M-$4vDXBwF{sVhwjz_*R3aiy_p=>^)-BfUoIBGFuH{Ku#>6fMLd1xK8uM zE6weaF1qTHGYnCa!NXwJQbdep_m4?8HhnrNOG-7%n1`HGuQO}*V9K zvX#TG8TS1zrs1n<*wrUXSoR4$J1SA+`+NTQ+zLbbe>gX!vT$*!_hyZ1Z|^1@^kc_8 MkjEO2oc-=U0aH~RzW@LL literal 0 HcmV?d00001 diff --git a/img/gpuScan.PNG b/img/gpuScan.PNG new file mode 100644 index 0000000000000000000000000000000000000000..d0f7620160d45ebb4fd9ac7c120ec0fa8436e9fd GIT binary patch literal 71532 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⁢;mH`koixtvzUW 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 literal 0 HcmV?d00001 diff --git a/img/upSweep.PNG b/img/upSweep.PNG new file mode 100644 index 0000000000000000000000000000000000000000..47d2aa00598c772ef132093e5d7ae5b7e9b7fa66 GIT binary patch literal 36195 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 H;pYDUp$l%y literal 0 HcmV?d00001 diff --git a/src/main.cpp b/src/main.cpp index ad7f5a3..91dd8a2 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -13,176 +13,311 @@ #include #include "testing_helpers.hpp" -const int SIZE = 1 << 22; // feel free to change the size of array -const int NPOT = SIZE - 6; // Non-Power-Of-Two +const int SIZE = 1 << 20; // feel free to change the size of array +const int NPOT = SIZE - 5; // Non-Power-Of-Two int *a = new int[SIZE]; int *b = new int[SIZE]; int *c = new int[SIZE]; + +void runtimeTest(int start, int end, int interval) { + for (int i = start; i <= end; i+= interval) { + int size = 1 << i; + int npot = size - 7; + + int *array1 = new int[size]; + int *array2 = new int[size]; + int *array3 = new int[size]; + + genArray(size - 1, array1, 50); // Leave a 0 at the end to test that edge case + array1[size - 1] = 0; + + printf("---------- array size is 2^%d ----------\n", i); + printf("---------- scan ----------\n"); + + zeroArray(size, array2); + //printf("cpu scan, power-of-two: "); + StreamCompaction::CPU::scan(size, array2, array1); + printElapsedTime(StreamCompaction::CPU::timer().getCpuElapsedTimeForPreviousOperation(), ""); + + zeroArray(size, array3); + //printf("cpu scan, non power-of-two: "); + StreamCompaction::CPU::scan(npot, array2, array1); + printElapsedTime(StreamCompaction::CPU::timer().getCpuElapsedTimeForPreviousOperation(), ""); + + zeroArray(size, array3); + //printf("naive scan, power-of-two"); + StreamCompaction::Naive::scan(size, array3, array1); + printElapsedTime(StreamCompaction::Naive::timer().getGpuElapsedTimeForPreviousOperation(), ""); + + zeroArray(size, array3); + //printf("naive scan, non-power-of-two"); + StreamCompaction::Naive::scan(npot, array3, array1); + printElapsedTime(StreamCompaction::Naive::timer().getGpuElapsedTimeForPreviousOperation(), ""); + + zeroArray(size, array3); + //printf("work-efficient scan, power-of-two, optimized thread number"); + StreamCompaction::Efficient::scan(size, array3, array1); + printElapsedTime(StreamCompaction::Efficient::timer().getGpuElapsedTimeForPreviousOperation(), ""); + + zeroArray(size, array3); + //printf("work-efficient scan, non-power-of-two, optimized thread number"); + StreamCompaction::Efficient::scan(size, array3, array1); + printElapsedTime(StreamCompaction::Efficient::timer().getGpuElapsedTimeForPreviousOperation(), ""); + + zeroArray(size, array3); + //printf("work-efficient scan, power-of-two, unoptimized thread number"); + StreamCompaction::Efficient::scan(size, array3, array1, false); + printElapsedTime(StreamCompaction::Efficient::timer().getGpuElapsedTimeForPreviousOperation(), ""); + + zeroArray(size, array3); + //printf("work-efficient scan, non-power-of-two, unoptimized thread number"); + StreamCompaction::Efficient::scan(npot, array3, array1, false); + printElapsedTime(StreamCompaction::Efficient::timer().getGpuElapsedTimeForPreviousOperation(), ""); + + zeroArray(size, array3); + //printf("thrust scan, power-of-two"); + StreamCompaction::Thrust::scan(size, array3, array1); + printElapsedTime(StreamCompaction::Thrust::timer().getGpuElapsedTimeForPreviousOperation(), ""); + + zeroArray(size, array3); + //printf("thrust scan, non-power-of-two"); + StreamCompaction::Thrust::scan(npot, array3, array1); + printElapsedTime(StreamCompaction::Thrust::timer().getGpuElapsedTimeForPreviousOperation(), ""); + + printf("---------- compact ----------\n"); + + genArray(size - 1, array1, 4); // Leave a 0 at the end to test that edge case + array1[size - 1] = 0; + + zeroArray(size, array2); + //printf("cpu compact without scan, power-of-two"); + StreamCompaction::CPU::compactWithoutScan(size, array2, array1); + printElapsedTime(StreamCompaction::CPU::timer().getCpuElapsedTimeForPreviousOperation(), ""); + + zeroArray(size, array3); + //printf("cpu compact without scan, non-power-of-two"); + StreamCompaction::CPU::compactWithoutScan(npot, array3, array1); + printElapsedTime(StreamCompaction::CPU::timer().getCpuElapsedTimeForPreviousOperation(), ""); + + zeroArray(size, array3); + //printf("cpu compact with scan, power of two"); + StreamCompaction::CPU::compactWithScan(size, array3, array1); + printElapsedTime(StreamCompaction::CPU::timer().getCpuElapsedTimeForPreviousOperation(), ""); + + zeroArray(size, array3); + //printf("cpu compact with scan, non-power of two"); + StreamCompaction::CPU::compactWithScan(npot, array3, array1); + printElapsedTime(StreamCompaction::CPU::timer().getCpuElapsedTimeForPreviousOperation(), ""); + + zeroArray(size, array3); + //printf("cpu compact with scan, power of two, optimized"); + StreamCompaction::CPU::compactWithScanOnePass(size, array3, array1); + printElapsedTime(StreamCompaction::CPU::timer().getCpuElapsedTimeForPreviousOperation(), ""); + + zeroArray(size, array3); + //printf("cpu compact with scan, non-power of two, optimized"); + StreamCompaction::CPU::compactWithScanOnePass(npot, array3, array1); + printElapsedTime(StreamCompaction::CPU::timer().getCpuElapsedTimeForPreviousOperation(), ""); + + zeroArray(size, array3); + //printf("work-efficient compact, power-of-two, optimized thread number"); + StreamCompaction::Efficient::compact(size, array3, array1); + printElapsedTime(StreamCompaction::Efficient::timer().getGpuElapsedTimeForPreviousOperation(), ""); + + zeroArray(size, array3); + //printf("work-efficient compact, non-power-of-two, otimized thread number"); + StreamCompaction::Efficient::compact(npot, array3, array1); + printElapsedTime(StreamCompaction::Efficient::timer().getGpuElapsedTimeForPreviousOperation(), ""); + + zeroArray(size, array3); + //printf("work-efficient compact, power-of-two, , unoptimized thread number"); + StreamCompaction::Efficient::compact(size, array3, array1, false); + printElapsedTime(StreamCompaction::Efficient::timer().getGpuElapsedTimeForPreviousOperation(), ""); + + zeroArray(size, array3); + //printf("work-efficient compact, non-power-of-two, unoptimized thread number"); + StreamCompaction::Efficient::compact(npot, array3, array1, false); + printElapsedTime(StreamCompaction::Efficient::timer().getGpuElapsedTimeForPreviousOperation(), ""); + + printf("\n\n\n"); + + delete[] array1; + delete[] array2; + delete[] array3; + } + system("pause"); // stop Win32 console from closing on exit +} + + int main(int argc, char* argv[]) { + //runtimeTest(6, 22, 2); + // Scan tests - printf("\n"); - printf("****************\n"); - 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; - printArray(SIZE, a, true); - - // initialize b using StreamCompaction::CPU::scan you implement - // We use b for further comparison. Make sure your StreamCompaction::CPU::scan is correct. - // At first all cases passed because b && c are all zeroes. - zeroArray(SIZE, b); - printDesc("cpu scan, power-of-two"); - StreamCompaction::CPU::scan(SIZE, b, a); - printElapsedTime(StreamCompaction::CPU::timer().getCpuElapsedTimeForPreviousOperation(), "(std::chrono Measured)"); - printArray(SIZE, b, true); - - zeroArray(SIZE, c); - printDesc("cpu scan, non-power-of-two"); - StreamCompaction::CPU::scan(NPOT, c, a); - printElapsedTime(StreamCompaction::CPU::timer().getCpuElapsedTimeForPreviousOperation(), "(std::chrono Measured)"); - printArray(NPOT, b, true); - printCmpResult(NPOT, b, c); - - zeroArray(SIZE, c); - printDesc("naive scan, power-of-two"); - StreamCompaction::Naive::scan(SIZE, c, a); - printElapsedTime(StreamCompaction::Naive::timer().getGpuElapsedTimeForPreviousOperation(), "(CUDA Measured)"); - printArray(SIZE, c, true); - printCmpResult(SIZE, b, c); - - // 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); */ - - 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); - printCmpResult(NPOT, b, c); - - zeroArray(SIZE, c); - printDesc("work-efficient scan, power-of-two, optimized thread number"); - StreamCompaction::Efficient::scan(SIZE, c, a); - printElapsedTime(StreamCompaction::Efficient::timer().getGpuElapsedTimeForPreviousOperation(), "(CUDA Measured)"); - printArray(SIZE, c, true); - printCmpResult(SIZE, b, c); - - zeroArray(SIZE, c); - printDesc("work-efficient scan, non-power-of-two, optimized thread number"); - StreamCompaction::Efficient::scan(NPOT, c, a); - printElapsedTime(StreamCompaction::Efficient::timer().getGpuElapsedTimeForPreviousOperation(), "(CUDA Measured)"); - printArray(NPOT, c, true); - printCmpResult(NPOT, b, c); - - zeroArray(SIZE, c); - printDesc("work-efficient scan, power-of-two, unoptimized thread number"); - StreamCompaction::Efficient::scan(SIZE, c, a, false); - printElapsedTime(StreamCompaction::Efficient::timer().getGpuElapsedTimeForPreviousOperation(), "(CUDA Measured)"); - printArray(SIZE, c, true); - printCmpResult(SIZE, b, c); - - zeroArray(SIZE, c); - printDesc("work-efficient scan, non-power-of-two, unoptimized thread number"); - StreamCompaction::Efficient::scan(NPOT, c, a, false); - 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); - 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); - printCmpResult(NPOT, b, c); - - printf("\n"); - printf("*****************************\n"); - printf("** STREAM COMPACTION TESTS **\n"); - printf("*****************************\n"); - - // Compaction tests - - genArray(SIZE - 1, 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; - - // initialize b using StreamCompaction::CPU::compactWithoutScan you implement - // We use b for further comparison. Make sure your StreamCompaction::CPU::compactWithoutScan is correct. - zeroArray(SIZE, b); - printDesc("cpu compact without scan, power-of-two"); - count = StreamCompaction::CPU::compactWithoutScan(SIZE, b, a); - printElapsedTime(StreamCompaction::CPU::timer().getCpuElapsedTimeForPreviousOperation(), "(std::chrono Measured)"); - expectedCount = count; - printArray(count, b, true); - printCmpLenResult(count, expectedCount, b, b); - - zeroArray(SIZE, c); - printDesc("cpu compact without scan, non-power-of-two"); - count = StreamCompaction::CPU::compactWithoutScan(NPOT, c, a); - printElapsedTime(StreamCompaction::CPU::timer().getCpuElapsedTimeForPreviousOperation(), "(std::chrono Measured)"); - expectedNPOT = count; - printArray(count, c, true); - printCmpLenResult(count, expectedNPOT, b, c); - - zeroArray(SIZE, c); - printDesc("cpu compact with scan"); - count = StreamCompaction::CPU::compactWithScan(SIZE, c, a); - printElapsedTime(StreamCompaction::CPU::timer().getCpuElapsedTimeForPreviousOperation(), "(std::chrono Measured)"); - printArray(count, c, true); - printCmpLenResult(count, expectedCount, b, c); - - zeroArray(SIZE, c); - printDesc("cpu compact with scan and scatter in single loop"); - count = StreamCompaction::CPU::compactWithScanOnePass(SIZE, c, a); - printElapsedTime(StreamCompaction::CPU::timer().getCpuElapsedTimeForPreviousOperation(), "(std::chrono Measured)"); - printArray(count, c, true); - printCmpLenResult(count, expectedCount, b, c); - - zeroArray(SIZE, c); - printDesc("work-efficient compact, power-of-two, optimized thread number"); - count = StreamCompaction::Efficient::compact(SIZE, c, a); - printElapsedTime(StreamCompaction::Efficient::timer().getGpuElapsedTimeForPreviousOperation(), "(CUDA Measured)"); - printArray(count, c, true); - printCmpLenResult(count, expectedCount, b, c); - - zeroArray(SIZE, c); - printDesc("work-efficient compact, non-power-of-two, otimized thread number"); - count = StreamCompaction::Efficient::compact(NPOT, c, a); - printElapsedTime(StreamCompaction::Efficient::timer().getGpuElapsedTimeForPreviousOperation(), "(CUDA Measured)"); - printArray(count, c, true); - printCmpLenResult(count, expectedNPOT, b, c); - - zeroArray(SIZE, c); - printDesc("work-efficient compact, power-of-two, , unoptimized thread number"); - count = StreamCompaction::Efficient::compact(SIZE, c, a, false); - printElapsedTime(StreamCompaction::Efficient::timer().getGpuElapsedTimeForPreviousOperation(), "(CUDA Measured)"); - printArray(count, c, true); - printCmpLenResult(count, expectedCount, b, c); - - zeroArray(SIZE, c); - printDesc("work-efficient compact, non-power-of-two, unoptimized thread number"); - count = StreamCompaction::Efficient::compact(NPOT, c, a, false); - 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 - delete[] a; - delete[] b; - delete[] c; + { + printf("\n"); + printf("****************\n"); + 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; + printArray(SIZE, a, true); + + // initialize b using StreamCompaction::CPU::scan you implement + // We use b for further comparison. Make sure your StreamCompaction::CPU::scan is correct. + // At first all cases passed because b && c are all zeroes. + zeroArray(SIZE, b); + printDesc("cpu scan, power-of-two"); + StreamCompaction::CPU::scan(SIZE, b, a); + printElapsedTime(StreamCompaction::CPU::timer().getCpuElapsedTimeForPreviousOperation(), "(std::chrono Measured)"); + //printArray(SIZE, b, true); + + zeroArray(SIZE, c); + printDesc("cpu scan, non-power-of-two"); + StreamCompaction::CPU::scan(NPOT, c, a); + printElapsedTime(StreamCompaction::CPU::timer().getCpuElapsedTimeForPreviousOperation(), "(std::chrono Measured)"); + //printArray(NPOT, b, true); + printCmpResult(NPOT, b, c); + + zeroArray(SIZE, c); + printDesc("naive scan, power-of-two"); + StreamCompaction::Naive::scan(SIZE, c, a); + printElapsedTime(StreamCompaction::Naive::timer().getGpuElapsedTimeForPreviousOperation(), "(CUDA Measured)"); + //printArray(SIZE, c, true); + printCmpResult(SIZE, b, c); + + // 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); */ + + 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); + printCmpResult(NPOT, b, c); + + zeroArray(SIZE, c); + printDesc("work-efficient scan, power-of-two, optimized thread number"); + StreamCompaction::Efficient::scan(SIZE, c, a); + printElapsedTime(StreamCompaction::Efficient::timer().getGpuElapsedTimeForPreviousOperation(), "(CUDA Measured)"); + //printArray(SIZE, c, true); + printCmpResult(SIZE, b, c); + + zeroArray(SIZE, c); + printDesc("work-efficient scan, non-power-of-two, optimized thread number"); + StreamCompaction::Efficient::scan(NPOT, c, a); + printElapsedTime(StreamCompaction::Efficient::timer().getGpuElapsedTimeForPreviousOperation(), "(CUDA Measured)"); + //printArray(NPOT, c, true); + printCmpResult(NPOT, b, c); + + zeroArray(SIZE, c); + printDesc("work-efficient scan, power-of-two, unoptimized thread number"); + StreamCompaction::Efficient::scan(SIZE, c, a, false); + printElapsedTime(StreamCompaction::Efficient::timer().getGpuElapsedTimeForPreviousOperation(), "(CUDA Measured)"); + //printArray(SIZE, c, true); + printCmpResult(SIZE, b, c); + + zeroArray(SIZE, c); + printDesc("work-efficient scan, non-power-of-two, unoptimized thread number"); + StreamCompaction::Efficient::scan(NPOT, c, a, false); + 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); + 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); + printCmpResult(NPOT, b, c); + + printf("\n"); + printf("*****************************\n"); + printf("** STREAM COMPACTION TESTS **\n"); + printf("*****************************\n"); + + // Compaction tests + + genArray(SIZE - 1, 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; + + // initialize b using StreamCompaction::CPU::compactWithoutScan you implement + // We use b for further comparison. Make sure your StreamCompaction::CPU::compactWithoutScan is correct. + zeroArray(SIZE, b); + printDesc("cpu compact without scan, power-of-two"); + count = StreamCompaction::CPU::compactWithoutScan(SIZE, b, a); + printElapsedTime(StreamCompaction::CPU::timer().getCpuElapsedTimeForPreviousOperation(), "(std::chrono Measured)"); + expectedCount = count; + //printArray(count, b, true); + printCmpLenResult(count, expectedCount, b, b); + + zeroArray(SIZE, c); + printDesc("cpu compact without scan, non-power-of-two"); + count = StreamCompaction::CPU::compactWithoutScan(NPOT, c, a); + printElapsedTime(StreamCompaction::CPU::timer().getCpuElapsedTimeForPreviousOperation(), "(std::chrono Measured)"); + expectedNPOT = count; + //printArray(count, c, true); + printCmpLenResult(count, expectedNPOT, b, c); + + zeroArray(SIZE, c); + printDesc("cpu compact with scan"); + count = StreamCompaction::CPU::compactWithScan(SIZE, c, a); + printElapsedTime(StreamCompaction::CPU::timer().getCpuElapsedTimeForPreviousOperation(), "(std::chrono Measured)"); + //printArray(count, c, true); + printCmpLenResult(count, expectedCount, b, c); + + zeroArray(SIZE, c); + printDesc("cpu compact with scan and scatter in single loop"); + count = StreamCompaction::CPU::compactWithScanOnePass(SIZE, c, a); + printElapsedTime(StreamCompaction::CPU::timer().getCpuElapsedTimeForPreviousOperation(), "(std::chrono Measured)"); + //printArray(count, c, true); + printCmpLenResult(count, expectedCount, b, c); + + zeroArray(SIZE, c); + printDesc("work-efficient compact, power-of-two, optimized thread number"); + count = StreamCompaction::Efficient::compact(SIZE, c, a); + printElapsedTime(StreamCompaction::Efficient::timer().getGpuElapsedTimeForPreviousOperation(), "(CUDA Measured)"); + //printArray(count, c, true); + printCmpLenResult(count, expectedCount, b, c); + + zeroArray(SIZE, c); + printDesc("work-efficient compact, non-power-of-two, otimized thread number"); + count = StreamCompaction::Efficient::compact(NPOT, c, a); + printElapsedTime(StreamCompaction::Efficient::timer().getGpuElapsedTimeForPreviousOperation(), "(CUDA Measured)"); + //printArray(count, c, true); + printCmpLenResult(count, expectedNPOT, b, c); + + zeroArray(SIZE, c); + printDesc("work-efficient compact, power-of-two, , unoptimized thread number"); + count = StreamCompaction::Efficient::compact(SIZE, c, a, false); + printElapsedTime(StreamCompaction::Efficient::timer().getGpuElapsedTimeForPreviousOperation(), "(CUDA Measured)"); + //printArray(count, c, true); + printCmpLenResult(count, expectedCount, b, c); + + zeroArray(SIZE, c); + printDesc("work-efficient compact, non-power-of-two, unoptimized thread number"); + count = StreamCompaction::Efficient::compact(NPOT, c, a, false); + 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 + delete[] a; + delete[] b; + delete[] c; + } }