From 3076691b8ec7ecca8dca1a2a38a910141f2fb82e Mon Sep 17 00:00:00 2001 From: Abishek <52214183+r-abishek@users.noreply.github.com> Date: Wed, 8 May 2024 14:29:38 -0700 Subject: [PATCH] RPP Tensor Audio Support - Slice (#325) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * License - updates to 2024 and consistency changes (#298) * Match all CMakeLists.txt license as per RPP's outermost LICENSE file * Match all python files' license as per RPP's outermost LICENSE file * Match all .hpp files' license as per RPP's outermost LICENSE file * Match all .cpp files' license as per RPP's outermost LICENSE file * Match all .h files' license as per RPP's outermost LICENSE file * Remove all rights reserved as per LICENSE file * Remove double space in "Copyright (c) 2019 - 2023 Advanced Micro Devices, Inc." * Match all .cmake files' license as per RPP's outermost LICENSE file * Match all .cpp.in files' license as per RPP's outermost LICENSE file * Replace 283 occurrences in 282 files - 2023 to 2024 * Add "MIT License" title to 281 instances * Add missing license * Test - Update README.md for test_suite (#299) * Bump rocm-docs-core[api_reference] from 0.33.0 to 0.33.1 in /docs/sphinx (#301) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.33.0 to 0.33.1. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/ROCm/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.33.0...v0.33.1) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump rocm-docs-core[api_reference] from 0.33.1 to 0.33.2 in /docs/sphinx (#302) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.33.1 to 0.33.2. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/ROCm/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.33.1...v0.33.2) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Update doc codeowners (#303) * Documentation - Bump rocm-docs-core[api_reference] from 0.33.2 to 0.34.0 in /docs/sphinx (#304) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.33.2 to 0.34.0. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/ROCm/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.33.2...v0.34.0) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Test suite - upgrade 5 qa perf (#305) * experimental changes for adding qa mode for performance tests * made changes to add display more information w.r.t QA results summary for performance tests * minor changes * Add changes to dump qa results to excel file * Add performance QA for three new tensor functions * update prerequisites in readme * added changes to handle unsupported cases * removed treshold dictionary and added performance Noise treshold add new dataset for performance QA * RPP Test Suite Upgrade 4 - CSV to BIN conversions for file size reduction (#293) * change golden outputs from .csv files to .bin files * Changed comparision funtions to use .bin files * Address review comments * minor change * Address review comments * minor change --------- Co-authored-by: HazarathKumarM * Changes to the performane summary dataframe * minor changes * Update CMakeLists.txt to add ${CMAKE_CURRENT_SOURCE_DIR} for CI * Update CMakeLists.txt fix * Update CMakeLists.txt fix * remove tabulate dependency * Update README.md to remove tabulate pip install * Fix for CI machine failure * Add note on performance --------- Co-authored-by: sampath1117 Co-authored-by: HazarathKumarM Co-authored-by: Abishek <52214183+r-abishek@users.noreply.github.com> Co-authored-by: Snehaa Giridharan Co-authored-by: r-abishek * RPP Color Temperature on HOST and HIP (#271) * Initial commit - Color Temperature HOST Tensor * Initial commit - Color Temperature HIP Tensor * Add color temperature golden outputs * address review comments * Use reinterpret_cast instead of static_cast * Combine templated functions to support all datatypes into one (got minor perf difference of order 3%) Also fixes indentation * Fix i8 datatype * Cleanup * RPP Test Suite Upgrade 4 - CSV to BIN conversions for file size reduction (#293) * change golden outputs from .csv files to .bin files * Changed comparision funtions to use .bin files * Address review comments * minor change * Address review comments * minor change --------- Co-authored-by: HazarathKumarM * Fix PLN3 variant outputs Also modifies reference outputs * Update color_temperature.hpp license * Delete color_temperature_u8_Tensor_PKD3.csv * Delete color_temperature_u8_Tensor_PLN3.csv --------- Co-authored-by: snehaa8 Co-authored-by: HazarathKumarM Co-authored-by: Snehaa-Giridharan <118163708+snehaa8@users.noreply.github.com> * RPP Voxel 3D Tensor Add/Subtract scalar on HOST and HIP (#272) * added HOST support for voxel add kernel * added HIP support for voxel add kernel * added test suite support for add scalar * added Doxygen support and modified hip kernel function names as per new standard * added HOST support for voxel subtract kernel * added HIP support for voxel subtract kernel * added test suite support * updated the golden outputs for subtract with correct values * removed unnessary validation checks * Remove double spaces * Fix header * Fix all retval docs * Fix docs to add memory type * Fix comment * Add divider comment * Use post-increment efficiently * RPP Test Suite Upgrade 4 - CSV to BIN conversions for file size reduction (#293) * change golden outputs from .csv files to .bin files * Changed comparision funtions to use .bin files * Address review comments * minor change * Address review comments * minor change --------- Co-authored-by: HazarathKumarM * converted add and subtract scalar golden outputs to bin files * changed copyright from 2023 to 2024 * Update add_scalar.hpp license * Update subtract_scalar.hpp license --------- Co-authored-by: sampath1117 Co-authored-by: HazarathKumarM * RPP Magnitude on HOST and HIP (#278) * Initial commit - Magnitude HOST Tensor * Add QA reference outputs * Update runTests.py * Initial commit - Magnitude HIP Tensor * Add dual input support in testsuite * Optimize HOST kernel further * Optimize i8 datatype further * Modify comments * RPP Test Suite Upgrade 4 - CSV to BIN conversions for file size reduction (#293) * change golden outputs from .csv files to .bin files * Changed comparision funtions to use .bin files * Address review comments * minor change * Address review comments * minor change --------- Co-authored-by: HazarathKumarM * Bump rocm-docs-core[api_reference] from 0.31.0 to 0.33.0 in /docs/sphinx (#294) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.31.0 to 0.33.0. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/ROCm/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.31.0...v0.33.0) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Update Copywright year * Combine templated functions to support all datatypes * Modify format of reference outputs * Update rppi_arithmetic_operations.h license * Update rppt_tensor_arithmetic_operations.h license * Update host_tensor_arithmetic_operations.hpp * Update magnitude.hpp license * Update hip_tensor_arithmetic_operations.hpp license * Delete magnitude_u8_Tensor_PKD3.csv * Delete magnitude_u8_Tensor_PLN1.csv * Delete magnitude_u8_Tensor_PLN3.csv * Update rpp_test_suite_common.h license * Update runTests.py license * Update Tensor_hip.cpp license * Update runTests.py license * Update Tensor_host.cpp license --------- Signed-off-by: dependabot[bot] Co-authored-by: Snehaa Giridharan Co-authored-by: HazarathKumarM Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Snehaa-Giridharan <118163708+snehaa8@users.noreply.github.com> * Bump rocm-docs-core[api_reference] from 0.34.0 to 0.34.2 in /docs/sphinx (#309) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.34.0 to 0.34.2. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/ROCm/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.34.0...v0.34.2) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * RPP Tensor Audio Support - Down Mixing (#296) * Initial commit - Non slient region detection Includes unittest setup * Initial commit - To Decibels Includes unittest setup * Intial commit - pre_emphasis_filter * Intial commit - down_mixing * Replace vectors with arrays * Cleanup * Minor cleanup * Optimize downmixing Kernel Includes cleanup * Replace Rpp64s with Rpp32s * Cleanup * Optimize and precompute cutOff * Fix buffer used * Fix buffer used * Additional Cleanup * Optimize post incrmeent operation * Optimize post increment operation * Update testsuite for Audio * code cleanup * Add Readme file for Audio test suite * changes based on review comments * minor change * Remove unittest folders and updated README.md * Remove unit tests * minor change * code cleanup * added common header file for audio helper functions * removed unncessary audio wav files fixed bug in ROI updation for audio test suite resolved issue in summary generation for performance tests in python * removed log file * added doxygen support for audio * added doxygen changes for to_decibels * updated test suite support for to_decibels * minor change * added doxygen changes for preemphasis filter * updated changes for preemphasis filter in test suite * removed the usage of getMax function and used std::max_element * modularized code in test suite * merge with latest changes * minor change * minor change * minor change * resolved codacy warnings * Codacy fix - Remove unused cpuTime * CMakeLists - Version Update 1.5.0 - TOT Version * CHANGELOG Updates Version 1.5.0 placeholder * resolved issue with file_system dependency in test suite * Doxygen changes changed malloc to new in NSR kernel * RPP RICAP Tensor for HOST and HIP (#213) * Initial commit - Ricap HOST Tensor Includes testsuite changes * Add QA tests for RICAP Used three_images_224x224_src1 folder to create golden outputs * Add three_images_224x224_src1 into TEST_IMAGES * Support HIP Backend for RICAP * Fix HIP pkd3->pkd3 variant * regenerated golden outputs for RICAP minor changes in HOST shell script for handling RICAP in QA mode * minor bug fix in RICAP HIP kernels * Improve readability and Cleanup * Additional cleanup * Cleanup testsuite Includes new golden outputs * Additional testuite fixes * Minor cleanup * Fix codacy warnings * Address other codacy warnings * Update ricap.hpp with reference paper * Add RICAP dataset path in readme * Make changes to error codes returned * Modify roi crop region for unit and perf tests * RPP Tensor Water Augmentation on HOST and HIP (#181) * added water HOST and HIP codes * added water case in test suite * added golden outputs for water * added omp thread changes for water augmentation * experimental changes * fixed output issue with AVX2 instructions * added AVX2 support for PKD3 load function minor changes in PLN variant load functions * nwc commit - added avx2 changes for u8 layout toggle variants but need to add store functions for completion * Add Avx2 implementation for F32 and U8 toggle variants * Add AVX2 support for u8 pkd3-pln3 and i8 pkd3-pln3 for water augmentation * change F32 load and store logic * optimized the store function for F32 PLN3-PKD3 * reverted back irrelevant changes * minor change * optimized load and store functions for water U8 and F32 variants in host removed commented code * removed golden outputs for water * minor changes * renamed few functions and removed unused functions updated i8 pln1 load as per the optimized u8 pln1 load * fixed bug in i8 load function * changed cast to c++ style resolved spacing issues and added comments for AVX codes for better understanding made changes to handle cases where QA Tests are not supported * added golden outputs for water * updated golden outputs with latest changes * modified the u8, i8 pkd3-pln3 function and added comments for the vectorized code * fixed minor bug in I8 variants * made to changes to resolve codacy warnings * changed cast to c++ style in hip kernel * changed generic nn F32 loads using gather and setr instructions * added comments for latest changes * minor change * added definition for storing 32 and 64 bits from a 128bit register --------- Co-authored-by: sampath1117 Co-authored-by: HazarathKumarM * Fix build error * CMakeLists - Version Update 1.5.0 - TOT Version * CHANGELOG Updates Version 1.5.0 placeholder * Boost deps fix for test suite --------- Co-authored-by: Snehaa Giridharan Co-authored-by: sampath1117 Co-authored-by: Snehaa-Giridharan <118163708+snehaa8@users.noreply.github.com> Co-authored-by: HazarathKumarM Co-authored-by: Kiriti Gowda * Documentation - Readme & changelog updates (#251) * readme and changelog updates for 6.0 * minor update * added ctests for audio test suite for CI made changes to add more clarity on the QA Tests results * Cmake mods for ctest * HOST-only build error bugfix * added qa mode paramter to python audio script added golden output map for QA testing of Non silent region detection * minor change * Documentation - Bump rocm-docs-core[api_reference] from 0.26.0 to 0.27.0 in /docs/sphinx (#253) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.26.0 to 0.27.0. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/RadeonOpenCompute/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.26.0...v0.27.0) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * RPP Resize Mirror Normalize Bugfix (#252) * added fix for hipMemset * remove pixel check for U8-F32 and U8-F16 for HOST codes --------- Co-authored-by: sampath1117 * added example for MMS calculation in comments for better understanding * Sphinx - updates (#257) * Sphinx - updates * Doxygen - Updates * Docs - Remove index.md * updated info used to for running audio test suite * removed bitdepth variable from audio test suite * added more information on computing NSR outputs in the example added * Fix doxygen for decibels Also removes extra QA reference files * move tensor_host_audio.cpp to host folder * Fix build errors and qa tests in Audio Test suite * Fix build errors and qa tests in Audio Test suite * Add reference output and test samples for downmix * Add down_mix in augmentation list and supported cases * Remove auto-merge repeated funcs * Improve clarity of header docs * Remove blank line * Improve clarity on header docs * Add Doxygen comments * minor change * converted golden outputs to binary file for downmixing * removed old golden output file for preemphasis and todecibels * modified info for downmixing as per new changes used handle memory for temporary buffers * formatting changes * moved the common code for SSE and AVX to outside * Update down_mixing.hpp license * Update rppt_tensor_audio_augmentations.h * combined the srcLength and channels tensors into single tensor --------- Signed-off-by: dependabot[bot] Co-authored-by: Snehaa Giridharan Co-authored-by: HazarathKumarM Co-authored-by: sampath1117 Co-authored-by: Kiriti Gowda Co-authored-by: Snehaa-Giridharan <118163708+snehaa8@users.noreply.github.com> Co-authored-by: Lisa Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Sundarrajan98 * RPP Voxel 3D Tensor Multiply scalar on HOST and HIP (#306) * added HIP support for voxel scalar multiply kernel * added HOST support for voxel multiply kernel added golden outputs for voxel multiply kernel * merge with master * RPP Test Suite Upgrade 4 - CSV to BIN conversions for file size reduction (#293) * change golden outputs from .csv files to .bin files * Changed comparision funtions to use .bin files * Address review comments * minor change * Address review comments * minor change --------- Co-authored-by: HazarathKumarM * converted multiply scalar voxel golden outputs to bin files * changed copyright from 2023 to 2024 --------- Co-authored-by: sampath1117 Co-authored-by: HazarathKumarM * Test Suite Bugfix (#307) * experimental changes for adding qa mode for performance tests * made changes to add display more information w.r.t QA results summary for performance tests * minor changes * Add changes to dump qa results to excel file * Add performance QA for three new tensor functions * update prerequisites in readme * added changes to handle unsupported cases * removed treshold dictionary and added performance Noise treshold add new dataset for performance QA * RPP Test Suite Upgrade 4 - CSV to BIN conversions for file size reduction (#293) * change golden outputs from .csv files to .bin files * Changed comparision funtions to use .bin files * Address review comments * minor change * Address review comments * minor change --------- Co-authored-by: HazarathKumarM * Changes to the performane summary dataframe * minor changes * Update CMakeLists.txt to add ${CMAKE_CURRENT_SOURCE_DIR} for CI * Update CMakeLists.txt fix * Update CMakeLists.txt fix * remove tabulate dependency * Update README.md to remove tabulate pip install * Fix for CI machine failure * Add note on performance * Fix segmentation fault * Revert QAmode to restrict HIP bitdepths * Use Rpp64u for HOST while comparing outputs * Fix ambiguous abs call * Fix for SLES CI HIP fail - error: incompatible pointer types assigning to 'unsigned long *' from 'unsigned long long *' - refOutput = TensorSumReferenceOutputs[numChannels].data(); --------- Co-authored-by: sampath1117 Co-authored-by: HazarathKumarM Co-authored-by: Snehaa Giridharan Co-authored-by: Pavel Tcherniaev * Bump rocm-docs-core[api_reference] from 0.34.2 to 0.35.0 in /docs/sphinx (#313) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.34.2 to 0.35.0. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/ROCm/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.34.2...v0.35.0) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * RPP Reduction - Tensor min and Tensor max on HOST and HIP (#260) * Minor Change * Add Validation check for DST_FOLDER path * added water HOST and HIP codes * added water case in test suite * added golden outputs for water * Add Validation checks for all options in testAllScript.sh * Add sanity check for dual Input cases Set Max Dimension and Max Image Dump Replaced Fast DCT tag with Accurate DCT * Regenerate golden outputs using accurate dct Flag Add golden outputs for some new augmentations * Fix Flip golden outputs mismatch Fix PLN3 variants mismatch in QA mode * Add MAX_BATCH_SIZE check removed Augmentations function calls for failing Qa modes code cleanup * Add crop and gamma correction augmentations code cleanup * Add comments to functions in rpp_test_suite_common.h * minor change * code cleanup * minor code changes * Change roi and Image sizes for crop augmentation * Change numIterations option to numRuns Addressed PR comments * added omp thread changes for water augmentation * experimental changes * fixed output issue with AVX2 instructions * added AVX2 support for PKD3 load function minor changes in PLN variant load functions * Add turboJpeg header to update maxHeight and maxWidth values * nwc commit - added avx2 changes for u8 layout toggle variants but need to add store functions for completion * Change the performance Timings logic * Add Avx2 implementation for F32 and U8 toggle variants * minor change to support u8_f16 and u8_f32 cases * Regenerate LUT golden outputs with ACCURATE_DCT tag * Minor code changes * Add AVX2 support for u8 pkd3-pln3 and i8 pkd3-pln3 for water augmentation * Made changes to the runTests.py in Host to remove testAllScipts.sh * Made changes to the runTests.py in HIP to remove testAllScipts.sh * Initial commit - Image min and max Reduction kernel Includes * u8 datatype for both min and max HOST Tensor of all variants. * Testsuite changes. * NWC -initial code for min max PLN3 - PLN3 * made changes to split min and max kernels seperately * splitted kernels for min and max * made changes to print final max/min in the R,G,B channels * fixed inaccuracies in min/max computation * made changes to typecast intermediate output to output requested by user added comments for the code code cleanup and minor changes in test suite * fixed build issues removed image folders used for min, max and sum reverted unwanted file changes * minor changes in test suite * removed support for unwanted test case in Tensor_hip.cpp * Adds new option roi * remove testAllScripts.sh * Adds roi Option in HIP backend * Implement f32 variants * Implement f16 and i8 datatype variants * change F32 load and store logic * Add build flags in CMakeLists.txt to set AVX/SSE flags based on the system configuration * minor code changes * Initial commit - Image sum Reduction kernel Includes u8 PLN1 -> PLN1 conversion for HOST Tensor * Implement PKD3 and PLN3 for Image sum Tensor HOST * Support i8, f16 and f32 datatypes * Initial commit - Image sum Reduction HIP kernel Includes u8 PLN1 -> PLN1 conversion for Tensor * Implement PKD3 and PLN3 for Image sum Tensor HIP * Add support in testsuite Revert normalization for i8 HOST Tensor variants * Fix HIP testsuite Remove additional blanks for 1 channel output * Modify print statement in HIP testsuite * Improve readability for testsuite outputs * optimized the store function for F32 PLN3-PKD3 * reverted back irrelevant changes * minor change * Fix HIP to support larger inputs * optimized load and store functions for water U8 and F32 variants in host removed commented code * Cleanup * removed golden outputs for water * minor changes * Cleanup Support Reduction QA test in testsuite * renamed few functions and removed unused functions updated i8 pln1 load as per the optimized u8 pln1 load * fixed bug in i8 load function * Remove unused variables and C style casting * changed cast to c++ style resolved spacing issues and added comments for AVX codes for better understanding made changes to handle cases where QA Tests are not supported * added golden outputs for water * updated golden outputs with latest changes * modified the u8, i8 pkd3-pln3 function and added comments for the vectorized code * fixed minor bug in I8 variants * Optimize u8 datatype further * Fix static_cast * made to changes to resolve codacy warnings * changed cast to c++ style in hip kernel * Initial commit - Ricap HOST Tensor Includes testsuite changes * Add QA tests for RICAP Used three_images_224x224_src1 folder to create golden outputs * Add three_images_224x224_src1 into TEST_IMAGES * added rotate case with golden outputs changed generic bilinear HOST codes to match with HIP codes * Add golden output for remaining all tensor augmentations * fix python script issues * Optimize u8 and i8 datatype Uses uint and int internal processing instead of float * Fix testsuite build errors * minor change * Fix QA check * Modify api naming from image_sum to tensor_sum Includes changes for both HOST and HIP * Support HIP Backend for RICAP * change rcm and rmn golden outputs * Fix HIP pkd3->pkd3 variant * changes based on review comments * change test_suite folder to tests * Optimize u8 and i8 datatype of HIP Includes modification in naming of shared memory * minor fix * changed generic nn F32 loads using gather and setr instructions * Optimize and cleanup U8 HIP * regenerated golden outputs for RICAP minor changes in HOST shell script for handling RICAP in QA mode * minor bug fix in RICAP HIP kernels * Fix i8 datatype variants Includes cleanup * Fix the issues with color_to_greyscale * remove the empty folder creation * reverting back the folder name change * minor change * added comments for latest changes * minor change * Improve readability and Cleanup * Fix QA for HIP Includes cleanup * resolved review comments * minor change * Modify api naming from image_ to tensor_ for HOST * Add support for QA tests * removed range check for RMN U8-F32 and U8-F16 variants changed from hipMemset to hipMemsetAsync for RMN HIP Kernel removed multiplication by 255 for stdDev in RMN HOST U8-F16 and U8-F32 variants * Modify naming of shared memory with _smem in HIP Includes cleanup * Typecast and reuse markArr for HIP U8 and I8 * Cleanup and minor optimization * minor fix * fix codacy warnings * Additional cleanup * Cleanup and move #define * Changed the complexity of if statements in runTests.py * Cleanup testsuite Includes new golden outputs * Additional testuite fixes * Minor cleanup * Codacy fixes * Fix codacy warnings * Codacy fix * Address other codacy warnings * cleanup * Change Image functions to generic * Update ricap.hpp with reference paper * resolved minor issues happened with merge * minor changes * fixed minor issue with getting profiler times * minor formatting changes * resolved build issues in test suite renamed the min and max kernel file names * RPP RICAP Tensor for HOST and HIP (#213) * Initial commit - Ricap HOST Tensor Includes testsuite changes * Add QA tests for RICAP Used three_images_224x224_src1 folder to create golden outputs * Add three_images_224x224_src1 into TEST_IMAGES * Support HIP Backend for RICAP * Fix HIP pkd3->pkd3 variant * regenerated golden outputs for RICAP minor changes in HOST shell script for handling RICAP in QA mode * minor bug fix in RICAP HIP kernels * Improve readability and Cleanup * Additional cleanup * Cleanup testsuite Includes new golden outputs * Additional testuite fixes * Minor cleanup * Fix codacy warnings * Address other codacy warnings * Update ricap.hpp with reference paper * Add RICAP dataset path in readme * Make changes to error codes returned * Modify roi crop region for unit and perf tests * RPP Tensor Water Augmentation on HOST and HIP (#181) * added water HOST and HIP codes * added water case in test suite * added golden outputs for water * added omp thread changes for water augmentation * experimental changes * fixed output issue with AVX2 instructions * added AVX2 support for PKD3 load function minor changes in PLN variant load functions * nwc commit - added avx2 changes for u8 layout toggle variants but need to add store functions for completion * Add Avx2 implementation for F32 and U8 toggle variants * Add AVX2 support for u8 pkd3-pln3 and i8 pkd3-pln3 for water augmentation * change F32 load and store logic * optimized the store function for F32 PLN3-PKD3 * reverted back irrelevant changes * minor change * optimized load and store functions for water U8 and F32 variants in host removed commented code * removed golden outputs for water * minor changes * renamed few functions and removed unused functions updated i8 pln1 load as per the optimized u8 pln1 load * fixed bug in i8 load function * changed cast to c++ style resolved spacing issues and added comments for AVX codes for better understanding made changes to handle cases where QA Tests are not supported * added golden outputs for water * updated golden outputs with latest changes * modified the u8, i8 pkd3-pln3 function and added comments for the vectorized code * fixed minor bug in I8 variants * made to changes to resolve codacy warnings * changed cast to c++ style in hip kernel * changed generic nn F32 loads using gather and setr instructions * added comments for latest changes * minor change * added definition for storing 32 and 64 bits from a 128bit register --------- Co-authored-by: sampath1117 Co-authored-by: HazarathKumarM * Fix build error * CMakeLists - Version Update 1.5.0 - TOT Version * CHANGELOG Updates Version 1.5.0 placeholder * Boost deps fix for test suite --------- Co-authored-by: Snehaa Giridharan Co-authored-by: sampath1117 Co-authored-by: Snehaa-Giridharan <118163708+snehaa8@users.noreply.github.com> Co-authored-by: HazarathKumarM Co-authored-by: Kiriti Gowda * Documentation - Readme & changelog updates (#251) * readme and changelog updates for 6.0 * minor update * Documentation - Bump rocm-docs-core[api_reference] from 0.26.0 to 0.27.0 in /docs/sphinx (#253) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.26.0 to 0.27.0. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/RadeonOpenCompute/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.26.0...v0.27.0) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * RPP Resize Mirror Normalize Bugfix (#252) * added fix for hipMemset * remove pixel check for U8-F32 and U8-F16 for HOST codes --------- Co-authored-by: sampath1117 * Cmake fix to prevent warning * Fix paths in new python scripts * Sphinx - updates (#257) * Sphinx - updates * Doxygen - Updates * Docs - Remove index.md * Test suite fixes after tensor_min / tensor_max HOST merge * Fix max case * QA tests fix for hip and host * naming convention changes as per new std * Substitute imagePartial with partial * Substitute imageMin/imageMax with min/max * Replace hipMemset with hipMemsetAsync, and replace hipDeviceSynchronize with hipStreamSynchronize * Use variable instead of batchCount*4 * Use post increment effectivly * Resolve codacy warnings * Additional cleanup * remove unused variable * Documentation - Bump rocm-docs-core[api_reference] from 0.28.0 to 0.29.0 in /docs/sphinx (#265) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.28.0 to 0.29.0. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/RadeonOpenCompute/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.28.0...v0.29.0) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Remove auto merge boost * Spaces formatting * Bump rocm-docs-core[api_reference] from 0.29.0 to 0.30.1 in /docs/sphinx (#268) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.29.0 to 0.30.1. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/RadeonOpenCompute/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.29.0...v0.30.1) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * add support for mi300 (#269) * Documentation - Bump rocm-docs-core[api_reference] from 0.30.1 to 0.30.2 in /docs/sphinx (#273) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.30.1 to 0.30.2. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/RadeonOpenCompute/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.30.1...v0.30.2) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Cleanup by removing oneliner functions as inline * RPP Tensor Audio Support - To Decibels (#258) * Initial commit - Non slient region detection Includes unittest setup * Initial commit - To Decibels Includes unittest setup * Replace vectors with arrays * Cleanup * Replace Rpp64s with Rpp32s * Optimize and precompute cutOff * Fix buffer used * Fix buffer used * Additional Cleanup * Update testsuite for Audio * code cleanup * Add Readme file for Audio test suite * changes based on review comments * minor change * Remove unittest folders and updated README.md * Remove unit tests * minor change * code cleanup * added common header file for audio helper functions * removed unncessary audio wav files fixed bug in ROI updation for audio test suite resolved issue in summary generation for performance tests in python * removed log file * added doxygen support for audio * added doxygen changes for to_decibels * updated test suite support for to_decibels * minor change * removed the usage of getMax function and used std::max_element * modularized code in test suite * merge with latest changes * minor change * minor change * resolved codacy warnings * Codacy fix - Remove unused cpuTime * CMakeLists - Version Update 1.5.0 - TOT Version * CHANGELOG Updates Version 1.5.0 placeholder * resolved issue with file_system dependency in test suite * Doxygen changes changed malloc to new in NSR kernel * RPP RICAP Tensor for HOST and HIP (#213) * Initial commit - Ricap HOST Tensor Includes testsuite changes * Add QA tests for RICAP Used three_images_224x224_src1 folder to create golden outputs * Add three_images_224x224_src1 into TEST_IMAGES * Support HIP Backend for RICAP * Fix HIP pkd3->pkd3 variant * regenerated golden outputs for RICAP minor changes in HOST shell script for handling RICAP in QA mode * minor bug fix in RICAP HIP kernels * Improve readability and Cleanup * Additional cleanup * Cleanup testsuite Includes new golden outputs * Additional testuite fixes * Minor cleanup * Fix codacy warnings * Address other codacy warnings * Update ricap.hpp with reference paper * Add RICAP dataset path in readme * Make changes to error codes returned * Modify roi crop region for unit and perf tests * RPP Tensor Water Augmentation on HOST and HIP (#181) * added water HOST and HIP codes * added water case in test suite * added golden outputs for water * added omp thread changes for water augmentation * experimental changes * fixed output issue with AVX2 instructions * added AVX2 support for PKD3 load function minor changes in PLN variant load functions * nwc commit - added avx2 changes for u8 layout toggle variants but need to add store functions for completion * Add Avx2 implementation for F32 and U8 toggle variants * Add AVX2 support for u8 pkd3-pln3 and i8 pkd3-pln3 for water augmentation * change F32 load and store logic * optimized the store function for F32 PLN3-PKD3 * reverted back irrelevant changes * minor change * optimized load and store functions for water U8 and F32 variants in host removed commented code * removed golden outputs for water * minor changes * renamed few functions and removed unused functions updated i8 pln1 load as per the optimized u8 pln1 load * fixed bug in i8 load function * changed cast to c++ style resolved spacing issues and added comments for AVX codes for better understanding made changes to handle cases where QA Tests are not supported * added golden outputs for water * updated golden outputs with latest changes * modified the u8, i8 pkd3-pln3 function and added comments for the vectorized code * fixed minor bug in I8 variants * made to changes to resolve codacy warnings * changed cast to c++ style in hip kernel * changed generic nn F32 loads using gather and setr instructions * added comments for latest changes * minor change * added definition for storing 32 and 64 bits from a 128bit register --------- Co-authored-by: sampath1117 Co-authored-by: HazarathKumarM * Fix build error * CMakeLists - Version Update 1.5.0 - TOT Version * CHANGELOG Updates Version 1.5.0 placeholder * Boost deps fix for test suite --------- Co-authored-by: Snehaa Giridharan Co-authored-by: sampath1117 Co-authored-by: Snehaa-Giridharan <118163708+snehaa8@users.noreply.github.com> Co-authored-by: HazarathKumarM Co-authored-by: Kiriti Gowda * Documentation - Readme & changelog updates (#251) * readme and changelog updates for 6.0 * minor update * added ctests for audio test suite for CI made changes to add more clarity on the QA Tests results * Cmake mods for ctest * HOST-only build error bugfix * added qa mode paramter to python audio script added golden output map for QA testing of Non silent region detection * minor change * Documentation - Bump rocm-docs-core[api_reference] from 0.26.0 to 0.27.0 in /docs/sphinx (#253) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.26.0 to 0.27.0. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/RadeonOpenCompute/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.26.0...v0.27.0) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * RPP Resize Mirror Normalize Bugfix (#252) * added fix for hipMemset * remove pixel check for U8-F32 and U8-F16 for HOST codes --------- Co-authored-by: sampath1117 * added example for MMS calculation in comments for better understanding * Sphinx - updates (#257) * Sphinx - updates * Doxygen - Updates * Docs - Remove index.md * updated info used to for running audio test suite * removed bitdepth variable from audio test suite * added more information on computing NSR outputs in the example added * Fix doxygen for decibels Also removes extra QA reference files * Fix build errors and qa tests in Audio Test suite * Remove auto-merge repeated funcs * Improve clarity on header docs * made changes based on review comments * stored golden outputs of to_decibels in binary file removed golden output text files for non silent region * removed unused parameter in verify_output function * updated list of cases supported in python script * added error handling for opening golden output file * Codacy fix and tests warning fix * Codacy fix * Codacy fix trial * codacy fix for checking boundaries of fstream --------- Signed-off-by: dependabot[bot] Co-authored-by: Snehaa Giridharan Co-authored-by: HazarathKumarM Co-authored-by: sampath1117 Co-authored-by: Kiriti Gowda Co-authored-by: Snehaa-Giridharan <118163708+snehaa8@users.noreply.github.com> Co-authored-by: Lisa Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Documentation - Bump rocm-docs-core[api_reference] from 0.30.2 to 0.30.3 in /docs/sphinx (#274) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.30.2 to 0.30.3. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/RadeonOpenCompute/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.30.2...v0.30.3) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Adding issue template (#270) * Add files via upload * added ROCm v6, MI300, default component * Fix cast used in testsuite Includes minor fixes * Fix displaying f16 outputs * Optimize HOST min/max reduce function further * Fix spacing in HIP kernels * Fix PLN1 outputs for u8 and i8 datatypes of HOST backend * RPP Test Suite Upgrade 4 - CSV to BIN conversions for file size reduction (#293) * change golden outputs from .csv files to .bin files * Changed comparision funtions to use .bin files * Address review comments * minor change * Address review comments * minor change --------- Co-authored-by: HazarathKumarM * Bump rocm-docs-core[api_reference] from 0.31.0 to 0.33.0 in /docs/sphinx (#294) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.31.0 to 0.33.0. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/ROCm/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.31.0...v0.33.0) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Store reference outputs via map for min and max kernels * Update tensor_max.hpp license * Update tensor_min.hpp license * Fix output comparison check * Merge branch 'ar/opt_tensor_min_tensor_max' of https://github.com/r-abishek/rpp into sn/tensor_min_max * Modify exit condition used in outer most kernel * Modify srcIdx for HIP Tensor min * Using maximum as 255 for HIP Tensor min * Modify srcIdx for HIP Tensor max kernel Also fixes build error in testsuite * Fix corrupted outputs displayed for Tensor sum * Fix corruption issue seen with tensor sum kernel * Fix minimum for I8 Tensor max kernel * Modified HIP buffer initialization with a common function * Fix redefinition * Remove additional variables xAlignedLength * Remove unwanted xAlignedLength and xDiff * Remove redefinition of TensorSumReferenceOutputs * Fix for CI issue * Add parenthesis --------- Signed-off-by: dependabot[bot] Co-authored-by: HazarathKumarM Co-authored-by: sampath1117 Co-authored-by: Snehaa Giridharan Co-authored-by: Snehaa-Giridharan <118163708+snehaa8@users.noreply.github.com> Co-authored-by: fiona-gladwin Co-authored-by: Kiriti Gowda Co-authored-by: Lisa Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Lakshmi Kumar Co-authored-by: abhimeda <138710508+abhimeda@users.noreply.github.com> * CI - Update precheckin.groovy * modified the slice kernel and api as per the latest changes * added test case of 1D slice in audio test suite * reverted unwanted changes * updated the slice voxel testing configuration to validate the kernel correctly * updated the description for slice voxel gpu kernel * Bump rocm-docs-core[api_reference] from 0.35.0 to 0.35.1 in /docs/sphinx (#319) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.35.0 to 0.35.1. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/ROCm/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.35.0...v0.35.1) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * revert incorrect changes happened with merge * fix build issue in test suite * Bump rocm-docs-core[api_reference] from 0.35.1 to 0.36.0 in /docs/sphinx (#322) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.35.1 to 0.36.0. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/ROCm/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.35.1...v0.36.0) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * added missed validation checks for slice api removed unncessary param in HIP kernel * removed redundant variable * moved the initializatons required for slice in test suite to a separate helper function * reorganized code for better reusability * add comment for init_slice_voxel() function * modify NSR kernel output types to make it compatible with latest slice * code cleanup added erro code for layout mismatch * added slice test case in HOST Image test suite * added test case for slice in image HIP test suite * fixed layout condition check for NHWC slice kernel * minor change * added golden output for slice 2d and 3d cases * freed memory for buffers allocated for slice in test suite * updated the validation check for slice in voxel test suite * Update rpp_test_suite_common.h to add set_generic_descriptor_slice * Update Tensor_host.cpp * Update Tensor_hip.cpp * Docs - Bump rocm-docs-core[api_reference] from 0.36.0 to 0.37.0 in /docs/sphinx (#328) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.36.0 to 0.37.0. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/ROCm/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.36.0...v0.37.0) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Link cleanup (#326) * link updates * update tables * pare down index * API cleanup * consistency * verbiage * Update notes * Docs - Bump rocm-docs-core[api_reference] from 0.37.0 to 0.37.1 in /docs/sphinx (#329) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.37.0 to 0.37.1. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/ROCm/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.37.0...v0.37.1) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * RPP Voxel Flip on HIP and HOST (#285) * added support for flip voxel * added test suite support * added golden outputs for flip voxel made changes in test suite to run QA tests for flip * updated golden outputs with correct values * minor bug fix in the hip test suite * made changes to variable names for better readability fixed comments in test suite minor cleanup * combined the flip axis factor as ternary operator in HIP kernel added new enum for error handling when source and destination layouts are not matching * RPP Test Suite Upgrade 4 - CSV to BIN conversions for file size reduction (#293) * change golden outputs from .csv files to .bin files * Changed comparision funtions to use .bin files * Address review comments * minor change * Address review comments * minor change --------- Co-authored-by: HazarathKumarM * converted flip voxel golden outputs to bin files * changed copyright from 2023 to 2024 * Update flip_voxel.hpp license * License - updates to 2024 and consistency changes (#298) * Match all CMakeLists.txt license as per RPP's outermost LICENSE file * Match all python files' license as per RPP's outermost LICENSE file * Match all .hpp files' license as per RPP's outermost LICENSE file * Match all .cpp files' license as per RPP's outermost LICENSE file * Match all .h files' license as per RPP's outermost LICENSE file * Remove all rights reserved as per LICENSE file * Remove double space in "Copyright (c) 2019 - 2023 Advanced Micro Devices, Inc." * Match all .cmake files' license as per RPP's outermost LICENSE file * Match all .cpp.in files' license as per RPP's outermost LICENSE file * Replace 283 occurrences in 282 files - 2023 to 2024 * Add "MIT License" title to 281 instances * Add missing license * Test - Update README.md for test_suite (#299) * Bump rocm-docs-core[api_reference] from 0.33.0 to 0.33.1 in /docs/sphinx (#301) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.33.0 to 0.33.1. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/ROCm/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.33.0...v0.33.1) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump rocm-docs-core[api_reference] from 0.33.1 to 0.33.2 in /docs/sphinx (#302) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.33.1 to 0.33.2. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/ROCm/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.33.1...v0.33.2) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Update doc codeowners (#303) * Documentation - Bump rocm-docs-core[api_reference] from 0.33.2 to 0.34.0 in /docs/sphinx (#304) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.33.2 to 0.34.0. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/ROCm/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.33.2...v0.34.0) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Test suite - upgrade 5 qa perf (#305) * experimental changes for adding qa mode for performance tests * made changes to add display more information w.r.t QA results summary for performance tests * minor changes * Add changes to dump qa results to excel file * Add performance QA for three new tensor functions * update prerequisites in readme * added changes to handle unsupported cases * removed treshold dictionary and added performance Noise treshold add new dataset for performance QA * RPP Test Suite Upgrade 4 - CSV to BIN conversions for file size reduction (#293) * change golden outputs from .csv files to .bin files * Changed comparision funtions to use .bin files * Address review comments * minor change * Address review comments * minor change --------- Co-authored-by: HazarathKumarM * Changes to the performane summary dataframe * minor changes * Update CMakeLists.txt to add ${CMAKE_CURRENT_SOURCE_DIR} for CI * Update CMakeLists.txt fix * Update CMakeLists.txt fix * remove tabulate dependency * Update README.md to remove tabulate pip install * Fix for CI machine failure * Add note on performance --------- Co-authored-by: sampath1117 Co-authored-by: HazarathKumarM Co-authored-by: Abishek <52214183+r-abishek@users.noreply.github.com> Co-authored-by: Snehaa Giridharan Co-authored-by: r-abishek * RPP Color Temperature on HOST and HIP (#271) * Initial commit - Color Temperature HOST Tensor * Initial commit - Color Temperature HIP Tensor * Add color temperature golden outputs * address review comments * Use reinterpret_cast instead of static_cast * Combine templated functions to support all datatypes into one (got minor perf difference of order 3%) Also fixes indentation * Fix i8 datatype * Cleanup * RPP Test Suite Upgrade 4 - CSV to BIN conversions for file size reduction (#293) * change golden outputs from .csv files to .bin files * Changed comparision funtions to use .bin files * Address review comments * minor change * Address review comments * minor change --------- Co-authored-by: HazarathKumarM * Fix PLN3 variant outputs Also modifies reference outputs * Update color_temperature.hpp license * Delete color_temperature_u8_Tensor_PKD3.csv * Delete color_temperature_u8_Tensor_PLN3.csv --------- Co-authored-by: snehaa8 Co-authored-by: HazarathKumarM Co-authored-by: Snehaa-Giridharan <118163708+snehaa8@users.noreply.github.com> * RPP Voxel 3D Tensor Add/Subtract scalar on HOST and HIP (#272) * added HOST support for voxel add kernel * added HIP support for voxel add kernel * added test suite support for add scalar * added Doxygen support and modified hip kernel function names as per new standard * added HOST support for voxel subtract kernel * added HIP support for voxel subtract kernel * added test suite support * updated the golden outputs for subtract with correct values * removed unnessary validation checks * Remove double spaces * Fix header * Fix all retval docs * Fix docs to add memory type * Fix comment * Add divider comment * Use post-increment efficiently * RPP Test Suite Upgrade 4 - CSV to BIN conversions for file size reduction (#293) * change golden outputs from .csv files to .bin files * Changed comparision funtions to use .bin files * Address review comments * minor change * Address review comments * minor change --------- Co-authored-by: HazarathKumarM * converted add and subtract scalar golden outputs to bin files * changed copyright from 2023 to 2024 * Update add_scalar.hpp license * Update subtract_scalar.hpp license --------- Co-authored-by: sampath1117 Co-authored-by: HazarathKumarM * RPP Magnitude on HOST and HIP (#278) * Initial commit - Magnitude HOST Tensor * Add QA reference outputs * Update runTests.py * Initial commit - Magnitude HIP Tensor * Add dual input support in testsuite * Optimize HOST kernel further * Optimize i8 datatype further * Modify comments * RPP Test Suite Upgrade 4 - CSV to BIN conversions for file size reduction (#293) * change golden outputs from .csv files to .bin files * Changed comparision funtions to use .bin files * Address review comments * minor change * Address review comments * minor change --------- Co-authored-by: HazarathKumarM * Bump rocm-docs-core[api_reference] from 0.31.0 to 0.33.0 in /docs/sphinx (#294) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.31.0 to 0.33.0. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/ROCm/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.31.0...v0.33.0) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Update Copywright year * Combine templated functions to support all datatypes * Modify format of reference outputs * Update rppi_arithmetic_operations.h license * Update rppt_tensor_arithmetic_operations.h license * Update host_tensor_arithmetic_operations.hpp * Update magnitude.hpp license * Update hip_tensor_arithmetic_operations.hpp license * Delete magnitude_u8_Tensor_PKD3.csv * Delete magnitude_u8_Tensor_PLN1.csv * Delete magnitude_u8_Tensor_PLN3.csv * Update rpp_test_suite_common.h license * Update runTests.py license * Update Tensor_hip.cpp license * Update runTests.py license * Update Tensor_host.cpp license --------- Signed-off-by: dependabot[bot] Co-authored-by: Snehaa Giridharan Co-authored-by: HazarathKumarM Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Snehaa-Giridharan <118163708+snehaa8@users.noreply.github.com> * Bump rocm-docs-core[api_reference] from 0.34.0 to 0.34.2 in /docs/sphinx (#309) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.34.0 to 0.34.2. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/ROCm/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.34.0...v0.34.2) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * RPP Tensor Audio Support - Down Mixing (#296) * Initial commit - Non slient region detection Includes unittest setup * Initial commit - To Decibels Includes unittest setup * Intial commit - pre_emphasis_filter * Intial commit - down_mixing * Replace vectors with arrays * Cleanup * Minor cleanup * Optimize downmixing Kernel Includes cleanup * Replace Rpp64s with Rpp32s * Cleanup * Optimize and precompute cutOff * Fix buffer used * Fix buffer used * Additional Cleanup * Optimize post incrmeent operation * Optimize post increment operation * Update testsuite for Audio * code cleanup * Add Readme file for Audio test suite * changes based on review comments * minor change * Remove unittest folders and updated README.md * Remove unit tests * minor change * code cleanup * added common header file for audio helper functions * removed unncessary audio wav files fixed bug in ROI updation for audio test suite resolved issue in summary generation for performance tests in python * removed log file * added doxygen support for audio * added doxygen changes for to_decibels * updated test suite support for to_decibels * minor change * added doxygen changes for preemphasis filter * updated changes for preemphasis filter in test suite * removed the usage of getMax function and used std::max_element * modularized code in test suite * merge with latest changes * minor change * minor change * minor change * resolved codacy warnings * Codacy fix - Remove unused cpuTime * CMakeLists - Version Update 1.5.0 - TOT Version * CHANGELOG Updates Version 1.5.0 placeholder * resolved issue with file_system dependency in test suite * Doxygen changes changed malloc to new in NSR kernel * RPP RICAP Tensor for HOST and HIP (#213) * Initial commit - Ricap HOST Tensor Includes testsuite changes * Add QA tests for RICAP Used three_images_224x224_src1 folder to create golden outputs * Add three_images_224x224_src1 into TEST_IMAGES * Support HIP Backend for RICAP * Fix HIP pkd3->pkd3 variant * regenerated golden outputs for RICAP minor changes in HOST shell script for handling RICAP in QA mode * minor bug fix in RICAP HIP kernels * Improve readability and Cleanup * Additional cleanup * Cleanup testsuite Includes new golden outputs * Additional testuite fixes * Minor cleanup * Fix codacy warnings * Address other codacy warnings * Update ricap.hpp with reference paper * Add RICAP dataset path in readme * Make changes to error codes returned * Modify roi crop region for unit and perf tests * RPP Tensor Water Augmentation on HOST and HIP (#181) * added water HOST and HIP codes * added water case in test suite * added golden outputs for water * added omp thread changes for water augmentation * experimental changes * fixed output issue with AVX2 instructions * added AVX2 support for PKD3 load function minor changes in PLN variant load functions * nwc commit - added avx2 changes for u8 layout toggle variants but need to add store functions for completion * Add Avx2 implementation for F32 and U8 toggle variants * Add AVX2 support for u8 pkd3-pln3 and i8 pkd3-pln3 for water augmentation * change F32 load and store logic * optimized the store function for F32 PLN3-PKD3 * reverted back irrelevant changes * minor change * optimized load and store functions for water U8 and F32 variants in host removed commented code * removed golden outputs for water * minor changes * renamed few functions and removed unused functions updated i8 pln1 load as per the optimized u8 pln1 load * fixed bug in i8 load function * changed cast to c++ style resolved spacing issues and added comments for AVX codes for better understanding made changes to handle cases where QA Tests are not supported * added golden outputs for water * updated golden outputs with latest changes * modified the u8, i8 pkd3-pln3 function and added comments for the vectorized code * fixed minor bug in I8 variants * made to changes to resolve codacy warnings * changed cast to c++ style in hip kernel * changed generic nn F32 loads using gather and setr instructions * added comments for latest changes * minor change * added definition for storing 32 and 64 bits from a 128bit register --------- Co-authored-by: sampath1117 Co-authored-by: HazarathKumarM * Fix build error * CMakeLists - Version Update 1.5.0 - TOT Version * CHANGELOG Updates Version 1.5.0 placeholder * Boost deps fix for test suite --------- Co-authored-by: Snehaa Giridharan Co-authored-by: sampath1117 Co-authored-by: Snehaa-Giridharan <118163708+snehaa8@users.noreply.github.com> Co-authored-by: HazarathKumarM Co-authored-by: Kiriti Gowda * Documentation - Readme & changelog updates (#251) * readme and changelog updates for 6.0 * minor update * added ctests for audio test suite for CI made changes to add more clarity on the QA Tests results * Cmake mods for ctest * HOST-only build error bugfix * added qa mode paramter to python audio script added golden output map for QA testing of Non silent region detection * minor change * Documentation - Bump rocm-docs-core[api_reference] from 0.26.0 to 0.27.0 in /docs/sphinx (#253) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.26.0 to 0.27.0. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/RadeonOpenCompute/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.26.0...v0.27.0) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * RPP Resize Mirror Normalize Bugfix (#252) * added fix for hipMemset * remove pixel check for U8-F32 and U8-F16 for HOST codes --------- Co-authored-by: sampath1117 * added example for MMS calculation in comments for better understanding * Sphinx - updates (#257) * Sphinx - updates * Doxygen - Updates * Docs - Remove index.md * updated info used to for running audio test suite * removed bitdepth variable from audio test suite * added more information on computing NSR outputs in the example added * Fix doxygen for decibels Also removes extra QA reference files * move tensor_host_audio.cpp to host folder * Fix build errors and qa tests in Audio Test suite * Fix build errors and qa tests in Audio Test suite * Add reference output and test samples for downmix * Add down_mix in augmentation list and supported cases * Remove auto-merge repeated funcs * Improve clarity of header docs * Remove blank line * Improve clarity on header docs * Add Doxygen comments * minor change * converted golden outputs to binary file for downmixing * removed old golden output file for preemphasis and todecibels * modified info for downmixing as per new changes used handle memory for temporary buffers * formatting changes * moved the common code for SSE and AVX to outside * Update down_mixing.hpp license * Update rppt_tensor_audio_augmentations.h * combined the srcLength and channels tensors into single tensor --------- Signed-off-by: dependabot[bot] Co-authored-by: Snehaa Giridharan Co-authored-by: HazarathKumarM Co-authored-by: sampath1117 Co-authored-by: Kiriti Gowda Co-authored-by: Snehaa-Giridharan <118163708+snehaa8@users.noreply.github.com> Co-authored-by: Lisa Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Sundarrajan98 * RPP Voxel 3D Tensor Multiply scalar on HOST and HIP (#306) * added HIP support for voxel scalar multiply kernel * added HOST support for voxel multiply kernel added golden outputs for voxel multiply kernel * merge with master * RPP Test Suite Upgrade 4 - CSV to BIN conversions for file size reduction (#293) * change golden outputs from .csv files to .bin files * Changed comparision funtions to use .bin files * Address review comments * minor change * Address review comments * minor change --------- Co-authored-by: HazarathKumarM * converted multiply scalar voxel golden outputs to bin files * changed copyright from 2023 to 2024 --------- Co-authored-by: sampath1117 Co-authored-by: HazarathKumarM * Test Suite Bugfix (#307) * experimental changes for adding qa mode for performance tests * made changes to add display more information w.r.t QA results summary for performance tests * minor changes * Add changes to dump qa results to excel file * Add performance QA for three new tensor functions * update prerequisites in readme * added changes to handle unsupported cases * removed treshold dictionary and added performance Noise treshold add new dataset for performance QA * RPP Test Suite Upgrade 4 - CSV to BIN conversions for file size reduction (#293) * change golden outputs from .csv files to .bin files * Changed comparision funtions to use .bin files * Address review comments * minor change * Address review comments * minor change --------- Co-authored-by: HazarathKumarM * Changes to the performane summary dataframe * minor changes * Update CMakeLists.txt to add ${CMAKE_CURRENT_SOURCE_DIR} for CI * Update CMakeLists.txt fix * Update CMakeLists.txt fix * remove tabulate dependency * Update README.md to remove tabulate pip install * Fix for CI machine failure * Add note on performance * Fix segmentation fault * Revert QAmode to restrict HIP bitdepths * Use Rpp64u for HOST while comparing outputs * Fix ambiguous abs call * Fix for SLES CI HIP fail - error: incompatible pointer types assigning to 'unsigned long *' from 'unsigned long long *' - refOutput = TensorSumReferenceOutputs[numChannels].data(); --------- Co-authored-by: sampath1117 Co-authored-by: HazarathKumarM Co-authored-by: Snehaa Giridharan Co-authored-by: Pavel Tcherniaev * Bump rocm-docs-core[api_reference] from 0.34.2 to 0.35.0 in /docs/sphinx (#313) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.34.2 to 0.35.0. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/ROCm/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.34.2...v0.35.0) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * RPP Reduction - Tensor min and Tensor max on HOST and HIP (#260) * Minor Change * Add Validation check for DST_FOLDER path * added water HOST and HIP codes * added water case in test suite * added golden outputs for water * Add Validation checks for all options in testAllScript.sh * Add sanity check for dual Input cases Set Max Dimension and Max Image Dump Replaced Fast DCT tag with Accurate DCT * Regenerate golden outputs using accurate dct Flag Add golden outputs for some new augmentations * Fix Flip golden outputs mismatch Fix PLN3 variants mismatch in QA mode * Add MAX_BATCH_SIZE check removed Augmentations function calls for failing Qa modes code cleanup * Add crop and gamma correction augmentations code cleanup * Add comments to functions in rpp_test_suite_common.h * minor change * code cleanup * minor code changes * Change roi and Image sizes for crop augmentation * Change numIterations option to numRuns Addressed PR comments * added omp thread changes for water augmentation * experimental changes * fixed output issue with AVX2 instructions * added AVX2 support for PKD3 load function minor changes in PLN variant load functions * Add turboJpeg header to update maxHeight and maxWidth values * nwc commit - added avx2 changes for u8 layout toggle variants but need to add store functions for completion * Change the performance Timings logic * Add Avx2 implementation for F32 and U8 toggle variants * minor change to support u8_f16 and u8_f32 cases * Regenerate LUT golden outputs with ACCURATE_DCT tag * Minor code changes * Add AVX2 support for u8 pkd3-pln3 and i8 pkd3-pln3 for water augmentation * Made changes to the runTests.py in Host to remove testAllScipts.sh * Made changes to the runTests.py in HIP to remove testAllScipts.sh * Initial commit - Image min and max Reduction kernel Includes * u8 datatype for both min and max HOST Tensor of all variants. * Testsuite changes. * NWC -initial code for min max PLN3 - PLN3 * made changes to split min and max kernels seperately * splitted kernels for min and max * made changes to print final max/min in the R,G,B channels * fixed inaccuracies in min/max computation * made changes to typecast intermediate output to output requested by user added comments for the code code cleanup and minor changes in test suite * fixed build issues removed image folders used for min, max and sum reverted unwanted file changes * minor changes in test suite * removed support for unwanted test case in Tensor_hip.cpp * Adds new option roi * remove testAllScripts.sh * Adds roi Option in HIP backend * Implement f32 variants * Implement f16 and i8 datatype variants * change F32 load and store logic * Add build flags in CMakeLists.txt to set AVX/SSE flags based on the system configuration * minor code changes * Initial commit - Image sum Reduction kernel Includes u8 PLN1 -> PLN1 conversion for HOST Tensor * Implement PKD3 and PLN3 for Image sum Tensor HOST * Support i8, f16 and f32 datatypes * Initial commit - Image sum Reduction HIP kernel Includes u8 PLN1 -> PLN1 conversion for Tensor * Implement PKD3 and PLN3 for Image sum Tensor HIP * Add support in testsuite Revert normalization for i8 HOST Tensor variants * Fix HIP testsuite Remove additional blanks for 1 channel output * Modify print statement in HIP testsuite * Improve readability for testsuite outputs * optimized the store function for F32 PLN3-PKD3 * reverted back irrelevant changes * minor change * Fix HIP to support larger inputs * optimized load and store functions for water U8 and F32 variants in host removed commented code * Cleanup * removed golden outputs for water * minor changes * Cleanup Support Reduction QA test in testsuite * renamed few functions and removed unused functions updated i8 pln1 load as per the optimized u8 pln1 load * fixed bug in i8 load function * Remove unused variables and C style casting * changed cast to c++ style resolved spacing issues and added comments for AVX codes for better understanding made changes to handle cases where QA Tests are not supported * added golden outputs for water * updated golden outputs with latest changes * modified the u8, i8 pkd3-pln3 function and added comments for the vectorized code * fixed minor bug in I8 variants * Optimize u8 datatype further * Fix static_cast * made to changes to resolve codacy warnings * changed cast to c++ style in hip kernel * Initial commit - Ricap HOST Tensor Includes testsuite changes * Add QA tests for RICAP Used three_images_224x224_src1 folder to create golden outputs * Add three_images_224x224_src1 into TEST_IMAGES * added rotate case with golden outputs changed generic bilinear HOST codes to match with HIP codes * Add golden output for remaining all tensor augmentations * fix python script issues * Optimize u8 and i8 datatype Uses uint and int internal processing instead of float * Fix testsuite build errors * minor change * Fix QA check * Modify api naming from image_sum to tensor_sum Includes changes for both HOST and HIP * Support HIP Backend for RICAP * change rcm and rmn golden outputs * Fix HIP pkd3->pkd3 variant * changes based on review comments * change test_suite folder to tests * Optimize u8 and i8 datatype of HIP Includes modification in naming of shared memory * minor fix * changed generic nn F32 loads using gather and setr instructions * Optimize and cleanup U8 HIP * regenerated golden outputs for RICAP minor changes in HOST shell script for handling RICAP in QA mode * minor bug fix in RICAP HIP kernels * Fix i8 datatype variants Includes cleanup * Fix the issues with color_to_greyscale * remove the empty folder creation * reverting back the folder name change * minor change * added comments for latest changes * minor change * Improve readability and Cleanup * Fix QA for HIP Includes cleanup * resolved review comments * minor change * Modify api naming from image_ to tensor_ for HOST * Add support for QA tests * removed range check for RMN U8-F32 and U8-F16 variants changed from hipMemset to hipMemsetAsync for RMN HIP Kernel removed multiplication by 255 for stdDev in RMN HOST U8-F16 and U8-F32 variants * Modify naming of shared memory with _smem in HIP Includes cleanup * Typecast and reuse markArr for HIP U8 and I8 * Cleanup and minor optimization * minor fix * fix codacy warnings * Additional cleanup * Cleanup and move #define * Changed the complexity of if statements in runTests.py * Cleanup testsuite Includes new golden outputs * Additional testuite fixes * Minor cleanup * Codacy fixes * Fix codacy warnings * Codacy fix * Address other codacy warnings * cleanup * Change Image functions to generic * Update ricap.hpp with reference paper * resolved minor issues happened with merge * minor changes * fixed minor issue with getting profiler times * minor formatting changes * resolved build issues in test suite renamed the min and max kernel file names * RPP RICAP Tensor for HOST and HIP (#213) * Initial commit - Ricap HOST Tensor Includes testsuite changes * Add QA tests for RICAP Used three_images_224x224_src1 folder to create golden outputs * Add three_images_224x224_src1 into TEST_IMAGES * Support HIP Backend for RICAP * Fix HIP pkd3->pkd3 variant * regenerated golden outputs for RICAP minor changes in HOST shell script for handling RICAP in QA mode * minor bug fix in RICAP HIP kernels * Improve readability and Cleanup * Additional cleanup * Cleanup testsuite Includes new golden outputs * Additional testuite fixes * Minor cleanup * Fix codacy warnings * Address other codacy warnings * Update ricap.hpp with reference paper * Add RICAP dataset path in readme * Make changes to error codes returned * Modify roi crop region for unit and perf tests * RPP Tensor Water Augmentation on HOST and HIP (#181) * added water HOST and HIP codes * added water case in test suite * added golden outputs for water * added omp thread changes for water augmentation * experimental changes * fixed output issue with AVX2 instructions * added AVX2 support for PKD3 load function minor changes in PLN variant load functions * nwc commit - added avx2 changes for u8 layout toggle variants but need to add store functions for completion * Add Avx2 implementation for F32 and U8 toggle variants * Add AVX2 support for u8 pkd3-pln3 and i8 pkd3-pln3 for water augmentation * change F32 load and store logic * optimized the store function for F32 PLN3-PKD3 * reverted back irrelevant changes * minor change * optimized load and store functions for water U8 and F32 variants in host removed commented code * removed golden outputs for water * minor changes * renamed few functions and removed unused functions updated i8 pln1 load as per the optimized u8 pln1 load * fixed bug in i8 load function * changed cast to c++ style resolved spacing issues and added comments for AVX codes for better understanding made changes to handle cases where QA Tests are not supported * added golden outputs for water * updated golden outputs with latest changes * modified the u8, i8 pkd3-pln3 function and added comments for the vectorized code * fixed minor bug in I8 variants * made to changes to resolve codacy warnings * changed cast to c++ style in hip kernel * changed generic nn F32 loads using gather and setr instructions * added comments for latest changes * minor change * added definition for storing 32 and 64 bits from a 128bit register --------- Co-authored-by: sampath1117 Co-authored-by: HazarathKumarM * Fix build error * CMakeLists - Version Update 1.5.0 - TOT Version * CHANGELOG Updates Version 1.5.0 placeholder * Boost deps fix for test suite --------- Co-authored-by: Snehaa Giridharan Co-authored-by: sampath1117 Co-authored-by: Snehaa-Giridharan <118163708+snehaa8@users.noreply.github.com> Co-authored-by: HazarathKumarM Co-authored-by: Kiriti Gowda * Documentation - Readme & changelog updates (#251) * readme and changelog updates for 6.0 * minor update * Documentation - Bump rocm-docs-core[api_reference] from 0.26.0 to 0.27.0 in /docs/sphinx (#253) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.26.0 to 0.27.0. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/RadeonOpenCompute/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.26.0...v0.27.0) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * RPP Resize Mirror Normalize Bugfix (#252) * added fix for hipMemset * remove pixel check for U8-F32 and U8-F16 for HOST codes --------- Co-authored-by: sampath1117 * Cmake fix to prevent warning * Fix paths in new python scripts * Sphinx - updates (#257) * Sphinx - updates * Doxygen - Updates * Docs - Remove index.md * Test suite fixes after tensor_min / tensor_max HOST merge * Fix max case * QA tests fix for hip and host * naming convention changes as per new std * Substitute imagePartial with partial * Substitute imageMin/imageMax with min/max * Replace hipMemset with hipMemsetAsync, and replace hipDeviceSynchronize with hipStreamSynchronize * Use variable instead of batchCount*4 * Use post increment effectivly * Resolve codacy warnings * Additional cleanup * remove unused variable * Documentation - Bump rocm-docs-core[api_reference] from 0.28.0 to 0.29.0 in /docs/sphinx (#265) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.28.0 to 0.29.0. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/RadeonOpenCompute/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.28.0...v0.29.0) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Remove auto merge boost * Spaces formatting * Bump rocm-docs-core[api_reference] from 0.29.0 to 0.30.1 in /docs/sphinx (#268) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.29.0 to 0.30.1. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/RadeonOpenCompute/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.29.0...v0.30.1) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * add support for mi300 (#269) * Documentation - Bump rocm-docs-core[api_reference] from 0.30.1 to 0.30.2 in /docs/sphinx (#273) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.30.1 to 0.30.2. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/RadeonOpenCompute/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.30.1...v0.30.2) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Cleanup by removing oneliner functions as inline * RPP Tensor Audio Support - To Decibels (#258) * Initial commit - Non slient region detection Includes unittest setup * Initial commit - To Decibels Includes unittest setup * Replace vectors with arrays * Cleanup * Replace Rpp64s with Rpp32s * Optimize and precompute cutOff * Fix buffer used * Fix buffer used * Additional Cleanup * Update testsuite for Audio * code cleanup * Add Readme file for Audio test suite * changes based on review comments * minor change * Remove unittest folders and updated README.md * Remove unit tests * minor change * code cleanup * added common header file for audio helper functions * removed unncessary audio wav files fixed bug in ROI updation for audio test suite resolved issue in summary generation for performance tests in python * removed log file * added doxygen support for audio * added doxygen changes for to_decibels * updated test suite support for to_decibels * minor change * removed the usage of getMax function and used std::max_element * modularized code in test suite * merge with latest changes * minor change * minor change * resolved codacy warnings * Codacy fix - Remove unused cpuTime * CMakeLists - Version Update 1.5.0 - TOT Version * CHANGELOG Updates Version 1.5.0 placeholder * resolved issue with file_system dependency in test suite * Doxygen changes changed malloc to new in NSR kernel * RPP RICAP Tensor for HOST and HIP (#213) * Initial commit - Ricap HOST Tensor Includes testsuite changes * Add QA tests for RICAP Used three_images_224x224_src1 folder to create golden outputs * Add three_images_224x224_src1 into TEST_IMAGES * Support HIP Backend for RICAP * Fix HIP pkd3->pkd3 variant * regenerated golden outputs for RICAP minor changes in HOST shell script for handling RICAP in QA mode * minor bug fix in RICAP HIP kernels * Improve readability and Cleanup * Additional cleanup * Cleanup testsuite Includes new golden outputs * Additional testuite fixes * Minor cleanup * Fix codacy warnings * Address other codacy warnings * Update ricap.hpp with reference paper * Add RICAP dataset path in readme * Make changes to error codes returned * Modify roi crop region for unit and perf tests * RPP Tensor Water Augmentation on HOST and HIP (#181) * added water HOST and HIP codes * added water case in test suite * added golden outputs for water * added omp thread changes for water augmentation * experimental changes * fixed output issue with AVX2 instructions * added AVX2 support for PKD3 load function minor changes in PLN variant load functions * nwc commit - added avx2 changes for u8 layout toggle variants but need to add store functions for completion * Add Avx2 implementation for F32 and U8 toggle variants * Add AVX2 support for u8 pkd3-pln3 and i8 pkd3-pln3 for water augmentation * change F32 load and store logic * optimized the store function for F32 PLN3-PKD3 * reverted back irrelevant changes * minor change * optimized load and store functions for water U8 and F32 variants in host removed commented code * removed golden outputs for water * minor changes * renamed few functions and removed unused functions updated i8 pln1 load as per the optimized u8 pln1 load * fixed bug in i8 load function * changed cast to c++ style resolved spacing issues and added comments for AVX codes for better understanding made changes to handle cases where QA Tests are not supported * added golden outputs for water * updated golden outputs with latest changes * modified the u8, i8 pkd3-pln3 function and added comments for the vectorized code * fixed minor bug in I8 variants * made to changes to resolve codacy warnings * changed cast to c++ style in hip kernel * changed generic nn F32 loads using gather and setr instructions * added comments for latest changes * minor change * added definition for storing 32 and 64 bits from a 128bit register --------- Co-authored-by: sampath1117 Co-authored-by: HazarathKumarM * Fix build error * CMakeLists - Version Update 1.5.0 - TOT Version * CHANGELOG Updates Version 1.5.0 placeholder * Boost deps fix for test suite --------- Co-authored-by: Snehaa Giridharan Co-authored-by: sampath1117 Co-authored-by: Snehaa-Giridharan <118163708+snehaa8@users.noreply.github.com> Co-authored-by: HazarathKumarM Co-authored-by: Kiriti Gowda * Documentation - Readme & changelog updates (#251) * readme and changelog updates for 6.0 * minor update * added ctests for audio test suite for CI made changes to add more clarity on the QA Tests results * Cmake mods for ctest * HOST-only build error bugfix * added qa mode paramter to python audio script added golden output map for QA testing of Non silent region detection * minor change * Documentation - Bump rocm-docs-core[api_reference] from 0.26.0 to 0.27.0 in /docs/sphinx (#253) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.26.0 to 0.27.0. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/RadeonOpenCompute/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.26.0...v0.27.0) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * RPP Resize Mirror Normalize Bugfix (#252) * added fix for hipMemset * remove pixel check for U8-F32 and U8-F16 for HOST codes --------- Co-authored-by: sampath1117 * added example for MMS calculation in comments for better understanding * Sphinx - updates (#257) * Sphinx - updates * Doxygen - Updates * Docs - Remove index.md * updated info used to for running audio test suite * removed bitdepth variable from audio test suite * added more information on computing NSR outputs in the example added * Fix doxygen for decibels Also removes extra QA reference files * Fix build errors and qa tests in Audio Test suite * Remove auto-merge repeated funcs * Improve clarity on header docs * made changes based on review comments * stored golden outputs of to_decibels in binary file removed golden output text files for non silent region * removed unused parameter in verify_output function * updated list of cases supported in python script * added error handling for opening golden output file * Codacy fix and tests warning fix * Codacy fix * Codacy fix trial * codacy fix for checking boundaries of fstream --------- Signed-off-by: dependabot[bot] Co-authored-by: Snehaa Giridharan Co-authored-by: HazarathKumarM Co-authored-by: sampath1117 Co-authored-by: Kiriti Gowda Co-authored-by: Snehaa-Giridharan <118163708+snehaa8@users.noreply.github.com> Co-authored-by: Lisa Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Documentation - Bump rocm-docs-core[api_reference] from 0.30.2 to 0.30.3 in /docs/sphinx (#274) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.30.2 to 0.30.3. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/RadeonOpenCompute/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.30.2...v0.30.3) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Adding issue template (#270) * Add files via upload * added ROCm v6, MI300, default component * Fix cast used in testsuite Includes minor fixes * Fix displaying f16 outputs * Optimize HOST min/max reduce function further * Fix spacing in HIP kernels * Fix PLN1 outputs for u8 and i8 datatypes of HOST backend * RPP Test Suite Upgrade 4 - CSV to BIN conversions for file size reduction (#293) * change golden outputs from .csv files to .bin files * Changed comparision funtions to use .bin files * Address review comments * minor change * Address review comments * minor change --------- Co-authored-by: HazarathKumarM * Bump rocm-docs-core[api_reference] from 0.31.0 to 0.33.0 in /docs/sphinx (#294) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.31.0 to 0.33.0. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/ROCm/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.31.0...v0.33.0) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Store reference outputs via map for min and max kernels * Update tensor_max.hpp license * Update tensor_min.hpp license * Fix output comparison check * Merge branch 'ar/opt_tensor_min_tensor_max' of https://github.com/r-abishek/rpp into sn/tensor_min_max * Modify exit condition used in outer most kernel * Modify srcIdx for HIP Tensor min * Using maximum as 255 for HIP Tensor min * Modify srcIdx for HIP Tensor max kernel Also fixes build error in testsuite * Fix corrupted outputs displayed for Tensor sum * Fix corruption issue seen with tensor sum kernel * Fix minimum for I8 Tensor max kernel * Modified HIP buffer initialization with a common function * Fix redefinition * Remove additional variables xAlignedLength * Remove unwanted xAlignedLength and xDiff * Remove redefinition of TensorSumReferenceOutputs * Fix for CI issue * Add parenthesis --------- Signed-off-by: dependabot[bot] Co-authored-by: HazarathKumarM Co-authored-by: sampath1117 Co-authored-by: Snehaa Giridharan Co-authored-by: Snehaa-Giridharan <118163708+snehaa8@users.noreply.github.com> Co-authored-by: fiona-gladwin Co-authored-by: Kiriti Gowda Co-authored-by: Lisa Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Lakshmi Kumar Co-authored-by: abhimeda <138710508+abhimeda@users.noreply.github.com> * CI - Update precheckin.groovy * added separate kernels for doing flip when horizontal flip is not set * fixed build issue * Add supported case * reverted incorrect changes happened with merge --------- Signed-off-by: dependabot[bot] Co-authored-by: sampath1117 Co-authored-by: HazarathKumarM Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Sam Wu Co-authored-by: Kiriti Gowda Co-authored-by: Snehaa Giridharan Co-authored-by: Snehaa-Giridharan <118163708+snehaa8@users.noreply.github.com> Co-authored-by: Lisa Co-authored-by: Sundarrajan98 Co-authored-by: Pavel Tcherniaev Co-authored-by: fiona-gladwin Co-authored-by: Lakshmi Kumar Co-authored-by: abhimeda <138710508+abhimeda@users.noreply.github.com> * RPP Vignette Tensor on HOST and HIP (#311) * Add Vignette Tensor HOST and HIP Implementation * License - updates to 2024 and consistency changes (#298) * Match all CMakeLists.txt license as per RPP's outermost LICENSE file * Match all python files' license as per RPP's outermost LICENSE file * Match all .hpp files' license as per RPP's outermost LICENSE file * Match all .cpp files' license as per RPP's outermost LICENSE file * Match all .h files' license as per RPP's outermost LICENSE file * Remove all rights reserved as per LICENSE file * Remove double space in "Copyright (c) 2019 - 2023 Advanced Micro Devices, Inc." * Match all .cmake files' license as per RPP's outermost LICENSE file * Match all .cpp.in files' license as per RPP's outermost LICENSE file * Replace 283 occurrences in 282 files - 2023 to 2024 * Add "MIT License" title to 281 instances * Add missing license * Test - Update README.md for test_suite (#299) * Bump rocm-docs-core[api_reference] from 0.33.0 to 0.33.1 in /docs/sphinx (#301) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.33.0 to 0.33.1. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/ROCm/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.33.0...v0.33.1) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump rocm-docs-core[api_reference] from 0.33.1 to 0.33.2 in /docs/sphinx (#302) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.33.1 to 0.33.2. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/ROCm/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.33.1...v0.33.2) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Update doc codeowners (#303) * Documentation - Bump rocm-docs-core[api_reference] from 0.33.2 to 0.34.0 in /docs/sphinx (#304) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.33.2 to 0.34.0. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/ROCm/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.33.2...v0.34.0) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Test suite - upgrade 5 qa perf (#305) * experimental changes for adding qa mode for performance tests * made changes to add display more information w.r.t QA results summary for performance tests * minor changes * Add changes to dump qa results to excel file * Add performance QA for three new tensor functions * update prerequisites in readme * added changes to handle unsupported cases * removed treshold dictionary and added performance Noise treshold add new dataset for performance QA * RPP Test Suite Upgrade 4 - CSV to BIN conversions for file size reduction (#293) * change golden outputs from .csv files to .bin files * Changed comparision funtions to use .bin files * Address review comments * minor change * Address review comments * minor change --------- Co-authored-by: HazarathKumarM * Changes to the performane summary dataframe * minor changes * Update CMakeLists.txt to add ${CMAKE_CURRENT_SOURCE_DIR} for CI * Update CMakeLists.txt fix * Update CMakeLists.txt fix * remove tabulate dependency * Update README.md to remove tabulate pip install * Fix for CI machine failure * Add note on performance --------- Co-authored-by: sampath1117 Co-authored-by: HazarathKumarM Co-authored-by: Abishek <52214183+r-abishek@users.noreply.github.com> Co-authored-by: Snehaa Giridharan Co-authored-by: r-abishek * RPP Color Temperature on HOST and HIP (#271) * Initial commit - Color Temperature HOST Tensor * Initial commit - Color Temperature HIP Tensor * Add color temperature golden outputs * address review comments * Use reinterpret_cast instead of static_cast * Combine templated functions to support all datatypes into one (got minor perf difference of order 3%) Also fixes indentation * Fix i8 datatype * Cleanup * RPP Test Suite Upgrade 4 - CSV to BIN conversions for file size reduction (#293) * change golden outputs from .csv files to .bin files * Changed comparision funtions to use .bin files * Address review comments * minor change * Address review comments * minor change --------- Co-authored-by: HazarathKumarM * Fix PLN3 variant outputs Also modifies reference outputs * Update color_temperature.hpp license * Delete color_temperature_u8_Tensor_PKD3.csv * Delete color_temperature_u8_Tensor_PLN3.csv --------- Co-authored-by: snehaa8 Co-authored-by: HazarathKumarM Co-authored-by: Snehaa-Giridharan <118163708+snehaa8@users.noreply.github.com> * RPP Voxel 3D Tensor Add/Subtract scalar on HOST and HIP (#272) * added HOST support for voxel add kernel * added HIP support for voxel add kernel * added test suite support for add scalar * added Doxygen support and modified hip kernel function names as per new standard * added HOST support for voxel subtract kernel * added HIP support for voxel subtract kernel * added test suite support * updated the golden outputs for subtract with correct values * removed unnessary validation checks * Remove double spaces * Fix header * Fix all retval docs * Fix docs to add memory type * Fix comment * Add divider comment * Use post-increment efficiently * RPP Test Suite Upgrade 4 - CSV to BIN conversions for file size reduction (#293) * change golden outputs from .csv files to .bin files * Changed comparision funtions to use .bin files * Address review comments * minor change * Address review comments * minor change --------- Co-authored-by: HazarathKumarM * converted add and subtract scalar golden outputs to bin files * changed copyright from 2023 to 2024 * Update add_scalar.hpp license * Update subtract_scalar.hpp license --------- Co-authored-by: sampath1117 Co-authored-by: HazarathKumarM * RPP Magnitude on HOST and HIP (#278) * Initial commit - Magnitude HOST Tensor * Add QA reference outputs * Update runTests.py * Initial commit - Magnitude HIP Tensor * Add dual input support in testsuite * Optimize HOST kernel further * Optimize i8 datatype further * Modify comments * RPP Test Suite Upgrade 4 - CSV to BIN conversions for file size reduction (#293) * change golden outputs from .csv files to .bin files * Changed comparision funtions to use .bin files * Address review comments * minor change * Address review comments * minor change --------- Co-authored-by: HazarathKumarM * Bump rocm-docs-core[api_reference] from 0.31.0 to 0.33.0 in /docs/sphinx (#294) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.31.0 to 0.33.0. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/ROCm/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.31.0...v0.33.0) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Update Copywright year * Combine templated functions to support all datatypes * Modify format of reference outputs * Update rppi_arithmetic_operations.h license * Update rppt_tensor_arithmetic_operations.h license * Update host_tensor_arithmetic_operations.hpp * Update magnitude.hpp license * Update hip_tensor_arithmetic_operations.hpp license * Delete magnitude_u8_Tensor_PKD3.csv * Delete magnitude_u8_Tensor_PLN1.csv * Delete magnitude_u8_Tensor_PLN3.csv * Update rpp_test_suite_common.h license * Update runTests.py license * Update Tensor_hip.cpp license * Update runTests.py license * Update Tensor_host.cpp license --------- Signed-off-by: dependabot[bot] Co-authored-by: Snehaa Giridharan Co-authored-by: HazarathKumarM Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Snehaa-Giridharan <118163708+snehaa8@users.noreply.github.com> * Bump rocm-docs-core[api_reference] from 0.34.0 to 0.34.2 in /docs/sphinx (#309) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.34.0 to 0.34.2. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/ROCm/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.34.0...v0.34.2) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * RPP Tensor Audio Support - Down Mixing (#296) * Initial commit - Non slient region detection Includes unittest setup * Initial commit - To Decibels Includes unittest setup * Intial commit - pre_emphasis_filter * Intial commit - down_mixing * Replace vectors with arrays * Cleanup * Minor cleanup * Optimize downmixing Kernel Includes cleanup * Replace Rpp64s with Rpp32s * Cleanup * Optimize and precompute cutOff * Fix buffer used * Fix buffer used * Additional Cleanup * Optimize post incrmeent operation * Optimize post increment operation * Update testsuite for Audio * code cleanup * Add Readme file for Audio test suite * changes based on review comments * minor change * Remove unittest folders and updated README.md * Remove unit tests * minor change * code cleanup * added common header file for audio helper functions * removed unncessary audio wav files fixed bug in ROI updation for audio test suite resolved issue in summary generation for performance tests in python * removed log file * added doxygen support for audio * added doxygen changes for to_decibels * updated test suite support for to_decibels * minor change * added doxygen changes for preemphasis filter * updated changes for preemphasis filter in test suite * removed the usage of getMax function and used std::max_element * modularized code in test suite * merge with latest changes * minor change * minor change * minor change * resolved codacy warnings * Codacy fix - Remove unused cpuTime * CMakeLists - Version Update 1.5.0 - TOT Version * CHANGELOG Updates Version 1.5.0 placeholder * resolved issue with file_system dependency in test suite * Doxygen changes changed malloc to new in NSR kernel * RPP RICAP Tensor for HOST and HIP (#213) * Initial commit - Ricap HOST Tensor Includes testsuite changes * Add QA tests for RICAP Used three_images_224x224_src1 folder to create golden outputs * Add three_images_224x224_src1 into TEST_IMAGES * Support HIP Backend for RICAP * Fix HIP pkd3->pkd3 variant * regenerated golden outputs for RICAP minor changes in HOST shell script for handling RICAP in QA mode * minor bug fix in RICAP HIP kernels * Improve readability and Cleanup * Additional cleanup * Cleanup testsuite Includes new golden outputs * Additional testuite fixes * Minor cleanup * Fix codacy warnings * Address other codacy warnings * Update ricap.hpp with reference paper * Add RICAP dataset path in readme * Make changes to error codes returned * Modify roi crop region for unit and perf tests * RPP Tensor Water Augmentation on HOST and HIP (#181) * added water HOST and HIP codes * added water case in test suite * added golden outputs for water * added omp thread changes for water augmentation * experimental changes * fixed output issue with AVX2 instructions * added AVX2 support for PKD3 load function minor changes in PLN variant load functions * nwc commit - added avx2 changes for u8 layout toggle variants but need to add store functions for completion * Add Avx2 implementation for F32 and U8 toggle variants * Add AVX2 support for u8 pkd3-pln3 and i8 pkd3-pln3 for water augmentation * change F32 load and store logic * optimized the store function for F32 PLN3-PKD3 * reverted back irrelevant changes * minor change * optimized load and store functions for water U8 and F32 variants in host removed commented code * removed golden outputs for water * minor changes * renamed few functions and removed unused functions updated i8 pln1 load as per the optimized u8 pln1 load * fixed bug in i8 load function * changed cast to c++ style resolved spacing issues and added comments for AVX codes for better understanding made changes to handle cases where QA Tests are not supported * added golden outputs for water * updated golden outputs with latest changes * modified the u8, i8 pkd3-pln3 function and added comments for the vectorized code * fixed minor bug in I8 variants * made to changes to resolve codacy warnings * changed cast to c++ style in hip kernel * changed generic nn F32 loads using gather and setr instructions * added comments for latest changes * minor change * added definition for storing 32 and 64 bits from a 128bit register --------- Co-authored-by: sampath1117 Co-authored-by: HazarathKumarM * Fix build error * CMakeLists - Version Update 1.5.0 - TOT Version * CHANGELOG Updates Version 1.5.0 placeholder * Boost deps fix for test suite --------- Co-authored-by: Snehaa Giridharan Co-authored-by: sampath1117 Co-authored-by: Snehaa-Giridharan <118163708+snehaa8@users.noreply.github.com> Co-authored-by: HazarathKumarM Co-authored-by: Kiriti Gowda * Documentation - Readme & changelog updates (#251) * readme and changelog updates for 6.0 * minor update * added ctests for audio test suite for CI made changes to add more clarity on the QA Tests results * Cmake mods for ctest * HOST-only build error bugfix * added qa mode paramter to python audio script added golden output map for QA testing of Non silent region detection * minor change * Documentation - Bump rocm-docs-core[api_reference] from 0.26.0 to 0.27.0 in /docs/sphinx (#253) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.26.0 to 0.27.0. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/RadeonOpenCompute/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.26.0...v0.27.0) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * RPP Resize Mirror Normalize Bugfix (#252) * added fix for hipMemset * remove pixel check for U8-F32 and U8-F16 for HOST codes --------- Co-authored-by: sampath1117 * added example for MMS calculation in comments for better understanding * Sphinx - updates (#257) * Sphinx - updates * Doxygen - Updates * Docs - Remove index.md * updated info used to for running audio test suite * removed bitdepth variable from audio test suite * added more information on computing NSR outputs in the example added * Fix doxygen for decibels Also removes extra QA reference files * move tensor_host_audio.cpp to host folder * Fix build errors and qa tests in Audio Test suite * Fix build errors and qa tests in Audio Test suite * Add reference output and test samples for downmix * Add down_mix in augmentation list and supported cases * Remove auto-merge repeated funcs * Improve clarity of header docs * Remove blank line * Improve clarity on header docs * Add Doxygen comments * minor change * converted golden outputs to binary file for downmixing * removed old golden output file for preemphasis and todecibels * modified info for downmixing as per new changes used handle memory for temporary buffers * formatting changes * moved the common code for SSE and AVX to outside * Update down_mixing.hpp license * Update rppt_tensor_audio_augmentations.h * combined the srcLength and channels tensors into single tensor --------- Signed-off-by: dependabot[bot] Co-authored-by: Snehaa Giridharan Co-authored-by: HazarathKumarM Co-authored-by: sampath1117 Co-authored-by: Kiriti Gowda Co-authored-by: Snehaa-Giridharan <118163708+snehaa8@users.noreply.github.com> Co-authored-by: Lisa Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Sundarrajan98 * RPP Voxel 3D Tensor Multiply scalar on HOST and HIP (#306) * added HIP support for voxel scalar multiply kernel * added HOST support for voxel multiply kernel added golden outputs for voxel multiply kernel * merge with master * RPP Test Suite Upgrade 4 - CSV to BIN conversions for file size reduction (#293) * change golden outputs from .csv files to .bin files * Changed comparision funtions to use .bin files * Address review comments * minor change * Address review comments * minor change --------- Co-authored-by: HazarathKumarM * converted multiply scalar voxel golden outputs to bin files * changed copyright from 2023 to 2024 --------- Co-authored-by: sampath1117 Co-authored-by: HazarathKumarM * Test Suite Bugfix (#307) * experimental changes for adding qa mode for performance tests * made changes to add display more information w.r.t QA results summary for performance tests * minor changes * Add changes to dump qa results to excel file * Add performance QA for three new tensor functions * update prerequisites in readme * added changes to handle unsupported cases * removed treshold dictionary and added performance Noise treshold add new dataset for performance QA * RPP Test Suite Upgrade 4 - CSV to BIN conversions for file size reduction (#293) * change golden outputs from .csv files to .bin files * Changed comparision funtions to use .bin files * Address review comments * minor change * Address review comments * minor change --------- Co-authored-by: HazarathKumarM * Changes to the performane summary dataframe * minor changes * Update CMakeLists.txt to add ${CMAKE_CURRENT_SOURCE_DIR} for CI * Update CMakeLists.txt fix * Update CMakeLists.txt fix * remove tabulate dependency * Update README.md to remove tabulate pip install * Fix for CI machine failure * Add note on performance * Fix segmentation fault * Revert QAmode to restrict HIP bitdepths * Use Rpp64u for HOST while comparing outputs * Fix ambiguous abs call * Fix for SLES CI HIP fail - error: incompatible pointer types assigning to 'unsigned long *' from 'unsigned long long *' - refOutput = TensorSumReferenceOutputs[numChannels].data(); --------- Co-authored-by: sampath1117 Co-authored-by: HazarathKumarM Co-authored-by: Snehaa Giridharan Co-authored-by: Pavel Tcherniaev * Add Vignette Tensor HOST and HIP Implementation * Address review comments * Update rpp_hip_common.hpp * Update vignette.hpp to add rpp_hip_math_nearbyintf8() * Update Tensor_hip.cpp to add hipHostFree * Fix init * Repeated initialization bugfix * Add host case 46 --------- Signed-off-by: dependabot[bot] Co-authored-by: HazarathKumarM Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Sam Wu Co-authored-by: Kiriti Gowda Co-authored-by: sampath1117 Co-authored-by: Snehaa Giridharan Co-authored-by: Snehaa-Giridharan <118163708+snehaa8@users.noreply.github.com> Co-authored-by: Lisa Co-authored-by: Sundarrajan98 Co-authored-by: Pavel Tcherniaev * Bump rocm-docs-core[api_reference] from 0.37.1 to 0.38.0 in /docs/sphinx (#333) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.37.1 to 0.38.0. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/ROCm/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.37.1...v0.38.0) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * RPP Tensor Audio Support - Resample (#310) * Initial commit - Non slient region detection Includes unittest setup * Initial commit - To Decibels Includes unittest setup * Intial commit - pre_emphasis_filter * Intial commit - down_mixing * Intial commit - slice_audio * Intial commit - mel_filter_bank * Intial commit - spectrogram * Intial commit - resample * Replace vectors with arrays * Cleanup * Minor cleanup * Optimize downmixing Kernel Includes cleanup * Remove unused variables in header file * Add axes parameter * Replace Rpp64s with Rpp32s * Replace vectors with arrays Includes optimization * Cleanup * Cleanup * Cleanup and optimize * Move malloc outside openMP loop * Optimize and precompute cutOff * Cleanup * Fix buffer used * Fix buffer used * Additional Cleanup * Fix buffer allocation Includes minor optimization * Optimize post incrmeent operation * Optimize post increment operation * Optimize post increment operation * Update testsuite for Audio * code cleanup * Add Readme file for Audio test suite * changes based on review comments * minor change * Remove unittest folders and updated README.md * Remove unit tests * minor change * code cleanup * added common header file for audio helper functions * removed unncessary audio wav files fixed bug in ROI updation for audio test suite resolved issue in summary generation for performance tests in python * removed log file * added doxygen support for audio * added doxygen changes for to_decibels * updated test suite support for to_decibels * minor change * added doxygen changes for preemphasis filter * updated changes for preemphasis filter in test suite * removed the usage of getMax function and used std::max_element * modularized code in test suite * merge with latest changes * minor change * minor change * minor change * resolved codacy warnings * Codacy fix - Remove unused cpuTime * CMakeLists - Version Update 1.5.0 - TOT Version * CHANGELOG Updates Version 1.5.0 placeholder * resolved issue with file_system dependency in test suite * Doxygen changes changed malloc to new in NSR kernel * RPP RICAP Tensor for HOST and HIP (#213) * Initial commit - Ricap HOST Tensor Includes testsuite changes * Add QA tests for RICAP Used three_images_224x224_src1 folder to create golden outputs * Add three_images_224x224_src1 into TEST_IMAGES * Support HIP Backend for RICAP * Fix HIP pkd3->pkd3 variant * regenerated golden outputs for RICAP minor changes in HOST shell script for handling RICAP in QA mode * minor bug fix in RICAP HIP kernels * Improve readability and Cleanup * Additional cleanup * Cleanup testsuite Includes new golden outputs * Additional testuite fixes * Minor cleanup * Fix codacy warnings * Address other codacy warnings * Update ricap.hpp with reference paper * Add RICAP dataset path in readme * Make changes to error codes returned * Modify roi crop region for unit and perf tests * RPP Tensor Water Augmentation on HOST and HIP (#181) * added water HOST and HIP codes * added water case in test suite * added golden outputs for water * added omp thread changes for water augmentation * experimental changes * fixed output issue with AVX2 instructions * added AVX2 support for PKD3 load function minor changes in PLN variant load functions * nwc commit - added avx2 changes for u8 layout toggle variants but need to add store functions for completion * Add Avx2 implementation for F32 and U8 toggle variants * Add AVX2 support for u8 pkd3-pln3 and i8 pkd3-pln3 for water augmentation * change F32 load and store logic * optimized the store function for F32 PLN3-PKD3 * reverted back irrelevant changes * minor change * optimized load and store functions for water U8 and F32 variants in host removed commented code * removed golden outputs for water * minor changes * renamed few functions and removed unused functions updated i8 pln1 load as per the optimized u8 pln1 load * fixed bug in i8 load function * changed cast to c++ style resolved spacing issues and added comments for AVX codes for better understanding made changes to handle cases where QA Tests are not supported * added golden outputs for water * updated golden outputs with latest changes * modified the u8, i8 pkd3-pln3 function and added comments for the vectorized code * fixed minor bug in I8 variants * made to changes to resolve codacy warnings * changed cast to c++ style in hip kernel * changed generic nn F32 loads using gather and setr instructions * added comments for latest changes * minor change * added definition for storing 32 and 64 bits from a 128bit register --------- Co-authored-by: sampath1117 Co-authored-by: HazarathKumarM * Fix build error * CMakeLists - Version Update 1.5.0 - TOT Version * CHANGELOG Updates Version 1.5.0 placeholder * Boost deps fix for test suite --------- Co-authored-by: Snehaa Giridharan Co-authored-by: sampath1117 Co-authored-by: Snehaa-Giridharan <118163708+snehaa8@users.noreply.github.com> Co-authored-by: HazarathKumarM Co-authored-by: Kiriti Gowda * Documentation - Readme & changelog updates (#251) * readme and changelog updates for 6.0 * minor update * added ctests for audio test suite for CI made changes to add more clarity on the QA Tests results * Cmake mods for ctest * HOST-only build error bugfix * added qa mode paramter to python audio script added golden output map for QA testing of Non silent region detection * minor change * Documentation - Bump rocm-docs-core[api_reference] from 0.26.0 to 0.27.0 in /docs/sphinx (#253) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.26.0 to 0.27.0. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/RadeonOpenCompute/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.26.0...v0.27.0) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * RPP Resize Mirror Normalize Bugfix (#252) * added fix for hipMemset * remove pixel check for U8-F32 and U8-F16 for HOST codes --------- Co-authored-by: sampath1117 * added example for MMS calculation in comments for better understanding * Sphinx - updates (#257) * Sphinx - updates * Doxygen - Updates * Docs - Remove index.md * updated info used to for running audio test suite * removed bitdepth variable from audio test suite * added more information on computing NSR outputs in the example added * Fix doxygen for decibels Also removes extra QA reference files * move tensor_host_audio.cpp to host folder * Fix build errors and qa tests in Audio Test suite * Fix build errors and qa tests in Audio Test suite * Add reference output and test samples for downmix * Add down_mix in augmentation list and supported cases * move Tensor_host_audio.cpp to host folder * fix qa mismatches * move Tensor_host_audio.cpp to host folder * fix qa mismatches * move Tensor_host_audio.cpp to host folder * Add spectrogram case in Tensor_host_audio.cpp * move Tensor_host_audio.cpp to host folder * fix qa mismatches * Remove auto-merge repeated funcs * Improve clarity of header docs * Remove blank line * Improve clarity on header docs * Add Doxygen comments * Add Doxygen comments * Add Doxygen comments * minor change * License - updates to 2024 and consistency changes (#298) * Match all CMakeLists.txt license as per RPP's outermost LICENSE file * Match all python files' license as per RPP's outermost LICENSE file * Match all .hpp files' license as per RPP's outermost LICENSE file * Match all .cpp files' license as per RPP's outermost LICENSE file * Match all .h files' license as per RPP's outermost LICENSE file * Remove all rights reserved as per LICENSE file * Remove double space in "Copyright (c) 2019 - 2023 Advanced Micro Devices, Inc." * Match all .cmake files' license as per RPP's outermost LICENSE file * Match all .cpp.in files' license as per RPP's outermost LICENSE file * Replace 283 occurrences in 282 files - 2023 to 2024 * Add "MIT License" title to 281 instances * Add missing license * Test - Update README.md for test_suite (#299) * Bump rocm-docs-core[api_reference] from 0.33.0 to 0.33.1 in /docs/sphinx (#301) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.33.0 to 0.33.1. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/ROCm/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.33.0...v0.33.1) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump rocm-docs-core[api_reference] from 0.33.1 to 0.33.2 in /docs/sphinx (#302) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.33.1 to 0.33.2. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/ROCm/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.33.1...v0.33.2) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Update doc codeowners (#303) * Documentation - Bump rocm-docs-core[api_reference] from 0.33.2 to 0.34.0 in /docs/sphinx (#304) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.33.2 to 0.34.0. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/ROCm/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.33.2...v0.34.0) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Test suite - upgrade 5 qa perf (#305) * experimental changes for adding qa mode for performance tests * made changes to add display more information w.r.t QA results summary for performance tests * minor changes * Add changes to dump qa results to excel file * Add performance QA for three new tensor functions * update prerequisites in readme * added changes to handle unsupported cases * removed treshold dictionary and added performance Noise treshold add new dataset for performance QA * RPP Test Suite Upgrade 4 - CSV to BIN conversions for file size reduction (#293) * change golden outputs from .csv files to .bin files * Changed comparision funtions to use .bin files * Address review comments * minor change * Address review comments * minor change --------- Co-authored-by: HazarathKumarM * Changes to the performane summary dataframe * minor changes * Update CMakeLists.txt to add ${CMAKE_CURRENT_SOURCE_DIR} for CI * Update CMakeLists.txt fix * Update CMakeLists.txt fix * remove tabulate dependency * Update README.md to remove tabulate pip install * Fix for CI machine failure * Add note on performance --------- Co-authored-by: sampath1117 Co-authored-by: HazarathKumarM Co-authored-by: Abishek <52214183+r-abishek@users.noreply.github.com> Co-authored-by: Snehaa Giridharan Co-authored-by: r-abishek * RPP Color Temperature on HOST and HIP (#271) * Initial commit - Color Temperature HOST Tensor * Initial commit - Color Temperature HIP Tensor * Add color temperature golden outputs * address review comments * Use reinterpret_cast instead of static_cast * Combine templated functions to support all datatypes into one (got minor perf difference of order 3%) Also fixes indentation * Fix i8 datatype * Cleanup * RPP Test Suite Upgrade 4 - CSV to BIN conversions for file size reduction (#293) * change golden outputs from .csv files to .bin files * Changed comparision funtions to use .bin files * Address review comments * minor change * Address review comments * minor change --------- Co-authored-by: HazarathKumarM * Fix PLN3 variant outputs Also modifies reference outputs * Update color_temperature.hpp license * Delete color_temperature_u8_Tensor_PKD3.csv * Delete color_temperature_u8_Tensor_PLN3.csv --------- Co-authored-by: snehaa8 Co-authored-by: HazarathKumarM Co-authored-by: Snehaa-Giridharan <118163708+snehaa8@users.noreply.github.com> * RPP Voxel 3D Tensor Add/Subtract scalar on HOST and HIP (#272) * added HOST support for voxel add kernel * added HIP support for voxel add kernel * added test suite support for add scalar * added Doxygen support and modified hip kernel function names as per new standard * added HOST support for voxel subtract kernel * added HIP support for voxel subtract kernel * added test suite support * updated the golden outputs for subtract with correct values * removed unnessary validation checks * Remove double spaces * Fix header * Fix all retval docs * Fix docs to add memory type * Fix comment * Add divider comment * Use post-increment efficiently * RPP Test Suite Upgrade 4 - CSV to BIN conversions for file size reduction (#293) * change golden outputs from .csv files to .bin files * Changed comparision funtions to use .bin files * Address review comments * minor change * Address review comments * minor change --------- Co-authored-by: HazarathKumarM * converted add and subtract scalar golden outputs to bin files * changed copyright from 2023 to 2024 * Update add_scalar.hpp license * Update subtract_scalar.hpp license --------- Co-authored-by: sampath1117 Co-authored-by: HazarathKumarM * removed unnecessary files * removed debugging print statement * updated copyright * updated description for resample based on latest changes * converted golden outputs for resample to binary files * Passed resampling window as a parameter to resampling function * RPP Magnitude on HOST and HIP (#278) * Initial commit - Magnitude HOST Tensor * Add QA reference outputs * Update runTests.py * Initial commit - Magnitude HIP Tensor * Add dual input support in testsuite * Optimize HOST kernel further * Optimize i8 datatype further * Modify comments * RPP Test Suite Upgrade 4 - CSV to BIN conversions for file size reduction (#293) * change golden outputs from .csv files to .bin files * Changed comparision funtions to use .bin files * Address review comments * minor change * Address review comments * minor change --------- Co-authored-by: HazarathKumarM * Bump rocm-docs-core[api_reference] from 0.31.0 to 0.33.0 in /docs/sphinx (#294) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.31.0 to 0.33.0. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/ROCm/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.31.0...v0.33.0) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Update Copywright year * Combine templated functions to support all datatypes * Modify format of reference outputs * Update rppi_arithmetic_operations.h license * Update rppt_tensor_arithmetic_operations.h license * Update host_tensor_arithmetic_operations.hpp * Update magnitude.hpp license * Update hip_tensor_arithmetic_operations.hpp license * Delete magnitude_u8_Tensor_PKD3.csv * Delete magnitude_u8_Tensor_PLN1.csv * Delete magnitude_u8_Tensor_PLN3.csv * Update rpp_test_suite_common.h license * Update runTests.py license * Update Tensor_hip.cpp license * Update runTests.py license * Update Tensor_host.cpp license --------- Signed-off-by: dependabot[bot] Co-authored-by: Snehaa Giridharan Co-authored-by: HazarathKumarM Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Snehaa-Giridharan <118163708+snehaa8@users.noreply.github.com> * removed unnecessary files removed unncessary validation checks in test suite * modified sinc to use ONE_OVER_6 macro * combined srcLength and channels into single tensor removed the usage of quality parameter since not used in the kernel * minor change * Bump rocm-docs-core[api_reference] from 0.34.0 to 0.34.2 in /docs/sphinx (#309) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.34.0 to 0.34.2. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/ROCm/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.34.0...v0.34.2) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * RPP Tensor Audio Support - Down Mixing (#296) * Initial commit - Non slient region detection Includes unittest setup * Initial commit - To Decibels Includes unittest setup * Intial commit - pre_emphasis_filter * Intial commit - down_mixing * Replace vectors with arrays * Cleanup * Minor cleanup * Optimize downmixing Kernel Includes cleanup * Replace Rpp64s with Rpp32s * Cleanup * Optimize and precompute cutOff * Fix buffer used * Fix buffer used * Additional Cleanup * Optimize post incrmeent operation * Optimize post increment operation * Update testsuite for Audio * code cleanup * Add Readme file for Audio test suite * changes based on review comments * minor change * Remove unittest folders and updated README.md * Remove unit tests * minor change * code cleanup * added common header file for audio helper functions * removed unncessary audio wav files fixed bug in ROI updation for audio test suite resolved issue in summary generation for performance tests in python * removed log file * added doxygen support for audio * added doxygen changes for to_decibels * updated test suite support for to_decibels * minor change * added doxygen changes for preemphasis filter * updated changes for preemphasis filter in test suite * removed the usage of getMax function and used std::max_element * modularized code in test suite * merge with latest changes * minor change * minor change * minor change * resolved codacy warnings * Codacy fix - Remove unused cpuTime * CMakeLists - Version Update 1.5.0 - TOT Version * CHANGELOG Updates Version 1.5.0 placeholder * resolved issue with file_system dependency in test suite * Doxygen changes changed malloc to new in NSR kernel * RPP RICAP Tensor for HOST and HIP (#213) * Initial commit - Ricap HOST Tensor Includes testsuite changes * Add QA tests for RICAP Used three_images_224x224_src1 folder to create golden outputs * Add three_images_224x224_src1 into TEST_IMAGES * Support HIP Backend for RICAP * Fix HIP pkd3->pkd3 variant * regenerated golden outputs for RICAP minor changes in HOST shell script for handling RICAP in QA mode * minor bug fix in RICAP HIP kernels * Improve readability and Cleanup * Additional cleanup * Cleanup testsuite Includes new golden outputs * Additional testuite fixes * Minor cleanup * Fix codacy warnings * Address other codacy warnings * Update ricap.hpp with reference paper * Add RICAP dataset path in readme * Make changes to error codes returned * Modify roi crop region for unit and perf tests * RPP Tensor Water Augmentation on HOST and HIP (#181) * added water HOST and HIP codes * added water case in test suite * added golden outputs for water * added omp thread changes for water augmentation * experimental changes * fixed output issue with AVX2 instructions * added AVX2 support for PKD3 load function minor changes in PLN variant load functions * nwc commit - added avx2 changes for u8 layout toggle variants but need to add store functions for completion * Add Avx2 implementation for F32 and U8 toggle variants * Add AVX2 support for u8 pkd3-pln3 and i8 pkd3-pln3 for water augmentation * change F32 load and store logic * optimized the store function for F32 PLN3-PKD3 * reverted back irrelevant changes * minor change * optimized load and store functions for water U8 and F32 variants in host removed commented code * removed golden outputs for water * minor changes * renamed few functions and removed unused functions updated i8 pln1 load as per the optimized u8 pln1 load * fixed bug in i8 load function * changed cast to c++ style resolved spacing issues and added comments for AVX codes for better understanding made changes to handle cases where QA Tests are not supported * added golden outputs for water * updated golden outputs with latest changes * modified the u8, i8 pkd3-pln3 function and added comments for the vectorized code * fixed minor bug in I8 variants * made to changes to resolve codacy warnings * changed cast to c++ style in hip kernel * changed generic nn F32 loads using gather and setr instructions * added comments for latest changes * minor change * added definition for storing 32 and 64 bits from a 128bit register --------- Co-authored-by: sampath1117 Co-authored-by: HazarathKumarM * Fix build error * CMakeLists - Version Update 1.5.0 - TOT Version * CHANGELOG Updates Version 1.5.0 placeholder * Boost deps fix for test suite --------- Co-authored-by: Snehaa Giridharan Co-authored-by: sampath1117 Co-authored-by: Snehaa-Giridharan <118163708+snehaa8@users.noreply.github.com> Co-authored-by: HazarathKumarM Co-authored-by: Kiriti Gowda * Documentation - Readme & changelog updates (#251) * readme and changelog updates for 6.0 * minor update * added ctests for audio test suite for CI made changes to add more clarity on the QA Tests results * Cmake mods for ctest * HOST-only build error bugfix * added qa mode paramter to python audio script added golden output map for QA testing of Non silent region detection * minor change * Documentation - Bump rocm-docs-core[api_reference] from 0.26.0 to 0.27.0 in /docs/sphinx (#253) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.26.0 to 0.27.0. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/RadeonOpenCompute/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.26.0...v0.27.0) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * RPP Resize Mirror Normalize Bugfix (#252) * added fix for hipMemset * remove pixel check for U8-F32 and U8-F16 for HOST codes --------- Co-authored-by: sampath1117 * added example for MMS calculation in comments for better understanding * Sphinx - updates (#257) * Sphinx - updates * Doxygen - Updates * Docs - Remove index.md * updated info used to for running audio test suite * removed bitdepth variable from audio test suite * added more information on computing NSR outputs in the example added * Fix doxygen for decibels Also removes extra QA reference files * move tensor_host_audio.cpp to host folder * Fix build errors and qa tests in Audio Test suite * Fix build errors and qa tests in Audio Test suite * Add reference output and test samples for downmix * Add down_mix in augmentation list and supported cases * Remove auto-merge repeated funcs * Improve clarity of header docs * Remove blank line * Improve clarity on header docs * Add Doxygen comments * minor change * converted golden outputs to binary file for downmixing * removed old golden output file for preemphasis and todecibels * modified info for downmixing as per new changes used handle memory for temporary buffers * formatting changes * moved the common code for SSE and AVX to outside * Update down_mixing.hpp license * Update rppt_tensor_audio_augmentations.h * combined the srcLength and channels tensors into single tensor --------- Signed-off-by: dependabot[bot] Co-authored-by: Snehaa Giridharan Co-authored-by: HazarathKumarM Co-authored-by: sampath1117 Co-authored-by: Kiriti Gowda Co-authored-by: Snehaa-Giridharan <118163708+snehaa8@users.noreply.github.com> Co-authored-by: Lisa Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Sundarrajan98 * RPP Voxel 3D Tensor Multiply scalar on HOST and HIP (#306) * added HIP support for voxel scalar multiply kernel * added HOST support for voxel multiply kernel added golden outputs for voxel multiply kernel * merge with master * RPP Test Suite Upgrade 4 - CSV to BIN conversions for file size reduction (#293) * change golden outputs from .csv files to .bin files * Changed comparision funtions to use .bin files * Address review comments * minor change * Address review comments * minor change --------- Co-authored-by: HazarathKumarM * converted multiply scalar voxel golden outputs to bin files * changed copyright from 2023 to 2024 --------- Co-authored-by: sampath1117 Co-authored-by: HazarathKumarM * Test Suite Bugfix (#307) * experimental changes for adding qa mode for performance tests * made changes to add display more information w.r.t QA results summary for performance tests * minor changes * Add changes to dump qa results to excel file * Add performance QA for three new tensor functions * update prerequisites in readme * added changes to handle unsupported cases * removed treshold dictionary and added performance Noise treshold add new dataset for performance QA * RPP Test Suite Upgrade 4 - CSV to BIN conversions for file size reduction (#293) * change golden outputs from .csv files to .bin files * Changed comparision funtions to use .bin files * Address review comments * minor change * Address review comments * minor change --------- Co-authored-by: HazarathKumarM * Changes to the performane summary dataframe * minor changes * Update CMakeLists.txt to add ${CMAKE_CURRENT_SOURCE_DIR} for CI * Update CMakeLists.txt fix * Update CMakeLists.txt fix * remove tabulate dependency * Update README.md to remove tabulate pip install * Fix for CI machine failure * Add note on performance * Fix segmentation fault * Revert QAmode to restrict HIP bitdepths * Use Rpp64u for HOST while comparing outputs * Fix ambiguous abs call * Fix for SLES CI HIP fail - error: incompatible pointer types assigning to 'unsigned long *' from 'unsigned long long *' - refOutput = TensorSumReferenceOutputs[numChannels].data(); --------- Co-authored-by: sampath1117 Co-authored-by: HazarathKumarM Co-authored-by: Snehaa Giridharan Co-authored-by: Pavel Tcherniaev * used std functions for floor and ceil use static_cast instead of floor in the resample kernel * Bump rocm-docs-core[api_reference] from 0.34.2 to 0.35.0 in /docs/sphinx (#313) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.34.2 to 0.35.0. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/ROCm/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.34.2...v0.35.0) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * RPP Reduction - Tensor min and Tensor max on HOST and HIP (#260) * Minor Change * Add Validation check for DST_FOLDER path * added water HOST and HIP codes * added water case in test suite * added golden outputs for water * Add Validation checks for all options in testAllScript.sh * Add sanity check for dual Input cases Set Max Dimension and Max Image Dump Replaced Fast DCT tag with Accurate DCT * Regenerate golden outputs using accurate dct Flag Add golden outputs for some new augmentations * Fix Flip golden outputs mismatch Fix PLN3 variants mismatch in QA mode * Add MAX_BATCH_SIZE check removed Augmentations function calls for failing Qa modes code cleanup * Add crop and gamma correction augmentations code cleanup * Add comments to functions in rpp_test_suite_common.h * minor change * code cleanup * minor code changes * Change roi and Image sizes for crop augmentation * Change numIterations option to numRuns Addressed PR comments * added omp thread changes for water augmentation * experimental changes * fixed output issue with AVX2 instructions * added AVX2 support for PKD3 load function minor changes in PLN variant load functions * Add turboJpeg header to update maxHeight and maxWidth values * nwc commit - added avx2 changes for u8 layout toggle variants but need to add store functions for completion * Change the performance Timings logic * Add Avx2 implementation for F32 and U8 toggle variants * minor change to support u8_f16 and u8_f32 cases * Regenerate LUT golden outputs with ACCURATE_DCT tag * Minor code changes * Add AVX2 support for u8 pkd3-pln3 and i8 pkd3-pln3 for water augmentation * Made changes to the runTests.py in Host to remove testAllScipts.sh * Made changes to the runTests.py in HIP to remove testAllScipts.sh * Initial commit - Image min and max Reduction kernel Includes * u8 datatype for both min and max HOST Tensor of all variants. * Testsuite changes. * NWC -initial code for min max PLN3 - PLN3 * made changes to split min and max kernels seperately * splitted kernels for min and max * made changes to print final max/min in the R,G,B channels * fixed inaccuracies in min/max computation * made changes to typecast intermediate output to output requested by user added comments for the code code cleanup and minor changes in test suite * fixed build issues removed image folders used for min, max and sum reverted unwanted file changes * minor changes in test suite * removed support for unwanted test case in Tensor_hip.cpp * Adds new option roi * remove testAllScripts.sh * Adds roi Option in HIP backend * Implement f32 variants * Implement f16 and i8 datatype variants * change F32 load and store logic * Add build flags in CMakeLists.txt to set AVX/SSE flags based on the system configuration * minor code changes * Initial commit - Image sum Reduction kernel Includes u8 PLN1 -> PLN1 conversion for HOST Tensor * Implement PKD3 and PLN3 for Image sum Tensor HOST * Support i8, f16 and f32 datatypes * Initial commit - Image sum Reduction HIP kernel Includes u8 PLN1 -> PLN1 conversion for Tensor * Implement PKD3 and PLN3 for Image sum Tensor HIP * Add support in testsuite Revert normalization for i8 HOST Tensor variants * Fix HIP testsuite Remove additional blanks for 1 channel output * Modify print statement in HIP testsuite * Improve readability for testsuite outputs * optimized the store function for F32 PLN3-PKD3 * reverted back irrelevant changes * minor change * Fix HIP to support larger inputs * optimized load and store functions for water U8 and F32 variants in host removed commented code * Cleanup * removed golden outputs for water * minor changes * Cleanup Support Reduction QA test in testsuite * renamed few functions and removed unused functions updated i8 pln1 load as per the optimized u8 pln1 load * fixed bug in i8 load function * Remove unused variables and C style casting * changed cast to c++ style resolved spacing issues and added comments for AVX codes for better understanding made changes to handle cases where QA Tests are not supported * added golden outputs for water * updated golden outputs with latest changes * modified the u8, i8 pkd3-pln3 function and added comments for the vectorized code * fixed minor bug in I8 variants * Optimize u8 datatype further * Fix static_cast * made to changes to resolve codacy warnings * changed cast to c++ style in hip kernel * Initial commit - Ricap HOST Tensor Includes testsuite changes * Add QA tests for RICAP Used three_images_224x224_src1 folder to create golden outputs * Add three_images_224x224_src1 into TEST_IMAGES * added rotate case with golden outputs changed generic bilinear HOST codes to match with HIP codes * Add golden output for remaining all tensor augmentations * fix python script issues * Optimize u8 and i8 datatype Uses uint and int internal processing instead of float * Fix testsuite build errors * minor change * Fix QA check * Modify api naming from image_sum to tensor_sum Includes changes for both HOST and HIP * Support HIP Backend for RICAP * change rcm and rmn golden outputs * Fix HIP pkd3->pkd3 variant * changes based on review comments * change test_suite folder to tests * Optimize u8 and i8 datatype of HIP Includes modification in naming of shared memory * minor fix * changed generic nn F32 loads using gather and setr instructions * Optimize and cleanup U8 HIP * regenerated golden outputs for RICAP minor changes in HOST shell script for handling RICAP in QA mode * minor bug fix in RICAP HIP kernels * Fix i8 datatype variants Includes cleanup * Fix the issues with color_to_greyscale * remove the empty folder creation * reverting back the folder name change * minor change * added comments for latest changes * minor change * Improve readability and Cleanup * Fix QA for HIP Includes cleanup * resolved review comments * minor change * Modify api naming from image_ to tensor_ for HOST * Add support for QA tests * removed range check for RMN U8-F32 and U8-F16 variants changed from hipMemset to hipMemsetAsync for RMN HIP Kernel removed multiplication by 255 for stdDev in RMN HOST U8-F16 and U8-F32 variants * Modify naming of shared memory with _smem in HIP Includes cleanup * Typecast and reuse markArr for HIP U8 and I8 * Cleanup and minor optimization * minor fix * fix codacy warnings * Additional cleanup * Cleanup and move #define * Changed the complexity of if statements in runTests.py * Cleanup testsuite Includes new golden outputs * Additional testuite fixes * Minor cleanup * Codacy fixes * Fix codacy warnings * Codacy fix * Address other codacy warnings * cleanup * Change Image functions to generic * Update ricap.hpp with reference paper * resolved minor issues happened with merge * minor changes * fixed minor issue with getting profiler times * minor formatting changes * resolved build issues in test suite renamed the min and max kernel file names * RPP RICAP Tensor for HOST and HIP (#213) * Initial commit - Ricap HOST Tensor Includes testsuite changes * Add QA tests for RICAP Used three_images_224x224_src1 folder to create golden outputs * Add three_images_224x224_src1 into TEST_IMAGES * Support HIP Backend for RICAP * Fix HIP pkd3->pkd3 variant * regenerated golden outputs for RICAP minor changes in HOST shell script for handling RICAP in QA mode * minor bug fix in RICAP HIP kernels * Improve readability and Cleanup * Additional cleanup * Cleanup testsuite Includes new golden outputs * Additional testuite fixes * Minor cleanup * Fix codacy warnings * Address other codacy warnings * Update ricap.hpp with reference paper * Add RICAP dataset path in readme * Make changes to error codes returned * Modify roi crop region for unit and perf tests * RPP Tensor Water Augmentation on HOST and HIP (#181) * added water HOST and HIP codes * added water case in test suite * added golden outputs for water * added omp thread changes for water augmentation * experimental changes * fixed output issue with AVX2 instructions * added AVX2 support for PKD3 load function minor changes in PLN variant load functions * nwc commit - added avx2 changes for u8 layout toggle variants but need to add store functions for completion * Add Avx2 implementation for F32 and U8 toggle variants * Add AVX2 support for u8 pkd3-pln3 and i8 pkd3-pln3 for water augmentation * change F32 load and store logic * optimized the store function for F32 PLN3-PKD3 * reverted back irrelevant changes * minor change * optimized load and store functions for water U8 and F32 variants in host removed commented code * removed golden outputs for water * minor changes * renamed few functions and removed unused functions updated i8 pln1 load as per the optimized u8 pln1 load * fixed bug in i8 load function * changed cast to c++ style resolved spacing issues and added comments for AVX codes for better understanding made changes to handle cases where QA Tests are not supported * added golden outputs for water * updated golden outputs with latest changes * modified the u8, i8 pkd3-pln3 function and added comments for the vectorized code * fixed minor bug in I8 variants * made to changes to resolve codacy warnings * changed cast to c++ style in hip kernel * changed generic nn F32 loads using gather and setr instructions * added comments for latest changes * minor change * added definition for storing 32 and 64 bits from a 128bit register --------- Co-authored-by: sampath1117 Co-authored-by: HazarathKumarM * Fix build error * CMakeLists - Version Update 1.5.0 - TOT Version * CHANGELOG Updates Version 1.5.0 placeholder * Boost deps fix for test suite --------- Co-authored-by: Snehaa Giridharan Co-authored-by: sampath1117 Co-authored-by: Snehaa-Giridharan <118163708+snehaa8@users.noreply.github.com> Co-authored-by: HazarathKumarM Co-authored-by: Kiriti Gowda * Documentation - Readme & changelog updates (#251) * readme and changelog updates for 6.0 * minor update * Documentation - Bump rocm-docs-core[api_reference] from 0.26.0 to 0.27.0 in /docs/sphinx (#253) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.26.0 to 0.27.0. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/RadeonOpenCompute/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.26.0...v0.27.0) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * RPP Resize Mirror Normalize Bugfix (#252) * added fix for hipMemset * remove pixel check for U8-F32 and U8-F16 for HOST codes --------- Co-authored-by: sampath1117 * Cmake fix to prevent warning * Fix paths in new python scripts * Sphinx - updates (#257) * Sphinx - updates * Doxygen - Updates * Docs - Remove index.md * Test suite fixes after tensor_min / tensor_max HOST merge * Fix max case * QA tests fix for hip and host * naming convention changes as per new std * Substitute imagePartial with partial * Substitute imageMin/imageMax with min/max * Replace hipMemset with hipMemsetAsync, and replace hipDeviceSynchronize with hipStreamSynchronize * Use variable instead of batchCount*4 * Use post increment effectivly * Resolve codacy warnings * Additional cleanup * remove unused variable * Documentation - Bump rocm-docs-core[api_reference] from 0.28.0 to 0.29.0 in /docs/sphinx (#265) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.28.0 to 0.29.0. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/RadeonOpenCompute/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.28.0...v0.29.0) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Remove auto merge boost * Spaces formatting * Bump rocm-docs-core[api_reference] from 0.29.0 to 0.30.1 in /docs/sphinx (#268) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.29.0 to 0.30.1. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/RadeonOpenCompute/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.29.0...v0.30.1) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * add support for mi300 (#269) * Documentation - Bump rocm-docs-core[api_reference] from 0.30.1 to 0.30.2 in /docs/sphinx (#273) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.30.1 to 0.30.2. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/RadeonOpenCompute/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.30.1...v0.30.2) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Cleanup by removing oneliner functions as inline * RPP Tensor Audio Support - To Decibels (#258) * Initial commit - Non slient region detection Includes unittest setup * Initial commit - To Decibels Includes unittest setup * Replace vectors with arrays * Cleanup * Replace Rpp64s with Rpp32s * Optimize and precompute cutOff * Fix buffer used * Fix buffer used * Additional Cleanup * Update testsuite for Audio * code cleanup * Add Readme file for Audio test suite * changes based on review comments * minor change * Remove unittest folders and updated README.md * Remove unit tests * minor change * code cleanup * added common header file for audio helper functions * removed unncessary audio wav files fixed bug in ROI updation for audio test suite resolved issue in summary generation for performance tests in python * removed log file * added doxygen support for audio * added doxygen changes for to_decibels * updated test suite support for to_decibels * minor change * removed the usage of getMax function and used std::max_element * modularized code in test suite * merge with latest changes * minor change * minor change * resolved codacy warnings * Codacy fix - Remove unused cpuTime * CMakeLists - Version Update 1.5.0 - TOT Version * CHANGELOG Updates Version 1.5.0 placeholder * resolved issue with file_system dependency in test suite * Doxygen changes changed malloc to new in NSR kernel * RPP RICAP Tensor for HOST and HIP (#213) * Initial commit - Ricap HOST Tensor Includes testsuite changes * Add QA tests for RICAP Used three_images_224x224_src1 folder to create golden outputs * Add three_images_224x224_src1 into TEST_IMAGES * Support HIP Backend for RICAP * Fix HIP pkd3->pkd3 variant * regenerated golden outputs for RICAP minor changes in HOST shell script for handling RICAP in QA mode * minor bug fix in RICAP HIP kernels * Improve readability and Cleanup * Additional cleanup * Cleanup testsuite Includes new golden outputs * Additional testuite fixes * Minor cleanup * Fix codacy warnings * Address other codacy warnings * Update ricap.hpp with reference paper * Add RICAP dataset path in readme * Make changes to error codes returned * Modify roi crop region for unit and perf tests * RPP Tensor Water Augmentation on HOST and HIP (#181) * added water HOST and HIP codes * added water case in test suite * added golden outputs for water * added omp thread changes for water augmentation * experimental changes * fixed output issue with AVX2 instructions * added AVX2 support for PKD3 load function minor changes in PLN variant load functions * nwc commit - added avx2 changes for u8 layout toggle variants but need to add store functions for completion * Add Avx2 implementation for F32 and U8 toggle variants * Add AVX2 support for u8 pkd3-pln3 and i8 pkd3-pln3 for water augmentation * change F32 load and store logic * optimized the store function for F32 PLN3-PKD3 * reverted back irrelevant changes * minor change * optimized load and store functions for water U8 and F32 variants in host removed commented code * removed golden outputs for water * minor changes * renamed few functions and removed unused functions updated i8 pln1 load as per the optimized u8 pln1 load * fixed bug in i8 load function * changed cast to c++ style resolved spacing issues and added comments for AVX codes for better understanding made changes to handle cases where QA Tests are not supported * added golden outputs for water * updated golden outputs with latest changes * modified the u8, i8 pkd3-pln3 function and added comments for the vectorized code * fixed minor bug in I8 variants * made to changes to resolve codacy warnings * changed cast to c++ style in hip kernel * changed generic nn F32 loads using gather and setr instructions * added comments for latest changes * minor change * added definition for storing 32 and 64 bits from a 128bit register --------- Co-authored-by: sampath1117 Co-authored-by: HazarathKumarM * Fix build error * CMakeLists - Version Update 1.5.0 - TOT Version * CHANGELOG Updates Version 1.5.0 placeholder * Boost deps fix for test suite --------- Co-authored-by: Snehaa Giridharan Co-authored-by: sampath1117 Co-authored-by: Snehaa-Giridharan <118163708+snehaa8@users.noreply.github.com> Co-authored-by: HazarathKumarM Co-authored-by: Kiriti Gowda * Documentation - Readme & changelog updates (#251) * readme and changelog updates for 6.0 * minor update * added ctests for audio test suite for CI made changes to add more clarity on the QA Tests results * Cmake mods for ctest * HOST-only build error bugfix * added qa mode paramter to python audio script added golden output map for QA testing of Non silent region detection * minor change * Documentation - Bump rocm-docs-core[api_reference] from 0.26.0 to 0.27.0 in /docs/sphinx (#253) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.26.0 to 0.27.0. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/RadeonOpenCompute/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.26.0...v0.27.0) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * RPP Resize Mirror Normalize Bugfix (#252) * added fix for hipMemset * remove pixel check for U8-F32 and U8-F16 for HOST codes --------- Co-authored-by: sampath1117 * added example for MMS calculation in comments for better understanding * Sphinx - updates (#257) * Sphinx - updates * Doxygen - Updates * Docs - Remove index.md * updated info used to for running audio test suite * removed bitdepth variable from audio test suite * added more information on computing NSR outputs in the example added * Fix doxygen for decibels Also removes extra QA reference files * Fix build errors and qa tests in Audio Test suite * Remove auto-merge repeated funcs * Improve clarity on header docs * made changes based on review comments * stored golden outputs of to_decibels in binary file removed golden output text files for non silent region * removed unused parameter in verify_output function * updated list of cases supported in python script * added error handling for opening golden output file * Codacy fix and tests warning fix * Codacy fix * Codacy fix trial * codacy fix for checking boundaries of fstream --------- Signed-off-by: dependabot[bot] Co-authored-by: Snehaa Giridharan Co-authored-by: HazarathKumarM Co-authored-by: sampath1117 Co-authored-by: Kiriti Gowda Co-authored-by: Snehaa-Giridharan <118163708+snehaa8@users.noreply.github.com> Co-authored-by: Lisa Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Documentation - Bump rocm-docs-core[api_reference] from 0.30.2 to 0.30.3 in /docs/sphinx (#274) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.30.2 to 0.30.3. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/RadeonOpenCompute/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.30.2...v0.30.3) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Adding issue template (#270) * Add files via upload * added ROCm v6, MI300, default component * Fix cast used in testsuite Includes minor fixes * Fix displaying f16 outputs * Optimize HOST min/max reduce function further * Fix spacing in HIP kernels * Fix PLN1 outputs for u8 and i8 datatypes of HOST backend * RPP Test Suite Upgrade 4 - CSV to BIN conversions for file size reduction (#293) * change golden outputs from .csv files to .bin files * Changed comparision funtions to use .bin files * Address review comments * minor change * Address review comments * minor change --------- Co-authored-by: HazarathKumarM * Bump rocm-docs-core[api_reference] from 0.31.0 to 0.33.0 in /docs/sphinx (#294) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.31.0 to 0.33.0. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/ROCm/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.31.0...v0.33.0) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Store reference outputs via map for min and max kernels * Update tensor_max.hpp license * Update tensor_min.hpp license * Fix output comparison check * Merge branch 'ar/opt_tensor_min_tensor_max' of https://github.com/r-abishek/rpp into sn/tensor_min_max * Modify exit condition used in outer most kernel * Modify srcIdx for HIP Tensor min * Using maximum as 255 for HIP Tensor min * Modify srcIdx for HIP Tensor max kernel Also fixes build error in testsuite * Fix corrupted outputs displayed for Tensor sum * Fix corruption issue seen with tensor sum kernel * Fix minimum for I8 Tensor max kernel * Modified HIP buffer initialization with a common function * Fix redefinition * Remove additional variables xAlignedLength * Remove unwanted xAlignedLength and xDiff * Remove redefinition of TensorSumReferenceOutputs * Fix for CI issue * Add parenthesis --------- Signed-off-by: dependabot[bot] Co-authored-by: HazarathKumarM Co-authored-by: sampath1117 Co-authored-by: Snehaa Giridharan Co-authored-by: Snehaa-Giridharan <118163708+snehaa8@users.noreply.github.com> Co-authored-by: fiona-gladwin Co-authored-by: Kiriti Gowda Co-authored-by: Lisa Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Lakshmi Kumar Co-authored-by: abhimeda <138710508+abhimeda@users.noreply.github.com> * CI - Update precheckin.groovy * Png update (#316) * PNG file conversion * reference .png files * remove JPG files * edit IMAGE_PATH * RPP Test Suite Upgrade 6 - Restructure common HIP/HOST code (#315) * moved the common functions used in a python test suites to to a common python script created helper function for displaying QA test summary * reversed the order of performance runs loop and decode loop in all test suites * modified remaining python scripts to use print qa helper function for displaying QA results * added new helper function for print the performance test results as a summary * added caseMax, caseMin variables in image test suite made changes to run only necessary bitdepths needed incase of qa mode --------- Co-authored-by: sampath1117 * Fix build error * removed outBegin variable * remove duplicate line in readme --------- Signed-off-by: dependabot[bot] Co-authored-by: Snehaa Giridharan Co-authored-by: HazarathKumarM Co-authored-by: sampath1117 Co-authored-by: Kiriti Gowda Co-authored-by: Snehaa-Giridharan <118163708+snehaa8@users.noreply.github.com> Co-authored-by: Lisa Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Sundarrajan98 Co-authored-by: Sam Wu Co-authored-by: Pavel Tcherniaev Co-authored-by: fiona-gladwin Co-authored-by: Lakshmi Kumar Co-authored-by: abhimeda <138710508+abhimeda@users.noreply.github.com> Co-authored-by: randyh62 <42045079+randyh62@users.noreply.github.com> * Docs - Missing input and output images for Doxygen (#331) * added missing outputs for image augmentations modified the description with correct output names * added gif for voxel input and outputs * modified the output images for water, resize_crop_mirror and resize_mirror_normalize --------- Co-authored-by: sampath1117 * Scratch buffers rename for HOST and HIP (#324) * Change all maskArr to scratchBufferHip * Change all tempFloatmem to scratchBufferHost * Update CMakeLists.txt Version updates * Minor build fix * RPP BitwiseAND and BitwiseOR Tensor on HOST and HIP (#318) * HOST test suite update for voxel processing * Initial commit - Implements PLN1 Fmadd Kernel * Add dependencies for fmadd kernel * Implement NDHWC variant for Fmadd Includes testsuite changes to support 3 channels * Implement Slice HOST Kernel Includes testsuite changes * Fix NCDHW variant for Slice * Cleanup * Fix NDHWC variant * Fix stride used for NDHWC * Fix NDHWC layout handling in testsuite Temporarily converts pln3 inputs into pkd3 inputs later stores them as pln3 after processing * Add sample input .nii file Also fixes build error in testsuite * Fix NDHWC layout for fmadd and slice Also includes fixes in voxel testsuite * Initial commit - Bitwise AND HOST Tensor * Match u8 and i8 outputs with BatchPD variant * Fix i8 PKD3 -> PLN3 * Initial commit - Bitwise AND HIP Tensor Also includes fixing f16 and f32 datatype of HOST * Add reference outputs * License - updates to 2024 and consistency changes (#298) * Match all CMakeLists.txt license as per RPP's outermost LICENSE file * Match all python files' license as per RPP's outermost LICENSE file * Match all .hpp files' license as per RPP's outermost LICENSE file * Match all .cpp files' license as per RPP's outermost LICENSE file * Match all .h files' license as per RPP's outermost LICENSE file * Remove all rights reserved as per LICENSE file * Remove double space in "Copyright (c) 2019 - 2023 Advanced Micro Devices, Inc." * Match all .cmake files' license as per RPP's outermost LICENSE file * Match all .cpp.in files' license as per RPP's outermost LICENSE file * Replace 283 occurrences in 282 files - 2023 to 2024 * Add "MIT License" title to 281 instances * Add missing license * Test - Update README.md for test_suite (#299) * Modify reference outputs Update Copywrite * Combine templated functions to support all datatypes * Initial commit - Bitwise OR HOST * Fix GPU kernel details * Fix case number for HOST testsuite * Initial commit - Bitwise OR HIP Includes reference output * Bump rocm-docs-core[api_reference] from 0.33.0 to 0.33.1 in /docs/sphinx (#301) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.33.0 to 0.33.1. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/ROCm/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.33.0...v0.33.1) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump rocm-docs-core[api_reference] from 0.33.1 to 0.33.2 in /docs/sphinx (#302) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.33.1 to 0.33.2. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/ROCm/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.33.1...v0.33.2) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Address review comments * Update doc codeowners (#303) * Documentation - Bump rocm-docs-core[api_reference] from 0.33.2 to 0.34.0 in /docs/sphinx (#304) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.33.2 to 0.34.0. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/ROCm/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.33.2...v0.34.0) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Test suite - upgrade 5 qa perf (#305) * experimental changes for adding qa mode for performance tests * made changes to add display more information w.r.t QA results summary for performance tests * minor changes * Add changes to dump qa results to excel file * Add performance QA for three new tensor functions * update prerequisites in readme * added changes to handle unsupported cases * removed treshold dictionary and added performance Noise treshold add new dataset for performance QA * RPP Test Suite Upgrade 4 - CSV to BIN conversions for file size reduction (#293) * change golden outputs from .csv files to .bin files * Changed comparision funtions to use .bin files * Address review comments * minor change * Address review comments * minor change --------- Co-authored-by: HazarathKumarM * Changes to the performane summary dataframe * minor changes * Update CMakeLists.txt to add ${CMAKE_CURRENT_SOURCE_DIR} for CI * Update CMakeLists.txt fix * Update CMakeLists.txt fix * remove tabulate dependency * Update README.md to remove tabulate pip install * Fix for CI machine failure * Add note on performance --------- Co-authored-by: sampath1117 Co-authored-by: HazarathKumarM Co-authored-by: Abishek <52214183+r-abishek@users.noreply.github.com> Co-authored-by: Snehaa Giridharan Co-authored-by: r-abishek * RPP Color Temperature on HOST and HIP (#271) * Initial commit - Color Temperature HOST Tensor * Initial commit - Color Temperature HIP Tensor * Add color temperature golden outputs * address review comments * Use reinterpret_cast instead of static_cast * Combine templated functions to support all datatypes into one (got minor perf difference of order 3%) Also fixes indentation * Fix i8 datatype * Cleanup * RPP Test Suite Upgrade 4 - CSV to BIN conversions for file size reduction (#293) * change golden outputs from .csv files to .bin files * Changed comparision funtions to use .bin files * Address review comments * minor change * Address review comments * minor change --------- Co-authored-by: HazarathKumarM * Fix PLN3 variant outputs Also modifies reference outputs * Update color_temperature.hpp license * Delete color_temperature_u8_Tensor_PKD3.csv * Delete color_temperature_u8_Tensor_PLN3.csv --------- Co-authored-by: snehaa8 Co-authored-by: HazarathKumarM Co-authored-by: Snehaa-Giridharan <118163708+snehaa8@users.noreply.github.com> * RPP Voxel 3D Tensor Add/Subtract scalar on HOST and HIP (#272) * added HOST support for voxel add kernel * added HIP support for voxel add kernel * added test suite support for add scalar * added Doxygen support and modified hip kernel function names as per new standard * added HOST support for voxel subtract kernel * added HIP support for voxel subtract kernel * added test suite support * updated the golden outputs for subtract with correct values * removed unnessary validation checks * Remove double spaces * Fix header * Fix all retval docs * Fix docs to add memory type * Fix comment * Add divider comment * Use post-increment efficiently * RPP Test Suite Upgrade 4 - CSV to BIN conversions for file size reduction (#293) * change golden outputs from .csv files to .bin files * Changed comparision funtions to use .bin files * Address review comments * minor change * Address review comments * minor change --------- Co-authored-by: HazarathKumarM * converted add and subtract scalar golden outputs to bin files * changed copyright from 2023 to 2024 * Update add_scalar.hpp license * Update subtract_scalar.hpp license --------- Co-authored-by: sampath1117 Co-authored-by: HazarathKumarM * RPP Magnitude on HOST and HIP (#278) * Initial commit - Magnitude HOST Tensor * Add QA reference outputs * Update runTests.py * Initial commit - Magnitude HIP Tensor * Add dual input support in testsuite * Optimize HOST kernel further * Optimize i8 datatype further * Modify comments * RPP Test Suite Upgrade 4 - CSV to BIN conversions for file size reduction (#293) * change golden outputs from .csv files to .bin files * Changed comparision funtions to use .bin files * Address review comments * minor change * Address review comments * minor change --------- Co-authored-by: HazarathKumarM * Bump rocm-docs-core[api_reference] from 0.31.0 to 0.33.0 in /docs/sphinx (#294) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.31.0 to 0.33.0. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/ROCm/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.31.0...v0.33.0) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Update Copywright year * Combine templated functions to support all datatypes * Modify format of reference outputs * Update rppi_arithmetic_operations.h license * Update rppt_tensor_arithmetic_operations.h license * Update host_tensor_arithmetic_operations.hpp * Update magnitude.hpp license * Update hip_tensor_arithmetic_operations.hpp license * Delete magnitude_u8_Tensor_PKD3.csv * Delete magnitude_u8_Tensor_PLN1.csv * Delete magnitude_u8_Tensor_PLN3.csv * Update rpp_test_suite_common.h license * Update runTests.py license * Update Tensor_hip.cpp license * Update runTests.py license * Update Tensor_host.cpp license --------- Signed-off-by: dependabot[bot] Co-authored-by: Snehaa Giridharan Co-authored-by: HazarathKumarM Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Snehaa-Giridharan <118163708+snehaa8@users.noreply.github.com> * Bump rocm-docs-core[api_reference] from 0.34.0 to 0.34.2 in /docs/sphinx (#309) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.34.0 to 0.34.2. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/ROCm/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.34.0...v0.34.2) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * RPP Tensor Audio Support - Down Mixing (#296) * Initial commit - Non slient region detection Includes unittest setup * Initial commit - To Decibels Includes unittest setup * Intial commit - pre_emphasis_filter * Intial commit - down_mixing * Replace vectors with arrays * Cleanup * Minor cleanup * Optimize downmixing Kernel Includes cleanup * Replace Rpp64s with Rpp32s * Cleanup * Optimize and precompute cutOff * Fix buffer used * Fix buffer used * Additional Cleanup * Optimize post incrmeent operation * Optimize post increment operation * Update testsuite for Audio * code cleanup * Add Readme file for Audio test suite * changes based on review comments * minor change * Remove unittest folders and updated README.md * Remove unit tests * minor change * code cleanup * added common header file for audio helper functions * removed unncessary audio wav files fixed bug in ROI updation for audio test suite resolved issue in summary generation for performance tests in python * removed log file * added doxygen support for audio * added doxygen changes for to_decibels * updated test suite support for to_decibels * minor change * added doxygen changes for preemphasis filter * updated changes for preemphasis filter in test suite * removed the usage of getMax function and used std::max_element * modularized code in test suite * merge with latest changes * minor change * minor change * minor change * resolved codacy warnings * Codacy fix - Remove unused cpuTime * CMakeLists - Version Update 1.5.0 - TOT Version * CHANGELOG Updates Version 1.5.0 placeholder * resolved issue with file_system dependency in test suite * Doxygen changes changed malloc to new in NSR kernel * RPP RICAP Tensor for HOST and HIP (#213) * Initial commit - Ricap HOST Tensor Includes testsuite changes * Add QA tests for RICAP Used three_images_224x224_src1 folder to create golden outputs * Add three_images_224x224_src1 into TEST_IMAGES * Support HIP Backend for RICAP * Fix HIP pkd3->pkd3 variant * regenerated golden outputs for RICAP minor changes in HOST shell script for handling RICAP in QA mode * minor bug fix in RICAP HIP kernels * Improve readability and Cleanup * Additional cleanup * Cleanup testsuite Includes new golden outputs * Additional testuite fixes * Minor cleanup * Fix codacy warnings * Address other codacy warnings * Update ricap.hpp with reference paper * Add RICAP dataset path in readme * Make changes to error codes returned * Modify roi crop region for unit and perf tests * RPP Tensor Water Augmentation on HOST and HIP (#181) * added water HOST and HIP codes * added water case in test suite * added golden outputs for water * added omp thread changes for water augmentation * experimental changes * fixed output issue with AVX2 instructions * added AVX2 support for PKD3 load function minor changes in PLN variant load functions * nwc commit - added avx2 changes for u8 layout toggle variants but need to add store functions for completion * Add Avx2 implementation for F32 and U8 toggle variants * Add AVX2 support for u8 pkd3-pln3 and i8 pkd3-pln3 for water augmentation * change F32 load and store logic * optimized the store function for F32 PLN3-PKD3 * reverted back irrelevant changes * minor change * optimized load and store functions for water U8 and F32 variants in host removed commented code * removed golden outputs for water * minor changes * renamed few functions and removed unused functions updated i8 pln1 load as per the optimized u8 pln1 load * fixed bug in i8 load function * changed cast to c++ style resolved spacing issues and added comments for AVX codes for better understanding made changes to handle cases where QA Tests are not supported * added golden outputs for water * updated golden outputs with latest changes * modified the u8, i8 pkd3-pln3 function and added comments for the vectorized code * fixed minor bug in I8 variants * made to changes to resolve codacy warnings * changed cast to c++ style in hip kernel * changed generic nn F32 loads using gather and setr instructions * added comments for latest changes * minor change * added definition for storing 32 and 64 bits from a 128bit register --------- Co-authored-by: sampath1117 Co-authored-by: HazarathKumarM * Fix build error * CMakeLists - Version Update 1.5.0 - TOT Version * CHANGELOG Updates Version 1.5.0 placeholder * Boost deps fix for test suite --------- Co-authored-by: Snehaa Giridharan Co-authored-by: sampath1117 Co-authored-by: Snehaa-Giridharan <118163708+snehaa8@users.noreply.github.com> Co-authored-by: HazarathKumarM Co-authored-by: Kiriti Gowda * Documentation - Readme & changelog updates (#251) * readme and changelog updates for 6.0 * minor update * added ctests for audio test suite for CI made changes to add more clarity on the QA Tests results * Cmake mods for ctest * HOST-only build error bugfix * added qa mode paramter to python audio script added golden output map for QA testing of Non silent region detection * minor change * Documentation - Bump rocm-docs-core[api_reference] from 0.26.0 to 0.27.0 in /docs/sphinx (#253) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.26.0 to 0.27.0. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/RadeonOpenCompute/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.26.0...v0.27.0) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * RPP Resize Mirror Normalize Bugfix (#252) * added fix for hipMemset * remove pixel check for U8-F32 and U8-F16 for HOST codes --------- Co-authored-by: sampath1117 * added example for MMS calculation in comments for better understanding * Sphinx - updates (#257) * Sphinx - updates * Doxygen - Updates * Docs - Remove index.md * updated info used to for running audio test suite * removed bitdepth variable from audio test suite * added more information on computing NSR outputs in the example added * Fix doxygen for decibels Also removes extra QA reference files * move tensor_host_audio.cpp to host folder * Fix build errors and qa tests in Audio Test suite * Fix build errors and qa tests in Audio Test suite * Add reference output and test samples for downmix * Add down_mix in augmentation list and supported cases * Remove auto-merge repeated funcs * Improve clarity of header docs * Remove blank line * Improve clarity on header docs * Add Doxygen comments * minor change * converted golden outputs to binary file for downmixing * removed old golden output file for preemphasis and todecibels * modified info for downmixing as per new changes used handle memory for temporary buffers * formatting changes * moved the common code for SSE and AVX to outside * Update down_mixing.hpp license * Update rppt_tensor_audio_augmentations.h * combined the srcLength and channels tensors into single tensor --------- Signed-off-by: dependabot[bot] Co-authored-by: Snehaa Giridharan Co-authored-by: HazarathKumarM Co-authored-by: sampath1117 Co-authored-by: Kiriti Gowda Co-authored-by: Snehaa-Giridharan <118163708+snehaa8@users.noreply.github.com> Co-authored-by: Lisa Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Sundarrajan98 * RPP Voxel 3D Tensor Multiply scalar on HOST and HIP (#306) * added HIP support for voxel scalar multiply kernel * added HOST support for voxel multiply kernel added golden outputs for voxel multiply kernel * merge with master * RPP Test Suite Upgrade 4 - CSV to BIN conversions for file size reduction (#293) * change golden outputs from .csv files to .bin files * Changed comparision funtions to use .bin files * Address review comments * minor change * Address review comments * minor change --------- Co-authored-by: HazarathKumarM * converted multiply scalar voxel golden outputs to bin files * changed copyright from 2023 to 2024 --------- Co-authored-by: sampath1117 Co-authored-by: HazarathKumarM * Test Suite Bugfix (#307) * experimental changes for adding qa mode for performance tests * made changes to add display more information w.r.t QA results summary for performance tests * minor changes * Add changes to dump qa results to excel file * Add performance QA for three new tensor functions * update prerequisites in readme * added changes to handle unsupported cases * removed treshold dictionary and added performance Noise treshold add new dataset for performance QA * RPP Test Suite Upgrade 4 - CSV to BIN conversions for file size reduction (#293) * change golden outputs from .csv files to .bin files * Changed comparision funtions to use .bin files * Address review comments * minor change * Address review comments * minor change --------- Co-authored-by: HazarathKumarM * Changes to the performane summary dataframe * minor changes * Update CMakeLists.txt to add ${CMAKE_CURRENT_SOURCE_DIR} for CI * Update CMakeLists.txt fix * Update CMakeLists.txt fix * remove tabulate dependency * Update README.md to remove tabulate pip install * Fix for CI machine failure * Add note on performance * Fix segmentation fault * Revert QAmode to restrict HIP bitdepths * Use Rpp64u for HOST while comparing outputs * Fix ambiguous abs call * Fix for SLES CI HIP fail - error: incompatible pointer types assigning to 'unsigned long *' from 'unsigned long long *' - refOutput = TensorSumReferenceOutputs[numChannels].data(); --------- Co-authored-by: sampath1117 Co-authored-by: HazarathKumarM Co-authored-by: Snehaa Giridharan Co-authored-by: Pavel Tcherniaev * Update rppt_tensor_arithmetic_operations.h * Update rppt_tensor_arithmetic_operations.h * Bump rocm-docs-core[api_reference] from 0.34.2 to 0.35.0 in /docs/sphinx (#313) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.34.2 to 0.35.0. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/ROCm/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.34.2...v0.35.0) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * RPP Reduction - Tensor min and Tensor max on HOST and HIP (#260) * Minor Change * Add Validation check for DST_FOLDER path * added water HOST and HIP codes * added water case in test suite * added golden outputs for water * Add Validation checks for all options in testAllScript.sh * Add sanity check for dual Input cases Set Max Dimension and Max Image Dump Replaced Fast DCT tag with Accurate DCT * Regenerate golden outputs using accurate dct Flag Add golden outputs for some new augmentations * Fix Flip golden outputs mismatch Fix PLN3 variants mismatch in QA mode * Add MAX_BATCH_SIZE check removed Augmentations function calls for failing Qa modes code cleanup * Add crop and gamma correction augmentations code cleanup * Add comments to functions in rpp_test_suite_common.h * minor change * code cleanup * minor code changes * Change roi and Image sizes for crop augmentation * Change numIterations option to numRuns Addressed PR comments * added omp thread changes for water augmentation * experimental changes * fixed output issue with AVX2 instructions * added AVX2 support for PKD3 load function minor changes in PLN variant load functions * Add turboJpeg header to update maxHeight and maxWidth values * nwc commit - added avx2 changes for u8 layout toggle variants but need to add store functions for completion * Change the performance Timings logic * Add Avx2 implementation for F32 and U8 toggle variants * minor change to support u8_f16 and u8_f32 cases * Regenerate LUT golden outputs with ACCURATE_DCT tag * Minor code changes * Add AVX2 support for u8 pkd3-pln3 and i8 pkd3-pln3 for water augmentation * Made changes to the runTests.py in Host to remove testAllScipts.sh * Made changes to the runTests.py in HIP to remove testAllScipts.sh * Initial commit - Image min and max Reduction kernel Includes * u8 datatype for both min and max HOST Tensor of all variants. * Testsuite changes. * NWC -initial code for min max PLN3 - PLN3 * made changes to split min and max kernels seperately * splitted kernels for min and max * made changes to print final max/min in the R,G,B channels * fixed inaccuracies in min/max computation * made changes to typecast intermediate output to output requested by user added comments for the code code cleanup and minor changes in test suite * fixed build issues removed image folders used for min, max and sum reverted unwanted file changes * minor changes in test suite * removed support for unwanted test case in Tensor_hip.cpp * Adds new option roi * remove testAllScripts.sh * Adds roi Option in HIP backend * Implement f32 variants * Implement f16 and i8 datatype variants * change F32 load and store logic * Add build flags in CMakeLists.txt to set AVX/SSE flags based on the system configuration * minor code changes * Initial commit - Image sum Reduction kernel Includes u8 PLN1 -> PLN1 conversion for HOST Tensor * Implement PKD3 and PLN3 for Image sum Tensor HOST * Support i8, f16 and f32 datatypes * Initial commit - Image sum Reduction HIP kernel Includes u8 PLN1 -> PLN1 conversion for Tensor * Implement PKD3 and PLN3 for Image sum Tensor HIP * Add support in testsuite Revert normalization for i8 HOST Tensor variants * Fix HIP testsuite Remove additional blanks for 1 channel output * Modify print statement in HIP testsuite * Improve readability for testsuite outputs * optimized the store function for F32 PLN3-PKD3 * reverted back irrelevant changes * minor change * Fix HIP to support larger inputs * optimized load and store functions for water U8 and F32 variants in host removed commented code * Cleanup * removed golden outputs for water * minor changes * Cleanup Support Reduction QA test in testsuite * renamed few functions and removed unused functions updated i8 pln1 load as per the optimized u8 pln1 load * fixed bug in i8 load function * Remove unused variables and C style casting * changed cast to c++ style resolved spacing issues and added comments for AVX codes for better understanding made changes to handle cases where QA Tests are not supported * added golden outputs for water * updated golden outputs with latest changes * modified the u8, i8 pkd3-pln3 function and added comments for the vectorized code * fixed minor bug in I8 variants * Optimize u8 datatype further * Fix static_cast * made to changes to resolve codacy warnings * changed cast to c++ style in hip kernel * Initial commit - Ricap HOST Tensor Includes testsuite changes * Add QA tests for RICAP Used three_images_224x224_src1 folder to create golden outputs * Add three_images_224x224_src1 into TEST_IMAGES * added rotate case with golden outputs changed generic bilinear HOST codes to match with HIP codes * Add golden output for remaining all tensor augmentations * fix python script issues * Optimize u8 and i8 datatype Uses uint and int internal processing instead of float * Fix testsuite build errors * minor change * Fix QA check * Modify api naming from image_sum to tensor_sum Includes changes for both HOST and HIP * Support HIP Backend for RICAP * change rcm and rmn golden outputs * Fix HIP pkd3->pkd3 variant * changes based on review comments * change test_suite folder to tests * Optimize u8 and i8 datatype of HIP Includes modification in naming of shared memory * minor fix * changed generic nn F32 loads using gather and setr instructions * Optimize and cleanup U8 HIP * regenerated golden outputs for RICAP minor changes in HOST shell script for handling RICAP in QA mode * minor bug fix in RICAP HIP kernels * Fix i8 datatype variants Includes cleanup * Fix the issues with color_to_greyscale * remove the empty folder creation * reverting back the folder name change * minor change * added comments for latest changes * minor change * Improve readability and Cleanup * Fix QA for HIP Includes cleanup * resolved review comments * minor change * Modify api naming from image_ to tensor_ for HOST * Add support for QA tests * removed range check for RMN U8-F32 and U8-F16 variants changed from hipMemset to hipMemsetAsync for RMN HIP Kernel removed multiplication by 255 for stdDev in RMN HOST U8-F16 and U8-F32 variants * Modify naming of shared memory with _smem in HIP Includes cleanup * Typecast and reuse markArr for HIP U8 and I8 * Cleanup and minor optimization * minor fix * fix codacy warnings * Additional cleanup * Cleanup and move #define * Changed the complexity of if statements in runTests.py * Cleanup testsuite Includes new golden outputs * Additional testuite fixes * Minor cleanup * Codacy fixes * Fix codacy warnings * Codacy fix * Address other codacy warnings * cleanup * Change Image functions to generic * Update ricap.hpp with reference paper * resolved minor issues happened with merge * minor changes * fixed minor issue with getting profiler times * minor formatting changes * resolved build issues in test suite renamed the min and max kernel file names * RPP RICAP Tensor for HOST and HIP (#213) * Initial commit - Ricap HOST Tensor Includes testsuite changes * Add QA tests for RICAP Used three_images_224x224_src1 folder to create golden outputs * Add three_images_224x224_src1 into TEST_IMAGES * Support HIP Backend for RICAP * Fix HIP pkd3->pkd3 variant * regenerated golden outputs for RICAP minor changes in HOST shell script for handling RICAP in QA mode * minor bug fix in RICAP HIP kernels * Improve readability and Cleanup * Additional cleanup * Cleanup testsuite Includes new golden outputs * Additional testuite fixes * Minor cleanup * Fix codacy warnings * Address other codacy warnings * Update ricap.hpp with reference paper * Add RICAP dataset path in readme * Make changes to error codes returned * Modify roi crop region for unit and perf tests * RPP Tensor Water Augmentation on HOST and HIP (#181) * added water HOST and HIP codes * added water case in test suite * added golden outputs for water * added omp thread changes for water augmentation * experimental changes * fixed output issue with AVX2 instructions * added AVX2 support for PKD3 load function minor changes in PLN variant load functions * nwc commit - added avx2 changes for u8 layout toggle variants but need to add store functions for completion * Add Avx2 implementation for F32 and U8 toggle variants * Add AVX2 support for u8 pkd3-pln3 and i8 pkd3-pln3 for water augmentation * change F32 load and store logic * optimized the store function for F32 PLN3-PKD3 * reverted back irrelevant changes * minor change * optimized load and store functions for water U8 and F32 variants in host removed commented code * removed golden outputs for water * minor changes * renamed few functions and removed unused functions updated i8 pln1 load as per the optimized u8 pln1 load * fixed bug in i8 load function * changed cast to c++ style resolved spacing issues and added comments for AVX codes for better understanding made changes to handle cases where QA Tests are not supported * added golden outputs for water * updated golden outputs with latest changes * modified the u8, i8 pkd3-pln3 function and added comments for the vectorized code * fixed minor bug in I8 variants * made to changes to resolve codacy warnings * changed cast to c++ style in hip kernel * changed generic nn F32 loads using gather and setr instructions * added comments for latest changes * minor change * added definition for storing 32 and 64 bits from a 128bit register --------- Co-authored-by: sampath1117 Co-authored-by: HazarathKumarM * Fix build error * CMakeLists - Version Update 1.5.0 - TOT Version * CHANGELOG Updates Version 1.5.0 placeholder * Boost deps fix for test suite --------- Co-authored-by: Snehaa Giridharan Co-authored-by: sampath1117 Co-authored-by: Snehaa-Giridharan <118163708+snehaa8@users.noreply.github.com> Co-authored-by: HazarathKumarM Co-authored-by: Kiriti Gowda * Documentation - Readme & changelog updates (#251) * readme and changelog updates for 6.0 * minor update * Documentation - Bump rocm-docs-core[api_reference] from 0.26.0 to 0.27.0 in /docs/sphinx (#253) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.26.0 to 0.27.0. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/RadeonOpenCompute/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.26.0...v0.27.0) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * RPP Resize Mirror Normalize Bugfix (#252) * added fix for hipMemset * remove pixel check for U8-F32 and U8-F16 for HOST codes --------- Co-authored-by: sampath1117 * Cmake fix to prevent warning * Fix paths in new python scripts * Sphinx - updates (#257) * Sphinx - updates * Doxygen - Updates * Docs - Remove index.md * Test suite fixes after tensor_min / tensor_max HOST merge * Fix max case * QA tests fix for hip and host * naming convention changes as per new std * Substitute imagePartial with partial * Substitute imageMin/imageMax with min/max * Replace hipMemset with hipMemsetAsync, and replace hipDeviceSynchronize with hipStreamSynchronize * Use variable instead of batchCount*4 * Use post increment effectivly * Resolve codacy warnings * Additional cleanup * remove unused variable * Documentation - Bump rocm-docs-core[api_reference] from 0.28.0 to 0.29.0 in /docs/sphinx (#265) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.28.0 to 0.29.0. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/RadeonOpenCompute/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.28.0...v0.29.0) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Remove auto merge boost * Spaces formatting * Bump rocm-docs-core[api_reference] from 0.29.0 to 0.30.1 in /docs/sphinx (#268) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.29.0 to 0.30.1. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/RadeonOpenCompute/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.29.0...v0.30.1) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * add support for mi300 (#269) * Documentation - Bump rocm-docs-core[api_reference] from 0.30.1 to 0.30.2 in /docs/sphinx (#273) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.30.1 to 0.30.2. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/RadeonOpenCompute/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.30.1...v0.30.2) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Cleanup by removing oneliner functions as inline * RPP Tensor Audio Support - To Decibels (#258) * Initial commit - Non slient region detection Includes unittest setup * Initial commit - To Decibels Includes unittest setup * Replace vectors with arrays * Cleanup * Replace Rpp64s with Rpp32s * Optimize and precompute cutOff * Fix buffer used * Fix buffer used * Additional Cleanup * Update testsuite for Audio * code cleanup * Add Readme file for Audio test suite * changes based on review comments * minor change * Remove unittest folders and updated README.md * Remove unit tests * minor change * code cleanup * added common header file for audio helper functions * removed unncessary audio wav files fixed bug in ROI updation for audio test suite resolved issue in summary generation for performance tests in python * removed log file * added doxygen support for audio * added doxygen changes for to_decibels * updated test suite support for to_decibels * minor change * removed the usage of getMax function and used std::max_element * modularized code in test suite * merge with latest changes * minor change * minor change * resolved codacy warnings * Codacy fix - Remove unused cpuTime * CMakeLists - Version Update 1.5.0 - TOT Version * CHANGELOG Updates Version 1.5.0 placeholder * resolved issue with file_system dependency in test suite * Doxygen changes changed malloc to new in NSR kernel * RPP RICAP Tensor for HOST and HIP (#213) * Initial commit - Ricap HOST Tensor Includes testsuite changes * Add QA tests for RICAP Used three_images_224x224_src1 folder to create golden outputs * Add three_images_224x224_src1 into TEST_IMAGES * Support HIP Backend for RICAP * Fix HIP pkd3->pkd3 variant * regenerated golden outputs for RICAP minor changes in HOST shell script for handling RICAP in QA mode * minor bug fix in RICAP HIP kernels * Improve readability and Cleanup * Additional cleanup * Cleanup testsuite Includes new golden outputs * Additional testuite fixes * Minor cleanup * Fix codacy warnings * Address other codacy warnings * Update ricap.hpp with reference paper * Add RICAP dataset path in readme * Make changes to error codes returned * Modify roi crop region for unit and perf tests * RPP Tensor Water Augmentation on HOST and HIP (#181) * added water HOST and HIP codes * added water case in test suite * added golden outputs for water * added omp thread changes for water augmentation * experimental changes * fixed output issue with AVX2 instructions * added AVX2 support for PKD3 load function minor changes in PLN variant load functions * nwc commit - added avx2 changes for u8 layout toggle variants but need to add store functions for completion * Add Avx2 implementation for F32 and U8 toggle variants * Add AVX2 support for u8 pkd3-pln3 and i8 pkd3-pln3 for water augmentation * change F32 load and store logic * optimized the store function for F32 PLN3-PKD3 * reverted back irrelevant changes * minor change * optimized load and store functions for water U8 and F32 variants in host removed commented code * removed golden outputs for water * minor changes * renamed few functions and removed unused functions updated i8 pln1 load as per the optimized u8 pln1 load * fixed bug in i8 load function * changed cast to c++ style resolved spacing issues and added comments for AVX codes for better understanding made changes to handle cases where QA Tests are not supported * added golden outputs for water * updated golden outputs with latest changes * modified the u8, i8 pkd3-pln3 function and added comments for the vectorized code * fixed minor bug in I8 variants * made to changes to resolve codacy warnings * changed cast to c++ style in hip kernel * changed generic nn F32 loads using gather and setr instructions * added comments for latest changes * minor change * added definition for storing 32 and 64 bits from a 128bit register --------- Co-authored-by: sampath1117 Co-authored-by: HazarathKumarM * Fix build error * CMakeLists - Version Update 1.5.0 - TOT Version * CHANGELOG Updates Version 1.5.0 placeholder * Boost deps fix for test suite --------- Co-authored-by: Snehaa Giridharan Co-authored-by: sampath1117 Co-authored-by: Snehaa-Giridharan <118163708+snehaa8@users.noreply.github.com> Co-authored-by: HazarathKumarM Co-authored-by: Kiriti Gowda * Documentation - Readme & changelog updates (#251) * readme and changelog updates for 6.0 * minor update * added ctests for audio test suite for CI made changes to add more clarity on the QA Tests results * Cmake mods for ctest * HOST-only build error bugfix * added qa mode paramter to python audio script added golden output map for QA testing of Non silent region detection * minor change * Documentation - Bump rocm-docs-core[api_reference] from 0.26.0 to 0.27.0 in /docs/sphinx (#253) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.26.0 to 0.27.0. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/RadeonOpenCompute/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.26.0...v0.27.0) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * RPP Resize Mirror Normalize Bugfix (#252) * added fix for hipMemset * remove pixel check for U8-F32 and U8-F16 for HOST codes --------- Co-authored-by: sampath1117 * added example for MMS calculation in comments for better understanding * Sphinx - updates (#257) * Sphinx - updates * Doxygen - Updates * Docs - Remove index.md * updated info used to for running audio test suite * removed bitdepth variable from audio test suite * added more information on computing NSR outputs in the example added * Fix doxygen for decibels Also removes extra QA reference files * Fix build errors and qa tests in Audio Test suite * Remove auto-merge repeated funcs * Improve clarity on header docs * made changes based on review comments * stored golden outputs of to_decibels in binary file removed golden output text files for non silent region * removed unused parameter in verify_output function * updated list of cases supported in python script * added error handling for opening golden output file * Codacy fix and tests warning fix * Codacy fix * Codacy fix trial * codacy fix for checking boundaries of fstream --------- Signed-off-by: dependabot[bot] Co-authored-by: Snehaa Giridharan Co-authored-by: HazarathKumarM Co-authored-by: sampath1117 Co-authored-by: Kiriti Gowda Co-authored-by: Snehaa-Giridharan <118163708+snehaa8@users.noreply.github.com> Co-authored-by: Lisa Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Documentation - Bump rocm-docs-core[api_reference] from 0.30.2 to 0.30.3 in /docs/sphinx (#274) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.30.2 to 0.30.3. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/RadeonOpenCompute/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.30.2...v0.30.3) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Adding issue template (#270) * Add files via upload * added ROCm v6, MI300, default component * Fix cast used in testsuite Includes minor fixes * Fix displaying f16 outputs * Optimize HOST min/max reduce function further * Fix spacing in HIP kernels * Fix PLN1 outputs for u8 and i8 datatypes of HOST backend * RPP Test Suite Upgrade 4 - CSV to BIN conversions for file size reduction (#293) * change golden outputs from .csv files to .bin files * Changed comparision funtions to use .bin files * Address review comments * minor change * Address review comments * minor change --------- Co-authored-by: HazarathKumarM * Bump rocm-docs-core[api_reference] from 0.31.0 to 0.33.0 in /docs/sphinx (#294) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.31.0 to 0.33.0. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/ROCm/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.31.0...v0.33.0) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Store reference outputs via map for min and max kernels * Update tensor_max.hpp license * Update tensor_min.hpp license * Fix output comparison check * Merge branch 'ar/opt_tensor_min_tensor_max' of https://github.com/r-abishek/rpp into sn/tensor_min_max * Modify exit condition used in outer most kernel * Modify srcIdx for HIP Tensor min * Using maximum as 255 for HIP Tensor min * Modify srcIdx for HIP Tensor max kernel Also fixes build error in testsuite * Fix corrupted outputs displayed for Tensor sum * Fix corruption issue seen with tensor sum kernel * Fix minimum for I8 Tensor max kernel * Modified HIP buffer initialization with a common function * Fix redefinition * Remove additional variables xAlignedLength * Remove unwanted xAlignedLength and xDiff * Remove redefinition of TensorSumReferenceOutputs * Fix for CI issue * Add parenthesis --------- Signed-off-by: dependabot[bot] Co-authored-by: HazarathKumarM Co-authored-by: sampath1117 Co-authored-by: Snehaa Giridharan Co-authored-by: Snehaa-Giridharan <118163708+snehaa8@users.noreply.github.com> Co-authored-by: fiona-gladwin Co-authored-by: Kiriti Gowda Co-authored-by: Lisa Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Lakshmi Kumar Co-authored-by: abhimeda <138710508+abhimeda@users.noreply.github.com> * CI - Update precheckin.groovy * Move bitwise operations into under logical ops * Fix doxygen comments * Merge with master * Cleanup * Revert change in CMakeLists.txt * Add docs outputs * Cleanup --------- Signed-off-by: dependabot[bot] Co-authored-by: Snehaa Giridharan Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Sam Wu Co-authored-by: Kiriti Gowda Co-authored-by: sampath1117 Co-authored-by: HazarathKumarM Co-authored-by: Snehaa-Giridharan <118163708+snehaa8@users.noreply.github.com> Co-authored-by: Lisa Co-authored-by: Sundarrajan98 Co-authored-by: Pavel Tcherniaev Co-authored-by: fiona-gladwin Co-authored-by: Lakshmi Kumar Co-authored-by: abhimeda <138710508+abhimeda@users.noreply.github.com> * Update CMakeLists.txt Version Upgrade * Remove automerge redundancy * Bump rocm-docs-core[api_reference] from 0.38.1 to 1.0.0 in /docs/sphinx (#337) * Bump rocm-docs-core[api_reference] from 0.38.1 to 1.0.0 in /docs/sphinx Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.38.1 to 1.0.0. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/ROCm/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.38.1...v1.0.0) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] * Use Python 3.10 in RTD config --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Sam Wu * Bump rocm-docs-core[api_reference] from 1.0.0 to 1.1.0 in /docs/sphinx (#339) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 1.0.0 to 1.1.0. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/ROCm/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v1.0.0...v1.1.0) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * RPP Gaussian Noise Voxel Tensor on HOST and HIP (#323) * License - updates to 2024 and consistency changes (#298) * Match all CMakeLists.txt license as per RPP's outermost LICENSE file * Match all python files' license as per RPP's outermost LICENSE file * Match all .hpp files' license as per RPP's outermost LICENSE file * Match all .cpp files' license as per RPP's outermost LICENSE file * Match all .h files' license as per RPP's outermost LICENSE file * Remove all rights reserved as per LICENSE file * Remove double space in "Copyright (c) 2019 - 2023 Advanced Micro Devices, Inc." * Match all .cmake files' license as per RPP's outermost LICENSE file * Match all .cpp.in files' license as per RPP's outermost LICENSE file * Replace 283 occurrences in 282 files - 2023 to 2024 * Add "MIT License" title to 281 instances * Add missing license * Test - Update README.md for test_suite (#299) * Bump rocm-docs-core[api_reference] from 0.33.0 to 0.33.1 in /docs/sphinx (#301) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.33.0 to 0.33.1. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/ROCm/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.33.0...v0.33.1) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump rocm-docs-core[api_reference] from 0.33.1 to 0.33.2 in /docs/sphinx (#302) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.33.1 to 0.33.2. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/ROCm/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.33.1...v0.33.2) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Update doc codeowners (#303) * Documentation - Bump rocm-docs-core[api_reference] from 0.33.2 to 0.34.0 in /docs/sphinx (#304) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.33.2 to 0.34.0. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/ROCm/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.33.2...v0.34.0) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Test suite - upgrade 5 qa perf (#305) * experimental changes for adding qa mode for performance tests * made changes to add display more information w.r.t QA results summary for performance tests * minor changes * Add changes to dump qa results to excel file * Add performance QA for three new tensor functions * update prerequisites in readme * added changes to handle unsupported cases * removed treshold dictionary and added performance Noise treshold add new dataset for performance QA * RPP Test Suite Upgrade 4 - CSV to BIN conversions for file size reduction (#293) * change golden outputs from .csv files to .bin files * Changed comparision funtions to use .bin files * Address review comments * minor change * Address review comments * minor change --------- Co-authored-by: HazarathKumarM * Changes to the performane summary dataframe * minor changes * Update CMakeLists.txt to add ${CMAKE_CURRENT_SOURCE_DIR} for CI * Update CMakeLists.txt fix * Update CMakeLists.txt fix * remove tabulate dependency * Update README.md to remove tabulate pip install * Fix for CI machine failure * Add note on performance --------- Co-authored-by: sampath1117 Co-authored-by: HazarathKumarM Co-authored-by: Abishek <52214183+r-abishek@users.noreply.github.com> Co-authored-by: Snehaa Giridharan Co-authored-by: r-abishek * RPP Color Temperature on HOST and HIP (#271) * Initial commit - Color Temperature HOST Tensor * Initial commit - Color Temperature HIP Tensor * Add color temperature golden outputs * address review comments * Use reinterpret_cast instead of static_cast * Combine templated functions to support all datatypes into one (got minor perf difference of order 3%) Also fixes indentation * Fix i8 datatype * Cleanup * RPP Test Suite Upgrade 4 - CSV to BIN conversions for file size reduction (#293) * change golden outputs from .csv files to .bin files * Changed comparision funtions to use .bin files * Address review comments * minor change * Address review comments * minor change --------- Co-authored-by: HazarathKumarM * Fix PLN3 variant outputs Also modifies reference outputs * Update color_temperature.hpp license * Delete color_temperature_u8_Tensor_PKD3.csv * Delete color_temperature_u8_Tensor_PLN3.csv --------- Co-authored-by: snehaa8 Co-authored-by: HazarathKumarM Co-authored-by: Snehaa-Giridharan <118163708+snehaa8@users.noreply.github.com> * RPP Voxel 3D Tensor Add/Subtract scalar on HOST and HIP (#272) * added HOST support for voxel add kernel * added HIP support for voxel add kernel * added test suite support for add scalar * added Doxygen support and modified hip kernel function names as per new standard * added HOST support for voxel subtract kernel * added HIP support for voxel subtract kernel * added test suite support * updated the golden outputs for subtract with correct values * removed unnessary validation checks * Remove double spaces * Fix header * Fix all retval docs * Fix docs to add memory type * Fix comment * Add divider comment * Use post-increment efficiently * RPP Test Suite Upgrade 4 - CSV to BIN conversions for file size reduction (#293) * change golden outputs from .csv files to .bin files * Changed comparision funtions to use .bin files * Address review comments * minor change * Address review comments * minor change --------- Co-authored-by: HazarathKumarM * converted add and subtract scalar golden outputs to bin files * changed copyright from 2023 to 2024 * Update add_scalar.hpp license * Update subtract_scalar.hpp license --------- Co-authored-by: sampath1117 Co-authored-by: HazarathKumarM * RPP Magnitude on HOST and HIP (#278) * Initial commit - Magnitude HOST Tensor * Add QA reference outputs * Update runTests.py * Initial commit - Magnitude HIP Tensor * Add dual input support in testsuite * Optimize HOST kernel further * Optimize i8 datatype further * Modify comments * RPP Test Suite Upgrade 4 - CSV to BIN conversions for file size reduction (#293) * change golden outputs from .csv files to .bin files * Changed comparision funtions to use .bin files * Address review comments * minor change * Address review comments * minor change --------- Co-authored-by: HazarathKumarM * Bump rocm-docs-core[api_reference] from 0.31.0 to 0.33.0 in /docs/sphinx (#294) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.31.0 to 0.33.0. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/ROCm/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.31.0...v0.33.0) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Update Copywright year * Combine templated functions to support all datatypes * Modify format of reference outputs * Update rppi_arithmetic_operations.h license * Update rppt_tensor_arithmetic_operations.h license * Update host_tensor_arithmetic_operations.hpp * Update magnitude.hpp license * Update hip_tensor_arithmetic_operations.hpp license * Delete magnitude_u8_Tensor_PKD3.csv * Delete magnitude_u8_Tensor_PLN1.csv * Delete magnitude_u8_Tensor_PLN3.csv * Update rpp_test_suite_common.h license * Update runTests.py license * Update Tensor_hip.cpp license * Update runTests.py license * Update Tensor_host.cpp license --------- Signed-off-by: dependabot[bot] Co-authored-by: Snehaa Giridharan Co-authored-by: HazarathKumarM Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Snehaa-Giridharan <118163708+snehaa8@users.noreply.github.com> * Bump rocm-docs-core[api_reference] from 0.34.0 to 0.34.2 in /docs/sphinx (#309) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.34.0 to 0.34.2. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/ROCm/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.34.0...v0.34.2) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * RPP Tensor Audio Support - Down Mixing (#296) * Initial commit - Non slient region detection Includes unittest setup * Initial commit - To Decibels Includes unittest setup * Intial commit - pre_emphasis_filter * Intial commit - down_mixing * Replace vectors with arrays * Cleanup * Minor cleanup * Optimize downmixing Kernel Includes cleanup * Replace Rpp64s with Rpp32s * Cleanup * Optimize and precompute cutOff * Fix buffer used * Fix buffer used * Additional Cleanup * Optimize post incrmeent operation * Optimize post increment operation * Update testsuite for Audio * code cleanup * Add Readme file for Audio test suite * changes based on review comments * minor change * Remove unittest folders and updated README.md * Remove unit tests * minor change * code cleanup * added common header file for audio helper functions * removed unncessary audio wav files fixed bug in ROI updation for audio test suite resolved issue in summary generation for performance tests in python * removed log file * added doxygen support for audio * added doxygen changes for to_decibels * updated test suite support for to_decibels * minor change * added doxygen changes for preemphasis filter * updated changes for preemphasis filter in test suite * removed the usage of getMax function and used std::max_element * modularized code in test suite * merge with latest changes * minor change * minor change * minor change * resolved codacy warnings * Codacy fix - Remove unused cpuTime * CMakeLists - Version Update 1.5.0 - TOT Version * CHANGELOG Updates Version 1.5.0 placeholder * resolved issue with file_system dependency in test suite * Doxygen changes changed malloc to new in NSR kernel * RPP RICAP Tensor for HOST and HIP (#213) * Initial commit - Ricap HOST Tensor Includes testsuite changes * Add QA tests for RICAP Used three_images_224x224_src1 folder to create golden outputs * Add three_images_224x224_src1 into TEST_IMAGES * Support HIP Backend for RICAP * Fix HIP pkd3->pkd3 variant * regenerated golden outputs for RICAP minor changes in HOST shell script for handling RICAP in QA mode * minor bug fix in RICAP HIP kernels * Improve readability and Cleanup * Additional cleanup * Cleanup testsuite Includes new golden outputs * Additional testuite fixes * Minor cleanup * Fix codacy warnings * Address other codacy warnings * Update ricap.hpp with reference paper * Add RICAP dataset path in readme * Make changes to error codes returned * Modify roi crop region for unit and perf tests * RPP Tensor Water Augmentation on HOST and HIP (#181) * added water HOST and HIP codes * added water case in test suite * added golden outputs for water * added omp thread changes for water augmentation * experimental changes * fixed output issue with AVX2 instructions * added AVX2 support for PKD3 load function minor changes in PLN variant load functions * nwc commit - added avx2 changes for u8 layout toggle variants but need to add store functions for completion * Add Avx2 implementation for F32 and U8 toggle variants * Add AVX2 support for u8 pkd3-pln3 and i8 pkd3-pln3 for water augmentation * change F32 load and store logic * optimized the store function for F32 PLN3-PKD3 * reverted back irrelevant changes * minor change * optimized load and store functions for water U8 and F32 variants in host removed commented code * removed golden outputs for water * minor changes * renamed few functions and removed unused functions updated i8 pln1 load as per the optimized u8 pln1 load * fixed bug in i8 load function * changed cast to c++ style resolved spacing issues and added comments for AVX codes for better understanding made changes to handle cases where QA Tests are not supported * added golden outputs for water * updated golden outputs with latest changes * modified the u8, i8 pkd3-pln3 function and added comments for the vectorized code * fixed minor bug in I8 variants * made to changes to resolve codacy warnings * changed cast to c++ style in hip kernel * changed generic nn F32 loads using gather and setr instructions * added comments for latest changes * minor change * added definition for storing 32 and 64 bits from a 128bit register --------- Co-authored-by: sampath1117 Co-authored-by: HazarathKumarM * Fix build error * CMakeLists - Version Update 1.5.0 - TOT Version * CHANGELOG Updates Version 1.5.0 placeholder * Boost deps fix for test suite --------- Co-authored-by: Snehaa Giridharan Co-authored-by: sampath1117 Co-authored-by: Snehaa-Giridharan <118163708+snehaa8@users.noreply.github.com> Co-authored-by: HazarathKumarM Co-authored-by: Kiriti Gowda * Documentation - Readme & changelog updates (#251) * readme and changelog updates for 6.0 * minor update * added ctests for audio test suite for CI made changes to add more clarity on the QA Tests results * Cmake mods for ctest * HOST-only build error bugfix * added qa mode paramter to python audio script added golden output map for QA testing of Non silent region detection * minor change * Documentation - Bump rocm-docs-core[api_reference] from 0.26.0 to 0.27.0 in /docs/sphinx (#253) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.26.0 to 0.27.0. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/RadeonOpenCompute/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.26.0...v0.27.0) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * RPP Resize Mirror Normalize Bugfix (#252) * added fix for hipMemset * remove pixel check for U8-F32 and U8-F16 for HOST codes --------- Co-authored-by: sampath1117 * added example for MMS calculation in comments for better understanding * Sphinx - updates (#257) * Sphinx - updates * Doxygen - Updates * Docs - Remove index.md * updated info used to for running audio test suite * removed bitdepth variable from audio test suite * added more information on computing NSR outputs in the example added * Fix doxygen for decibels Also removes extra QA reference files * move tensor_host_audio.cpp to host folder * Fix build errors and qa tests in Audio Test suite * Fix build errors and qa tests in Audio Test suite * Add reference output and test samples for downmix * Add down_mix in augmentation list and supported cases * Remove auto-merge repeated funcs * Improve clarity of header docs * Remove blank line * Improve clarity on header docs * Add Doxygen comments * minor change * converted golden outputs to binary file for downmixing * removed old golden output file for preemphasis and todecibels * modified info for downmixing as per new changes used handle memory for temporary buffers * formatting changes * moved the common code for SSE and AVX to outside * Update down_mixing.hpp license * Update rppt_tensor_audio_augmentations.h * combined the srcLength and channels tensors into single tensor --------- Signed-off-by: dependabot[bot] Co-authored-by: Snehaa Giridharan Co-authored-by: HazarathKumarM Co-authored-by: sampath1117 Co-authored-by: Kiriti Gowda Co-authored-by: Snehaa-Giridharan <118163708+snehaa8@users.noreply.github.com> Co-authored-by: Lisa Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Sundarrajan98 * RPP Voxel 3D Tensor Multiply scalar on HOST and HIP (#306) * added HIP support for voxel scalar multiply kernel * added HOST support for voxel multiply kernel added golden outputs for voxel multiply kernel * merge with master * RPP Test Suite Upgrade 4 - CSV to BIN conversions for file size reduction (#293) * change golden outputs from .csv files to .bin files * Changed comparision funtions to use .bin files * Address review comments * minor change * Address review comments * minor change --------- Co-authored-by: HazarathKumarM * converted multiply scalar voxel golden outputs to bin files * changed copyright from 2023 to 2024 --------- Co-authored-by: sampath1117 Co-authored-by: HazarathKumarM * Test Suite Bugfix (#307) * experimental changes for adding qa mode for performance tests * made changes to add display more information w.r.t QA results summary for performance tests * minor changes * Add changes to dump qa results to excel file * Add performance QA for three new tensor functions * update prerequisites in readme * added changes to handle unsupported cases * removed treshold dictionary and added performance Noise treshold add new dataset for performance QA * RPP Test Suite Upgrade 4 - CSV to BIN conversions for file size reduction (#293) * change golden outputs from .csv files to .bin files * Changed comparision funtions to use .bin files * Address review comments * minor change * Address review comments * minor change --------- Co-authored-by: HazarathKumarM * Changes to the performane summary dataframe * minor changes * Update CMakeLists.txt to add ${CMAKE_CURRENT_SOURCE_DIR} for CI * Update CMakeLists.txt fix * Update CMakeLists.txt fix * remove tabulate dependency * Update README.md to remove tabulate pip install * Fix for CI machine failure * Add note on performance * Fix segmentation fault * Revert QAmode to restrict HIP bitdepths * Use Rpp64u for HOST while comparing outputs * Fix ambiguous abs call * Fix for SLES CI HIP fail - error: incompatible pointer types assigning to 'unsigned long *' from 'unsigned long long *' - refOutput = TensorSumReferenceOutputs[numChannels].data(); --------- Co-authored-by: sampath1117 Co-authored-by: HazarathKumarM Co-authored-by: Snehaa Giridharan Co-authored-by: Pavel Tcherniaev * Initial commit * Merge changes and fixes for gaussian noise 3d * Test suite merge and fixes for gaussian noise 3d * added initial support for gaussian noise HOST NDHWC variant * added NCDHW support * added u8 and i8 bitdepth support * updated gaussian noise voxel host outer api to match with hip api merged gaussian noise voxel kernel codes in 2d kernel codes * resolved black pixels issue across border * minor changes * modified HIP kernel as per the latest changes * modified the description as per the latest changes * made changes in test suite * added new host compute functions for gaussian noise 3d * Bump rocm-docs-core[api_reference] from 0.35.0 to 0.35.1 in /docs/sphinx (#319) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.35.0 to 0.35.1. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/ROCm/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.35.0...v0.35.1) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * moved the copy 3d function to rpp_cpu_common.hpp * reverted incorrect changes happened with merge * fix test suite issue with RMN * revert incorrect merge changes remove empty blank lines * modify suffix from 3d to voxel for gaussian noise added U8 support for gaussian noise HIP voxel kernel * added separate copy kernel for copying input to output when mean and stddev passed is 0 * Bump rocm-docs-core[api_reference] from 0.35.1 to 0.36.0 in /docs/sphinx (#322) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.35.1 to 0.36.0. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/ROCm/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.35.1...v0.36.0) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * fixed bug in test suite * Docs - Bump rocm-docs-core[api_reference] from 0.36.0 to 0.37.0 in /docs/sphinx (#328) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.36.0 to 0.37.0. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/ROCm/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.36.0...v0.37.0) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Link cleanup (#326) * link updates * update tables * pare down index * API cleanup * consistency * verbiage * Update notes * change function name from CHECK to CHECK_RETURN_STATUS * Docs - Bump rocm-docs-core[api_reference] from 0.37.0 to 0.37.1 in /docs/sphinx (#329) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.37.0 to 0.37.1. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/ROCm/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.37.0...v0.37.1) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * RPP Voxel Flip on HIP and HOST (#285) * added support for flip voxel * added test suite support * added golden outputs for flip voxel made changes in test suite to run QA tests for flip * updated golden outputs with correct values * minor bug fix in the hip test suite * made changes to variable names for better readability fixed comments in test suite minor cleanup * combined the flip axis factor as ternary operator in HIP kernel added new enum for error handling when source and destination layouts are not matching * RPP Test Suite Upgrade 4 - CSV to BIN conversions for file size reduction (#293) * change golden outputs from .csv files to .bin files * Changed comparision funtions to use .bin files * Address review comments * minor change * Address review comments * minor change --------- Co-authored-by: HazarathKumarM * converted flip voxel golden outputs to bin files * changed copyright from 2023 to 2024 * Update flip_voxel.hpp license * License - updates to 2024 and consistency changes (#298) * Match all CMakeLists.txt license as per RPP's outermost LICENSE file * Match all python files' license as per RPP's outermost LICENSE file * Match all .hpp files' license as per RPP's outermost LICENSE file * Match all .cpp files' license as per RPP's outermost LICENSE file * Match all .h files' license as per RPP's outermost LICENSE file * Remove all rights reserved as per LICENSE file * Remove double space in "Copyright (c) 2019 - 2023 Advanced Micro Devices, Inc." * Match all .cmake files' license as per RPP's outermost LICENSE file * Match all .cpp.in files' license as per RPP's outermost LICENSE file * Replace 283 occurrences in 282 files - 2023 to 2024 * Add "MIT License" title to 281 instances * Add missing license * Test - Update README.md for test_suite (#299) * Bump rocm-docs-core[api_reference] from 0.33.0 to 0.33.1 in /docs/sphinx (#301) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.33.0 to 0.33.1. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/ROCm/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.33.0...v0.33.1) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump rocm-docs-core[api_reference] from 0.33.1 to 0.33.2 in /docs/sphinx (#302) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.33.1 to 0.33.2. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/ROCm/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.33.1...v0.33.2) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Update doc codeowners (#303) * Documentation - Bump rocm-docs-core[api_reference] from 0.33.2 to 0.34.0 in /docs/sphinx (#304) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.33.2 to 0.34.0. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/ROCm/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.33.2...v0.34.0) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Test suite - upgrade 5 qa perf (#305) * experimental changes for adding qa mode for performance tests * made changes to add display more information w.r.t QA results summary for performance tests * minor changes * Add changes to dump qa results to excel file * Add performance QA for three new tensor functions * update prerequisites in readme * added changes to handle unsupported cases * removed treshold dictionary and added performance Noise treshold add new dataset for performance QA * RPP Test Suite Upgrade 4 - CSV to BIN conversions for file size reduction (#293) * change golden outputs from .csv files to .bin files * Changed comparision funtions to use .bin files * Address review comments * minor change * Address review comments * minor change --------- Co-authored-by: HazarathKumarM * Changes to the performane summary dataframe * minor changes * Update CMakeLists.txt to add ${CMAKE_CURRENT_SOURCE_DIR} for CI * Update CMakeLists.txt fix * Update CMakeLists.txt fix * remove tabulate dependency * Update README.md to remove tabulate pip install * Fix for CI machine failure * Add note on performance --------- Co-authored-by: sampath1117 Co-authored-by: HazarathKumarM Co-authored-by: Abishek <52214183+r-abishek@users.noreply.github.com> Co-authored-by: Snehaa Giridharan Co-authored-by: r-abishek * RPP Color Temperature on HOST and HIP (#271) * Initial commit - Color Temperature HOST Tensor * Initial commit - Color Temperature HIP Tensor * Add color temperature golden outputs * address review comments * Use reinterpret_cast instead of static_cast * Combine templated functions to support all datatypes into one (got minor perf difference of order 3%) Also fixes indentation * Fix i8 datatype * Cleanup * RPP Test Suite Upgrade 4 - CSV to BIN conversions for file size reduction (#293) * change golden outputs from .csv files to .bin files * Changed comparision funtions to use .bin files * Address review comments * minor change * Address review comments * minor change --------- Co-authored-by: HazarathKumarM * Fix PLN3 variant outputs Also modifies reference outputs * Update color_temperature.hpp license * Delete color_temperature_u8_Tensor_PKD3.csv * Delete color_temperature_u8_Tensor_PLN3.csv --------- Co-authored-by: snehaa8 Co-authored-by: HazarathKumarM Co-authored-by: Snehaa-Giridharan <118163708+snehaa8@users.noreply.github.com> * RPP Voxel 3D Tensor Add/Subtract scalar on HOST and HIP (#272) * added HOST support for voxel add kernel * added HIP support for voxel add kernel * added test suite support for add scalar * added Doxygen support and modified hip kernel function names as per new standard * added HOST support for voxel subtract kernel * added HIP support for voxel subtract kernel * added test suite support * updated the golden outputs for subtract with correct values * removed unnessary validation checks * Remove double spaces * Fix header * Fix all retval docs * Fix docs to add memory type * Fix comment * Add divider comment * Use post-increment efficiently * RPP Test Suite Upgrade 4 - CSV to BIN conversions for file size reduction (#293) * change golden outputs from .csv files to .bin files * Changed comparision funtions to use .bin files * Address review comments * minor change * Address review comments * minor change --------- Co-authored-by: HazarathKumarM * converted add and subtract scalar golden outputs to bin files * changed copyright from 2023 to 2024 * Update add_scalar.hpp license * Update subtract_scalar.hpp license --------- Co-authored-by: sampath1117 Co-authored-by: HazarathKumarM * RPP Magnitude on HOST and HIP (#278) * Initial commit - Magnitude HOST Tensor * Add QA reference outputs * Update runTests.py * Initial commit - Magnitude HIP Tensor * Add dual input support in testsuite * Optimize HOST kernel further * Optimize i8 datatype further * Modify comments * RPP Test Suite Upgrade 4 - CSV to BIN conversions for file size reduction (#293) * change golden outputs from .csv files to .bin files * Changed comparision funtions to use .bin files * Address review comments * minor change * Address review comments * minor change --------- Co-authored-by: HazarathKumarM * Bump rocm-docs-core[api_reference] from 0.31.0 to 0.33.0 in /docs/sphinx (#294) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.31.0 to 0.33.0. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/ROCm/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.31.0...v0.33.0) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Update Copywright year * Combine templated functions to support all datatypes * Modify format of reference outputs * Update rppi_arithmetic_operations.h license * Update rppt_tensor_arithmetic_operations.h license * Update host_tensor_arithmetic_operations.hpp * Update magnitude.hpp license * Update hip_tensor_arithmetic_operations.hpp license * Delete magnitude_u8_Tensor_PKD3.csv * Delete magnitude_u8_Tensor_PLN1.csv * Delete magnitude_u8_Tensor_PLN3.csv * Update rpp_test_suite_common.h license * Update runTests.py license * Update Tensor_hip.cpp license * Update runTests.py license * Update Tensor_host.cpp license --------- Signed-off-by: dependabot[bot] Co-authored-by: Snehaa Giridharan Co-authored-by: HazarathKumarM Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Snehaa-Giridharan <118163708+snehaa8@users.noreply.github.com> * Bump rocm-docs-core[api_reference] from 0.34.0 to 0.34.2 in /docs/sphinx (#309) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.34.0 to 0.34.2. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/ROCm/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.34.0...v0.34.2) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * RPP Tensor Audio Support - Down Mixing (#296) * Initial commit - Non slient region detection Includes unittest setup * Initial commit - To Decibels Includes unittest setup * Intial commit - pre_emphasis_filter * Intial commit - down_mixing * Replace vectors with arrays * Cleanup * Minor cleanup * Optimize downmixing Kernel Includes cleanup * Replace Rpp64s with Rpp32s * Cleanup * Optimize and precompute cutOff * Fix buffer used * Fix buffer used * Additional Cleanup * Optimize post incrmeent operation * Optimize post increment operation * Update testsuite for Audio * code cleanup * Add Readme file for Audio test suite * changes based on review comments * minor change * Remove unittest folders and updated README.md * Remove unit tests * minor change * code cleanup * added common header file for audio helper functions * removed unncessary audio wav files fixed bug in ROI updation for audio test suite resolved issue in summary generation for performance tests in python * removed log file * added doxygen support for audio * added doxygen changes for to_decibels * updated test suite support for to_decibels * minor change * added doxygen changes for preemphasis filter * updated changes for preemphasis filter in test suite * removed the usage of getMax function and used std::max_element * modularized code in test suite * merge with latest changes * minor change * minor change * minor change * resolved codacy warnings * Codacy fix - Remove unused cpuTime * CMakeLists - Version Update 1.5.0 - TOT Version * CHANGELOG Updates Version 1.5.0 placeholder * resolved issue with file_system dependency in test suite * Doxygen changes changed malloc to new in NSR kernel * RPP RICAP Tensor for HOST and HIP (#213) * Initial commit - Ricap HOST Tensor Includes testsuite changes * Add QA tests for RICAP Used three_images_224x224_src1 folder to create golden outputs * Add three_images_224x224_src1 into TEST_IMAGES * Support HIP Backend for RICAP * Fix HIP pkd3->pkd3 variant * regenerated golden outputs for RICAP minor changes in HOST shell script for handling RICAP in QA mode * minor bug fix in RICAP HIP kernels * Improve readability and Cleanup * Additional cleanup * Cleanup testsuite Includes new golden outputs * Additional testuite fixes * Minor cleanup * Fix codacy warnings * Address other codacy warnings * Update ricap.hpp with reference paper * Add RICAP dataset path in readme * Make changes to error codes returned * Modify roi crop region for unit and perf tests * RPP Tensor Water Augmentation on HOST and HIP (#181) * added water HOST and HIP codes * added water case in test suite * added golden outputs for water * added omp thread changes for water augmentation * experimental changes * fixed output issue with AVX2 instructions * added AVX2 support for PKD3 load function minor changes in PLN variant load functions * nwc commit - added avx2 changes for u8 layout toggle variants but need to add store functions for completion * Add Avx2 implementation for F32 and U8 toggle variants * Add AVX2 support for u8 pkd3-pln3 and i8 pkd3-pln3 for water augmentation * change F32 load and store logic * optimized the store function for F32 PLN3-PKD3 * reverted back irrelevant changes * minor change * optimized load and store functions for water U8 and F32 variants in host removed commented code * removed golden outputs for water * minor changes * renamed few functions and removed unused functions updated i8 pln1 load as per the optimized u8 pln1 load * fixed bug in i8 load function * changed cast to c++ style resolved spacing issues and added comments for AVX codes for better understanding made changes to handle cases where QA Tests are not supported * added golden outputs for water * updated golden outputs with latest changes * modified the u8, i8 pkd3-pln3 function and added comments for the vectorized code * fixed minor bug in I8 variants * made to changes to resolve codacy warnings * changed cast to c++ style in hip kernel * changed generic nn F32 loads using gather and setr instructions * added comments for latest changes * minor change * added definition for storing 32 and 64 bits from a 128bit register --------- Co-authored-by: sampath1117 Co-authored-by: HazarathKumarM * Fix build error * CMakeLists - Version Update 1.5.0 - TOT Version * CHANGELOG Updates Version 1.5.0 placeholder * Boost deps fix for test suite --------- Co-authored-by: Snehaa Giridharan Co-authored-by: sampath1117 Co-authored-by: Snehaa-Giridharan <118163708+snehaa8@users.noreply.github.com> Co-authored-by: HazarathKumarM Co-authored-by: Kiriti Gowda * Documentation - Readme & changelog updates (#251) * readme and changelog updates for 6.0 * minor update * added ctests for audio test suite for CI made changes to add more clarity on the QA Tests results * Cmake mods for ctest * HOST-only build error bugfix * added qa mode paramter to python audio script added golden output map for QA testing of Non silent region detection * minor change * Documentation - Bump rocm-docs-core[api_reference] from 0.26.0 to 0.27.0 in /docs/sphinx (#253) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.26.0 to 0.27.0. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/RadeonOpenCompute/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.26.0...v0.27.0) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * RPP Resize Mirror Normalize Bugfix (#252) * added fix for hipMemset * remove pixel check for U8-F32 and U8-F16 for HOST codes --------- Co-authored-by: sampath1117 * added example for MMS calculation in comments for better understanding * Sphinx - updates (#257) * Sphinx - updates * Doxygen - Updates * Docs - Remove index.md * updated info used to for running audio test suite * removed bitdepth variable from audio test suite * added more information on computing NSR outputs in the example added * Fix doxygen for decibels Also removes extra QA reference files * move tensor_host_audio.cpp to host folder * Fix build errors and qa tests in Audio Test suite * Fix build errors and qa tests in Audio Test suite * Add reference output and test samples for downmix * Add down_mix in augmentation list and supported cases * Remove auto-merge repeated funcs * Improve clarity of header docs * Remove blank line * Improve clarity on header docs * Add Doxygen comments * minor change * converted golden outputs to binary file for downmixing * removed old golden output file for preemphasis and todecibels * modified info for downmixing as per new changes used handle memory for temporary buffers * formatting changes * moved the common code for SSE and AVX to outside * Update down_mixing.hpp license * Update rppt_tensor_audio_augmentations.h * combined the srcLength and channels tensors into single tensor --------- Signed-off-by: dependabot[bot] Co-authored-by: Snehaa Giridharan Co-authored-by: HazarathKumarM Co-authored-by: sampath1117 Co-authored-by: Kiriti Gowda Co-authored-by: Snehaa-Giridharan <118163708+snehaa8@users.noreply.github.com> Co-authored-by: Lisa Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Sundarrajan98 * RPP Voxel 3D Tensor Multiply scalar on HOST and HIP (#306) * added HIP support for voxel scalar multiply kernel * added HOST support for voxel multiply kernel added golden outputs for voxel multiply kernel * merge with master * RPP Test Suite Upgrade 4 - CSV to BIN conversions for file size reduction (#293) * change golden outputs from .csv files to .bin files * Changed comparision funtions to use .bin files * Address review comments * minor change * Address review comments * minor change --------- Co-authored-by: HazarathKumarM * converted multiply scalar voxel golden outputs to bin files * changed copyright from 2023 to 2024 --------- Co-authored-by: sampath1117 Co-authored-by: HazarathKumarM * Test Suite Bugfix (#307) * experimental changes for adding qa mode for performance tests * made changes to add display more information w.r.t QA results summary for performance tests * minor changes * Add changes to dump qa results to excel file * Add performance QA for three new tensor functions * update prerequisites in readme * added changes to handle unsupported cases * removed treshold dictionary and added performance Noise treshold add new dataset for performance QA * RPP Test Suite Upgrade 4 - CSV to BIN conversions for file size reduction (#293) * change golden outputs from .csv files to .bin files * Changed comparision funtions to use .bin files * Address review comments * minor change * Address review comments * minor change --------- Co-authored-by: HazarathKumarM * Changes to the performane summary dataframe * minor changes * Update CMakeLists.txt to add ${CMAKE_CURRENT_SOURCE_DIR} for CI * Update CMakeLists.txt fix * Update CMakeLists.txt fix * remove tabulate dependency * Update README.md to remove tabulate pip install * Fix for CI machine failure * Add note on performance * Fix segmentation fault * Revert QAmode to restrict HIP bitdepths * Use Rpp64u for HOST while comparing outputs * Fix ambiguous abs call * Fix for SLES CI HIP fail - error: incompatible pointer types assigning to 'unsigned long *' from 'unsigned long long *' - refOutput = TensorSumReferenceOutputs[numChannels].data(); --------- Co-authored-by: sampath1117 Co-authored-by: HazarathKumarM Co-authored-by: Snehaa Giridharan Co-authored-by: Pavel Tcherniaev * Bump rocm-docs-core[api_reference] from 0.34.2 to 0.35.0 in /docs/sphinx (#313) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.34.2 to 0.35.0. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/ROCm/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.34.2...v0.35.0) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * RPP Reduction - Tensor min and Tensor max on HOST and HIP (#260) * Minor Change * Add Validation check for DST_FOLDER path * added water HOST and HIP codes * added water case in test suite * added golden outputs for water * Add Validation checks for all options in testAllScript.sh * Add sanity check for dual Input cases Set Max Dimension and Max Image Dump Replaced Fast DCT tag with Accurate DCT * Regenerate golden outputs using accurate dct Flag Add golden outputs for some new augmentations * Fix Flip golden outputs mismatch Fix PLN3 variants mismatch in QA mode * Add MAX_BATCH_SIZE check removed Augmentations function calls for failing Qa modes code cleanup * Add crop and gamma correction augmentations code cleanup * Add comments to functions in rpp_test_suite_common.h * minor change * code cleanup * minor code changes * Change roi and Image sizes for crop augmentation * Change numIterations option to numRuns Addressed PR comments * added omp thread changes for water augmentation * experimental changes * fixed output issue with AVX2 instructions * added AVX2 support for PKD3 load function minor changes in PLN variant load functions * Add turboJpeg header to update maxHeight and maxWidth values * nwc commit - added avx2 changes for u8 layout toggle variants but need to add store functions for completion * Change the performance Timings logic * Add Avx2 implementation for F32 and U8 toggle variants * minor change to support u8_f16 and u8_f32 cases * Regenerate LUT golden outputs with ACCURATE_DCT tag * Minor code changes * Add AVX2 support for u8 pkd3-pln3 and i8 pkd3-pln3 for water augmentation * Made changes to the runTests.py in Host to remove testAllScipts.sh * Made changes to the runTests.py in HIP to remove testAllScipts.sh * Initial commit - Image min and max Reduction kernel Includes * u8 datatype for both min and max HOST Tensor of all variants. * Testsuite changes. * NWC -initial code for min max PLN3 - PLN3 * made changes to split min and max kernels seperately * splitted kernels for min and max * made changes to print final max/min in the R,G,B channels * fixed inaccuracies in min/max computation * made changes to typecast intermediate output to output requested by user added comments for the code code cleanup and minor changes in test suite * fixed build issues removed image folders used for min, max and sum reverted unwanted file changes * minor changes in test suite * removed support for unwanted test case in Tensor_hip.cpp * Adds new option roi * remove testAllScripts.sh * Adds roi Option in HIP backend * Implement f32 variants * Implement f16 and i8 datatype variants * change F32 load and store logic * Add build flags in CMakeLists.txt to set AVX/SSE flags based on the system configuration * minor code changes * Initial commit - Image sum Reduction kernel Includes u8 PLN1 -> PLN1 conversion for HOST Tensor * Implement PKD3 and PLN3 for Image sum Tensor HOST * Support i8, f16 and f32 datatypes * Initial commit - Image sum Reduction HIP kernel Includes u8 PLN1 -> PLN1 conversion for Tensor * Implement PKD3 and PLN3 for Image sum Tensor HIP * Add support in testsuite Revert normalization for i8 HOST Tensor variants * Fix HIP testsuite Remove additional blanks for 1 channel output * Modify print statement in HIP testsuite * Improve readability for testsuite outputs * optimized the store function for F32 PLN3-PKD3 * reverted back irrelevant changes * minor change * Fix HIP to support larger inputs * optimized load and store functions for water U8 and F32 variants in host removed commented code * Cleanup * removed golden outputs for water * minor changes * Cleanup Support Reduction QA test in testsuite * renamed few functions and removed unused functions updated i8 pln1 load as per the optimized u8 pln1 load * fixed bug in i8 load function * Remove unused variables and C style casting * changed cast to c++ style resolved spacing issues and added comments for AVX codes for better understanding made changes to handle cases where QA Tests are not supported * added golden outputs for water * updated golden outputs with latest changes * modified the u8, i8 pkd3-pln3 function and added comments for the vectorized code * fixed minor bug in I8 variants * Optimize u8 datatype further * Fix static_cast * made to changes to resolve codacy warnings * changed cast to c++ style in hip kernel * Initial commit - Ricap HOST Tensor Includes testsuite changes * Add QA tests for RICAP Used three_images_224x224_src1 folder to create golden outputs * Add three_images_224x224_src1 into TEST_IMAGES * added rotate case with golden outputs changed generic bilinear HOST codes to match with HIP codes * Add golden output for remaining all tensor augmentations * fix python script issues * Optimize u8 and i8 datatype Uses uint and int internal processing instead of float * Fix testsuite build errors * minor change * Fix QA check * Modify api naming from image_sum to tensor_sum Includes changes for both HOST and HIP * Support HIP Backend for RICAP * change rcm and rmn golden outputs * Fix HIP pkd3->pkd3 variant * changes based on review comments * change test_suite folder to tests * Optimize u8 and i8 datatype of HIP Includes modification in naming of shared memory * minor fix * changed generic nn F32 loads using gather and setr instructions * Optimize and cleanup U8 HIP * regenerated golden outputs for RICAP minor changes in HOST shell script for handling RICAP in QA mode * minor bug fix in RICAP HIP kernels * Fix i8 datatype variants Includes cleanup * Fix the issues with color_to_greyscale * remove the empty folder creation * reverting back the folder name change * minor change * added comments for latest changes * minor change * Improve readability and Cleanup * Fix QA for HIP Includes cleanup * resolved review comments * minor change * Modify api naming from image_ to tensor_ for HOST * Add support for QA tests * removed range check for RMN U8-F32 and U8-F16 variants changed from hipMemset to hipMemsetAsync for RMN HIP Kernel removed multiplication by 255 for stdDev in RMN HOST U8-F16 and U8-F32 variants * Modify naming of shared memory with _smem in HIP Includes cleanup * Typecast and reuse markArr for HIP U8 and I8 * Cleanup and minor optimization * minor fix * fix codacy warnings * Additional cleanup * Cleanup and move #define * Changed the complexity of if statements in runTests.py * Cleanup testsuite Includes new golden outputs * Additional testuite fixes * Minor cleanup * Codacy fixes * Fix codacy warnings * Codacy fix * Address other codacy warnings * cleanup * Change Image functions to generic * Update ricap.hpp with reference paper * resolved minor issues happened with merge * minor changes * fixed minor issue with getting profiler times * minor formatting changes * resolved build issues in test suite renamed the min and max kernel file names * RPP RICAP Tensor for HOST and HIP (#213) * Initial commit - Ricap HOST Tensor Includes testsuite changes * Add QA tests for RICAP Used three_images_224x224_src1 folder to create golden outputs * Add three_images_224x224_src1 into TEST_IMAGES * Support HIP Backend for RICAP * Fix HIP pkd3->pkd3 variant * regenerated golden outputs for RICAP minor changes in HOST shell script for handling RICAP in QA mode * minor bug fix in RICAP HIP kernels * Improve readability and Cleanup * Additional cleanup * Cleanup testsuite Includes new golden outputs * Additional testuite fixes * Minor cleanup * Fix codacy warnings * Address other codacy warnings * Update ricap.hpp with reference paper * Add RICAP dataset path in readme * Make changes to error codes returned * Modify roi crop region for unit and perf tests * RPP Tensor Water Augmentation on HOST and HIP (#181) * added water HOST and HIP codes * added water case in test suite * added golden outputs for water * added omp thread changes for water augmentation * experimental changes * fixed output issue with AVX2 instructions * added AVX2 support for PKD3 load function minor changes in PLN variant load functions * nwc commit - added avx2 changes for u8 layout toggle variants but need to add store functions for completion * Add Avx2 implementation for F32 and U8 toggle variants * Add AVX2 support for u8 pkd3-pln3 and i8 pkd3-pln3 for water augmentation * change F32 load and store logic * optimized the store function for F32 PLN3-PKD3 * reverted back irrelevant changes * minor change * optimized load and store functions for water U8 and F32 variants in host removed commented code * removed golden outputs for water * minor changes * renamed few functions and removed unused functions updated i8 pln1 load as per the optimized u8 pln1 load * fixed bug in i8 load function * changed cast to c++ style resolved spacing issues and added comments for AVX codes for better understanding made changes to handle cases where QA Tests are not supported * added golden outputs for water * updated golden outputs with latest changes * modified the u8, i8 pkd3-pln3 function and added comments for the vectorized code * fixed minor bug in I8 variants * made to changes to resolve codacy warnings * changed cast to c++ style in hip kernel * changed generic nn F32 loads using gather and setr instructions * added comments for latest changes * minor change * added definition for storing 32 and 64 bits from a 128bit register --------- Co-authored-by: sampath1117 Co-authored-by: HazarathKumarM * Fix build error * CMakeLists - Version Update 1.5.0 - TOT Version * CHANGELOG Updates Version 1.5.0 placeholder * Boost deps fix for test suite --------- Co-authored-by: Snehaa Giridharan Co-authored-by: sampath1117 Co-authored-by: Snehaa-Giridharan <118163708+snehaa8@users.noreply.github.com> Co-authored-by: HazarathKumarM Co-authored-by: Kiriti Gowda * Documentation - Readme & changelog updates (#251) * readme and changelog updates for 6.0 * minor update * Documentation - Bump rocm-docs-core[api_reference] from 0.26.0 to 0.27.0 in /docs/sphinx (#253) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.26.0 to 0.27.0. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/RadeonOpenCompute/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.26.0...v0.27.0) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * RPP Resize Mirror Normalize Bugfix (#252) * added fix for hipMemset * remove pixel check for U8-F32 and U8-F16 for HOST codes --------- Co-authored-by: sampath1117 * Cmake fix to prevent warning * Fix paths in new python scripts * Sphinx - updates (#257) * Sphinx - updates * Doxygen - Updates * Docs - Remove index.md * Test suite fixes after tensor_min / tensor_max HOST merge * Fix max case * QA tests fix for hip and host * naming convention changes as per new std * Substitute imagePartial with partial * Substitute imageMin/imageMax with min/max * Replace hipMemset with hipMemsetAsync, and replace hipDeviceSynchronize with hipStreamSynchronize * Use variable instead of batchCount*4 * Use post increment effectivly * Resolve codacy warnings * Additional cleanup * remove unused variable * Documentation - Bump rocm-docs-core[api_reference] from 0.28.0 to 0.29.0 in /docs/sphinx (#265) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.28.0 to 0.29.0. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/RadeonOpenCompute/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.28.0...v0.29.0) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Remove auto merge boost * Spaces formatting * Bump rocm-docs-core[api_reference] from 0.29.0 to 0.30.1 in /docs/sphinx (#268) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.29.0 to 0.30.1. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/RadeonOpenCompute/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.29.0...v0.30.1) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * add support for mi300 (#269) * Documentation - Bump rocm-docs-core[api_reference] from 0.30.1 to 0.30.2 in /docs/sphinx (#273) Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.30.1 to 0.30.2. - [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases) - [Changelog](https://github.com/RadeonOpenCompute/rocm-docs-core/blob/develop/CHANGELOG.md) - [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.30.1...v0.30.2) --- updated-dependencies: - dependency-name: rocm-docs-core[api_reference] dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Cleanup by removing oneliner functions as inline * RPP Tensor Audio Support - To Decibels (#258) * Initial commit - Non slient region detection Includes unittest setup * Initial commit - To Decibels Includes unittest setup * Replace vectors with arrays * Cleanup * Replace Rpp64s with Rpp32s * Optimize and precompute cutOff * Fix buff… --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Sam Wu Co-authored-by: Kiriti Gowda Co-authored-by: sampath1117 Co-authored-by: HazarathKumarM Co-authored-by: Snehaa Giridharan Co-authored-by: Snehaa-Giridharan <118163708+snehaa8@users.noreply.github.com> Co-authored-by: Lisa Co-authored-by: Sundarrajan98 Co-authored-by: Pavel Tcherniaev Co-authored-by: fiona-gladwin Co-authored-by: Lakshmi Kumar Co-authored-by: abhimeda <138710508+abhimeda@users.noreply.github.com> Co-authored-by: randyh62 <42045079+randyh62@users.noreply.github.com> --- include/rppdefs.h | 2 +- include/rppt_tensor_audio_augmentations.h | 2 +- include/rppt_tensor_geometric_augmentations.h | 60 ++- .../kernel/non_silent_region_detection.hpp | 4 +- src/modules/cpu/kernel/slice.hpp | 303 ++++++----- src/modules/hip/kernel/slice.hpp | 479 ++++++++++++++++-- .../rppt_tensor_audio_augmentations.cpp | 4 +- .../rppt_tensor_geometric_augmentations.cpp | 86 ++-- utilities/test_suite/HIP/Tensor_hip.cpp | 73 +++ utilities/test_suite/HIP/Tensor_voxel_hip.cpp | 56 +- utilities/test_suite/HIP/runTests.py | 4 +- utilities/test_suite/HOST/Tensor_host.cpp | 75 +++ .../test_suite/HOST/Tensor_host_audio.cpp | 43 +- .../test_suite/HOST/Tensor_voxel_host.cpp | 57 ++- utilities/test_suite/HOST/runTests.py | 4 +- .../slice/slice_u8_Tensor.bin | Bin 0 -> 273600 bytes .../REFERENCE_OUTPUTS_AUDIO/slice/slice.bin | Bin 0 -> 430176 bytes .../REFERENCE_OUTPUT_VOXEL/slice/slice.bin | Bin 4377600 -> 0 bytes .../slice/slice_nifti_output.bin | Bin 4377600 -> 4377600 bytes utilities/test_suite/rpp_test_suite_audio.h | 3 +- utilities/test_suite/rpp_test_suite_common.h | 96 +++- utilities/test_suite/rpp_test_suite_voxel.h | 45 ++ 22 files changed, 1149 insertions(+), 247 deletions(-) create mode 100644 utilities/test_suite/REFERENCE_OUTPUT/slice/slice_u8_Tensor.bin create mode 100644 utilities/test_suite/REFERENCE_OUTPUTS_AUDIO/slice/slice.bin delete mode 100644 utilities/test_suite/REFERENCE_OUTPUT_VOXEL/slice/slice.bin diff --git a/include/rppdefs.h b/include/rppdefs.h index 82539e139..d35f82bfd 100644 --- a/include/rppdefs.h +++ b/include/rppdefs.h @@ -134,7 +134,7 @@ typedef enum /*! \brief Out of bound source ROI \ingroup group_rppdefs */ RPP_ERROR_OUT_OF_BOUND_SRC_ROI = -17, /*! \brief src and dst layout mismatch \ingroup group_rppdefs */ - RPP_ERROR_SRC_DST_LAYOUT_MISMATCH = -18, + RPP_ERROR_LAYOUT_MISMATCH = -18, /*! \brief Number of channels is invalid. (Needs to adhere to function specification.) \ingroup group_rppdefs */ RPP_ERROR_INVALID_CHANNELS = -19 } RppStatus; diff --git a/include/rppt_tensor_audio_augmentations.h b/include/rppt_tensor_audio_augmentations.h index 09e4cbd56..4e5f412db 100644 --- a/include/rppt_tensor_audio_augmentations.h +++ b/include/rppt_tensor_audio_augmentations.h @@ -60,7 +60,7 @@ extern "C" { * \retval RPP_SUCCESS Successful completion. * \retval RPP_ERROR* Unsuccessful completion. */ -RppStatus rppt_non_silent_region_detection_host(RppPtr_t srcPtr, RpptDescPtr srcDescPtr, Rpp32s *srcLengthTensor, Rpp32f *detectedIndexTensor, Rpp32f *detectionLengthTensor, Rpp32f cutOffDB, Rpp32s windowLength, Rpp32f referencePower, Rpp32s resetInterval, rppHandle_t rppHandle); +RppStatus rppt_non_silent_region_detection_host(RppPtr_t srcPtr, RpptDescPtr srcDescPtr, Rpp32s *srcLengthTensor, Rpp32s *detectedIndexTensor, Rpp32s *detectionLengthTensor, Rpp32f cutOffDB, Rpp32s windowLength, Rpp32f referencePower, Rpp32s resetInterval, rppHandle_t rppHandle); /*! \brief To Decibels augmentation on HOST backend * \details To Decibels augmentation for 1D audio buffer converts magnitude values to decibel values diff --git a/include/rppt_tensor_geometric_augmentations.h b/include/rppt_tensor_geometric_augmentations.h index 695c3252d..8e846a41b 100644 --- a/include/rppt_tensor_geometric_augmentations.h +++ b/include/rppt_tensor_geometric_augmentations.h @@ -448,38 +448,42 @@ RppStatus rppt_phase_gpu(RppPtr_t srcPtr1, RppPtr_t srcPtr2, RpptDescPtr srcDesc * \details This function performs slice augmentation on a generic 4D tensor. * Slice augmentation involves selecting a region of interest (ROI) from the source tensor * and copying it to the destination tensor. Support added for f32 -> f32 and u8 -> u8 dataypes. - * \param[in] srcPtr source tensor in HOST memory - * \param[in] srcGenericDescPtr source tensor descriptor - * \param[out] dstPtr destination tensor in HOST memory - * \param[in] dstGenericDescPtr destination tensor descriptor - * \param[in] roiGenericPtrSrc ROI data for each image in source tensor (tensor of batchSize RpptRoiGeneric values) - * \param[in] roiType ROI type used (RpptRoi3DType::XYZWHD or RpptRoi3DType::LTFRBB) + * \param [in] srcPtr source tensor memory in HOST memory + * \param [in] srcGenericDescPtr source tensor descriptor + * \param [out] dstPtr destination tensor memory in HOST memory + * \param [in] dstGenericDescPtr destination tensor descriptor + * \param [in] anchorTensor starting index of the slice for each dimension in input (1D tensor of size = batchSize * numberOfDimensions) + * \param [in] shapeTensor length of the slice for each dimension in input (1D tensor of size = batchSize * numberOfDimensions) + * \param [in] fillValue fill value that is used to fill output if enablePadding is set to true + * \param [in] enablePadding boolean flag to specify if padding is enabled or not + * \param [in] roiTensor roi data in HOST memory (1D tensor of size = batchSize * numberOfDimensions * 2) * \param [in] rppHandle RPP HOST handle created with \ref rppCreateWithBatchSize() * \return A \ref RppStatus enumeration. * \retval RPP_SUCCESS Successful completion. * \retval RPP_ERROR* Unsuccessful completion. - * \ingroup group_tensor_geometric */ -RppStatus rppt_slice_host(RppPtr_t srcPtr, RpptGenericDescPtr srcGenericDescPtr, RppPtr_t dstPtr, RpptGenericDescPtr dstGenericDescPtr, RpptROI3DPtr roiGenericPtrSrc, RpptRoi3DType roiType, rppHandle_t rppHandle); +RppStatus rppt_slice_host(RppPtr_t srcPtr, RpptGenericDescPtr srcGenericDescPtr, RppPtr_t dstPtr, RpptGenericDescPtr dstGenericDescPtr, Rpp32s *anchorTensor, Rpp32s *shapeTensor, RppPtr_t fillValue, bool enablePadding, Rpp32u *roiTensor, rppHandle_t rppHandle); #ifdef GPU_SUPPORT /*! \brief Slice augmentation GPU * \details This function performs slice augmentation on a generic 4D tensor. * Slice augmentation involves selecting a region of interest (ROI) from the source tensor * and copying it to the destination tensor. Support added for f32 -> f32 and u8 -> u8 dataypes. - * \param[in] srcPtr source tensor in HIP memory - * \param[in] srcGenericDescPtr source tensor descriptor - * \param[out] dstPtr destination tensor in HIP memory - * \param[in] dstGenericDescPtr destination tensor descriptor - * \param[in] roiGenericPtrSrc ROI data for each image in source tensor (tensor of batchSize RpptRoiGeneric values) - * \param[in] roiType ROI type used (RpptRoi3DType::XYZWHD or RpptRoi3DType::LTFRBB) + * \param [in] srcPtr source tensor memory in HIP memory + * \param [in] srcGenericDescPtr source tensor descriptor + * \param [out] dstPtr destination tensor memory in HIP memory + * \param [in] dstGenericDescPtr destination tensor descriptor + * \param [in] anchorTensor starting index of the slice for each dimension in input (1D tensor in pinned/HOST memory of size = batchSize * numberOfDimensions) + * \param [in] shapeTensor length of the slice for each dimension in input (1D tensor in pinned/HOST memory of size = batchSize * numberOfDimensions) + * \param [in] fillValue fill value that is used to fill output if enablePadding is set to true + * \param [in] enablePadding boolean flag to specify if padding is enabled or not + * \param [in] roiTensor roi data in pinned/HOST memory (1D tensor of size = batchSize * numberOfDimensions * 2) * \param [in] rppHandle RPP HIP handle created with \ref rppCreateWithStreamAndBatchSize() * \return A \ref RppStatus enumeration. * \retval RPP_SUCCESS Successful completion. * \retval RPP_ERROR* Unsuccessful completion. - * \ingroup group_tensor_geometric */ -RppStatus rppt_slice_gpu(RppPtr_t srcPtr, RpptGenericDescPtr srcGenericDescPtr, RppPtr_t dstPtr, RpptGenericDescPtr dstGenericDescPtr, RpptROI3DPtr roiGenericPtrSrc, RpptRoi3DType roiType, rppHandle_t rppHandle); +RppStatus rppt_slice_gpu(RppPtr_t srcPtr, RpptGenericDescPtr srcGenericDescPtr, RppPtr_t dstPtr, RpptGenericDescPtr dstGenericDescPtr, Rpp32s *anchorTensor, Rpp32s *shapeTensor, RppPtr_t fillValue, bool enablePadding, Rpp32u *roiTensor, rppHandle_t rppHandle); #endif // GPU_SUPPORT /*! \brief Crop and Patch augmentation on HOST backend for a NCHW/NHWC layout tensor @@ -539,15 +543,15 @@ RppStatus rppt_crop_and_patch_gpu(RppPtr_t srcPtr1, RppPtr_t srcPtr2, RpptDescPt
Support added for f32 -> f32 and u8 -> u8 dataypes. * \image html input150x150x4.gif Sample Input * \image html geometric_augmentations_flip_150x150x4.gif Sample Output - * \param[in] srcPtr source tensor in HOST memory - * \param[in] srcGenericDescPtr source tensor descriptor (Restrictions - numDims = 5, offsetInBytes >= 0, dataType = U8/F32, layout = NCDHW/NDHWC, c = 1/3) - * \param[out] dstPtr destination tensor in HOST memory - * \param[in] dstGenericDescPtr destination tensor descriptor (Restrictions - numDims = 5, offsetInBytes >= 0, dataType = U8/F32, layout = NCDHW/NDHWC, c = 1/3) + * \param [in] srcPtr source tensor in HOST memory + * \param [in] srcGenericDescPtr source tensor descriptor (Restrictions - numDims = 5, offsetInBytes >= 0, dataType = U8/F32, layout = NCDHW/NDHWC, c = 1/3) + * \param [out] dstPtr destination tensor in HOST memory + * \param [in] dstGenericDescPtr destination tensor descriptor (Restrictions - numDims = 5, offsetInBytes >= 0, dataType = U8/F32, layout = NCDHW/NDHWC, c = 1/3) * \param [in] horizontalTensor horizontal flag values to set horizontal flip on/off (1D tensor in HOST memory, of size batchSize, with horizontalTensor[i] = 0/1) * \param [in] verticalTensor vertical flag values to set vertical flip on/off (1D tensor in HOST memory, of size batchSize, with verticalTensor[i] = 0/1) * \param [in] depthTensor depth flag values to set depth flip on/off (1D tensor in HOST memory, of size batchSize, with depthTensor[i] = 0/1) - * \param[in] roiGenericPtrSrc ROI data for each image in source tensor (tensor of batchSize RpptRoiGeneric values) - * \param[in] roiType ROI type used (RpptRoi3DType::XYZWHD or RpptRoi3DType::LTFRBB) + * \param [in] roiGenericPtrSrc ROI data for each image in source tensor (tensor of batchSize RpptRoiGeneric values) + * \param [in] roiType ROI type used (RpptRoi3DType::XYZWHD or RpptRoi3DType::LTFRBB) * \param [in] rppHandle RPP HOST handle created with \ref rppCreateWithBatchSize() * \return A \ref RppStatus enumeration. * \retval RPP_SUCCESS Successful completion. @@ -562,15 +566,15 @@ RppStatus rppt_flip_voxel_host(RppPtr_t srcPtr, RpptGenericDescPtr srcGenericDes
Support added for f32 -> f32 and u8 -> u8 dataypes. * \image html input150x150x4.gif Sample Input * \image html geometric_augmentations_flip_150x150x4.gif Sample Output - * \param[in] srcPtr source tensor in HIP memory - * \param[in] srcGenericDescPtr source tensor descriptor (Restrictions - numDims = 5, offsetInBytes >= 0, dataType = U8/F32, layout = NCDHW/NDHWC, c = 1/3) - * \param[out] dstPtr destination tensor in HIP memory - * \param[in] dstGenericDescPtr destination tensor descriptor (Restrictions - numDims = 5, offsetInBytes >= 0, dataType = U8/F32, layout = NCDHW/NDHWC, c = 1/3) + * \param [in] srcPtr source tensor in HIP memory + * \param [in] srcGenericDescPtr source tensor descriptor (Restrictions - numDims = 5, offsetInBytes >= 0, dataType = U8/F32, layout = NCDHW/NDHWC, c = 1/3) + * \param [out] dstPtr destination tensor in HIP memory + * \param [in] dstGenericDescPtr destination tensor descriptor (Restrictions - numDims = 5, offsetInBytes >= 0, dataType = U8/F32, layout = NCDHW/NDHWC, c = 1/3) * \param [in] horizontalTensor horizontal flag values to set horizontal flip on/off (1D tensor in pinned/HOST memory, of size batchSize, with horizontalTensor[i] = 0/1) * \param [in] verticalTensor vertical flag values to set vertical flip on/off (1D tensor in pinned/HOST memory, of size batchSize, with verticalTensor[i] = 0/1) * \param [in] depthTensor depth flag values to set depth flip on/off (1D tensor in pinned/HOST memory, of size batchSize, with depthTensor[i] = 0/1) - * \param[in] roiGenericPtrSrc ROI data for each image in source tensor (tensor of batchSize RpptRoiGeneric values) - * \param[in] roiType ROI type used (RpptRoi3DType::XYZWHD or RpptRoi3DType::LTFRBB) + * \param [in] roiGenericPtrSrc ROI data for each image in source tensor (tensor of batchSize RpptRoiGeneric values) + * \param [in] roiType ROI type used (RpptRoi3DType::XYZWHD or RpptRoi3DType::LTFRBB) * \param [in] rppHandle RPP HIP handle created with \ref rppCreateWithStreamAndBatchSize() * \return A \ref RppStatus enumeration. * \retval RPP_SUCCESS Successful completion. diff --git a/src/modules/cpu/kernel/non_silent_region_detection.hpp b/src/modules/cpu/kernel/non_silent_region_detection.hpp index 74dffb18e..39d9e6940 100644 --- a/src/modules/cpu/kernel/non_silent_region_detection.hpp +++ b/src/modules/cpu/kernel/non_silent_region_detection.hpp @@ -95,8 +95,8 @@ Rpp32f getSquare(Rpp32f &value) RppStatus non_silent_region_detection_host_tensor(Rpp32f *srcPtr, RpptDescPtr srcDescPtr, Rpp32s *srcLengthTensor, - Rpp32f *detectedIndexTensor, - Rpp32f *detectionLengthTensor, + Rpp32s *detectedIndexTensor, + Rpp32s *detectionLengthTensor, Rpp32f cutOffDB, Rpp32s windowLength, Rpp32f referencePower, diff --git a/src/modules/cpu/kernel/slice.hpp b/src/modules/cpu/kernel/slice.hpp index c451b67b4..37c3097c9 100644 --- a/src/modules/cpu/kernel/slice.hpp +++ b/src/modules/cpu/kernel/slice.hpp @@ -26,184 +26,213 @@ SOFTWARE. #include "rpp_cpu_simd.hpp" #include "rpp_cpu_common.hpp" -RppStatus slice_f32_f32_host_tensor(Rpp32f *srcPtr, - RpptGenericDescPtr srcGenericDescPtr, - Rpp32f *dstPtr, - RpptGenericDescPtr dstGenericDescPtr, - RpptROI3DPtr roiGenericPtrSrc, - RpptRoi3DType roiType, - RppLayoutParams layoutParams, - rpp::Handle& handle) +template +RppStatus slice_host_tensor(T *srcPtr, + RpptGenericDescPtr srcGenericDescPtr, + T *dstPtr, + RpptGenericDescPtr dstGenericDescPtr, + Rpp32s *anchorTensor, + Rpp32s *shapeTensor, + T* fillValue, + bool enablePadding, + Rpp32u *roiTensor, + RppLayoutParams layoutParams, + rpp::Handle& handle) { - RpptROI3D roiDefault; - if(srcGenericDescPtr->layout==RpptLayout::NCDHW) - roiDefault = {0, 0, 0, (Rpp32s)srcGenericDescPtr->dims[4], (Rpp32s)srcGenericDescPtr->dims[3], (Rpp32s)srcGenericDescPtr->dims[2]}; - else if(srcGenericDescPtr->layout==RpptLayout::NDHWC) - roiDefault = {0, 0, 0, (Rpp32s)srcGenericDescPtr->dims[3], (Rpp32s)srcGenericDescPtr->dims[2], (Rpp32s)srcGenericDescPtr->dims[1]}; Rpp32u numThreads = handle.GetNumThreads(); + Rpp32u numDims = srcGenericDescPtr->numDims - 1; // exclude batchsize from input dims omp_set_dynamic(0); #pragma omp parallel for num_threads(numThreads) for(int batchCount = 0; batchCount < dstGenericDescPtr->dims[0]; batchCount++) { - RpptROI3D roi; - RpptROI3DPtr roiPtrInput = &roiGenericPtrSrc[batchCount]; - compute_roi3D_validation_host(roiPtrInput, &roi, &roiDefault, roiType); + T *srcPtrTemp, *dstPtrTemp; + srcPtrTemp = srcPtr + batchCount * srcGenericDescPtr->strides[0]; + dstPtrTemp = dstPtr + batchCount * dstGenericDescPtr->strides[0]; - Rpp32f *srcPtrImage, *dstPtrImage; - srcPtrImage = srcPtr + batchCount * srcGenericDescPtr->strides[0]; - dstPtrImage = dstPtr + batchCount * dstGenericDescPtr->strides[0]; + T *srcPtrChannel, *dstPtrChannel; + dstPtrChannel = dstPtrTemp; - Rpp32u bufferLength = roi.xyzwhdROI.roiWidth * layoutParams.bufferMultiplier; + Rpp32s *anchor = &anchorTensor[batchCount * numDims]; + Rpp32s *shape = &shapeTensor[batchCount * numDims]; - Rpp32f *srcPtrChannel, *dstPtrChannel; - dstPtrChannel = dstPtrImage; + // get the starting address of length values from roiTensor + Rpp32u *roi = roiTensor + batchCount * numDims * 2; + Rpp32s *length = reinterpret_cast(&roi[numDims]); - // Slice without fused output-layout toggle (NCDHW -> NCDHW) - if((srcGenericDescPtr->layout == RpptLayout::NCDHW) && (dstGenericDescPtr->layout == RpptLayout::NCDHW)) + if (numDims == 4) { - srcPtrChannel = srcPtrImage + (roi.xyzwhdROI.xyz.z * srcGenericDescPtr->strides[2]) + (roi.xyzwhdROI.xyz.y * srcGenericDescPtr->strides[3]) + (roi.xyzwhdROI.xyz.x * layoutParams.bufferMultiplier); - - Rpp32u copyLengthInBytes = bufferLength * sizeof(Rpp32f); - for(int c = 0; c < layoutParams.channelParam; c++) + // order of dims + Rpp32s dimsOrder[3]; + if (dstGenericDescPtr->layout == RpptLayout::NCDHW) + { + dimsOrder[0] = 1; // depth + dimsOrder[1] = 2; // height + dimsOrder[2] = 3; // width + } + else { - Rpp32f *srcPtrDepth, *dstPtrDepth; - srcPtrDepth = srcPtrChannel; - dstPtrDepth = dstPtrChannel; + dimsOrder[0] = 0; // depth + dimsOrder[1] = 1; // height + dimsOrder[2] = 2; // width + } + Rpp32u maxDepth = std::min(shape[dimsOrder[0]], length[dimsOrder[0]] - anchor[dimsOrder[0]]); + Rpp32u maxHeight = std::min(shape[dimsOrder[1]], length[dimsOrder[1]] - anchor[dimsOrder[1]]); + Rpp32u maxWidth = std::min(shape[dimsOrder[2]], length[dimsOrder[2]] - anchor[dimsOrder[2]]); + Rpp32u bufferLength = maxWidth * layoutParams.bufferMultiplier; + Rpp32u copyLengthInBytes = bufferLength * sizeof(T); + + // if padding is required, fill the buffer with fill value specified + bool needPadding = (((anchor[dimsOrder[0]] + shape[dimsOrder[0]]) > length[dimsOrder[0]]) || + ((anchor[dimsOrder[1]] + shape[dimsOrder[1]]) > length[dimsOrder[1]]) || + ((anchor[dimsOrder[2]] + shape[dimsOrder[2]]) > length[dimsOrder[2]])); + if (needPadding && enablePadding) + std::fill(dstPtrChannel, dstPtrChannel + dstGenericDescPtr->strides[0] - 1, *fillValue); + + // slice without fused output-layout toggle (NCDHW -> NCDHW) + if (dstGenericDescPtr->layout == RpptLayout::NCDHW) + { + srcPtrChannel = srcPtrTemp + (anchor[1] * srcGenericDescPtr->strides[2]) + (anchor[2] * srcGenericDescPtr->strides[3]) + (anchor[3] * layoutParams.bufferMultiplier); + for(int c = 0; c < layoutParams.channelParam; c++) + { + T *srcPtrDepth, *dstPtrDepth; + srcPtrDepth = srcPtrChannel; + dstPtrDepth = dstPtrChannel; + for(int i = 0; i < maxDepth; i++) + { + T *srcPtrRow, *dstPtrRow; + srcPtrRow = srcPtrDepth; + dstPtrRow = dstPtrDepth; + for(int j = 0; j < maxHeight; j++) + { + memcpy(dstPtrRow, srcPtrRow, copyLengthInBytes); + srcPtrRow += srcGenericDescPtr->strides[3]; + dstPtrRow += dstGenericDescPtr->strides[3]; + } + srcPtrDepth += srcGenericDescPtr->strides[2]; + dstPtrDepth += dstGenericDescPtr->strides[2]; + } + srcPtrChannel += srcGenericDescPtr->strides[1]; + dstPtrChannel += srcGenericDescPtr->strides[1]; + } + } - for(int i = 0; i < roi.xyzwhdROI.roiDepth; i++) + // slice without fused output-layout toggle (NDHWC -> NDHWC) + else if (dstGenericDescPtr->layout == RpptLayout::NDHWC) + { + srcPtrChannel = srcPtrTemp + (anchor[0] * srcGenericDescPtr->strides[1]) + (anchor[1] * srcGenericDescPtr->strides[2]) + (anchor[2] * layoutParams.bufferMultiplier); + T *srcPtrDepth = srcPtrChannel; + T *dstPtrDepth = dstPtrChannel; + for(int i = 0; i < maxDepth; i++) { - Rpp32f *srcPtrRow, *dstPtrRow; + T *srcPtrRow, *dstPtrRow; srcPtrRow = srcPtrDepth; dstPtrRow = dstPtrDepth; - - for(int j = 0; j < roi.xyzwhdROI.roiHeight; j++) + for(int j = 0; j < maxHeight; j++) { memcpy(dstPtrRow, srcPtrRow, copyLengthInBytes); - - srcPtrRow += srcGenericDescPtr->strides[3]; - dstPtrRow += dstGenericDescPtr->strides[3]; + srcPtrRow += srcGenericDescPtr->strides[2]; + dstPtrRow += dstGenericDescPtr->strides[2]; } - srcPtrDepth += srcGenericDescPtr->strides[2]; - dstPtrDepth += dstGenericDescPtr->strides[2]; + srcPtrDepth += srcGenericDescPtr->strides[1]; + dstPtrDepth += dstGenericDescPtr->strides[1]; } - - srcPtrChannel += srcGenericDescPtr->strides[1]; - dstPtrChannel += srcGenericDescPtr->strides[1]; } } - // Slice without fused output-layout toggle (NDHWC -> NDHWC) - else if((srcGenericDescPtr->layout == RpptLayout::NDHWC) && (dstGenericDescPtr->layout == RpptLayout::NDHWC)) + else if (numDims == 3) { - Rpp32u copyLengthInBytes = bufferLength * sizeof(Rpp32f); - srcPtrChannel = srcPtrImage + (roi.xyzwhdROI.xyz.z * srcGenericDescPtr->strides[1]) + (roi.xyzwhdROI.xyz.y * srcGenericDescPtr->strides[2]) + (roi.xyzwhdROI.xyz.x * layoutParams.bufferMultiplier); - Rpp32f *srcPtrDepth = srcPtrChannel; - Rpp32f *dstPtrDepth = dstPtrChannel; - - for(int i = 0; i < roi.xyzwhdROI.roiDepth; i++) + // order of dims + Rpp32s dimsOrder[2]; + if (dstGenericDescPtr->layout == RpptLayout::NCHW) { - Rpp32f *srcPtrRow, *dstPtrRow; - srcPtrRow = srcPtrDepth; - dstPtrRow = dstPtrDepth; - - for(int j = 0; j < roi.xyzwhdROI.roiHeight; j++) - { - memcpy(dstPtrRow, srcPtrRow, copyLengthInBytes); - - srcPtrRow += srcGenericDescPtr->strides[2]; - dstPtrRow += dstGenericDescPtr->strides[2]; - } - srcPtrDepth += srcGenericDescPtr->strides[1]; - dstPtrDepth += dstGenericDescPtr->strides[1]; + dimsOrder[0] = 1; // height + dimsOrder[1] = 2; // width + } + else + { + dimsOrder[0] = 0; // height + dimsOrder[1] = 1; // width } - } - } - - return RPP_SUCCESS; -} - -RppStatus slice_u8_u8_host_tensor(Rpp8u *srcPtr, - RpptGenericDescPtr srcGenericDescPtr, - Rpp8u *dstPtr, - RpptGenericDescPtr dstGenericDescPtr, - RpptROI3DPtr roiGenericPtrSrc, - RpptRoi3DType roiType, - RppLayoutParams layoutParams, - rpp::Handle& handle) -{ - RpptROI3D roiDefault; - if(srcGenericDescPtr->layout==RpptLayout::NCDHW) - roiDefault = {0, 0, 0, (Rpp32s)srcGenericDescPtr->dims[4], (Rpp32s)srcGenericDescPtr->dims[3], (Rpp32s)srcGenericDescPtr->dims[2]}; - else if(srcGenericDescPtr->layout==RpptLayout::NDHWC) - roiDefault = {0, 0, 0, (Rpp32s)srcGenericDescPtr->dims[3], (Rpp32s)srcGenericDescPtr->dims[2], (Rpp32s)srcGenericDescPtr->dims[1]}; - Rpp32u numThreads = handle.GetNumThreads(); - - omp_set_dynamic(0); -#pragma omp parallel for num_threads(numThreads) - for(int batchCount = 0; batchCount < dstGenericDescPtr->dims[0]; batchCount++) - { - RpptROI3D roi; - RpptROI3DPtr roiPtrInput = &roiGenericPtrSrc[batchCount]; - compute_roi3D_validation_host(roiPtrInput, &roi, &roiDefault, roiType); - Rpp8u *srcPtrImage, *dstPtrImage; - srcPtrImage = srcPtr + batchCount * srcGenericDescPtr->strides[0]; - dstPtrImage = dstPtr + batchCount * dstGenericDescPtr->strides[0]; + Rpp32u maxHeight = std::min(shape[dimsOrder[0]], length[dimsOrder[0]] - anchor[dimsOrder[0]]); + Rpp32u maxWidth = std::min(shape[dimsOrder[1]], length[dimsOrder[1]] - anchor[dimsOrder[1]]); + Rpp32u bufferLength = maxWidth * layoutParams.bufferMultiplier; + Rpp32u copyLengthInBytes = bufferLength * sizeof(T); - Rpp32u bufferLength = roi.xyzwhdROI.roiWidth * layoutParams.bufferMultiplier; - Rpp8u *srcPtrChannel, *dstPtrChannel; - dstPtrChannel = dstPtrImage; + // if padding is required, fill the buffer with fill value specified + bool needPadding = ((anchor[dimsOrder[0]] + shape[dimsOrder[0]]) > length[dimsOrder[0]]) || + ((anchor[dimsOrder[1]] + shape[dimsOrder[1]]) > length[dimsOrder[1]]); + if (needPadding && enablePadding) + std::fill(dstPtrChannel, dstPtrChannel + dstGenericDescPtr->strides[0] - 1, *fillValue); - // Slice without fused output-layout toggle (NCDHW -> NCDHW) - if((srcGenericDescPtr->layout == RpptLayout::NCDHW) && (dstGenericDescPtr->layout == RpptLayout::NCDHW)) - { - srcPtrChannel = srcPtrImage + (roi.xyzwhdROI.xyz.z * srcGenericDescPtr->strides[2]) + (roi.xyzwhdROI.xyz.y * srcGenericDescPtr->strides[3]) + (roi.xyzwhdROI.xyz.x * layoutParams.bufferMultiplier); - for(int c = 0; c < layoutParams.channelParam; c++) + // slice without fused output-layout toggle (NCHW -> NCHW) + if (dstGenericDescPtr->layout == RpptLayout::NCHW) { - Rpp8u *srcPtrDepth, *dstPtrDepth; - srcPtrDepth = srcPtrChannel; - dstPtrDepth = dstPtrChannel; - for(int i = 0; i < roi.xyzwhdROI.roiDepth; i++) + srcPtrChannel = srcPtrTemp + (anchor[1] * srcGenericDescPtr->strides[2]) + (anchor[2] * layoutParams.bufferMultiplier); + for(int c = 0; c < layoutParams.channelParam; c++) { - Rpp8u *srcPtrRow, *dstPtrRow; - srcPtrRow = srcPtrDepth; - dstPtrRow = dstPtrDepth; - for(int j = 0; j < roi.xyzwhdROI.roiHeight; j++) + T *srcPtrRow, *dstPtrRow; + srcPtrRow = srcPtrChannel; + dstPtrRow = dstPtrChannel; + for(int j = 0; j < maxHeight; j++) { - memcpy(dstPtrRow, srcPtrRow, bufferLength * sizeof(Rpp8u)); - srcPtrRow += srcGenericDescPtr->strides[3]; - dstPtrRow += dstGenericDescPtr->strides[3]; + memcpy(dstPtrRow, srcPtrRow, copyLengthInBytes); + srcPtrRow += srcGenericDescPtr->strides[2]; + dstPtrRow += dstGenericDescPtr->strides[2]; } - srcPtrDepth += srcGenericDescPtr->strides[2]; - dstPtrDepth += dstGenericDescPtr->strides[2]; + srcPtrChannel += srcGenericDescPtr->strides[1]; + dstPtrChannel += srcGenericDescPtr->strides[1]; } - srcPtrChannel += srcGenericDescPtr->strides[1]; - dstPtrChannel += srcGenericDescPtr->strides[1]; } - } - // Slice without fused output-layout toggle (NDHWC -> NDHWC) - else if((srcGenericDescPtr->layout == RpptLayout::NDHWC) && (dstGenericDescPtr->layout == RpptLayout::NDHWC)) - { - srcPtrChannel = srcPtrImage + (roi.xyzwhdROI.xyz.z * srcGenericDescPtr->strides[1]) + (roi.xyzwhdROI.xyz.y * srcGenericDescPtr->strides[2]) + (roi.xyzwhdROI.xyz.x * layoutParams.bufferMultiplier); - Rpp8u *srcPtrDepth = srcPtrChannel; - Rpp8u *dstPtrDepth = dstPtrChannel; - for(int i = 0; i < roi.xyzwhdROI.roiDepth; i++) + // slice without fused output-layout toggle (NHWC -> NHWC) + else if (dstGenericDescPtr->layout == RpptLayout::NHWC) { - Rpp8u *srcPtrRow, *dstPtrRow; - srcPtrRow = srcPtrDepth; - dstPtrRow = dstPtrDepth; - - for(int j = 0; j < roi.xyzwhdROI.roiHeight; j++) + srcPtrChannel = srcPtrTemp + (anchor[0] * srcGenericDescPtr->strides[1]) + (anchor[1] * layoutParams.bufferMultiplier); + T *srcPtrRow = srcPtrChannel; + T *dstPtrRow = dstPtrChannel; + for(int j = 0; j < maxHeight; j++) { - memcpy(dstPtrRow, srcPtrRow, bufferLength * sizeof(Rpp8u)); - srcPtrRow += srcGenericDescPtr->strides[2]; - dstPtrRow += dstGenericDescPtr->strides[2]; + memcpy(dstPtrRow, srcPtrRow, copyLengthInBytes); + srcPtrRow += srcGenericDescPtr->strides[1]; + dstPtrRow += dstGenericDescPtr->strides[1]; } - srcPtrDepth += srcGenericDescPtr->strides[1]; - dstPtrDepth += dstGenericDescPtr->strides[1]; } } + else if (numDims == 2) + { + srcPtrChannel = srcPtrTemp + (anchor[0] * srcGenericDescPtr->strides[1]) + anchor[1]; + Rpp32u maxHeight = std::min(shape[0], length[0] - anchor[0]); + Rpp32u maxWidth = std::min(shape[1], length[1] - anchor[1]); + Rpp32u copyLengthInBytes = maxWidth * sizeof(T); + + // if padding is required, fill the buffer with fill value specified + bool needPadding = ((anchor[0] + shape[0]) > length[0]) || + ((anchor[1] + shape[1]) > length[1]); + if (needPadding && enablePadding) + std::fill(dstPtrChannel, dstPtrChannel + dstGenericDescPtr->strides[0] - 1, *fillValue); + + T *srcPtrRow = srcPtrChannel; + T *dstPtrRow = dstPtrChannel; + for(int j = 0; j < maxHeight; j++) + { + memcpy(dstPtrRow, srcPtrRow, copyLengthInBytes); + srcPtrRow += srcGenericDescPtr->strides[1]; + dstPtrRow += dstGenericDescPtr->strides[1]; + } + } + else if (numDims == 1) + { + srcPtrChannel = srcPtrTemp + anchor[0]; + Rpp32u maxLength = std::min(shape[0], length[0] - anchor[0]); + Rpp32u copyLengthInBytes = maxLength * sizeof(T); + + // if padding is required, fill the buffer with fill value specified + bool needPadding = ((anchor[0] + shape[0]) > length[0]); + if (needPadding && enablePadding) + std::fill(dstPtrTemp, dstPtrTemp + dstGenericDescPtr->strides[0] - 1, *fillValue); + memcpy(dstPtrChannel, srcPtrChannel, copyLengthInBytes); + } } return RPP_SUCCESS; diff --git a/src/modules/hip/kernel/slice.hpp b/src/modules/hip/kernel/slice.hpp index 8deb52bbb..c1b7a6c41 100644 --- a/src/modules/hip/kernel/slice.hpp +++ b/src/modules/hip/kernel/slice.hpp @@ -2,24 +2,79 @@ #include #include "rpp_hip_common.hpp" +template +__global__ void fill_value_ncdhw_hip_tensor(T *dstPtr, + uint3 dstStridesCDH, + int channels, + uint3 dstDimsDHW, + T *fillValue) +{ + int id_x = (hipBlockIdx_x * hipBlockDim_x + hipThreadIdx_x) * 8; // W - inner most dim vectorized + int id_y = hipBlockIdx_y * hipBlockDim_y + hipThreadIdx_y; // H - second to inner + int id_z = hipBlockIdx_z * hipBlockDim_z + hipThreadIdx_z; // D - outer most dim + + if ((id_z >= dstDimsDHW.x) || (id_y >= dstDimsDHW.y) || (id_x >= dstDimsDHW.z)) + { + return; + } + + uint dstIdx = (id_z * dstStridesCDH.y) + (id_y * dstStridesCDH.z) + id_x; + d_float8 val_f8; + val_f8.f4[0] = (float4)(*fillValue); + val_f8.f4[1] = val_f8.f4[0]; + for(int c = 0; c < channels; c++) + { + rpp_hip_pack_float8_and_store8(dstPtr + dstIdx, &val_f8); + dstIdx += dstStridesCDH.x; + } +} + + +template +__global__ void fill_value_ndhwc_hip_tensor(T *dstPtr, + uint2 dstStridesDH, + uint3 dstDimsDHW, + T *fillValue) +{ + int id_x = (hipBlockIdx_x * hipBlockDim_x + hipThreadIdx_x) * 8; // W - inner most dim vectorized + int id_y = hipBlockIdx_y * hipBlockDim_y + hipThreadIdx_y; // H - second to inner + int id_z = hipBlockIdx_z * hipBlockDim_z + hipThreadIdx_z; // D - outer most dim + + if ((id_z >= dstDimsDHW.x) || (id_y >= dstDimsDHW.y) || (id_x >= dstDimsDHW.z)) + { + return; + } + + uint dstIdx = (id_z * dstStridesDH.x) + (id_y * dstStridesDH.y) + id_x * 3; + d_float24 val_f24; + val_f24.f4[0] = (float4)(*fillValue); + val_f24.f4[1] = val_f24.f4[0]; + val_f24.f4[2] = val_f24.f4[0]; + val_f24.f4[3] = val_f24.f4[0]; + val_f24.f4[4] = val_f24.f4[0]; + val_f24.f4[5] = val_f24.f4[0]; + rpp_hip_pack_float24_pkd3_and_store24_pkd3(dstPtr + dstIdx, &val_f24); +} + + template __global__ void slice_ncdhw_hip_tensor(T *srcPtr, uint3 srcStridesCDH, T *dstPtr, uint3 dstStridesCDH, int channels, - RpptROI3DPtr roiGenericSrc) + uint3 validShapeDHW) { int id_x = (hipBlockIdx_x * hipBlockDim_x + hipThreadIdx_x) * 8; // W - inner most dim vectorized int id_y = hipBlockIdx_y * hipBlockDim_y + hipThreadIdx_y; // H - second to inner int id_z = hipBlockIdx_z * hipBlockDim_z + hipThreadIdx_z; // D - outer most dim - if ((id_z >= roiGenericSrc->xyzwhdROI.roiDepth) || (id_y >= roiGenericSrc->xyzwhdROI.roiHeight) || (id_x >= roiGenericSrc->xyzwhdROI.roiWidth)) + if ((id_z >= validShapeDHW.x) || (id_y >= validShapeDHW.y) || (id_x >= validShapeDHW.z)) { return; } - uint srcIdx = ((id_z + roiGenericSrc->xyzwhdROI.xyz.z) * srcStridesCDH.y) + ((id_y + roiGenericSrc->xyzwhdROI.xyz.y) * srcStridesCDH.z) + (id_x + roiGenericSrc->xyzwhdROI.xyz.x); + uint srcIdx = (id_z * srcStridesCDH.y) + (id_y * srcStridesCDH.z) + id_x; uint dstIdx = (id_z * dstStridesCDH.y) + (id_y * dstStridesCDH.z) + id_x; d_float8 val_f8; @@ -32,77 +87,439 @@ __global__ void slice_ncdhw_hip_tensor(T *srcPtr, } } + template __global__ void slice_ndhwc_hip_tensor(T *srcPtr, uint2 srcStridesDH, T *dstPtr, uint2 dstStridesDH, - RpptROI3DPtr roiGenericSrc) + uint3 validShapeDHW) { int id_x = (hipBlockIdx_x * hipBlockDim_x + hipThreadIdx_x) * 8; // WC - inner most dim vectorized int id_y = hipBlockIdx_y * hipBlockDim_y + hipThreadIdx_y; // H - second to inner int id_z = hipBlockIdx_z * hipBlockDim_z + hipThreadIdx_z; // D - outer most dim - if ((id_z >= roiGenericSrc->xyzwhdROI.roiDepth) || (id_y >= roiGenericSrc->xyzwhdROI.roiHeight) || (id_x >= roiGenericSrc->xyzwhdROI.roiWidth)) + if ((id_z >= validShapeDHW.x) || (id_y >= validShapeDHW.y) || (id_x >= validShapeDHW.z)) { return; } - uint srcIdx = ((id_z + roiGenericSrc->xyzwhdROI.xyz.z) * srcStridesDH.x) + ((id_y + roiGenericSrc->xyzwhdROI.xyz.y) * srcStridesDH.y) + (id_x + roiGenericSrc->xyzwhdROI.xyz.x) * 3; - uint dstIdx = (id_z * dstStridesDH.x) + (id_y * dstStridesDH.y) + id_x * 3; + uint srcIdx = (id_z * srcStridesDH.x) + (id_y * srcStridesDH.y) + (id_x * 3); + uint dstIdx = (id_z * dstStridesDH.x) + (id_y * dstStridesDH.y) + (id_x * 3); d_float24 val_f24; rpp_hip_load24_pkd3_and_unpack_to_float24_pln3(srcPtr + srcIdx, &val_f24); rpp_hip_pack_float24_pln3_and_store24_pkd3(dstPtr + dstIdx, &val_f24); } +template +RppStatus hip_exec_fill_value_tensor(T *dstPtr, + RpptGenericDescPtr dstGenericDescPtr, + Rpp32s *anchorTensor, + Rpp32s *shapeTensor, + T *fillValue, + Rpp32u *roiTensor, + rpp::Handle& handle, + Rpp32u numDims) +{ + if (numDims == 4) + { + // set the dimsOrder and globalthreads values required for NDHWC layout + Rpp32s dimsOrder[3] = {0, 1, 2}; + int globalThreads_x = (dstGenericDescPtr->strides[2] / 3 + 7) >> 3; // W - width (x direction) - vectorized for 8 element loads/stores per channel + int globalThreads_y = dstGenericDescPtr->dims[2]; // H - height (y direction) + int globalThreads_z = dstGenericDescPtr->dims[1]; // D - depth (z direction) + + // change the dimsOrder and globalthreads values if layout is NCDHW + if (dstGenericDescPtr->layout == RpptLayout::NCDHW) + { + dimsOrder[0] = 1; // depth + dimsOrder[1] = 2; // height + dimsOrder[2] = 3; // width + globalThreads_x = (dstGenericDescPtr->strides[3] + 7) >> 3; // W - width (x direction) - vectorized for 8 element loads/stores per channel + globalThreads_y = dstGenericDescPtr->dims[3]; // H - height (y direction) + globalThreads_z = dstGenericDescPtr->dims[2]; // D - depth (z direction) + } + for(int batchCount = 0; batchCount < dstGenericDescPtr->dims[0]; batchCount++) + { + Rpp32s *anchor = &anchorTensor[batchCount * numDims]; + Rpp32s *shape = &shapeTensor[batchCount * numDims]; + Rpp32u *roi = roiTensor + batchCount * numDims * 2; + Rpp32s *length = reinterpret_cast(&roi[numDims]); + Rpp32u maxDepth = std::min(shape[dimsOrder[0]], length[dimsOrder[0]] - anchor[dimsOrder[0]]); + Rpp32u maxHeight = std::min(shape[dimsOrder[1]], length[dimsOrder[1]] - anchor[dimsOrder[1]]); + Rpp32u maxWidth = std::min(shape[dimsOrder[2]], length[dimsOrder[2]] - anchor[dimsOrder[2]]); + + // checking if padding is required + bool needPadding = (((anchor[dimsOrder[0]] + shape[dimsOrder[0]]) > length[dimsOrder[0]]) || + ((anchor[dimsOrder[1]] + shape[dimsOrder[1]]) > length[dimsOrder[1]]) || + ((anchor[dimsOrder[2]] + shape[dimsOrder[2]]) > length[dimsOrder[2]])); + + // if needPadding is set, launch kernel for filling the padded region with fill value specified + if (needPadding && dstGenericDescPtr->layout == RpptLayout::NCDHW) + { + hipLaunchKernelGGL(fill_value_ncdhw_hip_tensor, + dim3(ceil((float)globalThreads_x/LOCAL_THREADS_X), ceil((float)globalThreads_y/LOCAL_THREADS_Y), ceil((float)globalThreads_z/LOCAL_THREADS_Z)), + dim3(LOCAL_THREADS_X, LOCAL_THREADS_Y, LOCAL_THREADS_Z), + 0, + handle.GetStream(), + dstPtr + (batchCount * dstGenericDescPtr->strides[0]), + make_uint3(dstGenericDescPtr->strides[1], dstGenericDescPtr->strides[2], dstGenericDescPtr->strides[3]), + dstGenericDescPtr->dims[1], + make_uint3(maxDepth, maxHeight, maxWidth), + fillValue); + } + else if (needPadding && dstGenericDescPtr->layout == RpptLayout::NDHWC) + { + hipLaunchKernelGGL(fill_value_ndhwc_hip_tensor, + dim3(ceil((float)globalThreads_x/LOCAL_THREADS_X), ceil((float)globalThreads_y/LOCAL_THREADS_Y), ceil((float)globalThreads_z/LOCAL_THREADS_Z)), + dim3(LOCAL_THREADS_X, LOCAL_THREADS_Y, LOCAL_THREADS_Z), + 0, + handle.GetStream(), + dstPtr + (batchCount * dstGenericDescPtr->strides[0]), + make_uint2(dstGenericDescPtr->strides[1], dstGenericDescPtr->strides[2]), + make_uint3(maxDepth, maxHeight, maxWidth), + fillValue); + } + } + } + else if (numDims == 3) + { + // set the dimsOrder and globalthreads values required for NHWC layout + Rpp32s dimsOrder[2] = {0, 1}; + int globalThreads_x = (dstGenericDescPtr->strides[1] / 3 + 7) >> 3; // W - width (x direction) - vectorized for 8 element loads/stores per channel + int globalThreads_y = dstGenericDescPtr->dims[1]; // H - height (y direction) + int globalThreads_z = 1; + + // change the dimsOrder and globalthreads values if layout is NCHW + if (dstGenericDescPtr->layout == RpptLayout::NCHW) + { + dimsOrder[0] = 1; // height + dimsOrder[1] = 2; // width + globalThreads_x = (dstGenericDescPtr->strides[2] + 7) >> 3; // W - width (x direction) - vectorized for 8 element loads/stores per channel + globalThreads_y = dstGenericDescPtr->dims[2]; // H - height (y direction) + globalThreads_z = 1; + } + + for(int batchCount = 0; batchCount < dstGenericDescPtr->dims[0]; batchCount++) + { + Rpp32s *anchor = &anchorTensor[batchCount * numDims]; + Rpp32s *shape = &shapeTensor[batchCount * numDims]; + Rpp32u *roi = roiTensor + batchCount * numDims * 2; + Rpp32s *length = reinterpret_cast(&roi[numDims]); + Rpp32u maxHeight = std::min(shape[dimsOrder[0]], length[dimsOrder[0]] - anchor[dimsOrder[0]]); + Rpp32u maxWidth = std::min(shape[dimsOrder[1]], length[dimsOrder[1]] - anchor[dimsOrder[1]]); + + // check if padding is needed + bool needPadding = (((anchor[dimsOrder[0]] + shape[dimsOrder[0]]) > length[dimsOrder[0]]) || + ((anchor[dimsOrder[1]] + shape[dimsOrder[1]]) > length[dimsOrder[1]])); + + // launch kernel for filling the padded region with fill value specified + if (needPadding && dstGenericDescPtr->layout == RpptLayout::NCHW) + { + hipLaunchKernelGGL(fill_value_ncdhw_hip_tensor, + dim3(ceil((float)globalThreads_x/LOCAL_THREADS_X), ceil((float)globalThreads_y/LOCAL_THREADS_Y), globalThreads_z), + dim3(LOCAL_THREADS_X, LOCAL_THREADS_Y, 1), + 0, + handle.GetStream(), + dstPtr + (batchCount * dstGenericDescPtr->strides[0]), + make_uint3(dstGenericDescPtr->strides[1], 0, dstGenericDescPtr->strides[2]), + dstGenericDescPtr->dims[1], + make_uint3(1, shape[1], shape[2]), + fillValue); + } + else if (needPadding && dstGenericDescPtr->layout == RpptLayout::NHWC) + { + hipLaunchKernelGGL(fill_value_ndhwc_hip_tensor, + dim3(ceil((float)globalThreads_x/LOCAL_THREADS_X), ceil((float)globalThreads_y/LOCAL_THREADS_Y), globalThreads_z), + dim3(LOCAL_THREADS_X, LOCAL_THREADS_Y, 1), + 0, + handle.GetStream(), + dstPtr + (batchCount * dstGenericDescPtr->strides[0]), + make_uint2(1, dstGenericDescPtr->strides[1]), + make_uint3(1, maxHeight, maxWidth), + fillValue); + } + } + } + else if (numDims == 2) + { + // NHW + int globalThreads_x = (dstGenericDescPtr->strides[1] + 7) >> 3; // W - width (x direction) - vectorized for 8 element loads/stores per channel + int globalThreads_y = dstGenericDescPtr->dims[1]; // H - height (y direction) + int globalThreads_z = 1; + + for(int batchCount = 0; batchCount < dstGenericDescPtr->dims[0]; batchCount++) + { + Rpp32s *anchor = &anchorTensor[batchCount * numDims]; + Rpp32s *shape = &shapeTensor[batchCount * numDims]; + Rpp32u *roi = roiTensor + batchCount * numDims * 2; + Rpp32s *length = reinterpret_cast(&roi[numDims]); + Rpp32u maxHeight = std::min(shape[0], length[0] - anchor[0]); + Rpp32u maxWidth = std::min(shape[1], length[1] - anchor[1]); + + // check if padding is needed + bool needPadding = (((anchor[0] + shape[0]) > length[0]) || + ((anchor[1] + shape[1]) > length[1])); + + // launch kernel for filling the padded region with fill value specified + if (needPadding) + { + hipLaunchKernelGGL(fill_value_ncdhw_hip_tensor, + dim3(ceil((float)globalThreads_x/LOCAL_THREADS_X), ceil((float)globalThreads_y/LOCAL_THREADS_Y), ceil((float)globalThreads_z/LOCAL_THREADS_Z)), + dim3(LOCAL_THREADS_X, LOCAL_THREADS_Y, 1), + 0, + handle.GetStream(), + dstPtr + (batchCount * dstGenericDescPtr->strides[0]), + make_uint3(0, 0, dstGenericDescPtr->strides[1]), + 1, + make_uint3(1, shape[0], shape[1]), + fillValue); + } + } + } + else if (numDims == 1) + { + int globalThreads_x = (dstGenericDescPtr->strides[0] + 7) >> 3; // W - width (x direction) - vectorized for 8 element loads/stores per channel + int globalThreads_y = 1; + int globalThreads_z = 1; + + for(int batchCount = 0; batchCount < dstGenericDescPtr->dims[0]; batchCount++) + { + Rpp32s *anchor = &anchorTensor[batchCount * numDims]; + Rpp32s *shape = &shapeTensor[batchCount * numDims]; + Rpp32u *roi = roiTensor + batchCount * numDims * 2; + Rpp32s *length = reinterpret_cast(&roi[numDims]); + Rpp32u maxLength = std::min(shape[0], length[0] - anchor[0]); + + // check if padding is needed + bool needPadding = ((anchor[0] + shape[0]) > length[0]); + + // launch kernel for filling the padded region with fill value specified + if (needPadding) + { + hipLaunchKernelGGL(fill_value_ncdhw_hip_tensor, + dim3(ceil((float)globalThreads_x/LOCAL_THREADS_X), ceil((float)globalThreads_y/LOCAL_THREADS_Y), ceil((float)globalThreads_z/LOCAL_THREADS_Z)), + dim3(LOCAL_THREADS_X, 1, 1), + 0, + handle.GetStream(), + dstPtr + (batchCount * dstGenericDescPtr->strides[0]), + make_uint3(0, 0, 1), + 1, + make_uint3(1, 1, shape[0]), + fillValue); + } + } + } + + return RPP_SUCCESS; +} + template RppStatus hip_exec_slice_tensor(T *srcPtr, RpptGenericDescPtr srcGenericDescPtr, T *dstPtr, RpptGenericDescPtr dstGenericDescPtr, - RpptROI3DPtr roiGenericPtrSrc, + Rpp32s *anchorTensor, + Rpp32s *shapeTensor, + T *fillValue, + bool enablePadding, + Rpp32u *roiTensor, rpp::Handle& handle) { - if (dstGenericDescPtr->layout == RpptLayout::NCDHW) + Rpp32u numDims = srcGenericDescPtr->numDims - 1; // exclude batchsize from input dims + + /* if enabledPadding is set to true, launch kernel to fill the output buffers with fill value specified. + This will be only done if shapeTensor[d] > roiTensor[d] where d is the dimension*/ + if (enablePadding) + { + hip_exec_fill_value_tensor(dstPtr, + dstGenericDescPtr, + anchorTensor, + shapeTensor, + fillValue, + roiTensor, + handle, + numDims); + hipStreamSynchronize(handle.GetStream()); + } + + if(numDims == 4) { - int globalThreads_x = (dstGenericDescPtr->strides[3] + 7) >> 3; // W - width (x direction) - vectorized for 8 element loads/stores per channel - int globalThreads_y = dstGenericDescPtr->dims[3]; // H - height (y direction) - int globalThreads_z = dstGenericDescPtr->dims[2]; // D - depth (z direction) + // set the dimsOrder and globalthreads values required for NDHWC layout + Rpp32s dimsOrder[3] = {0, 1, 2}; + int globalThreads_x = (dstGenericDescPtr->strides[2] / 3 + 7) >> 3; // W - width (x direction) - vectorized for 8 element loads/stores per channel + int globalThreads_y = dstGenericDescPtr->dims[2]; // H - height (y direction) + int globalThreads_z = dstGenericDescPtr->dims[1]; // D - depth (z direction) + + // change the dimsOrder and globalthreads values if layout is NCDHW + if (dstGenericDescPtr->layout == RpptLayout::NCDHW) + { + dimsOrder[0] = 1; // depth + dimsOrder[1] = 2; // height + dimsOrder[2] = 3; // width + globalThreads_x = (dstGenericDescPtr->strides[3] + 7) >> 3; // W - width (x direction) - vectorized for 8 element loads/stores per channel + globalThreads_y = dstGenericDescPtr->dims[3]; // H - height (y direction) + globalThreads_z = dstGenericDescPtr->dims[2]; // D - depth (z direction) + } for(int batchCount = 0; batchCount < dstGenericDescPtr->dims[0]; batchCount++) { + Rpp32s *anchor = &anchorTensor[batchCount * numDims]; + Rpp32s *shape = &shapeTensor[batchCount * numDims]; + Rpp32u *roi = roiTensor + batchCount * numDims * 2; + Rpp32s *length = reinterpret_cast(&roi[numDims]); + Rpp32u maxDepth = std::min(shape[dimsOrder[0]], length[dimsOrder[0]] - anchor[dimsOrder[0]]); + Rpp32u maxHeight = std::min(shape[dimsOrder[1]], length[dimsOrder[1]] - anchor[dimsOrder[1]]); + Rpp32u maxWidth = std::min(shape[dimsOrder[2]], length[dimsOrder[2]] - anchor[dimsOrder[2]]); + if (dstGenericDescPtr->layout == RpptLayout::NCDHW) + { + T *srcPtrTemp = srcPtr + (batchCount * srcGenericDescPtr->strides[0]) + anchor[1] * srcGenericDescPtr->strides[2] + anchor[2] * srcGenericDescPtr->strides[3] + anchor[3]; + T *dstPtrTemp = dstPtr + (batchCount * dstGenericDescPtr->strides[0]); + hipLaunchKernelGGL(slice_ncdhw_hip_tensor, + dim3(ceil((float)globalThreads_x/LOCAL_THREADS_X), ceil((float)globalThreads_y/LOCAL_THREADS_Y), ceil((float)globalThreads_z/LOCAL_THREADS_Z)), + dim3(LOCAL_THREADS_X, LOCAL_THREADS_Y, LOCAL_THREADS_Z), + 0, + handle.GetStream(), + srcPtrTemp, + make_uint3(srcGenericDescPtr->strides[1], srcGenericDescPtr->strides[2], srcGenericDescPtr->strides[3]), + dstPtrTemp, + make_uint3(dstGenericDescPtr->strides[1], dstGenericDescPtr->strides[2], dstGenericDescPtr->strides[3]), + dstGenericDescPtr->dims[1], + make_uint3(maxDepth, maxHeight, maxWidth)); + } + else if (dstGenericDescPtr->layout == RpptLayout::NDHWC) + { + T *srcPtrTemp = srcPtr + (batchCount * srcGenericDescPtr->strides[0]) + anchor[0] * srcGenericDescPtr->strides[1] + anchor[1] * srcGenericDescPtr->strides[2] + anchor[2]; + T *dstPtrTemp = dstPtr + (batchCount * dstGenericDescPtr->strides[0]); + hipLaunchKernelGGL(slice_ndhwc_hip_tensor, + dim3(ceil((float)globalThreads_x/LOCAL_THREADS_X), ceil((float)globalThreads_y/LOCAL_THREADS_Y), ceil((float)globalThreads_z/LOCAL_THREADS_Z)), + dim3(LOCAL_THREADS_X, LOCAL_THREADS_Y, LOCAL_THREADS_Z), + 0, + handle.GetStream(), + srcPtrTemp, + make_uint2(srcGenericDescPtr->strides[1], srcGenericDescPtr->strides[2]), + dstPtrTemp, + make_uint2(dstGenericDescPtr->strides[1], dstGenericDescPtr->strides[2]), + make_uint3(maxDepth, maxHeight, maxWidth)); + } + } + } + else if (numDims == 3) + { + // set the dimsOrder and globalthreads values required for NHWC layout + Rpp32s dimsOrder[2] = {0, 1}; + int globalThreads_x = (dstGenericDescPtr->strides[1] / 3 + 7) >> 3; // W - width (x direction) - vectorized for 8 element loads/stores per channel + int globalThreads_y = dstGenericDescPtr->dims[1]; // H - height (y direction) + int globalThreads_z = 1; + + // change the dimsOrder and globalthreads values if layout is NCHW + if (dstGenericDescPtr->layout == RpptLayout::NCHW) + { + dimsOrder[0] = 1; // height + dimsOrder[1] = 2; // width + globalThreads_x = (dstGenericDescPtr->strides[2] + 7) >> 3; // W - width (x direction) - vectorized for 8 element loads/stores per channel + globalThreads_y = dstGenericDescPtr->dims[2]; // H - height (y direction) + globalThreads_z = 1; + } + + for(int batchCount = 0; batchCount < dstGenericDescPtr->dims[0]; batchCount++) + { + Rpp32s *anchor = &anchorTensor[batchCount * numDims]; + Rpp32s *shape = &shapeTensor[batchCount * numDims]; + Rpp32u *roi = roiTensor + batchCount * numDims * 2; + Rpp32s *length = reinterpret_cast(&roi[numDims]); + Rpp32u maxHeight = std::min(shape[dimsOrder[0]], length[dimsOrder[0]] - anchor[dimsOrder[0]]); + Rpp32u maxWidth = std::min(shape[dimsOrder[1]], length[dimsOrder[1]] - anchor[dimsOrder[1]]); + if (dstGenericDescPtr->layout == RpptLayout::NCHW) + { + T *srcPtrTemp = srcPtr + (batchCount * srcGenericDescPtr->strides[0]) + anchor[1] * srcGenericDescPtr->strides[2] + anchor[2]; + T *dstPtrTemp = dstPtr + (batchCount * dstGenericDescPtr->strides[0]); + hipLaunchKernelGGL(slice_ncdhw_hip_tensor, + dim3(ceil((float)globalThreads_x/LOCAL_THREADS_X), ceil((float)globalThreads_y/LOCAL_THREADS_Y), ceil((float)globalThreads_z/LOCAL_THREADS_Z)), + dim3(LOCAL_THREADS_X, LOCAL_THREADS_Y, 1), + 0, + handle.GetStream(), + srcPtrTemp, + make_uint3(srcGenericDescPtr->strides[1], 0, srcGenericDescPtr->strides[2]), + dstPtrTemp, + make_uint3(dstGenericDescPtr->strides[1], 0, dstGenericDescPtr->strides[2]), + dstGenericDescPtr->dims[1], + make_uint3(1, maxHeight, maxWidth)); + } + else if (dstGenericDescPtr->layout == RpptLayout::NHWC) + { + T *srcPtrTemp = srcPtr + (batchCount * srcGenericDescPtr->strides[0]) + anchor[0] * srcGenericDescPtr->strides[1] + anchor[1]; + T *dstPtrTemp = dstPtr + (batchCount * dstGenericDescPtr->strides[0]); + hipLaunchKernelGGL(slice_ndhwc_hip_tensor, + dim3(ceil((float)globalThreads_x/LOCAL_THREADS_X), ceil((float)globalThreads_y/LOCAL_THREADS_Y), globalThreads_z), + dim3(LOCAL_THREADS_X, LOCAL_THREADS_Y, 1), + 0, + handle.GetStream(), + srcPtrTemp, + make_uint2(1, srcGenericDescPtr->strides[1]), + dstPtrTemp, + make_uint2(1, dstGenericDescPtr->strides[1]), + make_uint3(1, maxHeight, maxWidth)); + } + } + } + else if (numDims == 2) + { + // NHW + int globalThreads_x = (dstGenericDescPtr->strides[1] + 7) >> 3; // W - width (x direction) - vectorized for 8 element loads/stores per channel + int globalThreads_y = dstGenericDescPtr->dims[1]; // H - height (y direction) + int globalThreads_z = 1; + for(int batchCount = 0; batchCount < dstGenericDescPtr->dims[0]; batchCount++) + { + Rpp32s *anchor = &anchorTensor[batchCount * numDims]; + Rpp32s *shape = &shapeTensor[batchCount * numDims]; + Rpp32u *roi = roiTensor + batchCount * numDims * 2; + Rpp32s *length = reinterpret_cast(&roi[numDims]); + Rpp32u maxHeight = std::min(shape[0], length[0] - anchor[0]); + Rpp32u maxWidth = std::min(shape[1], length[1] - anchor[1]); + T *srcPtrTemp = srcPtr + (batchCount * srcGenericDescPtr->strides[0]) + anchor[0] * srcGenericDescPtr->strides[2] + anchor[1]; + T *dstPtrTemp = dstPtr + (batchCount * dstGenericDescPtr->strides[0]); + hipLaunchKernelGGL(slice_ncdhw_hip_tensor, dim3(ceil((float)globalThreads_x/LOCAL_THREADS_X), ceil((float)globalThreads_y/LOCAL_THREADS_Y), ceil((float)globalThreads_z/LOCAL_THREADS_Z)), - dim3(LOCAL_THREADS_X, LOCAL_THREADS_Y, LOCAL_THREADS_Z), + dim3(LOCAL_THREADS_X, LOCAL_THREADS_Y, 1), 0, handle.GetStream(), - srcPtr + (batchCount * srcGenericDescPtr->strides[0]), - make_uint3(srcGenericDescPtr->strides[1], srcGenericDescPtr->strides[2], srcGenericDescPtr->strides[3]), - dstPtr + (batchCount * dstGenericDescPtr->strides[0]), - make_uint3(dstGenericDescPtr->strides[1], dstGenericDescPtr->strides[2], dstGenericDescPtr->strides[3]), - dstGenericDescPtr->dims[1], - &roiGenericPtrSrc[batchCount]); + srcPtrTemp, + make_uint3(0, 0, srcGenericDescPtr->strides[1]), + dstPtrTemp, + make_uint3(0, 0, dstGenericDescPtr->strides[1]), + 1, + make_uint3(1, maxHeight, maxWidth)); } } - else if (dstGenericDescPtr->layout == RpptLayout::NDHWC) + else if (numDims == 1) { - int globalThreads_x = (dstGenericDescPtr->strides[2] / 3 + 7) >> 3; // W - width (x direction) - vectorized for 8 element loads/stores per channel - int globalThreads_y = dstGenericDescPtr->dims[2]; // H - height (y direction) - int globalThreads_z = dstGenericDescPtr->dims[1]; // D - depth (z direction) - + int globalThreads_x = (dstGenericDescPtr->strides[0] + 7) >> 3; // W - width (x direction) - vectorized for 8 element loads/stores per channel + int globalThreads_y = 1; + int globalThreads_z = 1; for(int batchCount = 0; batchCount < dstGenericDescPtr->dims[0]; batchCount++) { - hipLaunchKernelGGL(slice_ndhwc_hip_tensor, + Rpp32s *anchor = &anchorTensor[batchCount * numDims]; + Rpp32s *shape = &shapeTensor[batchCount * numDims]; + Rpp32u *roi = roiTensor + batchCount * numDims * 2; + Rpp32s *length = reinterpret_cast(&roi[numDims]); + Rpp32u maxLength = std::min(shape[0], length[0] - anchor[0]); + T *srcPtrTemp = srcPtr + (batchCount * srcGenericDescPtr->strides[0]) + anchor[0]; + T *dstPtrTemp = dstPtr + (batchCount * dstGenericDescPtr->strides[0]); + + hipLaunchKernelGGL(slice_ncdhw_hip_tensor, dim3(ceil((float)globalThreads_x/LOCAL_THREADS_X), ceil((float)globalThreads_y/LOCAL_THREADS_Y), ceil((float)globalThreads_z/LOCAL_THREADS_Z)), - dim3(LOCAL_THREADS_X, LOCAL_THREADS_Y, LOCAL_THREADS_Z), + dim3(LOCAL_THREADS_X, 1, 1), 0, handle.GetStream(), - srcPtr + (batchCount * srcGenericDescPtr->strides[0]), - make_uint2(srcGenericDescPtr->strides[1], srcGenericDescPtr->strides[2]), - dstPtr + (batchCount * dstGenericDescPtr->strides[0]), - make_uint2(dstGenericDescPtr->strides[1], dstGenericDescPtr->strides[2]), - &roiGenericPtrSrc[batchCount]); + srcPtrTemp, + make_uint3(0, 0, 1), + dstPtrTemp, + make_uint3(0, 0, 1), + 1, + make_uint3(1, 1, maxLength)); } } diff --git a/src/modules/rppt_tensor_audio_augmentations.cpp b/src/modules/rppt_tensor_audio_augmentations.cpp index b629d1590..e20211ec1 100644 --- a/src/modules/rppt_tensor_audio_augmentations.cpp +++ b/src/modules/rppt_tensor_audio_augmentations.cpp @@ -32,8 +32,8 @@ SOFTWARE. RppStatus rppt_non_silent_region_detection_host(RppPtr_t srcPtr, RpptDescPtr srcDescPtr, Rpp32s *srcLengthTensor, - Rpp32f *detectedIndexTensor, - Rpp32f *detectionLengthTensor, + Rpp32s *detectedIndexTensor, + Rpp32s *detectionLengthTensor, Rpp32f cutOffDB, Rpp32s windowLength, Rpp32f referencePower, diff --git a/src/modules/rppt_tensor_geometric_augmentations.cpp b/src/modules/rppt_tensor_geometric_augmentations.cpp index 45a0d5221..d758aa676 100644 --- a/src/modules/rppt_tensor_geometric_augmentations.cpp +++ b/src/modules/rppt_tensor_geometric_augmentations.cpp @@ -1050,43 +1050,54 @@ RppStatus rppt_slice_host(RppPtr_t srcPtr, RpptGenericDescPtr srcGenericDescPtr, RppPtr_t dstPtr, RpptGenericDescPtr dstGenericDescPtr, - RpptROI3DPtr roiGenericPtrSrc, - RpptRoi3DType roiType, + Rpp32s *anchorTensor, + Rpp32s *shapeTensor, + RppPtr_t fillValue, + bool enablePadding, + Rpp32u *roiTensor, rppHandle_t rppHandle) { + if ((srcGenericDescPtr->dataType != RpptDataType::F32) && (srcGenericDescPtr->dataType != RpptDataType::U8)) return RPP_ERROR_INVALID_SRC_DATATYPE; + if ((dstGenericDescPtr->dataType != RpptDataType::F32) && (dstGenericDescPtr->dataType != RpptDataType::U8)) return RPP_ERROR_INVALID_DST_DATATYPE; + if (srcGenericDescPtr->layout != dstGenericDescPtr->layout) return RPP_ERROR_LAYOUT_MISMATCH; + RppLayoutParams layoutParams; if ((srcGenericDescPtr->layout == RpptLayout::NCDHW) && (dstGenericDescPtr->layout == RpptLayout::NCDHW)) layoutParams = get_layout_params(srcGenericDescPtr->layout, srcGenericDescPtr->dims[1]); else if ((srcGenericDescPtr->layout == RpptLayout::NDHWC) && (dstGenericDescPtr->layout == RpptLayout::NDHWC)) layoutParams = get_layout_params(srcGenericDescPtr->layout, srcGenericDescPtr->dims[4]); - - if ((srcGenericDescPtr->dataType != RpptDataType::F32) && (srcGenericDescPtr->dataType != RpptDataType::U8)) return RPP_ERROR_INVALID_SRC_DATATYPE; - if ((dstGenericDescPtr->dataType != RpptDataType::F32) && (dstGenericDescPtr->dataType != RpptDataType::U8)) return RPP_ERROR_INVALID_DST_DATATYPE; - if ((srcGenericDescPtr->layout != RpptLayout::NCDHW) && (srcGenericDescPtr->layout != RpptLayout::NDHWC)) return RPP_ERROR_INVALID_SRC_LAYOUT; - if ((dstGenericDescPtr->layout != RpptLayout::NCDHW) && (dstGenericDescPtr->layout != RpptLayout::NDHWC)) return RPP_ERROR_INVALID_DST_LAYOUT; - if (srcGenericDescPtr->layout != dstGenericDescPtr->layout) return RPP_ERROR_INVALID_ARGUMENTS; + else if ((srcGenericDescPtr->layout == RpptLayout::NCHW) && (dstGenericDescPtr->layout == RpptLayout::NCHW)) + layoutParams = get_layout_params(srcGenericDescPtr->layout, srcGenericDescPtr->dims[1]); + else if ((srcGenericDescPtr->layout == RpptLayout::NHWC) && (dstGenericDescPtr->layout == RpptLayout::NHWC)) + layoutParams = get_layout_params(srcGenericDescPtr->layout, srcGenericDescPtr->dims[3]); if ((srcGenericDescPtr->dataType == RpptDataType::F32) && (dstGenericDescPtr->dataType == RpptDataType::F32)) { - slice_f32_f32_host_tensor((Rpp32f*) (static_cast(srcPtr) + srcGenericDescPtr->offsetInBytes), - srcGenericDescPtr, - (Rpp32f*) (static_cast(dstPtr) + dstGenericDescPtr->offsetInBytes), - dstGenericDescPtr, - roiGenericPtrSrc, - roiType, - layoutParams, - rpp::deref(rppHandle)); + slice_host_tensor(reinterpret_cast(static_cast(srcPtr) + srcGenericDescPtr->offsetInBytes), + srcGenericDescPtr, + reinterpret_cast(static_cast(dstPtr) + dstGenericDescPtr->offsetInBytes), + dstGenericDescPtr, + anchorTensor, + shapeTensor, + static_cast(fillValue), + enablePadding, + roiTensor, + layoutParams, + rpp::deref(rppHandle)); } else if ((srcGenericDescPtr->dataType == RpptDataType::U8) && (dstGenericDescPtr->dataType == RpptDataType::U8)) { - slice_u8_u8_host_tensor(static_cast(srcPtr) + srcGenericDescPtr->offsetInBytes, - srcGenericDescPtr, - static_cast(dstPtr) + dstGenericDescPtr->offsetInBytes, - dstGenericDescPtr, - roiGenericPtrSrc, - roiType, - layoutParams, - rpp::deref(rppHandle)); + slice_host_tensor(static_cast(srcPtr) + srcGenericDescPtr->offsetInBytes, + srcGenericDescPtr, + static_cast(dstPtr) + dstGenericDescPtr->offsetInBytes, + dstGenericDescPtr, + anchorTensor, + shapeTensor, + static_cast(fillValue), + enablePadding, + roiTensor, + layoutParams, + rpp::deref(rppHandle)); } return RPP_SUCCESS; @@ -1848,24 +1859,29 @@ RppStatus rppt_slice_gpu(RppPtr_t srcPtr, RpptGenericDescPtr srcGenericDescPtr, RppPtr_t dstPtr, RpptGenericDescPtr dstGenericDescPtr, - RpptROI3DPtr roiGenericPtrSrc, - RpptRoi3DType roiType, + Rpp32s *anchorTensor, + Rpp32s *shapeTensor, + RppPtr_t fillValue, + bool enablePadding, + Rpp32u *roiTensor, rppHandle_t rppHandle) { #ifdef HIP_COMPILE - if ((srcGenericDescPtr->layout != RpptLayout::NCDHW) && (srcGenericDescPtr->layout != RpptLayout::NDHWC)) return RPP_ERROR_INVALID_SRC_LAYOUT; - if ((dstGenericDescPtr->layout != RpptLayout::NCDHW) && (dstGenericDescPtr->layout != RpptLayout::NDHWC)) return RPP_ERROR_INVALID_DST_LAYOUT; - if (srcGenericDescPtr->layout != dstGenericDescPtr->layout) return RPP_ERROR_INVALID_ARGUMENTS; if ((srcGenericDescPtr->dataType != RpptDataType::F32) && (srcGenericDescPtr->dataType != RpptDataType::U8)) return RPP_ERROR_INVALID_SRC_DATATYPE; if ((dstGenericDescPtr->dataType != RpptDataType::F32) && (dstGenericDescPtr->dataType != RpptDataType::U8)) return RPP_ERROR_INVALID_DST_DATATYPE; + if (srcGenericDescPtr->layout != dstGenericDescPtr->layout) return RPP_ERROR_LAYOUT_MISMATCH; if ((srcGenericDescPtr->dataType == RpptDataType::F32) && (dstGenericDescPtr->dataType == RpptDataType::F32)) { - hip_exec_slice_tensor((Rpp32f*) (static_cast(srcPtr) + srcGenericDescPtr->offsetInBytes), + hip_exec_slice_tensor(reinterpret_cast(static_cast(srcPtr) + srcGenericDescPtr->offsetInBytes), srcGenericDescPtr, - (Rpp32f*) (static_cast(dstPtr) + dstGenericDescPtr->offsetInBytes), + reinterpret_cast(static_cast(dstPtr) + dstGenericDescPtr->offsetInBytes), dstGenericDescPtr, - roiGenericPtrSrc, + anchorTensor, + shapeTensor, + static_cast(fillValue), + enablePadding, + roiTensor, rpp::deref(rppHandle)); } else if ((srcGenericDescPtr->dataType == RpptDataType::U8) && (dstGenericDescPtr->dataType == RpptDataType::U8)) @@ -1874,7 +1890,11 @@ RppStatus rppt_slice_gpu(RppPtr_t srcPtr, srcGenericDescPtr, static_cast(dstPtr) + dstGenericDescPtr->offsetInBytes, dstGenericDescPtr, - roiGenericPtrSrc, + anchorTensor, + shapeTensor, + static_cast(fillValue), + enablePadding, + roiTensor, rpp::deref(rppHandle)); } diff --git a/utilities/test_suite/HIP/Tensor_hip.cpp b/utilities/test_suite/HIP/Tensor_hip.cpp index f6c9276ef..e7b880433 100644 --- a/utilities/test_suite/HIP/Tensor_hip.cpp +++ b/utilities/test_suite/HIP/Tensor_hip.cpp @@ -338,6 +338,14 @@ int main(int argc, char **argv) CHECK_RETURN_STATUS(hipHostMalloc(&reductionFuncResultArr, reductionFuncResultArrLength * bitDepthByteSize)); } + // create generic descriptor and params in case of slice + RpptGenericDesc descriptor3D; + RpptGenericDescPtr descriptorPtr3D = &descriptor3D; + Rpp32s *anchorTensor = NULL, *shapeTensor = NULL; + Rpp32u *roiTensor = NULL; + if(testCase == 90) + set_generic_descriptor_slice(srcDescPtr, descriptorPtr3D, batchSize); + // Allocate hip memory for src/dst CHECK_RETURN_STATUS(hipMalloc(&d_input, inputBufferSize)); CHECK_RETURN_STATUS(hipMalloc(&d_output, outputBufferSize)); @@ -348,6 +356,7 @@ int main(int argc, char **argv) if(testCase == 82) CHECK_RETURN_STATUS(hipHostMalloc(&roiPtrInputCropRegion, 4 * sizeof(RpptROI))); + // create cropRoi and patchRoi in case of crop_and_patch RpptROI *cropRoi, *patchRoi; if(testCase == 33) { @@ -1137,6 +1146,28 @@ int main(int argc, char **argv) break; } + case 90: + { + testCaseName = "slice"; + Rpp32u numDims = descriptorPtr3D->numDims - 1; // exclude batchSize from input dims + if(anchorTensor == NULL) + CHECK_RETURN_STATUS(hipHostMalloc(&anchorTensor, batchSize * numDims * sizeof(Rpp32s))); + if(shapeTensor == NULL) + CHECK_RETURN_STATUS(hipHostMalloc(&shapeTensor, batchSize * numDims * sizeof(Rpp32s))); + if(roiTensor == NULL) + CHECK_RETURN_STATUS(hipHostMalloc(&roiTensor, batchSize * numDims * 2 * sizeof(Rpp32u))); + bool enablePadding = false; + auto fillValue = 0; + init_slice(descriptorPtr3D, roiTensorPtrSrc, roiTensor, anchorTensor, shapeTensor); + + startWallTime = omp_get_wtime(); + if((inputBitDepth == 0 || inputBitDepth == 2) && srcDescPtr->layout == dstDescPtr->layout) + rppt_slice_gpu(d_input, descriptorPtr3D, d_output, descriptorPtr3D, anchorTensor, shapeTensor, &fillValue, enablePadding, roiTensor, handle); + else + missingFuncFlag = 1; + + break; + } default: missingFuncFlag = 1; break; @@ -1232,6 +1263,42 @@ int main(int argc, char **argv) refFile.close(); } + // if test case is slice and qaFlag is set, update the dstImgSizes with shapeTensor values + // for output display and comparision purposes + if (testCase == 90) + { + if (dstDescPtr->layout == RpptLayout::NCHW) + { + if (dstDescPtr->c == 3) + { + for(int i = 0; i < batchSize; i++) + { + int idx1 = i * 3; + dstImgSizes[i].height = shapeTensor[idx1 + 1]; + dstImgSizes[i].width = shapeTensor[idx1 + 2]; + } + } + else + { + for(int i = 0; i < batchSize; i++) + { + int idx1 = i * 2; + dstImgSizes[i].height = shapeTensor[idx1]; + dstImgSizes[i].width = shapeTensor[idx1 + 1]; + } + } + } + else if (dstDescPtr->layout == RpptLayout::NHWC) + { + for(int i = 0; i < batchSize; i++) + { + int idx1 = i * 3; + dstImgSizes[i].height = shapeTensor[idx1]; + dstImgSizes[i].width = shapeTensor[idx1 + 1]; + } + } + } + /*Compare the output of the function with golden outputs only if 1.QA Flag is set 2.input bit depth 0 (Input U8 && Output U8) @@ -1294,6 +1361,12 @@ int main(int argc, char **argv) } if (reductionTypeCase) CHECK_RETURN_STATUS(hipHostFree(reductionFuncResultArr)); + if(anchorTensor != NULL) + CHECK_RETURN_STATUS(hipHostFree(anchorTensor)); + if(shapeTensor != NULL) + CHECK_RETURN_STATUS(hipHostFree(shapeTensor)); + if(roiTensor != NULL) + CHECK_RETURN_STATUS(hipHostFree(roiTensor)); free(input); free(input_second); free(output); diff --git a/utilities/test_suite/HIP/Tensor_voxel_hip.cpp b/utilities/test_suite/HIP/Tensor_voxel_hip.cpp index b39f461cc..44f2dea72 100644 --- a/utilities/test_suite/HIP/Tensor_voxel_hip.cpp +++ b/utilities/test_suite/HIP/Tensor_voxel_hip.cpp @@ -146,6 +146,10 @@ int main(int argc, char * argv[]) void *pinnedMemArgs; CHECK_RETURN_STATUS(hipHostMalloc(&pinnedMemArgs, 2 * noOfFiles * sizeof(Rpp32f))); + // arguments required for slice + Rpp32s *anchorTensor = NULL, *shapeTensor = NULL; + Rpp32u *roiTensor = NULL; + rppHandle_t handle; hipStream_t stream; CHECK_RETURN_STATUS(hipStreamCreate(&stream)); @@ -254,12 +258,21 @@ int main(int argc, char * argv[]) case 1: { testCaseName = "slice"; + if(anchorTensor == NULL) + CHECK_RETURN_STATUS(hipHostMalloc(&anchorTensor, batchSize * 4 * sizeof(Rpp32s))); + if(shapeTensor == NULL) + CHECK_RETURN_STATUS(hipHostMalloc(&shapeTensor, batchSize * 4 * sizeof(Rpp32s))); + if(roiTensor == NULL) + CHECK_RETURN_STATUS(hipHostMalloc(&roiTensor, batchSize * 8 * sizeof(Rpp32u))); + bool enablePadding = false; + auto fillValue = 0; + init_slice_voxel(descriptorPtr3D, roiGenericSrcPtr, roiTensor, anchorTensor, shapeTensor); startWallTime = omp_get_wtime(); if (inputBitDepth == 0) - rppt_slice_gpu(d_inputU8, descriptorPtr3D, d_outputU8, descriptorPtr3D, roiGenericSrcPtr, roiTypeSrc, handle); + rppt_slice_gpu(d_inputU8, descriptorPtr3D, d_outputU8, descriptorPtr3D, anchorTensor, shapeTensor, &fillValue, enablePadding, roiTensor, handle); else if(inputBitDepth == 2) - rppt_slice_gpu(d_inputF32, descriptorPtr3D, d_outputF32, descriptorPtr3D, roiGenericSrcPtr, roiTypeSrc, handle); + rppt_slice_gpu(d_inputF32, descriptorPtr3D, d_outputF32, descriptorPtr3D, anchorTensor, shapeTensor, &fillValue, enablePadding, roiTensor, handle); else missingFuncFlag = 1; @@ -413,6 +426,39 @@ int main(int argc, char * argv[]) outputF32[i] = static_cast(outputU8[i]); } + // if test case is slice and qaFlag is set, update the ROI with shapeTensor values + // for output display and comparison purposes + if(testCase == 1) + { + // update the roi for comparision with the shapeTensor values + if (descriptorPtr3D->layout == RpptLayout::NCDHW) + { + for(int i = 0; i < batchSize; i++) + { + int idx1 = i * 4; + roiGenericSrcPtr[i].xyzwhdROI.xyz.x = 0; + roiGenericSrcPtr[i].xyzwhdROI.xyz.y = 0; + roiGenericSrcPtr[i].xyzwhdROI.xyz.z = 0; + roiGenericSrcPtr[i].xyzwhdROI.roiDepth = shapeTensor[idx1 + 1]; + roiGenericSrcPtr[i].xyzwhdROI.roiHeight = shapeTensor[idx1 + 2]; + roiGenericSrcPtr[i].xyzwhdROI.roiWidth = shapeTensor[idx1 + 3]; + } + } + else if(descriptorPtr3D->layout == RpptLayout::NDHWC) + { + for(int i = 0; i < batchSize; i++) + { + int idx1 = i * 4; + roiGenericSrcPtr[i].xyzwhdROI.xyz.x = 0; + roiGenericSrcPtr[i].xyzwhdROI.xyz.y = 0; + roiGenericSrcPtr[i].xyzwhdROI.xyz.z = 0; + roiGenericSrcPtr[i].xyzwhdROI.roiDepth = shapeTensor[idx1]; + roiGenericSrcPtr[i].xyzwhdROI.roiHeight = shapeTensor[idx1 + 1]; + roiGenericSrcPtr[i].xyzwhdROI.roiWidth = shapeTensor[idx1 + 2]; + } + } + } + /*Compare the output of the function with golden outputs only if 1.QA Flag is set 2.input bit depth 2 (F32)*/ @@ -502,6 +548,12 @@ int main(int argc, char * argv[]) CHECK_RETURN_STATUS(hipHostFree(pinnedMemArgs)); CHECK_RETURN_STATUS(hipFree(d_inputF32)); CHECK_RETURN_STATUS(hipFree(d_outputF32)); + if(anchorTensor != NULL) + CHECK_RETURN_STATUS(hipHostFree(anchorTensor)); + if(shapeTensor != NULL) + CHECK_RETURN_STATUS(hipHostFree(shapeTensor)); + if(roiTensor != NULL) + CHECK_RETURN_STATUS(hipHostFree(roiTensor)); if(inputBitDepth == 0) { if(inputU8 != NULL) diff --git a/utilities/test_suite/HIP/runTests.py b/utilities/test_suite/HIP/runTests.py index 76fb7d15c..28db84bee 100644 --- a/utilities/test_suite/HIP/runTests.py +++ b/utilities/test_suite/HIP/runTests.py @@ -39,7 +39,7 @@ outFolderPath = os.getcwd() buildFolderPath = os.getcwd() caseMin = 0 -caseMax = 89 +caseMax = 90 # Get a list of log files based on a flag for preserving output def get_log_file_list(preserveOutput): @@ -327,7 +327,7 @@ def rpp_test_suite_parser_and_validator(): subprocess.run(["make", "-j16"], cwd=".") # nosec # List of cases supported -supportedCaseList = ['0', '1', '2', '4', '8', '13', '20', '21', '23', '29', '30', '31', '33', '34', '36', '37', '38', '39', '45', '46', '54', '61', '63', '65', '68', '70', '80', '82', '83', '84', '85', '86', '87', '88', '89'] +supportedCaseList = ['0', '1', '2', '4', '8', '13', '20', '21', '23', '29', '30', '31', '33', '34', '36', '37', '38', '39', '45', '46', '54', '61', '63', '65', '68', '70', '80', '82', '83', '84', '85', '86', '87', '88', '89', '90'] # Create folders based on testType and profilingOption if testType == 1 and profilingOption == "YES": diff --git a/utilities/test_suite/HOST/Tensor_host.cpp b/utilities/test_suite/HOST/Tensor_host.cpp index 19aa5452f..15a94095d 100644 --- a/utilities/test_suite/HOST/Tensor_host.cpp +++ b/utilities/test_suite/HOST/Tensor_host.cpp @@ -339,6 +339,15 @@ int main(int argc, char **argv) } } + // create generic descriptor and params in case of slice + RpptGenericDesc descriptor3D; + RpptGenericDescPtr descriptorPtr3D = &descriptor3D; + Rpp32s *anchorTensor = NULL, *shapeTensor = NULL; + Rpp32u *roiTensor = NULL; + if(testCase == 90) + set_generic_descriptor_slice(srcDescPtr, descriptorPtr3D, batchSize); + + // create cropRoi and patchRoi in case of crop_and_patch RpptROI *cropRoi, *patchRoi; if(testCase == 33) { @@ -1171,6 +1180,30 @@ int main(int argc, char **argv) break; } + case 90: + { + testCaseName = "slice"; + Rpp32u numDims = descriptorPtr3D->numDims - 1; // exclude batchSize from input dims + if(anchorTensor == NULL) + anchorTensor = static_cast(calloc(batchSize * numDims, sizeof(Rpp32s)));; + if(shapeTensor == NULL) + shapeTensor = static_cast(calloc(batchSize * numDims, sizeof(Rpp32s)));; + if(roiTensor == NULL) + roiTensor = static_cast(calloc(batchSize * numDims * 2, sizeof(Rpp32u)));; + bool enablePadding = false; + auto fillValue = 0; + init_slice(descriptorPtr3D, roiTensorPtrSrc, roiTensor, anchorTensor, shapeTensor); + + startWallTime = omp_get_wtime(); + startCpuTime = clock(); + + if((inputBitDepth == 0 || inputBitDepth == 2) && srcDescPtr->layout == dstDescPtr->layout) + rppt_slice_host(input, descriptorPtr3D, output, descriptorPtr3D, anchorTensor, shapeTensor, &fillValue, enablePadding, roiTensor, handle); + else + missingFuncFlag = 1; + + break; + } default: missingFuncFlag = 1; break; @@ -1268,6 +1301,42 @@ int main(int argc, char **argv) refFile.close(); } + // if test case is slice and qaFlag is set, update the dstImgSizes with shapeTensor values + // for output display and comparision purposes + if (testCase == 90) + { + if (dstDescPtr->layout == RpptLayout::NCHW) + { + if (dstDescPtr->c == 3) + { + for(int i = 0; i < batchSize; i++) + { + int idx1 = i * 3; + dstImgSizes[i].height = shapeTensor[idx1 + 1]; + dstImgSizes[i].width = shapeTensor[idx1 + 2]; + } + } + else + { + for(int i = 0; i < batchSize; i++) + { + int idx1 = i * 2; + dstImgSizes[i].height = shapeTensor[idx1]; + dstImgSizes[i].width = shapeTensor[idx1 + 1]; + } + } + } + else if (dstDescPtr->layout == RpptLayout::NHWC) + { + for(int i = 0; i < batchSize; i++) + { + int idx1 = i * 3; + dstImgSizes[i].height = shapeTensor[idx1]; + dstImgSizes[i].width = shapeTensor[idx1 + 1]; + } + } + } + /*Compare the output of the function with golden outputs only if 1.QA Flag is set 2.input bit depth 0 (Input U8 && Output U8) @@ -1324,6 +1393,12 @@ int main(int argc, char **argv) free(roiTensorPtrSrc); free(roiTensorPtrDst); free(dstImgSizes); + if(anchorTensor != NULL) + free(anchorTensor); + if(shapeTensor != NULL) + free(shapeTensor); + if(roiTensor != NULL) + free(roiTensor); free(input); free(inputu8); free(inputu8Second); diff --git a/utilities/test_suite/HOST/Tensor_host_audio.cpp b/utilities/test_suite/HOST/Tensor_host_audio.cpp index 35ce3a752..ac05bcc90 100644 --- a/utilities/test_suite/HOST/Tensor_host_audio.cpp +++ b/utilities/test_suite/HOST/Tensor_host_audio.cpp @@ -109,6 +109,19 @@ int main(int argc, char **argv) maxDstChannels = 1; set_audio_descriptor_dims_and_strides(dstDescPtr, batchSize, maxDstHeight, maxDstWidth, maxDstChannels, offsetInBytes); + // create generic descriptor in case of slice + RpptGenericDesc descriptor3D; + RpptGenericDescPtr descriptorPtr3D = &descriptor3D; + if(testCase == 4) + { + descriptorPtr3D->numDims = 2; + descriptorPtr3D->offsetInBytes = 0; + descriptorPtr3D->dataType = RpptDataType::F32; + descriptorPtr3D->dims[0] = batchSize; + descriptorPtr3D->dims[1] = maxSrcWidth; + descriptorPtr3D->strides[0] = descriptorPtr3D->dims[1]; + } + // set buffer sizes for src/dst iBufferSize = (Rpp64u)srcDescPtr->h * (Rpp64u)srcDescPtr->w * (Rpp64u)srcDescPtr->c * (Rpp64u)srcDescPtr->n; oBufferSize = (Rpp64u)dstDescPtr->h * (Rpp64u)dstDescPtr->w * (Rpp64u)dstDescPtr->c * (Rpp64u)dstDescPtr->n; @@ -145,8 +158,8 @@ int main(int argc, char **argv) case 0: { testCaseName = "non_silent_region_detection"; - Rpp32f detectedIndex[batchSize]; - Rpp32f detectionLength[batchSize]; + Rpp32s detectedIndex[batchSize]; + Rpp32s detectionLength[batchSize]; Rpp32f cutOffDB = -60.0; Rpp32s windowLength = 2048; Rpp32f referencePower = 0.0f; @@ -265,6 +278,32 @@ int main(int argc, char **argv) break; } + case 5: + { + testCaseName = "slice"; + Rpp32u nDim = 1; // testing for 1D slice + auto fillValue = 0; + bool enablePadding = true; + Rpp32u roiTensor[batchSize * nDim * 2]; + Rpp32s anchorTensor[batchSize * nDim]; + Rpp32s shapeTensor[batchSize * nDim]; + + // 1D slice arguments + for (int i = 0; i < batchSize; i++) + { + int idx = i * nDim * 2; + roiTensor[idx] = 10; + roiTensor[idx + 1] = srcLengthTensor[i]; + anchorTensor[i] = 10; + shapeTensor[i] = dstDims[i].width = srcLengthTensor[i] / 2; + dstDims[i].height = 1; + } + + startWallTime = omp_get_wtime(); + rppt_slice_host(inputf32, descriptorPtr3D, outputf32, descriptorPtr3D, anchorTensor, shapeTensor, &fillValue, enablePadding, roiTensor, handle); + + break; + } case 6: { testCaseName = "resample"; diff --git a/utilities/test_suite/HOST/Tensor_voxel_host.cpp b/utilities/test_suite/HOST/Tensor_voxel_host.cpp index 968f29b54..89fddf2c6 100644 --- a/utilities/test_suite/HOST/Tensor_voxel_host.cpp +++ b/utilities/test_suite/HOST/Tensor_voxel_host.cpp @@ -140,6 +140,10 @@ int main(int argc, char * argv[]) void *pinnedMemArgs; pinnedMemArgs = calloc(2 * noOfFiles , sizeof(Rpp32f)); + // arguments required for slice + Rpp32s *anchorTensor = NULL, *shapeTensor = NULL; + Rpp32u *roiTensor = NULL; + // Set the number of threads to be used by OpenMP pragma for RPP batch processing on host. // If numThreads value passed is 0, number of OpenMP threads used by RPP will be set to batch size Rpp32u numThreads = 0; @@ -241,11 +245,21 @@ int main(int argc, char * argv[]) case 1: { testCaseName = "slice"; + if(anchorTensor == NULL) + anchorTensor = static_cast(calloc(batchSize * 4, sizeof(Rpp32s)));; + if(shapeTensor == NULL) + shapeTensor = static_cast(calloc(batchSize * 4, sizeof(Rpp32s)));; + if(roiTensor == NULL) + roiTensor = static_cast(calloc(batchSize * 8, sizeof(Rpp32u)));; + bool enablePadding = false; + auto fillValue = 0; + init_slice_voxel(descriptorPtr3D, roiGenericSrcPtr, roiTensor, anchorTensor, shapeTensor); + startWallTime = omp_get_wtime(); if(inputBitDepth == 0) - rppt_slice_host(inputU8, descriptorPtr3D, outputU8, descriptorPtr3D, roiGenericSrcPtr, roiTypeSrc, handle); + rppt_slice_host(inputU8, descriptorPtr3D, outputU8, descriptorPtr3D, anchorTensor, shapeTensor, &fillValue, enablePadding, roiTensor, handle); else if(inputBitDepth == 2) - rppt_slice_host(inputF32, descriptorPtr3D, outputF32, descriptorPtr3D, roiGenericSrcPtr, roiTypeSrc, handle); + rppt_slice_host(inputF32, descriptorPtr3D, outputF32, descriptorPtr3D, anchorTensor, shapeTensor, &fillValue, enablePadding, roiTensor, handle); else missingFuncFlag = 1; @@ -393,6 +407,39 @@ int main(int argc, char * argv[]) outputF32[i] = static_cast(outputU8[i]); } + // if test case is slice and qaFlag is set, update the ROI with shapeTensor values + // for output display and comparison purposes + if(testCase == 1) + { + // update the roi for comparision with the shapeTensor values + if (descriptorPtr3D->layout == RpptLayout::NCDHW) + { + for(int i = 0; i < batchSize; i++) + { + int idx1 = i * 4; + roiGenericSrcPtr[i].xyzwhdROI.xyz.x = 0; + roiGenericSrcPtr[i].xyzwhdROI.xyz.y = 0; + roiGenericSrcPtr[i].xyzwhdROI.xyz.z = 0; + roiGenericSrcPtr[i].xyzwhdROI.roiDepth = shapeTensor[idx1 + 1]; + roiGenericSrcPtr[i].xyzwhdROI.roiHeight = shapeTensor[idx1 + 2]; + roiGenericSrcPtr[i].xyzwhdROI.roiWidth = shapeTensor[idx1 + 3]; + } + } + else if(descriptorPtr3D->layout == RpptLayout::NDHWC) + { + for(int i = 0; i < batchSize; i++) + { + int idx1 = i * 4; + roiGenericSrcPtr[i].xyzwhdROI.xyz.x = 0; + roiGenericSrcPtr[i].xyzwhdROI.xyz.y = 0; + roiGenericSrcPtr[i].xyzwhdROI.xyz.z = 0; + roiGenericSrcPtr[i].xyzwhdROI.roiDepth = shapeTensor[idx1]; + roiGenericSrcPtr[i].xyzwhdROI.roiHeight = shapeTensor[idx1 + 1]; + roiGenericSrcPtr[i].xyzwhdROI.roiWidth = shapeTensor[idx1 + 2]; + } + } + } + /*Compare the output of the function with golden outputs only if 1.QA Flag is set 2.input bit depth 2 (F32)*/ @@ -481,6 +528,12 @@ int main(int argc, char * argv[]) free(outputF32); free(roiGenericSrcPtr); free(pinnedMemArgs); + if(anchorTensor != NULL) + free(anchorTensor); + if(shapeTensor != NULL) + free(shapeTensor); + if(roiTensor != NULL) + free(roiTensor); if(inputBitDepth == 0) { if(inputU8 != NULL) diff --git a/utilities/test_suite/HOST/runTests.py b/utilities/test_suite/HOST/runTests.py index ddde7db9c..8bedd5044 100644 --- a/utilities/test_suite/HOST/runTests.py +++ b/utilities/test_suite/HOST/runTests.py @@ -40,7 +40,7 @@ outFolderPath = os.getcwd() buildFolderPath = os.getcwd() caseMin = 0 -caseMax = 89 +caseMax = 90 # Get a list of log files based on a flag for preserving output def get_log_file_list(preserveOutput): @@ -283,7 +283,7 @@ def rpp_test_suite_parser_and_validator(): subprocess.run(["make", "-j16"], cwd=".") # nosec # List of cases supported -supportedCaseList = ['0', '1', '2', '4', '8', '13', '20', '21', '23', '29', '30', '31', '33', '34', '36', '37', '38', '39', '45', '46', '54', '61', '63', '65', '68', '70', '80', '81', '82', '83', '84', '85', '86', '87', '88', '89'] +supportedCaseList = ['0', '1', '2', '4', '8', '13', '20', '21', '23', '29', '30', '31', '33', '34', '36', '37', '38', '39', '45', '46', '54', '61', '63', '65', '68', '70', '80', '81', '82', '83', '84', '85', '86', '87', '88', '89', '90'] print("\n\n\n\n\n") print("##########################################################################################") diff --git a/utilities/test_suite/REFERENCE_OUTPUT/slice/slice_u8_Tensor.bin b/utilities/test_suite/REFERENCE_OUTPUT/slice/slice_u8_Tensor.bin new file mode 100644 index 0000000000000000000000000000000000000000..ac379dc7932f146b5939b5982e8ffc76b9730338 GIT binary patch literal 273600 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 z7h53B@*bQePGFwt@9s2g{*Kenh;T^bi|! z?E4eePYC8YciX{#`qod)NnvOuBwsvozC7#5e9p`_YE=Us9gBwjWR?!0OL(j>k3*!DcYN56ttQeG5Sy zP1C<=w%JK|Gie9Ff7?i#5B9f(v_1;zG>z z+vh_~>9bmGOj;-9R)T()lhy?V!p2vF`uE4qhe+_XzbSq8evm%zC(ZUf&h~Q`dAkYw ztg{gtP`?4Ij*U$m3(6eC>eq4hf|_r|*2C*f>GMxD-AMdxu>CUeDs|S8uck59_-Lc zbAfmZ>FwaW3bJr(WmFEaw{PsU0MhqOwJN8Qr{s0@GKjjya-T-yfk2w~5NjnJb#1~U$Iha11GLyl7Z;{suLx^7j?UwIJ zzkyOq=c$^z9=j4;D zw!gb6eP`FdnfZY4DhwxVpFD;Eb(~+eo8%LZj8lIb^*sj8Py6HiIfT8Gy0f4O8YrXA z_1Jpi`gL6P>jcspu|tWMn$q_=caye}w9%xE2iNTw(pHmZfA&KFj&}t4>UoIpk{z@~ zIsNt$7mw8e;PtfXwfu?VTF?=o@U zef<)Sr|t(J|CcL}E08OYE08OYE08OYE08OYE08OYE08OYE08OYE08OYE08OYE08OY zE08OYE08OYE08OYE08OYE08OYE08OYE08OYE08OYE08OYE08OYE08OYE08OYE08OY zE08OYE08OYE08OYE08OYE08OYE08OYE08OYE08OYE08OYE08OYE08OYE08OYE08OY zE08OYE08OYE08OYE08OYE08OYE08OYE08OYE08OYE08OYE08OYE08OYE08OYE08OY zE08OYE08OYE08OYE08OYE08OYE08OYE08OYE08OYE08OYE08OYE08OYE08OYE08OY zE08OYE08OYE08OYE08OYE08OYE08OYE08OYE08OYE08OYE08OYE08OYE08OYE08OY zE08OYE08OYE08OYE08OYE08OYE08OYE08OYE08OYE08OYE08OYE08OYE08OYE08OY zE08OYE08OYE08OYE08OYE08OYE08OYE08OYE08OYE08OYE08OYE08OYE08OYE08OY zE08OYE08OYE08OYE08OYE08OYE08OYE08OYE08OYE08OYE08OYE08OYE08OYE08OY zE08OYE08OYE08OYE08OYE08OYE08OYE08OYE08OYE08OYE08OYE08OYE08OYE08OY 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%0D9^3H2PXmxv}bF)3&Hb1p9@|EuYnJ_#%ijr`VLd^ zvAckFWXC}JpyXV8xPD{V-byUBUVZ_dK*o94{288j2kVd*u3znVptZJh&7Cj9cJfWG zJo2rz?EB3VR!)%esv@-}=leo&Wuaeh1;N zgr1Ba6Tu6NN#kt+`fa|Ay7=w^EF!mSb|>GF{IHwPFW^4#G;x0k`X``kAJ(2FPf?az z&b=XP*sz8@kNj-|Wetbow?Iz5b$-_R)t(-*M+a*E&u;hm%Djc$7r+wA?9qM*PmYap zd`{wz`|Y<)D1U;VZ-OB(6=)r=4SaGu!aUXaSl?5BX;A{LXF+TEb`XL`!Rx?uCjT4e zO2)kr@zLD>N|kG1p!v}bbX~?AaPrHmd`tvG=)DL1H}Q?peFi)Y-a$6PXCT&>u7PyU z)#q5lc{M%*a6P4G{zCTRkUd)GWee}?8j2h%_m*{RX`^egcvsqv0^h^-9@w5ifA>Qd z(Em4(-G*%vaeU&cbVqFD*aG@UX|~P zX`}m{$58$dyot_B$oGTa2EB)Q=2Pb|u7mteVo7Wb=gqJ+;eGZ>AtE=Xk9$ee;OCOJ z>$!h)D|8U~UGTp||7q?yyh~nIk|XXlmPT=Zk^A{0hI_v6VdvjG#}4227j&Pbk0DT| z&7HKLL%VNNWty=iJcy7=8HOzZFdQ68bgT4N-oO`fJJWk6B}fqw}96ANCIVxu83_FTk}- z#9kHs8Gmj8dl9$e!D3`U-!B^Zs&jjp+%50sTmv?Rf0lcSyRp76;=aXvFpvH(FSvVL zZFkWBAbloloujclYmHpL|I)WM&s?uS|5vnUF6j4Yg7cxWxf3>ijeR}i(_o+5jd}l1 z?)kUj$8k08Q4^mF!B2?Q0J7nl`%QR%9`U)9`Wdz4`O-P~dmHDYal~~lYm9jq-Q4Y- zZF2XD=aQ>S$Q3zm#t#D`a_W6naPLdSZxl=kUeC)1zr!!)VDG>1^CR@oZ9EKRF6;lH zM29jC5bT2<`;O1P;eK!N9DJA!u43MCz6#khb&o)MW$%3ae}p*SON@WPIwIcs-y^-O zv;OtS0pGE$*pU2^%Ne_qqrLcEW-{N`^zsaRz;^-XldH?f>DAO-O!-jW?KqPB>N|jQ z$T8pR3?9XI0ed6oyBz;bY(GZ-W#V%MeHDn+BjmG*e4fv|Kaeq0na{5>?nfBkFBlJF z)o=XhH)@u*^UjISy9B$E(=Cdedw7Rn5_#_Ay^Jn&cqgT2O=4wu@8F-*{6Cd@Tq0k0{?r7oG#>jCVcUjdkv^^H_$|R9P`gB^1u0tW<_h! zEZv^Hhk07w7&*}UuPs135=y3Ok~b*u5kY^RQvZ`7xlssCBBj#sj-mGd5K`OAsTaE(U~>FZYbW9XYTV^1WnE%-c( z96U*ESabGqe1EK9dN(Vwu8XGi0O*&A%Mq+ia=C(Bx9m+^4lHsXlej>=-H@?6VyZ|=i~Hs<#wpi0hu0~C|%DC1{9T;gTq z`EknR+&)9ydB};O*8<&&ap<$dCD`P8DBOn}|CBLY$NXBt9L0xth_NuP#@5Wq?U;|` zRKI7U_pVzf;5)fB-Ms7KlUHCFo8H}X|J!s!=5RCmtnoqir1FQ!yj36mv5fC<`r3-I zecWyA9LC4Bq}EJCe(m|h`7-FYpf@mg@jYVgHjiTsZq1t9k9E8oAjbnokfZZhuhZ&g z1$iAi!25SM@}3bm$7i1(J(#2z{J1N!8C zsqWtd+mnmyiNQVi%6UisORaem^2C_+|2j+L*Z_ZWkw;${EBVy_a`pPDJBeH(>mSd$ zWlanazaGxRGl<0qYdQWC_AVh7PqKGD#v0=s7A++X+-rBwXl+lPE@Dn|e$xL$Yi4cs zUQSLIG8g}jkN+T_Bj9~<`4{Tt`wwgGyQ=;Ya`tf#{b($@ovdR%0|j05aV2^E8U3zT z;Q!RYvmSfNtNv%!${q2GIXc384A_H8J(L+w&`S=FV%{9*Rz(NWZtfaU+d%Jwv6dk#`HVJz}ofK=lvsc zGG(i}DUWCEcGpdKGC3xXeHZXP*~R2_CTqLI`$;$R8!9)|`5&09({p*>Zg%oN0f)%1 zcM9vbhjVTlYkDJiuD524#pa9jbrAFFFUpS zBalZRk3b%QJOX(H@(AP+$Rm(PAdf&Efjk0v1o8;v5y&HuM<9pSBalZRk3b%QJOX(H@(AP+$Rm(PAdf&Efjk0v1o8;v5y&Hu zM<9pSBalZRk3b%QJOX(H@(AP+$Rm(P zAdf&Efjk0v1o8;v5y&HuM<9pSBalZR zk3b%QJOX(H@(AP+$Rm(PAdf&Efjk0v1o8;v5y&HuM<9pSBalZRk3b%QJOX(H@(AP+$Rm(PAdf&Efjk0v1o8;v5y&HuM<9pSBalZRk3b%QJOX(H@(AP+$Rm(PAdf&E zfjk0v1o8;v5y&HuM<9pSBalZRk3b%Q zJOX(H@(AP+$Rm(PAdf&Efjk0v1o8;v5y&HuM<9pSBalZRk3b%QJOX(H@(AP+$Rm(PAdf&Efjk0v1o8;v5y&HuM<9pSBalZRk3b%QJOX(H@(AP+$Rm(PAdf&Efjk0v z1o8;v5y&HuM<9)kiV@!deRv}z5+DBRG>clI-$VFjzKmE27r&g`kO-C z5ZHvcZUn@uO%qVx5s+RP$fpueS^ddI3>0gj2ZZ2#ptuKVeH*+FGQAn_eZWxP=t%mI ze~Oj#Nk%^gAcoi|K)fck9)@@x(z_p=H`XMv`F?uDSK1FTH%Z9;Tgs$qOYX$gTY$>KbC;|23Qzr!Qnp5Hp zd<=Zau%jGIR~yP%Y~-`Xq_RccL%rgpV+5J1eLWNBOc0$e$2B4@h5rEI@9UKQXil6vHy|IMs1B7?Z~S5_O7+p-y(y zU(=$*cg0X+limP2ZNT}5Y>+zn)CbfqpiX`_1C6g8xfRg0)K5jeHa^L3ADQBzaZRAF zsZbr#3u)Vmj)B*BTRwfzWsM;M8jozr zXXRLZOa~s2UBygeS^}nnn6hHw1L@0O<#SF7<+ntg+UZcAij!>mAgrWzp}mxyFYp>; z6EL)sFEhb>&0x^(J^E;D%EoDpD6U5U-ePw;BPWf#IvLhWG5%NB4$o~?&4(UW-83@E{ z3>+c#ij#rLN5Rb*>CoSF>gEH@N0*lhcB#|YB6y#6CF))RQ$S3)7b<1Fm1sCFdw)$VbhI+wwgmRFs$Ve+6pZ7vOkJ7|2DJ-$S<{(&Kw{e5BYS^0H1;( zAfIGYeGY)>U@FM$s^17mE}ed$vht}qU-k5*F)FSap9eLa2^2@k!%C7<18o2c#G8&} zUb+}yyGQo1A;^aa9od$j>a#>y(Ab)(7gTO^d~vQBfscTE$@*}4YR6yX;w4ufI=oC5 z>LZu!a5Y*+Zt1^?zO=6@&My-G2*k*h<4>vcXfuYo8I+~3agRo4I&}fO;@%4)^qQg4 zlRsIGW(?yDbuqH#@H4?YbPVN%@UpM=WoTwYc74jC%cz?weT|Pp;}57)yO4V2!b_3G zNbM~3ZNrJKRhf1XG6O{Azv3(#2KdNC6&F{AHd4s0p%04>idQSJl?3wJ6VUO2+8FxM zxO;%Bqdo>|XFvqsq&m<7LdsDGdwplJ2AvIf&1?0odMh35>X2+cb)N#|tpqJ23($!{ z|1kQX0bfEM0s}8!eaV5&(QAV~_=s`Irfe92eiXY9NMHRnb;5(0K>6^{ll>4xK(Q=A zbtq1&@&%ujJ?UagJ_SI1g}@4G!{Nb4;?WD>6?ggNgIIOI6Q$l()FP3$$|s;XC@LEx z)XRU3#lZIQ^?U*NRPH z3YZQCz)T>Y0(3LmvgLt@HX-r|#6aT@CT z2rK|Ypj~C^nue3HPK7E5WpthI^lvH8K>j-TSb9Kll%9N3-w}FhBY&kk2N;24N++=-8`JkoB7a%Ksl66jYn};pFX??)UW(hy{Olb_#=B$ zJCpv}p|Wk!b%)whjzAxEil6NE3^PB0&V|ij6ev+vo&0S@Zzd2mYF|lm(1MN+uRbkx z^FS3W123iJGIh#}6-5?8J?X0qnuciu6leAOK6ENjJTzXliKUB;5SicsADPBC1(ZMt z<^vDNuJolBL8aSeRn-7r~DJ4_MksR_cHP4>Uj)Cyi0D zut5Fx1NkI%=cG6R02cZ)7*60W|Za zIo0Wd%7d$^c6d=iel~$JypFJv%!8)kr2m+*Vz1mN79NmK^2I!t9 zl$C=4un?3$j7)76)R(Aa>d&KIzIpJ0>Oc(Smtq^j3(8jnR44dAb~I+kSCTc=fJQ^9Kh#Ud z9il2zFCV3s^{ukv*9KaEfEY+uF)vjTXlw>V$dxBg331wr02$;%Cb7udq953Z;jOe z7c+@&vJPJs&uIs2KvtR{>VM^M!ilN3l@Kev-F|7F91`4 z+Uk&BJ)N`zF?<9v8o-aF^_KcRpfRgnekd1xU;xYk?I5TmP@jrlKUfG}2UQ>)OP!C6 z%ug#`2Xfg}-IUH`jg9RhK0tICGWBn$m!A4C*i(MOl$SpmpAULKkfI4Hof7bXVr8Iy zTBhXe%C-kYO{(K)J7u9WxsI3*odE(+R+~yPSJl79tbSX8`cps7U)oDoupmgO>r1wE zKwW-SCz;AaiJ!KT_^q-#(D6W&>bS9`{afe^Fg-0RS86X`+;|cT$zN=gfDh!8_z=j? z=FTMMihD269B2X3bz{O8*$qJ%#6W%dpa-;ok+eRN-yKOG8kfpGbpcR0rmn3snRD_% z{YRhy)b}8$f(4)int%@Vt$x};6Hr-pg{+SlUUeQ&Zu)>^L8_;*$Oj#2XF-@kbsBE~ zMCDJMmNWgRf*fe9F)%>-^3ezKzZpcxLSTXG58IZ0eab-!jokqCE4yYmf$V!KQx^f* z6V%S28&Ib)wgJUM?P6q-t6u%7FSU1lL!6vC_2udiiFftT5^XJrQkkoxy<(twpz*b) zR6fb~5Ln=)R5~N@F^GUKd3)M-CGpRLW_^lAst4-NPjy!LL6y_Rj_heo${*QRUzuMj zhd{QR|CMAs%8}xQX5evu@OSmPJOB``R@V6RaE1XTy{KQfNaPYLmTyFQ2`Y(w*%j{t*A|-f<8>fQky=f1jLZiH$QSt$ z0Vk7UCCRykI?$i`wde>&;7~syI*On40^k7yLZCgP4+KEG^nBoTP!H6%51egmsciss zNG83^zcReaHihI-iUw3=)dixobw_Gbc1s`xaSF|m5qSBP$>d)EEbVm2j^B~=qdv+& z_9at)Dhmyuxgo@$iECeeAcJ@3n)t_sIQ{uab-4YUpR$Xi z>N3FUu#_{nItkm60UcgP;*SrNOuFjJf-r>-Ra@!E*UaC{hO7qs2ht0G+Iy8`-ez-GW!DG9^{KwlbD++q`T^8Wp*AX8Al{@jQd zBr5^+EnV5scw}2KDyOi}DD6jmN+(Pq9r2R6_Og}gddLDGTN(URPxhpz!_r1Mk}rY> zbVye=1OsGWx~iAH5T?{$O(q+X+f?R3H9lvflK2ur10X*#xVjS z$pqx9`=oxO6xmpO$`%AE#0!ypf*NcDl_cIFRDH;{pHlIXH&R4t+0~~uWJ_ZSQXLQK zcYNVX89q$Q0aQK;}g6}YEw2i)VB`Fga3hK znOuGeVJcI*sGWu#Nq_3gQg$-LnO*fSxu5Des&+#_6sT+fa-NbS=*%e#b0bhDKbC24yu7@0BlN~jkHg%lC%@ec-NQeIh=oDR0cL} z=V*KCkLuGSs}Hbef&3TsQy8d@)qM&(Qva~`e-6q%b@E#}nrot2EVEe1M~5L=%Z9*_ z`I7amcm^pvsC;ocQdZm5feqP|Ol_neW%ZH+)yqG@f=F@>JH#L0D6Hfj^@7PL^?oI> ztr&@yeYMG``n4dN11hUu+3|sR>1R3yK0qD;#mM<1Jz%8^#CyO8VaiKSb?P_kTebwR zLR~5sZv@JciJEqxLlnr4lcVRSZCB}Kb*ZkJ$&TzwR|rxXAy>NyUEA?R&a*z$&+5>4 zGCffbI9+VWzL41$pV^lW(sO;GE4g4(nzdU!N3IQjqV}YpRee#G9knq)HdK~<>6(tj zXSn1*W`U190Lt0_&TXftwyPl;`eH0$g**byZ6Byk{mQQE6S{g^$5SuAJoMGCWb$DI ztnNoyb?5~ZC`V@7P!=!hKzr%Qj)i)Xr_@i|x_%L>opdri)d#5^)nzcqq+=v&PvR`! z1o>)_xg*t)o(?BZb);v2+Dq>0pgLqbv+vqcj)3d8@$R`u zgLGEYQy&&cKS+5|+0fy2B)%$c>dU6>H3l~hs1d05SA%rjQAupeeh6G2L(~9gOG@zG z|A$_LT}BzQeI<`p0go6=>u1W zdX)qgD!(F-?G;94>9!|ucHko*-eD-UN!ja2`c?lSD5q#Zoga{_Z`l>phv18@eqc|B zl}@Vb^d-ce^Fh20bXDi-v18!{9gd0@XlH>BbPpv|xjiY1X1amu(>jesP#eiD@PNrE ztoqN|%1#7af2yk_b*t)!Qhn*9HdeQ%z9g5vN83pHX&dPUKspgA;A zbX3+Mo3fqx=GwU${!k~msLjxxj9)fPYD4X<^f=1MbpLP!DqeaPc)-OXNrclEG} zk8&!=zY=gqYC~-@ecMhu>N998fy&6`gGqHWeOE@lx^J0|U!ffcfCr4g;dLZXn+#Sw zwxu7X5TCV?o=-dZ9s${K{m@431Xo5cpe`G$bPZ6w?1dlzeo7^?)On&naST)5+3ZN# zODD4-9r+tlC;M3+>c-BCg&OLd-S*TE zWUepSf|p%arrzmMj?@NZ_I>yO$eyz)-HeB3HdeRec+|p<WA)9*-a zpr>{j0?Cm{$JtQ3)yvcy;E5ua%?5~o#wFeZs#AN}RSYt_lIf8DQHlWl2ziw1HlTvq zm4Mnv*H)4_D5~}b>H$&JXHgYV{$143JIPSY0 zeBk6A$@-C=?8t{zd|D2W$>#EXZ<;4{-|H) zFEmmc4j(-;Lj6O?%Q-J_R76tV8Xj=cRD^$Xs2jMpop%iJI=7I%^vF3yjf{1#J$Ezg$S?KEJ zfU>KTJr4D$daH6u9gp1k0#Ut5?f9u(#aD8tyLvlRUAvCNANf}TtKuVDVD+|Y;{0e& z^5UoZqJj~q%i3kWXdHsG1(jSnKGZ@5SC{fC8=)OJ&>>yfP+Re;moGYk4tU_DaDF6J zNqcmquX;a))1iGNd4+l)UNl2iR=ow;8bZU3Rq>KN)i=Nh@P&>frmA=TLoM(`>C>dV z^r94!sZO>6VDUx$i^`_tI>Z|RT|=GYMLQCi^s_#Yd=V$)7W4zDALbqtMw$`+_z_6+cVYoi9L1CmL{^{p}}r8MIM%Boj6 zqXyoAwm}6s2vgcVoRsCSj;xK^XYDL?7MnW6OIP&)P;BKx4D`&BuFo3qs>^h3C28Z@ z!^c1}4`he4uYQ0L+CfL+k9^XhepTnwE&vUnc&V&9*%R+#sB%Z*n}y1!2uLQ|K}ub} zGEP~%>cfDONt^NWKfS@jDWIQN=ZcikF_+O#z~ciC}>3_@bWxUVg}CK%MeyfwNCpx{9+0 zmCTb4ypxNftA2He_ftL9OHW4#^?;?l`j8)Gpd86J`IJHN2!Pt?$n0lr)y@K^Pk++Y z9FUJaKrxXG^`}GQS3e$Y)NccXz>N=o3^rU}vX$1kdU(HsdZ50YJ~}#N%YX>9Vp~*x z22lAYctGtv{E<&1@UrEBNOpkg1+`NjA-v>jD?QbT3IR}^sU+>C9|7sAz2Z0nsNM$} ztLsO4w396hwW8FijqJ&W$Zwn;~_|xAZ*fv>zzRxNetz?VyJdHB-dDjv@DtGWY2@jXYCKlkNj18 zgWLkORayS`0aquAu0gjS-uZ%_>`6aDHUcey%zxF%o_tlGYU>VkWLJ8hg><6P1Vak4;n!= z7LRv)8=_zY7}}M<5_s7U(Upxp-jA`g2`JB}?4zTY#poS`jV-|xc*)gHK8hM-nsZ@V zR!oP$RN&%-y@>HM}r3X@}mVP?xrJ|J3Z*_3~mMUfKQ#qHK)s% zxu6aGhoHBDUif7|ZRFQfAY0?8(^wA&)4+{g#;)IO%wzC%a6izPuUurzKfvF>Rp7Ek z#*V5Qb1(c@aA;TZK9c%Ze>3RoUa0JzzQ~vxfW~z<(7XMXF&zru4|W45A=?bhgx6eI z0@|>(H?j}G1h5IX0W>W#<~`^yfpjj%mu7sq7`clxv7Cu~K4tmy5@TxaHnxRvDPQ{{ zmtVhtZUUB~vjTbxP`?`M1wgTHq3$y1r=7+;kDU#%5y1Zfnfi~(MFW)4n+`5nWX$)# zwV;o(a#uzF9(2p_uR$jPkNOhz9{4rEiQ1SBZ&(K%E?cgM^1jv@@GUn&tFW^D2Mt72% zN$`rL-Wfc7QIe}x_!fBSRluVlKu5Wpf}i8CC!K2+(Uu%6pzb2d^P%EP@GGF2KQTI* z)5|~+UcVhEegXU|@K-?PzxEHU2hDNiq8nuMr;T~M9{y^bjs}Xy05+7nE^rYTAZD9F zFQu-EkK&Bt}oeHq;)*x3XAHhAV!bPqgh-`k>Q8q;gWzSeF0 zSGtY2SHVQr6pVQsJ7siCZmwTru^BUFvDqIi`%m2*dq>^$KUFhcP%wMjqA7h`G;=nY zY(Cs{vRShJWOF*@y(>jCxMR`9sCi=De0)`%c~m#SlDb*;K;877hK;7WvCHu1$*O6- zs$k0hD43~DMboxT(ZrLB#_U%#eFgZFi)P@5MbkJRe&3=A-!7Q&Tljll)vQf z?>m_{t;5ED0^OIYoZ_n{q-}Ttai@>ya%|mHGyadES7Xz!nRo-}!{{GMTaWpwHN;+H z-j%IRWB-mF;V;auKcROgSU_KofStQc^a*R@5q$ZSHX*Vli`;yT_My+o*k;cO*-!k- zD4z>|2-HLV9CLU%c0T~{5xn^f*&p$F3_9!M@BP%xLN*QBNqr|iZAKrQ)1sO5$37N4 zO5YQR<1WNxU*^pP1!H~yJ&k$yGjen)@*@i-H~<~yd$1$*+d|g|-vH8s#&Zg$?e2mp zEus7(I?Utv3EG745%S+KpI?Aqn>qD7JZm6io^99_(bxxzX8d1^=73L`JD)JG|4=j|wW8@|UdD{0L3~?|V9s31Jim$c!5nNmscx2! zqVGFu_+K>vYcO~kjG)gLO55W5)FJkFLL|Z~ca1lfVZI7h8U3=_}Aognyg0_qagLy?rlSPvt zOmGo|2^v8pecQFi*cxFn7_MbZ5VXO__+|Ki&TaGW=Q&T+TW`Im&iU3kr#Gt9z!2Jj?X=*Z3BO zr~HcWrbBj(ek$;V9prBkKc>QWcO({+!{(3D-~ZMB4cc6%l&16PrN?!o&d*Az?i!d@ zP%m=r)R9^?6W(zDL2Pw*BjI}v zI}tPbodVAT8q?VAq=~Hr9%XGm0k?r{1%_SA@c9uRIu!0hlS?T#fS$L&b)@=pVDnQ$ z8m(^z^=?c#_SWc(#q=0BC5j_#{ZZJ9nP!muO;ea)UL>b@X-xFHqR z!S}=Ysl2UrRxYKsRp53oyZOrXpUCi}bg(`@Ok9H3*j-?7aYtHk3yfc2p9{pPIUVU( z_LjjrJv=`(hdf6&re%+^(+}Cwr;Ta$>y7Dvd*JZ<##Fnem}=}Rh--0(1YkDZJS5s{-A!$l^-YjHu@EIO?)N)9KUBLoy)`MY-Q(&>m!t( z*^$PurBm)^7s+vv}xbN804TlF7%S^7s~Pucjk$oTV4W4dr2nQvs9XVaa$ z`Dcw?KhqP>F>t)_N;Y~1TiwkVv=V%84_?E>`_^O?;Kl z=6dR*$JodEblDA_yOdHMc9oCt?{-`IuOX2zPaO1N4q2wRSMjt@8vr}!C$yvTp-u$hyJlW5MXS@C! z){$nhv&t`}G?txY8^Gx@b_2(@BltG|oP7h^yqz82!8WILq$O7wj|ag0-{Rld`Y!Bc za$}mw-%oi1mhJSP*_b|a?}>c`*pPZwRv>?n;lF0Sd>2k8{{&n^oemQop>ov+aE zJb0c1Pq8k47HpnrsA8D(Nda}Op?|)>?=`p>YhwOh+#04Y@%;&&*%_ANW%(Lqm$2t6 z$Tv@Z26~ho!=U`9_S8oHuC3X}_WYTR<~QMYYr^(q7>?~oqYkHUp(7mtyG5RmwJIqU*v zIq|b|As>HB-@NVmGd9{&!<`-y4OVRyg2et<2(vJ;lA*RZ3_l*PCq4i&G4 zXD`q1z$UlBe;^zO=}Y5BwlCY-nEVaw;5POD)sR}Yf@2=0o5F8BZEONl7<4_T4&RIQ zKpH774)W}DydN*6ihilB!18_h+0uhbDgQYvpD_N`HKbZL)%qelKV*;krLa61zjVC_ zPLsvet6=wg?dR}E<#k+}*GJz~n&e|m!G6|`6T93HKJe?T7bl0xA8M>M z=8VYTc{|D?J?rO#_-7KZx1RP(vU{1L)S~K0mRA5?Tz;1=scq_ zE#&8Q>?-@5J&+??olg`?X=qRF>5tX{;s!iN^%gg7C)e$CPWpQja8m|p z$iC|S!H+sHV zO2sLqRNg~=KECGOIpamqm{6HR*S9Yim_g?$$`7FLvG5$qrmyhq^7@6H zmXF8l5-Ds`6aE`Z=fWWNvDW6JE0Sl7XW>>iNn1Bb*=qro>3(fquMGb>cHDG}c2023 zztWCqKHH4F#LMwxSJ@K&Py?H_*d@R1x1VtZhS{00H1{c-+>xdm*N5`^I(FK66rWV5 zb|crHk?}S>_SQG2;QgKWwsT{uGk>Z5gE)6Re9;c$*wd-_JtMpi84V(QA@0hQ@UZ2XFdY)`$eV8uC=K}5B$zE^J z-hImSX~h28Th(hu!<8-ctbNhUeoxm#y8NY->VB{WjB%XLx9n>?IF0YYbpaclc7?g& z1nZtF#muw${HbCA8?9s4ZC{j9{)|#}zrJuNeLrhRgT%Eq<5BAvI9|*q$HG=VcQm`* zyD@bdM{2(y>ns%G=G){MMILkCw1Pfbxs(cVW>@4=$er8M7d$HG;%|^z9{I6`c zKYb3uXV-3C*)jAV1CQgRhr{?-GPz$KCZ&6EeeG@FnE}!dwEG5L|Apf$>1foV>_X{9 z(uvwIz6Q>@9(eWDMqsVKQlsaGNc*_{%=0Dn#-feI8tad2X}fhRyV$Rk(q#C~g!6-J zcRu@hx0LeixD)1uf0t5uSt;dyDW&GG(fjIkNN*{n%E|60&wFQ6oj0t-e&|-zx8Z~ zmwp@%7wh5lgnYyvYmeAxD%)SkUX;II{%+}AQubb+pj@2EE|b5uJ>@5(tK5(Bd!@$x zES{MqKMy^F-gO;5v&6jw+rFh#*r1fsR`SD3Yyqw#(ed(Uy4UR9xh3lDCVHK-O%=UZ0*_2yLndd&ibeyb}AMoeO~@p+pm$cT}rMP%QG_PuSb)Vh3wO% z_aRv1AM{M@Z9FDbmcIuD2F8&5RAo1+e}ijti7arLAy4=6|1f+-y?4+D=&JMxUzxFSJbl|D->vD=jQXj~cS~qys&QDA6hQRIAskxktAOpUm}gPn!SLvve&) znKW~qP%g0kL0&u6cvaCBxyrD}LPmX^1-P4!*yWA1ysq zdJGCV4nljP5y}si9)|Y)jYdlMQeKCK$oECwr=%CrwdhQ=CmM=2K!>9IZxlFeji$jQ z@0~yqMk@?ArA6_sc>)@XVo!CFd-i*)@8qYeAJ256Uh})(jYfVBDx)@Jep00o(k9f7 za>zTU>Uop#@-xt=-_oVh0eA(!puy;PWZbCAe7-c^gI$EYPp-Z{xkGv{dK^8Eo<`B1 zGm&>%)ps$+N(Z6Pb9oeUgbj>E(PmQiKOH`B9eT8)kUJ=1T)dkNin9wjX`Dld_jjR7 zE9$3S@C-d8AG}ASgyNlG*)uJ}l%erx1{#5KDE^|Ic;+)yOP*!Y;1^Ux!K;iKAv*Pm!R)CcW^YS0q*Uq#QO428_0 zNAQTV7p;+!zaUM@lQeXk^;^D1Ix6xgut`sKKi3s0it-Vt6-B#8qhnEwW0#`y(J5#s ziu*bAKe^jIvly+UY=JanY(aTcKt-|yg=}FPnKW=oD2Jl%EEJe+hQ~0pH5!R7K?k6~ z(e&qC8tm-`t?u#LK55C4-RY-R}x8wy)$LeY-TU4I*zh5m$E(4HuGeSmM029|T>+fiWAi9(maD(bZT zRyIc(^};TqZu4*X8fjn^I^^bQ3)P}7G-zGS|^JQFj>%8Nwd!M$e#-b0(UK z!Zrq?K`3O1_S*38Cyjn>#V3z~UlD~*bV|!8%FC|%&FjwRT<3QAt$#fqcrHM*P*n%_ zX2=iGR@m)Q`DG~D-wp-#eNcb20*dF$C~yclM$hXW3zkS{qe-Y4O-FgWn}&7U!cb|Q z=Ql=cq219zDC{|S?|?$zzKH*16KI(;RAy3mhkD`9~jX=@X-RLSb4qb@0LxE?Pdb3e0nueND z=p4^4Kou0_QKt<>z3J$GWpRHkeAf7lXYlQh8qrvE2|5~Ggql$F?|x_iif7}w;M)%c zhD%V5vfe2ACh&^7Q6AWYY>|d+Q776Ofvs1rJe9Me&s->y652g-+yhCI>=cjz6v?&(I6Dh z2mRoFv>o+!mxe4+H!$4+g-pRe>iti)Bp-gZNV*V>MS*4D5IO~x=y`QU z!yu3Mr}9nSW0EPYBL5fV){Z%AYMTkExSe+F9cP*A1GW1j8BS1k7+P1kdX=@MQC=&J z^~)=G>`srPYA1Ye`tX#UP@l3%+8IX2arM@r4Jo%a{c9Sk=PxQ3!o}WBs#iX= zAr+2ty&a78OYGGZ)^o2Hn&H_$qpR`y0snj8f3Ehdy#oInnJd=6ne}t}t1|1b>iTIR zdBQG-dan0y@2Tvy@7!Q-6YsO^napUg2Vu|TA^R&YDzm4Ov+q)VPua)X{RjHUeu_Pr z;xhT4(XaL!dp4$_z3nS{7tmxMY-wM6V(WMhFxWerE$xkMBW+Y?U+i0rmFMKO5heMo#wb(f;quTh+PEJIK4Ge|FB}QSTJJQybXcm{us;bAQqM zhF81;e%&)~*o%M5JGVuR=~C4CPGf3csNP@gBfo8r4kg#4)g6kKEzrgb+Qeh}Gw$KJ zWR7?84>zVC?!{{c9VU5hA{{b%9Yp@&bfe2C`|(Y4?LplJmqY140G8Is*@`f?9~0*U znqOs)Y_j!V&aJ_x@?&JY{F&Z%=is{pseT>427wQg)zy)cx&UAJwhnAi6F+Q~UNY;CnDW($;N|_cx;l;?>J@ALygk`1SMpXo|ktQ+^YvJ)v|z-}qq||I(Lz*nWR~ z8zjaR_+vJjFaFAJ_vRB9xgMtf)yo~C{4yz9h&q)M`G$MBlRc{}f2wqU*T<02ttRYq%BED=!rw`p*UEJDL8uOtT%PL~|?eZ6iokQsOZ}-LU?Elnx14hP&>V8-2 zJbQ6;o2J}4qdeQaCFh7wqFHxUe)LrSByWIbZe7)K0pWHVN#hS1DA7^mxSN95aTeW+D{LjV_^5qAr zV_d6ab9p*tJ(SZaU5qBd-~-Rc`0KlaJpU;2pR5S0Rowr^{X^kD%l&uJDAY$;ab7AL z)8fo-mXv)m-1}nrJ>X;vOsBgy+nLOj z?5XP6p!I{S&QqhwXYw;|8nM0v42o~pKxI*<#%)4h^IMD%&YTj zy8azMl@^zmAFuBEc$h1umqY*d>KUHw3iUS?*C(l?ofNX&Le^p8!jMwR3Z<0W8INJ^ zzpT8T%zshm7}p<>s{#JYsTcDo`y-W{@*!k4Cggj`|3HVWr5mct=3}2Ff28YF;)nDY zA%B)h`jUeAu z=HV-`i?7-5SanY(M_oh8+SD2BnMLZatc?}49phrlaPKbI65XnE%eCaEpbmVZUyLEu zcbNL4x^FQ}KRqX}FUwcDcRrraNmtPJ>*zlDwcDNB*7l+D`?w!tjD4Pr-=$lW^})9f zES|3K9-|tS?djP$?be2{Sf*~Re5bznyJt>QHUi<7R#le|6!=)KhMw!w?PKMewx?{7 z^3xi+*Gc>^H$r|p&y^8gab6{@$w%Lo?ykMb?bUZ%`MzPSbdbJTfS8>hJ!aV6RqfWFqw%=YR#@anvMko)3b zHdWaJWbSnTNBMh{t)c$z(s|N3?9=_Un>w>SbHDPu@@VTC={X4A*~aR8MTW9|xm=yz z%C_%L(_!pnyzBX{`>FqldW-m8__A1+{aYDdOnb_|s*SLzspuJc94sA*8nst+e?@ug zs2Fc!+^xRHYFGByeCsG>SE8Kx!^Zg8r_Ap2Oj()lkn)4!_^Z12iE$Bk)|7t~U;72w z=JJ<&<|K06jPI=|Y;>^nap@Cyg&o1Lz;3GVOKbh4{76e^?%mKeM{Zz+=vP9qWwMdGFn}n5=-(Qd!_~jZs9W@>YoqP8#=EV zPm1g=#+-N;R-S=hj2XtfJnUlqm%i}aW5$v^8;ZHWEWF@ZJqNKheZErGK%c?dV&8e= zLpj=yxx#YzRM_tCJiAD}GxQ5vuI~SCYup{A4!g{&mu-meaqU$fD6fXcBz4<7qu;U; zU)Wro<2~D7zg^cZ?u#$RuJS8U28$;3)>i&HoK96XPMLkQSkHzJR=-)B1;^?0s^36X z&vpjZ|KbNPdY0|R_l{{X+IqhEqjuO^bxgVkkBFf|^!G6L!=~vPXP2vc{$f{r;}qvX z(jWP9_~p*h-RZWavGpY7=Cg4oB7e8koTRL*c(eJhc~ZgLqd49irbQl)rkm6^pNX?M zHX>4fdvuWb)m6%_g+qhuvF6Ce<-*?TeC~RxbT+Kbg(~_WO_!R#*GU84iuFJ`OM0&7 z&8wA#&!LcX6V{ceB!DA1k{-~X;`8rF^jFz00f<>9lY^2}F z+x1entW94#w_|P8WNlRZfnF~vXBTbP(T#kG@5HxQ*}vG>uIL>;hfiTEWqdO|&*%79 zeht@qc!qs+jgyX&-cDcGW$!|b;uLv7h_G<_L)?jrobI$ ztuQMa6N=V~@%|=%w|3tgo|>nZQrm)3%6(f(i(s;djr1D=gE7{!*5k#i>(oj9G*}AShnH8)l zds;)T>_+8;$OCrSoQU2Mh-Y|>rGzz=hn_x3tt$gfJ`zsH?(jH31Uc%UG zVaV2M$9smoE!axES4*i}z^_@1I-T5aI@7(5y{BCoQ`@eMsb#muH1;_Dbfh)*PS)iE z*%!MiwvtJ_h?tRym-##3vude&hA__OWTFHhXPJzpH?C2r+S-zXHC$qy;KFQ8nXY;#T?76_I z6{byn_~3(dnvM5J?Y*FVzP7lL9Ua4t&J`D~v`3f0=?M4@wP&%i{fS??`#E4cpVR?JG*0WngW-ZaA6nO0{Z=x{-49)omE;N(7z@IBk>};X*MbG^OJ)!&zGX584 zE5fdct-atI%r)6m5A-G<{T`j{dw@IbP0jc1PaEH4YoASl6Rbu*&ITXp-rJfx%wFG% zrPO>I{l4T!`mmMUo%VE!1vd6Oc6AZ#Cb2EJmB%RG2ZqbYq2FWAG3`Ky4rd(iFQwul z7<~#aY14<~SXfF0{G0BD*>318IFJ>Y>MJYJk!Ni@!|aYuoHXB@5tkq!9SVP zHS>cwL)p|W9aD1Nk(|51gRRYAYm4DF`Zn_4ir{w2Q{vgvY|Q<|NAOQ`iNdv|>bIih z{@u1Vb~Ev6bYmIy1DF8I{n_8(#?<;F9r;z_8}aTS>kwCaYHK6$ zQLHGepnuFun&k&6Z=FNWHR)&$ALpB6zo@poAx*Dg$E!9vKdDV)%&67G0M~irOPq-= z?nl=PVHV@knr!A7v9T8$-iyA6;I|pAin3Yk%jtun&wkFeLS)UAtqr?n&i(Icj1=lh^^d8FT*~CtA;!gP^ zx}BrX{)<*-%d4}yA4+MK{Nn!lX*K=!R>{5}T{C{RtiHMzm(A1OxAfakOxQqwtS_c+ z$p+VP&Gur?ukLDkZbt9>*;+65XS}HlB=2eLLqR%EVN?Pl*;?(^+8s$qxI#lJyx9JL&L z$(I{PzIS|Q`l>!;W23gv4!kOSwsTYCk+C`xPvRS=*!Ru0fx#@}!+CK3oA{8rv8&q} zcJNz-cVScgvpoL%wvBB^TuiYR-qieSC74}~*Uj`4YvS9;;@Ylf$R9zE1+eIc|FiJA zM;ouP5$u#CO@T=>n=Fne8nx@Ygg^1b<~ZX2=f61Ytf=fu4+(xouW!)!?j zX7kKTZlK#+V5M zS_i1K%c8N8anbUo~H7Hg0zDsg{0l8>Edb z;I<9?#E#J`@n`+hHG`h|C_7b}@%v}3+4Vzy655yC?7nbketKi-XMQq7?3;9_@q!HwoD9pe*~dQa z?`EDS#+RpQ_wQ_Ctx{^^ORdk9Qm6jNvA5bm+FV~7Vqo^J^4sXBpR#+z**W$?%t7KC zkETU%G=6k>?^R@bMg6yEE!Ruk|Au|fq5Ja5B?>>i}wO}s#kUf@HRcE33-ny{U=d--O z9Sz4C7!H}l=I%G|dw@M&#kY2|cI~g;2JG(#{Wuh9ujw^BHiF3k=nyt=ISkocE9_dP zvbl@J!lPk$AV1qt`FGkr)H64U*T$_Je=0mq593jF&Af@e?7{v&V3#k$wg^LUBK8=| zYq5(<`Bs}0eua1FAhwUtejV(xUiuOLSRcn6xpEWQMxEE;cdwYWGVF%vhg;cSM*fo! z9P>XZhgta@^}H`Aixb71YgiS>=!>~9ypFG43%feCj)h!0A71ucvlL!R_}Y z>o2LfXSS9)#;17CkWDsL!LocW{D!l=8F)=|{~_1sF_#lP2(?>q@D40XsAYZ|S400s66@_P?c9;QE+*C(9cj zv$fEg4ZeBkwy~!7;q;@t*fa``t%2od{P$%f?#K5=vENqMSPJ{tL(jHsH?J{=xtb0? zx2N2NCGXP6;+<6NA;nqDvN19COXHnyp@7dzYz8ZrSxh##%v}$Lrq zr(=6d&xPM`{ydUiJBfi6c(a}Sm-^Sdu`rw-x59_7F2FbGzuao@Tbcd+NIvD|yZ8tn zE4R_Dk?ojk#<*I37=4a@h0oXG2)}JzNS;s77yN?H<@O=lAoM=n2WazUxU6YyI8K|F zqK!)4JJO|}`SmjP`6hhFYUh0U_4)WD^*15!x61Z`=P>zmwExz8?|6MLyFNU~T+#Ox zzO!gQa!=;7#*0(Xtn)ikKF^H_w>K@^Z!eGs9Ef5f^jFGD_^4hqxJP8>|jSRF7R989L-8(Aw&KreffXd_&eQDb`Kvb zkgq2_V|@z0R`^x;QTavKEzthE+W%DgSGaY$_kjE)`0b>v!{GN%_-&2$LgHV1-qP-RI?Q3s^?Pc4-ql?{rr?2(< z&{ORL+~mB={cMiyHSHyiZ(&T?(|8Emxoe3{SJLA}aiE#3kI>;;-^eb{{`R!SU~{b# z%xBMo-;pre&6tR4*j~S$<`}o?zisH`{YnPAObpLm1+TBfz@B{fNB%6n#=di_e(HJ| zhL>wE(Q^ywXk+%yrr^I>r~_YU0P7`B(Lbc)l4H zz4gZqcpixKO}YU_`?_!MKkEg*HI%c>{2j{rx<1P@hvPjH-izau=L_(8lX9yxaX~>j0@|%3bx|7kK_j zwl=Kf{GWDzfXi!qsRy0T$NwOH@jGP|`IWTW1HVt(%faxF2>+h+2dQe$4o7VuM5BSoa;9d`ww0 z*#@X1W@Kx7Zk{!;xZB#M{SWZ^rNLMUqb0`Tm9+71_`$OBBzw7;e8;%It$Is6`z`!h zjSroCcr&)$2j7jgIR#!b%n$9&#M%4e*~+|AEWkB;OWhqk-=Pg-Nz4W2>f^Qz#TxPz zuF%h)*|TC_Gp;vpzK;!D46p5BrB2s@@H_^F+t7)vrq}e*P;yOXd+d3HF|V1Aj%I%a zcK2!quW`!GVuweFiG%s>0P|b6QGArWjPmU6{N#_NRQWUcpN7-h?C?`DMgNS@kFoF4 z_B!0|LV0y+5c|tsu21}M1;Po%>KvvODwZ^Yy^b7x82tW4OM!xKD^fTO? z$EcoNT?3yd*jOE1en*Dk+E_*Yd+~Tr>3Oici+oqAGZ*IZp8a&?IqxjASGDh6;sv?0 z&5U>NxVH%$&w%0Tu=|~Tmp^r+3tQRaPU2pTxVKA3>USjj+YyH9m)S!q(#71MZH9jN z)%tfmea~0x&XZo;m?~q~92&$9bIMx=!Ewb#`;2rOM^AHv{BmSC0Cv}F{|y-ZO`aWA z#M$X9iWL>H@ebu;MlN*VYw^8Lyz3|*L5Jt`;osqFdW8^c`I5UhBp% z&i_>gH>5ltuKvCtI}1B1td92vWZ0Rn?&KPt`BTxI+SvmgfWq!~bMHvy8#eeoLp&d8 zuzptl3weL-mOuY5m|3}2lHyW`k`F>$(hKEm9lILsVS+-#dpmxJ`zdVHjX zJ?LkXi?ql%5x>Q=fZxV%9JQTc-olrgj)mJmdG^uzlV|us{KiW$Np~ovwyF3%MUF>d z_Yz-bk8@YjRu6IaIsO6P$|?FS;*xhj`9ZaV*=__3CDQAHn?jZ+azD*QTk4y^j3@asYR+8Q^`{-njO zPqklipT2t;uif!nO&{Om*?IcmJft5gPtu`|EuPBe#<0;n_-~Fb{5kgJ3gTk%J9Ynv z=VtbEt#isJlHYuyjxVK++1>WWl>OyTC-s7lO0Zm zGfSyB6V0c?%jD2+`ETL-7#XiqzPob1mcN!Bzc&XsKwn(#`6pq8Uy~SE_`Z8zVKiH8 z`qsUV;P(PMohE+@JU62^4645?U_M>xjc0$n*+oxH!Z`C& z4$N1?^H99jLCf%p?`qan&ZhHW!?)t~5F-C*aj+THnCs+ru$Qp0Yd&4GJbeGE&Lr*7 zCwrVeqw!?sc`s-T>Z!w z-#7KuKjTZ)_ff4c(eYip--hM;%I_o7ICjHMvK8st?o3O6&(^?bGCS068$9ETLEArF z2mPIXZ@}_VWw&c@KNMrjj>vhUbRRs~cPeP>Y`R}dcX$^0MH?(5t%Pm%RQ}g?dxz}i zb?MHYA0WRwz2B%$O{C4O@u{ga*_8n?&dW4@iOtgJ7+*JMNEv>A3;Z+~_&J9`mE3&{P5^e_1JW{Z5g zZC9x=JAOZ|sV7`NVk@)t*${0{5cgN2$B_-yy}3o=VC?xfjWF-t4Q~8=X#d8vnBTXC zz5YU1aVy>(#_x|;=V1-_Tn4L~r1~=UfwD5&c$N&(jIWf%fbO=WphR` zar9d3aA)bEV&%csv_m>lb6?ml)83QlD}8fIeCH%Cz0{DJJ~Q{}4MYB1IEX(NU^!CU z)c=QCp674OsY?fT|zIKBnH&&cuy{huiU&ZzSoMgX_eE^6|lPshBs;thK1{3 zM}};Ba@?(*eu(W?&kOz=UeR~k;j<6KdWV(VJ&$E%x?L7Eh&mU&f?=|!{`aMnGneJ^#$NlNH0{bx5 z6i(J>v)Bdy&0dlJ7<~@A_Zw2}U*LR?^54^`R(dmg8K9lDJpZn-dULjS0iJxgsNL$k zkWa*WmGnn-o@R&NYNwayzV+P3Fce?2y|lLzo~KGJkgZ6}-@nzPI@H20m9(Ksb7uB;%bD-A1a53L_l{{j0`B*wEhU4bu-eTjRP1xaP zjedj1n4M>r>@nBRJ+@POJ2`eh&I}ZGW_M3$^Fus7K@0JPU;cwqYJM56?4`Un8Shbd zCGw4i%Pc(Jft9{$>dEex;)QQ(r~A*jcPo3$H~4gy?nklrb@4eIUdL$XCVc;l-`#N2 zXU#Y0t7gttsu@zpu8wwqJ4$v!UCuOZM5e1=^U8o2%z~!ufUb+zbcL)rr&9vHw40m}76J z)?9HA{Bq)=*tm2xn63cJ?;29`vvh`K`D`?ZoGqUD+&QOKGR)U*hyIzNf6moDKP>-^ ze)cY6EmwYx?EUF=UPJXgP^IMgpWyaIH{aY%^gRjRckr}sto}CoO6}H7^m>K9E91L? zHjc#iOuBDJ?!Vw~Z?O8U5qNJ4%VGEz&;a?~XdSdS-i`c1tj!G~=c@c> zNh#Gnho5<2d6xUmiR6!R9rI!Ho)+WvsJ-CFr_=MCRg}&oT*8>HKgn|dPF=7Jx`#E7+by; z?M3GG@Z3b+`ZCV-$9K8aZz$M%b>HS>?S0^M&j@&n<<0 z6MG+`Z_d{z?7DKR^abrLz@Pl-S#s>|S@KkB-Mh!V8g|G&bJjf5+32Vozu(f{McCrD z>gbpJ+hn^^8)9?Y72cn(V%`J8!VuW**XW(DxY+<>`se?I|MK)c37+u`yNiA1{Ka@Z zzz3gUm$$IdYsl0@ck`YiUAv~k^cw`bIBzhPo!6Ly*M3g_H}HFk?#DEw{Ep~vblwy_ zt}nKyS0i3{7I(q#85q2y-Pz_G53-#n)!W~*7kExTSL)IE4XLmPIoV}yl>BD+&xcLS zd#vfQ!=x9}`9!w972f|R70U|`k$V#`FRV zk7Ji?H1;_P8+j&vJ7I=C>h7@nG1QLuTeeMOb$BlHNt`^Tg_U@!@`L zJc&MHL*IxM&r9`f@iu(LoA|AQz$DMdI$tvH7a!xdOGn||wJF;dKVrWp&cKw<#djTY z`~trk`t3uf)4QoK5x+C^*D^XMdHcn&&Z}$#zr!0+lm0Ev5_=}V?h<_98Q%fszk}Zo zzBia4J(4^ppqKUS26(({%$@_!Pqb%!5_9!TZ0u~I!^!UZCLsT`=geW_`@pVil&xaD zZGPT*j=i<3otK;Jy+Q`tVIBTo0{L#`tBJ0+Y5z+$$)9uEm_zQ)_sl8donRdto7ZPY zFpl?1@jXlIm*(&2erM1kc8s>JZ(Ut1`JQbmFYw3mH2pe7{ihqM@A+b0+Qr`c8PDQO zXPo(r-^Oiv7#1VcIn%t)IM93}xnIHOS$aL8uZq&)rS5NC2CLJEXT-nD$bBoh!zPar zJFb=P3Qx9OiTlUEVh#SY6W>{(l=5)P*2B9WUU$jw1>1kQ|2H&@yz#GG}9%7BIiusfQc)0?cM9srGsH<&M_0{z%OK3-bN=c-;%`-Js6aFxi$3+{R9h^XyF}X9wB7_*;04eO{;RU}O(8 zZ*Cp?A8{Tf&ZNgX>oR|db#H!CeCVGQ;4sK|_Y_-M*>jh}b8~!pm#TZ`g}ky@lRvE9 z6gWQMnL7T~&|u#Pravf$f8|W|oJEcAEh>lUgQ;|0o^P8|=1%Mo%RACSm=3tZd+Q0} z=q?@BIi4|o=HBp*fnSe0UQ9b*Y`ah@U&qgDSBB{mWIvP4;zBl<-hK4po9yN@l*}6j z;wP?*UJ;&A&Y#LRdk@ma2Upck`YPAJK8GT6g*XpdJD>cUpaJ}DZhQ58N;UzOI+yF`{H#f9%5tc zFQ?_u0_3}&>UoRjjbr9X@!Ou|)j}RTW~+Mu`RyTBHqu|-@x*!5SQF=e;gfJ1dLH|{ z9*(eFhK_~pV&i?`QT6bt{T`k>)A=0p%*)v&JnN3OSI(9S?~zwLPjktjuhXGo3>!-C z=|lEk*M|>mjK4jT{9AOmj}CW})$Vl}zaJD$C* z-r9zZvX{E$%$bIm#~(S)4+bD_~)rmAd$7HrKj! zFDS1ill{SpzKF4?8jo7dC#TtCuVF*Ri)>Jb?C-)1p}3}s7?TN{`kOczI|@2$TM!*>{4?aOZYesOKQw^aWUyr0w;FTi#YUe}Xr zAM}ELTtH8}a`3CZN4XV#bLGX*-1)FDM&&ob=S`T0A8(GI-)$RvSd^)Qdf;TN{LgE_HCVco&R&N0fYzVytJc#pkqBWGCCgBTFaL9SvJFGBWv1U;SlzED-7NtL#J<>zb7~U zYW_R9t^a3>1qn$gL)RF3E zilyQ~WdrF0a5#k=@0*Js>TFAk*b398oA@bwrynQA_JPAT+Srhu{JcqAS-LGe;W~C} zHtRay1&c>Z-S7MlBL7*|)O@PxG5gUg^7nPSWAxZP^c`#~b^32DKJX4bj;EX7A;|VA zRrfra;n}Q@I;FK!;aa1-Y#n2a>C{hQr^T}8O7M76ED#g&=aH`$JYs(SAAbHh8Vc7E zJgz3sY3N*3=EwciIa43S+J9wjH=CneEgi|;Pr&;@d=7RUv1A)k5!AW>Yh{8UL!6jZ|U3NCp+2rj^f^O#wE78 zgsm=t=fXSKDx0l2vr*r&RX&lK$K_Ad58pX=&CZAJ;Q39Y>+2)&wTpcf?jXnMs0i1C z;A(7b?qIWU9ko7t6;Fol23K>e78sAHWv_3-1Xk7Gp4ys?!m$>n)$f>|7iaH+>(1o7 zjecw_<^j#(Yr0R&zJXlQ*tg1$PzI0eOLcm~#at*`4SwgN{%9Dx5KrT`Dy!ebe*m|B z>g$W@yPnWWMmf1}CbpAh?z25F@G)xCg6ax=~X;1bPac2UbKAVo;YNJ2t8*X}pjh(^9?jh3}WTt0~bMae1qxi1h0lHor3 zTF=LM>$+!Qs*lRzYnK>ReZTR3yLWfu#DnA*O!w)qoq(=kXKX!#XW=OQBR0nS-^~0e z|0Y~dKwqG#_}f>^R+7I)em3lWRp&YRv-SU8c(Skfz2?{}NvqN0!}jX$U?h6w_k!iI z^c>9|FM#7!Y-zG@AH>v(IY53W%-cM-!*KuOg&pzDp=Z#sm0uQ(Dg1xNmEvC$jM-8q ze#N}FxEnoRr00*``SJOJIY4V~ee@rCe-H1H^m@4Nf_Ja>>V8pnGECoM18cB%KHtht zYx1zH7i%_X^xc$p_;Z43xt%_jX+!L;zHjDl8GLi*0)_3BJpkAE_Pqz}#QDPEa2V~` zvk@Oor@J18!uEE8>$YOTCa&*+Bil_U!EZ}6T3h3kjg`MhoONC3i|0sv*?@K}!LU?a z8^_*8ewaBbJM1@7429_ccn)Eobue8hu1?b06-@u7tx@E=u-*S?qt|?Ge#w?#7-zO>f2H%kl)sDTf4Tr@ipq6m4xzG1OXMM`IQL==!js`mV0}UgcB$Fb*|C35w91qLGl#O(sPZ!sq=UXtG2g8BrTx3p~Hg2!J zV~q2zl|PXAT6B>1uak;Foln{a-ckH)grzZPsrl3R7W4Eee6!UxY^NUs&lTA3sqm=P z#-rw^?B&97Z1hI4O$;4)jTEMFz9zYRQsQqr(O-im)PUWbo@%n=kxe=ehkaE z$np&R?=7YBVe*|YHD2VdZg9^!U^O^y!6tX%3%hAUJe}TC9DfG?GwHkw{8z$rGCwdr zb-u3e;97i4oAj%khHp=FJsgVWZ0x%FU6MILwq8T`d-QYI?x`@nLMkT2JF2{Kylftl zW3O?3BZ&#|yDI4vd|qXrbtT_!;(sCDe5CR)*>AGWS&?0CZM+yRP96%gbFK5O@#EX4 z`2Sh6E{83wEAPR7KhHkw%+5F3JKQ*N6&$C~^IG#9F?8vr#t(CzY;81CoquWnO!%DZ zxhwRAJ}fL|Lto(a4SDcPA0ilcz6MjiU)jj@M03II>7n1c{txBYCHtJk?-Ls>;NST< z8+sVgH-5LFyar4sz;PDar(4tg@MWWQ*SJ0l&rOkaPW5*~M%WA4jBNHvb6b0!O_u-A z;Cp5<_PPe&d!TXJzYv}+%m2p?6!)GXYk$v)*X0#{v%||8(|B<+XT0w{NvykAem^me zzD)}nx_`T(LiWeotH1wLH%Xgps2PSiHdOa_Hncpy=%Jm@Va`{gzvFj+;&(*ybj-hm zR>7N%jxs*A#5lE{xs|zZTZO*tIQyBN=fLz!c(L(X{@-~cJoQg2eZvm}(};70!O{fV zG40jg*v|ihJ|Ai8B>e`<{8jkf+K}4rYez#KRuilLOTJI^ z`J*u1Pg|$hD-!E+v(2HF;|toHB{oNVZXP1vpN%SybwPG8GOvl>5YNQR+}he0iGB}9 zeQ1C*uHzf+U*UQmv<{pn!Sr^qb)9JXh1+N@VzeO+BvP=$RW$ zZ)0-&zES*kT^es(pGY3?`qZH+rTYwXUMZ|1hq z<_P@QZDlAOhT}gLo-gD50iVAT)gtc$=)->)~>c=%!~hJRl7hN$@s8|v4Xv1n~I_4Gqv_hiYvSRhZyt*ebp=8jZRiS zY#>ShNT&ViNsh3i+0ay$haU82x0!WQ^}Ktmhs>knH_77Lf$H~rG5(K7`=ATwlL0w966^W+ zUHy0;7jw>ZIyzWvxLtZGivRsS4ZnM&-o?ZoPBw>ctV;f!_0vi4Ez;>F7=Kqvh5v{@ z?4=)SUdlJ$r{5Fm{gJL;w|l>0AM15-d2=%Bx7>6(%%tDF^8BTGhF`w6D9+!n&MfH+ zcwFcHcz9f->@f5r*=|JfK4&7|v-T^SfT%Rx8|QxuP=P)m$jht z&|zo_9=Fo>7I|qhx5!XgUu4S4H!0JPF(0e$*98WL;v2usvV6O}G1LR4c5CC`sKY&b z)G^;m)6k$uVLg7h@gA0|;B}w;EEK;Hnzu)jA^T6+L3FqdzhCiMsT<>r-E{H2y1Pow zL$aMY=ux=d$7gRSrQF%dH%1S8=2&gLj_(Yy{S!E^1>22byp?nd#AYgNDL+ctaWFlS zJxSBy=qUI$D9fq$Uow7;p24Rm&DWdLp!MaqmkvdZ^8HZ(9f^)c7bxEs9gdn@50l0{ zcvpWjFYrH9-ZSyes# z|0h0Qc=l!KT+g$)SVyNfk$FqC+MgOdaPEfuN>W|{QUf{nH zihgODU;Vxz+oQdDuDASbJ3QoJn>E6(0KZek1ZhQ_%fmZAK-tIbFh;L=-rjin1uyoJ zt|Rl!QhKMSwM~!wJLbe|!VJYaI)ia}d-j`$DV+0zlx+gl*Kisxe?nyK{)` z)o+$EbCEJ!^Lv);W1_InLw~~+*2Qhy>uT?QM{%Nbbu?Pc8KI4e_IK7k9kbn}W9dAT z&hN>?DdI%>*u9?cGbf1s+v?eb&)s`PT@>Fh#lBqp#$Bwb%Xh0^mfogL*x{|NZA8q%#%9jbL5 z*yd0HerwNXmuM*B@7dPv)o(VdztOird-rdM9wog&`Jd3c?bY91t*lw9?jh%3S}=dk z9RN=@n%m3u5VSf>JJr42vpbUI9BmVTEC%?+y(5-Wf8L3OW4GdR=VGVoj&sN3K zI8&Hk+4VZg-3z}jz_|Kbm~hVrjt`*+(3h^+Xg)BUi|#=ex|UXdt2y?IBJSFsPAf=b zZ}~v!9m@NwdzJhtXrA)$XJys6%3jkO$_nIvQCfyu>`5Pl7Aw0|dITzX2e_%aF;6>b zzV*AZSLF-x>@)uVX<7{pZWkNcyML4Gb=MWwE0xTBx@|I<@05>&<(X(S9QQ{N6Wq`K z?YW24Kh$$y;ai#4{kyqq*W1G-^Lf(gbe<>APvhKD8D8NY{J=mF2q)PZ6CLv@~# ze^0$Xqri!6R&8>oJiCqWmSS%$e;=CS8dd$_5am(-B0APdFF+5~WC*3z`ul}BKcAxy?XmNY@xwBy~I)%+$3%?mKyI1;> z`D&R>K5d;d$9Ny**Q+-MmVM+Gdj5R;!q3SO=S$+;XN9d5A~qU-^5NG*Q5|32%5`t$ z{apX3?jrKdu20#eNG!|rLv_AaB5yOE)1-d?%b?#q2i$W$J8=COinUAKJTX}s@i4F% z;`yKH8JLFO!l=qK@Puo19E$!vM%y>*k89+`(KyQxXL74!)F|lz?u*UU_-btw^N6%+ zd-r(#Ksy_4uj*gf9TrpB)cr7803Y-D1#4R?*;}7A)H>g~v-*GCt@%gvvG-(s7-x?w z*QkFm{ESoS%JyozW&T(m0+$ovbcr=mtGWC{bNgxN7G)>1y*%uCsq+=t!e6ub)${i8 zO=SL4`we1BrA91f>nY-gd2Ya1L<&gs(8bT|a{ncp3+zJ<*I{GLTekz)aD z7RpN_hLnGh|5Vvq=vyRCRBibV_s6*Zi1Z8T{pt;sUM-!fOxxM*?fh4|6?u+^(XH(2 zS$6f7vSjVEiFM?baM{CJy~!Srv<7x@&Z})rYwH!PHv?bKX2a+a-!?vk|L_LCp$MnH zSW|ysef=|BezE^sV{QE_`}+i5?!|l7{EZFOb7#4M4c4HZ)%Sva^__UE{mLtlZFT(r z)9yTi^keCp?Y^BsTa$mby6rH!jBa8?!T6M0UtjE^odP+|bbV!apVj_JTemB_L!Y5) z|5=me^=oa5dKZx4NOiAP=Op>fm92)?LGl%CjiX;t8u9F>cKf-~$6>|~o4D@b${Wj4@uc({tJBgOqu-_cGTwe+W1(zpEa;$nAwL| zw4D7TwA8x2;9l-c^0%uqlf1X8e-_fW`7iZn#Pp}xOaolLh8v91`|?S@ye)q(+#)87 zli!{H(WUyErrIyFncR9XIYApcOD}2g|9JJCwQA*VvS{o7wRiu2R#oL5z_*Gxn%YFE zh*?K7MXuRMh9Cz#St6R|R7zIroxI2;uhmqh*7eH~Q9%($Ma4or_!X53gOp$n9u19> zbTUgatjW~4Wi^%+mEG?9*=PC(?$6J8y*{sJeP7S>Szq?rYp=ae{Kr7w0{%JzSr{#PR(hJbDN&e$@2^2$@OngJw4j6{)933oVNL=x?l4Sy1vz6pK&_A z;yiY|Yuq=8*Qa2mbZ67^ll0q8dgG`3=1Qz{D|lH<-{VMaTE0sg<8kk1QGXU+=WyR6 z{z80>m)=-xJtlvlPrpfdC(wu8J-yoGS~}_Xow$kqAAPNN3GS|-k2Wigp~uIi)i-OG z;^{SIzU<6ww9x^uW3%YFo6Svbj~1vx05yY3*!ZZIu25E9`T1!?GQP|DHYiSp88t zHt1+>3(k7pC2VJSh`uke{{i?5y-!xx7hw&oUfX`(_6+Ww#D7oxhRNmJQ(I{-XdCq( zf|G9LeSuE1;EU>0N9+*~eU;nz8@#+-XS`op9Hh=&@VuyMJ)-Tcv1)6z$5`{z0=S30 zYuNo~XHmAZ54Mf5_XhJ4Zd&&HD!A()TiY9dPd4pMHOqIOV{P1cJ^yODnp?{?mUU}k z+*jskJ8c!`e&aj0tq16|c}g+xEIg<^Tm0hUS$>!HZQTIJ)45Y#Hpcq4TxSkgyBw(e zJLvpfcnRLBPV-poU$@3L%XcVhdp6tOXs}MI&ooZ1mM7-@UCGy6M-QUk4a$sr24gh- z*P{G?uUL0nC0$kcbZO64ev|x-a(?Dob9}R?e4L%vlZ(llL7$2<$z3>$?`?MXbFYSn z;G6Vl&`H|Dcg}<$s$^FvscxvG(fOjlG}1(IssE%#?C}G0yLH;-hxE zK5xEgKxGLS3!T!{>fFV5GCO{z%ovYHaUVmzk&J!6%B1$bQruUXui_ow z_P(9)vE1)t`^)D37s-WCDF7C??tS8sD z=c!xCN8lf9U}t?ldc}3&op2a8{lnh!zmt2pFXCRH|6ND+=}T9^e6arUaH8Dfs9h{h zKZ|!-;~migO8@7{3-}}dmGWExA?NWcqd0#U=F!;0jsO0M@8SgK(YNZ>I`w0O2fDZq zg#!VfJT}a5pT3XglAuEcZKaBx5h*UicRL5Mr>{x z`Fe-lH<5GULWp;*uY{;4()}FhUXQ*M{qHU00p#0ByadYqfUqU%4m<9LMQ|Nl0@j|T zKd$lHLZ`kF(Xapt?o>1*>~oOe-*YuhxCWTEI1!Rui&O19))j%YjM1X8Q<3~ zzhS?eybBs|I=J?i|EsuKd9kk%|EDq4C@toM*6X2jMY^T<9ZWp zgvC&SI13o}9brQ&q_85wloS3McLSoVa1TP1U570Y^TEDw5bO`Z(Q@IDHaMvq-qx!& zEJN1_i~9OtIV^&?uo_;2_0S6i)F#Ql#y%rN**y?#9(^m?`pXb~>uQKT5jY2|2g^O6 z$kzdN<%ABaV86-b`Iq=l!gBxqQt}#zx$k0_1ruQ;Y>>VoZ@h05zdE~uqx0Yn7=#gP zr5#4p7y3q>k#F#D^OkaIa5luAK z2u`DIC%}midIdMpj?peP^+cbmhvbhv@!4dw^=b$k#>+DXM#4Ba2!@1jf^E5Xh7H5+ z=!5%0v_sS#eLvdfWAJI13m<|m2>lL+NV^}58b;K)974|m7ZcaC_a^$tWzY``;A9vO zKM2tWqm4_+meGgnhY)&&-l13Yk0T-Ui8hXY|1VwM%pGY)z(#pGpc3Um)X{>dX9d(C z+NciktE_3yf8h@PV(#pcKR7;EdHX}u7vn$L>`u5F>>-uUHDW%9HjZ>J%ku)vgXjZ2 z5M!zywncp*{i6PgxUh4G9E8Q(HJA&%&@=3xO`Zo6p#eLoXOJ9#EyH2`WTdGp=U;V| zQe9DYpn!@rOCaia4K~9f2%QV%t|tT0hQWK3*^;kC@7A~IxTf8HL*#526jp<vo^ z&fszrL|uJQm#zUTU^@R2=z^%L4h4OKw_;6uEKDamAZ&?zVQ+;Df7m!ro(fK4Y{uLk zbwt}mpW8ylIF4~0{Xb;P6^Fu`AjWs-8}=2$vaDO#J;EaVU;K589}9!R`pJ?v?yw{B zM*0@rqyKjB*ZHID*%0xOu1rhk8uy@dJrMRpzS2hF;V;N2Z-IPa<9Ta@#g9A6Z-@&$ zBQA8T43{6}7Q$CRloMq%xLZ(gmwE}0ypd+2atDUvB7JZk=|ayg?$9ZI75;jp3pW{P zgkOBrF~l8dhlbt3Sy`5_C@aeDjk2J|A8oW8g8u<>9=r^ZKWqx#IwA5-Cwn34>x1$q zyvBXx+V(sXYr)fDlk&o*ZfM98Yw3;9$v=&}6e9csliS72B4a$w6~9RM7Kr@)lAuKdud-5$X~_6+Pp z7O^kr9baWmcDzglg7_id!T0efOSpO${Jv}44--@9N}OFNzWLVE*I z*7MSzWq-gvTXCv7uCXVvqxd(1wMy+sdkIIY-(FyRGda$mwZ2X-dms(_L-C9!-jj%X zw7N2C_M7S_sc#$k-Jdm%k!G4Qza;#t&GI>T-LbdU4N(KqUogw2wEy*;iO@{jZ$+bZ!J)W4hXxYu4r->)@`mVJ)ORAns{*P%S+ z7BAs;dpiCA9*1#oh&*o47@@*h*RpxueJ*=&NF79l5koLq{W7z#P|41DCv0C0o z*7sL-ufA0nv-S$=`-}fDRNV8Ps7`%HM`UNSJij0B<`oC4^K{aBw4wgiE9_f?$Jy$f z2H#NcfUs-GRm1jK7j;Fy8e{+SDtca^?5EgKwIACOeo?bL&m7On3j1A`l@}PYI(k?^+)>bs?Ph#%W!V(Q2&v*Q-#r|*cSFzPVm<+ z{!84i=RS>$@p`QI*)V9_d)QS zGLG@Bk2%KKUTj~cPdsY>lfMYAyM^2DE3c6~-jm&h`&aUup`2CfaINpzPy2mXowwuf zV|YA^+kR+__tpaP5%v9EU6-?IG50U=_5}Zcz0)7kUmf+Q$lcjHm3v2Vm0@l}-)JLk zT)Zm(tp4`@H-2CHYRl+T@y(9%JmT-g$2Dq{{5Xu~nX#s;SCtX#=$K%js@(SsqynTi1L$#ktW1q1s&pa2`h4>y(Q5F9; z{)4OfnRLhDcf7gn1Ngc@_;+w}mGW*h&TkU;u&__zC+68hxW7f;kB~918?UwX(nIlQ z<=#oRqqzs!aT_^-K2J##eZH4Ft`Cn%bEZ5i)bXZf(epm#ezIEbtG3Kd(ZAw3W?eg! zWBt?kx`lrnf5q9BE4i=XJ{G>l&Cb?x?tRG@$Svwvsjr5O=ZQbQTFyfab4q!yyvbbE z5?%=ZE?eY_ecAFqhA$;|)$d#{Y6sJ+(|r0Zx{hdi1|@E9X&+b51~T;7p4@|!F8)U< z&P$ZfobQ(>`sxVfpN|*%md~Z*xxq-`hrtTr1=&sC56bs;?uE)5SuLM?*Q37J`+HEH zBXPJ=+)Gv8(4Epg$9bOpbaQJlG`ZxY_9C7}@lU4TrOJ2>UX+);<@Nh!^_df6|Fm|Q zvPUU*A8XF?{Ih(AV;6pNPWkNx^GTeSi|beYtuT$dLdMu$seIR?BKkQUTU*q> zoiY~EYbP?|9+LkuI&YB1TCvuzZ1Y5%Woywdp1BShrwwa@;*G+eQU3Ydo9Ojf?jzK* zO5W|wvAx{?%e@TObH(q)eLDLt;hx6k8%F`03_1?t4aCmmH?NNBE7Q@}1H{tM;hrTUY-K?mKY(q&)NBK5qHrY+!9y zHf#GhdsBN>I&)cVS-#JYGI$t~yruY1}hB`?Aid?AG*s zMQgtgHtEX!D;ypq`~qd%2zzjU+!|pa`QB#v?dakq7W^QdgN}fQE{}MM7e!-4^%5x|;J8GNzy_d)RJoiND=Fs&W{Pc}? zn`%37FR~td4?lhCS1I4T*ivt-pUSq6G=Jh(Z|l3{H`RM9ot4wrSKNy@zE_=li5FMf zRy_xD-%S_&GR~_M(wEO0ansTVqR-XnS3W1Wg?w5WKb>se$JZ|M{!!R%>i7|TI^?HA zZFk}HD&ECCf%{_my_@?>;&E8eFU}{&bJ5z7+<30AvvEHEZ8+~^pEj#KEX_y7O%m4w z+NY*H-WzLeV-smW8jUf4;} z%@wwSdv>#YzbBr9HllApWr}pq;o%(e8h*SL2TQNq@>%IC;?x!2ZD_f+)wD-3A7A=x zF^xO+SjY1J5C7{S?oG#%KM`Irx4Ta$Ua7jSRDEZzTAov=J;&WyEyrw}eT%s;&S1t| z8}B#{E+8+TQodhVxycy2bBeXx6l++xYD)RNnfRZGp*7q~$zKV7&e(mzn)q4k;6G1s zhIC5#4aEUx1BU)8|MuQt^6pEI@V;M*|D|~8Tgs^aPMz1fhg%{4)5^J6xlK~sibdko z74Ii?-Xi@s-B`KmlWIZ=6Il+hBtRrrbUJYMf32c@~0jQOUYTe?P7 z`BUM8^8K59WWARixQp*}cC)je+s-u`~!5>zO6~>itFqV!oSWxLjGg9#|nFe zEv|{Nrxwpfi!Sc4?Vsf7@GkBh`dtseT+`|^){bsE*TEfgfbm|gxBo8f^Ke3c`Hj1p z^-7!(s*P$ouh_Icg7xB#6CQiZt6>{upAH{|jpo}0h)qT-OF=&GtTI z{CB|6_w|dDwDmmP6zZR;yepM+v35DPS$-G09@mwJ)He$LhPw~5{aWMW&HBk%`rfU| zSZ$0Nx4kb|lYCS7dh)BdTB5)HT)+H-G~yaRp}#&I*QNMY1>q|BuRiyxr~`QWLLFiG!I>dS9P^%Z2zF!n^fkyf3>s-haH?`{egI!*)IQC#M!& zdwTEeX7TQCW6thk*T7)Y_uIJF;O;S;t!M8`%6W#3PjN3~a|hf1P_+#xuk&4-jxaZ! zIJM{_w;t$y(jA;Byo4Pw4yyX_De~2oIZv5$a6Xs+P-WsR*8g#>EU#(ft3_i3zAnPk zHS&KQM{9Ah4o43d&v)R-+*O-1rDz0Bkai#PVAA-G^Mdtzxqn12b46o2a?#=C*`(S5 zcsbRXq`jO!y3=>fMw8RpXWeS2=ywbCi3jobh;JQyZ(XtZJI=!0qo2;eF`GN@SO4dx z7Rzt*F6k@DZ%x8dMFxj)^W2Rj$z5g#kei^VzSIy|+ci9MWHV+Vir59@yya8JcOTjM*a z_3Pw+l)TV964yHO^olp&@DOJwS2oN0x4y^q89a`Cn?5we5gF8GFw{z=%HR1J7iE}Nh#eI)Cu-v!)cl^9s zwa&xgIQgZo$8}17?fr`M=i;61y%#I%5`0b(wm_QS(qS`frJKEz_*O-H!>oG`oKEq6 z?zP^-y%(Pk=$EVUfZI)TNZiD?x`x)%?@aUI&E_k7K26R(2M*JJ9#faSsuhd$Ut>7_ zuW$M|XJDZr7Y-$Qs^&}@HuXu5Gdll~*jr$@s_%o8(k`F?ZkG~;_W?Q|c# zf63lmacItn_ug0N+kN_VV@I}J%$B`zu_rF-?f$mn5qVa!`5_>?Z=pACVsB({0-m)K@OQ1W#(w!Vy*qO@95*#8Dk?|FWy3r zC(XrMt;vsA=RQ4u$v`rY3?u`|Kr)aFBm>DnGLQ@;1Ia)#kPIXP$v`rY3?u`|Kr)aF zBm>DnGLQ@;1Ia)#kPIXP$v`rY3?u`|Kr)aFBm>DnGLQ@;1Ia)#kPIXP$v`rY3?u`| zKr)aFBm>DnGLQ@;1Ia)#kPIXP$v`rY3?u`|Kr)aFBm>DnGLQ@;1Ia)#kPIXP$v`rY z3?u`|Kr)aFBm>DnGLQ@;1Ia)#kPIXP$v`rY3?u`|Kr)aFBm>DnGLQ@;1Ia)#kPIXP z$v`rY3?u`|Kr)aFBm>DnGLQ@;1Ia)#kPIXP$v`rY3?u`|Kr)aFBm>DnGLQ@;1Ia)# zkPIXP$v`rY3?u`|Kr)aFBm>DnGLQ@;1Ia)#kPIXP$v`rY3?u`|Kr)aFBm>DnGLQ@; z1Ia)#kPIXP$v`rY3?u`|Kr)aFBm>DnGLQ@;1Ia)#kPIXP$v`rY3?u`|Kr)aFBm>Dn zGLQ@;1Ia)#kPIXP$v`rY3?u`|Kr)aFBm>DnGLQ@;1Ia)#kPIXP$v`rY3?u`|Kr)aF zBm>DnGLQ@;1Ia)#kPIXP$v`rY3?u`|Kr)aFBm>DnGLQ@;1Ia)#kPIXP$v`rY3?u`| zKr)aFBm>DnGLQ@;1Ia)#kPIXP$v`rY3?u`|Kr)aFBm>DnGLQ@;1Ia)#kPIXP$v`sj I|776*0LNMxGXMYp literal 0 HcmV?d00001 diff --git a/utilities/test_suite/REFERENCE_OUTPUT_VOXEL/slice/slice.bin b/utilities/test_suite/REFERENCE_OUTPUT_VOXEL/slice/slice.bin deleted file mode 100644 index 94802b30b945e8eedc0104b66780c700694a02cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4377600 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 zKop1qQ6LILfhZ6KqCgag0#P6eM1d#}1)@L{hyqa{3Pgb@5Cx(@6o>**APPi*C=dmr zKop1qQ6LILfhZ6KqCgag0#P6eM1d#}1)@L{hyqa{3Pgb@5Cx(@6o>**APPi*C=dmr zKop1qQ6LILfhZ6KqCgag0#P6eM1d#}1)@L{hyqa{3Pgb@5Cx(@6o>**APPi*C=dmr zKop1qQ6LILfhZ6KqCgag0#P6eM1d#}1)@L{hyqa{3Pgb@5Cx(@6o>**APPi*C=dmr zKop1qQ6LILfhZ6KqCgag0#P6eM1d#}1)@L{hyqa{3Pgb@5Cx(@6o>**APPi*C=dmr zKop1qQ6LILfhZ6KqCgag0#P6eM1d#}1)@L{hyqa{3Pgb@5Cx(@6o>**APPi*C=dmr zKop1qQ6LILfhZ6KqCgag0#P6eM1d#}1)@L{hyqa{3Pgb@5Cx(@6o>**APPi*C=dmr zKop1qQ6LILfhZ6KqCgag0#P6eM1d#}1)@L{hyqa{3Pgb@5Cx(@6o>**APPi*C=dmr zKop1qQ6LILfhZ6KqCgag0#P6eM1d#}1)@L{hyqa{3Pgb@5Cx(@6o>**APPi*C=dmr zKop1qQ6LILfhZ6KqCgag0#P6eM1d#}1)@L{hyqa{3Pgb@5Cx(@6o>**APPi*C=dmr zKop1qQ6LILfhZ6KqCgag0#P6eM1d#}1)@L{hyqa{3Pgb@5Cx(@6o>**APPi*C=dmr zKop1qQ6LILfhZ6KqCgag0#P6eM1d#}1)@L{hyqa{3Pgb@5Cx(@6o>**APPi*C=dmr zKop1qQ6LILfhZ6KqCgag0#P6eM1d#}1)@L{hyqa{3Pgb@5Cx(@6o>**APPi*C=dmr zKop1qQ6LILfhZ6KqCgag0#P6eM1d#}1)@L{hyqa{3Pgb@5Cx(@6o>**APPi*C=dmr zKop1qQ6LILfhZ6KqCgag0#P6eM1d#}1)@L{hyqa{3Pgb@5Cx(@6o>**APPi*C=dmr zKop1qQ6LILfhZ6KqCgag0#P6eM1d#}1)@L{hyqa{3Pgb@5Cx(@6o>**APPi*C=dmr zKop1qQ6LILfhZ6KqCgag0#P6eM1d#}1)@L{hyqa{3Pgb@5Cx(@6o>**APPi*C=dmr zKop1qQ6LILfhZ6KqCgag0#P6eM1d#}1)@L{hyqa{3Pgb@5Cx(@6o>**APPi*C=dmr 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 z6o>**APPi*C=dmrKop1qQ6LILfhZ6KqCgag0#P6eM1d#}1)@L{hyqa{3Pgb@5Cx(@ z6o>**APPi*C=dmrKop1qQ6LILfhZ6KqCgag0#P6eM1d#}1)@L{hyqa{3Pgb@5Cx(@ z6o>**APPi*C=dmrKop1qQ6LILfhZ6KqCgag0#P6eM1d#}1)@L{hyqa{3Pgb@5Cx(@ z6o>**APPi*C=dmrKop1qQ6LILfhZ6KqCgag0#P6eM1d#}1)@L{hyqa{3Pgb@5Cx(@ z6o>**APPi*C=dmrKop1qQ6LILfhZ6KqCgag0#P6eM1d#}1)@L{hyqa{3Pgb@5Cx(@ z6o>**APPi*C=dmrKop1qQ6LILfhZ6KqCgag0#P6eM1d#}1)@L{hyqa{3Pgb@5Cx(@ z6o>**APPi*C=dmrKop1qQ6LILfhZ6KqCgag0#P6eM1d#}1)@L{hyqa{3Pgb@5Cx(@ z6o>**APPi*C=dmrKop1qQ6LILfhZ6KqCgag0#P6eM1d#}1)@L{hyqa{3Pgb@5Cx(@ z6o>**APPi*C=dmrKop1qQ6LILfhZ6KqCgag0#P6eM1d#}1)@L{hyqa{3Pgb@5Cx(@ z6o>**APPi*C=dmrKop1qQ6LILfhZ6KqCgag0#P6eM1d#}1)@L{hyqa{3Pgb@5Cx(@ z6o>**APPi*C=dmrKop1qQ6LILfhZ6KqCgag0#P6eM1d#}1)@L{hyqa{3Pgb@5Cx(@ z6o>**APPi*C=dmrKop1qQ6LILfhZ6KqCgag0#P6eM1d#}1)@L{hyqa{3Pgb@5Cx(@ z6o>**APPi*C=dmrKop1qQ6LILfhZ6KqCgag0#P6eM1d#}1)@L{hyqa{3Pgb@5Cx(@ z6o>**APPi*C=dmrKop1qQ6LILfhZ6KqCgag0#P6eM1d#}1)@L{hyqa{3Pgb@5Cx(@ z6o>**APPi*C=dmrKop1qQ6LILfhZ6KqCgag0#P6eM1d#}1)@L{hyqa{3Pgb@5Cx(@ z6o>**APPi*C=dmrKop1qQ6LILfhZ6KqCgag0#P6eM1d#}1)@L{hyqa{3Pgb@5Cx(@ z6o>**APPi*C=dmrKop1qQ6LILfhZ6KqCgag0#P6eM1d#}1)@L{hyqa{3Pgb@5Cx(@ z6o>**APPi*C=dmrKop1qQ6LILfhchERp8Lgr>QX?yZO{P8ox2Ukv@(2owSSd@WnCs zjp-fq7q7+_hvPTqlj$$cz;8_F(5Eq_lHN(^pJyqFo$;FAl^P2jPo1<2UAa zv7N^B2HG3*DYT2f!f#C9q>re561(9y)VJ*PcgDH+!u3Ck?KdVg?rD}~c%pan?F>Oh^nDNC2@EiSn)@QP9F(1Nq8q;yKi_`HNGdc-vZ?T`Hk9a=5xZ?5C zBz}(e#{7D=)0nQMUHln-L&v&U_GNBN`_o74gfHxRo8Csd@b)8V7boKj&coEu_4OmR zU9-!zdoladn9kgSaAO~UWN*U?XKOta9vf}OZ#h3>7z za^7ZfDt=?ac22?MB?Sfc13)`PQ zE?|tH_bt|P@l3@8ZRuCbFcF^znwn9_PNLJisP3Ud*F*}$%*12w2R~M8#DXd zxdvZcg)cbQbHnwS_F_BYmH6wU&Z{^9zcF)-2(^{%IjxRMW0}fjzMu74n1(agbI1FC zkapp@5c=(R8V46?$O2SUN2jp zA#ChAcX;<*L0fmE6YBLnR{P&tQcZG+tPNYLwK)v6@FugrFQH?zOK4Xv^l@3$ES;pPvZ;n z`y_~sy$<~t+Yx8u3;SHnp_cVrqp`qZE0;88;-KiYNack0t{C2H)B_Ssk0S>uSss&*{v*Zi5hZYU?0o$KBZu0J|W4cBDY&u!@=UV<-Xe8Fev z^ZZzReC6{+!}&$mJ|^>gdJ@|d+^4)eT4T4VwZBfkKt!xr08*r7^X2o*&f>}&T&4)T(Mgmi{Gd@yY;dQ?ZV^a2WW5j zIqLDX;;hvp8WWZEx@O2nzCWJ3U(0*M9{7TB$|QEhZ}e-Vt{2~?ojc{0AF37i;Z({p5q(f4r|_c|kF9u{ICs zW9(r~=OVV#=yg@)R?Evny+*F-xz_SyuPtgUY`JpCv*&QU!s8zOHC|UdE8Ad8@*N_o(^@v$LS-K_po}tqparP7W-LVH-`L6{VrXG{ChO*jbU8j^>XE; zhK~*W9L<-qordzvV*i-;Hu^f@HT1o}uzeVE2kpu~eNFgK-uIRj6ZxyNAAVy#h(3*8 zGu61juK_=&`|@5vKfR~dNn9s7=Vd*2_A4g2{{-rMl&xz7!A&H44_$L0I4v0mAJ57qrt_gllSr9Kv@YuNT}BDZ$7 z!xx+2i?5I$MZ#?qxEU%i#N_vLZ8tm*P9LIOD3_K!cg4{Ea@rf-u6k&({Jqyvm*F?O zhVpw^F}3V4{{dWYud$2@f*Xq>lE4>8XGS5T0X1cW7K6H=T!a% z8h@4T(TQQ$RzlJ_@vE=uuF<(KShUVrMdog_){eG=`n{(e`eADM#o{TSk z4qx01V`FwX3V4pwTv6Hi<16%hec7Q#;GXRF=NIwCpW=&8;EPY;i>vX)W%vyruWBB# z>=0W#e=+vfT$9!k7i+bZ=PAu8F4k)e-{$^oQ|MkV`xs+qeBtqdINIl)EZ+9@wA1}9PF?J!yjOTmv^+TEDPmh61AP>~F@2fsH0Dpz-cT%G?8S`#8=k+s zZW`9JDi?~2@Ebl~I^kH->AN>%G^UZ7f-1%3)k_4t*NKeD%q+i}Uaseq2K> z$$dIC^xWKH?b?{$Lm%P&xyJgrXJ0hG(D%KL7(>% zsI6?jrs~>y!irwIpU5`+n!l3Q>!Zf0f*d$E`a1vVZ2K(3_t}rV`iZ0Q#XIoDsrZfI z9z2`RZ46@r?H5+pTG@X7&!qj%#?3J{W}l!~Gz>fZynI zgnv$(YRa;8|Ev$2qno*3h1SOw>+x+L_NU=|HbwjgZ^Ko zy)k`<_cn&Hjq*&{lNj?id_GOFd9mzs&yNp0pDWJU{DBpHj$vm$ zhiwSWNtf09wo99#OKdcMCo9#Ddu3h2Z zW19YoKH~ZKB9S%<+#D5n9@ntA4ZheKU!02H&^%~apJVB@;AgpSxIe`7*Ys=5)Gwm{ zK1$U)#8@%puQ$=Z;d7FTF+XfQU-+4w@&VA+=$+u)0uM`#SWjd6}@ z_~|(MG&D|G>{0Y-c&^m=tE}qaWu4m2T|ZZK&NSy;_A`d+HtaCgvie$DE|z@RbLZLk zjpvcH-}1$ce9~U1*M^?3-8gF-{%RMJtA9${{^zo&d$I(>!y4L=vt ziCkCW<`^fl&l{%#7jiu}X5y3RwIi{^pIsd8!K#16C-ECTH#^MleU3g2&!?Ve`*{CE z`s)714sn(E+~fOO@Ef{!%X+Nt>u(p+e!S7*WyQ^5oNVz{>spK5f%l3%@x_+-LU|JF z&x8!~t{!Jz%X=HcZwq)_{VLlMtPN?+cbLEWG}{rkdcrh`f2X}MXnq*&;(Np{u`}(B z`Cs^~hQ<_&y?{RARDAIceDNs!hUNpx_P+I=qm6a=VpDwaG<@-VeDM@~aR`3HWA%J6 z``=KlS$24))bmA+lLXq#jXocL3T<_*2=Yds|GXSu{5gI@YY}BCft8-1>{VsXVC;rW!j z*lWps@x@c|g&!9=Vs7|2VK|nmu^XDhE<4@ApdOhTYd=dZ*;seWCrm=)m&NWze{oCv zMvwiK1HNmJ&om$B@l(0I?2reocJ?)?o`1+g{W-@cK z4XvLqmbz4Hz{9nD7VQE}rLWJQ=zV22ezDY&v!HLE>pT=+Fh=h+^$BdJG1MT6 z&1L_{*aly0hA(!uK5Ii6Muy-{+^g4D#wU_!*8tJhFsYg=1cdbkN8=9 zVf!|Hn|5&?zPJouJR4uQ4u{a*(0HV*&$|xaCI3DCCN{+vFUJ=<;fp=+#mn#;{+&V3 z^}};b%0<{AKXNVgwY~lD#o_pk`DETB$QwO3_;vd^`ioEDH->qP57OSy_bL{95!-C^ zeW`2wT`PJnt>bv7@n(E+4!*b+UtEJPxTpGh;>B#g;h#IqIWtC5{Xg7~zHhImk9Z)y z*otdaY(l%(IKys^`evfQ{P)}!;;Z=LWB3g{o3mJ(KT#c7cDToh4gEQsFW`&M;5UYG zb&YF<#;RrCzhbUfCQif`J`UH|w(OZJhT8KDv^R$J5#7^ek6ht-u;!{d2jMro{}BIQ zz;?vb@P%rlvfHf~KI?64zv0iF&R?dzF@2kuBkss{#P#^%*O_Y-U!h&F?|nV=vusCv z9ltSuhtFzgd{K57hnQA9-|ow{cQjs$FCK$09*i%ZgfD!Iu@~)Pe|&KqzEGW4_T?+| zELGXQmcBK<<-6%mcrD(G-|*b(*GZofWt`+=t)Zs=EZY&vMP<)kG0Z*IwcgO!u&j@l z{9YUGi&NMS!F8=`XrfK{__oiFet^Go-*zs+7nkD;(`5O*k9r^U?{EDnzSXwF9Lp`} zE55;XCBB3&ZYFUuySb4n@b6s14aLH;{r=`YAJ(n@ioZ36yyLmda_jKkukzkT|Gz9g zPn+(=vW#In%9(ZlG1e8j?-zSM{TuT~=+p3fdFcOY`ZtDoT^b^~lj|ztQL3 zDkdLb?0_$xgD)P5FTPKF5S!E9P`+I(vA@S?YVKKl62H-ZyXz9R_gzD^0(RY5UbF1HV*VPRCHy)-n?8?c$hsEo9vQA}T^D6{ zH+0=$dp%nD((-9v@4bNb%AJj&t~{Rh^E!RitXw%JXXwC(=I-M-x%hgEIw#$r|gg)U(e@? z*Wimo@dfYc?|%oru=qJ`LA&@}eDOqlaX)-<7ku$3{KinT{3H7+7(>jB=}>Z+csstR z*e8CO`mwQ&XIzEm$rgJr`isi7;$5^i=AYpi+Q#sF$SL#@&%_tI;ESi>ix=RFr{fEK ze%W6#9)aH&#t-B`JrAm}%wmtGf5YehhdTWr-rMl`Lp{q=R@+!CeW&#>pv9HNM!Z=qJv^Zwzacm3PIv@f*WDs^#b* zZ(4t!^H-i+^6UrMKf!&i{MhGvPNz-Rd)ZqXx4;)S-7uLw+ej5ycL!o-W9=5?%Et5^ zuG_|ZJ@-^Y*M8agJ;oXM4UKKf_IcLNu|3bZR*xtjE|&b(Yd@RY@j0R)_kEoH!fH?L z%VHT*_jSe-@Eb$SIgWO57=EMA3%-^%@@GeJ4%_P$V)k@b<5%&;I()GyzSs(1JRD!V z0lzVSo6l|d+}d;@xlCM+FFwM11<&bBjoH5^as_?F@8OHH*p5)Wi=A&zer$ML9p=+4 zm-T0Vc4ON**0Rqqo`o;&i!WTmr_$c=&zi}}of_*j`v0l*Xx?{(aU#Ch5?}0zFO@r{ki;BQ`xgt^tFOZ*~Zt6Z{mwJeDM~1QMp-Y98q?&6-Wx(uXU_t zZ64L{i$1PFOZSI7&ONASiTZeuap6$6)^Rpwj;X`gS@rPrJM)_8R&$hGzmV zroZr9c{2UQwfK#mS1ZT9$DpsCY4kC$*9bmurZt?!dQPM+nH!pKTkO_sU)&vEJOE$# z9Oik%1fjfC*7JzPv|iKyC!cTeXBdayhWCrB@x{O3H|Brh{o+&jjXr<*So&VczKQGb z#m{k_G=}GV_TxR`9{A!Z_~J46;zjsEe=qAg{4TG>Bk{#c@f-d75S3TF_IU)a#Vhd} zy?&~`>kRFC*=HC>;y1JoTvpF#E%sPmi!<=WRrn2GM;O)`K24uS|Ng{>X|wb0>w2E+ z{TlG^1kJp6y_`(D;28Sxs0};4d&PVXeHwip;v)Wj;R>IRRSqoMp989U(#8*c4)wP5 z`7Pr&@x?!Ly@{J}$jq*7JPOSJg`6n(F2F4QjqAHH{Uz71I1OLC0lzV>nC;!xt8xhq<-u=p#OlFEn3Uc9#|X8LO|-_Wc#} zw>XBz^v|?6hPuPohIS!dHHP~AUwN;1E53LnzIYP8csjm#8ou!HfW{PM|AWsJzshS- z`Mc5Uc*ZaNIpt&UcQ+`y7xEFLi zVl@U_Y#Y-pW4lZF+xqx>+QnJ;jsE=UHS9C*6Mc^4c={f-qOS>@L|?m)mbvv)X)DfL z;q_y`pXxZST;bP)##v?iJnIMXf7|#X=TzLDcCiJ%(0x-j|DwQ6K!LSeF{j#?e}Vki z(A;X-Vcg4@P|r8?`N+y0e*Y?#WBYR@-{gH?Grox5@HyC_KD~rK!gA#hOSotIGX&g| zv$zOf@ZM#urtH}(hTKP-Rm>e?#Tm3WhB>!Kvv0!Vz+GrxAGf1j_}twiXcy1KZ}?i6 z;`Czw8~fAnxUF%@Vt>GP8uNGP-X4*b-mpSj*nqkd|fdWGFY5wH(^VGK^`a!;C%g8~r;vhtjsQ@dEtDd^q}ugYg@~ zxqdDE#hdWO+wjFZ@Eb#I^4+^nHr)P<(NJeDNTB z@pOD~SA6jTeDNrJu|2*x3BRFwWwC$FzBPupxn%3auD z?UH<{+&Sddm+&6(hxlR#{6?RftZkpTVz_=TVEYZtvo5yQ3x%KGi|H>e$8QYv+NWt3 zoVPyi{0n?>5q@L1&MkKjYxifeKjI4f#!Op>{p~rGzxR7g<4~+>`o-#Zn9Ay&D68we z?30b1@x^oTg|9~>Oh8}mo`tcHIFbJ#cju4fc_jHy`jffYRl)O}A(TQ9_rzBYLZzBnAe zq1tY-8t0Z(-YffC#+LZvvG_u5WuIfr_zkbkeI9S9FTTLOHT0Zm+4(bu#cK6ktZVzP ze6IKbaZT7UuCewg2K~?Fy<#tXu`9lKGQRNRy)W(J_W0tC_~I`3;y(C7+rtiX(XXLT z!@pzb=X|KOkEFj)oG$x#V_$s1wcm5h8}J*RH+yd3degYFZ2y1WK0*73R`lnuucnQ8 z*AC}W=XDtGeUWW7bgz`veOcDm6Z=^5!?a(wVweX$mv-?Md~qCpL-Q+T``GZI_JK*?eqG6rX#`D9tLSqxG&xQ7R!PnC6 z=k6e0H>Q8!bA{H3%07?w#=6_`oO7ec(R2B`v@9zv%bsNHi7!+um;D9fmiXch_(HW~ z*}ECPhA;NP7u(@Cyrvs!NsrI3roXV-)31Rc|5nZu+z)+DRpY6$j2S!U;R_#=T+4eK zeU60det7oA&(X>BZwz_X&%56vm(yQ-1YfWZ8c+6GmTPJ{)X;TZR@ZgeZH(W+7w^Ou z$KW@HwT$y=Z**-+C&q(f*uJ0ljXp|8fS;BEdR}9(pXXX_3^B0fnI+#G$8|2Q#&693 z%6l7nUUISDrjPgmzMyZfS^gGZd=bCl&q->{t*riD*5iqCY1tl=DmI;J5WD+x8i%p1 zhCh=q#6yo2Thd=V4PX2=zStCB?1e9O!55Fh7mvjk+vAI4@f*YbTtK_{Cw%c2_(Jg; zJLJSOc-@!|p})8uUszo7HNJKBJFY{W@^;?a@On*Sjm7G7%6g1dU0C)O#&6*ZjU&oF z$&lVnaVqbjW`|sm{v*^?Cbq8M;?(5+nq_1*RS#qJ! zJy+KAcwdX#gyZo1dnK>MC-57(7t79epsnqfcMqb25Dm>Js) zMqi`bpKTnmVwiuU?JLvi=5kjJ-moM!fXAP(Jl_c7aV*4ZqLd14bP9m znB-DEt1;xSKcl@d%!NLLZ3-Jd^m&>Kc^~7W4*5=FM9)(`R`mJR;r#wFpC#^%FHXR3 z409LUb92Mzb@iKki`Cez_OZsM!gcU5@Wu3L=y#+RoAt-!rkjEST$_C!@-1AeqKzwS zd^xP4e3Cv5Ut65NLc92P{DyL1+3D6R^qlNs+wZc}@3TzQDPnlWQuSro|7zIS)#H30 zs}fIoJgeBIIF0S!39A@)*a|(vSazsc9?Wa8E57(ud~siVu|2+cD86_czVPumbOnk8pUsxU)YRPBQM;wUXP)%9Z>!bc`$a86b zg|QdD*bl#7r%?&@Hu(qtHt{Mf0+K_GW7?1cL>T(|FL3?oY%4cOJW_r#nRy!+I52GXV*3QTMf*$Q8;)bTC$V)`_EPGGM5(eQiCzuP$cMop_zm-BTh+Z4KYvHlE? z?}OG8$_~HZ?&C4?mByFD`Sp76EIvbAjo;8*>0&QqJHp;Od@s_*w91oZecuw8qrgo; z0k0kWxy0c+i8dEB^!Y39kw$;M;~!|VdT<@zkrNZocZiv~MyydYc77gT*nI5tE$$!j zH~8W&@Wn;=g1n+<28R3nFxtfn@x>$XMb!`MV;$|{9{57Bv#hpPc5}n(#J=9OH-A6S zu(`)!zV2;k+R(h$V$bHiLdT7r|8|AGld;%m(7)j^b2z6T;l1MR_@d&kcniKb24B1t zztQ72alCJ%w&lli6#FB##}_rW5Rbn{cqH>{l8NPT9zR>wE zd+!af9qnSq7l+|DGD*j`^!XVyH9(B~|6Yx)VlW?xRb z@cH=*X&3BQ&uum~)^l5Bhur;cUW+w+aS49IYe`>=9OhuJqQCeweq$I%*|mC8h?Cie zjZ*>5l`i)0xCh0T@x^EG8-CCB^}xU88vo}N>uyC(Z0NV^%C3z~zpTigX;Wv~^%TAv(K91kexm_&Rm#!_%XDqhmuF7Ha`;7PC3pBgVTr7W^h3%*6*RsCO;`Nt*$Dxn?x1;|y#tZPpKKNp1 zeDO#4;>GylKKSCk_`>7-uC$9o@x@X24PWCM_Ww-!i1*@))A7Z-@f&(xW3k`nd^P&_ z-T#m_#kR73PPIL(e=kPsqGf&kaagN;BYzVo;y31#*jA(GSaR)9ODf-%t-3`Vi!Tnx z7Z1P}_rn)k;ESKd7n|UVKfo8tw`HGbY=yr*cB5S!hA&DNaRPqBpY`qa;${5(O5>CG z!rQ+zG0?5?#h&=0wktl0-|%O#dLAY>`ML0VUvu`0{Ve^2#z$q}Zk&eS7|!YW zw2Q0o8+zV$vDa}O2y(gddLMt)^^kv2;HRX3eq*(4{~pG-@vmQ@+Oh2PIpgo}8~$vn z{-1}kYrnEW^Q?>2dLy>ar&i9iXLu&&S3CdCXNmugFa8|A;c;NN#}#YKZewhQFJ6i- z_Qe<5;tQ`Y9z?si6Ta~6YksTj4#unT8~!~dye4NBnr_3SS@eXDT$;wb(kB zjo}$iV%03x@EfXA%lh+6!<^gEY_l=cP_Lz3xaM!6U7U^I&~rv*hhrzlYL2qMuin4E zu{FNXc_^#%P}cuX%)9Ygtiu<(;|uM3SzQZdA8x!5zcJ|fCiYpJgfIMjUB-Kba!%PV z8Q0+pj`(_h>NUpxt4?13*{hA$4qZ)m^D`WSww?}%fX`_gkd zi#?Y1Mjxl2PusaGTq_?lc+FVfyA!@f=DEq^m5=RbVxk!4uJ`76#L@VTzHV9hj(j3~ z{!nvli+u;%7ak{P-YXu1FYbpgejZ=w{FHs7p>tA}?RPx>KZJI%9lqEPzv0j4c z`=4CD|G2_`LqNalx!C_fpGKeiWDay4bEIPWb#i56uC+$-|M9tvb+@2@WBw)jG}i2S z*Xe)pS>h}B4ULz}>Uo^9{W;JhY2U+mCjR>HTF?LfeEN&Zqv8Sh;wkuIFZ_l-Gdbkt z%7qQ(x5XaMemDBsBe`LsP4rw*Ipa9v-S`cS{TKVUyjNU-zdkB1H~RC5XR$rzst2MEGH_bEtdD_{S$dj%*?NLs15u7rS%`& zn~nb64r)bTb6lg|6f-$n_;)>g+&j!YdK^B0{TDmni!Jem+R8rGP(CcXsqrLyp>@Tw zPcuAz`WV>medWo;9>;qdUT66ntnyV^)nsLTe${i$^cng!`h4nDV}I2di+wZw#q05f z$KhjWZ+MO#expY3`(bN&&1?Mrnf2N4SmAMX@M{dz==)fowUeQISoT)N6Y<5i_~H-o zh4Mq$dm4|$Zwxig$+R~HO*~(m$3BZI@f$v7>EBhlhQF_^m_EVw#e?z1OYsHcqrL`x z1@CQ4*U~O7#}}``7dmdN=e6l|^l1#|>rC23<+Fy5uZFpZx6`NLV?xdEE|%l%_w)Pl zgqGat;lN)wUu2Xhl=TcbKN#({a=yw+haC&s@zz1=9yJd&#H=E z3sMs*2QHQzy4Fy>Ej#g@k zr{ar4@r8Ys*RVs(wEa}QSXQ~Qtm?C}dd{V+&)p5R+iCnwoR8la=Iay}u|rKkY}43X zd9Umc|Bqll8bh4)W8v>}!}o1?7SZ#p&C&UIKy^u3pO+gnv3%t7zuJuTHXe8sLernJvhV@i&4Xz-m&ac!)r#5y~B46 zh*f>Np5rPvuZLlu`J7%4P#5dD6rWe@^-a||UQ-iud;Im7Nj}jrdt9B-S-9pCI&@x# zFLeIPZf^Ma=jpTyZ+|B3;$HaT_wdC&_~KpoLf2qfpDWNft}Nphq1;%u*Lm0CU%g`f z8pqz~bCY$A{4+UD_;vU;`ipnsH~RNl9>II<|Gyq`netLuI~HBni>0R1yoTm<%MNqk zZ{ht7&)v$6i?w{MIrXyoZQ8QKwY|{>>Kyn_MFE~Mof@;&2FvQZ6lJYWobbg=9_z3T zJ-4dumF@GX_1q2H6?*Qbtnzc&nH((ob3^~h{qmg^{ygo5o_QOduT%Uh`#3}Kuj~_y z7vhV@;EOxsi`U>chPuY@cgtVCUgqHe$&u04# zjd9BMu>)fWjd99)uI$%x<^3yG%v>+xrxGLcp&P9N^RJSR8WU@ULf>C3JKbu_x<}0gba~A8rpYyL=^Nls~ZpY_uZ5~zYlV$z6pt<6EW2$>k?29j+k1rmMFCK|6 z9*i&k5MMk6U+ji2cEA_}O*-m_7|3hxd7-nm>A_VRhD!gWf`)hPGYS z$M8ceB9_i#4Zor1BFheQgSMZ;aUDdzMxRSQls1mN!+G$SD1SPf{c8+)@Ce!)bLB|! zW_-c1&Z1(gI32$sJr-;8t}}k;So}tx8+Zwy?>X^)ycT!I7r%oqeg$9bj4zb)E0$L- z7dnozr>y8}YwxG+f))L{t?#An(iPr+_&&&k*avYK`A+;3eq*llB>X(SfcG}E7Fu=~ zd%T|4jedUWJe_LH_>G~q<(NJH$sfi`C)(%PoQXfT)7LrAq;LL3fg4eQnR!sLjyx%5 zzSA#!J+aTB*4kp#d%~Z+u{Fn@1IdTVjf?fV^=D6UxsH3ub@w3uDsY#O|w{^Ppx<)-iR-B99WI(7ppv0w(>+{vTY7y z1Dg*VY7ozHrst5at$nCFG*&8m&I;w~vi(`D1Mn?J=sC^BZpPollkmme@x_k#;t+gs zJbuH^m*=?Q8dlE74z=4wXechhZ}ji}{&)HxXk155Z1^~Ba!p=C|Axjpi}kU@>-a2j zBz~ih6L+JH;}iY5sO!VdwZ=Y+)wP4|_eY(>lMEjxF!q@m`aPkt`4ffKW`A4pQ@}%g$>+=uXL!Vut`)09T#}Ti4 z4tfT@(D=ISLk+Dfmi0LKR9*|>#MJ0x@EVI-F3`MM+2MX~^~#brsh^Y^`aahF?ru~a z*qCcujUg`_N4p^IDee#Xg}>`rpZP=dY3Mr~Wz|+z|4&F+<+LBpcOLh8>?~b89=?j# zjk)4rW7s}9MD>G?b+PEFI&c_oyp8@1{e7`E9?)~6i#?m|i1YCU$JY1bD15OUzIY+N zcqYDh3ck2AzIYkFI0C<+TB@wq@_k>}C;c}0Vn4uZ@!{3qhV|krX>a&<>W62Lp3LV7 zpUd@{k$lwGM32L7c&;424`t_fI4-+ZhyFDW((wDGk6U-;IM`c{)}yk z8#6fOvo?AK=HDcLHP-Pxe&PAi*ARVOa>#eohwB>Czi~Ya)qiFGH|@gaQTy-W{5$u@ zKd$iqZ^Hj?#~~(rPW)rGFE+&&55pIa#urb(7oMl~roA!bI~y~5&EoM~b;DxG4;ov~ z#7^OBj{W(LedueofO2Em;aL>M`9nU?YjTKkq&}yto|jxKV+{RPnC4l_4)sNg@l)Bi z8XhNK&#?&0<9$xF<`Q|Y@bl&Qx1LY!ya!)c?J(?{#rB~tJC*k~`ur=knAgrd|5P42 z$EdMRqd&v7E!$J=Sax$`3w-e>_>Hbd>GGx(Jtv<>Up}{U1%AVy+w{CS)!3ymeD8yE zq5RUnpR^@?Pchzs-x#hXzfP2wu)0ncTX|j7bt%Yg%5%dQ$**(YH}di%UV+~j>PPZ( zAMe#UYxH@GGkM>~jg3BHM}Qkuf!`)?HP+pc9M@RmJN;tD7wecu6>Ij~ss6vmvi@7; z!*i$P$hpz;WaZ267+=C~%-3v0#-N2nI5@xRA^=83dstB!&r2Ooqn|hW3_0jBUNqmJP=m3F`uHI2g0Y0I%f7DueA@gPusqfGtF9^A2i5dteO^MjYq5LtH?beSP+M6a zNBOvgc8$;cS!Ev=X&$9)zmIE7W!LufG5#jdra#MjqXx%(*v78F{5#|{MO&J+9}*{0*-A#`I0vh2=s04*Ft0LmzP!enWF?i#?caHu`Uw z>`C8kjNiZ)x5XC^!*A$5E<4m@(ZS*`-ImhCd=fsJ6 zLwLK#lcC-`mi~e~@?17NQ}hbMQqoj`kI zrXJ{cEUj4C=y~{b`j&Q$o*OGizITQ4#$wz2-11!sa-g37oIZ>%?EJb8L)_kn{^BY4 z;#v6OIQ+&?GqS%uuU~*K-iI$P#TOsP7s?6PJ~lavzdzU51z*@TIm~lOH&jzD*47#QSsFdZT6WFw-!u1T)Q9hA{1x|}_%r;*@PDd$&G=I8 z7qL6Ocsjng6TWyjzIXwC!{^z&1{v0U&SifZ{T}6BRoi0U!E4dxhiaavuk%!%vG_2= zVa-2bhxHv|(Ij4jFQ{Alyr;)8Z+Blgq3j0@%ZWW-)m)b6M9=%Czn;q|t6W`nh_TxD zimBv1(enm5#Phq42ZsDxxv()jGiiBtI4_nTeQe{;!}MH4PMXhKp>^iP?#1Vdr{N1- zYh{ly4#O93!f(uVtq32Ve3U*7eHXuMpMO0E|H;M!@P&Ww8)+B2;R`gM#0mI~VP4eo z)Q|^#{P|km+Zfg;UrD>ry;#=9NWPVv~{`{^-?+O&U9;1GOqI(}oQABn+w{;z9{)}G^rF+6#`uUmQU@ECg}?-%6A zzAfT$&x6VpWlbN?znYU?Y~|X9*4D~;pMKn>LFLzm*ZxB-No_R?i?{xp33`Tiv2UY) zW8(Nao8vcp--i6o`BGix`MrOB?Z-7MdR<#J?#adr@WtKn8=jkVeU%;NPY&X>*au%! zKcSpi_5kBxe6b6@*a2U>8o#0QTz0r0?ON^6Xm3v+%ZXj5(#$mP*Hm3wXwsoZ*Ba%< z9!=^ad^g$~)4j-*jhSb7#8l6`HfH8og`U$XJAZ*|TUe|fe)H;l z?w^L{{}yXGahR|3-0@=GE1rQbG~O?(`@XE_xKFWfjsE}deUd)P)s;soHw)^oz8++L zujk&%dx_Z{#iX*TMap`vtQ;Wr#cvG9tG}1ESURj5zL$M#cn;G45wTdyWt!hwEayeF z%&=ysx~D8Pim1E%@h1F+=Ap~Z#~OCt{aAdg;x(_=oA^3v* z>TAqL;Wvgng@(PJ_uTh-+8aY|s@lHMpU0{BQmw(3wQF+deBUfPU9@LMGb>ztob>zCn8o5zStVwn(Kd!akOfBo*0nz`P zRMzV<|NWLB=e(bLR-BG6EUqd}m-S}=`ggT=rrq*UpZl!Z=zN15*XJBRj4!AswXgFh z*@uSD%MCe{{MX0yJ|2E2?TtQHO3WDI>OQ;{e}doWHCg2}>aPxQQTf1gy|2f)uYE5& zdF|ja>d*L_xEx=ci7zVmH$0aqPM1~QE8E8iRpWVWMGWjUnCauSn7_B@go>A^86H19 zH+kJbALYCLZ0vj3#)T`qCLQ8`ohR{L{Dz*dT&$f7)i-5_Inv8`-O%?J7fVi6P1t{v z;C}Rd$qHRNWrwkcjV1a%*1q~V^_;RFe{1;sY9F(dey=quM~eON1^e8uT^}QnEA>2p zj%l%Pq+O8bHP_)|o_^od7;;0o)yEPWdA!cy-?$1W2bP`hZQK)I+!w#0IoGn9b1m!h zt`pyl?0l8$UVI3@G0Z!CfP1IWpINw+zGoXY{v5{4eotBK)mXl)wq17E=2^TJAHi=7 zwe1zO3yXC z3%k!3*8G*#gTwJM@2zK(wC%E96ZL)P80M2!^!=^9e*VS{kNLEXT!Eeg$%Sj=Na1;N+Jt;3ehKq$tSEiDA~y`BN>d4_!B`NQ|Y*KOyDp~7OL$IKyCznT8RbdcVQ^>}?E{Tr^8 z&iP_(JADqX+AcKSg)cU6y?IUA$5V`}X0+|tH831w>DBN$RPzLj)jUe+%|3Me`q6l* z^5}0mg(HS4o@2ZshSg zhkxTLuQu}XSK~K& zE+wz_cwBMWo+0sCMsa$vXVb5te6m<_Tz`f`IkPOEFD7E4@Hp0=7dV-}I|uPvY=5 z&dOKbe-HLe*nVmqV6nRP%kFKE?=)r|a_;`L3qG%ZHs^h64A%_v`g7yPjgI-Wja`9t z)P-X0LFB=P=2OeAyU&X00p!8Px_i*xnEBpE=LcNR;!^xZuSKeEd*6zw;%{U4{Sf-} zIX=$?9Ej#EBmTL>JdFc<45JuXc32~8vGa%9hdw^W;2deKOF5+MFh~7vUN?rk z$$s`4*sq`C*r$e%(|rC`+bcWFF&l5-DfE2nV*UTd`YP9Rqd))hLE2iLTo zj~y+`pD)W_s_n`SI@dX9XzZ|9-+$Li@g6&@3!lbz zgzp2_g{}iXN1j79&t2BXGwy3#R@Uo!<^QsZ@r(6q`|Q#K&I9oq6IRUkBX2ge_E>g}no;!MTm3h#>yNGQ`73`;W_Tv#{oFh2gZSFV z;uh2Tdd}PV9AdKQ@vq{b)h5F;Kgz4v*%)e;8pk(=IO8$dV#qL_S3D?dabvFd*zmaL z-^KHN9_H)NMzz@V1-9E5=1ZSUySNR$P+M7IUFSLY;wkvz`{c)l$E)dE^bw3}`rP<6 z_znNPmp(SBF-p~e!fPU8xAgTm@8gOd%PXdvw(}8eQ?z>ShsQJ13A{%rH)7|SM-W_B zeZHOe-D9`UGuS@s9F`sOV_l1lVGQQi+q>w~@c9kjrq3G>8rHa>G0elWUN|-SG1akE zUTpOGuX2%H16@CK^!A?j_MyFWZ_HSs`QXJKNFPz#YH0nitY6!`E-$^THuO0V-P2`< z_ip6zI){JbDxlw3Ejv7`W8di*p2Oky1lBeD|A?IbhHJes%%h%9`}#PK_Qo)uc@g)6 z;C(&6o`v5S>dLBN1Tk27ZWuFrJg*v{p?J1fpZnsT?J=&^E>**Loj81l@eulpiUq>s zxyMi9mtt%GzZw6O?NdjH>67#k@567*-=R-KYdeem8hK6pF8#%p_+lG;@qB#ooA}~q z@P)-*{a)Z=KSm$%5&XuGA8q`v_`O)uzd!eJFvrwld0EZREp|6viv#e*QTT$q(d$ps zR(0oc?rhBCdBLxNVSk9riqU=Bm7gqE`W)cIIG|(K&#-QI4(}I!J@|WR@A;#&5O!R? zM(MhFz2(Q=*ZNrV(=%d=J(AarAwSN1uJAQPu7{y^ZLjxYXwxEmrtAe2Bxk&#*o|AAak@?)|>)`kXTi;zu8^?};z= z!xzMN#nyVpUHE6IZYbMp8fu$i9rnHat>hu|y5V+Z|->-}0e8NV?fNlh^maDaG@lO1PV)t{ZU{tc}& zEY|P4Gw36Hykuj}VJ_t|`inLEMjtO<#J=QT6u2=JAoljW^-=uB{B^ER@iXK^@h#fL z7xBgC@WloAg1V>Y0O~xgU1>e7Y#&qC*!o>7hI_~EuMLfpeQZ2ctQ0nmRZLwhu~2h% z!?^fF_MtI6r}sSii&x`<58~tajo~*6?#=dv<+ABk zw2K$ui*@+_hrKrs+U>f^J5L%C2u+xh4p2bR9jG)(h=G8C7=zt5#$a2<#-nW6);!Pi ztfP6b=2_NY4OjPGNmtU#F z_xHqx(w5Me=Qq@MZzG5PQ{!jx#rNTh*Wrtw#22UIi|@u4FT)qlp^xG-Y!{4+MO=z6 zZpBZ$XK&Au`_X!P<>ScBp;f|kv-OhkK1^85E5}C;Kg*B~guQCRdLGx1w6SzC+lAFg zs+GdJp0?Z`&m+;e9`+uNnMg~Awf$@U#aLjB2-i)2Pp7r{u%dzL3_1eYqk149jr}^`K!Do3Q`TI0ZlPf3vRYk*G`TnR?E5ebo30 z+xjVTak^}MGTtMqZAy+692 z?MdqypXWG9`y0lOvORGvZaHBK$4r*n**{U<8kQap6@Wl_{i=V_7x{t80HF#D_;?GpiIc(E+`h4%x%D0@a=O1>7K27-Z zwR~H>Z{%v?EJ`cT4DV%H&qcm1O}z&{8Q*itbLe=(+SpSMG^}ZvG%c*g@373HS`)bw zKXHBZTEaiuY7f6=X*;&PA3TPi#fkPi)qP>lH1zz#`W%rih4nFfA+btoj59X8zg~IP zLN)BLe(xUh8##xd#!`*a^q1OJeexd7jq_wP0$$TTz&K3w?{kN3Iu&)EpfA+F^||~$ zV>@ZzExDh4gv|>-W}8QrdzDMVYCSA$<@f{fuQGgIAIf%d6uvkfU%V4vs22?TGUFBa z;$8S+FMOf-jcwO?F#9CR8N;5>e&Sht@eIEBB7U;CzDW1N9&NkKvFeHH zo#gx2_H)Mf;|t$^Z?=o~;|t5Tu9d2-hTX=!B&~nk&i16OIb6r_6Mgq&Sn4Kep7eQG zwo6x=G5joC?=;@Sp0lCVkgiSm(q^r*4jXl(h`A?D$4^?X?Z+fu(owA+4@<18 zAGSEF79RDmjfa`AX9V_S1lA8RZpF3u;xT+d9#DR-x<2y5)(!37RQVkH3wk2uP0wkn zL&JJa+tzA)Ubyz5E!8I+hc8aS7upu~MB^}g@h*HJoecX=jJM;9Bk@J#nxw5ADQAR@ zdlTeH_2Cs`Vy&7Ytk)Iwx%m8d8T;TTo{uYUk-sV*$2o7<(DI?j$92%RAIoROQTXCb z_~Kjf#bx*+?k$m~4ZDNu6ZhdK%SYH>JdB_Cnwx5|u!?0^&&gGH#2C41L)9JBAEiZT zl5{()Z{Mx=X+HB-{Y{}#3j&Ry4G8d@6e8WR2)hCeSK=jXDI zNbMRL7WJi&*2S37J%vSgg`X?ts;IFLW5SO^zp384>ax)B%Xfp{+coTy`1N=^_hfFI z=b8~{c}8_~*!wr^?wx{a_OMl(Kf)NN=M-(NHGY?@F(;FzU&^mxJ-_ijM{AV6-RE!3 zd*=VjXN7OC8a!(8Lyi6L#cS}zYw^WT;EUt%6V(o3TTZaPrpuS5ZF{mWM0vl7E$Nh9!4ty{zRQdv{j(KD5o(Ha(A>%v5EKhb3MWJ85Rvr#5IDjdhGaVS7?*ma)I-RC{;!vs^=>?{*FQB%ew2P9UtmS8dk3jO z=Q!eU{9Umx+r^3aLU{t~>u;6gBi~0ZNS4ThiT=JbZ2KPXW9*;!d)3zK`F&l>{z<9j6eEL;C;n(prqeINBn!*YL>_tD?#9ZVBjFYIfBroXCv!g|lU zM7+dj@I`39_#=GrEWUUpzIX?|coaXW|F_IP+ps5L|)594<>HF z7sS1u0ry_tXWEJ{vY(E=+UvlIam3p+rPfi-XMfXZY1FV9zhTcbeC(gVb`i%C{#n<@ zv)D(tele#@+w6Lpj@ue<>peNA`hUOo=I_beIL|dBu#NGYtamd$6YmY(uX!KypIlm4 z&0p_)A_sYHagF2iOVZZIF6Nj?(>2T6-q$qUp_lN!qI{pTx3G_}`CFPv4r^;c%7s|} z4u;kRhkcsgCI0Ul=w0rxu3!3_iLl?v`NTiQ7sNohqw;Iy*?TtVxrJ>S%{^2e_FNkG zCU#dBk*62ISkRhdt%*jAeftBPD{)=cI^3}6NYxYmd`(~U%){!w!`8b&uD9v(x%@2t z1Aemn?|eSdbq$Lyt9M<9NkQxsNB!N>u>XqvlhWJJU5}g9c-6<-cnKY?`;L26?Bn@R zw+Qu@!$y3CYp$<{T){rV;-z{pY}J+L;U8g~iZ6&?^>V&0Ve6>gOZqb{4U8CgY^`=( z*e;}d!}^%ieT21ZXk&n0S^7E?_Kd(Djljnlm%{U2=!1uDh;5enT?>=Z?)U&-3cN!n#IijW+E1Ya6^L^7?}Jb|CIp89e2PdsPV_el@pb6%@k9$Tp~MCH-Qr`%sb?ya6NdfLSMvh^;ui~I2t z^;Kb8zpwkoN>7F^Z-2pl`Z=^AY4!ird|n)jFOI_(C*g|~U%U-pyahj5|B!Pf(#BzV zK8x_Y{o`yGug4b;;V1qsxQ#LHPwOUaZ1`O8F=J!9`rR!Y!{%E1yFVKp&8Et-5Ef94<=(LD=n6%mh&5b%`Z~-={&+&QhXZ`qEI|zQuDu%M0{yNm>r~wNTTSZb}x`v>ETgYd;6_~K3Y;&0)LZ^lowP9L_`Vs~;4 z_AI;)s(&}=XW0KojMMQGUmvKyt@#4Kr>+rgAM~+mFMAfQJ4>vYCT(8WJlb8Xc2`@r zp6gPMpR{_?$HV2sMNmhTRxzKep5gbUg%{zAd+?JsCRvB6H6Zj>*V^ty$H3OUd`|j2 ztkp2eH-D+$+=IDso@z$GHAQnPY}JpdBhyw6CI_tBHmL3n+wz9ziW~Udt}s1q$9azZ zlll$|Ij{Y@J)h%eVcOT$Ieq;T-K&33&wPImwfr9Y2zpfMSzFsA|0)-+Xoyg6F|73h zUWc^fL{1mf4OK&I!5752dN%K0LWhLa0InCR&BvOXuTgL1m`U}Kk*BSPTG0IB6Zj%@ zH1RRu&wY(?kkqxueef&_t@DNb9^;kx;@k1X$61dS-^h0HgZSdr_`>?=-Tp1i|H%I0 zJ@`qjoiKh?i-oNiL@d0X@v-M|HmzxKw&&<|MQJR0yE5xah~`wYt0W0Z0n!Ve+uT=BA&%hv}P7o|4z@af6UL~ zFYv{a_`&R48E}XeEom8F+|}xKKMr|9>%#utt@VJ9am>Wm7+byy%@el2v@vX3AAXph#r61tK2o*5a%9-n zN4Rc1#P1U2xv;H>^Sj)8%daE@?Fb8c|y7>$i`yeHXNK%QtdN z@i+0stMJA5i|@u4r{Rkq#}{wK7q7q&(v@f>R4<0w_C24KbDbtIU=UdpEZM~%TXgWVuJ!058MvNC~CZX{d*5_|& z9hz778u{bH8`|2`F>Duy;V0?~hvmLXTR+G?g8Pyd&xAcAuty`HS~9ePv0W%c7GNZ!2kQU%$;hVh6skKCXQ) z!g?#u-`?LfO?;MP3i4hZ%X`%a*`BnyA37%<#}_x_i^x;LwcD?gW9!{sTMNC1^9sc> ztoMwZzjW80%i?tr_p%B!QhM2PxaIshXPleA^=F<( z>Ej*vLh;77u}4g+F1Zz7+<-68vQ=mtVYOx%R)2F7*6XOYrfTD%T{Cf&Mry5eSnKsd zUxjMtuuEvII2KX#hRa^S{ ziF9vRuLFJFF&E-{ZGqRBrD>sU|J+c`j;;THNc{dcjDJfm6|ZA^QaxE{_Vx|Zmax8N zTeUy+yn3=>BabJ`b9^Sz-z;Fahb^QMCZfMWwKX9BR&QW{_Ul5b(dESIC{wBUy@Ws#Ji+%7#_RUK?=U+F_N&OpA z{@$T9FygLy4O_Yw&-qq#V@H)ga$j5_^vC_}b(esVaNI|Vtb5*(;mU&VzUutcf z@uaa;zmI*=}SP8G%{{-O6~k{;~Cp z%x%r{_O3*^JgnzQpKH-`CYonqeO<2Uo%N6H->~`&=SV7lkVk6G?5+6kHqZsVv#6XM zb-m4Bzh7Sq^0m-5H^0Q^llI-n=eQpcaTKl*kMmh!`LKGdo%|jhF7Cun{Mw{%VcUJ( z!v0CyKYEFzt$}l{(tUe&-oGr~2YEg;?QS~dT5tE_I=J$DMH@?KjlOraeuaIK`u{wC z2fx3cS}18c`>)wQY2UrF>#X(BvpLSIjBm#m--<832VcAlKdD|nYL(9$eqYpBRSz+z zsup|#UwC{TjnWVsSUVAa;u5@-XL3ynbl8BJ#5E{Fxd! zo{{Al?*Uuh<9X}2O$Vt#)}(q_>YtWlLz|N}W@5jjy{l4PfUR}q*!IZ{6`P2Y>)mg# zk2n*36t87_qIXuqa?Gk-p2JV-dB$`7$Hq_Ni=V?6--0i`3tya%FS1^Xx~*v?wT`}z z>%C}dox|_Zu2XgHurp)N2<*WKXuO9Vxs`b~?8Vr`=TTe3 zK`U#$Px<}@R`Yn+YdNN%x2koh{~JG%j)krFKR<*2`{YLPZhjWW;)@IL6JP(--(G}m ze=oKlKZ{?$7vGDY)cwW1{<{rJ)C7sXyE-g&b!o}d_=$9HSoFO9W@IP(2-Etu?s^sb z3+0=z@ywDsXVmrN$>LUgaWcN}Yw*0veX7=}o+k9&^11hYtq0%6enR(zZTC)Hp}tu0 z8y0P-8Yn)KtY7!@izrf?D2=Eixd83FZh!?Mo53f4qw z+}pU-TpyOat2t9SIJS9jbtOM1t$zL}+mq$bnG1qkTz%I+BS#5+2OnFxha6P3XUw_x z8pq-b@<9DNS_j~ZU&I&Bb1v~euszYghaJ|xZ`rQlaekLnUwAk7_w0t&PuV@TK5;wy zC#4nWhVRpQpKsy3iE@9~ww5Jr4EwW&)e`Ohd1TLhLEA;^W&D_1*+-b>E+1oi;`M`T z#1dLAe1EjDYKG6?C(EC)zj&7CCBA|$&SW2RVyw*nW(4+N z1ls&UW3&dRzGPVHNv*ZDwHNB#%KO$AxIXG{l*4KrbXf9X{l7i_J-(oSQO~wqO^y=( z4}PL`!LYm4$2aji@jm>dt?m2-+r_mUUu0i6`kFswAF%^ppndu-tNyK>u<8rL>OO`I zy-YlRN>{^rY`u3=FE#8roI~i^!=7UJ_Ji0iz5`$Q{x;3uu$JfG`JTAz41`zNK7(o0#Z!Rp^0KqIB4 zVRawFYHWs`|IG;O!3eZk@fyZoQuSceh2*f}!}y6bGpx3S^`8D=S^xea- z^&aCQeAVw^Z!^A)-wE}9VgJ7I4fx_e^I4&7VV`EZcrQOEA7@QZEWgS2q}BYt!Tlsn z<3i_>)+?nBgdTX_YwO9>4C=Z3v);Rn+5)W_mU>$2s`dYB-iu>c|GWGa_bA@U?~+>2 zdw^}0dzIV5`abJ}{46|gdtHPsmS#MKpVWH5qnyiY4|-+kt80Yb8HUvu3G3r${WE?} z+L(Da_bdG0f#1P)@kKOHd>LPSJ^P6N9$)Ol7yp!N5~^sutvP`rUFn#}U`#C;tAi&Fgd7Cs|`2Chc7Vnze`v@Du&puEV+}+A&>! zo8Cq4NNT;G`pd7a^`tj(-o)>vY2_Zwjq_A90xh>NmTL{f$EvTFnm(3hM($^h7q%8u zwJkNS_fy_qtbf7p65oG0kh~)3jW8(Mw*Vs?kwfXxg z&)ZEmm5;-cUkkgJ>aBNhPaiYx!xtaLPull_xL4_Mt=F<9srwG=&!XP-{T|!Dw4v4m zeuB?l#ieJS~{M~eYFYI}K@3qIx{G50_sWtUs zx#zYfn?L({jx=Xj)4O^f5;}L3aTdO?XV=ydfo zZ(Q5O8``~G&;E(83%Q=oj6EZ;CnK;%pCDMj(ECNtQBBv#?MZk{jjd5kMnb~evb1d%YWuNll2z1i_hbW zNAQK|p!av)D|y`fdxkAm7M~V3*19W4_&&$6T|9#?UV$$b?osIdZCGhV*q>$pL^)|# z*DtSg%x`&*v7?^TwYzD-5b6=R7!Zoz5ucC?dv(?*v zUTJAqfB(`nG}c&?ru%y`InHy<2-y79+Rw1w5BeG!eMj|;=%O^T`lRSfZrkAVqH;#$ z4m79uKkvX)nfQX-vLx$&;`$S z+j6hfMaxeU2cbSPtn@JKo7hMEJACmo99O6|3H!foXy3~Uy-8eC{9T)Gcde{?fx1Du zIxO|ln)n#gxE}TcoHucOsks~TnDuSp=k@37^V-L7(|6ZIujNcz+c>#`^9nRnJ*4Yn zI~V)bvz!@wMqp1y!0UgnMLq9PCvCEU$T-9 zMXjwKNPgN$&JrKT7yk>s_<8md*W(M*g5_UuF7YS$BKi&CIXvzm(fhQp>Tia9h@TVh zDWsEO+d8(z+-r5$DQV-dXYqM)D!%wKzDNxpTJGzspCS(80(|ke`K+*7UH=Bd_?x~b zc^1NZnJf9MupH=mSK}qd4)H69lipD(uEYM9=%cM~OLK;`d)L2FH*CDKOzQs|`8KZo zPU0Yb7+-uFzBmwHd)8Bi`%qg}oniB?;!WJw z^9<=sXo%H*^&Ra4*nZ-MH9ntsU03fjdCu)PHa4Wm!)6UQ#`p~!Gg)rt^WrXi5p}bm z2VN3iA6Upg#ZCB$^fT=IZ$@B`M&KgGoQUz4c%9jLfv9E0PJH2c&+?VmrCtxWf7|UV z97oVotV#P$j(WtfZ!(n6!X9h9URK%$SZ}kE9~!YSoY=K#UJB~6<>TS#}%RXN&D{T z(;QQf=U2h|BfS&S^@jED*tG2tUtxK5;kt$Qn61{bm`hiOHSMVJ7~_($S9}&<+>M{q z{}<~UIsbvgL}=|H>_x_B@x`0@OtOBNV+x%oEOk~9eOlt<->=!{Nc--$X{&noux)+v zbgn09>#L`-UAzTfoP{q~yBL4x5mwq2*3X;yAo4;xK5Ga1u7Kh?EPa2C1H1P&p8c50 zC1K;<5+6V9+V*I2oF{w9N5IE<)|I2a^jep?z4DjmtH;@%jJ_pxvCVzzVb!TMZ(9xf-bFQTQ zzb|>dwRTC)QciEZt@XdkXTy3=|wYbJEu0e7t!swLH9_dxc-~ zW5g#}Si30p#TR!IA8{hS@ORw$PE*(q8o!G#p2JUSuEe~tdS>*xJhQMqHpZGMV=io4 zZ^>-nK-nFl#u&YNLle2ByF#Y;Y6&j9Sv2-ui!^EBpzurXhCF*UNk57K*#VSOF- zG4>Od$Nak%%U9S({3gEmx8y6K_eEhZH+JBQZ{V{@)8b!eP9~+jp@V3<(0kNjcd&or zy6?Vv+^}t4yRKQDY5J&nk6mxyP~TPgFvqm#Qn@^G`ng8b`r;4q#a{U0cZiQr4;1z| z_7T5}FVHx>(;91MAL9A~G*K-0#aZ~m@BLJ^C$4ujrWjl8-k)TDaVLJ#@~2TelO<9gB3!k&?yRahN+SjMo{glnxdG*06JTmR3@ z1M%Ox!PkM?HLUC-{2C5pyZB{%@p^o*N0Z|`*-JhGUi(q&>b*eAEj~xKvyUJ@ElIs! zirn+y2G2`+M-f)viy!vi^RxI8zIYkFIF+0w9>*8o!9LBPTlAgZ4Zogs&d(!{jW4*)%F(G6p&51U zaUYKux|Xo41qoj}Z9NWadQ0N#jqZC6aUJx&$@NruF>K}jJGd6VHqVV`v7fjJU+lye zcjJpMlk>&*v0do*VV~Zxa=hX?e1X2{Z^iZRsSN8qvaThL!MG~W&eBnP?(H7Y-BnzT zFHAdJ@0t!$zpR27)I0Iec%k2ieSU-15r=&RaS&+tB7O&7JcFOK@A@(?q>ug_OG9qw zobgmW9wo(a#U`mhyW;{w}ir1$bWaW=lV0AHMkFHXl7uC3>D zTw&v3Wery>V`I7qTUjWfBmh;o=lDNTr&cdhsZ}7*J0aQ zD>+7eh5CtM>C38bd=OvUg`ZT;CU4a`>tpz)HMO4ln{5A*@f5x|1z)@dU%VM#JdB^H z9}4T*-R{e-p{|{KXuTnIeAV=p(<-l!Uz8id*4ou2_>sTF-S~nWt-h#zr*|9Mcf~nu z7v!fUsr5GUhw|>Q+?Upu+dARb@!7=p*Rvf~`7*5cIQMW&5xHJmhA+;?Pg)ORTHlVz zv#Orl>XUYDidonXZD_gl!)zCvYe_T)hvnH-En+p2kB$0&O&ra>JcojDxr!(7#b@z_ z>po*9)<_0^UanDnZd;%9IICX_d+mnBdryritl}NE&0p0Tp{qw2C*mj4tFW%EHP2$c z9c7$`FXA)F8u>!Rx!=}Fv zu%EaIKdC$y`7Z7!@q71Ly?xgrv`}~tehJ4Bdg<-GfxQTS>FIlf`&fqxWIDBy=zOcDd|4)+r`Tfa;t+m$Y;`7HF z=i>`Bz1CVU#utq1Mfe=lIziOu#9y>A=KJi)+&IrQBS4+1?}8|o59?#{I`&CCuh!aC ztYLXCKn__G<=tU-aGa!S^KEQK0$5%MUmyM6(3$IZvAL`g)S8}YVJogCORM$t& z-)@k{N|PeL3u$0j%Uvy}k+)jj*U#u+^^9?!!t+0Is+@ZmzHohU9Z|l)Y8`G^_OIs` zIXbC-r}o=8_FIiD_(`ot?qnO!y|@uyoQI#Nt{;}1zY6ZJo~y6FdCWccp2aZ}uc=yZ zcpv)+>-RNg!&d(qeJrsO6?>jTJEoow)@!6C>b#_lXCF(SVxL{GdVLjRE77$KOT5>_ zd-m$ZV=UXX)tcf}e9r3-i(9?xJC@IC?1c3=U%=1e7<}Q!IfU)PKkL39Kh7uoIHsp< zd`7GVI=JqF<#3KEA{NPdIr}FwVb2Kc$q20E{le#<=2KXovzE832a5c|x};E!8P;-p zd(VP4>HSmn4Nr5fKQO+8pR_!te2J}hq4EBQ>nNme*p~lQ!(v;`wCyeTh7Kj_JHzT- z<**O%vxr(DQH~7TVzqVi`Sx9ly|{jX=2UHwIXmLnaw!_9zQyb9%7yXlzTJ2`zVJGq zYgd2WdLOh>KkIuv!+t0Gi`0Q}ub*Li;%jBCme9Meu-~^q=NUG}lh}zb;{KENjJ!v) zd(oOl*tTZtV}o&{G34V=-;)~FHTPG!W)Wjf*!b~h(P{~+Tl_h;eb9vZ-BtKWt*@WM zIafn^685MK?YlSX?ZUdox%Sy}X=@0l@ELIczBm#;Y3K5ulp1MC+A%-Kc5xa0E@*Sp z$LgL;j`LhE`3S7!P|@byp^V$4)vlfgJa5EWYO?O&n8Iss&r7C{zAjp8jpSLaT@A~z z)nl~0M?RD`RnHfixW!Pe4Qn}Pjou?!&;rqVfjiiqRDTvVf^WAtv^6oyb&Acfp2w_? z_VrRfSM_K2aJ^9z2j)@z?N$|G&npzN&Y{ zPjQV|BZMst2`%w4;Ln1buRQC$PiaNO@~#cFh8MZh>bIuL>_66J!^U+aUfcLOeA6k` zH1uyqwDpH4*e-mGk?(7sT!Ei>P1Ww*YY*a}UeUF+)+|HUOuwW{!|ucHglU$)|E)Dn z>b!QG6Zko)cLJBN&GqUmeikR;i&OEF_6{`GS(3Kh?~!xV`8;m7v0eDsc!cfAOFm)G z0PNWa#N10-jdujwlj<)c7czGWAH%Bg!_o(ey1zuWH?K8^7nXqWx_M`&Z6& zy|eRHE{r^?d4`qlh4s30y@8(vIacdG{;q8yFAM#CSnpYwyUL-JJD=cq+^eWw5RI!I zE_%634Xfwd-;UWcs=AxJ()u#5vERw>#Gmo~Rq^d?-xcp+yLcV(s7-Q@E9jD>nyrJFiery+8@sk#RAA9j!h4*OGFx5Bu`e%#@@i>0s`rB$V z(@MPq59{O2_1eEzuJz6M;xEu3aUk21mJ`s4s>@^ki_7to`g@4b zO!T)<{fB>tZSU>n)iC%v-lWm z$0r7r6UmX%(bhluc8iIx)%(4B-|f9y>11dob(qlKj1IeldrQ_Q*++Z?KdJ9M#qV~b z9a@tJ+pfXJe7pX5mclek|4;8>_4}~L8HeMGL=z1~yNyXbvp*jB6iHQdF1iPp4+B@b5}dl~zP zTk(^&|H14p{w}`wF?ph^==bpRjy12f|e~|~H4@smm!}_}AH?faE z`_vEkF`Gt*7ACcJ7&R2zgpUzl8}$ACy_n7!w&m3uIalJE>v`C<3xO6n(Nn4c{HA#>EQBH{4DHxR`x66o|C%vxQ1g4`)upo zqzPDGJN12};lt`a!p3?;(sHkF4=ohr+sgH}?%}%Z-yLo5{%qW8EkA7ai%)VbHm=$} zKAyEk82v=S_7QKy7q7z?hu|lzw&7V-9i!_COI=YsfS;%i4Xgk6+OU{-x>BKI|hrA70A##QX8eXXLetG4ZZG^}~M-^FlhUsG)t1o9C z@p^o50=_s9U;H$_*t2PHo^3{8*AcKh+17k6W~>S{rRqKR?HzjckvEe+sGp0-L1HI< zqVI7G%kL{6?Z8j`-@vK&ke}rk+l)u>6aBkiVe9-+%SSyb(DWr~nofRDZ{k|n?)!Q^ zD?Dzu@Y$s0^H>)XmfK51LQibXN^4-l9?kE>x%k5SDf&9q>uqf|^k!GQg6-nn_~JNx z5xt`LAb!$xC;I2aw>Qmlt+d`m{c+gcYO&W6=d+)1O`%WM8iH!EVR_E=TwTj-|5~fq z&M}_fpm&VJKFDzdWRvT|+ds4Ob4(2_1r9l6xCJ#*&5923Z+t=qJH$7+k27c1MpYt@wN%WolVee#r zk=hs<+3I2RK-%DWpuP`yJikBR@cNm2qS!^QEUv^)>iu5SAf98@w}pM5;d#t@Oh1nM z)nCT(EoZjp$UW5k__?_EMbKwd&ur(d|BuScxL5L|(0iw0&)~C(=hYUss4avaN9T{{ z!1xk%U9sJJpd0yF(7UO3t#yK^<@{M|tc8tnnJk}VKk)><*oiN$!%ucQW;DLAHLl}a zR-5S>!zxb0T3uRy+kwus=X(gB5&rCsV7vGLzVJGV@mV#NZ$FgnVqbjmPJD3?zBmwH zoP{qAz!#_E3tdat{fy6{iDEZtX>Ohom=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx} zm=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx} zm=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx} zm=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx} zm=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx} zm=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx} zm=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx} zm=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx} zm=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx} zm=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx} zm=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx} zm=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx} zm=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx} zm=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx}m=Tx} zm=Tx}SU&LDrPv=|ybWLcEWUURzW5bIeyZPb0XUloqyOHIcBn4!am8$F$&+u zkAE5ah->hZOU#y}UC%yj7vG03{`57=B4+BG5qK#?;H`{*Aw3NHD~5g__RYrY@Ws3E#fkXh z7<_RgzVNxJ9Eq(w5jo?m4eO=MapC#X^Mh?~^Zj~`Bgny}r{vNlsbj}E$dQHeO<497 z3;PwG)7Y={k#nxXKYKO%BrEzXmTTCataq|KSsrA&cm!YEho7umgD5@xDSrPNV+X!? z7+>hv*mb+{5Wct@KaoC%UC}Jja_?~*Uz~!UwC8dS+lA_su&x)xU=gN|%SCKY>RH8e zqZTUo{hFw@8un&Bn@Agn_5E#p)_uhN>~FjiUmSp+=$yk|#We`Vo@#(4bWuoq!(MKj zi7!kmO9Nx9N%O-VW$1HQkGal2?5+GRsW}nz!|&bwH}gC3Qpk<-9%lqX3&lI|#oqYh z5PWeEzW614@kV@c48BmU9oDq0q{|MLvb8<`hJemsnQ1oiSFT!U^T4=MTk%Kc%rEv#v%pKHC3>r9r%*iSr*pR5nFkMMl{ zPuNGi5?^>;{Uo0iJMo2S-}(UClVuCX5g*1E(pc=uwu0xSe!FR9)IH)-{G@a&p8rjT z$I7?+bGeTFlNGHi?!Zsl_&JjOg|# z_*%`4^S)*T_Gg@ngYm_?@rCQ4@^08S8*jiDd*ch=|1`D>pVvO$t+!gKw?%y}K5y%; zuGgL$U9&3JM$RSI3D2KRqg{W!_cSe#=7g>ODKvzfRQP8j*Cgu=?2}ZEzlCjM<;U1A{v3T2N3&h{H9yXFaX-Fz5MQv~wg_}w>yUn(t&jGe$m!@L#>Z?UDld-CsO!kjF~rj=>i; zuWR1NHAn79^j;-w%k7qjrM+QW{rf7bHY5^H4QczofxojzGTvve|STW3QL z>$@=zhyEgZ-uU+%v+IJKCiCgd!e_pHS zSbL6I+a4C(TLm#yeCvBdx3lfq4gQ^+>bE}3b$Y*f0YC2wo>BFNIw!WYH@3Mxa!(p7 z?HX*{Hf{3l8v9}2VVr?4UWYGE#updj3me02efTu?5%0tos$s+KWmpf}deS4=M`#|0 zz1Yxv4I8>BVvZ%!#<0u#jIY^5IdAMG83CI|?fw3tjCpZ1zBmS7cyFk=9@hIi%ORe( zr4?aY9yzv+QlmnvmX~kPeT;i~g6&DYZ`{c-LWg!mXok2E zKWY6M*R6Z-9>;rX&$q1(@y`<5`rQrqiT82dn^&HWe0`_E=StUOJc+CD1+_@kCDNj> z+85j67ULk%_zJ7Fhhcqe?5<|>IimR#_GIHId~p!I@G;}Z-ejIDG!DQQew^Lx z-^MEI0QD@l;3xHtmvsdnOLd+&-~4Yz;A<%Y`!S}4*T9-vVO4L2eXnsazVJDCKHJ3w z_(|(8E@FG)IkwGH>p|294C{3)$FBaMLORhm%xn^N~ zoZr`qz6;mQy2iL(?n|^9AaqXLgP+v9L3DH7zM<*GFR_0jO&j(p_D_~4*+*=_7wDw= zH)+%hZR@$n)v8h2J2k6qnx=%VB&CO;Ev{=GPwO9jJd|#Se#f&EXl1=8MF+M1**rm!_j!iZZ*BYg*+*zjg!LNIHT2E=PVA2_-i9w;k1sxeFAl*M z@4*)r;|uk&VSOI?+_AY?<1yyJ{Tnnkhy6*8CBBw&=lEyt2`w3gSj#sa@8Uki-uU7Kd~rN}()9OzY!`>& z3(e86`|JkOyPDIn|JfTfHiz~5VlLFPq3%#kSv5%1B3q288jgabZfBpQ&3ANB?<}>hHte13FD!4ge2yMgZguVO{7f#9URHk-z0Tzu>KJi6 z^s%@be^)%f_Qa3lF{!^_e29G?G5q*?cZzNAs(23S{g(^zlctG!R$>0V%w;b!Wir#y9??_RSU(G2goX+K?D1?D@52|`hHX0Nx@==fb>gt6aU5ZDq0JGVe|^Wy zpM}>^#I5SuSK^Du(M0hizF6_a%(OECUyTtsj&Uvy!WW0&3)d;_8&>P7VfQnR!cSK3 z0Yg)Tazj}1apBuNw@5Q1KV7?_KBt^6OHZnG&(@z(FIS&vy5qX$xv}+JJGsuJ^<~$v zUHCCg6H9aA`a5XK7Br%G3_tO>`Madjna~`& zhSqCDosqOYk^L8O8Ghn5OpCvs54P#PX`lN0VJ)5&Pz?1%N*@&tYsjEkrN2R83~jau&_!ZwZe`tw+R zC$z2;*1w;#H$NvU&rSFkTVBOJ;yLtA+=ee+jV~_87t+bF^S>E^uf_=SCOBsN>0HVRxH*EvL0yeG8uvTk#Y1 zZGXvb=RAr2P9m)9OC2wc`{0I^YbZ?bl!wAfbB488H7(HfVpsG+)W4bf6vvT9VcY$F zp5KWr_~J2q;qg~)4*e!Si>jfH<8#WpVXcNKU5e)%*D9=^)wPH9Sn2(0Snq9H&#U8w zz0J5CKk<6WW771|w78y6JS(eb7T<^UVbxFVc^$z$2wUfDI_MhbdU^t%6&_Fa(OQja zsIY$CR>Ne?GJbz3`-wN=i`U_cm*Wf7zhQMPVSOC##n0l0@x{LQBF2Px4Ziqq@WoeS zZk*RVBk&H!us94~xW*mDc5yhq@OoHU8dkr@wzaJ2k&=4%aw^;C84K?>LnDQ2v9A$b z$7jXW_`-5p9XrlrI^}&zTVJ)cyV8@;6?C%j^(gjNuO%%VHZ^?cI61v^lD90w z<~T{kz~d4AJsV0_V>@~&{JSEx78uVV>LkJSk2S@(59?LEclN%soePcCyHTw%3~RNV z)+EBV@9JoNg!Qo++9poJ7sucWt1(&(uizepj}2|ZE{thWV<+aviN?$D#ZTaicxHn6 zvLtP-{w}UTcpY*l`zLK&@tmvw^jdmm+8Keb#t4{}l{SV(9%LMaFOJ4f+B)0&*)9&j zPg?#brzpR)b*IQR!g6(eC+H-8@9SEYx0S!gT9fA)&HJ#I7_Lp^Ud`?Lp2DqcBj*;j z&-x(S6MwH)`|>&E@?me{XW{+G4ID?Ht+l>s+FjfDeI0{iHGTXzzY{-d(@^D>$d>yRbH2e7kC~ zu)dG4Ie2Zb`~c?_ufP{k^ND-#g~egFdhId9*Y}NE&+f-LgMGwTW1gJX{L+lTdl|Rl z6nvre60GM0eK+BSw(05HIF2{~Kk;{wE1D&go5T7(m182;*t*jqEe#v`k+dE#a*g1# z((;<4F<0pe#2UFqxF(vf?}`rl5k4!FW5RmHjyw(csnp^%c9ck-(rVIXFZ2c(L zoYcQF_hX#rM>ecavrppRFRGq^>yi$HRSyxit(Pj6Vg1>i&u2tx?0BA0DJ=V3x@3C@xb=8bV zvG0Y($@s!+iIdnatbX(LjW!q9r}}e?d5!CM7SFfR|>bop=4!7=d>&N5lpALhC?b4>oLVt+ezMey+8Us1 zhhL{XyVl#lD(-ur_yG<7!_%)A~W~tJXez4BMF3 zwS=vGBOYFBoz3sW+wjHij^p!!F<7zldyn%8jo+|VAL@Ay`%#XQ_;r3Yrp$TGFQEt= z!I&1O0@c;jU4*{<8l0?#r*Gc{A8u4E&MuNzx;fj8_9plzttn!a~{td?bG`5ShwZg!}|Ja z>s!&f(qhxi>aF9t?7S@|^o}}K-BaA3>9Y4)@FELeorT<|)hgT05{TzLw zsM_rm_J6cprQuG`RhNt<779D1K< zwS*t1^_4#6Rm+6s*%S}qC+)j!FQHUBZ}qD%0!K4$#eVq0`;oV?T^xchY<`tSg;rS} zXmvI7xALrOmesMIm+HF=r}4RcjSKLTrn%%4<(KMB1KUXH@Km-Ntc+*G{f?C-8Z3D89G|Kk*u}{;jzEIreIN5Iy3*~^Y$_-(qt6|?~M7|a$;S1BaR`Z+2wOnCy+%>V)v>dbg!AtNH z<*H%d#x*2OLs{$F)pr+tzU%j4)dLNCD?cYKheYm97Je_JKf{_PHcfGjuspf$;F#i9 z@x_Js$?_Ncy;;)o+ef$t!SSWduA!|SAZL&MJ1qIQuw1%EERyPvO~<5XWvzd#ZR}rb z)lcAWH{y4~V(4qIZ9Ld>cO9>5kNcn&Ds=3y)HGs^`X=!{w7o}QOxDkb;wO679k$hq zd-1b48$a>!uy}0I?|NTrW1#hhQPU(k-mvfC_`>JrL2OUjcLt5uw<&F(H z|FE7XE&kPqML*^`dnd;iri1nVFt%CT+TTBNU5kjdxx{Ti$EVqCQi+bhrt(Ld=JMJ2jeH|6^1pPZMnj8i1kfv9rZD;Cu!f=yNh!Pa{D4Uj`Duh z;GtRQtkCg>^`2D6!>*CXljZCAtT+`vkv0yyo&AM>mUXl0A+3M(@2IpqiMG0amv4E# zX|Cm7Y1FWv<~YfM#uk=)rJ2KqHj8udh1FWEzTzHBOS})gm+ivq1h#2R#2R9oFupt-D^veuDU^?``Ws zr*l5R+OFo6>d>%S7a4XdKktHCtKPy=&yap%YhK3uv^lQ164v`Q&C9Uf7gW9>?=)@oJb4_)5(nT5^|jb`Ow;9s z9;%>bRu9{HF6j)`|1Q$k30)(aj(grVEoeQ3^_bGquvITazTaYe7rsy}5cX-qG|20X z(#Fuqb2fN<*4sFDQaZ-*v~5`LQ`mP&JPxfM_&EEBh@-HWv}?0ts;>&`no?`SXi?J( z*Yx}Oov=8s5#MCFg6m0K7u>J4lLOiJP(#`hHgq)cG4FL?jjtGMuEp^VSWsis-0+(1 ze6BfZ{j6#+tdFbK+o~20d*lZ7%3<3a^g1VwD{@?nF%Wv6`1o9Zm+eW-t(a%?zZroS zTLgSApTQVS+8WM9Y!^O{PGh_H1$^OaO{cP5ybC{R$44XePNiv_Zzor1EynYq=a!ap zbiHBEG!DiWmb=<#Z(^UM>A2UrwvTfEun+Os#PfgU5AsN@Io{=UlEnbO{SX__JV|!9-Eiped zC&FH`LE|^9|N9s#nprUBYs^_sSMei`ZOzj)*FM|y(Vnm36t=#T{&xHW4AsI|>Fs#m zVPmG%8^l&?&>A~0w5m0R{UZA(Qy*V!f-tYAMc_o{h0xkhSl3PKv#JlHA6uDsLb^IE zIb#v7O>bel&^g0OKf{`~D)$U~HRnpCrNerEXL+FY4xT?Fe+fIUjvdxD*Zs=(k^3#r zxBkm?&3h~FH>)>77uM*zg!MJ`_mmHCJ$}r`_&KS*C-j8eUc3rl9D*+%#uwfrn=bzs zD93GU$qWtdArsgBH!AWDJ>0M{iLxIUvSKNziWB8>4nA`wsa=WA6g>pn*INY zxjw^Z#NGJ9uCvx!yw!_O*u1N3T)6ZfwuXzQ4NM!f}!s%XhLZ>bXR<+py1bZAtzAyWY*d^S>E^ z7h440#kdql;|td{pM(3bk3b_!FKsR_wtuUc-^>2HLj7D=KaS63TT^P^4Y2LLHsv{_ zU4!Xw<+G^MUGIEtjhtBdG3tJCJ-#q~@w&O`=1uIMR1UtI^M*zW*T>L2!TY0nN5*=U z-dEM<;`3WJc#K>9uU;yw^;7MAk?tw1-@9)oK1<^F=zh~gU;Dn4>lByZi(kVRAHf&g zZ>`Z?$9WUKuhN0g105S%&nljozgHz*RioJUHU@k=n6Gu#VY&9|4@2jK#z@$6jMMRx zra`V>ntx%>FnpYw9xdmyk2noq_?$YG?cxZ0u|Iy|`s;e_b>mnwWvma&SYDG>2Qm(| zmfG}`8c*M~YU?N8&;H`YmK*2w%m^ID_!KrD+k1y&*+=Y!FV4glC*ce0H@#nI^Zf+& z7p|vQFpq@S$(|d@4_fbQ>ocxFg%vA|F~8@#r2DO@e^NPmG%z1FZ&47#8%ti%|628=GU)Wh;?0PI>K|QdIf!0 z1u>TfRLvDR|4_qo{xfV(>hD)}aEz@Rya%r_5@SUg8+vuMVfy9!OJl?O_7;DRQ_s)! z%j$&see8SQhSI3eDzEXRV_5HV^}U#|(yL*8f1e9>4W)abe>RU=-+C6m6Ry9SyJ0Wg z;B!H>*sxc!kJwFYT@zbYx7+U6Z`uin|>T=nuv{Qf}W%jlob z|0^==PUFRp8|O952pq$>6<$Mnz4{LJ5w3l}q_Wd5`t$^uHJLT+w<`zemdheveImt+sDE7}_Sb;*0z76Rk@P>l)!Y zV%xocTs_X`aGy!jefmYM?Y6l2XRS|PxW>Y-!L^n9)j1Z^tg5GuuY{?2uqZRi?5)A;yc+c{%5v}nVDwFda`sf^m2b=KYS6jps+bu+xVU8 z*0A1Jst+61=cd)Zo;N(_m)3>mS)bB!rssCkHP_Qt=YN3f6SfZK?_&I3luL&7`kZT8 zcEwh$M#`1Skv@#{I9 z{gYNJ+PZ`4P z*i#JYLKEu;+#VWndYcisSXjQ&_fW#NoQ!_zonx&v#+oB~ zCtRnRZ#{J#gX6VxMPHq?{A|~}^6U%m8NCOL>lVl33+2VIZ`$CR-oC&3DCZJfL-i`I zeLk+Jg-SoH$63(s!s`Uv$Lp)o;n3p`Z>Tl$Sc{H&LU=7^ZBJU^{~>+m}~wV zV{V8$@Wsr{GXgJy2(%pKW7})XLm0Q>MEs=YO4P!9ws4&?eR1t89gBT^KH6t1FGh}J z-iW40%&k@2jGwgiLvp|JemmFMoI5G44vq8q>w4|^fm~EM&g14e+4GoR|6`mtY4>P- zVyg}AWq-jw`d*EC!LYS1828ULh{b!22iPz1epY%utYR50sqpkOHKgz=^pB1g%u=uDi58K`mTg}kM z80Rgm^;j{URZG?Uh`B<1gvX)Yd*8_KO&@EF$9?dOMO!cRahtVa)Oc+@*2ky$?HbVP z$_qZu=|{Dm;yUa7xaMfs_S{e9XF=^z@3pCQm&E_>rsawkL7tqK@DhzcXq$+6n^bKW z^Vs`CuWwDuyvOuDtG=Up0>?SpI2=D&IcMRuZuT_M+ju>!`4qP0cGIAyJKkTI@82`j zydT!}#p?viX^Zy-)abhZ>SN+OmNWHkZP=&TKWVuOozWVfbbi>oI94Lv81`QFPdtB? zMn!(*bA{`UYn=B});Ib8zqo186C6|cF>mHNlNKNEBM#uRLgOy#j*o2c@APVYI;@Tz zw%)UmzpL*#13z=^u&$wZ^7*9IX7}(J@eqDeJtDp0;+p81W%nx$AJ+BJ#*&YXHuh{x z>N$t?dZ3M^(4NGfb<Z2$I$lB5^*WM_$7StZhUbXzIYa2*zuPgY!{X@)>UW8(&{TbO>SjtJ}H+_ku3 zAJ2hU7HEO$81F0V-&%N>-+L{DCTd;R-{pC1D>e}$9|O8}td23P>+=1aPxyHm^VK8U z_51Pt9jMPsuQ6&}B<8ct9p!+qZF|-oqy9keRO{+JbJ!ZoF|N61;cG$uUf#!f{aeCc z&w1y6GXi@u0tYbWl2$94j+FkyHfdm3>#a22!?yQ#rXBj*=wV%JsApC8S5AugZMmXd zo7Jm6zt+fo!gRLf8FJ<#n9HMX4eMG)KUF!GwY^2ynw8&U%hjHvJU>6ragy~jT&Fk} zKZ!oM2)z+c;wP0CBR}4~q3$W}EoygRYgzUG5t~1nHAj>K9BVLhh?nky4%>cI-yg6MqB4;`y9-1#PRro@mlZP^Bru|mL5Zot?I8~_hdet=b91l2%OBg6){f|*E^qI zmFLKJzJ0YdCC>@1&pLtQ3)fB0En7Km;`zCB5B*a<4(r$H>tMbX*Ybw-AX?uY*7AdL z*s!M23pytJyzN|`-=1OrME`G!u$3nwXIO2ZHM6jutMxaLVVkZIC#^rKzX_{r4D0>4 z)((fI=GVKo79V;i#l7{L(Ibh_=A_nHpJ1Eo^(h=jydPh@0bh`RciBI3tUB&}_(F9} z)E(A?tZ|>hwaM$K7&n5RYZ2P^f^k)~Nz^DdW?Bv4z1v;vCsaFNTi7+W?x+@BV>~6EuBJaDuty_cbJI1h)r6kMj$;fbO&3fb+i}igoG0~u{#3Tv z9Pt{ma$)2|<(sfK8p>^vpDc&CF8ejK&w9O0&Zs#|T~O;yXt&-+dY)M=_qOZ5n*EcO zOX>OQ9iHb0i%HA3p?^vJdpS?B&2&e3&$s?ei`{#Rt?Txl#ddsQ<96}&aP?AQO;76`<_@+S>Vt<>e~fKw6r5AK-(p4G zwkBQ|X)FwT6~{`n20ZMgd{$hDpJ?B(tu8{>YrZkwR$*gu;TVOD=j!86;rGWGuBXhW z8oP1sr1hQgdGX8m;s|_U*WmSYjfEH&HqL$R!fQF7`)v)xQrC261pdk+VB@*HqenmL z{h#JBR_m`rAFcnY8unWDAy*gD)v$*c2jdINrEN}Ge$#v%)^bIgN6HytJ#Sb~QF(=Z zq=#XZpN3`ru8HTprkfTw^^Re^9@hWECv1z4e|9V9N~%r|?PgnX8-7y#-!?w?%m&x2 z`hP!u7oVe773;^?KWY7G97|ZQsvawB>F^^QZ|4SoZ&>*?a_uD>N*fR5bMG?_!xygC z(#Eh)ZK(C#huId-FY#wuV>V)_8Y-^mKEv-3jaTfNR`Na8byslj>fPIV^*tOXY5DwW zwkKXw`FQhn6+Nr4ZOl{S>D|1KlXky8@62!G)8gj6Z5!K%bIrn@SG#6E{>5Bd;>TR9 zXViL3SigSnyBF^t?`J<@&*-l_AI=lZ2zUe-*GuASIBm`z$v)yNd~q7S@HH9F3CyGF zYtCVRaV&n)@=30HjhuWtpG`b(c%P#BeOUU4x(Cxo9b?$Yl_GR8(f3b>y^L!U)X|GL z3SW5K*mq6*+Lm8qe{nc|qIiV$oS+^htZR_>JIfRNE?Lo(g1SWY_wpU=lQix4H2a8W z@x=r9!eZXmy|-~p@iBbi`lYyrB@c?KgAV3%?={|lpR_*W3w&0596xC>v6`pezum;X z)DcDeEXcj8y`+bu|K*;lHh2_Y?7&ZIJp)~BJ?S0%EKCbj%Y^l{P}eENCT#oOn)kw? z@rj=8u$OV%L~}Q+zf)+vDs!`b_PT{*)HpvCU$8d52(RVrnfmp&`?C1ER!Tp^>Yj$R z8n|LfOcndEzTH#T^k)SA$|InBAC{h}U><3mwAHabH&^yaJm*Vu!q&RW5%~KVC*uoh zW6h zq9H=s7|}eQ zSPo14s~@(Q``;?Ibyq(Z&q?E^{r&9Eb4>9)_`JCx0Ky0U85$##r$+42sE4iKWXotLOYYzGje?OCw|Q3V)jp(rhBd?CYtlA7s9sn!^nNf`cZzD zET3X~qGJrZg?$q5P1dK_F7C${=%Ln9m(O!d@gTl93t#*wzVO`j8IB`d6VVar%}P!# zTo)cY{2ad%{{UY^y&}GXpH#p5X|{3A#TEF%;=e>so>XpD zj+XU%=N^|tF&>tCt@YIh@Du4_*cBZVir=tyOs}I_4Q6An)+CPNS}riW?s9FldD_My z^Gxe3J_i>c&$(VQYFFD{wQAI?>LanW9%EV>bI#{!t3C8guwIL<)WE{WhQDL2_X%jE zYohW;*!ka#z#ff&&C?aF5}IdWTMfCpIeR=~SDcP7Y%WVfhF#f5T!Wvqb(NdhE@I9k z?Ohmos&dvP_`8?7ex=ZdY~Y_jZ>%cDXAa=uYe&(l)kZw+%7IV1q#j zG$09qK(mDAd6urO#;f_&bT!*ArP{bZV}Dy!zgp|v?>_sSv(DaY*ysJO)PK<87k$Vj>N9BT z6!}A|7rrTb1=djU{gUlBpHJy?82fq4o|61=ehbpxyZxrx!%NZ!t#){=+CywCnHtfu z_D8?2_UyA-CMH`xy8-Jd#sb!K96$MpCH-^#I|1)f`;UXn9m_x5pz7V<)wL)l7n-+K z^JreA?qE!0-bKCQ-itbpvG2<|@1XXrKd(NBr*$6BMb$o`)sM~(1}%2%RC{2qxI^s$ zxkOucnb(rZPc2)1$aUlx7Sz5Dssl4_U5l=XaW>yuuDE`24aq?)Q`cH@eYJbXI!$i7 z?4LZZV+Jk1f?sO$XH%WyJlU4F0P@wA-;P>vsR_A8m>=5b4%**Oovb+@wo4DF?<)8A zcxb0jUMpt~Z9SqMtXfCwk2!7j6fIjH`K_!&uI1FemaHZB_MWA!S;e=i0~J^5cLk?N z5AXx|O{it_&o8O}fbA_ls=ln>tT@gMn$O%|qlgH$D$Ck_=a?VAfhFv>m3|jq&Jx11voMWvW^S{kWj*l8Jx$Pox>`FEW z%v;vF=D_@cF_-6Mo!hRN_wM{}ket^t=do;S`6K!+Xs=@(kpEQ9d#8?_|4j>QrUjC> zS}N8RCrA&>X|blb9@`xDJRY=~>pZm&D);v~xDRmrtQ*PNNBp#O#-JDUIlvF(eWqot zIj_C3FT2RBMag<6qq>mS)8Z`r?V7&s866+4lpao%9^_l&XWP3`)iAYhDPNuUTlG%H zzI^OoS~ef<`X|^24OVZ{F@bgT7u6@^IG;cEvsBCu<+p5qJ)_WK(APC)plwx4R9&GQ zDDk`fo7MYk%Sobn0U*a5E*IOuW%DA;wyk@laiVsK+vRmaso9P?p zxwgCoxV{*(YOhrLU0lDJ*Ou-5<1P9eZj>IjNe^dB53EnQ-sQ`(-^hJS=KRfH(H~;% zw|YUfW%gj3Z&ysKT2el$a`*TEOU0bxIq8GcC6R%Uc*;3?tpd5>S*;3zP>^IHuG~j?yJCYcaZC{WQ<$#&o_Dtc=BrsxmiGYm=Ui3IxEgTZfblW4-69p&>KP+G=HL8V zB;su5k!9PHxlfZv<{Xy;Ps$2TWFoG2lY1}*QoE=fb}VB(yT3y{WO4|X*DC;Kdt@&H3Ihu z6K^dUM^bND(nqypAJ%;hQrj)^c^wn3mLBr|KexP4?ZI_gP<*Pt)BlF_@OkM$KDc6x ze0#-Z?IY$LSpD7nuc}QxGpr6#|3UdJ+xXcHR$o(}L5rL0gJ(e-R%~>Pw66?^L2Vxo z^Q3a6Z94x&;H}cbH>HO^mmXf0K4`Iwwe#cZGiZASvS;F2>SN2qbIW=@j+yNL>-sKy zNqWG1tM%cv^2i2R6PBsx773rvdad%x8`aGlLAxHt({Jcp;RWfz`A2YE42tPB zKdzTPSpTNZHF(G0KX4URzo$Nf)QF2j?UvlZl6Gc(#XN!ivoC8|*RFeDd!ET6)i2-i zU2Wp?A`wUOZefv_^A$r9ONMM~>K2_VXst4Cm9Ds1btC$e?fneYUT{Bir`p4%(g%r| zi`4g34`VIY`8~GsumbBV`_`5#ud4yqTIJfZ8DnnNN2UynBezrdbhSGT0DA<`h=g89$u0j5;rWrumNkgx-MUz{m7u=mEzV4d&sPP zn%$02zi^850eyRZ8@ouw#o7OtZ zWKdR4Q{Tpf@tem$6<~-Cf2g>$-4qpW7Q?~HA2Q8n` zy{rec$;!3}j0I_vOuVw>T5I|>`YvEkqhgxl8{%e*BmQpC+I_x3*5x8^)-?sjzBAQ7 zU`(F3U9)oQ)ShekgOKNGNgu+z!tXK*=248T$Ei=)@*aB{U{ft{x8`0@ZodjzH}zXG zu92(N9?;GhS9>s8H;l7wP2Hez2K4Rpz1;g+$&VF`7a!6&!Y8B;Dz##72|o_|8|4a4U2r6t|$DU^zc#XgZgbLW5p}u1@Glvohvxc2)RGWC4LXte7k&0 za`EHH`OMAF!o{1a$lGGKm2_T*K%sjMP91= z3HL}3yQBx6OLcDYzvNttd_>nAoU08u&+GrEeZ0n)|4j>Qq6M;^EEBIR+1}PjVxweR z*P7$?{xUIEGJ9#3ZS7y7&x7{ffi;W#TkSD^USkFO)Z6zScp-dB;E09jVb537?bSoLZ(P zUSzJt^2avdZ&q8Zx9=XbXDYv1IZbjX$yS5hh0n?hsy6tF^dLJ_yp(Oq2P!|wb+27x z3}~y>AE?h@{XeMBpv6bns>Ntt5AugrKdPp#JWO+=_H|#BK4AUJeQf&q_Kfb(H4j?d zvkS{2|aFO(I ziS&S+iu0$feau__&L?}rmh~<|xm2w)uk*xz$@$;3z-C&Yy?3}=^Dl7SVSO>rg*292%cX_8|8K1gHt)Hx=@^kii@O5oZPq8O)h}YBn*l(%N zVD*1!{6VhEa`gk?8tEZ>qOMzieS>=6rI?XA!;I2mZ%~tX=>)`#t!23E+ z$AmXX4~W;SvzV(hS1JEzKbZPJvf07Ud(iev{hS8%_mN-MvCd-#wHNz&^?efjs`SD7 z_tbw-zy0}!+CHP3D^V+M_p_?YWmB;sl1gU${0EDOcJ z#J^@wKg+O9`k+1QbJad*@eb>#^=GVPY{fV^&mys|Ypr|Dvwep?54gr#>~^dQytaE~ zw?T4*MRH8dm+}{$Pl0noc1{krmahn#=^N*{rUh1aX-q=(l?4~I$*Tno-k2Q4R* ze@LFpwM_q+HMB_ijOv%QV)^I>Su2)n)g6JgA$=gX2v7HznX{-NQ{Rj0o zAKz5}Pj67~40T+K`%kM+(6!VYdRF>?_UCmbep<37ZMCG{$5(!{Q~H3lSk}iPZ&RN^ zy`#8VZJK+;EBkzQ$lZc&5 zYG1Y1tK&UlYwpi7dlHtdt{m}mS^K#6%5k1jf34AierCGtX@SkO0R8Qmn$zLE(u4hM zNGz44PhRHwnD<;SE3cpMko1t;)AGsc<#);l{ekpB ztJzP{G2sct$DnITTv#z5P=1~om3yZ(7d$8I?*jZ`JzGCx-CKcp)SeMy3S%Psq~^2a z?|bXtR{w3C=S6^X(Z|-k^1l5%9P4-;(w~M?(-|c}sw?#6Cxj^R%mq{PAxOR-%L-Jxv*OLQYPm8UY3zj@@ z?$y%kVbI=Xcnu6He|cJM*z?J{StR#HHq$rGb8UGG&{wy(hV|S2&6Dk#^8st2e74t1 z)}>_g`S8Q-T&YDY6=Ms`V4MLw=`4^~=t1?wh#zY6rX|GU~lzPC)w zk*qpTKBfb9uAitz9BuR zhE2W4_+E9)gZe&sjU;P|+PgjP6@5lsxY%DYJvBV)XZqz0*uUjnuwlhLJUYe6mba*Wt6C20w8gTs)hApiJ@D9*)gHD<-xHUpJ>c51-)YJGEpuv-ey-se z=|T2Rj@#DJ=VYHj`^_-&f-Uc`rvWzC0@@Q=4Qd^0J-7IEl0Jt+q=&1e2gXYK@xjVt zh0~-D=;!G_b1jx@#mCU{{7-6}L1LigO0`L$dNX^k@r#R8zdD9_>6g@hu>Mo^8MJ-l zwb}<2S3REVobXNQ;j_{M<2dh2dfmTj*Q#Uno1s-;43)3Qd!6h%TGDP+6R0+5&s5iv z->fp`=5GQPdA$0B)E1Vk_wCce4blVZh4??qmbW~s&*6UQK{-!qwic%l*Z6zgR%0sv zNG_6jVVV71OZxB@ml01}yZm(h{p^z(D=6Mpj8_g(`NS>K2el@y))=&#KZn@Q5^*PW zp5=Nc&^TE$m7i|kXj{HR{}$^ILt89P+_SuCgT!!4?jh8((lcY8!1pF?UTLkY0_X4p zY9BD~YI)`h>J!eA9yZrI&a-WC3$%S9tkbqOwSSU#=&UKYFWT~F)q(ZCf$REo&GVr6 znYENUW0A-eTV12IQuTuTVfMRHA6T|rRIz3~sF>;asTwEb`$c|9{lgzf5B_ayKuy%% zNy*=5FONPv*Sko><@kn0KB8j>Ehm?MjIV6_YV?8j`vcZl^;@B9^!4E((RQsUCyTmKYE5HTPgU=BVH*3Cl-eCQ<{Z;3wA!AtX+F-4^J7oXWa_#3aVE)tc zw=M3k=k0H<1rqlx^P9CrX3bf0P3=IxtE30?Z$49gH+#78AB((G#||n7S3X{A-Qzh= z4U9pb)R=*F8Do&g3R-jVi7k#GHm!bJeS&;y{>>cLo?Oe7+rFS{acmB(Wj?2I!pEc! zn$2%l`<|fhx>S8aYBkC13tDFEMV_wD;S17({8IM6+BLwJ)?V5r>U$YDLV7q`df>Ig z2e$a~dG#N(8VxpSe^0IGU(u3wpVq4;>CC}S@GS8c5 zE6G00AsK5}6V*H0+jQ)C05OhrS&L;OH(7ENtgrezk83sFHNfWxr$`Tpy_SBif$=oY z(~|3byFL%Nt~qDh-Y@5vo^Nti+AX={BA?dyL2EhtvDs%`B=fG#b&vCGTipWmY4ml} zxdzYF91dJN$|+O-tQ>0x?e{i&S>w%DXMJ1Z{Y%!(BDI%U>kTzj^T|)BPk?WXkF@0P zdDj24J`c*L+PB(=h9{*DYLD<)9fz1moi!2dK!3togL~So9d>KAq^_%c{fp8E?Qb5L zKgbW&Jkn5-AGGJ_ z(qxPQX6rN_$*^ez<;juiUfZq~oPxNP#%J{zHvFXulPS zZ|2EI>)VTuV=1po3mq;IE ztyoqq=v>jC!{yQgW6CYMwn05BKQla|dbfPM+OGg7OCPj3$zxAZpOC#_$(l!+Q|hqx9b*MIpZ?kN_$3Xw8w?3u*Pk?Vq5Ad<;52<}XU+wpu z1@_`v-J$U-Hp9;4FYPyR?=26JpG)1r_?UfSOZt|?1k2TrY{2-K`f`!13*ft2U2wI= z3B!LcejLv({&L7{ z!dCa!^Zqy00xcfhpm`V=*Dh3hI9Ga*k4=snzi3%wcr4eY0WqTGkPm6S3>Yt1KjwER zmd(GRmP}o;NX5vCm(Oh+)7G8ZS9_rSUWh(Zem%#RPqlw_tPP086&oEV;d5HNOKo9! zB0&G#ItC%B$eZ6+ZW%#Z9!=cpmp`kmqc9 z9YDU++H)MyL>_O3)eG~=!mqeJs`j61ad$?8AIey1gCkamCiF8x-&qkiFgq=&nt57z&^ z`iDoP2gSYQN$t77Z|8f<+B5L?dR7JRMKyob|FVDWx9XXcKcuZ#gVSz~TZ8(Y(HAtv z3*Zyd!xyE8k4qo4XY``R9Aq9@w)l%!nK*38+Lkf2-VZ#eKCG=+174`_0%MAv<7!Yj z#T~C0hw(9M)bea_gY-h%O<5_2m#5}2a5R$o(4{l9^gysx09#q`>Yj9uFdT6 zSU$8t%eOzQ_CS9q-&J+f{nEqZ(g&)_9UV%Ob_HQ+^;$HHS)xXlQ;Rxx2)NPilU*BLYUlXe4aGtN{UdTts zU$<*U9BjUH#Nj0#Gv|3i;{-kH%4t3$eb8+6sM-gKZ?ssGqJ9x{WbP#P_@Wc zHO@;Lu=cFD>iGK64c4Dm|Df-39eMA)NacRDm!jud&s*)46Y`nnIa{I@YkAZ*eK*J$ zmV92V4!v04h2y0MjGx+Zk(gI4=fU%>F+3Kor{b{VF?|JMee!EdzMoBvzR0Xa%cp_z zoto=4^ruN!%!5S(5 z>bUyA2IYh8i$4GqV>51Qmqn%?wWL4SJEnDbQu_ZN^vOD|a$;X!Kpb4#Ukqw*(msi~ z%0>FTC*ZehY@K8M@&>8t7fJgh7qC>F6L|0KdUog*8PU3qz@85Ez`Eh`}KLiS~Y&!GP&3yZ`0=i z_gj*`Eb?xRIiQ_glZO_k5WiY{M6K8IRkkz#yhPU)PL>`pK4Wy{$j+6sjxDoZEwQdE z7jV9ZJh}2L`x4i~0eLL*qRM&o%v-E{R-XscV^0fgss-qi&($0bSnpZ)i$vUPxvSSk zxLJBYT;RIndgt%?sh5wmzf_D06*C=IRR;z7=cY3*Xl>N(B3D;Z@p3`E=kf>^)Acocaw~e8e@^+_w!GcM=mUZKJ?-$2D@k`V3m!(etinf2Z_t zs`S7$dz{+CiP8h-*$rwRwCA`>?E~gE^aG52?bu6oY~Z}QPVGUtS=*1!XRPJ6c9`F8 zs&kwt+wvB;UUM~^Ej?r|Tf)~hJ?lV{Yq{xn>ARpcU3Jp~8h6lqj(q-Vz!=xwO+2bT zA%4PRKfOWKBG0MqN$`mD0exfhnT(ImtA9Y8ZTo(VQ@noN-+IvMbmaLhmcgI!eGTi# zwft=HQR#zr{rAg0gBGtptM;H8J2uTet7WSZPSodchV*cz^nkco*X3*64P4)bd!+|H z3tkWH{Ibp!enWatd`z95{cOvYC+IoWd&Zaa-GJ{R^Y1`dvIei%>p0B%MY&G-Zq&J{ z3oR>ld2Yf!wYI#*Fb7z3B{nW{FSS@(7mmAwtS!scQGojpH>o{vjq7>kJ$F4TJ+o!6 zTt)0R0x5RqSZ@E?+DB#ChZN)m} zDIFKSAbrq$?2Bq2aL=uNW1{n{bS)wE=pu2Q%?_8U|A6^+i;u^vPq;#Qc!TsotAid@ zd%(TWwk`MYd$oXgRCS4c`>0(ONgsQ(z6;k$-vezQ9)2%1ie-xI`7d?WKklGoYhA$>b@1Lc-gYpK4g*nmFm zeIjBa_h4DGCoU}#Yoyg=XXw5H#$*g_`OHpT+n{P(*SeQ)KtGVai$pA2D}N|>j~*)| zK1=4Ezh&}eOYXxb2eh33O$%(Q1?&^UT6#c!TWi|;H<{y-weIBuvLCZZ<&djA(AENd z<3k#2(Dqd6!xINA^=`3vQu-jZg5~O&4O;ADJNzVT1pZqqE7drmz2D@%pL|r}acbX1 z;+mTcuhy7@yaTl4{`2YBkP&_~C8R!vWI6 zHtB;F>rva*-`Jg`zKV-QaxqKHftBA`4(Jcps`-kqN)KO`KFHpuWq$8tnR#K!+K~UQ z4(rYK?+Lu1HxT+aK2ma|--_JDDi zvr(^of)jPz*#L93{oUnp>J#J($}c=3eb90VTqoPxv(|mBgP+-e&v8?I<2>240M{?` zTgA!vWyZSZ4;2Hm##V}Nfw7?V*V<41T6DLtGmJzOn4Y^HCV=i2fXNF1}Qy;bkAW^Gv}W?CjTN^H*hFFhPBJscxF942>Xuf%#`|H_N+L|-3ApWxgyD4ynB4&!OtpOGI*J(-xc zNR68sqcUsK3AC0m`MS~$m4 zEd8L4qd&*7*^6D|GwL^J&;2=#8T2d?G-gQLiE8(1rbbu%8W#W%MobulXHk z_Sh_IZ}O8Gc)G z>OA|@mqF}d`Mn#oJ!iy=R);cIxlqRj&J)%<^qJSIf4EwDus1VNU~Wss*?%v=*v~UXQ({XZJhJF zvN2fdH;~jZ|J<)udKLdKbk!-OYb)gc;3_si&R{z_ePAZj%`8bUkzGqCBIjD zN*IT6q~i0_x)#O@)eFfXl2a^_v5ztC4xKC9E13uzLtrNmi3#U&#ImAOLHc%l6hU`sU_=T=7gz_EfZH4>6jOG zN)MVZWv_fM+2SVly0d?8$@o}fV+^;o{>r^FpH}{Eu-1AnaD4mS^113Cvaf7OUqQP) zsPBUFfIYFP&T*b>%UeKerq%;vqULR4MD}$S$$XM|9s4_;1+1gyPwrEn!3ujy&37?2 zWjy;N#5=wZVtj0VOfhRUNbFtYOS*=DctM}s;^xyDC*ayL_97GCEN=i;Ne_${iGh;Y zC$nViXnrsLLz1;v)jF{AP|+_u+eb4(K^1F48`Hj?8mfjfuLl?bCi-V}|FY2gK7h_a4*z z2lYuF)8fM2Y7Y-fAGG~;%%yrKd5_Mod?K`X$GkLq-j=BmEivC}PeSvNv9jekI2XsM z_3ib@^~HP%xp&2L#deO*JfYQ$%+-C*Vaq%0X@E_&0Ov4cpVn(~ea_((VrYw-S|?dE zEq{)mu%sWr{9kK*g~}i8|M@!v#?U8pZ3FsD=IZPJM#m4**OKp&+TQ}m&#nW{`>f72 zXf*}w5Ffutum3@NC(9groBD*rOiTHxVyE;y!RMkpA@`hXTqJXzvoy}2#S1)_+B5Jo z!Sz>+b=*61gZ3QHQ+v2ZdY~V^RPBT2C;3d_W7{4z=2f%5o>gLGy$@7u$>GvewKsU4{%@Ra(G_t-QQvAH(;LAVmI?Q&86ID#W&w0o_pJSxljEE z^aE{uZK`veC)@HCV1B4|xEfUcD?gezxk%P-s0~}JbZiTp^W0Y3+GD@r%DgZsgOf88zxVYWQ|#SMK@`@%u~yp(~|Rt z=Q>>9g}bDOJZDSK>2R_1LAy52XX=dI8aw%AirmF4*-KmGCv+!-(%y3tp!_^fRaEb2vkKxJY_Xy|5ar@6HO_!G=d)&9&N(gX-(tByI(%}~!Q0dhpWOPR9@*>oyL5cOoMFw__RJF}C38=U z{IouYXQcN!{ZxLx|7 z;*8@>=7=Tje6>D@Go^>jBgq=u^GP*bf%V?z%oXYrGPdPG;5O;u0O{cz>4O%RJ%&jgEpLG}_dqVuJPe+@fpKlO+Jj@mfPR2+gz=7hP30%# zFWT?hc`o^_dLJqOR(=ifmo-tVD-~DQgZA$R*vAFM&>Tl^WEi5>9& zZ6E1)U2}lnDBoir^nQSRyXEt@s?UJ?QDqO?=J^d;T;ns!eOt0-SD(at#_{-ROV+t< ze8yt>ZQd7syX%v|+BI;vNBUs(i28&VrH3y_AJj9{y;Kh6=lx0WsPsY02b=>9n%!Pf zdr;k4dkeJfh^0$R-Kjo7*IRi8ZL65S4!KuLt*wySdXcy2eg@6{S(ldQfn%kIBc+EE zrHAd(1MJ_%;d8t|{ljU}LvlJxt%ZW^jJbU7j;|s9!}5NR9Nh9l-~s7j%X{o;fK9c4 z^R__$mfX;i^Hy=8@<7em_|@_a_7jR4~adu8RPbzhYiXk9no1-rF;<0Ksu&XykNqfS%^)jUJ)PL@04`E75^TV9+VfY0_;}*ZiMHD#~tu`Xiv_Es-^VYnyoN5 z>TlnV*4T=xMPiYq_ZkLm-}`p8hx4R|E2M{Wq=&<#hxbYk2T2b{Ne|~r4<|?u8P783 zm*l%z?g^AHu}{eumRD`iehY+rxZQ7_mF2!*Q=Q{H*_O8eYLoi+&#u&bycQ&Pb3D|% z5A?D08%<}tds4>+#m$O~S|hBBqL)9@8cDobB>lX`t9O&|hjku*{{r~D^Z|d%(fYvu z*Pfqi0LR5av(?cWGu$XWz@JoXJX_y0J|;d`vPQsjY4w`UUw-++(u3@oJf!xz4$$@9 z37(Q3Qqx%8vB64ufgGmx61=AXd$wa4A9*jl#~XBf;62`=YZx?}Kcx1->XSM)yexgd zxYlwf%#)0<$Y(WX(6i3mO1@^vyld_G7cd8^P2X`Xw3;Y$!7?$*(s@HTMS8eedPtk) zso*r}!D}@jwkF0dGWNE-2;}^hZw9|4J?tZW&~l-Vt3AL!w0Xkwa$eo7V?*ZeD`b3( z}h~awE)-P6`G6TCg}n5zvYVZt>w$$x3f=XS$i<9MIPIr?NzECsvP}s z=|O9z>QMQt@?Y|8mD|f#uLJkZ;zuR9=T`5C-1jB$ob*B4+qqol3iSDht38}9eNg*_ zUjM1{e1G)+@D=SH&2}9VZk8St`@lmx8s=jyJ`wURMml(PFi24s& zj^z0l*ylkV8<@+fZ_QE7+t|1Kx}I-a3x3{Vr}VH*dN@{kI7fOoL3)54YJc=ZeSZc> zY_!Z6lAKG;hR$gQ+0$L5Yu!QBln1FVd80lDKGWFJc6u0mK>8s2#Fm*Oi)0_py^rZ! z;RxyB&5DmygXZEqxfE$Q>&!`tsku#T8x*M6$}Q~b9j z_gkv&c}jggxk26$E%GHDGpKh~FRCx&smC4U-x#yZZyqgI4}j$ImdxSd$5K-+(ta~I zE{5IG_XOf*y{B^Cv2%kO&;FM=hH{45=h8iJMI(JdL3M)O+!q*orlpfBJ9?p^;E|MOukREnR4~&nz$M{jnyl1v-bHm>S_+-wv z7BBLwENKVC$N2t5VxG5rW3B557f27sOAn5D;biGyyYz6G^g;WLO>Aa)1~^Z8NKBUG zZ(Z6P%UrPJT0TOb!|SDoeWVXK4(D~{Vz$j)fNNjv$)nnDf*G&>Trn~1lpeOc!=47% zR13t1SzZjzlpaz?T51j#*GV66@1^bO-L5qI^agERKc;a8m1D~H zwb=K9`s|74)gI_$U)J%1R%1S(_CUXJuG$B@$LgzN*xvT^cImr8d!I|2+^_Km%njP! zoodGHsV2_9Qm$UDKH*aNmhf7&hwakC&C&y|r(&<-FyHHO4>NViBK4f>9o03`1MBXb z)AB~ZV-?Hlo)Ld*U%@e2^CzTUT%_}xL7P9Ye|s*B^_Y`&eqM`pJ|o6Q`1Z_q%Zi7N zi-&+irH7NG2d~3`y&aC3n$NQS4ew*5zX!zjmb|a*g;=7l%$!;zpON>1!)v668>9#2 zcvUNM&z$)i^s1FzGyfd;*P5&0XzAgt`5CyTFy~v%D4$R{;@#4N zV`tbQJzyNh5yrvhi{!7epT^p=)lJXHHxBCe7mk0Z4O>0N&Ls#xm40t6l07^sF+^S{<}o?StesmZ^Id$(Vkrz6*Cq4{5W!2smDb zgQSNGqzC4!j9I8FE3P`ea(?nzJgM(O)~n@t8`OTe_RZU~%e7b@1Kub-Tq%9f;y7$x z`zV@6?K%F8K8NEqSHt1b!#AXdE$^_W0XEeF@KNQn@7J8A&tXjT{2nxa5}#*zGGL9# zd|Truk8gSGUd~&w#WCjNfU#0~ezTf=LCf-&&*``qHfVcs98>onTU4BPygw4q*TLtk zm6M11&4ud#U3cMY3h?t41D)^F&ahSXH5a+oxdy8r)G^_D`IGQEwFf`fLEAG&%x$%p za)#Q2)%BK5mBX~_$Y;gE)HW3#94BnM0AI>ICw;)0C~cNyW7|71 zP?Gzf?7zIn9rLnsJw4C14{!^P_gI4#D^J(?g8ElZfZU^OU|VEw#_~PjEa}1ZRXA08 zNSoz0aIN%!^Cst7B==zsQ~$u{lDTQgSd6vYYT>u5U${hiU@fV6kU7WwpR6;>)xXoc z4L>D4{HgS?sm^hpY|C3fJ}voT^Gor0l9i|1m&<1b`jF({i;OR{#5!$#?$mdKHSz;kVn=9oCD*=cvC30fk2t;t<;uyM6IU%W_9E>o2lZR{qcrxpfIh_WAePxG1Gb9&EL)xRvpR2hgY*IG>$bPa{kIRR|DcV@*!mHjFUZd2e^pOa z{h;g5zC+bjm#PghJ#l7{zK22WA9(KRc@&&`Ilp9LzGZyyA`#arZYX|mzGW^iQnsy_ z$J%hr)5Xp^b^L(#uXyO#cmp_JdPv-`Oq=EV!12<_fjzf8Km7>`x!tY=v4i?|v8Q zI1$c}9)3moAiv+Sj9o1m2bqV&k6I=sSho13+BSO)?HR>qTb>NAksffrnQNAnUpUWT zTvoiSy7h7C0nez-2hZ2QxO}VH19K9`wn6jfTno8&%Ns#*BFh~cFdwLWWzUOC0O!)N zY7Zw$4;M-g%sDyt&Q_m6dtR6`Yv&MymK(fP$A*>kL5rctowC*!d4>9i^Q4E1qzA{* zLGsN-enQtX;QsL6ls}y3ofc>oppR0lDql>$L7xDhpSshs#ZCA$)}D+JT)$0s%p1^8 zW-oS;^jD03_N{{!9}(~9+iTxW>z=uw z{12W*t9RsAs-OIC>{x!t{s_4T{d4VmdH?H~4chZ!zM*SKeiK_RGCof-{&kUfUTw@v zbgn(IR{Nl0lzuXJ0IO&)v|6g$4W;{#8uXdf9yP3za>mqqySQjl9x=zOi z#w_OKoM znEDJje&s&)8F<#Q@gh0TwTDxGx7!@k{4g!>H*bN8hxP&Vja=`{QMr~GHspsh#wpVh#%M*;tq;}(fn*7)Z z_{jc@QpOL?zK zp9{uW`OfUWF^6om1J-hUm}Ohn7@u`X8wY+n@6Z)yla7WE0QmL9$=JzOY#Q2xyM z$W?%LfZvO47RealI34gzo3B1keFE;WJ$KY!xyD7}e%rHP&OrSvohu-(YjG3z#oVCg zvgdi8p(U?@YlruHt@?%J2$skPYCk}^OuI++KS|#O&XeQR9^NlKY?B_C&*WMxc`wL; zoBdf!{zDxTUQnzIkElI-NP1vSb+y_9>i4P_T{}JvzT14`yq+y@fwg>K;QFooLhl>W zx3D&$FWQSQWp3H_Uf?V8+wes?4uxIPL)Mw)DI3twv{=dYh#1X%Iqo0wy;WIgMUZQ> z)cu8K&pULVgEk)+Lle&}86!A8?L%M9`E#0%4~I%0)H}w<)rPpq7+3j%@&;aii)D^O zgSF;V!T6|nm;IEL<6_|TU#|9`V{3l{bF$56-Y?gPt|ix+>sloGRBZ8_M=nvZ@i?`= z3oy2F?ja7gHORSyKD7sPuf{$e>{fgXK6iLhdcgg*XQX+w8ss-|i=-X4yf>Z(_^z`6 zd`|Pdn9t=W>@ThX^w0LiVYl=FYm=6va(s?+u8s}#74)U42`sg~3g+{;hOEm)-lzTn z{aGh+Png$V$N6~r7GBRu`Ytez(0AqjEE5kc6Avv<2WLwkw7MqtmgF_JxbXLMZ1{@w zK!2MY#PaS9+Pz<>_P`n{^`a$f7W8R;k};Gve4~yJ|CjvmfctpNTiUr`hnj=7iRMgT z&6|91k%|F{2bGsOKjX7=d>XVGQ}Ho2YQI6+rv3rBC9k1ffARuJj$bvXV@_hVC1P34 zHP1Odi|zUx^4u)B-g#}T`)E%*$JN*LT*41)tnh^N!CLFCkR7wGs@8l&ZK^fHcbz|+ z7c?zE3otikO}Dq$#C6KJ#&ySWxR$x@;B#7S!ggHST5&M!&2P}}F_xwNTO|Bp)~;pZ zxn*i5%jR!gpA1?(NdMy+Z_r{HZ56*I+0KP{-C|sPtz`VYpJmz>$#}ZASkFFsUX{1pFFnxTo}l*dlhVVhqz~GDIQ=SZ4tw&N_qLzF z`LI%q3w##s*`X$?xaVg=8}i4EtJ*TU)Q6ONP~-YhA7oGjZr zO4d7P>br2N^uU~!^#XkbeJ1^C)~;mpb&Mm7*NoBVlN{f2<+w6v{!r(w_{(cxJ*7C5 zV^;6hI3f3HN&mxhxt<}dI7$)_62vTzpgE`-{sz?_CfvIa+mJE z;{UIt-n-hLF?Q1*@_FGJT8ubH#|OuZL7Ov);g+n+Xty8Gcj0x?2h4fakLkVwpBHSt zwjBp~&Wq%JBVz&QJ#vDoft)WPHnqHkWAeTZ*7XO*uUpj~bRYFj+%?r;^-t6u{uAlp z0O^4-{Q(^taGhMgt!8A-scXr)s#?>z#x;QUIYjN@e#OV|P3a-mXo>Y({=mb~ zx5WaS|BPkK$>|5+i`sr5b4d0%N9!S+DLv5No}u=@xCy_Vb!@p}?1P_-UtFYOOyUjS z8)lzukr-< zbAmy8j)>#QK`d8@cg#21z5(wGc5ZWkYk|3(&k=A9sreR3TOsbWYj{-Sgddh3{)60+qaR?*QjDtl>-%+VV14Si5{{G}5)Un32acB>&XOKDCj2?;rWOkjzuNB{bS;T_ zZLjrS`K3Yfg+)G~{)39)zGjTy=EDX0E+nQ|GKTW`B5z@AYJNEOu>1$$bm>9QqH>1Y zbZ&Lj#chac@^)GIb@!pC2hiW#Q6Z*W*@?`Juj}u zAJTW>$E1f>Ne_vimTy#hz`Uw|>*yo;KK8JbEd%q<7B}@AYoGiK>ETaxzHq1ht(&k? zd$>({n4Wf8;BTV^Zql6J6BnsHAa=BOfAN==iH(-*kGR(SJY!SNV|g~<+T5x3z;&(s zJ${XKW#!Ae_5Fhzw7sSqG-hB9@SNJi|E4t_j#2xd{SJ12wFl-5^#8m^`b^d@@M*~f z7Kyl7al`S0&n>pGWd9wy{=oiEt6$)=;PvoXFcx5cAbZl5yq=c-@ZJ$4R==QQ!hb4# zu(z7AD&aGsp0_JG`gW7cs#9&t8v z)-v(mvbFE4@4|bf2d}XZ`&s^_o^|*`=^=B|atF9mdf@eQJ}_P%s{Y|GG=A7ediWmc zA+gbN{x>Z!Eif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%G zEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%G zEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%G zEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%G zEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%G zEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%G zEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%G zEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%G zEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%G zEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%G zEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%G zEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%G zEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%G zEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif(c*JXhpIbgL4hf5!< zZ#iHUR(Gj=uwJWuuzH``!!Jn>I(8MVk{*tf9$qIsTqZs2lpb=N<#`}uSRM@yk{&X) z<$mBW>EU4M;r-IX8PdZE(nI=M9s!P%9xjp|Vgt+Tz}?crW75O5(!+=MU#-H?(!*}) z;WYIhtRK;H3A>~Z%C5F=?$45TJ4&C!q0+-K(!(Lr!_P<$$4U4DE^AGHU}?bU^9AFOYetp;`Nz6UK|^99=1yle_iW$jx#MVE$|=B0*Q5&tD8X9v1MYH<*fjIX7zft57zPxdt$Y}`h$OB2U*91+ z3|5jMZHs(ZeFm$ysZY2?emMMs^zgFuaIgA@N2L$iGfmvEVG7KPx@tSy?7V zS-uARxb%?mEKdZ9v6i$OV-}Bnulfb{IY;e*_eK4k>J#24J#hRp)gCUB9L?%KO!4(CVp=$q$Fqq=%Kp8LU5`V*}3>+gsA+v?t?5Vv!|d z;=%eHn5(4C@^ygrIa=)@^T?9Vh3%*5yO8578H19iSe^^ckiI7_Py;AKVwZ3K6 zgk+wHW%f=M`Dc0-fqB9$>KArM4~&~Ps6E^yJ+RMz@M4|^Obbj4e8(2R+ArT=9})jy zc{pHBo^@<_7dfSD(NbmvdUeS2TZqsJ;uVadPdJ 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℘FzhI73EW8?BFsJIhpEc+r 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

$&gm+3r{QEnRb))F^`#A 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%0DxjuZro47I0Xy44z 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 audioAugmentationMap = {2, "pre_emphasis_filter"}, {3, "down_mixing"}, {4, "spectrogram"}, + {5, "slice"}, {6, "resample"} }; @@ -231,7 +232,7 @@ void verify_output(Rpp32f *dstPtr, RpptDescPtr dstDescPtr, RpptImagePatchPtr dst free(refOutput); } -void verify_non_silent_region_detection(float *detectedIndex, float *detectionLength, string testCase, int bs, vector audioNames, string dst) +void verify_non_silent_region_detection(int *detectedIndex, int *detectionLength, string testCase, int bs, vector audioNames, string dst) { int fileMatch = 0; for (int i = 0; i < bs; i++) diff --git a/utilities/test_suite/rpp_test_suite_common.h b/utilities/test_suite/rpp_test_suite_common.h index 3ec123d7f..ea3117041 100644 --- a/utilities/test_suite/rpp_test_suite_common.h +++ b/utilities/test_suite/rpp_test_suite_common.h @@ -106,6 +106,7 @@ std::map augmentationMap = {87, "tensor_sum"}, {88, "tensor_min"}, {89, "tensor_max"}, + {90, "slice"} }; // Golden outputs for Tensor min Kernel @@ -456,6 +457,43 @@ inline void set_generic_descriptor(RpptGenericDescPtr descriptorPtr3D, int noOfI descriptorPtr3D->strides[4] = 1; } +// sets generic descriptor dimensions and strides of src/dst for slice functionality +inline void set_generic_descriptor_slice(RpptDescPtr srcDescPtr, RpptGenericDescPtr descriptorPtr3D, int batchSize) +{ + descriptorPtr3D->offsetInBytes = 0; + descriptorPtr3D->dataType = srcDescPtr->dataType; + descriptorPtr3D->layout = srcDescPtr->layout; + if(srcDescPtr->c == 3) + { + descriptorPtr3D->numDims = 4; + descriptorPtr3D->dims[0] = batchSize; + if (srcDescPtr->layout == RpptLayout::NHWC) + { + descriptorPtr3D->dims[1] = srcDescPtr->h; + descriptorPtr3D->dims[2] = srcDescPtr->w; + descriptorPtr3D->dims[3] = srcDescPtr->c; + } + else + { + descriptorPtr3D->dims[1] = srcDescPtr->c; + descriptorPtr3D->dims[2] = srcDescPtr->h; + descriptorPtr3D->dims[3] = srcDescPtr->w; + } + descriptorPtr3D->strides[0] = descriptorPtr3D->dims[1] * descriptorPtr3D->dims[2] * descriptorPtr3D->dims[3]; + descriptorPtr3D->strides[1] = descriptorPtr3D->dims[2] * descriptorPtr3D->dims[3]; + descriptorPtr3D->strides[2] = descriptorPtr3D->dims[3]; + } + else + { + descriptorPtr3D->numDims = 3; + descriptorPtr3D->dims[0] = batchSize; + descriptorPtr3D->dims[1] = srcDescPtr->h; + descriptorPtr3D->dims[2] = srcDescPtr->w; + descriptorPtr3D->strides[0] = descriptorPtr3D->dims[1] * descriptorPtr3D->dims[2]; + descriptorPtr3D->strides[1] = descriptorPtr3D->dims[2]; + } +} + // sets descriptor dimensions and strides of src/dst inline void set_descriptor_dims_and_strides(RpptDescPtr descPtr, int noOfImages, int maxHeight, int maxWidth, int numChannels, int offsetInBytes) { @@ -1295,4 +1333,60 @@ void inline init_ricap(int width, int height, int batchSize, Rpp32u *permutation roiPtrInputCropRegion[1].xywhROI = {randrange(0, part0Width - 8), randrange(0, height - part0Height), width - part0Width, part0Height}; roiPtrInputCropRegion[2].xywhROI = {randrange(0, width - part0Width - 8), randrange(0, part0Height), part0Width, height - part0Height}; roiPtrInputCropRegion[3].xywhROI = {randrange(0, part0Width - 8), randrange(0, part0Height), width - part0Width, height - part0Height}; -} \ No newline at end of file +} + +// initialize the roi, anchor and shape values required for slice +void init_slice(RpptGenericDescPtr descriptorPtr3D, RpptROIPtr roiPtrSrc, Rpp32u *roiTensor, Rpp32s *anchorTensor, Rpp32s *shapeTensor) +{ + if(descriptorPtr3D->numDims == 4) + { + if (descriptorPtr3D->layout == RpptLayout::NCHW) + { + for(int i = 0; i < descriptorPtr3D->dims[0]; i++) + { + int idx1 = i * 3; + int idx2 = i * 6; + roiTensor[idx2] = anchorTensor[idx1] = 0; + roiTensor[idx2 + 1] = anchorTensor[idx1 + 1] = roiPtrSrc[i].xywhROI.xy.y; + roiTensor[idx2 + 2] = anchorTensor[idx1 + 2] = roiPtrSrc[i].xywhROI.xy.x; + roiTensor[idx2 + 3] = descriptorPtr3D->dims[1]; + roiTensor[idx2 + 4] = roiPtrSrc[i].xywhROI.roiHeight; + roiTensor[idx2 + 5] = roiPtrSrc[i].xywhROI.roiWidth; + shapeTensor[idx1] = roiTensor[idx2 + 3]; + shapeTensor[idx1 + 1] = roiTensor[idx2 + 4] / 2; + shapeTensor[idx1 + 2] = roiTensor[idx2 + 5] / 2; + } + } + else if(descriptorPtr3D->layout == RpptLayout::NHWC) + { + for(int i = 0; i < descriptorPtr3D->dims[0]; i++) + { + int idx1 = i * 3; + int idx2 = i * 6; + roiTensor[idx2] = anchorTensor[idx1] = roiPtrSrc[i].xywhROI.xy.y; + roiTensor[idx2 + 1] = anchorTensor[idx1 + 1] = roiPtrSrc[i].xywhROI.xy.x; + roiTensor[idx2 + 2] = anchorTensor[idx1 + 2] = 0; + roiTensor[idx2 + 3] = roiPtrSrc[i].xywhROI.roiHeight; + roiTensor[idx2 + 4] = roiPtrSrc[i].xywhROI.roiWidth; + roiTensor[idx2 + 5] = descriptorPtr3D->dims[3]; + shapeTensor[idx1] = roiTensor[idx2 + 3] / 2; + shapeTensor[idx1 + 1] = roiTensor[idx2 + 4] / 2; + shapeTensor[idx1 + 2] = roiTensor[idx2 + 5]; + } + } + } + if(descriptorPtr3D->numDims == 3) + { + for(int i = 0; i < descriptorPtr3D->dims[0]; i++) + { + int idx1 = i * 2; + int idx2 = i * 4; + roiTensor[idx2] = anchorTensor[idx1] = roiPtrSrc[i].xywhROI.xy.y; + roiTensor[idx2 + 1] = anchorTensor[idx1 + 1] = roiPtrSrc[i].xywhROI.xy.x; + roiTensor[idx2 + 2] = roiPtrSrc[i].xywhROI.roiHeight; + roiTensor[idx2 + 3] = roiPtrSrc[i].xywhROI.roiWidth; + shapeTensor[idx1] = roiTensor[idx2 + 2] / 2; + shapeTensor[idx1 + 1] = roiTensor[idx2 + 3] / 2; + } + } +} diff --git a/utilities/test_suite/rpp_test_suite_voxel.h b/utilities/test_suite/rpp_test_suite_voxel.h index c24fc29a8..77de34f3b 100644 --- a/utilities/test_suite/rpp_test_suite_voxel.h +++ b/utilities/test_suite/rpp_test_suite_voxel.h @@ -242,6 +242,51 @@ inline string set_function_type(int layoutType, int pln1OutTypeCase, int outputF return funcType; } +// initialize the roi, anchor and shape values required for slice +void init_slice_voxel(RpptGenericDescPtr descriptorPtr3D, RpptROI3D *roiGenericSrcPtr, Rpp32u *roiTensor, Rpp32s *anchorTensor, Rpp32s *shapeTensor) +{ + if (descriptorPtr3D->layout == RpptLayout::NCDHW) + { + for(int i = 0; i < descriptorPtr3D->dims[0]; i++) + { + int idx1 = i * 4; + int idx2 = i * 8; + roiTensor[idx2] = anchorTensor[idx1] = 0; + roiTensor[idx2 + 1] = anchorTensor[idx1 + 1] = roiGenericSrcPtr[i].xyzwhdROI.xyz.z; + roiTensor[idx2 + 2] = anchorTensor[idx1 + 2] = roiGenericSrcPtr[i].xyzwhdROI.xyz.y; + roiTensor[idx2 + 3] = anchorTensor[idx1 + 3] = roiGenericSrcPtr[i].xyzwhdROI.xyz.x; + roiTensor[idx2 + 4] = descriptorPtr3D->dims[1]; + roiTensor[idx2 + 5] = roiGenericSrcPtr[i].xyzwhdROI.roiDepth; + roiTensor[idx2 + 6] = roiGenericSrcPtr[i].xyzwhdROI.roiHeight; + roiTensor[idx2 + 7] = roiGenericSrcPtr[i].xyzwhdROI.roiWidth; + shapeTensor[idx1] = roiTensor[idx2 + 4]; + shapeTensor[idx1 + 1] = roiTensor[idx2 + 5] / 2; + shapeTensor[idx1 + 2] = roiTensor[idx2 + 6] / 2; + shapeTensor[idx1 + 3] = roiTensor[idx2 + 7] / 2; + } + } + else if(descriptorPtr3D->layout == RpptLayout::NDHWC) + { + for(int i = 0; i < descriptorPtr3D->dims[0]; i++) + { + int idx1 = i * 4; + int idx2 = i * 8; + roiTensor[idx2] = anchorTensor[idx1] = roiGenericSrcPtr[i].xyzwhdROI.xyz.z; + roiTensor[idx2 + 1] = anchorTensor[idx1 + 1] = roiGenericSrcPtr[i].xyzwhdROI.xyz.y; + roiTensor[idx2 + 2] = anchorTensor[idx1 + 2] = roiGenericSrcPtr[i].xyzwhdROI.xyz.x; + roiTensor[idx2 + 3] = anchorTensor[idx1 + 3] = 0; + roiTensor[idx2 + 4] = roiGenericSrcPtr[i].xyzwhdROI.roiDepth; + roiTensor[idx2 + 5] = roiGenericSrcPtr[i].xyzwhdROI.roiHeight; + roiTensor[idx2 + 6] = roiGenericSrcPtr[i].xyzwhdROI.roiWidth; + roiTensor[idx2 + 7] = descriptorPtr3D->dims[4]; + shapeTensor[idx1] = roiTensor[idx2 + 4] / 2; + shapeTensor[idx1 + 1] = roiTensor[idx2 + 5] / 2; + shapeTensor[idx1 + 2] = roiTensor[idx2 + 6] / 2; + shapeTensor[idx1 + 3] = roiTensor[idx2 + 7]; + } + } +} + // reads nifti-1 header file static int read_nifti_header_file(char* const header_file, nifti_1_header &niftiHeader) {

$&gm+3r{QEnRb))F^`#A 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%0DxjuZro47I0Xy44z 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 z%0D~S=aQ>_0Vs5S_*=?*|g28~=+jKGhJ>x}VdydPtE`YA@NZ*d*^zN8rL ze#Nz*Tv3d$R$Rjxw-o?d1;w?-?p0;)fjvwy`~x@}GSNZBwXCCT>=Oz$&O$>iLU0Y~ z2Z!=Zh>Z`oZJLK8Bngc|*y&3y5Zg!Fnf)b5a-o~=Ad(D+^w{DWV^>x=JtC*#E3RYH zXO)kmOnZ%h9}2tTE=q9Yw}|fX@YFq>0qxL4yH4vC7$4tO0HZz`X~z4!C!mW9Tx5!! zU%3q#@I&C*e>*_-CmH%uPolHvFFiCvBv!+oS|huckEVixgOAyi_~SOxR@f-~l#Q&X zZKOBZD7xB4>KYpb4G(7fnG-d~*V#sGy^X>f?K-R%V5=^r-Zr74-93E=P|*mCaI;NO zx7cC9tyJ`CzLY3BzTI|cuh=NO6NzW@30kJDpzrozIePlu`(HQv(%j|PhWPU^)iv^o z*6*fwZ*Qh<9gSaUL3Jb!gzcm8^AXo^53bbBqw!;no83EM#y$iiY?75jYnP1kzYZ&_ zYjuvowWCEc)HlJvtsB zFy$~j#!F`tkAV*)G5(Nz5Z#&~6ZN zq&!AI5ZX&5K`)bpsE^t`GQS*hsxHmJn*eR)@v;o}Bnd;e0vgj(dbkV|p(y9|oM!bU^-n<7=n>NP2=!3FA2u zYP|v3_!wWWK3B1oOL%wO1x?-UrG_{AQt2~3h(+^dxZ0m+_`-u097y=92_zLCOc*y{ zU~LHD-}EU24i6(K90BOb8bP@7MGaUV36Aklx=(Dm=nZfgi_(1uMHgN?CI(STo}2gi z+~#~W3yI34OB)9b@fL-339XwzNMzI}NON?Oj8lI?lJCA=as|o8uwVs9Z2H#))W%d1 zfW>g%PLMA~xKdi%X8;;?X4xBvt!H|*RE^##NKjGlq6E8Em5FYG0g4&F&(|-}LJheK z_a^ddvpE}QC?w~w@EoaQ-AjS{UN5=K3)SzZ$8I~z_VV1(2k^+Izo=2h1>~Z$pKAmc zLXuU^q8%H52w1$7?s_lYRV*Ib3oW7O`c1wbw8lf2wUiX-oa74nG8q*K^C&(awULA` z@Ffo{hh4mpu@xk?rcWXAX}=PYfZ>&ZM)FQRti`Oo2?6%E_70{$OBv;-H?oGjN9)VS zpnywESqpDs3p__MH~YLN;hDi=>#3gck7uB7?YEQ|yO}zQkiGwpj^ RKLB!-?{;=}y(FIR@h@v7hpPYp literal 4377600 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 zKop1qQ6LILfhZ6KqCgag0#P6eM1d#}1)@L{hyqa{3Pgb@5Cx(@6o>**APPi*C=dmr zKop1qQ6LILfhZ6KqCgag0#P6eM1d#}1)@L{hyqa{3Pgb@5Cx(@6o>**APPi*C=dmr zKop1qQ6LILfhZ6KqCgag0#P6eM1d#}1)@L{hyqa{3Pgb@5Cx(@6o>**APPi*C=dmr zKop1qQ6LILfhZ6KqCgag0#P6eM1d#}1)@L{hyqa{3Pgb@5Cx(@6o>**APPi*C=dmr zKop1qQ6LILfhZ6KqCgag0#P6eM1d#}1)@L{hyqa{3Pgb@5Cx(@6o>**APPi*C=dmr zKop1qQ6LILfhZ6KqCgag0#P6eM1d#}1)@L{hyqa{3Pgb@5Cx(@6o>**APPi*C=dmr zKop1qQ6LILfhZ6KqCgag0#P6eM1d#}1)@L{hyqa{3Pgb@5Cx(@6o>**APPi*C=dmr zKop1qQ6LILfhZ6KqCgag0#P6eM1d#}1)@L{hyqa{3Pgb@5Cx(@6o>**APPi*C=dmr zKop1qQ6LILfhZ6KqCgag0#P6eM1d#}1)@L{hyqa{3Pgb@5Cx(@6o>**APPi*C=dmr zKop1qQ6LILfhZ6KqCgag0#P6eM1d#}1)@L{hyqa{3Pgb@5Cx(@6o>**APPi*C=dmr zKop1qQ6LILfhZ6KqCgag0#P6eM1d#}1)@L{hyqa{3Pgb@5Cx(@6o>**APPi*C=dmr zKop1qQ6LILfhZ6KqCgag0#P6eM1d#}1)@L{hyqa{3Pgb@5Cx(@6o>**APPi*C=dmr zKop1qQ6LILfhZ6KqCgag0#P6eM1d#}1)@L{hyqa{3Pgb@5Cx(@6o>**APPi*C=dmr zKop1qQ6LILfhZ6KqCgag0#P6eM1d#}1)@L{hyqa{3Pgb@5Cx(@6o>**APPi*C=dmr zKop1qQ6LILfhZ6KqCgag0#P6eM1d#}1)@L{hyqa{3Pgb@5Cx(@6o>**APPi*C=dmr zKop1qQ6LILfhZ6KqCgag0#P6eM1d#}1)@L{hyqa{3Pgb@5Cx(@6o>**APPi*C=dmr zKop1qQ6LILfhZ6KqCgag0#P6eM1d#}1)@L{hyqa{3Pgb@5Cx(@6o>**APPi*C=dmr zKop1qQ6LILfhZ6KqCgag0#P6eM1d#}1)@L{hyqa{3Pgb@5Cx(@6o>**APPi*C=dmr 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 z6o>**APPi*C=dmrKop1qQ6LILfhZ6KqCgag0#P6eM1d#}1)@L{hyqa{3Pgb@5Cx(@ z6o>**APPi*C=dmrKop1qQ6LILfhZ6KqCgag0#P6eM1d#}1)@L{hyqa{3Pgb@5Cx(@ z6o>**APPi*C=dmrKop1qQ6LILfhZ6KqCgag0#P6eM1d#}1)@L{hyqa{3Pgb@5Cx(@ z6o>**APPi*C=dmrKop1qQ6LILfhZ6KqCgag0#P6eM1d#}1)@L{hyqa{3Pgb@5Cx(@ z6o>**APPi*C=dmrKop1qQ6LILfhZ6KqCgag0#P6eM1d#}1)@L{hyqa{3Pgb@5Cx(@ z6o>**APPi*C=dmrKop1qQ6LILfhZ6KqCgag0#P6eM1d#}1)@L{hyqa{3Pgb@5Cx(@ z6o>**APPi*C=dmrKop1qQ6LILfhZ6KqCgag0#P6eM1d#}1)@L{hyqa{3Pgb@5Cx(@ z6o>**APPi*C=dmrKop1qQ6LILfhZ6KqCgag0#P6eM1d#}1)@L{hyqa{3Pgb@5Cx(@ z6o>**APPi*C=dmrKop1qQ6LILfhZ6KqCgag0#P6eM1d#}1)@L{hyqa{3Pgb@5Cx(@ z6o>**APPi*C=dmrKop1qQ6LILfhZ6KqCgag0#P6eM1d#}1)@L{hyqa{3Pgb@5Cx(@ z6o>**APPi*C=dmrKop1qQ6LILfhZ6KqCgag0#P6eM1d#}1)@L{hyqa{3Pgb@5Cx(@ z6o>**APPi*C=dmrKop1qQ6LILfhZ6KqCgag0#P6eM1d#}1)@L{hyqa{3Pgb@5Cx(@ z6o>**APPi*C=dmrKop1qQ6LILfhZ6KqCgag0#P6eM1d#}1)@L{hyqa{3Pgb@5Cx(@ z6o>**APPi*C=dmrKop1qQ6LILfhZ6KqCgag0#P6eM1d#}1)@L{hyqa{3Pgb@5Cx(@ z6o>**APPi*C=dmrKop1qQ6LILfhZ6KqCgag0#P6eM1d#}1)@L{hyqa{3Pgb@5Cx(@ z6o>**APPi*C=dmrKop1qQ6LILfhZ6KqCgag0#P6eM1d#}1)@L{hyqa{3Pgb@5Cx(@ z6o>**APPi*C=dmrKop1qQ6LILfhZ6KqCgag0#P6eM1d#}1)@L{hyqa{3Pgb@5Cx(@ z6o>**APPi*C=dmrKop1qQ6LILfhchERp8Lgr>QX?yZO{P8ox2Ukv@(2owSSd@WnCs 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 zEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%G zEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%G zEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%G zEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%G zEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%G zEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%G zEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%G zEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%G zEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif%GEif(c*JXhpIbgL4hf5!< zZ#iHUR(Gj=uwJWuuzH``!!Jn>I(8MVk{*tf9$qIsTqZs2lpb=N<#`}uSRM@yk{&X) z<$mBW>EU4M;r-IX8PdZE(nI=M9s!P%9xjp|Vgt+Tz}?crW75O5(!+=MU#-H?(!*}) z;WYIhtRK;H3A>~Z%C5F=?$45TJ4&C!q0+-K(!(Lr!_P<$$4U4DE^AGHU}?bU^9AFOYetp;`Nz6UK|^99=1yle_iW$jx#MVE$|=B0*Q5&tD8X9v1MYH<*fjIX7zft57zPxdt$Y}`h$OB2U*91+ z3|5jMZHs(ZeFm$ysZY2?emMMs^zgFuaIgA@N2L$iGfmvEVG7KPx@tSy?7V zS-uARxb%?mEKdZ9v6i$OV-}Bnulfb{IY;e*_eK4k>J#24J#hRp)gCUB9L?%KO!4(CVp=$q$Fqq=%Kp8LU5`V*}3>+gsA+v?t?5Vv!|d z;=%eHn5(4C@^ygrIa=)@^T?9Vh3%*5yO8578H19iSe^^ckiI7_Py;AKVwZ3K6 zgk+wHW%f=M`Dc0-fqB9$>KArM4~&~Ps6E^yJ+RMz@M4|^Obbj4e8(2R+ArT=9})jy zc{pHBo^@<_7dfSD(NbmvdUeS2TZqsJ;uVadPdJ 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℘FzhI73EW8?BFsJIhpEc+r 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