From adf03d4ec6867b4ea2ca047b5c61c883886d3008 Mon Sep 17 00:00:00 2001 From: Jimmy Wei Date: Wed, 29 Mar 2023 11:09:17 -0700 Subject: [PATCH 1/2] 2023.1 Release PR (#1499) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * FPGA: Update dsp_control README (#1269) * FPGA: Revert "FPGA: Remove db query 9 in 2023.0 (#1257)" (#1281) This reverts commit 86c4aa82aecc328310753a8de247b95ffa5f194d and reenables the db9 code sample in 2023.1 * FPGA: Batch PR - sim support - selectors update - readme rework (#1280) This PR: - adds simulation support to almost all of the remaining FPGA code samples - reworks all the FPGA code sample READMEs to update the software requirements - reworks the FPGA code samples READMEs from the Tutorials folder to now reference the FPGA top-level README and remove any duplicated information - changes all FPGA samples selectors to comply with the 2023.1 new selectors - edits all FPGA READMEs to specify to use the CL_CONTEXT_MPSIM_DEVICE_INTELFPGA environment variable when running the FPGA simulator flow * FPGA: Remove all references to Windows in README (#1273) * Update samples to SYCL 2023 specifications (#1286) * FPGA: fix io_streaming assets location (#1289) * FPGA: remove instructions to build merge_sort on Windows (#1290) * FPGA: Update printf readme and fixed some typos (#1288) * Added simulation instructions to README for 2023.1 * Corrected for running simulation since windows need multiple commmands to run * FPGA: Top level readme update (#1285) * removed dpc_common.hpp dependency (#1282) Co-authored-by: Rakshith Krishnappa * FPGA: add simulation support to the private_copies samples (#1296) * Reverted PR#1265 and PR#1266 (#1298) * Update repo Readme.md (#1308) Update readme to reflect the current changes in repo behavior, which is that the master branch is stable and works with current released toolkits. * FPGA: Move all FPGA samples to IP Authoring, targeting Agilex by default (#1307) # Existing Sample Changes ## Description All of the FPGA samples are moved to the IP Authoring flow. The default target for all samples is now Agilex. For targeting a specific board, the user must run `cmake` with `-DFPGA_DEVICE=` his own BSP name. * matrix_mul_mkl: use single precision for compatibility with all devices (#1310) * updated latest GPU devices in Occupancy Calculator (#1309) * FPGA: add a warning when compiling the CRR design in the simulation flow (#1318) The simulation runtime of the CRR design is very long. This PR adds a message that the users can see when they compile for simulation warning them about this long runtime. * FPGA: Update throughput numbers for mvdr_beamforming design for 2023.1 release (#1325) * FPGA: Update QRD s10 default seed (#1324) This PR updates the PAC S10 default seed of the QRD design in order to meet the expected performance for 2023.1 * FPGA: Add `device_global` sample (#1291) * update the sample with mcg59 as a default engine (#1331) * FPGA: remove fp-relaxed from compile cli, use fp-precise for widnows emulator (#1321) * FPGA: create new invocation interfaces sample (#1303) * FPGA: New Code Sample `minimum_latency` (#1302) * FPGA: Fix typo (#1342) * FPGA: Add `fpga_template` sample (#1262) * FPGA: Bug fix to the functionality of the `dynamic_profiler` tutorial (#1340) * FPGA: Reduce the `decompress` test file sizes when running simulation to make the runtime faster (#1351) * Compilator update (#1349) * Change compiler in makefiles * Change compiler in cmake files * Updated TBB source files to use default_selector_v (#1360) Co-authored-by: gta * update Makefile to compile with icpx (#1363) Co-authored-by: rupakroyintel * FPGA: Typo for s10 support in `device_globals` (#1359) * FPGA: Add platform designer tutorial (#1348) * FPGA: prevent an out of bounds memory access in streaming_qrd.hpp (#1367) * FPGA: Move the simple-add and vector-add samples to the IP Authoring flow (#1369) * FPGA: Update onchip memory cache readme (#1358) Updated readme to match new template (with exceptions for FPGA), updated branding, updated some formatting, corrected some grammar. Updated content to reflect changes requested by reviewer. * FPGA: Remove Windows simulator command for memory_attributes (#1374) * Fix compilation error (#1371) * FPGA: replace Agilex™ with Agilex® (#1372) * FPGA: Fix decompress emulation flow not using the correct files(#1373) * FPGA: Fix race condition in the buffered_host_streaming sample (#1375) * Update FPGA optimize inner loop readme (#1380) Restructure to match new template. Updated formatting. Rewrote and restructured for clarity. Moved images to assets folder. Corrected some relative link issues (assuming master branch). * FPGA: incorrect path update (#1382) * Relax correctness test for Ch04 matrix multiply (#1378) Co-authored-by: gta * FPGA: Reduce the design size of the memory_attributes design in simulation (#1383) * FPGA: Fix inconsistent device flags in 4 samples (#1384) Some of the samples required the device flags to be set using -DDEVICE_FLAG=-DAgilex rather than -DDEVICE_FLAG=Agilex. This change makes all the samples consistent with the second option. * FPGA Shannonization Sample readme update (#1386) Changed sample name in readme to match name in sample.json file. Restructured to match new template, with exceptions for FPGA structure. Moved images into “assets” subfolder. Corrected formatting. Added missing build and run instructions for Windows. Rewrote and restructured some sections for clarity. * FPGA: Update Host-Device Streaming using USM readme (#1391) Changed sample name in readme to match name in sample.json file. Restructured to match new template, with exceptions for FPGA structure. Moved images into “assets” subfolder. Corrected some formatting. Rewrote and restructured some sections for clarity. * Update FPGA pipe array readme (#1385) Changed the sample name in the readme to match the name in the sample.json file. Restructured the readme to match the new template, with exceptions related to FPGA structure. Corrected formatting. Updated some branding. Rewrote and restructured some sections for clarity. * Revert "FPGA: Remove Windows simulator command for memory_attributes (#1374)" (#1389) This reverts commit 149dbb68a0dad57499b19aaaaa4ba18bcceb6fdc. * FPGA: better fix for the concurrency issue in buffered_host_streaming (#1392) * FPGA: Reduce test size from 64 to 2 for memory_attributes simulator target (#1390) * FPGA: update gzip seed (#1381) * FPGA: improve build instructions in the READMEs for samples that require IS_BSP (#1388) * FPGA: make the decompress design use shared memory allocations in IPA flow (#1396) * FPGA: check USM support in fpga_template (#1397) * FPGA: Add the missing simulator selector to the CRR design. (#1398) * ApplicationDebugger: rely on ONEAPI_DEVICE_SELECTOR to select device. (#1387) Affected samples: array-transform, jacobi. Remove the custom selector.hpp files. Update README to use ONEAPI_DEVICE_SELECTOR instead of arguments. Update sample.json files. Signed-off-by: Natalia Saiapova * FPGA: improve the minimum_latency cmake device detection (#1399) * Triangular Loop readme update (#1393) Changed sample name in readme to match name in sample.json file. Restructured to match new template, with exceptions for FPGA structure. Corrected some formatting. Rewrote and restructured some sections for clarity. * Zero Copy Data Transfer readme update (#1394) Changed sample name in readme to match name in sample.json file. Restructured to match new template, with exceptions for FPGA structure. Moved images into “assets” subfolder. Corrected formatting. Rewrote and restructured some sections for clarity. * FPGA: Improve the `fpga_compile` tutorial (#1347) * FPGA: Add platform designer tutorial: Readme clarification (#1400) * FPGA compile update - fix compile problem with USM device check (#1402) * FPGA: compile - remove +/- in path (#1404) * Document that simulator for mvdr_beamforming can take a long time (#1405) * FPGA: Add note to large designs READMEs to warn users about large FPGA parts requirements (#1407) * changed the default sub-group size to 32 (#1406) Co-authored-by: Praveen Kundurthy * FPGA: Update seeds of the GZIP and QRD design to meet performance target (#1414) * FPGA: Reduce test size for simple_host_streaming simulator target (#1415) * ApplicationDebugger: update make targets with ONEAPI_DEVICE_SELECTOR (#1416) Signed-off-by: Natalia Saiapova * FPGA: fix anr cmake file (#1420) The anr sample cmake file was not allowing to target parts that did not contain the keywords "agilex" or "a10" or "s10". This PR addresses this gap. * Added release.json for samples CI (#1418) * FPGA: add include path in compile command (#1423) * FPGA: fix the HW compile seed for the ivdep sample (#1427) This sample is notorious for getting a high percentage of timing failures during quartus compiles on the PAC boards. This PR fixes the seed so that we know it compiles cleanly on PAC boards. * updated GPU Occupancy Calculator with PVC GPU (#1425) * updated GPU Occupancy Calculator with PVC GPU * updated GPU names in Occupancy Calculator * Tools/ApplicationDebugger: update jacobi sample. (#1421) * Restructure the source code: - the common parts are moved to jacobi.cpp; - the computation parts have two flavors: - bugged.cpp contains computation with bugs; - fixed.cpp contains fixed computation; * Simplify reductions; * Update README. Signed-off-by: Saiapova, Natalia * Update GPU-Opt-Guide examples to 2023.03.14 (#1432) * FPGA: Provide smaller input file size option for gzip (#1431) Provide the option to run gzip_ll with 100 B file so that the simulator flow takes < 2h to finish for Questa FSE. * updated oneapi_essentials module2 notebook and code sample (#1430) * updated oneapi_essentials module2 notebook and code sample * updated Makefile * Add all files (#1437) * Add all files (#1436) * Updated sample.json files for cuBLAS and matrix_mul_SYCLMigration (#1442) * change compiler for new oneDNN release (#1435) * adding Jupyter Notebooks for cuda to sycl migration learning path (#1439) * FPGA: Reduce array size for simulation in the loop_unroll sample (#1443) The loop unroll code sample's array size was 1024 for simulation which caused simulating with Questa FSE on Windows to be very slow (>24 hours). This changes the array size to 16 which lets the simulation to complete in ~1 hour using Questa FSE on Windows. * FPGA: fix incorrect paths in Windows CI steps (#1445) Some FPGA samples had incorrect path in their CI steps in the sample.json file. * Pred modeling updates (#1446) * Predictive Modeling Updates * fix complete --------- Co-authored-by: u51369 * Rendering: path tracing with embree cpu updates (#1362) * First pass at CPU Embree 4 changes, need to change header Signed-off-by: Carroll, Michael R * Added embree 4 headers and CMake flexibility Signed-off-by: Carroll, Michael R * warning fixes for boolean Signed-off-by: Carroll, Michael R * README, coherent ray updates for embree 4 Signed-off-by: Carroll, Michael R * style formatting Signed-off-by: Carroll, Michael R * README fixes and removal of stub mis code Signed-off-by: Carroll, Michael R * Updating sample.json for dirs and ONSAM-1563 Signed-off-by: Carroll, Michael R * sample.json for MacOS per ONSAM ticket Signed-off-by: Carroll, Michael R * pathtracer lib ref update for macos validation consistency Signed-off-by: Carroll, Michael R --------- Signed-off-by: Carroll, Michael R * Rendering: IntroToRayTracingWithEmbree embree4 update (#1354) * rkRayTracer Embree4 GPU: Updated sample.json for validation Signed-off-by: Carroll, Michael R * Embree 4 compatibility updates for Ray Tracer Signed-off-by: Carroll, Michael R * Ray Tracer Embree4 sample.json update Signed-off-by: Carroll, Michael R * Firmer reference to rkcommon (macOS validation helper) Signed-off-by: Carroll, Michael R * Cleaning up helper script/CMake syntax Signed-off-by: Carroll, Michael R --------- Signed-off-by: Carroll, Michael R * Rendering Embree4 GSG Updates (#1353) * stage embree gsg for cpu Signed-off-by: MichaelRoyceCarroll * Add gpu to Rendering 02_embree... TODO: test/json val/readme Signed-off-by: Carroll, Michael R * Adding license file in all folders for 02_embree Signed-off-by: Carroll, Michael R * Update Embree gsg README.md * Update embree4 readme.md * embree minimal samples updated for embree 4... prewindows testing Signed-off-by: Carroll, Michael R * Checked on Windows, fixed readme... ready for PR review Signed-off-by: MichaelRoyceCarroll * Embree4 gsg JSON automation updates Signed-off-by: Carroll, Michael R * README updates... thx to @jkinsky feedback Signed-off-by: Carroll, Michael R --------- Signed-off-by: MichaelRoyceCarroll Signed-off-by: Carroll, Michael R Co-authored-by: MichaelRoyceCarroll * Fix double to float (#1447) * FPGA: Platform designer readme touchup (#1449) * Added SECURITY.md (#1450) * Removed Windows validation step from ciTests (#1451) * Rtk development branch fix for validation 20230320 (#1458) * sample.json update for macos validation workaround Signed-off-by: Carroll, Michael R * samples.json workaround for validation rtk pathtracer Signed-off-by: Carroll, Michael R --------- Signed-off-by: Carroll, Michael R * FPGA: Fix windows CI steps in platform designer (#1459) * Updated Makefile.win to resolve Windows compilation errors (#1460) * Updated makefile to remove sycl.lib (#1468) * Allow Ch18 DPC++ book code samples to compile (#1467) * Uncommented CMakeLists.txt for Ch18 DPC++ book code samples * Updated CMakeLists.txt * Tools/ApplicationDebugger/jacobi: remove Windows from sample.json (#1470) * Tools/ApplicationDebugger/jacobi: remove Windows from sample.json Signed-off-by: Natalia Saiapova * Update sample.json --------- Signed-off-by: Natalia Saiapova Co-authored-by: Jimmy Wei * FPGA: document RTL library issue with the 2023.1 release. (#1471) (#1472) * FPGA: remove 2023.0 cruft in anticipation of 2023.1 release (#1476) This is a port of #1474 * FPGA: reduce snappy decompression simulation duration (#1478) When using Questa FSE, the simulation time of the snappy decompression of Stratix 10 was excessively long, This PR reduces the problem size when running in simulation to speed up the execution time. This PR is a port of #1475. * FPGA: Set fp model to "precise" for ac_fixed sample (#1483) * set fp-model to precise for emu only * set fp-model to precise for all platforms --------- Signed-off-by: Natalia Saiapova Signed-off-by: Saiapova, Natalia Signed-off-by: Carroll, Michael R Signed-off-by: MichaelRoyceCarroll Co-authored-by: Shuo Niu Co-authored-by: Justin Rosner Co-authored-by: yuguen-intel Co-authored-by: Peng Tu Co-authored-by: Hao Xiang Yang <111762426+haoxian2@users.noreply.github.com> Co-authored-by: Rakshith Co-authored-by: Rakshith Krishnappa Co-authored-by: Artem Radzikhovskyy Co-authored-by: jkinsky <106110367+jkinsky@users.noreply.github.com> Co-authored-by: petercad Co-authored-by: Andrei Fedorov Co-authored-by: Brox Chen Co-authored-by: intel-jisheng1 Co-authored-by: Paul White Co-authored-by: alisanikiforova Co-authored-by: IgorOchocki <36711066+IgorOchocki@users.noreply.github.com> Co-authored-by: gta Co-authored-by: Roy-Rupak Co-authored-by: rupakroyintel Co-authored-by: intel-liudean Co-authored-by: gta Co-authored-by: nsaiapova Co-authored-by: Kevin Xu Co-authored-by: praveenkk123 Co-authored-by: Praveen Kundurthy Co-authored-by: Louie Tsai Co-authored-by: IlanTruanovsky Co-authored-by: bjodom Co-authored-by: u51369 Co-authored-by: MichaelRCarroll-Intel <101751670+MichaelRCarroll-Intel@users.noreply.github.com> Co-authored-by: MichaelRoyceCarroll Co-authored-by: wangdi4 <101905226+wangdi4@users.noreply.github.com> --- .../sample.json | 49 +- .../00_Local_Setup/Local_Setup.ipynb | 372 +- .../03_XGBoost/XGBoost.ipynb | 70 +- .../04_oneDal/3D_view_energy_of_8_TeV.png | Bin 0 -> 727032 bytes .../04_oneDal/License.txt | 7 + .../04_oneDal/XGBoost-oneDal.ipynb | 465 +++ .../00_Local_Setup/Local_Setup.ipynb | 357 +- .../03_XGBoost/XGBoost.ipynb | 144 +- .../04_oneDal/3D_view_energy_of_8_TeV.png | Bin 0 -> 727032 bytes .../04_oneDal/License.txt | 7 + .../04_oneDal/XGBoost-oneDal.ipynb | 465 +++ .../C++/GraphTraversal/MergesortOMP/Makefile | 6 +- .../mandelbrot/src/main.cpp | 2 - .../complex_mult/src/complex_mult.cpp | 2 +- .../01_sycl_dpct_output/Common/exception.h | 151 + .../01_sycl_dpct_output/Common/helper_cuda.h | 1051 ++++++ .../Common/helper_functions.h | 59 + .../01_sycl_dpct_output/Common/helper_image.h | 1001 +++++ .../Common/helper_string.h | 428 +++ .../01_sycl_dpct_output/Common/helper_timer.h | 465 +++ .../src/matrixMulCUBLAS.cpp.dp.cpp | 489 +++ .../02_sycl_dpct_migrated/CMakeLists.txt | 8 + .../02_sycl_dpct_migrated/Common/exception.h | 151 + .../Common/helper_cuda.h | 1051 ++++++ .../Common/helper_functions.h | 59 + .../Common/helper_image.h | 1001 +++++ .../Common/helper_string.h | 428 +++ .../Common/helper_timer.h | 465 +++ .../src/matrixMulCUBLAS.cpp | 376 ++ .../CMakeLists.txt | 16 + .../License.txt | 8 + .../guided_matrix_mul_SYCLMigration/README.md | 157 + .../sample.json | 24 + .../third-party-programs.txt | 518 +++ .../matrix_mul/Makefile.win | 6 +- .../matrix_mul/src/matrix_mul_sycl.cpp | 2 +- .../DenseLinearAlgebra/simple-add/README.md | 79 +- .../simple-add/src/CMakeLists.txt | 26 +- .../simple-add/src/simple-add-buffers.cpp | 15 +- .../simple-add/src/simple-add-usm.cpp | 13 +- .../DenseLinearAlgebra/vector-add/README.md | 74 +- .../vector-add/src/CMakeLists.txt | 27 +- .../vector-add/src/vector-add-buffers.cpp | 15 +- .../vector-add/src/vector-add-usm.cpp | 15 +- .../all-pairs-shortest-paths/src/apsp.cpp | 2 +- .../bitonic-sort/CMakeLists.txt | 2 +- .../bitonic-sort/src/bitonic-sort.cpp | 1 - .../hidden-markov-models/CMakeLists.txt | 2 +- .../src/hidden-markov-models.cpp | 34 +- .../00_SYCL_Migration_Introduction.ipynb | 281 ++ .../assets/steps.png | Bin 0 -> 22471 bytes .../assets/syclomatic_workflow.png | Bin 0 -> 591046 bytes .../01_SYCL_Migration_Simple_VectorAdd.ipynb | 490 +++ .../License.txt | 8 + .../Readme.md | 28 + .../cuda/vectoradd.cu | 50 + .../dpct_output/MainSourceFiles.yaml | 502 +++ .../dpct_output/include/dpct/device.hpp | 194 + .../dpct_output/include/dpct/dpct.hpp | 20 + .../dpct_output/include/dpct/memory.hpp | 353 ++ .../dpct_output/vectoradd.dp.cpp | 58 + .../01_SYCL_Migration_Simple_VectorAdd/q.sh | 68 + .../run_vector_add.sh | 4 + .../run_vector_add_optimized.sh | 4 + .../sycl_migrated/MainSourceFiles.yaml | 502 +++ .../sycl_migrated/include/dpct/device.hpp | 194 + .../sycl_migrated/include/dpct/dpct.hpp | 20 + .../sycl_migrated/include/dpct/memory.hpp | 353 ++ .../sycl_migrated/vectoradd.dp.cpp | 60 + .../MainSourceFiles.yaml | 502 +++ .../include/dpct/device.hpp | 194 + .../include/dpct/dpct.hpp | 20 + .../include/dpct/memory.hpp | 353 ++ .../sycl_migrated_optimized/vectoradd.dp.cpp | 59 + .../third-party-programs.txt | 253 ++ .../02_SYCL_Migration_SortingNetworks.ipynb | 356 ++ .../License.txt | 8 + .../Readme.md | 28 + .../dpct_output/Common/exception.h | 151 + .../dpct_output/Common/helper_cuda.h | 1053 ++++++ .../dpct_output/Common/helper_cuda.h.yaml | 888 +++++ .../dpct_output/Common/helper_string.h | 428 +++ .../dpct_output/Common/helper_timer.h | 465 +++ .../dpct_output/MainSourceFiles.yaml | 2451 ++++++++++++ .../sortingNetworks/bitonicSort.dp.cpp | 439 +++ .../sortingNetworks/main.cpp.dp.cpp | 223 ++ .../sortingNetworks/oddEvenMergeSort.dp.cpp | 275 ++ .../sortingNetworks_common.dp.hpp | 56 + .../sortingNetworks_common.dp.hpp.yaml | 222 ++ .../sortingNetworks/sortingNetworks_common.h | 53 + .../sortingNetworks_validate.cpp | 141 + .../dpct_output/include/dpct/device.hpp | 456 +++ .../dpct_output/include/dpct/dpct.hpp | 21 + .../dpct_output/include/dpct/memory.hpp | 353 ++ .../dpct_output/include/dpct/util.hpp | 40 + .../02_SYCL_Migration_SortingNetworks/q.sh | 68 + .../run_sycl_migrated.sh | 6 + .../sycl_migrated/Common/exception.h | 151 + .../sycl_migrated/Common/helper_cuda.h | 1053 ++++++ .../sycl_migrated/Common/helper_cuda.h.yaml | 888 +++++ .../sycl_migrated/Common/helper_string.h | 428 +++ .../sycl_migrated/Common/helper_timer.h | 465 +++ .../sycl_migrated/MainSourceFiles.yaml | 2451 ++++++++++++ .../sortingNetworks/bitonicSort.dp.cpp | 439 +++ .../sortingNetworks/main.cpp.dp.cpp | 223 ++ .../sortingNetworks/oddEvenMergeSort.dp.cpp | 275 ++ .../sortingNetworks/prog3 | Bin 0 -> 296888 bytes .../sortingNetworks_common.dp.hpp | 56 + .../sortingNetworks_common.dp.hpp.yaml | 222 ++ .../sortingNetworks/sortingNetworks_common.h | 53 + .../sortingNetworks_validate.cpp | 141 + .../sycl_migrated/include/dpct/device.hpp | 456 +++ .../sycl_migrated/include/dpct/dpct.hpp | 21 + .../sycl_migrated/include/dpct/memory.hpp | 353 ++ .../sycl_migrated/include/dpct/util.hpp | 40 + .../third-party-programs.txt | 253 ++ .../03_SYCL_Migration_Jacobi_Iterative.ipynb | 464 +++ .../License.txt | 8 + .../Readme.md | 28 + .../dpct_output/Common/exception.h | 151 + .../dpct_output/Common/helper_cuda.h | 1053 ++++++ .../dpct_output/Common/helper_cuda.h.yaml | 964 +++++ .../dpct_output/Common/helper_string.h | 428 +++ .../dpct_output/Common/helper_timer.h | 465 +++ .../dpct_output/MainSourceFiles.yaml | 3302 +++++++++++++++++ .../jacobiCudaGraphs/jacobi.dp.cpp | 773 ++++ .../3_CUDA_Features/jacobiCudaGraphs/jacobi.h | 33 + .../jacobiCudaGraphs/main.cpp.dp.cpp | 295 ++ .../dpct_output/include/dpct/atomic.hpp | 82 + .../dpct_output/include/dpct/device.hpp | 446 +++ .../dpct_output/include/dpct/dpct.hpp | 25 + .../dpct_output/include/dpct/image.hpp | 173 + .../dpct_output/include/dpct/memory.hpp | 444 +++ .../dpct_output/include/dpct/util.hpp | 116 + .../03_SYCL_Migration_Jacobi_Iterative/q.sh | 68 + .../run_sycl_migrated.sh | 6 + .../run_sycl_migrated_optimized.sh | 5 + .../sycl_migrated/Common/exception.h | 151 + .../sycl_migrated/Common/helper_cuda.h | 1053 ++++++ .../sycl_migrated/Common/helper_cuda.h.yaml | 964 +++++ .../sycl_migrated/Common/helper_string.h | 428 +++ .../sycl_migrated/Common/helper_timer.h | 465 +++ .../sycl_migrated/MainSourceFiles.yaml | 3302 +++++++++++++++++ .../jacobiCudaGraphs/jacobi.dp.cpp | 373 ++ .../3_CUDA_Features/jacobiCudaGraphs/jacobi.h | 33 + .../jacobiCudaGraphs/main.cpp.dp.cpp | 292 ++ .../sycl_migrated/include/dpct/atomic.hpp | 82 + .../sycl_migrated/include/dpct/device.hpp | 446 +++ .../sycl_migrated/include/dpct/dpct.hpp | 25 + .../sycl_migrated/include/dpct/image.hpp | 173 + .../sycl_migrated/include/dpct/memory.hpp | 444 +++ .../sycl_migrated/include/dpct/util.hpp | 116 + .../Common/exception.h | 151 + .../Common/helper_cuda.h | 1053 ++++++ .../Common/helper_cuda.h.yaml | 964 +++++ .../Common/helper_string.h | 428 +++ .../Common/helper_timer.h | 465 +++ .../MainSourceFiles.yaml | 3302 +++++++++++++++++ .../jacobiCudaGraphs/jacobi.dp.cpp | 376 ++ .../3_CUDA_Features/jacobiCudaGraphs/jacobi.h | 33 + .../jacobiCudaGraphs/main.cpp.dp.cpp | 292 ++ .../include/dpct/atomic.hpp | 82 + .../include/dpct/device.hpp | 446 +++ .../include/dpct/dpct.hpp | 25 + .../include/dpct/image.hpp | 173 + .../include/dpct/memory.hpp | 444 +++ .../include/dpct/util.hpp | 116 + .../third-party-programs.txt | 253 ++ .../04_SYCL_Migration_MatrixMul_CuBlas.ipynb | 317 ++ .../License.txt | 8 + .../Readme.md | 28 + .../dpct_output/Common/exception.h | 151 + .../dpct_output/Common/helper_cuda.h | 1053 ++++++ .../dpct_output/Common/helper_cuda.h.yaml | 1007 +++++ .../dpct_output/Common/helper_functions.h | 59 + .../dpct_output/Common/helper_image.h | 1019 +++++ .../dpct_output/Common/helper_image.h.yaml | 269 ++ .../dpct_output/Common/helper_string.h | 428 +++ .../dpct_output/Common/helper_timer.h | 465 +++ .../dpct_output/MainSourceFiles.yaml | 1281 +++++++ .../matrixMulCUBLAS.cpp.dp.cpp | 492 +++ .../dpct_output/include/dpct/device.hpp | 450 +++ .../dpct_output/include/dpct/dpct.hpp | 21 + .../dpct_output/include/dpct/memory.hpp | 353 ++ .../dpct_output/include/dpct/util.hpp | 40 + .../04_SYCL_Migration_MatrixMul_CuBlas/q.sh | 68 + .../run_sycl_migrated.sh | 6 + .../sycl_migrated/Common/exception.h | 151 + .../sycl_migrated/Common/helper_cuda.h | 1053 ++++++ .../sycl_migrated/Common/helper_cuda.h.yaml | 1007 +++++ .../sycl_migrated/Common/helper_functions.h | 59 + .../sycl_migrated/Common/helper_image.h | 1019 +++++ .../sycl_migrated/Common/helper_image.h.yaml | 269 ++ .../sycl_migrated/Common/helper_string.h | 428 +++ .../sycl_migrated/Common/helper_timer.h | 465 +++ .../sycl_migrated/MainSourceFiles.yaml | 1281 +++++++ .../matrixMulCUBLAS.cpp.dp.cpp | 492 +++ .../sycl_migrated/include/dpct/device.hpp | 450 +++ .../sycl_migrated/include/dpct/dpct.hpp | 21 + .../sycl_migrated/include/dpct/memory.hpp | 353 ++ .../sycl_migrated/include/dpct/util.hpp | 40 + .../third-party-programs.txt | 253 ++ .../cuda-to-sycl-migration-training/Makefile | 26 + .../cuda-to-sycl-migration-training/README.md | 83 + .../TeacherKit.ipynb | 136 + .../Welcome.ipynb | 120 + .../sample.json | 24 + .../SYCL_Program_Structure.ipynb | 495 ++- .../lab/vector_add_usm_buffers.cpp | 78 + .../run_vector_add_usm_buffers.sh | 6 + .../src/complex_mult_solution.cpp | 3 - .../src/vector_add_usm_buffers.cpp | 78 + .../04_SYCL_Sub_Groups/Sub_Groups.ipynb | 8 +- .../lab/sub_group_reqd_size.cpp | 2 +- .../lab/sub_group_votes.cpp | 2 +- .../src/array-transform.cpp | 4 +- .../oneapi-essentials-training/Makefile | 7 +- .../MonteCarloPi/src/monte_carlo_pi.cpp | 2 +- .../N-BodyMethods/Nbody/CMakeLists.txt | 6 +- .../N-BodyMethods/Nbody/src/GSimulation.hpp | 2 +- .../ParallelPatterns/PrefixSum/CMakeLists.txt | 2 +- .../PrefixSum/src/PrefixSum.cpp | 1 - .../loop-unroll/src/loop-unroll.cpp | 2 +- .../merge-spmv/src/spmv.cpp | 2 +- .../DiscreteCosineTransform/CMakeLists.txt | 3 +- .../DiscreteCosineTransform/src/DCT.cpp | 2 +- .../1d_HeatTransfer/src/1d_HeatTransfer.cpp | 2 +- .../src/derivativesKernel.hpp | 28 +- .../src/downscaleKernel.hpp | 16 +- .../src/solverKernel.hpp | 2 +- .../src/upscaleKernel.hpp | 18 +- .../src/warpingKernel.hpp | 16 +- .../iso2dfd_dpcpp/src/iso2dfd.cpp | 2 +- .../iso3dfd_dpcpp/src/iso3dfd.cpp | 1 - .../particle-diffusion/src/motionsim.hpp | 2 +- DirectProgramming/C++SYCL_FPGA/README.md | 57 +- .../ReferenceDesigns/anr/README.md | 89 +- .../ReferenceDesigns/anr/src/CMakeLists.txt | 68 +- .../ReferenceDesigns/anr/src/anr.hpp | 8 - .../ReferenceDesigns/anr/src/dma_kernels.hpp | 16 + .../anr/src/intensity_sigma_lut.hpp | 17 +- .../ReferenceDesigns/anr/src/main.cpp | 49 +- .../anr/test_data/small_input_noisy.data | 2 + .../anr/test_data/small_output_ref.data | 2 + .../ReferenceDesigns/board_test/README.md | 82 +- .../board_test/src/CMakeLists.txt | 17 +- .../board_test/src/board_test.cpp | 15 +- .../ReferenceDesigns/cholesky/README.md | 87 +- .../cholesky/src/CMakeLists.txt | 83 +- .../cholesky/src/cholesky.hpp | 24 +- .../cholesky/src/cholesky_demo.cpp | 23 +- .../cholesky/src/memory_transfers.hpp | 18 +- .../cholesky_inversion/README.md | 108 +- .../cholesky_inversion/src/CMakeLists.txt | 80 +- .../src/cholesky_inversion.hpp | 6 + .../src/cholesky_inversion_demo.cpp | 23 +- .../src/memory_transfers.hpp | 32 +- .../ReferenceDesigns/crr/README.md | 113 +- .../ReferenceDesigns/crr/src/CMakeLists.txt | 51 +- .../ReferenceDesigns/crr/src/main.cpp | 38 +- .../ReferenceDesigns/db/README.md | 165 +- .../ReferenceDesigns/db/assets/q9.png | Bin 0 -> 38157 bytes .../ReferenceDesigns/db/sample.json | 24 + .../ReferenceDesigns/db/src/CMakeLists.txt | 82 +- .../ReferenceDesigns/db/src/db.cpp | 93 +- .../ReferenceDesigns/db/src/dbdata.cpp | 103 + .../ReferenceDesigns/db/src/dbdata.hpp | 7 +- .../db/src/query1/query1_kernel.cpp | 4 + .../db/src/query9/pipe_types.hpp | 272 ++ .../db/src/query9/query9_kernel.cpp | 644 ++++ .../db/src/query9/query9_kernel.hpp | 17 + .../ReferenceDesigns/decompress/README.md | 153 +- .../decompress/data/gzip/small.gz | Bin 0 -> 166 bytes .../data/snappy/alice29_small.txt.sz | Bin 0 -> 409 bytes .../data/snappy/alice29_small_ref.txt | 23 + .../decompress/src/CMakeLists.txt | 52 +- .../decompress/src/common/common.hpp | 22 + .../decompress/src/gzip/gzip_decompressor.hpp | 27 +- .../src/gzip/gzip_metadata_reader.hpp | 13 + .../ReferenceDesigns/decompress/src/main.cpp | 65 +- .../src/snappy/snappy_decompressor.hpp | 20 +- .../decompress/src/snappy/snappy_reader.hpp | 10 + .../ReferenceDesigns/gzip/README.md | 96 +- .../ReferenceDesigns/gzip/data/100b.txt | 1 + .../ReferenceDesigns/gzip/src/CMakeLists.txt | 52 +- .../ReferenceDesigns/gzip/src/gzip.cpp | 23 +- .../ReferenceDesigns/gzip/src/gzip_ll.cpp | 23 +- .../ReferenceDesigns/merge_sort/README.md | 95 +- .../merge_sort/src/CMakeLists.txt | 44 +- .../merge_sort/src/consume.hpp | 6 + .../ReferenceDesigns/merge_sort/src/main.cpp | 29 +- .../merge_sort/src/produce.hpp | 6 + .../merge_sort/src/sorting_networks.hpp | 10 + .../mvdr_beamforming/README.md | 111 +- .../mvdr_beamforming/src/CMakeLists.txt | 30 +- .../mvdr_beamforming/src/mvdr_beamforming.cpp | 20 +- .../ReferenceDesigns/qrd/README.md | 95 +- .../ReferenceDesigns/qrd/src/CMakeLists.txt | 83 +- .../qrd/src/memory_transfers.hpp | 33 +- .../ReferenceDesigns/qrd/src/qrd.hpp | 22 +- .../ReferenceDesigns/qrd/src/qrd_demo.cpp | 19 +- .../ReferenceDesigns/qri/README.md | 96 +- .../ReferenceDesigns/qri/src/CMakeLists.txt | 76 +- .../qri/src/memory_transfers.hpp | 32 +- .../ReferenceDesigns/qri/src/qri.hpp | 7 + .../ReferenceDesigns/qri/src/qri_demo.cpp | 19 +- .../DesignPatterns/autorun/README.md | 157 +- .../DesignPatterns/autorun/src/CMakeLists.txt | 10 +- .../DesignPatterns/autorun/src/autorun.cpp | 24 +- .../buffered_host_streaming/README.md | 186 +- .../src/CMakeLists.txt | 41 +- .../src/HostStreamer.hpp | 24 +- .../src/buffered_host_streaming.cpp | 23 +- .../DesignPatterns/compute_units/README.md | 189 +- .../compute_units/src/CMakeLists.txt | 32 +- .../compute_units/src/compute_units.cpp | 18 +- .../DesignPatterns/double_buffering/README.md | 166 +- .../double_buffering/src/CMakeLists.txt | 14 +- .../double_buffering/src/double_buffering.cpp | 38 +- .../explicit_data_movement/README.md | 191 +- .../explicit_data_movement/src/CMakeLists.txt | 43 +- .../src/explicit_data_movement.cpp | 57 +- .../DesignPatterns/io_streaming/README.md | 185 +- .../{ => assets}/fake_io_pipe_ddr.png | Bin .../{ => assets}/fake_io_pipe_usm.png | Bin .../io_streaming/{ => assets}/io_pipe.png | Bin .../{ => assets}/io_streaming.png | Bin .../io_streaming/{ => assets}/offload.png | Bin .../{ => assets}/tutorial_setup.png | Bin .../io_streaming/src/CMakeLists.txt | 43 +- .../io_streaming/src/io_streaming.cpp | 18 +- .../loop_carried_dependency/README.md | 159 +- .../src/CMakeLists.txt | 14 +- .../src/loop_carried_dependency.cpp | 27 +- .../DesignPatterns/n_way_buffering/README.md | 163 +- .../n_way_buffering/src/CMakeLists.txt | 21 +- .../n_way_buffering/src/n_way_buffering.cpp | 34 +- .../onchip_memory_cache/README.md | 339 +- .../onchip_memory_cache/src/CMakeLists.txt | 16 +- .../src/onchip_memory_cache.cpp | 36 +- .../optimize_inner_loop/README.md | 358 +- .../{ => assets}/timing_2_speculated.png | Bin .../{ => assets}/timing_base.png | Bin .../optimize_inner_loop/src/CMakeLists.txt | 11 +- .../src/optimize_inner_loop.cpp | 18 +- .../DesignPatterns/pipe_array/README.md | 340 +- .../pipe_array/src/CMakeLists.txt | 15 +- .../pipe_array/src/pipe_array.cpp | 20 +- .../DesignPatterns/shannonization/README.md | 419 ++- .../shannonization/{ => assets}/basic.png | Bin .../shannonization/{ => assets}/optimized.png | Bin .../shannonization/src/CMakeLists.txt | 60 +- .../shannonization/src/shannonization.cpp | 24 +- .../simple_host_streaming/README.md | 441 +-- .../{ => assets}/kernel-relaunch.png | Bin .../{ => assets}/kernel-rtt.png | Bin .../{ => assets}/multi-kernel-pipeline.png | Bin ...ulti-kernel-producer-consumer-pipeline.png | Bin .../multi-kernel-producer-consumer.png | Bin .../{ => assets}/multi-kernel.png | Bin .../{ => assets}/single-kernel.png | Bin .../simple_host_streaming/src/CMakeLists.txt | 26 +- .../src/simple_host_streaming.cpp | 24 +- .../DesignPatterns/triangular_loop/README.md | 369 +- .../triangular_loop/src/CMakeLists.txt | 14 +- .../triangular_loop/src/triangular_loop.cpp | 23 +- .../zero_copy_data_transfer/README.md | 373 +- .../{ => assets}/basic.png | Bin .../{ => assets}/zero_copy.png | Bin .../src/CMakeLists.txt | 35 +- .../src/buffer_kernel.hpp | 17 + .../src/zero_copy_data_transfer.cpp | 20 +- .../Tutorials/Features/ac_fixed/README.md | 187 +- .../Features/ac_fixed/src/CMakeLists.txt | 20 +- .../Features/ac_fixed/src/ac_fixed.cpp | 20 +- .../Tutorials/Features/ac_int/README.md | 195 +- .../Features/ac_int/src/CMakeLists.txt | 10 +- .../Tutorials/Features/ac_int/src/ac_int.cpp | 20 +- .../Tutorials/Features/dsp_control/README.md | 206 +- .../Features/dsp_control/src/CMakeLists.txt | 10 +- .../Features/dsp_control/src/dsp_control.cpp | 20 +- .../experimental/device_global/CMakeLists.txt | 20 + .../experimental/device_global/README.md | 228 ++ .../experimental/device_global/sample.json | 71 + .../device_global/src/CMakeLists.txt | 113 + .../device_global/src/device_global.cpp | 122 + .../Features/experimental/hostpipes/README.md | 260 +- .../experimental/hostpipes/sample.json | 4 +- .../experimental/hostpipes/src/CMakeLists.txt | 54 +- .../experimental/hostpipes/src/hostpipes.cpp | 19 +- .../invocation_interfaces/CMakeLists.txt | 20 + .../invocation_interfaces/README.md | 370 ++ .../register_map_invocation_interface.png | Bin 0 -> 51784 bytes .../assets/streaming_invocation_interface.png | Bin 0 -> 33706 bytes .../invocation_interfaces/sample.json | 77 + .../invocation_interfaces/src/CMakeLists.txt | 226 ++ .../src/register_map_functor_model.cpp | 121 + .../src/register_map_lambda_model.cpp | 117 + .../src/streaming_functor_model.cpp | 120 + .../src/streaming_lambda_model.cpp | 117 + .../experimental/latency_control/README.md | 202 +- .../experimental/latency_control/sample.json | 4 +- .../latency_control/src/CMakeLists.txt | 14 +- .../latency_control/src/latency_control.cpp | 21 +- .../Tutorials/Features/fpga_reg/README.md | 165 +- .../Features/fpga_reg/src/CMakeLists.txt | 14 +- .../Features/fpga_reg/src/fpga_reg.cpp | 18 +- .../Features/kernel_args_restrict/README.md | 196 +- .../kernel_args_restrict/src/CMakeLists.txt | 14 +- .../src/kernel_args_restrict.cpp | 20 +- .../Features/loop_coalesce/README.md | 200 +- .../Features/loop_coalesce/src/CMakeLists.txt | 14 +- .../loop_coalesce/src/loop_coalesce.cpp | 20 +- .../Tutorials/Features/loop_fusion/README.md | 183 +- .../Features/loop_fusion/src/CMakeLists.txt | 14 +- .../Features/loop_fusion/src/loop_fusion.cpp | 18 +- .../loop_initiation_interval/README.md | 198 +- .../src/CMakeLists.txt | 37 +- .../src/loop_initiation_interval.cpp | 22 +- .../Tutorials/Features/loop_ivdep/README.md | 201 +- .../Features/loop_ivdep/src/CMakeLists.txt | 16 +- .../Features/loop_ivdep/src/loop_ivdep.cpp | 18 +- .../Tutorials/Features/loop_unroll/README.md | 214 +- .../Features/loop_unroll/src/CMakeLists.txt | 14 +- .../Features/loop_unroll/src/loop_unroll.cpp | 23 +- .../Tutorials/Features/lsu_control/README.md | 172 +- .../Features/lsu_control/src/CMakeLists.txt | 14 +- .../Features/lsu_control/src/lsu_control.cpp | 20 +- .../Features/max_interleaving/README.md | 186 +- .../max_interleaving/src/CMakeLists.txt | 14 +- .../max_interleaving/src/max_interleaving.cpp | 18 +- .../Tutorials/Features/mem_channel/README.md | 234 +- .../Features/mem_channel/src/CMakeLists.txt | 14 +- .../Features/mem_channel/src/mem_channel.cpp | 21 +- .../Features/memory_attributes/README.md | 214 +- .../memory_attributes/src/CMakeLists.txt | 31 +- .../src/memory_attributes.cpp | 37 +- .../minimum_latency}/CMakeLists.txt | 2 +- .../minimum_latency/README.md | 280 ++ .../minimum_latency/sample.json | 71 + .../minimum_latency/src/CMakeLists.txt | 159 + .../minimum_latency/src/minimum_latency.cpp | 147 + .../Tutorials/Features/pipes/README.md | 180 +- .../Features/pipes/src/CMakeLists.txt | 14 +- .../Tutorials/Features/pipes/src/pipes.cpp | 20 +- .../Tutorials/Features/printf/README.md | 181 +- .../Features/printf/src/CMakeLists.txt | 31 +- .../Tutorials/Features/printf/src/printf.cpp | 21 +- .../Features/private_copies/README.md | 193 +- .../private_copies/src/CMakeLists.txt | 30 +- .../private_copies/src/private_copies.cpp | 31 +- .../Features/read_only_cache/README.md | 217 +- .../read_only_cache/src/CMakeLists.txt | 14 +- .../read_only_cache/src/read_only_cache.cpp | 21 +- .../Features/scheduler_target_fmax/README.md | 212 +- .../scheduler_target_fmax/src/CMakeLists.txt | 14 +- .../src/scheduler_target_fmax.cpp | 20 +- .../Features/speculated_iterations/README.md | 224 +- .../speculated_iterations/src/CMakeLists.txt | 37 +- .../src/speculated_iterations.cpp | 29 +- .../Tutorials/Features/stall_enable/README.md | 199 +- .../Features/stall_enable/src/CMakeLists.txt | 16 +- .../stall_enable/src/stall_enable.cpp | 18 +- .../GettingStarted/fast_recompile/README.md | 248 +- .../fast_recompile/src/CMakeLists.txt | 29 +- .../fast_recompile/src/host.cpp | 20 +- .../GettingStarted/fpga_compile/README.md | 446 ++- .../fpga_compile/part1_cpp/CMakeLists.txt | 20 + .../fpga_compile/part1_cpp/src/CMakeLists.txt | 25 + .../fpga_compile/part1_cpp/src/vector_add.cpp | 47 + .../part2_dpcpp_functor_usm/CMakeLists.txt | 20 + .../src/CMakeLists.txt | 99 + .../src/vector_add.cpp | 103 + .../part3_dpcpp_lambda_usm/CMakeLists.txt | 20 + .../part3_dpcpp_lambda_usm/src/CMakeLists.txt | 99 + .../part3_dpcpp_lambda_usm/src/vector_add.cpp | 99 + .../part4_dpcpp_lambda_buffers/CMakeLists.txt | 20 + .../src/CMakeLists.txt | 99 + .../src/vector_add.cpp | 109 + .../fpga_compile/src/CMakeLists.txt | 73 - .../fpga_compile/src/fpga_compile.cpp | 123 - .../fpga_template/CMakeLists.txt | 320 ++ .../GettingStarted/fpga_template/README.md | 234 ++ .../GettingStarted/fpga_template/sample.json | 71 + .../fpga_template/src/fpga_template.cpp | 111 + .../Tools/dynamic_profiler/README.md | 182 +- .../data/dynamic_profiler_tutorial.json.zip | Bin 0 -> 346928 bytes .../Tools/dynamic_profiler/src/CMakeLists.txt | 14 +- .../dynamic_profiler/src/dynamic_profiler.cpp | 38 +- .../experimental/platform_designer/README.md | 351 ++ .../add-oneapi/CMakeLists.txt | 320 ++ .../platform_designer/add-oneapi/src/add.cpp | 106 + .../add-quartus-sln/.gitignore | 18 + .../platform_designer/add-quartus-sln/add.qpf | 31 + .../platform_designer/add-quartus-sln/add.qsf | 28 + .../platform_designer/add-quartus-sln/add.sdc | 6 + .../platform_designer/add-quartus-sln/add.sv | 38 + .../add-quartus-sln/add_kernel_wrapper.qsys | 2594 +++++++++++++ .../add_kernel_wrapper.qsys.legacy | 2324 ++++++++++++ ...ernel_wrapper_add_fpga_ip_export_1_di_0.ip | 1238 ++++++ .../add_kernel_wrapper_clock_in.ip | 371 ++ .../add_kernel_wrapper_master_0.ip | 1087 ++++++ .../add_kernel_wrapper_reset_in.ip | 342 ++ .../add-quartus-sln/jtag.sdc | 84 + .../add-quartus-sln/quartus_sh.log | 653 ++++ .../platform_designer/assets/add-files.png | Bin 0 -> 28788 bytes .../assets/add-ip-platform-designer.png | Bin 0 -> 77125 bytes .../platform_designer/assets/all-pins.png | Bin 0 -> 7528 bytes .../complete-system_platform-designer.png | Bin 0 -> 61804 bytes .../assets/csr-output-example-simple.svg | 364 ++ .../assets/disconnect-clock.png | Bin 0 -> 19785 bytes .../assets/disconnect-clock_mouse.png | Bin 0 -> 18769 bytes .../assets/fix-reset_n-platform-designer.png | Bin 0 -> 115109 bytes .../platform_designer/assets/generate-hdl.png | Bin 0 -> 38035 bytes .../new-platform-designer-system-button.png | Bin 0 -> 980 bytes .../assets/open-platform-designer-button.png | Bin 0 -> 5909 bytes .../assets/pins-from-design.png | Bin 0 -> 195976 bytes .../assets/pins-from-ghrd.png | Bin 0 -> 217470 bytes .../assets/quartus_new_project.png | Bin 0 -> 38352 bytes .../assets/refresh-system.png | Bin 0 -> 13048 bytes .../platform_designer/assets/reset-bridge.png | Bin 0 -> 15396 bytes .../assets/start-analysis.png | Bin 0 -> 96330 bytes .../assets/start-compilation-quartus.png | Bin 0 -> 8249 bytes .../platform_designer/sample.json | 71 + .../system_console/jtag_avmm.tcl | 6 + .../system_console/load_inputs.tcl | 20 + .../system_console/read_outputs.tcl | 18 + .../platform_designer/system_console/test.bat | 25 + .../Tools/system_profiling/README.md | 138 +- .../Tools/system_profiling/src/CMakeLists.txt | 14 +- .../system_profiling/src/double_buffering.cpp | 32 +- .../Tutorials/Tools/use_library/README.md | 159 +- .../Tools/use_library/src/CMakeLists.txt | 10 +- .../Tools/use_library/src/use_library.cpp | 20 +- .../C++SYCL_FPGA/include/streaming_qrd.hpp | 15 +- Libraries/oneDNN/getting_started/sample.json | 2 +- ...tutorial.ipynb => tutorial_benchdnn.ipynb} | 0 .../tutorials/tutorial_getting_started.ipynb | 6 +- .../tutorials/tutorial_verbose_jitdump.ipynb | 6 +- Libraries/oneDPL/maxloc_reductions/makefile | 8 +- Libraries/oneMKL/black_scholes/makefile | 2 +- .../block_cholesky_decomposition/makefile | 4 +- .../oneMKL/block_lu_decomposition/makefile | 4 +- Libraries/oneMKL/computed_tomography/makefile | 2 +- Libraries/oneMKL/fourier_correlation/makefile | 8 +- .../01_sycl_dpct_output/Common/cublas_utils.h | 307 ++ .../Level-1/cublas_amax_example.dp.cpp | 183 + .../Level-1/cublas_amin_example.dp.cpp | 151 + .../Level-1/cublas_asum_example.dp.cpp | 161 + .../Level-1/cublas_axpy_example.dp.cpp | 200 + .../Level-1/cublas_copy_example.dp.cpp | 195 + .../Level-1/cublas_dot_example.dp.cpp | 175 + .../Level-1/cublas_dotc_example.dp.cpp | 202 + .../Level-1/cublas_nrm2_example.dp.cpp | 173 + .../Level-1/cublas_rot_example.dp.cpp | 188 + .../Level-1/cublas_rotg_example.dp.cpp | 183 + .../Level-1/cublas_rotm_example.dp.cpp | 204 + .../Level-1/cublas_rotmg_example.dp.cpp | 206 + .../Level-1/cublas_scal_example.dp.cpp | 162 + .../Level-1/cublas_swap_example.dp.cpp | 166 + .../Level-2/cublas_gbmv_example.dp.cpp | 233 ++ .../Level-2/cublas_gemv_example.dp.cpp | 211 ++ .../Level-2/cublas_ger_example.dp.cpp | 195 + .../Level-2/cublas_hbmv_example.dp.cpp | 196 + .../Level-2/cublas_hemv_example.dp.cpp | 191 + .../Level-2/cublas_her2_example.dp.cpp | 201 + .../Level-2/cublas_her_example.dp.cpp | 193 + .../Level-2/cublas_hpmv_example.dp.cpp | 179 + .../Level-2/cublas_hpr2_example.dp.cpp | 185 + .../Level-2/cublas_hpr_example.dp.cpp | 169 + .../Level-2/cublas_sbmv_example.dp.cpp | 188 + .../Level-2/cublas_spmv_example.dp.cpp | 175 + .../Level-2/cublas_spr2_example.dp.cpp | 182 + .../Level-2/cublas_spr_example.dp.cpp | 167 + .../Level-2/cublas_symv_example.dp.cpp | 175 + .../Level-2/cublas_syr2_example.dp.cpp | 181 + .../Level-2/cublas_syr_example.dp.cpp | 167 + .../Level-2/cublas_tbmv_example.dp.cpp | 180 + .../Level-2/cublas_tbsv_example.dp.cpp | 168 + .../Level-2/cublas_tpmv_example.dp.cpp | 179 + .../Level-2/cublas_tpsv_example.dp.cpp | 167 + .../Level-2/cublas_trmv_example.dp.cpp | 167 + .../Level-2/cublas_trsv_example.dp.cpp | 167 + .../Level-3/cublas_gemm3m_example.dp.cpp | 241 ++ .../Level-3/cublas_gemmBatched_example.dp.cpp | 318 ++ .../cublas_gemmStridedBatched_example.dp.cpp | 226 ++ .../Level-3/cublas_gemm_example.dp.cpp | 219 ++ .../Level-3/cublas_hemm_example.dp.cpp | 210 ++ .../Level-3/cublas_her2k_example.dp.cpp | 184 + .../Level-3/cublas_herk_example.dp.cpp | 194 + .../Level-3/cublas_herkx_example.dp.cpp | 180 + .../Level-3/cublas_symm_example.dp.cpp | 179 + .../Level-3/cublas_syr2k_example.dp.cpp | 179 + .../Level-3/cublas_syrk_example.dp.cpp | 179 + .../Level-3/cublas_syrkx_example.dp.cpp | 174 + .../Level-3/cublas_trmm_example.dp.cpp | 175 + .../Level-3/cublas_trsmBatched_example.dp.cpp | 256 ++ .../Level-3/cublas_trsm_example.dp.cpp | 186 + .../02_sycl_dpct_migrated/CMakeLists.txt | 7 + .../Common/cublas_utils.h | 319 ++ .../Level-1/CMakeLists.txt | 44 + .../02_sycl_dpct_migrated/Level-1/amax.cpp | 131 + .../02_sycl_dpct_migrated/Level-1/amin.cpp | 128 + .../02_sycl_dpct_migrated/Level-1/asum.cpp | 141 + .../02_sycl_dpct_migrated/Level-1/axpy.cpp | 136 + .../02_sycl_dpct_migrated/Level-1/copy.cpp | 134 + .../02_sycl_dpct_migrated/Level-1/dot.cpp | 152 + .../02_sycl_dpct_migrated/Level-1/dotc.cpp | 157 + .../02_sycl_dpct_migrated/Level-1/nrm2.cpp | 143 + .../02_sycl_dpct_migrated/Level-1/rot.cpp | 142 + .../02_sycl_dpct_migrated/Level-1/rotg.cpp | 154 + .../02_sycl_dpct_migrated/Level-1/rotm.cpp | 145 + .../02_sycl_dpct_migrated/Level-1/rotmg.cpp | 181 + .../02_sycl_dpct_migrated/Level-1/scal.cpp | 123 + .../02_sycl_dpct_migrated/Level-1/swap.cpp | 139 + .../Level-2/CMakeLists.txt | 71 + .../02_sycl_dpct_migrated/Level-2/gbmv.cpp | 147 + .../02_sycl_dpct_migrated/Level-2/gemv.cpp | 147 + .../02_sycl_dpct_migrated/Level-2/ger.cpp | 150 + .../02_sycl_dpct_migrated/Level-2/hbmv.cpp | 149 + .../02_sycl_dpct_migrated/Level-2/hemv.cpp | 150 + .../02_sycl_dpct_migrated/Level-2/her.cpp | 144 + .../02_sycl_dpct_migrated/Level-2/her2.cpp | 155 + .../02_sycl_dpct_migrated/Level-2/hpmv.cpp | 151 + .../02_sycl_dpct_migrated/Level-2/hpr.cpp | 143 + .../02_sycl_dpct_migrated/Level-2/hpr2.cpp | 155 + .../02_sycl_dpct_migrated/Level-2/sbmv.cpp | 146 + .../02_sycl_dpct_migrated/Level-2/spmv.cpp | 147 + .../02_sycl_dpct_migrated/Level-2/spr.cpp | 142 + .../02_sycl_dpct_migrated/Level-2/spr2.cpp | 153 + .../02_sycl_dpct_migrated/Level-2/symv.cpp | 145 + .../02_sycl_dpct_migrated/Level-2/syr.cpp | 141 + .../02_sycl_dpct_migrated/Level-2/syr2.cpp | 153 + .../02_sycl_dpct_migrated/Level-2/tbmv.cpp | 143 + .../02_sycl_dpct_migrated/Level-2/tbsv.cpp | 140 + .../02_sycl_dpct_migrated/Level-2/tpmv.cpp | 141 + .../02_sycl_dpct_migrated/Level-2/tpsv.cpp | 141 + .../02_sycl_dpct_migrated/Level-2/trmv.cpp | 142 + .../02_sycl_dpct_migrated/Level-2/trsv.cpp | 139 + .../Level-3/CMakeLists.txt | 47 + .../02_sycl_dpct_migrated/Level-3/gemm.cpp | 152 + .../02_sycl_dpct_migrated/Level-3/gemm3m.cpp | 156 + .../Level-3/gemmBatched.cpp | 206 + .../Level-3/gemmStridedBatched.cpp | 167 + .../02_sycl_dpct_migrated/Level-3/hemm.cpp | 157 + .../02_sycl_dpct_migrated/Level-3/her2k.cpp | 156 + .../02_sycl_dpct_migrated/Level-3/herk.cpp | 142 + .../02_sycl_dpct_migrated/Level-3/herkx.cpp | 155 + .../02_sycl_dpct_migrated/Level-3/symm.cpp | 151 + .../02_sycl_dpct_migrated/Level-3/syr2k.cpp | 148 + .../02_sycl_dpct_migrated/Level-3/syrk.cpp | 136 + .../02_sycl_dpct_migrated/Level-3/syrkx.cpp | 147 + .../02_sycl_dpct_migrated/Level-3/trmm.cpp | 152 + .../02_sycl_dpct_migrated/Level-3/trsm.cpp | 147 + .../Level-3/trsmBatched.cpp | 189 + .../CMakeLists.txt | 16 + .../License.txt | 8 + .../README.md | 159 + .../sample.json | 24 + .../third-party-programs.txt | 518 +++ Libraries/oneMKL/matrix_mul_mkl/makefile | 2 +- .../oneMKL/matrix_mul_mkl/matrix_mul_mkl.cpp | 35 +- .../monte_carlo_european_opt/GNUmakefile | 17 +- .../oneMKL/monte_carlo_european_opt/README.md | 24 +- .../oneMKL/monte_carlo_european_opt/makefile | 18 +- .../src/montecarlo_main.cpp | 26 +- Libraries/oneMKL/monte_carlo_pi/makefile | 6 +- .../makefile | 17 +- .../oneMKL/sparse_conjugate_gradient/makefile | 2 +- Libraries/oneMKL/student_t_test/makefile | 4 +- .../oneTBB/tbb-async-sycl/CMakeLists.txt | 3 +- .../tbb-async-sycl/src/tbb-async-sycl.cpp | 2 +- .../tbb-resumable-tasks-sycl/CMakeLists.txt | 4 +- Libraries/oneTBB/tbb-task-sycl/CMakeLists.txt | 4 +- .../tbb-task-sycl/src/tbb-task-sycl.cpp | 2 +- .../fig_4_13_nd_range_matrix_multiply.cpp | 2 +- .../fig_4_20_hierarchical_matrix_multiply.cpp | 2 +- ...2_hierarchical_logical_matrix_multiply.cpp | 2 +- .../fig_4_7_basic_matrix_multiply.cpp | 2 +- .../DPC++/Ch18_using_libs/CMakeLists.txt | 56 +- Publications/GPU-Opt-Guide/CMakeLists.txt | 70 +- .../MPI/01_omp_mpich/CMakeLists.txt | 1 + .../MPI/01_omp_mpich/omp_mpich.cpp | 93 + Publications/GPU-Opt-Guide/MPI/CMakeLists.txt | 3 + .../04_target_nowait/test_target_nowait_f.f90 | 2 +- .../06_scalars_private/test_scalars.cpp | 6 +- .../test_scalars_private.cpp | 6 +- .../test_scalars_private_2.cpp | 6 +- .../OpenMP/22_mkl_dispatch/CMakeLists.txt | 1 - .../OpenMP/22_mkl_pad/CMakeLists.txt | 4 + .../OpenMP/22_mkl_pad/dgemm_pad_c_01.cpp | 308 ++ .../OpenMP/22_mkl_pad/dgemm_pad_f_01.f | 184 + .../23_omp_work_group/test_omp_work_group.cpp | 9 +- .../25_NWChem_based_example_1/CMakeLists.txt | 1 + .../test-SharedMem.f | 326 ++ .../25_NWChem_based_example_2/CMakeLists.txt | 1 + .../test-Map-UpdateTo.f | 318 ++ .../25_NWChem_based_example_3/CMakeLists.txt | 1 + .../test-HostMem-DeviceMem-Map-UpdateTo.f | 340 ++ .../OpenMP/26_omp_prefetch/CMakeLists.txt | 5 + .../OpenMP/26_omp_prefetch/c/CMakeLists.txt | 1 + .../OpenMP/26_omp_prefetch/c/nbody_c.cpp | 150 + .../26_omp_prefetch/c_simd/CMakeLists.txt | 2 + .../26_omp_prefetch/c_simd/nbody_c_simd.cpp | 169 + .../26_omp_prefetch/fortran/CMakeLists.txt | 2 + .../OpenMP/26_omp_prefetch/fortran/nbody_f.f | 159 + .../GPU-Opt-Guide/OpenMP/CMakeLists.txt | 5 + Publications/GPU-Opt-Guide/atomics/align.hpp | 5 + .../GPU-Opt-Guide/atomics/atomics.cpp | 20 +- .../atomics/global_atomics_ref.cpp | 9 +- .../atomics/local_atomics_ref.cpp | 19 +- .../GPU-Opt-Guide/atomics/test_atomic.cpp | 30 +- .../GPU-Opt-Guide/buffer-accessors/kern1.cpp | 2 +- .../GPU-Opt-Guide/buffer-accessors/kern2.cpp | 2 +- .../GPU-Opt-Guide/buffer-accessors/kern3.cpp | 2 +- .../GPU-Opt-Guide/buffer-accessors/kern4.cpp | 2 +- .../GPU-Opt-Guide/buffer-accessors/kern5.cpp | 2 +- .../GPU-Opt-Guide/buffers/buf-kern1.cpp | 2 +- .../GPU-Opt-Guide/buffers/buf-kern2.cpp | 2 +- ...onvolution-global-conditionals-min-max.cpp | 4 +- .../convolution-global-conditionals.cpp | 4 +- .../GPU-Opt-Guide/exec-model/vaddsync.cpp | 8 +- .../GPU-Opt-Guide/exec-model/vec-add.cpp | 6 +- .../01_memory_order/memory_order.cpp | 2 +- .../explicit_subdevice.cpp | 2 +- .../openmp_explicit_subdevice.cpp | 4 +- .../14_explicit_subsubdevice/ccs.cpp | 2 +- .../grf-mode-selection/CMakeLists.txt | 2 + .../grf-mode-selection/openmp/CMakeLists.txt | 4 + .../openmp/grf-mode-selection-omp.cpp | 6 + .../openmp/omp_example.yaml | 4 + .../grf-mode-selection/perf/CMakeLists.txt | 5 + .../perf/large/CMakeLists.txt | 3 + .../perf/large/ax-static-large.cpp | 127 + .../perf/small/CMakeLists.txt | 1 + .../perf/small/ax-static-small.cpp | 127 + .../grf-mode-selection/sycl/CMakeLists.txt | 1 + .../sycl/grf-mode-selection-sycl.cpp | 25 + .../host-device-memory/mem-move.cpp | 2 +- .../implicit-scaling/03_stream/stream.cpp | 14 +- .../04_stream_3D/stream_3D.cpp | 13 +- .../stream_cross_stack.cpp | 95 + .../06_cross_stack/cross_stack_01.cpp | 13 + Publications/GPU-Opt-Guide/io-kernel/out.cpp | 2 +- .../GPU-Opt-Guide/jitting/CMakeLists.txt | 4 + Publications/GPU-Opt-Guide/jitting/jit.cpp | 7 +- .../GPU-Opt-Guide/jitting/spec-const1.cpp | 2 +- .../GPU-Opt-Guide/jitting/spec-const2.cpp | 2 +- .../GPU-Opt-Guide/jitting/spec-const3.cpp | 48 + .../stream-triad-modified-constant.cpp | 128 + .../stream-triad-modified-runtime-var.cpp | 128 + .../stream-triad-modified-spec-const.cpp | 133 + .../GPU-Opt-Guide/joint-matrix/CMakeLists.txt | 3 + .../joint-matrix/joint-matrix.cpp | 176 + Publications/GPU-Opt-Guide/kernels/launch.cpp | 2 +- .../GPU-Opt-Guide/kernels/profiling-api.cpp | 2 +- .../libraries-fcorr/build_fcorr_buffers.sh | 2 +- .../libraries-fcorr/build_fcorr_usm.sh | 2 +- .../libraries-fcorr/build_fcorr_usm_fixed.sh | 2 +- .../libraries-fcorr/fcorr_1d_buffers.cpp | 7 +- .../libraries-fcorr/fcorr_1d_usm.cpp | 7 +- .../libraries-fcorr/fcorr_1d_usm_fixed.cpp | 7 +- .../libraries-kernel/build_matmul_onemkl.sh | 2 +- .../build_naive_matmul_sycl.sh | 2 +- .../libraries-kernel/matmul_onemkl.cpp | 2 +- .../libraries-kernel/naive_matmul_sycl.cpp | 2 +- .../libraries-stdlib/CMakeLists.txt | 3 +- .../libraries-stdlib/build_rng_test.sh | 2 +- .../libraries-stdlib/external_rand.cpp | 16 +- .../libraries-stdlib/rng_test.cpp | 7 +- .../local-global-sync/atomics.cpp | 16 +- .../GPU-Opt-Guide/matrix/CMakeLists.txt | 3 - Publications/GPU-Opt-Guide/matrix/matrix.cpp | 8 +- .../GPU-Opt-Guide/matrix/multiply.cpp | 21 +- .../GPU-Opt-Guide/matrix/multiply.hpp | 18 +- .../memory-movement/vec-buffer-host.cpp | 6 +- .../memory-sharing-vaapi.cpp | 2 +- .../multiple-devices/overlap.cpp | 14 +- .../multiple-kernel-execution/kernels.cpp | 9 +- .../multi-queue-heavy-kernel.cpp | 18 +- .../multi-queue-light-kernel.cpp | 18 +- .../overlap-data-transfers/overlap.cpp | 2 +- .../overlap-data-transfers/reduction.cpp | 2 +- .../GPU-Opt-Guide/reduction/reduction.cpp | 38 +- .../GPU-Opt-Guide/redundant-queues/queues.cpp | 2 +- .../registers/block-load-store.cpp | 6 +- .../histogram256-int-shared-private.cpp | 16 +- .../registers/histogram256-int.cpp | 16 +- .../registers/histogram32-int-volatile.cpp | 16 +- .../registers/histogram32-int.cpp | 16 +- .../registers/histogram32-long.cpp | 16 +- .../registers/non-block-load-store.cpp | 4 +- .../restrict/vec-add-restrict.cpp | 47 +- .../GPU-Opt-Guide/slm/convolution-global.cpp | 4 +- .../slm/convolution-slm-cache.cpp | 8 +- .../GPU-Opt-Guide/slm/histogram-slm-1024.cpp | 69 +- .../GPU-Opt-Guide/slm/histogram-slm-256.cpp | 74 +- .../GPU-Opt-Guide/slm/slm-bank-s1.cpp | 8 +- .../GPU-Opt-Guide/slm/slm-bank-s16.cpp | 8 +- Publications/GPU-Opt-Guide/slm/slm-size.cpp | 4 +- .../GPU-Opt-Guide/sub-group/CMakeLists.txt | 1 + .../sub-group/sg-max-size-output.txt | 14 +- .../GPU-Opt-Guide/sub-group/sg-max-size.cpp | 26 +- .../GPU-Opt-Guide/sub-group/sub-group-0.cpp | 6 +- .../GPU-Opt-Guide/sub-group/sub-group-1.cpp | 6 +- .../GPU-Opt-Guide/sub-group/sub-group-2.cpp | 4 +- .../GPU-Opt-Guide/sub-group/sub-group-3.cpp | 6 +- .../GPU-Opt-Guide/sub-group/sub-group-4.cpp | 4 +- .../GPU-Opt-Guide/sub-group/sub-group-5.cpp | 6 +- .../GPU-Opt-Guide/sub-group/sub-group-6.cpp | 6 +- .../GPU-Opt-Guide/sub-group/sub-group-7.cpp | 6 +- .../GPU-Opt-Guide/sub-group/sub-group-8.cpp | 49 + .../sub-group/sub-group-sizes.cpp | 4 +- .../GPU-Opt-Guide/sub-group/transpose.cpp | 38 +- Publications/GPU-Opt-Guide/usm/usm-buffer.cpp | 2 +- .../work-group-size/reduction-wg-size.cpp | 8 +- .../work-group-size/vec-copy.cpp | 4 +- README.md | 28 +- .../GettingStarted/02_embree_gsg/README.md | 64 +- .../02_embree_gsg/{ => cpu}/CMakeLists.txt | 22 +- .../02_embree_gsg/cpu/LICENSE.txt | 202 + .../02_embree_gsg/cpu/README.md | 98 + .../02_embree_gsg/{ => cpu}/src/minimal.cpp | 31 +- .../02_embree_gsg/gpu/CMakeLists.txt | 54 + .../02_embree_gsg/gpu/LICENSE.txt | 202 + .../02_embree_gsg/gpu/README.md | 107 + .../gpu/build-lin-make-clang++.sh | 23 + .../gpu/build-win-nmake-icx-cl.bat | 18 + .../gpu/build-win-vs-dpcpp-toolchain.bat | 19 + .../02_embree_gsg/gpu/src/minimal_sycl.cpp | 305 ++ .../GettingStarted/02_embree_gsg/sample.json | 34 +- .../IntroToRayTracingWithEmbree/README.md | 842 +---- .../{ => cpu}/CMakeLists.txt | 8 +- .../cpu/LICENSE.txt | 202 + .../IntroToRayTracingWithEmbree/cpu/README.md | 874 +++++ .../example_images/F11-AmbientOcclusion.png | Bin .../{ => cpu}/example_images/F2-eye.png | Bin .../{ => cpu}/example_images/F3-occlusion.png | Bin .../{ => cpu}/example_images/F4-UV.png | Bin .../{ => cpu}/example_images/F5-Normal.png | Bin .../{ => cpu}/example_images/F6-GeomIDs.png | Bin .../example_images/F7-GeomAndPrim.png | Bin .../example_images/F8-TextureCoordinates.png | Bin .../cube_opposite_camera_angle.png | Bin .../example_images/ground_with_shadow.png | Bin .../example_images/interpolation.png | Bin .../example_images/original_cube.png | Bin .../{ => cpu}/example_images/rkRayTracer.png | Bin .../{ => cpu}/src/rkRayTracer.cpp | 21 +- .../gpu/CMakeLists.txt | 78 + .../gpu/LICENSE.txt | 202 + .../IntroToRayTracingWithEmbree/gpu/README.md | 183 + .../gpu/build-lin-make-icpx.sh | 23 + .../gpu/build-win-nmake-icx-cl.bat | 18 + .../gpu/build-win-vs-dpcpp-toolchain.bat | 18 + .../example_images/F11-AmbientOcclusion.png | Bin 0 -> 69704 bytes .../gpu/example_images/F2-eye.png | Bin 0 -> 13427 bytes .../gpu/example_images/F3-occlusion.png | Bin 0 -> 577 bytes .../gpu/example_images/F4-UV.png | Bin 0 -> 46897 bytes .../gpu/example_images/F5-Normal.png | Bin 0 -> 2026 bytes .../gpu/example_images/F6-GeomIDs.png | Bin 0 -> 1281 bytes .../gpu/example_images/F7-GeomAndPrim.png | Bin 0 -> 39344 bytes .../example_images/F8-TextureCoordinates.png | Bin 0 -> 594 bytes .../cube_opposite_camera_angle.png | Bin 0 -> 2876 bytes .../gpu/example_images/ground_with_shadow.png | Bin 0 -> 2572 bytes .../gpu/example_images/interpolation.png | Bin 0 -> 10361 bytes .../gpu/example_images/original_cube.png | Bin 0 -> 2832 bytes .../gpu/example_images/rkRayTracerGPU.png} | Bin .../gpu/src/MathBindings.h | 221 ++ .../gpu/src/rkRayTracerGPU.cpp | 691 ++++ .../IntroToRayTracingWithEmbree/sample.json | 51 +- .../{ => cpu}/CMakeLists.txt | 4 +- .../PathTracingWithEmbree/cpu/LICENSE.txt | 202 + .../PathTracingWithEmbree/{ => cpu}/README.md | 28 +- .../example-images/256spp-denoised.png | Bin .../example-images/fresnelsphere.png | Bin .../{ => cpu}/example-images/lambertian.png | Bin .../{ => cpu}/example-images/mirror.png | Bin ...pp1-accu1000-plength8-512x512-nomirror.png | Bin ...pp1-accu2000-plength8-512x512-nomirror.png | Bin ...-cornell-spp1-accu256-plength8-512x512.png | Bin ...pp1-accu4000-plength8-512x512-nomirror.png | Bin ...cornell-spp1-accu4000-plength8-512x512.png | Bin ...ndplane-spp1-accu4000-plength8-512x512.png | Bin ...cu-pool-spp1-accu4000-plength8-512x512.png | Bin ...pp1-accu4000-plength8-512x512-nomirror.png | Bin ...cornell-spp1-accu4000-plength8-512x512.png | Bin ...ndplane-spp1-accu4000-plength8-512x512.png | Bin ...le-pool-spp1-accu4000-plength8-512x512.png | Bin .../cpu/example-images/rkRayTracer.png | Bin 0 -> 3201 bytes .../{ => cpu}/src/CornellBox.h | 2 +- .../{ => cpu}/src/DefaultCubeAndPlane.h | 2 +- .../{ => cpu}/src/Geometry.h | 2 +- .../{ => cpu}/src/Lights.h | 0 .../{ => cpu}/src/Materials.h | 0 .../{ => cpu}/src/PathTracer.h | 35 +- .../{ => cpu}/src/Pool.h | 2 +- .../{ => cpu}/src/RandomSampler.h | 0 .../{ => cpu}/src/Renderer.h | 2 +- .../{ => cpu}/src/SceneGraph.h | 121 +- .../{ => cpu}/src/Sphere.h | 2 +- .../{ => cpu}/src/definitions.h | 2 +- .../{ => cpu}/src/rkPathTracer.cpp | 8 +- .../PathTracingWithEmbree/sample.json | 7 +- SECURITY.md | 6 + .../array-transform/CMakeLists.txt | 10 +- .../array-transform/README.md | 76 +- .../array-transform.vcxproj.user | 5 +- .../array-transform/sample.json | 37 +- .../array-transform/src/array-transform.cpp | 3 +- .../array-transform/src/selector.hpp | 62 - .../ApplicationDebugger/jacobi/CMakeLists.txt | 21 +- Tools/ApplicationDebugger/jacobi/README.md | 376 +- Tools/ApplicationDebugger/jacobi/sample.json | 68 +- .../ApplicationDebugger/jacobi/src/bugged.cpp | 151 + .../ApplicationDebugger/jacobi/src/fixed.cpp | 169 + .../jacobi/src/jacobi-bugged.cpp | 304 -- .../jacobi/src/jacobi-fixed.cpp | 323 -- .../ApplicationDebugger/jacobi/src/jacobi.cpp | 168 + .../jacobi/src/selector.hpp | 62 - Tools/GPU-Occupancy-Calculator/index.html | 432 ++- release.json | 4 + 922 files changed, 123393 insertions(+), 10575 deletions(-) create mode 100644 AI-and-Analytics/Jupyter/Predictive_Modeling_Training/AI_Kit_XGBoost_Predictive_Modeling.complete/04_oneDal/3D_view_energy_of_8_TeV.png create mode 100755 AI-and-Analytics/Jupyter/Predictive_Modeling_Training/AI_Kit_XGBoost_Predictive_Modeling.complete/04_oneDal/License.txt create mode 100644 AI-and-Analytics/Jupyter/Predictive_Modeling_Training/AI_Kit_XGBoost_Predictive_Modeling.complete/04_oneDal/XGBoost-oneDal.ipynb create mode 100644 AI-and-Analytics/Jupyter/Predictive_Modeling_Training/AI_Kit_XGBoost_Predictive_Modeling/04_oneDal/3D_view_energy_of_8_TeV.png create mode 100755 AI-and-Analytics/Jupyter/Predictive_Modeling_Training/AI_Kit_XGBoost_Predictive_Modeling/04_oneDal/License.txt create mode 100644 AI-and-Analytics/Jupyter/Predictive_Modeling_Training/AI_Kit_XGBoost_Predictive_Modeling/04_oneDal/XGBoost-oneDal.ipynb create mode 100644 DirectProgramming/C++SYCL/DenseLinearAlgebra/guided_matrix_mul_SYCLMigration/01_sycl_dpct_output/Common/exception.h create mode 100644 DirectProgramming/C++SYCL/DenseLinearAlgebra/guided_matrix_mul_SYCLMigration/01_sycl_dpct_output/Common/helper_cuda.h create mode 100644 DirectProgramming/C++SYCL/DenseLinearAlgebra/guided_matrix_mul_SYCLMigration/01_sycl_dpct_output/Common/helper_functions.h create mode 100644 DirectProgramming/C++SYCL/DenseLinearAlgebra/guided_matrix_mul_SYCLMigration/01_sycl_dpct_output/Common/helper_image.h create mode 100644 DirectProgramming/C++SYCL/DenseLinearAlgebra/guided_matrix_mul_SYCLMigration/01_sycl_dpct_output/Common/helper_string.h create mode 100644 DirectProgramming/C++SYCL/DenseLinearAlgebra/guided_matrix_mul_SYCLMigration/01_sycl_dpct_output/Common/helper_timer.h create mode 100644 DirectProgramming/C++SYCL/DenseLinearAlgebra/guided_matrix_mul_SYCLMigration/01_sycl_dpct_output/src/matrixMulCUBLAS.cpp.dp.cpp create mode 100644 DirectProgramming/C++SYCL/DenseLinearAlgebra/guided_matrix_mul_SYCLMigration/02_sycl_dpct_migrated/CMakeLists.txt create mode 100644 DirectProgramming/C++SYCL/DenseLinearAlgebra/guided_matrix_mul_SYCLMigration/02_sycl_dpct_migrated/Common/exception.h create mode 100644 DirectProgramming/C++SYCL/DenseLinearAlgebra/guided_matrix_mul_SYCLMigration/02_sycl_dpct_migrated/Common/helper_cuda.h create mode 100644 DirectProgramming/C++SYCL/DenseLinearAlgebra/guided_matrix_mul_SYCLMigration/02_sycl_dpct_migrated/Common/helper_functions.h create mode 100644 DirectProgramming/C++SYCL/DenseLinearAlgebra/guided_matrix_mul_SYCLMigration/02_sycl_dpct_migrated/Common/helper_image.h create mode 100644 DirectProgramming/C++SYCL/DenseLinearAlgebra/guided_matrix_mul_SYCLMigration/02_sycl_dpct_migrated/Common/helper_string.h create mode 100644 DirectProgramming/C++SYCL/DenseLinearAlgebra/guided_matrix_mul_SYCLMigration/02_sycl_dpct_migrated/Common/helper_timer.h create mode 100644 DirectProgramming/C++SYCL/DenseLinearAlgebra/guided_matrix_mul_SYCLMigration/02_sycl_dpct_migrated/src/matrixMulCUBLAS.cpp create mode 100644 DirectProgramming/C++SYCL/DenseLinearAlgebra/guided_matrix_mul_SYCLMigration/CMakeLists.txt create mode 100644 DirectProgramming/C++SYCL/DenseLinearAlgebra/guided_matrix_mul_SYCLMigration/License.txt create mode 100644 DirectProgramming/C++SYCL/DenseLinearAlgebra/guided_matrix_mul_SYCLMigration/README.md create mode 100644 DirectProgramming/C++SYCL/DenseLinearAlgebra/guided_matrix_mul_SYCLMigration/sample.json create mode 100644 DirectProgramming/C++SYCL/DenseLinearAlgebra/guided_matrix_mul_SYCLMigration/third-party-programs.txt create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/00_SYCL_Migration_Introduction/00_SYCL_Migration_Introduction.ipynb create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/00_SYCL_Migration_Introduction/assets/steps.png create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/00_SYCL_Migration_Introduction/assets/syclomatic_workflow.png create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/01_SYCL_Migration_Simple_VectorAdd/01_SYCL_Migration_Simple_VectorAdd.ipynb create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/01_SYCL_Migration_Simple_VectorAdd/License.txt create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/01_SYCL_Migration_Simple_VectorAdd/Readme.md create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/01_SYCL_Migration_Simple_VectorAdd/cuda/vectoradd.cu create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/01_SYCL_Migration_Simple_VectorAdd/dpct_output/MainSourceFiles.yaml create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/01_SYCL_Migration_Simple_VectorAdd/dpct_output/include/dpct/device.hpp create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/01_SYCL_Migration_Simple_VectorAdd/dpct_output/include/dpct/dpct.hpp create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/01_SYCL_Migration_Simple_VectorAdd/dpct_output/include/dpct/memory.hpp create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/01_SYCL_Migration_Simple_VectorAdd/dpct_output/vectoradd.dp.cpp create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/01_SYCL_Migration_Simple_VectorAdd/q.sh create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/01_SYCL_Migration_Simple_VectorAdd/run_vector_add.sh create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/01_SYCL_Migration_Simple_VectorAdd/run_vector_add_optimized.sh create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/01_SYCL_Migration_Simple_VectorAdd/sycl_migrated/MainSourceFiles.yaml create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/01_SYCL_Migration_Simple_VectorAdd/sycl_migrated/include/dpct/device.hpp create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/01_SYCL_Migration_Simple_VectorAdd/sycl_migrated/include/dpct/dpct.hpp create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/01_SYCL_Migration_Simple_VectorAdd/sycl_migrated/include/dpct/memory.hpp create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/01_SYCL_Migration_Simple_VectorAdd/sycl_migrated/vectoradd.dp.cpp create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/01_SYCL_Migration_Simple_VectorAdd/sycl_migrated_optimized/MainSourceFiles.yaml create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/01_SYCL_Migration_Simple_VectorAdd/sycl_migrated_optimized/include/dpct/device.hpp create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/01_SYCL_Migration_Simple_VectorAdd/sycl_migrated_optimized/include/dpct/dpct.hpp create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/01_SYCL_Migration_Simple_VectorAdd/sycl_migrated_optimized/include/dpct/memory.hpp create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/01_SYCL_Migration_Simple_VectorAdd/sycl_migrated_optimized/vectoradd.dp.cpp create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/01_SYCL_Migration_Simple_VectorAdd/third-party-programs.txt create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/02_SYCL_Migration_SortingNetworks/02_SYCL_Migration_SortingNetworks.ipynb create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/02_SYCL_Migration_SortingNetworks/License.txt create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/02_SYCL_Migration_SortingNetworks/Readme.md create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/02_SYCL_Migration_SortingNetworks/dpct_output/Common/exception.h create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/02_SYCL_Migration_SortingNetworks/dpct_output/Common/helper_cuda.h create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/02_SYCL_Migration_SortingNetworks/dpct_output/Common/helper_cuda.h.yaml create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/02_SYCL_Migration_SortingNetworks/dpct_output/Common/helper_string.h create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/02_SYCL_Migration_SortingNetworks/dpct_output/Common/helper_timer.h create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/02_SYCL_Migration_SortingNetworks/dpct_output/MainSourceFiles.yaml create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/02_SYCL_Migration_SortingNetworks/dpct_output/Samples/2_Concepts_and_Techniques/sortingNetworks/bitonicSort.dp.cpp create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/02_SYCL_Migration_SortingNetworks/dpct_output/Samples/2_Concepts_and_Techniques/sortingNetworks/main.cpp.dp.cpp create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/02_SYCL_Migration_SortingNetworks/dpct_output/Samples/2_Concepts_and_Techniques/sortingNetworks/oddEvenMergeSort.dp.cpp create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/02_SYCL_Migration_SortingNetworks/dpct_output/Samples/2_Concepts_and_Techniques/sortingNetworks/sortingNetworks_common.dp.hpp create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/02_SYCL_Migration_SortingNetworks/dpct_output/Samples/2_Concepts_and_Techniques/sortingNetworks/sortingNetworks_common.dp.hpp.yaml create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/02_SYCL_Migration_SortingNetworks/dpct_output/Samples/2_Concepts_and_Techniques/sortingNetworks/sortingNetworks_common.h create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/02_SYCL_Migration_SortingNetworks/dpct_output/Samples/2_Concepts_and_Techniques/sortingNetworks/sortingNetworks_validate.cpp create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/02_SYCL_Migration_SortingNetworks/dpct_output/include/dpct/device.hpp create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/02_SYCL_Migration_SortingNetworks/dpct_output/include/dpct/dpct.hpp create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/02_SYCL_Migration_SortingNetworks/dpct_output/include/dpct/memory.hpp create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/02_SYCL_Migration_SortingNetworks/dpct_output/include/dpct/util.hpp create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/02_SYCL_Migration_SortingNetworks/q.sh create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/02_SYCL_Migration_SortingNetworks/run_sycl_migrated.sh create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/02_SYCL_Migration_SortingNetworks/sycl_migrated/Common/exception.h create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/02_SYCL_Migration_SortingNetworks/sycl_migrated/Common/helper_cuda.h create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/02_SYCL_Migration_SortingNetworks/sycl_migrated/Common/helper_cuda.h.yaml create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/02_SYCL_Migration_SortingNetworks/sycl_migrated/Common/helper_string.h create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/02_SYCL_Migration_SortingNetworks/sycl_migrated/Common/helper_timer.h create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/02_SYCL_Migration_SortingNetworks/sycl_migrated/MainSourceFiles.yaml create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/02_SYCL_Migration_SortingNetworks/sycl_migrated/Samples/2_Concepts_and_Techniques/sortingNetworks/bitonicSort.dp.cpp create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/02_SYCL_Migration_SortingNetworks/sycl_migrated/Samples/2_Concepts_and_Techniques/sortingNetworks/main.cpp.dp.cpp create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/02_SYCL_Migration_SortingNetworks/sycl_migrated/Samples/2_Concepts_and_Techniques/sortingNetworks/oddEvenMergeSort.dp.cpp create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/02_SYCL_Migration_SortingNetworks/sycl_migrated/Samples/2_Concepts_and_Techniques/sortingNetworks/prog3 create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/02_SYCL_Migration_SortingNetworks/sycl_migrated/Samples/2_Concepts_and_Techniques/sortingNetworks/sortingNetworks_common.dp.hpp create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/02_SYCL_Migration_SortingNetworks/sycl_migrated/Samples/2_Concepts_and_Techniques/sortingNetworks/sortingNetworks_common.dp.hpp.yaml create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/02_SYCL_Migration_SortingNetworks/sycl_migrated/Samples/2_Concepts_and_Techniques/sortingNetworks/sortingNetworks_common.h create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/02_SYCL_Migration_SortingNetworks/sycl_migrated/Samples/2_Concepts_and_Techniques/sortingNetworks/sortingNetworks_validate.cpp create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/02_SYCL_Migration_SortingNetworks/sycl_migrated/include/dpct/device.hpp create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/02_SYCL_Migration_SortingNetworks/sycl_migrated/include/dpct/dpct.hpp create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/02_SYCL_Migration_SortingNetworks/sycl_migrated/include/dpct/memory.hpp create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/02_SYCL_Migration_SortingNetworks/sycl_migrated/include/dpct/util.hpp create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/02_SYCL_Migration_SortingNetworks/third-party-programs.txt create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/03_SYCL_Migration_Jacobi_Iterative/03_SYCL_Migration_Jacobi_Iterative.ipynb create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/03_SYCL_Migration_Jacobi_Iterative/License.txt create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/03_SYCL_Migration_Jacobi_Iterative/Readme.md create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/03_SYCL_Migration_Jacobi_Iterative/dpct_output/Common/exception.h create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/03_SYCL_Migration_Jacobi_Iterative/dpct_output/Common/helper_cuda.h create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/03_SYCL_Migration_Jacobi_Iterative/dpct_output/Common/helper_cuda.h.yaml create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/03_SYCL_Migration_Jacobi_Iterative/dpct_output/Common/helper_string.h create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/03_SYCL_Migration_Jacobi_Iterative/dpct_output/Common/helper_timer.h create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/03_SYCL_Migration_Jacobi_Iterative/dpct_output/MainSourceFiles.yaml create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/03_SYCL_Migration_Jacobi_Iterative/dpct_output/Samples/3_CUDA_Features/jacobiCudaGraphs/jacobi.dp.cpp create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/03_SYCL_Migration_Jacobi_Iterative/dpct_output/Samples/3_CUDA_Features/jacobiCudaGraphs/jacobi.h create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/03_SYCL_Migration_Jacobi_Iterative/dpct_output/Samples/3_CUDA_Features/jacobiCudaGraphs/main.cpp.dp.cpp create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/03_SYCL_Migration_Jacobi_Iterative/dpct_output/include/dpct/atomic.hpp create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/03_SYCL_Migration_Jacobi_Iterative/dpct_output/include/dpct/device.hpp create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/03_SYCL_Migration_Jacobi_Iterative/dpct_output/include/dpct/dpct.hpp create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/03_SYCL_Migration_Jacobi_Iterative/dpct_output/include/dpct/image.hpp create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/03_SYCL_Migration_Jacobi_Iterative/dpct_output/include/dpct/memory.hpp create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/03_SYCL_Migration_Jacobi_Iterative/dpct_output/include/dpct/util.hpp create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/03_SYCL_Migration_Jacobi_Iterative/q.sh create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/03_SYCL_Migration_Jacobi_Iterative/run_sycl_migrated.sh create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/03_SYCL_Migration_Jacobi_Iterative/run_sycl_migrated_optimized.sh create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/03_SYCL_Migration_Jacobi_Iterative/sycl_migrated/Common/exception.h create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/03_SYCL_Migration_Jacobi_Iterative/sycl_migrated/Common/helper_cuda.h create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/03_SYCL_Migration_Jacobi_Iterative/sycl_migrated/Common/helper_cuda.h.yaml create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/03_SYCL_Migration_Jacobi_Iterative/sycl_migrated/Common/helper_string.h create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/03_SYCL_Migration_Jacobi_Iterative/sycl_migrated/Common/helper_timer.h create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/03_SYCL_Migration_Jacobi_Iterative/sycl_migrated/MainSourceFiles.yaml create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/03_SYCL_Migration_Jacobi_Iterative/sycl_migrated/Samples/3_CUDA_Features/jacobiCudaGraphs/jacobi.dp.cpp create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/03_SYCL_Migration_Jacobi_Iterative/sycl_migrated/Samples/3_CUDA_Features/jacobiCudaGraphs/jacobi.h create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/03_SYCL_Migration_Jacobi_Iterative/sycl_migrated/Samples/3_CUDA_Features/jacobiCudaGraphs/main.cpp.dp.cpp create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/03_SYCL_Migration_Jacobi_Iterative/sycl_migrated/include/dpct/atomic.hpp create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/03_SYCL_Migration_Jacobi_Iterative/sycl_migrated/include/dpct/device.hpp create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/03_SYCL_Migration_Jacobi_Iterative/sycl_migrated/include/dpct/dpct.hpp create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/03_SYCL_Migration_Jacobi_Iterative/sycl_migrated/include/dpct/image.hpp create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/03_SYCL_Migration_Jacobi_Iterative/sycl_migrated/include/dpct/memory.hpp create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/03_SYCL_Migration_Jacobi_Iterative/sycl_migrated/include/dpct/util.hpp create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/03_SYCL_Migration_Jacobi_Iterative/sycl_migrated_optimized/Common/exception.h create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/03_SYCL_Migration_Jacobi_Iterative/sycl_migrated_optimized/Common/helper_cuda.h create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/03_SYCL_Migration_Jacobi_Iterative/sycl_migrated_optimized/Common/helper_cuda.h.yaml create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/03_SYCL_Migration_Jacobi_Iterative/sycl_migrated_optimized/Common/helper_string.h create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/03_SYCL_Migration_Jacobi_Iterative/sycl_migrated_optimized/Common/helper_timer.h create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/03_SYCL_Migration_Jacobi_Iterative/sycl_migrated_optimized/MainSourceFiles.yaml create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/03_SYCL_Migration_Jacobi_Iterative/sycl_migrated_optimized/Samples/3_CUDA_Features/jacobiCudaGraphs/jacobi.dp.cpp create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/03_SYCL_Migration_Jacobi_Iterative/sycl_migrated_optimized/Samples/3_CUDA_Features/jacobiCudaGraphs/jacobi.h create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/03_SYCL_Migration_Jacobi_Iterative/sycl_migrated_optimized/Samples/3_CUDA_Features/jacobiCudaGraphs/main.cpp.dp.cpp create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/03_SYCL_Migration_Jacobi_Iterative/sycl_migrated_optimized/include/dpct/atomic.hpp create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/03_SYCL_Migration_Jacobi_Iterative/sycl_migrated_optimized/include/dpct/device.hpp create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/03_SYCL_Migration_Jacobi_Iterative/sycl_migrated_optimized/include/dpct/dpct.hpp create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/03_SYCL_Migration_Jacobi_Iterative/sycl_migrated_optimized/include/dpct/image.hpp create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/03_SYCL_Migration_Jacobi_Iterative/sycl_migrated_optimized/include/dpct/memory.hpp create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/03_SYCL_Migration_Jacobi_Iterative/sycl_migrated_optimized/include/dpct/util.hpp create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/03_SYCL_Migration_Jacobi_Iterative/third-party-programs.txt create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/04_SYCL_Migration_MatrixMul_CuBlas/04_SYCL_Migration_MatrixMul_CuBlas.ipynb create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/04_SYCL_Migration_MatrixMul_CuBlas/License.txt create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/04_SYCL_Migration_MatrixMul_CuBlas/Readme.md create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/04_SYCL_Migration_MatrixMul_CuBlas/dpct_output/Common/exception.h create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/04_SYCL_Migration_MatrixMul_CuBlas/dpct_output/Common/helper_cuda.h create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/04_SYCL_Migration_MatrixMul_CuBlas/dpct_output/Common/helper_cuda.h.yaml create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/04_SYCL_Migration_MatrixMul_CuBlas/dpct_output/Common/helper_functions.h create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/04_SYCL_Migration_MatrixMul_CuBlas/dpct_output/Common/helper_image.h create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/04_SYCL_Migration_MatrixMul_CuBlas/dpct_output/Common/helper_image.h.yaml create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/04_SYCL_Migration_MatrixMul_CuBlas/dpct_output/Common/helper_string.h create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/04_SYCL_Migration_MatrixMul_CuBlas/dpct_output/Common/helper_timer.h create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/04_SYCL_Migration_MatrixMul_CuBlas/dpct_output/MainSourceFiles.yaml create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/04_SYCL_Migration_MatrixMul_CuBlas/dpct_output/Samples/4_CUDA_Libraries/matrixMulCUBLAS/matrixMulCUBLAS.cpp.dp.cpp create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/04_SYCL_Migration_MatrixMul_CuBlas/dpct_output/include/dpct/device.hpp create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/04_SYCL_Migration_MatrixMul_CuBlas/dpct_output/include/dpct/dpct.hpp create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/04_SYCL_Migration_MatrixMul_CuBlas/dpct_output/include/dpct/memory.hpp create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/04_SYCL_Migration_MatrixMul_CuBlas/dpct_output/include/dpct/util.hpp create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/04_SYCL_Migration_MatrixMul_CuBlas/q.sh create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/04_SYCL_Migration_MatrixMul_CuBlas/run_sycl_migrated.sh create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/04_SYCL_Migration_MatrixMul_CuBlas/sycl_migrated/Common/exception.h create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/04_SYCL_Migration_MatrixMul_CuBlas/sycl_migrated/Common/helper_cuda.h create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/04_SYCL_Migration_MatrixMul_CuBlas/sycl_migrated/Common/helper_cuda.h.yaml create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/04_SYCL_Migration_MatrixMul_CuBlas/sycl_migrated/Common/helper_functions.h create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/04_SYCL_Migration_MatrixMul_CuBlas/sycl_migrated/Common/helper_image.h create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/04_SYCL_Migration_MatrixMul_CuBlas/sycl_migrated/Common/helper_image.h.yaml create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/04_SYCL_Migration_MatrixMul_CuBlas/sycl_migrated/Common/helper_string.h create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/04_SYCL_Migration_MatrixMul_CuBlas/sycl_migrated/Common/helper_timer.h create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/04_SYCL_Migration_MatrixMul_CuBlas/sycl_migrated/MainSourceFiles.yaml create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/04_SYCL_Migration_MatrixMul_CuBlas/sycl_migrated/Samples/4_CUDA_Libraries/matrixMulCUBLAS/matrixMulCUBLAS.cpp.dp.cpp create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/04_SYCL_Migration_MatrixMul_CuBlas/sycl_migrated/include/dpct/device.hpp create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/04_SYCL_Migration_MatrixMul_CuBlas/sycl_migrated/include/dpct/dpct.hpp create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/04_SYCL_Migration_MatrixMul_CuBlas/sycl_migrated/include/dpct/memory.hpp create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/04_SYCL_Migration_MatrixMul_CuBlas/sycl_migrated/include/dpct/util.hpp create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/04_SYCL_Migration_MatrixMul_CuBlas/third-party-programs.txt create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/Makefile create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/README.md create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/TeacherKit.ipynb create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/Welcome.ipynb create mode 100755 DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/sample.json mode change 100644 => 100755 DirectProgramming/C++SYCL/Jupyter/oneapi-essentials-training/02_SYCL_Program_Structure/SYCL_Program_Structure.ipynb create mode 100755 DirectProgramming/C++SYCL/Jupyter/oneapi-essentials-training/02_SYCL_Program_Structure/lab/vector_add_usm_buffers.cpp create mode 100755 DirectProgramming/C++SYCL/Jupyter/oneapi-essentials-training/02_SYCL_Program_Structure/run_vector_add_usm_buffers.sh create mode 100755 DirectProgramming/C++SYCL/Jupyter/oneapi-essentials-training/02_SYCL_Program_Structure/src/vector_add_usm_buffers.cpp create mode 100755 DirectProgramming/C++SYCL_FPGA/ReferenceDesigns/anr/test_data/small_input_noisy.data create mode 100755 DirectProgramming/C++SYCL_FPGA/ReferenceDesigns/anr/test_data/small_output_ref.data create mode 100644 DirectProgramming/C++SYCL_FPGA/ReferenceDesigns/db/assets/q9.png create mode 100644 DirectProgramming/C++SYCL_FPGA/ReferenceDesigns/db/src/query9/pipe_types.hpp create mode 100644 DirectProgramming/C++SYCL_FPGA/ReferenceDesigns/db/src/query9/query9_kernel.cpp create mode 100644 DirectProgramming/C++SYCL_FPGA/ReferenceDesigns/db/src/query9/query9_kernel.hpp create mode 100644 DirectProgramming/C++SYCL_FPGA/ReferenceDesigns/decompress/data/gzip/small.gz create mode 100755 DirectProgramming/C++SYCL_FPGA/ReferenceDesigns/decompress/data/snappy/alice29_small.txt.sz create mode 100644 DirectProgramming/C++SYCL_FPGA/ReferenceDesigns/decompress/data/snappy/alice29_small_ref.txt create mode 100644 DirectProgramming/C++SYCL_FPGA/ReferenceDesigns/gzip/data/100b.txt rename DirectProgramming/C++SYCL_FPGA/Tutorials/DesignPatterns/io_streaming/{ => assets}/fake_io_pipe_ddr.png (100%) rename DirectProgramming/C++SYCL_FPGA/Tutorials/DesignPatterns/io_streaming/{ => assets}/fake_io_pipe_usm.png (100%) rename DirectProgramming/C++SYCL_FPGA/Tutorials/DesignPatterns/io_streaming/{ => assets}/io_pipe.png (100%) rename DirectProgramming/C++SYCL_FPGA/Tutorials/DesignPatterns/io_streaming/{ => assets}/io_streaming.png (100%) rename DirectProgramming/C++SYCL_FPGA/Tutorials/DesignPatterns/io_streaming/{ => assets}/offload.png (100%) rename DirectProgramming/C++SYCL_FPGA/Tutorials/DesignPatterns/io_streaming/{ => assets}/tutorial_setup.png (100%) rename DirectProgramming/C++SYCL_FPGA/Tutorials/DesignPatterns/optimize_inner_loop/{ => assets}/timing_2_speculated.png (100%) rename DirectProgramming/C++SYCL_FPGA/Tutorials/DesignPatterns/optimize_inner_loop/{ => assets}/timing_base.png (100%) rename DirectProgramming/C++SYCL_FPGA/Tutorials/DesignPatterns/shannonization/{ => assets}/basic.png (100%) rename DirectProgramming/C++SYCL_FPGA/Tutorials/DesignPatterns/shannonization/{ => assets}/optimized.png (100%) rename DirectProgramming/C++SYCL_FPGA/Tutorials/DesignPatterns/simple_host_streaming/{ => assets}/kernel-relaunch.png (100%) rename DirectProgramming/C++SYCL_FPGA/Tutorials/DesignPatterns/simple_host_streaming/{ => assets}/kernel-rtt.png (100%) rename DirectProgramming/C++SYCL_FPGA/Tutorials/DesignPatterns/simple_host_streaming/{ => assets}/multi-kernel-pipeline.png (100%) rename DirectProgramming/C++SYCL_FPGA/Tutorials/DesignPatterns/simple_host_streaming/{ => assets}/multi-kernel-producer-consumer-pipeline.png (100%) rename DirectProgramming/C++SYCL_FPGA/Tutorials/DesignPatterns/simple_host_streaming/{ => assets}/multi-kernel-producer-consumer.png (100%) rename DirectProgramming/C++SYCL_FPGA/Tutorials/DesignPatterns/simple_host_streaming/{ => assets}/multi-kernel.png (100%) rename DirectProgramming/C++SYCL_FPGA/Tutorials/DesignPatterns/simple_host_streaming/{ => assets}/single-kernel.png (100%) rename DirectProgramming/C++SYCL_FPGA/Tutorials/DesignPatterns/zero_copy_data_transfer/{ => assets}/basic.png (100%) mode change 100755 => 100644 rename DirectProgramming/C++SYCL_FPGA/Tutorials/DesignPatterns/zero_copy_data_transfer/{ => assets}/zero_copy.png (100%) mode change 100755 => 100644 create mode 100644 DirectProgramming/C++SYCL_FPGA/Tutorials/Features/experimental/device_global/CMakeLists.txt create mode 100644 DirectProgramming/C++SYCL_FPGA/Tutorials/Features/experimental/device_global/README.md create mode 100644 DirectProgramming/C++SYCL_FPGA/Tutorials/Features/experimental/device_global/sample.json create mode 100644 DirectProgramming/C++SYCL_FPGA/Tutorials/Features/experimental/device_global/src/CMakeLists.txt create mode 100644 DirectProgramming/C++SYCL_FPGA/Tutorials/Features/experimental/device_global/src/device_global.cpp create mode 100755 DirectProgramming/C++SYCL_FPGA/Tutorials/Features/experimental/invocation_interfaces/CMakeLists.txt create mode 100755 DirectProgramming/C++SYCL_FPGA/Tutorials/Features/experimental/invocation_interfaces/README.md create mode 100755 DirectProgramming/C++SYCL_FPGA/Tutorials/Features/experimental/invocation_interfaces/assets/register_map_invocation_interface.png create mode 100755 DirectProgramming/C++SYCL_FPGA/Tutorials/Features/experimental/invocation_interfaces/assets/streaming_invocation_interface.png create mode 100755 DirectProgramming/C++SYCL_FPGA/Tutorials/Features/experimental/invocation_interfaces/sample.json create mode 100755 DirectProgramming/C++SYCL_FPGA/Tutorials/Features/experimental/invocation_interfaces/src/CMakeLists.txt create mode 100644 DirectProgramming/C++SYCL_FPGA/Tutorials/Features/experimental/invocation_interfaces/src/register_map_functor_model.cpp create mode 100644 DirectProgramming/C++SYCL_FPGA/Tutorials/Features/experimental/invocation_interfaces/src/register_map_lambda_model.cpp create mode 100644 DirectProgramming/C++SYCL_FPGA/Tutorials/Features/experimental/invocation_interfaces/src/streaming_functor_model.cpp create mode 100644 DirectProgramming/C++SYCL_FPGA/Tutorials/Features/experimental/invocation_interfaces/src/streaming_lambda_model.cpp rename DirectProgramming/C++SYCL_FPGA/Tutorials/{GettingStarted/fpga_compile => Features/optimization_levels/minimum_latency}/CMakeLists.txt (95%) mode change 100755 => 100644 create mode 100644 DirectProgramming/C++SYCL_FPGA/Tutorials/Features/optimization_levels/minimum_latency/README.md create mode 100644 DirectProgramming/C++SYCL_FPGA/Tutorials/Features/optimization_levels/minimum_latency/sample.json create mode 100644 DirectProgramming/C++SYCL_FPGA/Tutorials/Features/optimization_levels/minimum_latency/src/CMakeLists.txt create mode 100644 DirectProgramming/C++SYCL_FPGA/Tutorials/Features/optimization_levels/minimum_latency/src/minimum_latency.cpp create mode 100644 DirectProgramming/C++SYCL_FPGA/Tutorials/GettingStarted/fpga_compile/part1_cpp/CMakeLists.txt create mode 100644 DirectProgramming/C++SYCL_FPGA/Tutorials/GettingStarted/fpga_compile/part1_cpp/src/CMakeLists.txt create mode 100644 DirectProgramming/C++SYCL_FPGA/Tutorials/GettingStarted/fpga_compile/part1_cpp/src/vector_add.cpp create mode 100644 DirectProgramming/C++SYCL_FPGA/Tutorials/GettingStarted/fpga_compile/part2_dpcpp_functor_usm/CMakeLists.txt create mode 100644 DirectProgramming/C++SYCL_FPGA/Tutorials/GettingStarted/fpga_compile/part2_dpcpp_functor_usm/src/CMakeLists.txt create mode 100644 DirectProgramming/C++SYCL_FPGA/Tutorials/GettingStarted/fpga_compile/part2_dpcpp_functor_usm/src/vector_add.cpp create mode 100644 DirectProgramming/C++SYCL_FPGA/Tutorials/GettingStarted/fpga_compile/part3_dpcpp_lambda_usm/CMakeLists.txt create mode 100644 DirectProgramming/C++SYCL_FPGA/Tutorials/GettingStarted/fpga_compile/part3_dpcpp_lambda_usm/src/CMakeLists.txt create mode 100644 DirectProgramming/C++SYCL_FPGA/Tutorials/GettingStarted/fpga_compile/part3_dpcpp_lambda_usm/src/vector_add.cpp create mode 100644 DirectProgramming/C++SYCL_FPGA/Tutorials/GettingStarted/fpga_compile/part4_dpcpp_lambda_buffers/CMakeLists.txt create mode 100644 DirectProgramming/C++SYCL_FPGA/Tutorials/GettingStarted/fpga_compile/part4_dpcpp_lambda_buffers/src/CMakeLists.txt create mode 100644 DirectProgramming/C++SYCL_FPGA/Tutorials/GettingStarted/fpga_compile/part4_dpcpp_lambda_buffers/src/vector_add.cpp delete mode 100755 DirectProgramming/C++SYCL_FPGA/Tutorials/GettingStarted/fpga_compile/src/CMakeLists.txt delete mode 100644 DirectProgramming/C++SYCL_FPGA/Tutorials/GettingStarted/fpga_compile/src/fpga_compile.cpp create mode 100644 DirectProgramming/C++SYCL_FPGA/Tutorials/GettingStarted/fpga_template/CMakeLists.txt create mode 100644 DirectProgramming/C++SYCL_FPGA/Tutorials/GettingStarted/fpga_template/README.md create mode 100644 DirectProgramming/C++SYCL_FPGA/Tutorials/GettingStarted/fpga_template/sample.json create mode 100644 DirectProgramming/C++SYCL_FPGA/Tutorials/GettingStarted/fpga_template/src/fpga_template.cpp create mode 100644 DirectProgramming/C++SYCL_FPGA/Tutorials/Tools/dynamic_profiler/data/dynamic_profiler_tutorial.json.zip create mode 100644 DirectProgramming/C++SYCL_FPGA/Tutorials/Tools/experimental/platform_designer/README.md create mode 100644 DirectProgramming/C++SYCL_FPGA/Tutorials/Tools/experimental/platform_designer/add-oneapi/CMakeLists.txt create mode 100644 DirectProgramming/C++SYCL_FPGA/Tutorials/Tools/experimental/platform_designer/add-oneapi/src/add.cpp create mode 100644 DirectProgramming/C++SYCL_FPGA/Tutorials/Tools/experimental/platform_designer/add-quartus-sln/.gitignore create mode 100644 DirectProgramming/C++SYCL_FPGA/Tutorials/Tools/experimental/platform_designer/add-quartus-sln/add.qpf create mode 100644 DirectProgramming/C++SYCL_FPGA/Tutorials/Tools/experimental/platform_designer/add-quartus-sln/add.qsf create mode 100644 DirectProgramming/C++SYCL_FPGA/Tutorials/Tools/experimental/platform_designer/add-quartus-sln/add.sdc create mode 100644 DirectProgramming/C++SYCL_FPGA/Tutorials/Tools/experimental/platform_designer/add-quartus-sln/add.sv create mode 100644 DirectProgramming/C++SYCL_FPGA/Tutorials/Tools/experimental/platform_designer/add-quartus-sln/add_kernel_wrapper.qsys create mode 100644 DirectProgramming/C++SYCL_FPGA/Tutorials/Tools/experimental/platform_designer/add-quartus-sln/add_kernel_wrapper.qsys.legacy create mode 100644 DirectProgramming/C++SYCL_FPGA/Tutorials/Tools/experimental/platform_designer/add-quartus-sln/ip/add_kernel_wrapper/add_kernel_wrapper_add_fpga_ip_export_1_di_0.ip create mode 100644 DirectProgramming/C++SYCL_FPGA/Tutorials/Tools/experimental/platform_designer/add-quartus-sln/ip/add_kernel_wrapper/add_kernel_wrapper_clock_in.ip create mode 100644 DirectProgramming/C++SYCL_FPGA/Tutorials/Tools/experimental/platform_designer/add-quartus-sln/ip/add_kernel_wrapper/add_kernel_wrapper_master_0.ip create mode 100644 DirectProgramming/C++SYCL_FPGA/Tutorials/Tools/experimental/platform_designer/add-quartus-sln/ip/add_kernel_wrapper/add_kernel_wrapper_reset_in.ip create mode 100644 DirectProgramming/C++SYCL_FPGA/Tutorials/Tools/experimental/platform_designer/add-quartus-sln/jtag.sdc create mode 100644 DirectProgramming/C++SYCL_FPGA/Tutorials/Tools/experimental/platform_designer/add-quartus-sln/quartus_sh.log create mode 100644 DirectProgramming/C++SYCL_FPGA/Tutorials/Tools/experimental/platform_designer/assets/add-files.png create mode 100644 DirectProgramming/C++SYCL_FPGA/Tutorials/Tools/experimental/platform_designer/assets/add-ip-platform-designer.png create mode 100755 DirectProgramming/C++SYCL_FPGA/Tutorials/Tools/experimental/platform_designer/assets/all-pins.png create mode 100755 DirectProgramming/C++SYCL_FPGA/Tutorials/Tools/experimental/platform_designer/assets/complete-system_platform-designer.png create mode 100755 DirectProgramming/C++SYCL_FPGA/Tutorials/Tools/experimental/platform_designer/assets/csr-output-example-simple.svg create mode 100755 DirectProgramming/C++SYCL_FPGA/Tutorials/Tools/experimental/platform_designer/assets/disconnect-clock.png create mode 100755 DirectProgramming/C++SYCL_FPGA/Tutorials/Tools/experimental/platform_designer/assets/disconnect-clock_mouse.png create mode 100755 DirectProgramming/C++SYCL_FPGA/Tutorials/Tools/experimental/platform_designer/assets/fix-reset_n-platform-designer.png create mode 100755 DirectProgramming/C++SYCL_FPGA/Tutorials/Tools/experimental/platform_designer/assets/generate-hdl.png create mode 100644 DirectProgramming/C++SYCL_FPGA/Tutorials/Tools/experimental/platform_designer/assets/new-platform-designer-system-button.png create mode 100755 DirectProgramming/C++SYCL_FPGA/Tutorials/Tools/experimental/platform_designer/assets/open-platform-designer-button.png create mode 100644 DirectProgramming/C++SYCL_FPGA/Tutorials/Tools/experimental/platform_designer/assets/pins-from-design.png create mode 100644 DirectProgramming/C++SYCL_FPGA/Tutorials/Tools/experimental/platform_designer/assets/pins-from-ghrd.png create mode 100644 DirectProgramming/C++SYCL_FPGA/Tutorials/Tools/experimental/platform_designer/assets/quartus_new_project.png create mode 100755 DirectProgramming/C++SYCL_FPGA/Tutorials/Tools/experimental/platform_designer/assets/refresh-system.png create mode 100755 DirectProgramming/C++SYCL_FPGA/Tutorials/Tools/experimental/platform_designer/assets/reset-bridge.png create mode 100644 DirectProgramming/C++SYCL_FPGA/Tutorials/Tools/experimental/platform_designer/assets/start-analysis.png create mode 100755 DirectProgramming/C++SYCL_FPGA/Tutorials/Tools/experimental/platform_designer/assets/start-compilation-quartus.png create mode 100755 DirectProgramming/C++SYCL_FPGA/Tutorials/Tools/experimental/platform_designer/sample.json create mode 100755 DirectProgramming/C++SYCL_FPGA/Tutorials/Tools/experimental/platform_designer/system_console/jtag_avmm.tcl create mode 100755 DirectProgramming/C++SYCL_FPGA/Tutorials/Tools/experimental/platform_designer/system_console/load_inputs.tcl create mode 100755 DirectProgramming/C++SYCL_FPGA/Tutorials/Tools/experimental/platform_designer/system_console/read_outputs.tcl create mode 100644 DirectProgramming/C++SYCL_FPGA/Tutorials/Tools/experimental/platform_designer/system_console/test.bat rename Libraries/oneDNN/tutorials/{benchdnn_tutorial.ipynb => tutorial_benchdnn.ipynb} (100%) create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/01_sycl_dpct_output/Common/cublas_utils.h create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/01_sycl_dpct_output/Level-1/cublas_amax_example.dp.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/01_sycl_dpct_output/Level-1/cublas_amin_example.dp.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/01_sycl_dpct_output/Level-1/cublas_asum_example.dp.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/01_sycl_dpct_output/Level-1/cublas_axpy_example.dp.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/01_sycl_dpct_output/Level-1/cublas_copy_example.dp.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/01_sycl_dpct_output/Level-1/cublas_dot_example.dp.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/01_sycl_dpct_output/Level-1/cublas_dotc_example.dp.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/01_sycl_dpct_output/Level-1/cublas_nrm2_example.dp.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/01_sycl_dpct_output/Level-1/cublas_rot_example.dp.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/01_sycl_dpct_output/Level-1/cublas_rotg_example.dp.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/01_sycl_dpct_output/Level-1/cublas_rotm_example.dp.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/01_sycl_dpct_output/Level-1/cublas_rotmg_example.dp.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/01_sycl_dpct_output/Level-1/cublas_scal_example.dp.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/01_sycl_dpct_output/Level-1/cublas_swap_example.dp.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/01_sycl_dpct_output/Level-2/cublas_gbmv_example.dp.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/01_sycl_dpct_output/Level-2/cublas_gemv_example.dp.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/01_sycl_dpct_output/Level-2/cublas_ger_example.dp.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/01_sycl_dpct_output/Level-2/cublas_hbmv_example.dp.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/01_sycl_dpct_output/Level-2/cublas_hemv_example.dp.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/01_sycl_dpct_output/Level-2/cublas_her2_example.dp.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/01_sycl_dpct_output/Level-2/cublas_her_example.dp.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/01_sycl_dpct_output/Level-2/cublas_hpmv_example.dp.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/01_sycl_dpct_output/Level-2/cublas_hpr2_example.dp.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/01_sycl_dpct_output/Level-2/cublas_hpr_example.dp.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/01_sycl_dpct_output/Level-2/cublas_sbmv_example.dp.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/01_sycl_dpct_output/Level-2/cublas_spmv_example.dp.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/01_sycl_dpct_output/Level-2/cublas_spr2_example.dp.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/01_sycl_dpct_output/Level-2/cublas_spr_example.dp.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/01_sycl_dpct_output/Level-2/cublas_symv_example.dp.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/01_sycl_dpct_output/Level-2/cublas_syr2_example.dp.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/01_sycl_dpct_output/Level-2/cublas_syr_example.dp.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/01_sycl_dpct_output/Level-2/cublas_tbmv_example.dp.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/01_sycl_dpct_output/Level-2/cublas_tbsv_example.dp.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/01_sycl_dpct_output/Level-2/cublas_tpmv_example.dp.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/01_sycl_dpct_output/Level-2/cublas_tpsv_example.dp.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/01_sycl_dpct_output/Level-2/cublas_trmv_example.dp.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/01_sycl_dpct_output/Level-2/cublas_trsv_example.dp.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/01_sycl_dpct_output/Level-3/cublas_gemm3m_example.dp.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/01_sycl_dpct_output/Level-3/cublas_gemmBatched_example.dp.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/01_sycl_dpct_output/Level-3/cublas_gemmStridedBatched_example.dp.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/01_sycl_dpct_output/Level-3/cublas_gemm_example.dp.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/01_sycl_dpct_output/Level-3/cublas_hemm_example.dp.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/01_sycl_dpct_output/Level-3/cublas_her2k_example.dp.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/01_sycl_dpct_output/Level-3/cublas_herk_example.dp.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/01_sycl_dpct_output/Level-3/cublas_herkx_example.dp.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/01_sycl_dpct_output/Level-3/cublas_symm_example.dp.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/01_sycl_dpct_output/Level-3/cublas_syr2k_example.dp.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/01_sycl_dpct_output/Level-3/cublas_syrk_example.dp.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/01_sycl_dpct_output/Level-3/cublas_syrkx_example.dp.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/01_sycl_dpct_output/Level-3/cublas_trmm_example.dp.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/01_sycl_dpct_output/Level-3/cublas_trsmBatched_example.dp.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/01_sycl_dpct_output/Level-3/cublas_trsm_example.dp.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/02_sycl_dpct_migrated/CMakeLists.txt create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/02_sycl_dpct_migrated/Common/cublas_utils.h create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/02_sycl_dpct_migrated/Level-1/CMakeLists.txt create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/02_sycl_dpct_migrated/Level-1/amax.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/02_sycl_dpct_migrated/Level-1/amin.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/02_sycl_dpct_migrated/Level-1/asum.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/02_sycl_dpct_migrated/Level-1/axpy.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/02_sycl_dpct_migrated/Level-1/copy.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/02_sycl_dpct_migrated/Level-1/dot.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/02_sycl_dpct_migrated/Level-1/dotc.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/02_sycl_dpct_migrated/Level-1/nrm2.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/02_sycl_dpct_migrated/Level-1/rot.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/02_sycl_dpct_migrated/Level-1/rotg.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/02_sycl_dpct_migrated/Level-1/rotm.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/02_sycl_dpct_migrated/Level-1/rotmg.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/02_sycl_dpct_migrated/Level-1/scal.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/02_sycl_dpct_migrated/Level-1/swap.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/02_sycl_dpct_migrated/Level-2/CMakeLists.txt create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/02_sycl_dpct_migrated/Level-2/gbmv.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/02_sycl_dpct_migrated/Level-2/gemv.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/02_sycl_dpct_migrated/Level-2/ger.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/02_sycl_dpct_migrated/Level-2/hbmv.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/02_sycl_dpct_migrated/Level-2/hemv.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/02_sycl_dpct_migrated/Level-2/her.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/02_sycl_dpct_migrated/Level-2/her2.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/02_sycl_dpct_migrated/Level-2/hpmv.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/02_sycl_dpct_migrated/Level-2/hpr.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/02_sycl_dpct_migrated/Level-2/hpr2.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/02_sycl_dpct_migrated/Level-2/sbmv.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/02_sycl_dpct_migrated/Level-2/spmv.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/02_sycl_dpct_migrated/Level-2/spr.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/02_sycl_dpct_migrated/Level-2/spr2.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/02_sycl_dpct_migrated/Level-2/symv.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/02_sycl_dpct_migrated/Level-2/syr.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/02_sycl_dpct_migrated/Level-2/syr2.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/02_sycl_dpct_migrated/Level-2/tbmv.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/02_sycl_dpct_migrated/Level-2/tbsv.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/02_sycl_dpct_migrated/Level-2/tpmv.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/02_sycl_dpct_migrated/Level-2/tpsv.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/02_sycl_dpct_migrated/Level-2/trmv.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/02_sycl_dpct_migrated/Level-2/trsv.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/02_sycl_dpct_migrated/Level-3/CMakeLists.txt create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/02_sycl_dpct_migrated/Level-3/gemm.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/02_sycl_dpct_migrated/Level-3/gemm3m.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/02_sycl_dpct_migrated/Level-3/gemmBatched.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/02_sycl_dpct_migrated/Level-3/gemmStridedBatched.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/02_sycl_dpct_migrated/Level-3/hemm.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/02_sycl_dpct_migrated/Level-3/her2k.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/02_sycl_dpct_migrated/Level-3/herk.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/02_sycl_dpct_migrated/Level-3/herkx.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/02_sycl_dpct_migrated/Level-3/symm.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/02_sycl_dpct_migrated/Level-3/syr2k.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/02_sycl_dpct_migrated/Level-3/syrk.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/02_sycl_dpct_migrated/Level-3/syrkx.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/02_sycl_dpct_migrated/Level-3/trmm.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/02_sycl_dpct_migrated/Level-3/trsm.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/02_sycl_dpct_migrated/Level-3/trsmBatched.cpp create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/CMakeLists.txt create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/License.txt create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/README.md create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/sample.json create mode 100644 Libraries/oneMKL/guided_cuBLAS_examples_SYCL_Migration/third-party-programs.txt create mode 100644 Publications/GPU-Opt-Guide/MPI/01_omp_mpich/CMakeLists.txt create mode 100644 Publications/GPU-Opt-Guide/MPI/01_omp_mpich/omp_mpich.cpp create mode 100644 Publications/GPU-Opt-Guide/MPI/CMakeLists.txt create mode 100644 Publications/GPU-Opt-Guide/OpenMP/22_mkl_pad/CMakeLists.txt create mode 100644 Publications/GPU-Opt-Guide/OpenMP/22_mkl_pad/dgemm_pad_c_01.cpp create mode 100644 Publications/GPU-Opt-Guide/OpenMP/22_mkl_pad/dgemm_pad_f_01.f create mode 100644 Publications/GPU-Opt-Guide/OpenMP/25_NWChem_based_example_1/CMakeLists.txt create mode 100644 Publications/GPU-Opt-Guide/OpenMP/25_NWChem_based_example_1/test-SharedMem.f create mode 100644 Publications/GPU-Opt-Guide/OpenMP/25_NWChem_based_example_2/CMakeLists.txt create mode 100644 Publications/GPU-Opt-Guide/OpenMP/25_NWChem_based_example_2/test-Map-UpdateTo.f create mode 100644 Publications/GPU-Opt-Guide/OpenMP/25_NWChem_based_example_3/CMakeLists.txt create mode 100644 Publications/GPU-Opt-Guide/OpenMP/25_NWChem_based_example_3/test-HostMem-DeviceMem-Map-UpdateTo.f create mode 100644 Publications/GPU-Opt-Guide/OpenMP/26_omp_prefetch/CMakeLists.txt create mode 100644 Publications/GPU-Opt-Guide/OpenMP/26_omp_prefetch/c/CMakeLists.txt create mode 100644 Publications/GPU-Opt-Guide/OpenMP/26_omp_prefetch/c/nbody_c.cpp create mode 100644 Publications/GPU-Opt-Guide/OpenMP/26_omp_prefetch/c_simd/CMakeLists.txt create mode 100644 Publications/GPU-Opt-Guide/OpenMP/26_omp_prefetch/c_simd/nbody_c_simd.cpp create mode 100644 Publications/GPU-Opt-Guide/OpenMP/26_omp_prefetch/fortran/CMakeLists.txt create mode 100644 Publications/GPU-Opt-Guide/OpenMP/26_omp_prefetch/fortran/nbody_f.f create mode 100644 Publications/GPU-Opt-Guide/grf-mode-selection/CMakeLists.txt create mode 100644 Publications/GPU-Opt-Guide/grf-mode-selection/openmp/CMakeLists.txt create mode 100644 Publications/GPU-Opt-Guide/grf-mode-selection/openmp/grf-mode-selection-omp.cpp create mode 100644 Publications/GPU-Opt-Guide/grf-mode-selection/openmp/omp_example.yaml create mode 100644 Publications/GPU-Opt-Guide/grf-mode-selection/perf/CMakeLists.txt create mode 100644 Publications/GPU-Opt-Guide/grf-mode-selection/perf/large/CMakeLists.txt create mode 100644 Publications/GPU-Opt-Guide/grf-mode-selection/perf/large/ax-static-large.cpp create mode 100644 Publications/GPU-Opt-Guide/grf-mode-selection/perf/small/CMakeLists.txt create mode 100644 Publications/GPU-Opt-Guide/grf-mode-selection/perf/small/ax-static-small.cpp create mode 100644 Publications/GPU-Opt-Guide/grf-mode-selection/sycl/CMakeLists.txt create mode 100644 Publications/GPU-Opt-Guide/grf-mode-selection/sycl/grf-mode-selection-sycl.cpp create mode 100644 Publications/GPU-Opt-Guide/implicit-scaling/05_stream_cross_stack/stream_cross_stack.cpp create mode 100644 Publications/GPU-Opt-Guide/implicit-scaling/06_cross_stack/cross_stack_01.cpp create mode 100644 Publications/GPU-Opt-Guide/jitting/spec-const3.cpp create mode 100644 Publications/GPU-Opt-Guide/jitting/stream-triad-modified-constant.cpp create mode 100644 Publications/GPU-Opt-Guide/jitting/stream-triad-modified-runtime-var.cpp create mode 100644 Publications/GPU-Opt-Guide/jitting/stream-triad-modified-spec-const.cpp create mode 100644 Publications/GPU-Opt-Guide/joint-matrix/CMakeLists.txt create mode 100644 Publications/GPU-Opt-Guide/joint-matrix/joint-matrix.cpp create mode 100644 Publications/GPU-Opt-Guide/sub-group/sub-group-8.cpp rename RenderingToolkit/GettingStarted/02_embree_gsg/{ => cpu}/CMakeLists.txt (60%) create mode 100644 RenderingToolkit/GettingStarted/02_embree_gsg/cpu/LICENSE.txt create mode 100644 RenderingToolkit/GettingStarted/02_embree_gsg/cpu/README.md rename RenderingToolkit/GettingStarted/02_embree_gsg/{ => cpu}/src/minimal.cpp (89%) create mode 100644 RenderingToolkit/GettingStarted/02_embree_gsg/gpu/CMakeLists.txt create mode 100644 RenderingToolkit/GettingStarted/02_embree_gsg/gpu/LICENSE.txt create mode 100644 RenderingToolkit/GettingStarted/02_embree_gsg/gpu/README.md create mode 100644 RenderingToolkit/GettingStarted/02_embree_gsg/gpu/build-lin-make-clang++.sh create mode 100644 RenderingToolkit/GettingStarted/02_embree_gsg/gpu/build-win-nmake-icx-cl.bat create mode 100644 RenderingToolkit/GettingStarted/02_embree_gsg/gpu/build-win-vs-dpcpp-toolchain.bat create mode 100644 RenderingToolkit/GettingStarted/02_embree_gsg/gpu/src/minimal_sycl.cpp rename RenderingToolkit/Tutorial/IntroToRayTracingWithEmbree/{ => cpu}/CMakeLists.txt (88%) create mode 100644 RenderingToolkit/Tutorial/IntroToRayTracingWithEmbree/cpu/LICENSE.txt create mode 100644 RenderingToolkit/Tutorial/IntroToRayTracingWithEmbree/cpu/README.md rename RenderingToolkit/Tutorial/IntroToRayTracingWithEmbree/{ => cpu}/example_images/F11-AmbientOcclusion.png (100%) rename RenderingToolkit/Tutorial/IntroToRayTracingWithEmbree/{ => cpu}/example_images/F2-eye.png (100%) rename RenderingToolkit/Tutorial/IntroToRayTracingWithEmbree/{ => cpu}/example_images/F3-occlusion.png (100%) rename RenderingToolkit/Tutorial/IntroToRayTracingWithEmbree/{ => cpu}/example_images/F4-UV.png (100%) rename RenderingToolkit/Tutorial/IntroToRayTracingWithEmbree/{ => cpu}/example_images/F5-Normal.png (100%) rename RenderingToolkit/Tutorial/IntroToRayTracingWithEmbree/{ => cpu}/example_images/F6-GeomIDs.png (100%) rename RenderingToolkit/Tutorial/IntroToRayTracingWithEmbree/{ => cpu}/example_images/F7-GeomAndPrim.png (100%) rename RenderingToolkit/Tutorial/IntroToRayTracingWithEmbree/{ => cpu}/example_images/F8-TextureCoordinates.png (100%) rename RenderingToolkit/Tutorial/IntroToRayTracingWithEmbree/{ => cpu}/example_images/cube_opposite_camera_angle.png (100%) rename RenderingToolkit/Tutorial/IntroToRayTracingWithEmbree/{ => cpu}/example_images/ground_with_shadow.png (100%) rename RenderingToolkit/Tutorial/IntroToRayTracingWithEmbree/{ => cpu}/example_images/interpolation.png (100%) rename RenderingToolkit/Tutorial/IntroToRayTracingWithEmbree/{ => cpu}/example_images/original_cube.png (100%) rename RenderingToolkit/Tutorial/IntroToRayTracingWithEmbree/{ => cpu}/example_images/rkRayTracer.png (100%) rename RenderingToolkit/Tutorial/IntroToRayTracingWithEmbree/{ => cpu}/src/rkRayTracer.cpp (96%) create mode 100644 RenderingToolkit/Tutorial/IntroToRayTracingWithEmbree/gpu/CMakeLists.txt create mode 100644 RenderingToolkit/Tutorial/IntroToRayTracingWithEmbree/gpu/LICENSE.txt create mode 100644 RenderingToolkit/Tutorial/IntroToRayTracingWithEmbree/gpu/README.md create mode 100644 RenderingToolkit/Tutorial/IntroToRayTracingWithEmbree/gpu/build-lin-make-icpx.sh create mode 100644 RenderingToolkit/Tutorial/IntroToRayTracingWithEmbree/gpu/build-win-nmake-icx-cl.bat create mode 100644 RenderingToolkit/Tutorial/IntroToRayTracingWithEmbree/gpu/build-win-vs-dpcpp-toolchain.bat create mode 100644 RenderingToolkit/Tutorial/IntroToRayTracingWithEmbree/gpu/example_images/F11-AmbientOcclusion.png create mode 100644 RenderingToolkit/Tutorial/IntroToRayTracingWithEmbree/gpu/example_images/F2-eye.png create mode 100644 RenderingToolkit/Tutorial/IntroToRayTracingWithEmbree/gpu/example_images/F3-occlusion.png create mode 100644 RenderingToolkit/Tutorial/IntroToRayTracingWithEmbree/gpu/example_images/F4-UV.png create mode 100644 RenderingToolkit/Tutorial/IntroToRayTracingWithEmbree/gpu/example_images/F5-Normal.png create mode 100644 RenderingToolkit/Tutorial/IntroToRayTracingWithEmbree/gpu/example_images/F6-GeomIDs.png create mode 100644 RenderingToolkit/Tutorial/IntroToRayTracingWithEmbree/gpu/example_images/F7-GeomAndPrim.png create mode 100644 RenderingToolkit/Tutorial/IntroToRayTracingWithEmbree/gpu/example_images/F8-TextureCoordinates.png create mode 100644 RenderingToolkit/Tutorial/IntroToRayTracingWithEmbree/gpu/example_images/cube_opposite_camera_angle.png create mode 100644 RenderingToolkit/Tutorial/IntroToRayTracingWithEmbree/gpu/example_images/ground_with_shadow.png create mode 100644 RenderingToolkit/Tutorial/IntroToRayTracingWithEmbree/gpu/example_images/interpolation.png create mode 100644 RenderingToolkit/Tutorial/IntroToRayTracingWithEmbree/gpu/example_images/original_cube.png rename RenderingToolkit/Tutorial/{PathTracingWithEmbree/example-images/rkRayTracer.png => IntroToRayTracingWithEmbree/gpu/example_images/rkRayTracerGPU.png} (100%) create mode 100644 RenderingToolkit/Tutorial/IntroToRayTracingWithEmbree/gpu/src/MathBindings.h create mode 100644 RenderingToolkit/Tutorial/IntroToRayTracingWithEmbree/gpu/src/rkRayTracerGPU.cpp rename RenderingToolkit/Tutorial/PathTracingWithEmbree/{ => cpu}/CMakeLists.txt (91%) create mode 100644 RenderingToolkit/Tutorial/PathTracingWithEmbree/cpu/LICENSE.txt rename RenderingToolkit/Tutorial/PathTracingWithEmbree/{ => cpu}/README.md (98%) rename RenderingToolkit/Tutorial/PathTracingWithEmbree/{ => cpu}/example-images/256spp-denoised.png (100%) rename RenderingToolkit/Tutorial/PathTracingWithEmbree/{ => cpu}/example-images/fresnelsphere.png (100%) rename RenderingToolkit/Tutorial/PathTracingWithEmbree/{ => cpu}/example-images/lambertian.png (100%) rename RenderingToolkit/Tutorial/PathTracingWithEmbree/{ => cpu}/example-images/mirror.png (100%) rename RenderingToolkit/Tutorial/PathTracingWithEmbree/{ => cpu}/example-images/pathtracer-accu-cornell-spp1-accu1000-plength8-512x512-nomirror.png (100%) rename RenderingToolkit/Tutorial/PathTracingWithEmbree/{ => cpu}/example-images/pathtracer-accu-cornell-spp1-accu2000-plength8-512x512-nomirror.png (100%) rename RenderingToolkit/Tutorial/PathTracingWithEmbree/{ => cpu}/example-images/pathtracer-accu-cornell-spp1-accu256-plength8-512x512.png (100%) rename RenderingToolkit/Tutorial/PathTracingWithEmbree/{ => cpu}/example-images/pathtracer-accu-cornell-spp1-accu4000-plength8-512x512-nomirror.png (100%) rename RenderingToolkit/Tutorial/PathTracingWithEmbree/{ => cpu}/example-images/pathtracer-accu-cornell-spp1-accu4000-plength8-512x512.png (100%) rename RenderingToolkit/Tutorial/PathTracingWithEmbree/{ => cpu}/example-images/pathtracer-accu-cubeandplane-spp1-accu4000-plength8-512x512.png (100%) rename RenderingToolkit/Tutorial/PathTracingWithEmbree/{ => cpu}/example-images/pathtracer-accu-pool-spp1-accu4000-plength8-512x512.png (100%) rename RenderingToolkit/Tutorial/PathTracingWithEmbree/{ => cpu}/example-images/pathtracer-single-cornell-spp1-accu4000-plength8-512x512-nomirror.png (100%) rename RenderingToolkit/Tutorial/PathTracingWithEmbree/{ => cpu}/example-images/pathtracer-single-cornell-spp1-accu4000-plength8-512x512.png (100%) rename RenderingToolkit/Tutorial/PathTracingWithEmbree/{ => cpu}/example-images/pathtracer-single-cubeandplane-spp1-accu4000-plength8-512x512.png (100%) rename RenderingToolkit/Tutorial/PathTracingWithEmbree/{ => cpu}/example-images/pathtracer-single-pool-spp1-accu4000-plength8-512x512.png (100%) create mode 100644 RenderingToolkit/Tutorial/PathTracingWithEmbree/cpu/example-images/rkRayTracer.png rename RenderingToolkit/Tutorial/PathTracingWithEmbree/{ => cpu}/src/CornellBox.h (99%) rename RenderingToolkit/Tutorial/PathTracingWithEmbree/{ => cpu}/src/DefaultCubeAndPlane.h (99%) rename RenderingToolkit/Tutorial/PathTracingWithEmbree/{ => cpu}/src/Geometry.h (97%) rename RenderingToolkit/Tutorial/PathTracingWithEmbree/{ => cpu}/src/Lights.h (100%) rename RenderingToolkit/Tutorial/PathTracingWithEmbree/{ => cpu}/src/Materials.h (100%) rename RenderingToolkit/Tutorial/PathTracingWithEmbree/{ => cpu}/src/PathTracer.h (84%) rename RenderingToolkit/Tutorial/PathTracingWithEmbree/{ => cpu}/src/Pool.h (99%) rename RenderingToolkit/Tutorial/PathTracingWithEmbree/{ => cpu}/src/RandomSampler.h (100%) rename RenderingToolkit/Tutorial/PathTracingWithEmbree/{ => cpu}/src/Renderer.h (99%) rename RenderingToolkit/Tutorial/PathTracingWithEmbree/{ => cpu}/src/SceneGraph.h (66%) rename RenderingToolkit/Tutorial/PathTracingWithEmbree/{ => cpu}/src/Sphere.h (99%) rename RenderingToolkit/Tutorial/PathTracingWithEmbree/{ => cpu}/src/definitions.h (99%) rename RenderingToolkit/Tutorial/PathTracingWithEmbree/{ => cpu}/src/rkPathTracer.cpp (95%) create mode 100644 SECURITY.md delete mode 100644 Tools/ApplicationDebugger/array-transform/src/selector.hpp create mode 100644 Tools/ApplicationDebugger/jacobi/src/bugged.cpp create mode 100644 Tools/ApplicationDebugger/jacobi/src/fixed.cpp delete mode 100644 Tools/ApplicationDebugger/jacobi/src/jacobi-bugged.cpp delete mode 100644 Tools/ApplicationDebugger/jacobi/src/jacobi-fixed.cpp create mode 100644 Tools/ApplicationDebugger/jacobi/src/jacobi.cpp delete mode 100755 Tools/ApplicationDebugger/jacobi/src/selector.hpp create mode 100644 release.json diff --git a/AI-and-Analytics/Getting-Started-Samples/IntelTensorFlow_GettingStarted/sample.json b/AI-and-Analytics/Getting-Started-Samples/IntelTensorFlow_GettingStarted/sample.json index 651a842a7b..1715ae7a70 100755 --- a/AI-and-Analytics/Getting-Started-Samples/IntelTensorFlow_GettingStarted/sample.json +++ b/AI-and-Analytics/Getting-Started-Samples/IntelTensorFlow_GettingStarted/sample.json @@ -1,31 +1,22 @@ { - "guid": "111213A0-C930-45B4-820F-02472BABBF34", - "name": "Intel® Tensorflow Getting Started", - "categories": ["Toolkit/oneAPI AI And Analytics/AI Getting Started Samples"], - "description": "This sample illustrates how to train a TensorFlow model and run inference with oneMKL and oneDNN.", - "builder": ["cli"], - "languages": [{"python":{}}], - "os":["linux","windows"], - "targetDevice": ["CPU"], - "ciTests": { - "linux": [ - { - "id": "tensorflow hello world", - "steps": [ - "source activate tensorflow", - "python TensorFlow_HelloWorld.py" - ] - } - ], - "windows": [ - { - "id": "tensorflow hello world", - "steps": [ - "source activate tensorflow", - "python TensorFlow_HelloWorld.py" - ] - } - ] - }, - "expertise": "Getting Started" + "guid": "111213A0-C930-45B4-820F-02472BABBF34", + "name": "Intel® Tensorflow Getting Started", + "categories": ["Toolkit/oneAPI AI And Analytics/AI Getting Started Samples"], + "description": "This sample illustrates how to train a TensorFlow model and run inference with oneMKL and oneDNN.", + "builder": ["cli"], + "languages": [{ + "python": {} + }], + "os": ["linux", "windows"], + "targetDevice": ["CPU"], + "ciTests": { + "linux": [{ + "id": "tensorflow hello world", + "steps": [ + "source activate tensorflow", + "python TensorFlow_HelloWorld.py" + ] + }] + }, + "expertise": "Getting Started" } diff --git a/AI-and-Analytics/Jupyter/Predictive_Modeling_Training/AI_Kit_XGBoost_Predictive_Modeling.complete/00_Local_Setup/Local_Setup.ipynb b/AI-and-Analytics/Jupyter/Predictive_Modeling_Training/AI_Kit_XGBoost_Predictive_Modeling.complete/00_Local_Setup/Local_Setup.ipynb index d3a9684679..4282749571 100644 --- a/AI-and-Analytics/Jupyter/Predictive_Modeling_Training/AI_Kit_XGBoost_Predictive_Modeling.complete/00_Local_Setup/Local_Setup.ipynb +++ b/AI-and-Analytics/Jupyter/Predictive_Modeling_Training/AI_Kit_XGBoost_Predictive_Modeling.complete/00_Local_Setup/Local_Setup.ipynb @@ -9,20 +9,7 @@ "\n", "There are multiple methods to setup your environment to take advantage of Intel software optimizations. If you are interested in running these exercises locally pick the method that appeals to your style of development. Using one of these methods is required to take advantage of Intel software optimizations. \n", "\n", - "* All these install methods assume an environment using Ubuntu 20.04.03 LTS. This can be on bare metal or running on WSL2 on Windows 10/11." - ] - }, - { - "cell_type": "markdown", - "id": "1b41f7bf-ce8e-4c30-a8a5-bf378b618a54", - "metadata": {}, - "source": [ - "## Sections\n", - "- [Anaconda Setup](#Anaconda-Setup)\n", - "- [Intel Distribution of Python](#Intel-Distribution-of-Python)\n", - "- [Intel AI Kits](#Intel-AI-Kits)\n", - "- [Intel Data Science Workstation Kit](#Intel-Data-Science-Workstation-Kit)\n", - "- [In a Hurry, use the Intel DevCloud](#Intel-DevCloud)" + "* All these install methods assume an environment using Ubuntu >= 20.04.05 LTS. This can be on bare metal or running on WSL2 on Windows 10/11." ] }, { @@ -65,161 +52,33 @@ "\n", " conda activate idp \n", " \n", - "* __Step 4__: Now, you have the virtual environment with intel-python installed. Now you have to install jupyter-notebook additionally for the new environment with this command (after the activation of the environment with the command above):\n", + "* __Step 4__: Now, you have the virtual environment with intel-python installed. Now you have to install jupyter-lab additionally for the new environment with this command (after the activation of the environment with the command above):\n", "\n", " \n", " conda install -c conda-forge jupyterlab\n", " \n", " \n", - " [The latest release notes and links to forums for the Intel Distribution for Python can be found here](https://www.intel.com/content/www/us/en/developer/articles/release-notes/distribution-for-python-release-notes.html)" - ] - }, - { - "cell_type": "markdown", - "id": "8c2aa59f-eedd-426f-96ee-c1c8b0499d90", - "metadata": {}, - "source": [ - "## Intel AI Kits" - ] - }, - { - "cell_type": "markdown", - "id": "0e215fa2-06aa-451d-9434-f63188f311be", - "metadata": {}, - "source": [ - "## Use APT Package Manager\n", - "\n", - "If you want to use your distributions package manager to keep all of the Intel optimized software up to date, the following method could be of interest. This provides a bit more software but has the added convenience of just automatically updating along with the rest of your system." - ] - }, - { - "cell_type": "markdown", - "id": "32b30c30-8b6d-433e-9e43-f6d99a0a4b97", - "metadata": {}, - "source": [ - "## Add the Intel repositories to your system keyring\n", - "\n", - "__Step 1:__\n", - "\n", - "#### Download the key to system keyring\n", - "wget -O- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB | gpg --dearmor | sudo tee /usr/share/keyrings/oneapi-archive-keyring.gpg > /dev/null\n", - "\n", - "#### Add signed entry to apt sources and configure the APT client to use Intel repository:\n", - "echo \"deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main\" | sudo tee /etc/apt/sources.list.d/oneAPI.list.0\n", - "\n", - "__Step 2:__ \n", - "\n", - " sudo apt update\n", - " sudo apt upgrade\n", - " \n", - "* After the upgrade the Intel oneAPI Base Toolkit as well as all the [toolkits](https://www.intel.com/content/www/us/en/develop/documentation/installation-guide-for-intel-oneapi-toolkits-linux/top/installation/install-using-package-managers/apt.html) will be available for install.\n", - "\n", - "__Step 3:__\n", - "\n", - " sudo apt install oneapi-basekit\n", - " \n", - "__Step 4:__\n", - "\n", - "* In order to activate the environment execute the following command\n", - "\n", - " source /opt/intel/oneapi/setvars.sh\n", - " \n", - "* This will result in the following environment being installed. Add it to your .bashrc or execute it manually.\n", - "\n", - " base * /opt/intel/oneapi/intelpython/latest\n", - " 2022.1.0 /opt/intel/oneapi/intelpython/latest/envs/2022.1.0\n", - "\n", - "__Step 5:__\n", - "\n", - "* Change ownership of ~/.conda to your user instead of root. This will enable you to add features without having to use sudo.\n", - "\n", - " sudo chown $USER:$USER -R .conda\n", - "\n", - "* We will need to add jupyter and any other features you might want.\n", - "\n", - " create a new environment conda create -–clone base –-name jupyter\n", - " \n", - " conda env list\n", - " \n", - " jupyter /home/user/.conda/envs/jupyter\n", - " base * /opt/intel/oneapi/intelpython/latest\n", - " 2022.1.0 /opt/intel/oneapi/intelpython/latest/envs/2022.1.0\n", - " \n", + " [The latest release notes and links to forums for the Intel Distribution for Python can be found here](https://www.intel.com/content/www/us/en/developer/articles/release-notes/distribution-for-python-release-notes.html)\n", " \n", - "__Step 6:__\n", - "\n", - " conda activate jupyter\n", - " \n", - "* If running on a local install of Ubuntu enter the below in the terminal:\n", + "* __Step 5__: Run Jupyter from your home directory:\n", "\n", - " jupyter lab\n", - " \n", - "* If running on wsl2 \n", - "\n", - " jupyter lab --no-browser\n", - " \n", - "* The contents of the oneAPI Base Toolkit are described below:" + " jupyterlab" ] }, { "cell_type": "markdown", - "id": "89869660-2181-470a-90d9-1a2f705a7fef", - "metadata": {}, - "source": [ - "## Intel® oneAPI Base Toolkit\n", - "\n", - "* Heterogeneous Development across CPUs, GPUs, and FPGAs\n", - "\n", - "* The Intel® oneAPI Base Toolkit (Base Kit) is a core set of tools and libraries for developing high-performance, data-centric applications across diverse architectures. It features an industry-leading C++ compiler that implements SYCL*, an evolution of C++ for heterogeneous computing.\n", - "\n", - "* Domain-specific libraries and the Intel® Distribution for Python* provide drop-in acceleration across relevant architectures. Enhanced profiling, design assistance, and debug tools complete the kit.\n", - "\n", - "* The contents of the kit are as follows:\n", - "\n", - "* Intel oneAPI Base Toolkit\n", - "* General Compute\n", - "\n", - " * Intel® oneAPI Collective Communications Library\n", - " * Intel® oneAPI Data Analytics Library\n", - " * Intel® oneAPI Deep Neural Networks Library\n", - " * Intel® oneAPI DPC++/C++ Compiler\n", - " * Intel® oneAPI DPC++ Library\n", - " * Intel® oneAPI Math Kernel Library\n", - " * Intel® oneAPI Threading Building Blocks\n", - " * Intel® oneAPI Video Processing Library\n", - " * Intel® Advisor\n", - " * Intel® Distribution for GDB*\n", - " * Intel® Distribution for Python*\n", - " * Intel® DPC++ Compatibility Tool\n", - " * Intel® FPGA Add-on for oneAPI Base Toolkit\n", - " * Intel® Integrated Performance Primitives\n", - " * Intel® VTune™ Profiler" - ] - }, - { - "cell_type": "markdown", - "id": "fc692595-5df9-4491-a0ab-66912285d13b", + "id": "0e215fa2-06aa-451d-9434-f63188f311be", "metadata": {}, "source": [ - "### If you are doing strictly machine learning you are done, but if you want to add any frameworks this can easily be done by adding the AI Analytics Toolkit.\n", + "## Use APT Package Manager to Install the Intel® AI Analytics Toolkit\n", "\n", - "__Step 1:__\n", + "If you want to use your distributions package manager to keep all of the Intel optimized software up to date, the following method could be of interest. This provides a bit more software but has the added convenience of just automatically updating along with the rest of your system.\n", "\n", - " sudo apt install intel-aikit\n", - " \n", - "* The contents of the AI-Kit are described below. A number of additional conda environments are created after installation." - ] - }, - { - "cell_type": "markdown", - "id": "1935295d-e668-4f16-a6c3-229af18ef27f", - "metadata": {}, - "source": [ "## Intel® AI Analytics Toolkit\n", "\n", "The following additional packages will be installed:\n", "\n", - " * intel-aikit-getting-started intel-oneapi-model-zoo intel-oneapi-modin intel-oneapi-neural-compressor intel-oneapi-pytorch intel-oneapi-tensorflow (1341 MB)\n", + " * intel-aikit-getting-started intel-oneapi-model-zoo intel-oneapi-modin intel-oneapi-neural-compressor intel-oneapi-pytorch intel-oneapi-tensorflow (~6500 MB)\n", " \n", " * End-to-End AI and Machine Learning Acceleration\n", "\n", @@ -233,177 +92,73 @@ }, { "cell_type": "markdown", - "id": "daba4efa-fba1-4a86-83a4-d7c0d5a85e69", - "metadata": {}, - "source": [ - "## Intel Data Science Workstation Kit\n", - "``` user@Precision-5820-1:~$ conda env list\n", - "# conda environments:\n", - "#\n", - "jupyter /home/user/.conda/envs/jupyter\n", - "base * /opt/intel/oneapi/intelpython/latest\n", - "2022.1.0 /opt/intel/oneapi/intelpython/latest/envs/2022.1.0\n", - "modin /opt/intel/oneapi/intelpython/latest/envs/modin\n", - "modin-0.13.3 /opt/intel/oneapi/intelpython/latest/envs/modin-0.13.3\n", - "pytorch /opt/intel/oneapi/intelpython/latest/envs/pytorch\n", - "pytorch-1.10.0 /opt/intel/oneapi/intelpython/latest/envs/pytorch-1.10.0\n", - "tensorflow /opt/intel/oneapi/intelpython/latest/envs/tensorflow\n", - "tensorflow-2.8.0 /opt/intel/oneapi/intelpython/latest/envs/tensorflow-2.8.0\n", - " /opt/intel/oneapi/modin/latest\n", - " /opt/intel/oneapi/pytorch/latest\n", - " /opt/intel/oneapi/tensorflow/latest \n", - "```" - ] - }, - { - "cell_type": "markdown", - "id": "b374f4ac-23a0-45b6-b043-8e121c9c2af0", - "metadata": {}, - "source": [ - "# Intel Data Science Workstation Kit" - ] - }, - { - "cell_type": "markdown", - "id": "1fa88eb4-13c6-4ad7-bba2-a4bd8725b7d4", - "metadata": {}, + "id": "32b30c30-8b6d-433e-9e43-f6d99a0a4b97", + "metadata": { + "tags": [] + }, "source": [ - "This package installs a great deal of software all at once. The method above allows one to have more control over their environments and will alway be the latest version. However, if you want all the components listed below which have had some validation to help ensure smooth functionality amongst all the versions this is a reasonable choice. The tradeoff is this install method will lag behind the latest releases to the Intel conda channel.\n", - "\n", - "* The Data Science Workstation lineup from [Intel and Intel's OEM partners](https://www.intel.com/content/www/us/en/products/systems-devices/workstations/data-science-workstations.html) provides data scientists, data analysts, and developers productive and cost-effective AI development solutions to quickly generate insights for their organizations.\n", - "\n", - "* Open, optimized software tools are coupled with optimal compute and memory hardware configurations to deliver the best out-of-the-box developer experience, whether you are prototyping or developing production AI.\n", - "* High-memory systems can fit large datasets for efficient preprocessing, considerably shortening the time required to sort, filter, label, and transform your data.\n", - "* Familiar Python*‡ APIs deliver software accelerations of up to 10x to 100x for training and inference.\n", - "* Together, the hardware and software bundle inside the workstations enables data scientists to easily iterate and analyze data at scale.\n", + "## Add the Intel repositories to your system keyring\n", "\n", - "* Central to the optimized AI software stack of the Data Science Workstation† is the Intel oneAPI AI Analytics Toolkit (AI Kit) that accelerates end-to-end data science and machine-learning pipelines using Python-based tools and frameworks. The components of the toolkit are open and standards-based, while offering both drop-in acceleration with almost no code changes and seamless scaling to multiple nodes and architectures.\n", + "__Step 1:__\n", "\n", + "#### Download the key to system keyring\n", + "wget -O- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB | gpg --dearmor | sudo tee /usr/share/keyrings/oneapi-archive-keyring.gpg > /dev/null\n", "\n", + "#### Add signed entry to apt sources and configure the APT client to use Intel repository:\n", + "echo \"deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main\" | sudo tee /etc/apt/sources.list.d/oneAPI.list\n", "\n", - "### Components of This Toolkit:\n", - "* PyTorch*: The Intel® Math Kernel Library for Deep Neural Networks (Intel® MKL-DNN) is included in PyTorch as the default math kernel library for deep learning. See this article on the Intel® Developer Zone for more details.\n", - "* Intel® Optimization for TensorFlow*: This version integrates primitives from the Intel® Math Kernel Library for Deep Neural Networks (Intel® MKL-DNN) into the TensorFlow runtime for accelerated performance.\n", - "* Intel® Distribution for Python*: Get faster Python application performance right out of the box, with minimal or no changes to your code. This distribution is integrated with Intel® Performance Libraries such as the Intel® oneAPI Math Kernel Library and the Intel®oneAPI Data Analytics Library. The distribution also includes daal4py, a Python module integrated with the Intel® oneAPI Data Analytics Library as well as the Python Data Parallel Processing Library (PyDPPL), a light weight Python wrapper for Data Parallel C++ and SYCL that provides a data parallel interface and abstractions to efficiently tap into device management features of CPUs and GPUs running on Intel® Architecture.\n", - "* Intel® Distribution of Modin*, which enables you to seamlessly scale preprocessing across multi nodes using this intelligent, distributed dataframe library with an identical API to pandas. This distribution is only available by Installing the Intel® AI Analytics Toolkit with the Conda* Package Manager.\n", - "* Low Precision Optimization Tool: Provide a unified, low-precision inference interface across multiple deep learning frameworks optimized by Intel with this open-source Python library.\n", - "* Intel® Extension for Scikit-learn*: a seamless way to speed up your Scikit-learn application using the Intel® oneAPI Data Analytics Library (oneDAL). Patching scikit-learn accelerates stock scikit by single line change. \n", + "__Step 2:__ \n", "\n", - "# Installation\n", + " sudo apt update\n", + " sudo apt upgrade\n", + " \n", + "* After the upgrade the Intel oneAPI intel-aikit as well as all the [toolkits](https://www.intel.com/content/www/us/en/develop/documentation/installation-guide-for-intel-oneapi-toolkits-linux/top/installation/install-using-package-managers/apt.html) will be available for install.\n", "\n", - "This instance was built using Ubuntu 20.04 LTS. If you are on Windows 10/11, jump to addendum to setup the environment and come back here to Step 1.\n", + "__Step 3:__\n", "\n", - "__Step 1:__ Update your system:\n", + " sudo apt install intel-aikit\n", "\n", - "Launch a terminal (CTRL+ALT+T) and enter\n", + "* After the install which will take some time your environment should look similar to the one below:\n", "\n", - " sudo apt update && sudo apt upgrade -y\n", - " \n", - "__Step 2:__ After the update a reboot will be required, enter:\n", "\n", - " sudo reboot\n", + "__Step 4:__\n", "\n", - "__Step 3:__ Launch a terminal (CTRL+ALT+T) and enter. __Note__: The download is approximately 1.8G, a stable network connection is desired.\n", + "* Exit the terminal session and restart a new one, it will then be necessary to initialize the environment.\n", "\n", - " wget https://registrationcenter-download.intel.com/akdlm/irc_nas/18273/Intel-AIkit-2021.4.1-Linux-x86_64.sh\n", + " source /opt/intel/oneapi/setvars.sh\n", " \n", - " [If the download fails check for the correct link here.](https://www.intel.com/content/www/us/en/developer/tools/oneapi/ai-analytics-toolkit.html#gs.1bs6zw)\n", - "\n", + " conda env list\n", " \n", - "__Step 4:__ Change the permissions of the resulting download so that it is an executable.\n", - "\n", - " chmod 755 Intel-AIkit-2021.4.1-Linux-x86_64.sh\n", - "\n", - "__Step 5:__ Install the Intel AIkit\n", - "\n", - " ./Intel-AIkit-2021.4.1-Linux-x86_64.sh\n", - "\n", - " Follow the steps and make sure to choose yes to the final question “Do you wish the installer to initialize the Intel-AIkit”\n", - "\n", - "__Step 6:__ Close the terminal and launch a new one. This will result in the base conda environment being activated.\n", - "\n", - "* Note*\n", - " * This collection of packages has been validated against each other for functionality. At this point this is a stable environment and should be treated as the base package environment. Any modifications to this collection should be done in a cloned environment so that changes can be isolated and you can easily get back to a known good. \n", - "\n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "id": "014f84c2-c177-4c96-8c55-71aaac6a30d5", - "metadata": {}, - "source": [ - "## Add Jupyter to the Data Science Workstation Installation\n", - "\n", - "### In this section we will:\n", + "* If all went well the below environments should be available.\n", "\n", - "* Create a new environment and add some additional packages.\n", - "* Clone the Intel samples repository.\n", - "* Run a sample project using a Jupyter Notebook.\n", "\n", + "```\n", + "base * /opt/intel/oneapi/2023.0.1/oneapi/intelpython/latest\n", + "2023.0.0 /opt/intel/oneapi/2023.0.1/oneapi/intelpython/latest/envs/2023.0.0\n", + "modin /opt/intel/oneapi/2023.0.1/oneapi/intelpython/latest/envs/modin\n", + "pytorch /opt/intel/oneapi/2023.0.1/oneapi/intelpython/latest/envs/pytorch\n", + "pytorch-gpu /opt/intel/oneapi/2023.0.1/oneapi/intelpython/latest/envs/pytorch-gpu\n", + "tensorflow /opt/intel/oneapi/2023.0.1/oneapi/intelpython/latest/envs/tensorflow\n", + "tensorflow-gpu /opt/intel/oneapi/2023.0.1/oneapi/intelpython/latest/envs/tensorflow-gpu\n", + "```\n", "\n", - "__Step 1:__ Create New Environment\n", - "\n", - "* Launch a terminal \n", " \n", - " (CTRL+ALT+T) and enter\n", - " conda create –-clone base –-name for example:\n", - " conda create -–clone base –-name jupyter\n", - "\n", - "__Step 2:__\n", - "\n", - " Conda env list\n", - "\n", - "* You should see two environments now. The * denotes the active environment. \n", - "* Activate the new environment:\n", - "\n", - " Conda activate jupyter\n", + "__Step 5:__\n", "\n", - "* If you check the environments the asterisks should be next to the new environment name and the prompt should indicate the environment name as well.\n", - " conda env list\n", + "* Pick the environment that you want to use and add jupyter to it or create a new environment.\n", "\n", - "__Step 3:__ Start Jupyter Lab\n", + " conda install -c conda-forge jupyterlab\n", + " \n", + "__Step 6:__\n", "\n", - "From the terminal enter:\n", + "* If running on a local install of Ubuntu enter the below in the terminal:\n", "\n", " jupyter lab\n", + " \n", + "* If running on wsl2 \n", "\n", - "* The browser should auto launch. Then on the panel on the left navigate to where you downloaded the notebooks." - ] - }, - { - "cell_type": "markdown", - "id": "0523c76b-5cff-4da4-b40b-a22b72925e2b", - "metadata": {}, - "source": [ - "## Addendum: WSL2 on Windows 11:\n", - "\n", - "__Step 1:__\n", - "\n", - "* Tap the Windows Key and enter update, windows update will be the first match. Go through that process and reboot.\n", - "\n", - "__Step 2:__\n", - "\n", - "* Launch windows terminal with administrative privileges. Tap the Windows key and enter terminal. The down carrot on the right will expose the admin privilege option. \n", - "\n", - "\n", - "__Step 3:__\n", - "\n", - "* At the prompt enter: wsl – install (two dashes) This will automatically install Ubuntu 20.04\n", - "\n", - "__Step 4:__\n", - "\n", - "* Restart -- The install actually takes place here and after the reboot, this takes a couple of minutes.\n", - "\n", - "__Step 5:__\n", - "\n", - "* Ubuntu will launch automatically, follow the steps to create a new user. It’s a good idea to have the identical username for Windows as you do Ubuntu.\n", - "\n", - "__Step 6:__\n", - "\n", - "* Jump back up to [Intel Data Science Workstation Kit](#What-is-Data-Parallel-C++) and follow along, even the update steps. \n", - " * Note* a reboot in WSL2 is exiting the WSL2 session. To relaunch WSL2 tap the Windows key, enter terminal and then click on the down carrot and choose Ubuntu. This is a great way to have multiple terminal sessions in a tabbed environment." + " jupyter lab --no-browser\n", + " \n" ] }, { @@ -424,31 +179,18 @@ }, { "cell_type": "code", - "execution_count": 1, - "id": "07e15b07-cf46-4d40-ae7e-dc58dbfbc60b", + "execution_count": null, + "id": "e15ba404-7359-4fa1-a620-168d151f43f7", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "sending incremental file list\n", - "rsync: change_dir \"/data/oneapi_workshops\" failed: No such file or directory (2)\n", - "\n", - "sent 20 bytes received 12 bytes 64.00 bytes/sec\n", - "total size is 0 speedup is 0.00\n", - "rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1207) [sender=3.1.3]\n" - ] - } - ], + "outputs": [], "source": [ - "! rsync -avhP /data/oneapi_workshop/AI_Kit_XGBoost_Predictive_Modeling ~/AI_Kit_XGBoost_Predictive_Modeling" + "! rsync -avhP /data/oneapi_workshops/AI_Kit_XGBoost_Predictive_Modeling ~/AI_Kit_XGBoost_Predictive_Modeling" ] } ], "metadata": { "kernelspec": { - "display_name": "Python 3.8 (Intel® oneAPI)", + "display_name": "Python 3 (Intel® oneAPI 2023.0)", "language": "python", "name": "c009-intel_distribution_of_python_3_oneapi-beta05-python" }, @@ -462,7 +204,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.10" + "version": "3.9.15" } }, "nbformat": 4, diff --git a/AI-and-Analytics/Jupyter/Predictive_Modeling_Training/AI_Kit_XGBoost_Predictive_Modeling.complete/03_XGBoost/XGBoost.ipynb b/AI-and-Analytics/Jupyter/Predictive_Modeling_Training/AI_Kit_XGBoost_Predictive_Modeling.complete/03_XGBoost/XGBoost.ipynb index b089023d90..28c09d5518 100644 --- a/AI-and-Analytics/Jupyter/Predictive_Modeling_Training/AI_Kit_XGBoost_Predictive_Modeling.complete/03_XGBoost/XGBoost.ipynb +++ b/AI-and-Analytics/Jupyter/Predictive_Modeling_Training/AI_Kit_XGBoost_Predictive_Modeling.complete/03_XGBoost/XGBoost.ipynb @@ -33,16 +33,6 @@ "[Images Source](https://commons.wikimedia.org/wiki/File:3D_view_of_an_event_recorded_with_the_CMS_detector_in_2012_at_a_proton-proton_centre_of_mass_energy_of_8_TeV.png)" ] }, - { - "cell_type": "markdown", - "id": "2f66db55-d1f8-407e-b7bb-b353ce78fa56", - "metadata": {}, - "source": [ - "# Example environment creation:\n", - "\n", - "This environment is the latest [Intel® oneAPI AI Analytics Toolkit](https://software.intel.com/content/www/us/en/develop/tools/oneapi/ai-analytics-toolkit.html) base environment, which includes data analytics and machine learning workflows and Intel optimizations for XGboost. See [here](https://software.intel.com/content/www/us/en/develop/articles/installing-ai-kit-with-conda.html) for more installation information." - ] - }, { "cell_type": "markdown", "id": "57efb70b-7073-4baa-b544-253551c7bb58", @@ -61,18 +51,21 @@ "outputs": [], "source": [ "import sklearn\n", - "#from sklearnex import patch_sklearn\n", - "#patch_sklearn()\n", + "from sklearnex import patch_sklearn\n", + "patch_sklearn()\n", "#unpatch_sklearn()\n", "from sklearn.model_selection import train_test_split\n", "from sklearn.metrics import mean_squared_error\n", + "import warnings\n", + "warnings.simplefilter(action='ignore', category=FutureWarning)\n", "import pandas as pd\n", + "from pandas import MultiIndex, Int16Dtype # if you don't import in this order you will get a pandas.Int64Index fix for FutureWarning error.\n", "import xgboost as xgb\n", "import numpy as np\n", - "import warnings\n", "from time import perf_counter\n", "print(\"XGB Version : \", xgb.__version__)\n", - "print(\"Scikit-Learn Version : \", sklearn.__version__)" + "print(\"Scikit-Learn Version : \", sklearn.__version__)\n", + "print(\"Pandas Version : \", pd.__version__)" ] }, { @@ -169,11 +162,21 @@ "source": [ "filename = 'HIGGS.csv'\n", "names = ['class_label', 'lepton pT', 'lepton eta', 'lepton phi', 'missing energy magnitude', 'missing energy phi', 'jet 1 pt', 'jet 1 eta', 'jet 1 phi', 'jet 1 b-tag', 'jet 2 pt', 'jet 2 eta', 'jet 2 phi', 'jet 2 b-tag', 'jet 3 pt', 'jet 3 eta', 'jet 3 phi', 'jet 3 b-tag', 'jet 4 pt', 'jet 4 eta', 'jet 4 phi', 'jet 4 b-tag', 'm_jj', 'm_jjj', 'm_lv', 'm_jlv', 'm_bb', 'm_wbb', 'm_wwbb']\n", - "data = pd.read_csv(filename, names=names, delimiter=\",\", nrows=100000)\n", - "#data = pd.read_csv(filename, names=names, delimiter=\",\", nrows=1100000)\n", + "#data = pd.read_csv(filename, names=names, delimiter=\",\", nrows=100000)\n", + "data = pd.read_csv(filename, names=names, delimiter=\",\", nrows=1100000)\n", "print(data.shape)" ] }, + { + "cell_type": "code", + "execution_count": null, + "id": "505ce472-a525-42c3-b995-ddc2c3aa2b43", + "metadata": {}, + "outputs": [], + "source": [ + "%time p_df = pd.read_csv(\"HIGGS.csv\")" + ] + }, { "cell_type": "markdown", "id": "0d7249bc-4e6b-4a28-8894-00b14c61d4f2", @@ -233,7 +236,7 @@ "id": "d339991a-3485-49ef-8151-c5c8020fc586", "metadata": {}, "source": [ - "* In this scenario loading 100000 rows the balance isn't too skewed. " + "* In this scenario loading 100000 rows the balance isn't too skewed, the next cell is optional." ] }, { @@ -293,7 +296,7 @@ "outputs": [], "source": [ "# This is the y target vector -- the ones we want to predict.\n", - "# print(data.iloc[:,0])" + "print(data.iloc[:,0])" ] }, { @@ -383,7 +386,7 @@ "}\n", "\n", "# Train the model\n", - "warnings.filterwarnings(\"ignore\", category=UserWarning)\n", + "warnings.simplefilter(action='ignore', category=UserWarning)\n", "t1_start = perf_counter() # Time fit function\n", "model_xgb= xgb.XGBClassifier(**xgb_params)\n", "model_xgb.fit(X_train,y_train)\n", @@ -515,17 +518,17 @@ " 'disable_default_eval_metric': 'true',\n", " 'tree_method': 'hist', \n", "}\n", + "# Necessary for now to supress multi-threaded Future errors with respect to pandas and XGBoost\n", + "import os\n", + "os.environ['PYTHONWARNINGS']='ignore::FutureWarning'\n", "\n", "# Train the model\n", - "warnings.filterwarnings(\"ignore\", category=UserWarning)\n", "model_xgb= xgb.XGBClassifier(**xgb_params2, use_label_encoder=False)\n", "\n", - "\n", "# Setup grid search n_jobs=-1 uses all cores, reducing cv from 5 to 3 for speed, scoring is done using area under curve.\n", "grid_cv = GridSearchCV(model_xgb, param_grid, n_jobs=-1, cv=3, scoring=\"roc_auc\")\n", "\n", "# This fit function takes a while--hours, make sure you are ready.\n", - "\n", "_ = grid_cv.fit(X_train, y_train)" ] }, @@ -556,7 +559,7 @@ "source": [ "### Results\n", "\n", - " grid_cv.best_score_ = 0.8002252116945674 grid cv.best_params\n", + " grid_cv.best_score_ = 0.80 grid cv.best_params\n", "\n", " {'colsample_bytree': 1, 'gamma': 0, 'learning_rate': 0.1, 'max_depth': 8, 'reg_lambda': 10, 'scale_pos_weight': 1, 'subsample': 1}\n", "\n", @@ -609,7 +612,7 @@ "\n", " n_estimators:, default=100\n", "\n", - "The number of trees in the forest. A good way to see how many trees might be useful is to plot the learning curve. since this is a classification problem we will use log loss as our measurement where lower values are better. \n", + "n_estimaters represents the number of trees in the forest. A good way to see how many trees might be useful is to plot the learning curve. Since this is a classification problem we will use log loss as our measurement where lower values are better. \n", "\n", "Our orignal fit function needs to be modified to include eval_metric with the type set to logloss. In addition we need to define the evaluation data set so that the results are evaluated after each round in order to plot them.\n" ] @@ -632,7 +635,7 @@ "metadata": {}, "outputs": [], "source": [ - "# fit the model\n", + "# Fit the model\n", "model_xgb.fit(X_train, y_train, eval_metric='logloss', eval_set=evalset)" ] }, @@ -716,16 +719,15 @@ " 'reg_lambda': 10,\n", " 'scale_pos_weight': 1,\n", " 'tree_method': 'hist', \n", - " 'n_estimators': 250\n", + " 'n_estimators': 1000,\n", "}\n", "\n", "# Train the model\n", - "warnings.filterwarnings(\"ignore\", category=UserWarning)\n", - "t = time.process_time() # Time fit function\n", + "t1_start = perf_counter() # Time fit function\n", "model_xgb= xgb.XGBClassifier(**xgb_params)\n", "model_xgb.fit(X_train,y_train, eval_metric='logloss', eval_set=evalset, verbose=True)\n", - "elapsed_time = time.process_time() - t\n", - "print (\"It took\",elapsed_time,\" to fit.\")" + "t1_stop = perf_counter()\n", + "print (\"It took\", t1_stop-t1_start,\"seconds to fit.\")" ] }, { @@ -780,7 +782,7 @@ "source": [ "## So how many trees do we need really?\n", "\n", - "* It takes awhile to watch 250 trees get evaluated, a great performance improvement is to use the XGBoost early stopping capbility.\n", + "* It takes awhile to watch 1000 trees get evaluated, a great performance improvement is to use the XGBoost early stopping capability.\n", "\n", "* Modify the fit function to stop the training after 10 to 15 rounds of no improvement. \n", " \n", @@ -823,9 +825,9 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3 (ipykernel)", + "display_name": "Python 3 (Intel® oneAPI 2023.0)", "language": "python", - "name": "python3" + "name": "c009-intel_distribution_of_python_3_oneapi-beta05-python" }, "language_info": { "codemirror_mode": { @@ -837,7 +839,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.7" + "version": "3.9.15" }, "nbTranslate": { "displayLangs": [ diff --git a/AI-and-Analytics/Jupyter/Predictive_Modeling_Training/AI_Kit_XGBoost_Predictive_Modeling.complete/04_oneDal/3D_view_energy_of_8_TeV.png b/AI-and-Analytics/Jupyter/Predictive_Modeling_Training/AI_Kit_XGBoost_Predictive_Modeling.complete/04_oneDal/3D_view_energy_of_8_TeV.png new file mode 100644 index 0000000000000000000000000000000000000000..11240522f2b6ce73757661dbf0f3103c7b382d97 GIT binary patch literal 727032 zcmY&=1z43^wCx4~X-PpEQ97j?kq{K6OFE@XN)eE5L{J(O6cCi|kOpZH3F!t!x~1Oy z&pG$L_rCLaP~7aj{VJ~P=@p_N(j4q zNl(_S_wq7SZxsF=*>$s6_V9Gqa_`f;7!Y+=MhTIG%UzGVd*k0P=Ra6W@&5b$zhAIW z|L@=5_>N-u-xnh0Oaf3B*OI$gRh1g(mehd~E{{KDGVp5v{&7Gb17CyAkgM@-rtT?z-RF#(5dAPRq?1?CN!!CO4YiR%TTp!6B8e&Ft zTe-_hCa-FT2diRY7vGPZ?KiRTL>((2Oa8yRdVI+Yjos_PE`u^=rGt3_<>T$RKNl@G zd2#VuQd^`mdEmvbW+X4pZldNNrv~Po&Ritkw18Jm+|qvV&klEOzU+SKE2z~zH5u(N zu6usB(yv{UWdYA$T7TbKXY(n~U2!s;0Nk1EWI!fvmMMOe<)} z&*s(CsEHYHF>a>h<$nueHFR*o=$n|AlcQ zeb&T9JI*BSWK5{B!$(=0#b@vEWc3((nQomL{}ZUQB1x45j`Yyv;i7;MVpYB+%m!%GpueJItKn zH|k3*QV2M6yZ<^(J$m!rb*vXR`f}oW-rGerH^~J~hYJzZqbD-UU~_VqT~-b1+Z>=$ zO2=C<9YXZ>0}-3izDu3hHg zcK=1iz@FFW#rHAMxDxmJr#-9JkPsi3vt5$CH(DH{J7z?ED#M1I+4PkU+u`-x#lOpB z;ik^_5#6aCZ&Wk)&yttoa|o8D#=S&Eed=hnsBf`~)v$mcawBz5rTj6)<;S>5=ymE& z99m8`^efNQKA=}T*WR66Ff?APK@T#V8h3d$zoXl->Lt6XE4w8pH{z$Un)&$5ujo*G z(0c1p`HDrxVOLBb>F0&;sBB~Q6*+w7#!;7lZn!dr2|Ar~<_4CZ#c`IJ{o8`4iyyi% z=RWav7%i+)2qO`6_fk{i%_pd`5UZ=#Nq#%wH52!=vjlTXv6Vlbzx9ih!ph4w=>^-% z#h69>V)oYW2`MdSy0Y~-Z$mF^KKW|mf6Q0TR*3%Qo<2EgfQyHh?nXjN8Xg;)`}VE> z&d!eQJS!I$LDhtchlfyzsmX+pQBfim0Tuk_=g*%BZ{Cd9VmQ}LSy))SU3)6%^x0C6 zM#_h>amH9BN{jrZU_%`X)eF^qH%1HsDuK7v)k*X7X1Otf!N0rYM1N>^uJRdMLz&X*t}X8HhyyD_dMzQd3pkD(HBhW3#xj zqEja&B=iPe_QbHr-w7Shk8>|~O)c^vfttPV_kIoKUNP^Ck+e!LFrr`2eRn7H*3-SmD`Jco zve=wG$P#lNq>D{HKb%VQ7`LfEUQUgoREZqp+3~wjx-9s61J|ybis^?fcs$Ot zO=!&blV;2B4GB#9o;X+yWc2O*8Y*!}b)2f@^WL#Y5pwt~v0F9$G?K#Dhj>W9k8kgb z)6AFqNxUyY2&l!Li#Uu60G6F=H5&wJ&mWY9yv9T%d7FK#2>6r?EYOVa$ATNF7;T~ zUlB#J-C|X0Mh% zb0d5xv5isbz;E7x?;}Nz3cP%U83KN1#}x$;p_ne_zIAe@`$pc?_0~hF;~Q=({Y!nq zGjeKVAy?@8nPMeczC1tCt+dw@yz=D!eSEk`r%OD3j66J7n>({TOoL@9U?zC`s<>fKi*w`RT>}<7Of&1g1 z#oE^1uBNUo3!jfVK0ZeM_^1&IH@$DoVL}LAx?20-!GjnkB6D+dK9zV?R=KB7#ctlb zi5!&;)l{u}w#!1tjT<*q4Gaug>Bv92>FZPF=fBF#e8@@$7vO>9z9vM6vbwr@MILry zkNn}rREYz%;pm`1bW#$f{RA^)4SBURA-Uj+&ILwM(d1XJNV>bbZOLbhiblPc1-FlV zj(nt^7%Hlfk;&g4bvH9Ncd0Qzl{-wlxyEl*{CM#CM&pI=&hGB7nMP@3|4?w9PF*@J z;Dfx+_D7Q?p9y)+JQs!~Iuw;0l`@{W+fBCZMq4ZhXScy4ppzPvdZ`P+z_^>?; zL?-iX;h&5fr}7IstxR)rV@F~@?Hr(mUamddyYw`WC$jCcdTE`Rykm`N! z*~?&hJ`;{mY-TUzJ!5`a8uPqO!3$$_mgFJm;1bzUh9ZFStX(s_gF0Hq%&^|BkoNRjJ$d8%~rqoX0i1Eo!FCA z83hF_p873xB_*XODnVR%HROSk`K<}1GGlQ_nR#6o?*4S=wW)#Gdw>i3R}^>&wlT=`C7{w-AJB4vC6agYxUXMSz@RLE7dPvL^8rG>-IT{*y zFOheyNqKFV(D`iLh6;{@fnE>UxgK)AB9~S%=UNh-(?lg)F-96f@yy^>(@s_l=T2JB z;%A4Bj&e)K~EA9ae1DxM9~#G@8EqRrvT-A@x46g@wfaLTqxF}EmoNKH$l zfd#ww@)@bAHIG-=i8{~v?;b-gZhoy}qy!hc(m_L0vu(LAHTjk$?%K#_^O-NtStI5- ztr4Ku!ZA-*H}8j7{VCopV2-X{)bF;BK@>RZOGVJe7A88 zZr&Ut_)UCYspGqQ`Ht)SA^nYFGjezFDs#I;#{|tF=T0xB@gvfY-081IXt6N^7=lP0 zi?FHR-KqSz`YT2fya(m6H{y&?9TgxktL>t_mr;J21?V8~D zJ@>%z6D^V?Em{rJTK1HfW%>5D`vOB&Yb?{So1)+_K4o?;U|L0u+y&jxEIuvme&kgy zuiqbYX`Biz^{^SepgyFz8FEw9d2T9THz!+XbU~R>0ub`}XX#C2pKVOxN#{!tFrOb) zl{(MKN*&E!f-UNVlBL_|+dx`L+u)?>9MWp~eP}3I!u!_J(o+A5VhoMx$R|CY{b3!0 zXX_Obr(3N)e}CoftxqHt6xK#SejF_{gyi2|*ss$N^7|Y) zLo9g1GAYG9IA?rz3E)J{HzsQg;KhJ+km~{Y9JM;~nK~lNc_rP`wO@2)Yo~{2cigVX zrJY>I`EbgU-?Rk-S!>0pQBTv0OEu?z*F?Rx7-A)Muw$jqMJNoP5N~g9r@8fuPCB;| z)SqnBNu2yCli2%qCyGY&6}%*A-0Pyl!xCq+UCX}g1P zNRy=fq+qjv=< zTKlv9_I4*dfB?hVCv%^xre(2T0ergUFkZe8)8#C3A24V&B%`#a zc#LB;ZY*xgz0IYZu(vhvv_Gqy=;xfr!cj-Camdc7qzcIo31s-}C^>#Pwn7q&EEWP@S;iv^j8WErjVuB*8r{td!GBA7lUM z=w3i;I8pKKVHqt(GK?N($>vB!9k#>JhsxDn5_AG8ZX_qPJ-Zx143zk#Ce7#@b(>NG zDhqo<50PFWnp$|?qYi>mm9=dt(YRkr$FRNFw3YIf1-4^Vs#bwEpYN#`A+4C^XWtwf z5()~%BBO>h3%it@63d>eQfGS_-90_mgdJ(htor6578W|Foh%>)z5nn5ZEHS~2e~sS ztNyeu(Ur8;EcwXQi7K9pqfTi`5oZSIODM5)4Bg2&v_BzD29(?~(^jl{Bc5gxqE_Ct z$3cx}>rS5x>)ycH9IB=|)`}YYb5v4~7ULf#3D}UhuZ>tPevJc^F;waB2r{?ag9n6F zldgDOU0slgswIz&0=b!RE|Es2GAyRYU=RGpxPusHw%pb8gnGWGv)n`kD=7NKU$s8VWrA=Kpm6 z_uwZzekfGPU3wwozqn|@{pH9EiQe2^U8^#MuO zf;{OD8uP)M0LRp|wLK>JY*LtQY-}J!jMl_XtSe|~E%zn|I!shgIo7(bDL_721?&QK z;C}M0VCxL;j_@yG-1N!3rbrF8f?cp5E1tU%<$|CHQPWGP*^N1ca4qPPbyI@P*oZKQ zS+K3J_)0Af5S|Fg3qSM1l3-bLe*cTsnjqA`O{OtRR#k%t)r7l*P0nGbxU3G7QIu%S zZ_y%T_*KePlm7Gu3QUxc>P!#@p}%8)cA?d;cGYW&>Z5d_=}B{|#cPk*jr%;A`HXZn zJV%RlQ>(Sz#|_k`78I9o6R@sLHxRzzVjxloU%nzTQu%_Yi}tOZZm@ikJmzY2YJjEu zn;&fGjP?d80qz0sdfMCD6A}{Om^QF$^0t&zR6am?{$$iJPOLNY{E!v^MAoA!$0wW9 z>4J76s_NK^yI z_wN_;{<1~LT3IpId8}t?rEdNT>)7K}jrKMl~_=PDY(gKy+ zjrQ{yaq5?20~D2eHkgL478sPp3ehLNwgJEwC$#l(N=OzfoLI{oFCQNtK+@koKDI)L zrMI~vy&Ds2WMpKz?~@vXm_&mif!z9hBfE)8q>YEASEf*tbqbyj3N zhVl*CTwUsd*V!(zlhK*7>P>CXwlTfm3l)YMssxu)>B8>frD}3+lz4^>I+qp90{ENN0_%?&RLKIFXBl{=F zYI+s6F9QV;8W4aEry>rR;7)<|XWP$;A~aIUKh7sDA_ub-@`ct}3o9~lPcgrkRd?;_D= z-5h|4;7l4(*C0qwr1bQg1{Ao#`Jc;**n6`rwHID^O)45F2(Tqcjq%)}{6P~> zPEHP2IEACA{uMM@RpVn`&|uiie368WYAyX_9+Udmd(ed=$YgW6L1L@vlFz|UYvc!@ zeG?gAx6Mlub7x1eeiut7P&=9@&k;_%tMNn~OP`6LA&wAT_T)|&#y`O9>B?b-J3|xZz3n+DL02w%B}Q$Il0pUmO$*hkMw+31T{|UZe5Z zz4O~~I-scMqo$^u2X0ueb$}eXnUKBguW9n(i%WB_NXRB+2klF_2%MC~E)y0lg>_b0Mt1)o_RoOjHKY{Slb5-wopE}J4Ufh3KVcaxL?11HTjXJhIHk9slwvujR4V*KNNlWo1fw=gdYgK+EBTThNjj{ z_~dN^JjT0s?=o<6#}qZ5r##!J2}MvWvf>QMXRZK?ktU3#@lLq`Fr#o2DJ8skQ*uPr z$Y%U58p`g-^nE}d^bNZE<{a%3*49t!Og^Av02qjD*6)fyN0=nyl10j>3Vj>0nY@&r zgqV$ek1YWPK$qv!3~U=4C#MDUqR2S_xNrYx-t&e_6u3M-{MK+=z^*_OTn}>2Fy7lm z7N}$V{56mb0ZToJq=cbL_wPUH-#$5$IGPRQG^|Y+8`G`X&qQ>ekRl6Ip@v~z7rRGr zw7PLKcNrt9g$tV^2*&|eOB`vvZum)Pnsob}3!#(Wb^IAq@9~_t7H^_dW>krTJIm{r z@;vou?ok5aQGxw651*l61z9yl9L(cC4xYF;mLC$%s*~Gd99T6Cu-PRuxG7W!*O}hE z59)njSX{Z@#?2WJv(6^pT**nIPO8NH)x7_Y)~6o!_9YJuX)ZeBENWt*l65LJRKBmV zO_U6F#LUyz&IiOKPIc6RQfL!loLap8`*pi_!##&;)kute&S<6W$Eb+iJ5wS#8Zw~R zLq!b(NY7_K#tQ_s94py8q{;<|V$8QtjTV=eOP~BwkBE%48ToV#=_V$soLCqcU%;l9 z0I>t7qg(IA2hhpDxfv7x+AR#|*-0NtGy~b-p-Br&(68?w@FbrdSj;xPNOS49wzoNx z37N6X@4}Z#*zvxR5gkv%9*J*b=ABT&!8%VTA*bnHf3!pX6g%jdaaAp7nm(-x30E`eo4ZDYA9>_X_?&+}3GT6#W$Eogot%B9T?8{7w zF*kr_Lt+!i7%jZ^%V`*~0G{9bU7X`n^7_M@Z%uj5#3dxO!CvY$Jaw;_x-njE138}> z*s{ye*m3F>BlwsPT3M_sbWsiyNcrqd7pL$C>N*_|YzRV>ot~cBcAYCLD<1*j{CF@6 zlfu9m4L+z%Kn2KT)z8M_o*RFD@Q8Wzi!9(Hz}Lh|H$R{6^S9jjO0i!Pr$*u0}Bk0J|}Q~Bnyk4q@v_~5~i z)%yWsf4>FoA8UoP{u_66nIm$(k8Q;lTX8+pc5GoSdh4C7Sx7sbTyR;Csh^-yD_OtT zmdszv=Gr%RYutV&(O=oBzEikU9PwHGA9|M zFCV>()&K|qF}bzBL8w7X`#h7CJe58DRAmS|v~{??Wzc<1ZPU>KXE|$a+%7~Pk1>rR zP=-Nu{qL&O0sZqmVuT?@3X5Y^T?$2wEp7gYc&+twK#Ukgkm+R)+zp{k;_MOoJvlxO zXw-OrS}oRlFJsUxi*a+11~n*EXvI~amH|{P8Ln2r!1lOJN=|$%BYUqQccR8hKHYf= z9BxgaD+naqC-3M(X_8gpj;S^ z#_oJqJdqM}%pNGS@&g5omr~+)TAs_6?kFOAFOD|ga|wfR1~^EYKXmZ>M@XPG+* zIFC`s8ap`LSGxZoBH_;E6~B5s|7gP+qia3$7D5N=m|mBB(Nkhf^=a-u_;CJ_mers# z1S|caX)0Z07Q28{^<`^TCkMu@jY0B=JX$$h5+_ThbFXgl*c(*2@uxqUu?VqHqjM!U0IjhsVne|@CltwZ)-*iDYBq?P{OVIa+ z_F;a2u=22*{Y2q`TX}3&Chb~{oackQ=oIsJm0!fClOpJxhV#jx^xov)=sEsl(P1&{ zD|xlznqJl!Iak%P=-|^I9-k4((id0|r`+tDk4^lEZxNZkAW>~1ct^|FQrA*igdD)b zrVD}SN{63Bq=7wa&8(aqc8UgTEN0lM_SBxmS{iI@SIja;2sBuW?a9NrUoXC; z-z=OW^H`Pf9&0Iekb@omD#KQUlGn6-f|jFXs^{Mq5!>6J`%2=#m1^Ipk@%n({bmi#rYKDTouIV%h)CG98?^ZK+a1&w2T2msUdMuG z?)5_dM57KB3N@fd7xc(POE-y}IX}yc+M^9s%oX%n<5<|}=>>vMsZhSdK1>)v1OeeV zZ9i19?JrDU1(3g<|0#7YaT9}G$W~qyEm8ayMKW_JX}r>}pUF%dBZKvoRdq)SOrIMBBO0iaK`{<#7fV}C-90^&4Yr_}Iz(U25 z(}#YqXAc~1OuJszKf@y061UW@Fl+O6pRX4Sai7dN%OZaJTgRc(Hlob@%%H43zQ)PH zSa4wfPAsW|M#Ad% z5I@iR=ij|Vf1dyS@Z}8x*OemtNagaIhMR(mF|6d5HaM2h1&Uh_27X?ASl5E!dXF|c zs($?RVaA7--`2^ZUfue^H4z@YZ<2a7s~hi2Sp9yWgLoa97bj^!IZe-6dwyDivMjSl zV$91?}S|MU}ar!fR5|7mr_g6tRmvxN-#I??r=dFa_+8Or%J|Cb9aO7$cQmXY^w8ToAU zt&CLE__^ZHofDVNPBR_iSfMz%XMA)NTvKsd#+k&-nsbWV-X-gISIcP$-FO+3#d6)v zHvc-1b+oA^ydexxOSW!mJMbnA{`mSh-ae?0?4~Jd5BzXFcVz>?i>WIOIHL7MHs-Cag#t;tYeCzaKJW8SdSm<&~ zz?&67pH6LVA#)^X=2ji?BJKa9)I z))gY~aOeb*_8jdwD`|lL7N6b9?Wa7?=&B}yS1O;WlFl>DH|DPxYaWkcai((jsprMd zx88D?uYcNx{hzaGr}6sVjCph&4vGlH@UZ6-Z6B&-&?d@p>~ZD#<8MFzw?SORr?@q(g@5YFy`|nH z(4};jdHs~p-m^16&GOOhi4Gotl>I+p6Kl;*$z&4&GKU(2ev@+9?K7{4sTDsBMBC^u z;)?`IDt*LoaY=57WNGwDb5M$QF?P9RNHV4Sf+#{?axSw>p+Cl#gO@YD$WKHj(1M;| z$n0UhCz-q`d%_pn(n{k$Q&dV@=e(OYWkvLs9_DNeuKBWEdOqxC$J})C!CXyKtG#kP zyHG=GpCVIZuYTP1hFs=xm&8gut;XQrVeQS;tFJm`wX|5g&HHL~Bt7b_b=(a`?XCC5 zcwW2IAEfn)h#5^he9xVqPj{%>$ERM=Yc6?0>hP?*(Qd7CwPZZQdYF%jcBNwbp80L) zOt#h5K31Ppm*CmopO6bzW1vuN-b)P{(F(b^x7qlw$Hgh{ph-aVF^=naW#>>SxuYMZ z6hBEVy{cxnAO&M==u1;sk>36!IfI51bw@Oh{ocPHDovur(T1XY9Cb)i&H{CHOJ1;>W~s75RF@usQyTvoZXY+^WqoFqLO?YPe-XGo*V18j#PPa zz3XEf#w%F%JrBAn)HE^uzA^CECGc~eyuX!1e-DGsF0wl1RLyug_O--TRc)aV+M|kx zc65;$#``NNhv69-?vY>2C3D9sZ=4EZWf+_5e$?}D*f0D!ZC+9L+q+`FYx}qA5Q=yT zZC1DQLAfLgKV8h|!FUvJ#qg5u61`oNCRdrQH;egR_&LGHJ{0NMAFuVor+-FIGn8(; zlEy(dpf!9fMIdfso_tmLBRUp#CPO(}koWr?r=W67q<9FRPDd0_XhCPUTO!{6Ablh+ zrxS5%@>R5|B_LvHJo0mza7e9uzjH`6s34ul#=a_ey)S2C*DVQlU@r%4pvz>~w$`jJ8Q( zjgS?gv0CbW4L!sb>uptc`olcyB2Z?4#wr69-&Qs|f9#Wrf&9S7-+iB-#-@zYu8oyQ z73uqG25Ig`urM=!uW_?RkUDVa6%LCrOYT*ikw9U8uXVQrWkvy*ubjitN{2~DVZiw} zZr%(YF3>^Pfn1;1&em(zX}6&>q873@0YI-9{x^nJTwPzk8`}4@0U#9+egwKLXqieq zH>dS6t-(pq@N_?`xcDV}kAyHZ-5kiy_aKHMtR(2k^cBHI<&qWNUt(9HrHmTDjD+<3 z?^F@N9=a~wg0TvRRHKHc&^6)R;^)`<;^SR`$fwyLF8rCOinZ){BbxQ)w;KqkdwWm7 zixKKDfi&k}x?1r?%ux?BrGT#9TCbX!KRhYezpYuU(C!F`AUr&L4&(x{ZiYG6n$_U~ z3hDDBCTMpRX{#JkgMu)iDZ+0$J>F&G;qm-i0d@7s?;qhn0KehXllAsKR(oXZu{IJ7 zjVm;Z#(ghMCxj%Q?!ATQ1R_Xm#dG!B3y_dYpPzU@@2u6w`z=R>y4GV|8Tum-IK`|q z@01fDKL9PX?wfXydw(`Ot8z1nrIUR8{XI@kBF_q#xBB_PX|=a8MXfRfWHR!41}?5> zP|ZYWK!6b7Dqa5t4Iv2JVui#CaNA#$G`rPaCca8(iDeZRZlrjbV`qb8oIGH5a8nRT zrJyU!*wUeY*jXCCWhY3I7Ik~hVt_m+-0V@3Z0^T_`I^jWliB{85`&uxIaYhQpCrPr z+keA!i>Q|=^-Efhf%XJ3=`)b6_YHP%(`*CIvz(`nyH^Rf0*3d+q8jcno*% z8Er%K?Euwv%k~GWFQ~EEEq}9@e(cRc_nQa;W+qTRFH=(=*@abD>isCtiABg6W|b6G zZS9UrS0tK1Ch|U6uL6hN3b5g`KQtaL0kbb)KlT!_0szI-Q*#bB1=I7>V}!uGpD9J# zQ~DT4+@ks&TnGl>v%uei=$OZ_h!~O(gwBMgxgjo|3g)X)_ciU@XhghP=!~`AS?ogE z<-Gi-n&nL;5;L98D&JTFReS}JpEJDXalj}Q<1n$eHW~{&$JHSL=;9%E9P76gJpPQS zaRq=02AmQtVZ=;d2L^J%f#q|&l!(YyAeF#FwZZQ?p>zLe-1x%X`gIga+N3T?P#_g=jE>T<6P`<(KV#}}j!o*$jY zs@IN%b@P1K;rP3I;mX}s$}7l|Tf^aXabitb{p=d)Ky~2dTUZ*}#Kad@ug`DmVDQi$ zY!}@Tim+A8K1*-&do1Qv&+s{753@-DUMULl23QuwQ-qy1KCJ+&e+kGKW^kD0yBA1l zX(6OMn8Coh7YcR}QM%pfhG#?Y^FTb)pwaF790Gqf^g#S`%3B?+*N`~*9)Dw)pP#4U z`w28G!l)&38v=zCx-hl=vy3G-<7qwrSBEC2zTEJ#>c5;{t2Vmee7mOGx zkZ?qf7?kcOhStEA_oj))L%k7e(H;_@d%mXzj57q|TjNGw#3P8@^tLuR#d$&ZyL|>e+wBM?iQEkEfb4**{k_Oo8s4b$+q*lz#!8rK3z3H(0$(WVd?&FH)Xw>+ z6`->^qOM(Pf^_#2SW3i=1#g}UQawU}q7aG@%B2`FJz^{T$A2O2af61C-g5C5*hRpT zDw0#8q(+A12Y8*x+1`-o{tu0xb)GyB1lO6E0z2vb(m)g%g0%pjrvOggsu^E#6kK{l zd`6_c_wR4yN@ttjVrCA3d)K@DNpZ~&3@5u)jc3vD{0P(j4SpIS{<2t+wBrNfRvKj8 zC_2fM{&aD-5j|^BhkX45u#rXeEX^Z?Dnc#Nh`hW^=j9JLL-hH_e0HD_5uF!^@LW2m zgl(IL3x_9c9319<#!B{92Lp+j6pGze9w4W@;?xy@iDxT_t$f4J(S_6Z{4YN>3e}Jv zGtN-DWGuoHwLHv#p&TXq_zpHx&&zp)Ge5UD)nP&QrKqR;>6?hL59i`CI;Nbg9IH0#7s|St4u<#BYRnA9M^{FahCY z!&6I~A1#1r47P{-eAiY2;cs9m5cAx)4}Xoo9q?;Qz!@QBdPo33m1%#P=p=|}5WPBh z#J+RE6k*}vjBpb0y~OX|)s3G1x~X4b8*Gz;h3z;z0lSZ4;ESw8Zr z3rI^EAY{Nd6#y^*ya65+afZC%G44m?UVsNBoRN?MdBJN$=eT`Yzku;a3JVA}d`N=t<|um7(s^-y*ysj#5P^h!)U*Tze&D^T2HODbLO_1L z1l*4p5l$|yo6^#mG7Pg(b$Le_MS+do!rD69CQe!d z*iUY_*@(ZztHB7aA>tPf$gzPxtUPVyeLPmoI3Tf$kI=Qx|L(bT=dpjEsIXH6?1SjY zND`-u4F$6qZY%HI2M?A*s2yh!Nd?hYIgP)hfzpD49CI0L6Ws}H8rAzFj|SZvQe5W1 z<>HoM4jy7uUy5Ms=HYIv-{~clp)n}@b|atWqWJqwz2SnAu!GOrhf96Tfui)s7(jrSmm_+905k4bZtaRX7&%L8hh@ zkcSt6TNJV;I)-LBti%=e6JrONUx}_xoo|u}=PR~%moU7(Tiu9R3DZ83*yR4WUo{yK zGBvnr$JQ<84K%26iHP4>EiYDZY6eXhQqY))zB+LY}(DnjqEj9WM`$1 zBl5?Daz4*TZ*PyqIeEFwW!tMbG+SEVw?MlVR!mU$mcFoZ8K@*{F^PjAOF9h2)GbXDc%tbn#!Y5!9eOi#2gj?NBeh8muE);{^w z^5W9v>ZLc2ydW{^fg1xHAZYy7{YYHw(3NUgqQ)k_ICb}50D+y}5wQcf3a zo!74qi3kpZVTSi$Pk91>KhyVbIE3VtqR}2uxNhIR4fP&>HpQ+G@FO7-XU{ep5}|q^ z_CchUg1H46k=BK66TPc2Dlu2PR)}Oy#M~$K{I4^7z%8>jY+PL2yUNO0<>d*0uU$Zk zc7c@g{i6m8;=$jjULd3rcsxr>@E}vl2Lk^2`J8&CK>*D)ii{-fCzg@8TOY4LTqkN2h}nwYs`u@)!wm$c zKso2GUA>NYU&K8A+y&<QxI#aC_<+3_`gaooDhAZGrv<3~>2P|it2Gw8)CV@wmL>WEb*D9=@$F-lx z$;t`Nhs25b-sajMR91=1tR1kBe4?!#KJYi++`9~;NOtOgWf=pkZNjf`Rn*RUDC z_VnBtbx#qr3o)gH42`67Wo2AAK_*Ik65QZ4vE{`@RY3Hec|@N*!Q}Q6?2=G>uo*!` zdr%kvAqJ;~B`hO;UJE4 z(yN{)*=8QSoyT5jY5Hh6^WLe>)4kw_vyLkYtLXeDW|*7_B$$&XS5sj0G5^{>bDcXY zvyCKZ3>agTvaj@8EcuMHJFA&~9ubW_PSEH3Bdq?D#Ifbd+?!J($9Cp2;u;Tix${U~ zTxN!1UnVzyb+)UVeJbKp1FfkS{ofoSlLp<%t_VtI*5h6ZMpcR&+$(kn%pdRN*x4GN zCi1K}B$9e{ud8R^U5+);v*utE%4*Hv7lvzUJY5vTnvJ*5xWH$#3=UJoS_T_%6TlG! zh4Q_7eE5MTykRq&EHs2=UfX7f42z^Z#0mtpj8|o7TUFaBwXfcL7y2)xEC5n=*_ypg z_v{ZJWIhP}a+{$L#ycS|!Tf_vfvBkw&-k8jK`ws>-5LUJpx=1|+l;o=%Rf*I2@`;G zfKAG$M^!QVYonLqDo()5Y6?t6%-9+z+$lMH&a*NA#H*K6?4XH@?YslMPt9spAU4NSble*q4! zPyymlR(6&6qqhBit(Ix0sBS|HxP(r)NP$EFfF0(yy=bm@Lb3zI4NtmKKJ*|P^c1-J zh#46Huj2dF^AQ|*Iz@DlFpy~|Y{t7PDnP4n{h4XZM6Nzk9hZ}>Z-G+XSw~ASC+$3o zf(aH>TSo`o%|BTVtgNiF(6_w<#T`M-NOv9M!a#MaD4%`KISD?B*XH|;4Bx*t2&{nc z1fzTnZr0${K|ZR6#vB{UkU2RTIVKphx(*6FG`;ch@vVUFp*_q-^5({5@+LSA^74XK zN#at_Pr*R#{+FXx4j{&2o+V|7DT2okFX{10=0hlqhyhM`#)tokqw*So9@U?(^(I%o2UH>^Oec@VF^- znZrvQIfrtt6Gs zv*N;j&4GbA2W}cn2aawNjh;W)bNkL0+ZmW+1G7wGb8Bm(MJwQ0ce_=tqpA7U24;}N z6fVoF!MnL0FkK04)qS%Rl&Q#np%|Vuva%Ee!)k3C0fIfvq9N#T=>^Bxl6G07Vs{4Z&3m6=X$M6EzJN*Wl@| z4*(J4f%X6?9%BUw3vg=VQEPGZ`2&F?b#dy3 z{DRK=E8>ZU764d5&x&m-!cfE;f{dUcC-+%AYA4Jx_(sC#Y{w6;cIr~*g=m)->C9iaWA^@kAvz_rO>0c85w z;Or1v$m5jdsGmniUY*V)4J=K_zz;zD^!IVF5KHiz0ZX<~zx#kC3x+Qx=&syL8&(+#OHhYz?RJH1QCHhLD#H>x#;U4!OQ7(_`2MCEH%4uev5m z&?W@V1yn{Ktvz<3vPupQ4%Yvq&~l-b`mLYH<0IGT#l3&o{%6=S*wpg6W3Nf1UP(M` zS7g(iUTl!PyO<2k>m#`gzvjbg}6rKscU3Pk>ZHx?C_ld2Sj3 z%0v3W7hh}lVHhO}ilocpS7I!D$|mWHxWz|0Bc2UsBh zQ0GdIQ()J;ps3jZuM5cWqq$dJUfx@H>Pf(l2%UqVR_LvGp_VD)`vQ5D=68N9al9Ch z)NNp{klF*Cb$aDh3JM+4kAhXI&?q7nbhFc=Z4_`=ifuZQ1ErjRBKjb7ktv6JZ#Z4L z&!E7-2D}3|7WlIxz*vP03r{~?<3h2N)0)6I5d>z}wE={}2MY(^U(M%MgPR4*PI-TQ zvM&@SEK-=A>bJ4LCI<~<=MkwO$ynw352OkMjW7i24{$Rq4D%`jeSPhf4z-?}{Xk9k z0;A$}e!LP(rKq(=+;9Qo8_Sw<}q@CPxKylO%PZ?cYrq#Q^E$^-vc)ZCVrs@ zewmyM&fqL4Q{ed;J(i5A^h3s%{Lc2HsD)!zGW{|jgdl3b6A6fF#dD^V6QDC}jr~;Z z>u^#QMDzhq9i%0v&lB==c6dtRivx;_1ai9_-;Q_0ACGKGOqSq~ZBE5x<=+srQF&XA zJyBX5Mf4%G^!j|`EwkAx(U`2WqC=M$c_RpV4M;uj2v^Q@5dMUDwIw2Cpv?w#G@#Nf zB91O+oHyJ}gPJA5I(uI5YxC>{b-?GNZ!@viUX+PE&JDzVXL6dAOP6KjNB!vVy9&qB z-2Ub*UN=#Gal^L7tF2u)W31X14UK1!mc-s{s#5}cx)PNO&lMd0MjeW$Jxu2xST^YE zz}08X4{#ViGJE3V`1+FQ63dLVEH89vovn1#)IC6{eVuQQJU&{84F_*8YyvV?4YT?G zh&t|T9e`GV;4dw`r4UWk4yQ0y=|G*W7;6Ot3t$RFlmgfzC3T*6^4CX-r9=+Zb5tX905H4*KkhjTv=2*Z*v~_ka z02Vpv14b2@=z>iB5-6Tq;M9bq2qghwoS?JY219w7MHdO;(L)FY#0!gz>RhJxX#&zg z1vDvyf(Z@|elTALD#k7ZGh$xsyk|clgk%@!k1PS|KurpPAqLrZM92t7rr)_J^wj2{ zC7#00ARI4TFbW{v-|CymW)7^#@vqkQgCbBf7eWnWFa;%;&S6jwT=|Gf0>;q%i+LL= z_zt`$46-SztCPT3*xbk?CwIB(ffctX9^q*(Ca5ggkkAGFc0U!n;#6SZ8SPeoOj#~+w_&k2ccwjx21W5u!p)a!lF+E$36ycN& zJ*V26125B-NLu&PsB375!em|z2rF>A%KF735iJYcj@tZK2q7d&BlaW=sY;@-S^Uu1 z^_j;?DnR=Wx)VZA`v3)jxar~NV_`~T2((V<6jos@Y1Gh@7Ma_H&Yl9mEX>dH!l*uI zv(jgK@#gjsxV!mh$58ro)($luO1_Sj`WqIEM?peQKLFVYVKKUF% z-|Ovvmy2QYQ=&L0aoB^Q9Ivl#d-MakCF%#(o`y zy@}le9tQAEt0UfNpD)D3KPO96#8xtXcdmbL5<4Ii&+68(m}%-a!`sTTV-&ta@0VpapdUs-&Y^og4iiXFX%FqH}81MW6LM$${x3S zYk<4weZXi>*p|_>0bg|CW#OHzYgMks4Q^wGlqMFg*hTl+D`nK0N@phsLRs0bd_PR6 zuL+Zo~wSOyf;IKQv@` zm1hq(2hn-!ik`>e+TJ=Oy1?z9*hpAKoR5z=P}GUDFWG|SLH~H%sbT7)BtEt1PvblcJ_J5Bg~*l1N2P<8e0TsD65VJA${NUY?gDQPrUn?ZLFgi+@Wbr@@#e?pM~N`}2kDGMr|^AwdHJ}u zpnCt=*xo)Wi4&*PypAEZ>Q0c%a!hpjpLbE~t^Jlst6}smVyHRc^*)hIegch0E$k?#rL}TTjSK<| zkTJ~TUV#Z?Vp7spc?v^0=q%xCBahbQm2I18ZvJ(a;E+G^5kPZ>UK2#VW zPZ1CZ*&m(-#_wO^@e$GRSyv9%k^brnq_}oPJazBcG_u^R)H5CAQaukEJR= zz(m<(Y~U}>ER>ZH9AKIJ$9SLML+F9r`J3}N(24GrNj#Tm%OI!zY53R)HC%8#0z)}P z_PA;ZLkG+92r)aIDjgS{ddK!AQt23c%Si0JN<_cVA@nC6H#j!r1kXMQ`vt+waov{Y z&znAU8#vvAgQ$Lezr;ijZs}NuBXR4^(>DX-Xo2%;Bt^^(Te5;(? zZqhXJw!Rucq~EQ)9wa|5;^TBTiu-7Cu+h&``=xHl=0LI>AH8yx~6w7DeY4;k&(Y+#kd!F zY`Q!|wmGAB4Q;D)hL~Y)8iPdPrpX^c?9Sl9)Bi)(dk13qzVG8CduL`ugh$y~QTE8D z6d`-hjI!dfLS{yhlo?WHR%CCovy*IzkUgK@dG~sKzMuE!{rk7@+|PBN*Lj`iaUREU zF|e7KwogzW7X*qI}%avXz1Mg zH5DnbWdgg(PhABW#O4dFPDL+Ms_*|{!JgtA>RfC z9y85^pR;wx>%Itv>fSSC@|!7Q_;BIiY7L)Rym1@qVPHLP+;c!N|zmjrS7@ z2Ez}hM2@mn`tJNXH%0!vln2pCK&b=HO)v`+@2jjhI+5(#wLDza@5@`fq2{{cn_vdT3mM8?Kkw{|9Mx2~8cfpXkJqJm)7UdI z0_qyyC2f_`9;RL1`5y~pF9S#D35G$~19Up|iOKeq5XVZVT8Brc|A=4k5~59Dz++@j27G3qN-n)0e1 zU3dM|#;`(~|kd;IC{UJvEVZ;ciPggJRx^=f5q?UM!yd)&8 zT8pYVurXKe3c_R4#+zMQz^NeR4A4$~v$mKi;XnA8s4-o`yFcC4hiy|TiE5WWX;j6Z zRA)dB=mM5clgy^!t-Ad|EB8d)`tX22ahM=6$<3>oh+&6GU2#{6>vFo+`lF@+f&l41 zY2#hhHIh|2b9b7?%^Z`W&*ewa5*ePY#BG!TM(003#f$K1-9x3%JDe~2^Aae2j7J=- z-m4CZn!SEH?2ke_JffZaGL}|*Dst{b(cZ#h666-P#^xT4SQz8N?_~j}zIwOk)n;Gb zE}CDf&UGK_ci>gSinx4p)bUS~DB}qO@gJJPjeAuOX_79Fxo4kkzJB0@#Sw4e`gy|> zA(%0lkX+%bw4mrWy5M0#5}0|N`c9<&&Xb^e0lLXjiin^SS1;v2-;c-13Yq2q0+^NBPdFExBEL5ye&%WT6dJ-^;o`@<<@Smaim?bXzSo?ISF1LZ`KGsc@0V7V zidB&HJ!EX2zUost{UA^}KyE*e;7nk2L6taHa_9Wo7X9d=P@P!9z5rK42MJZI{hX_V zeuYMVvHg8z-ne6i?2ROFO*C=A)_zDwvAKPPk1nNMxi}k3%jnDty8vy0*US0Rr{4-h zMjnVfGJCEcekt&~Li=|+_HRL^))X}gO7SZHyqnO3g6JSwk{54H4P~h(WlRILWtLel z^Zu^4C7>`hOgBi+JvVkYtaJf8Q9Pl_{Z3-&LMqKMT>`Q2g+(Hsj5Cic_ZTPJDsU_E z0}JPLc&eYcpLaFowOKQe3;tvDD7(_seDBx6_1ddPJX$St{KsQ*x|3F{hZ3fS6iYf) z7IQ|Q-+p3p<6tF8P;BM%zfAm$5|!a^KtdBJkk9rkZUV_IamV~SXsc3njiPPou{=KV zh~J#riLv~GG?S$SNlDs15409U(2s-PzmFs?uZy^EYmvyXoKJSKn93>0A^4854KSFfN}#4;ksGIW-&%co5V3AP>oB4bm)7Ue44zWIKMCNYqv+w z3ikI4f7+?re+xT!({{F5bU&D&hRHR`=?reVK4*^Do5>iS%)LOCPu3eatEAQa3b+d| zdZpc)q6iWteCc)1k|ZXCW96kR)Ns~6*{ih2+ngwUgSoqR@YWY2Ir?=qYa%|2`AYC{ z5%+SD^Co zZ)7kV7%^2)zKkVlj-~vOb}bbUiv!i!5t-BeQ7OIRr+t-XCGN=S9HXt zV5?-|8Z=$lIBFcBNFF;wJ+*jRM&7|=-*K$Xau~WdwA6pMdhIBV7WZC@J(0uEq`>Ld zU;1wbL!*6!&NltnQ=YHGGDNithY)u+eXS)Sw{mMw@$@P>IrtJ`_k>`d{Q&#y<2!lo zPFvK8spc!3J}MFJ7H=#o_A&En$~^^Jr|;La7S^xa9RFRewjgrG$?f0_wx|a!-S1Fi zbv_hBSdwq~Gd4^Jsr_T$NHcnlyBW;~&*F6B(T!PCsV?~vt`@R7r<1!(G7&7wemY0U z(BJ$cLNUZbkjO~?6GI>KVJi1EVwHSxxkAa9g7Z$^6>AiAH*K5AC?lOFOhYc}hUOFS zT#R8n;bgNv-%Zmjz#dsym(sM-HdR%$gOant4!PxBYyNSns912-%0t=Z(nmfn+Iw^~ zI?z-tfz}?HLw3Xi5oDbR;{Zx~kKTgIqVG?cPU;qoX9oVf61J0rRtAx1!gx^>cz(*> zIY63|wYIh{_&zgny-wstWBa*OKzVYYgL@3%U+;z8`b%E{hSP!(3}Te?+IJY5CUEz8 z20&*qFx>#ATUzzIa3dF>AVeGr<0&2R(de0+f>sWo1O&ib83SMfyy`SzW(_hkD`3gO zKmtbLFbPG#E3v0X-lYf;l5bGJuM_UXlXV zAwaarA`Y~^yQ}X;k`N-E$AIEv@E-t#2y3zeVM+m#k01-cn1)$=8o1Aa3>ErCg!KTv z9*r<6*$3RF1IVluTz)_;M8v1SsEKpG4`cQuV;^p4jjaG4L0Br3%@A>v zF0#-ta+Ky4(wymzEyl^KCa&$J_(I#KJu>gD`dD5tT3}x|YIcPBRIME)tWw?bq;ls1 zsxL;k`F(&SO;(l2!j%;rfo|o2B`H<0wiz0$?22xS$J4K_x%68^t$5({wLY})?Rdhx z!QSLg{iQ>yfywZgSf-rUvAb=z<$<>?ev$u{xTKJQ`y{tsf+3}nj=ynLIst(p(KIzG z`Qlb~DZa9N19boP&Yu=&0jvUAvDCYF??@O$qtK^YX)we&K{ejrT3X(FVP$r2M5pOE zGm>u>K!3n8X%Pn~gtG{3F9Hg{L>pORzNBvMtQ1+U>d?|#ReH6`Wv2s2%CVCb(fRrR znyMkzOo@i&{vxeqR`(FB13@Dl3O}{IL&LNlXf+pr!7TzB>u=smuMrO7@S)C~I~UN$ zuE?wyCRgvzQ-ev|Uj{IAy7NW}FJ80(w1Ajn+V!VnBZw&cNii&hB?h#fT$l}gEiy?P zHTI1LcJZkFDi(q`0`}qd`}|rGz<0?A*$&7gU_qJ(U!l4X=K&C21i{x5ncyNQFL1cz zz$huzA4CU$Y`g(`i+%v(u!Mw!ynYo_?suD<%0cK+acRzjDVyw&Ftog0fP{Pk^w70t z3i%eFfvN>s481E`fVwZjOy&}pBO=B_$S|Pr(;@?WI)a8)!BD%{i4nL$2z>;0JhG|? zs~YCk&n!|ATpw|K0DqkYz~Po)evhcVngJ$1!0&cYiJ^irs7y<78+WoM}&O z?G$;cgP9W*u0Ao56l>y@!Pk?dV`HVrZ{QIjbSCV=zKG;qt^QLk&vJ*372D4@6q-&7 z+=Mk+H6?M_4?Mbvq?M0;ub-t|%&630Ei~b7n!q>1F6m5ebv;|TPq5lwtSXOEIpe7& zR@f%{b^me5g@&AfVnsO}N6;T_3SSh5G597zal z16E|Jz@h@0J6<}VFfA=Dh^pNc$f+gZYl)DFKwE++)5l7!BIjJ!0enCl;lL~alqK$v zYHr`U<)-V0aD;)s0n=rCR-hOF#JdUc0;3*zz(0|}D#%TMEaVQb2Bbp(oGk!@KoS!I z>_7rV)G{!MLCBuKu>}u<5Xil*K!@J~RS6;tXur)wGl&>vA?$j9w@hJ^-rv-A#+=}u061;#G?)^^ zOs+k;z5!F31%#W7phu81fz_$JT@O?d1ak)%t;WEQx0{Wd`zhkN0Bo1sRa;Bs7(q<6 zykW-me)t`veuO{&?shIR3_7y`sPG_6V?j{^h#`PhZh%08yI_c!LX#>&mVtn$7cj*_ z2)@9kh8dE?06Q|k2j=GtILRU8Pe6eYZn@OqGCN804`2u{0Ml&-h9fa?=HTT3fPE?) z1@18UU9$|CSB~pIY#jiZuEj-kc;&L2 zURA(QhTt2f_8a4%Do6opj#!JfD(#%G{_*dQU=Bk*t7-rmk4xfqf84AL(s zFCMbCw!9%_ zj03e8{665>U+~=ri-T;Ka3gfF4IeqC%e~UGlNG?SAcZ`%v@z4X`t1{yq7Fi# z2EW5hNM*xqiAb}hRbG;xY0tN0GexJCSC;oDSt(td9Bts zGeTmKd#z++6!?uagGY#kKXl0TZKX2q8K&oa*8H1HPH@(v=X8{`-U{!iHgWKB-~aY3 zC|0ED8ij8ttDUZ3N$#4W)DHg~T) z&p3Uta>j(|Mxwd(Z?B|#CR1AG=^?-Hr~6)$_Hm86C|t*shcmodc9VGCsz{_SI(uo4 za`)&Y)o*wFU#FBmFqal^7~w(8N`UV2+8xYI+%-_tY(Qcp3xg>sED|uto1a~jhtV>O z0k9tclN)H=Hv!286-Sk;1(ayrgKyOkTNY$E2kg6xkhNhnI+&-!4xzK`)d_S1Reyge z79+^8JUQEa!4-R+p&Ug;QT5EoO{sAz` zOD#L&fmsTsT}XOD=r`&^A08cp#v&VH0A4Fz078NT*c-fL5o;%4U|Ya26scqpeiIH0 zhz4K`a{w9-<}8^+$idgV&+v3340w$p+pl?)2xTYKtk`i}2+W#fE1jpjU`!e-WFXTL zTxZ@&bS6+nWZ>1CH=1xdjKkm<*(R_-VF3Ib`B1k{2saOeWvqzT88V55O{!US3QvZ# z3CK+6LTvj}i7}w3Le7^P5{7IHZ9p#2{16Q#OpIZx^$UY+@C!uZySzM8SOA#J!o08* z_6RaFg|GGS5Ctqq(5U6IfFK7BL@4)w0QA}jD`3b3sIJ-B*@(Ku$R>poSXYp)luuiq z-@H^$rxB&COMSx}Y!iq*jo9AoU*Z{37SyxgUEDnl$>%*qS zN&!v_8EJBE+KA%-hP`b1el!oUFmo#rrO%q|mjdb8I$ws&+n!~sMosUXB53dBb(+oM z2fvpUl;aLDC1|p@9K~wX`Ti*IiIea7<$K+@h0l-Kg|QU((f;R)vmEwtD>4IfsB-UZ z6EMyHahevi>~jmr-0*3S^!hX)v-{-XMiM*q0;&)FP>>+6I8z}@*pgyN@{<@LxDvr> z?+rZ1JSdJKu=3`ZA+lqBd`Jo5KdjBqKN~CyRK~M1V1o=yO&I=T3Bc(GK2rf!_h85m z=GBN(HRu~3UO$032e4#-Jw8_JD~71Iz$IrM5g!7HB-O2p8}X(@tk&REh9O~rK{;Yt z33N&za>0C>gMuI(MI`xXl~qdWf}#%OtmW$8A7o<-yNh_Q8{HWWZ_OX9xzNM70X3lj zkbJFsQd*(l1)ffNdO8*)bugU-V)YCZQkLL32IkKK^d5)5^d~Qb%3aJo&TqQGMCJ|& zIwSuw5Z8e}<_4vVJ5mY5?APYr6RUerXd&VQ_`?f{RJ>czRUtbZtnS{xyb=ai-7p95 zgMUS`Ffu;|0l^~T!Uu7JO!W}b53tb?IVF%?VIC$!FjJ;H`Vfrt1xOI}0pF+jbI^|| z7#qJC@&uw0ETnVQ3?5P=kX^Xm0dh_msMiv>v~r*q9jnk_rD&*dYMOZmhHX??{0=zUb9kQ~28%k@&0y~Lm4 zO1#DOC#gS_i_8s03kCP&nwhqP$=T#YD+<{AuPD~vf8RhGU`0&b`onsfX%Syi=O&M- z9+5w(?h^&d9C_9-|8c`>M?V-O7S?COFSJWfylIYV!x=Mg3z&|TqcGI**Xf>Ah@z|s zVwmj0owCq!rpd^$1Fy?yU=m>$`=9tgDrkl`2_)m|a|BnL1(*Wwh}=uFO95{|0+IWp z;71MS?ogcq{Vt#VLu5n*(sP4DmGV=Ui)T&zc4z=dsIZ{khq6z6t!yY&eFr(Pb*RBW z5iE7n-PfUU{x-efcCGVFmI)UdMOJ8F$`Z)u1mL!TUWs2kKtw>)1W2BN!QQt=lTHW& z2rP&~;8;Y`we^?eM(BH#A3fR?9L-!>TtsRSdLrnIz|9D*hHys|6u!HT2+3agOFalA zJ|F+-1`wb@5DO_T0XC>`nfBM6M97LL6sUlHxP1cEA)L>1J3dfUAYui?Q)_`Ablp%= zB9epngoKws%tFZhFk=RVQ*{05P7%UG!TRR&s{oNuz)7$HWqwwEK6@L|`y#YYM2SYr zqb~zh1kxKK-idHtWy3zy6hbI5Z<@o%B`H}3N`O}bmtbVUhB9#LSUwj4N++mMU;$!u zl!t_2O#qaLL%SmVnCu}A%xUtwnaA0*2rmC|f8hN%Mn?irQ%a)afmcuCGk-`;Mc=VE zdq*4bR))ZFn6vCM^*EV8wMZsZ0Enkb<(tSv)xP)IXHl%Hs+87->Gr6*$s4c8Emo(a zJ-ZCUvpt&lr?tFV^=xsJ)6>v2mqsocQKn~G(h+j3vu<~FzPAUTM3(Z0v20i~i^8Lt zy&pxlihh`$TQeVwW|O!x|G;O4OoDk_b?$R*74_Jg?-44w#@(O4-X7yMZ)8!(U@}Av zC!CzbV`HHNXhdHSR;O7~m)WHN%a!ZZ3CIzU)9Spm|8;QE;{diGCq2n6cmY`OmVbVI zM+FLmaw41VQi8K*pyFrhE=|q$*AX;+rFZ=@YyIh=1G3eftABFR@)_L}XW|5D0$2$` z4n+<{EI83JAmKTF|NLp<#A&i{@qCPRZ7c(}W{W&ifsO8Gpd!9fW$t{2zUnNA`pJdpo{Si78 zFr>_&P=MN=090Qf0f80`>70P#TLRw9KD(1_1p7t*ktW{O({ULjn!? zhrWVAG*w`jmLt1a_d2<;p>LfUt&J1#K8*N|PKgF%R)53XE_5X%FV9xuqm7GD7~y}1 zN+Y^wgB&M6C4Ft7zMi7_VKj14XJCp*&fRPhZ)TLGWvrHF+G5?DZl1zxmDBM~`_)tL z7Vg>-QpUh1l6;{Lf=hHAzsE|V@$dFOVJT6Fdbse!OUg8&&fhA9ng6 zpV`YG7PaB7>sVX@E_w`CK?MJL!#Uh*1?Xwse4jVuK#AWAvIZ~6LSCRvd@1H~0jP7x zs>97CU`r_|IH0n^8G@X(fW?5bHngQ4Ednyo7(j-}`M5Y$$^$PD(!~5fmnTGmF@OME z2vAsm>VpN6h88G>ypK2AufcT*uRDT(P{$0ajGH$b<~GImkjm<;DR5bk0u(fkKLEd2 zfU6r8p{g~5KB9fQx4o@R;`@Q^dBg(|Vrq4w9Q2+B8z43=h4kNEh5Z0<3B*GXp$@^V z8u{LBbF;Jg9MY+ho_q-C0332_fD;h0HH0AC%F_T?R|iCK18`U2S`sA5B81MMpr8)o zJ62__2;us0=Xp6ca^{#vUNb~)D4VkCIk>2oUp&M#v zUsw`FP&dPCfrt9Ntpg1e;(YH7F9^lYzXSqs8(^v;3=&Xs1R`dH$fkss1!b%fGzq}o zvjTht`MMy82?N>-90tu@&#xQ+Rt$HnoCl504A=r7HI*AaT-x=ghO({cDORzLE~(;> zz!{n6{{oM(vIr-Dngi;X@UNMA_9O7m8DBvNzl=rYzr;e>~^Td+j?{ z{oDVhYH0kej`7%XC*G0XX#Fs9^XK!yGzxjf+76D5HuvH>g2IU+QLcAnt30mPQAmG! zRs3ZtqQ~{TW!qP)SpMhD_9Pc^2yn4+6vGV^>l)f?lm?19n>N+F%QckdP)gC0v8 z48S3fUiSf8s|)Zj6<~28k{vj_AD!c^fD{ft1O!`xfkB=H=oP|tgyDq!$vDuaprexqs|(N)y1&pZLU4ut2wX;K zlUaSaa^hoS1$8mCqgnyAF=rmFoS+P0@U6D_Ob4&B$0R>u>50{;96!3f3lO(Xt}k|S zRLo85V7Hz4aO;-8s4$bmg$i8KuN09rPrNouxV+64H{nh@Kim4Nly?mMP7NO(YkfO{ z>*ly7X?Ty&<7xFvuE;fn^*z&~xRVv(D(~9^o)*P_t)lU+@n_S%8xi!Bi!adB`@Hm* z#}SzyoO%z?3OE5ZVXw+^2OG#`uZGj+UMxLZ(Z`8-`dIFloX{EMcFEJUO_N@1)(07L z=OkWaW{!!rI@=nRh52+>Yz+m-elEYif(fr$M!DMx z!nT3oYG?1@8aDE1wvKJ`mu)<1Ak~laz#>w1@vtRwye&&%PB6Wty00Fwp=hmo@$%>% zi;HG?Nl2TWJtYgDUwrJuo7Q}ZCDx$0Z&>A&8fTN4?{@ql{>D{uVE#4o{+;kUJ%=U_ z?PSV*@A_=K_u0x?8s@p;lV-8jXS{QmvKM`!$QzTtlke@=RlBI~Xnq~1-KwEOsrz{OR4<@PV{xC=2Ay{X?#Mt~_k z;nLr71h|Sr+}A$S-4KmS{whJAftB&+oGSV6Yrm&Ar$wIMdGydTU%H3JQHJU_u3BpQnWF6TKu&6z6pV?%0T~b%fGgxTZBc`h8|GC_iS@0-e!P=Kv zu0DB8tFf(=CZ(m}O1E*2%;tuV0Y3pQyWFn$R`F$4M{dhQTm#+Z*EiA3bFEo9>7_9x zQYDK^?Goz>xDzG4k^@Jh!cwU>8U5c$Yi9p$mt3;!J}%$6{!${XTv}uZ+z6ow7E-*LIF-ESqWqFwkG&f4;>`AW-cm~6CpYk02 z0$$TOROp$@A*FKq-n3lDLI~!J>^ILv4n>&`A(d#AA8paf;acjA3ffEBQp%d^Y7=5< zvqc0{QcDuILXAVtEj^(yr6-tFus!1_Qp#t7t#OA?lwP)KR^CX7_D4j>mZ9hv+aC^v z`QOha$tNmQgACL?{kXcLHCcnSBe7ZCo<|q+std=P8>vrjaPAP3yDdBmJLrs19+Ty{ z=wC9$IyR>#z(e{>H(~w?osS8i77y}47Ec%%akr!BojdF@QP1|29E;XIyoPgKgk@8B8O2=b&v+8nkiK5wk94NnyZFp=JirN%;S9Tr);O4{Z4t4H zq)m_+$&9^Xf^%9miTR}E31{4k_inGI1A-n9H+h>iNjACB|BDPPz)du>W~eRvIjR0J@0F!D zEm@mr(otN;_7wMb(BeGd&qM$6%Wj@3pSdQ)p0qmM`r@Q!<5JEK74@v;eyQUF<;y0Q zL)^c!M5yW%iQaM@et3~2kWxsyltw|{^tt}oB)kRse-A$L+vj6)h$87taPMnhTga_F z+Z8DrkW(|zbp_RV<4b&-3eQcQ@ukwv$}T&zwJa-t!q>NM6+d}W>_E-%y6;JlQ>$6N z^Yu5c^GK=EOYkaUnEM5~@6&TgMahX-2daA2D|YbrN3rfrx>%%3yd|7eGPQUw(ORPN zA>Ws1uEw}q%(aJ`GzB&C^vTKS2suZNoa{}q>j?Ae=4r0(;%`Fg1u9fm(Q%$zZmP7` zx!bj$V!q$x0;|up5}oGDd8X9oLp<;JT(qSBiyq)Kpc#gQbjtM&K9mcPTUyjKIK875 zvuj!1B~5;P##gS@i-fp`yo6xapk_R!GO~h{aW-No_Nv)90SDR85VmUl(@R*Fu=Xj5 zYzfmj4ElAkhe<2QySHU;Zdf-8)bU6@x2!o!k$8nK!bp(Gm8(=aI!pLN0Oc99fVmNd zW>(r@jY#bo<2kp<`~Q4_Bn8DfitzApOl;C7hMu4CccC+NQji&axIXr$II+6^T?*?8 zZc;3SXhw>Kd3{gCR>~krl*?}Dt~!Z_iBQ;)n9UvhC!cWNGVu_`<>l)WIAW)p5=5qT zc?xEK9>tXG*$7q^+)KHz{kUg!X$9k4nHw#7we+3T{kNANjJLJP5HfZW%rUCH;DBz) zIgUbq7LV|v^D~}{RanHt7iC!Q=|3VoZF#(xmxw9}1u*Ev2u1iqj{CUmfz&Ox*H-2+9 zY8o?I*COqAL_7N7V8OPtoR41Wwz(wJUBfyev6T``PVaf zCV0vW?2REg!!N%^d6w-?r!agyqjep@OGRGJCgx>UA`-n0&G)TJCIruvKDV*`*3r1D z-pwtspxizp{%+5Ai(c}TESk7$L)q#Zy)dfhiJO9jZ17CqeJUHCG4aoTkPn9!G%kuo zl8xqQeHimwG3+GsiA%s0<~1?Hd%+}|Xyhjtu%x5cFBQ(-H1ydi@gP~7UI{Cyx@Z{*k1iiKN&#MVc3&}dh+)z7y6!o6TdBv2p zi~Gu84+gREGC)&QOo_mk2WCBK?<{#inb{f|vrJ0CGhZR7QxN|?1bh0EcUg7&() z(}h(>Y11>ieDqj&@S7%X{`Oa}daoIcnmuo_b1B_>iRrdF&BF^)%G$S3-tL`oI-Y4y zS(0RmX#APh8>rnN?*IF0D9%6Y6!l=+;E<6p{|?Dc0H4U$ALo>}%-CDe&oKD^#BiBQ zu_sxmwD;yOe^!3WbnhMlg`k}Z*%+ztG zX5`-}aE~Ml`x}^nGC#KbIO)(FoId9SzmbnA(^9FNyR~Phj5(1K#`^ox7_k06(%Ca< z4xg_JofsVUv5}K<~BxcuJO*m3J z+I)=6W14ue`|n>O1yMV)DFV}oSAAdXU$(Ad)TSeH#>Sb7l%_+4*V9|{@iaR( zJR~dEp^!g{rmZ9#_!}$)|L-sLNt4B!sHH#oUDw=#CxU9T&OUg=egWGIBaM7e2KL{N zgXq83s#wU-`z~!`mAofg7iz!SzP}iB zm^NHB@#H5Od3HIR|5-gOor7vDtN<((1zBD99s>HCb@A!=J+{j9vIR6*=k5Hn2wVT_ zH{5#!Pm6RfnW)k4u}>8?i{r?kr-slq)T4(o;N0+ z!NNtJ^xt(NIO~5Q94**pL?7zhFiciET=i|h|Kk%ffwMG!*Z6;*(>;=ZWvKpj6YbYq zlvb1q{pg9If6|*l`rdO8MF$JmDNv%T2LcDC;fr~hyL#`ux@-bK8}?+J3cDZRzrC= z9iJ4(V|rz|o_YSC6`Ug^`hWXm2M^1%mvr+;&_ZmMEzIX#gUr?xUgblV$7lXV?SJe8 z{((`p)viJRZ<%C7Pt0}Md(Zk$soXU7XRDL^Z z=jM^`8o3eQ-(B~=pL^Xc5re5cOLe~b6IT!1ryER2j~vj6P8hCbH1;>vY{*-CSP^wc1_A8yJgvG&}@ z!T-EBX-?Vyx9vYpU}4SjwZ{MjCT zl1B6WhS9fU77a-d#Up_TuEM_QHq|=b_N?+ z-pi$fvF(FkX~unQVF8&xd*@Q!N!DZ(LRM&c@JZ)ec`8 zOm_$$N_AaE=k=#a`=z0e*D-zKpZ#|&M6gpCF~zTlQzKmb=QXPiZ{LVad&e(r*pT+- zO4u#c6n^P#%g2kOLoQRXUQJS4M}5YaSX-{+4R+V#1OA2@=_!tHTKlut+c5WT);&wV z8ttDqBNAnueKJL>)IdRk^&d%mpBN?myzNt*qj#q-dY$E&y7lA3Neu4MXdmhYU6t8> zpbu{v@4=t?LzhiMOc;j4VtP|K`f7Q!IA*XYJ*qKUnIrIw*bk-;(g$Q~&L>xwucV(^ zimYhqidRc-D`U!(=kfi2i`VY8>)8b};wP3=W$eAW@WORjP}F=`vaAFur$aKTR+9UX zqO@W$;!FJoS7VxgmTv_|2eCLK-{;`7C;BV-wv#3=DaP~g%d^K9t(cT`3k2Hwueem<0U*pn8RIVD_=7(Be1;QD05!1?}_mkqIGj9j_hN_M^d#reyrS!B=UV@53@hw?)<*sK-E?v&mA3ob;4fxR^s+UKZy#zNeZiL zPJXNr=ML+3_<7~0MaED$4i04{QGT(53{NbW@XAU^{MhR&m?sR{>Jso;m+9Nd3gG85 zqjMbWWv(7h(uW0RIB2U5iHY=HJKSZJp7e~8?-M5@xsNY?SkV?8Q&%uwszEB=R@eTC zQY?m~)@XNZq{qn`GUbfMca%UeIiiT4cXd>Qkc z|Hy%gX2hFyQytZv|9I6gvAYO^PucS=f zm}sMpbgzItlB7psp;a?2Q0vul*ve)3kw!FPe5!W-c#VJa(04jBwdlb_srLb;p2(|exFr;QVI3(Wk z7=Gir{Bz|-@3rcaH?B;}uWZs0QYvugV$M?6XWVlRFAEKxcp&aV1#NLKX^;e^WbC2Pe$Noyc zV%2Va5&u@7V`Mzj7FaP6-`Drfld()x!A_}W+VrCwXa9Y*)P=GzoL*APt*a9!FI=x{ zeldK|&%B#1?00+M!lPxku9;nqsbRy_brVXC^KD9w#{OR*7s2iJTbeE$$*TfWkl3JHP{=H7dp~uo&@gcgqUsU&(VVhaHgTurLE&b1$ zl)`rpP$_E+Z%KD{-(;r>?lK=uCfQnz)%q*NYr!*f@@5MPc`&Oo?ut3Yn|J-*rE!fP zTotRzXs?d5_f;0Xr{l7Iljy*k(T3@F#h=gIiqktS?@-i(=9;y&9It!Frl+52&Fs`(=6MMnYuR*CXc0_VqzA(k^;o)!*{*LnD&2Jh_Ft^j7qTF=oq} z8aRv`tLudWaTgEi8vG>s(Vwioece{+TbyD{L3^u7e;m|OC zXyIEI`%kBZxJ8K+xJ@0g1)4ftdxT$EC`ONE-^$w3BJI#W_0Tu`-)+(nWzoidFrw?K=@-Kf#F6j{|-QyPb zm8qN-KyQ<8fqI{h{Z@jZvKr~L+5 zP9dUrPFc4p$%z;hlTmF7gc1?`qHXl<)npcI+{=zpw-^e_g|VU^b zQ|p>?xYJz=_s*SMSi*C8CZ6u}rC)4J++x`vv?4=4^<&M20UbGecCufFFTEJmrbjN_ zYn&;xUiFO<{dy##B51aZ-_{&s?%KHa%jI0I3nd-yUYdW$0-gWM=Cvymm#s^E8g};T z8yD!%PwaiWXHHYbgDc1C4nxKlEF2Al$lOwo3N!TYQ!H_)au0SgJ-D<$Le+YyH4$|s z8&&U%YY^9)l)a!%x-4>+0;E*ac(`Px&FZ5-D39F zU*7F8#(z$qn94}ZabTRV@3TAzINae<=T9rG^=_M=6_g(}{m9+f%*5=ee`m0i^C{<7 z>-GaW-)~1ab6z~l%JrH38R{)Fr!*4^!ZoDMOg~dp86=0{m|M=rxqo|Tm}biC3Tg0S zgLusLPM|CO@?=V#Q^UdVlewB>E#0~I()L=Mk8J^g`k!dCIrrATx_miG!g~^-Q)7``u zFwg5F8Su&mmoF{;0SRV}-;?sVw8Cz_&lQyQ`zA+~#p0nW0X;;Cp82DqY^v^-gU&hz z*?X#XWdmcEgZ%eh zZq-MXMJn;S#*PMA1!l{5j`8Wwl}te5Gyfx0p-TVT>xjv_P$N zGvXcf(hyD9q@F@+h^wD+qGeTv4ZZKIhic8_Guo@whcXf`XF@4oC)rxaKE0LYusgpH zVqMQ+Vm#=$j-p+P^3yWt4IhlkC{W=du3o%0{y2m zHsQMpQz4>K=?qUIeL|1OQe~AHvUueuDROap%+w5e-&Ir^eLfPYJ`C`S4{yTRBwU_U z(!Jmm{nUJAjoE-ZrTI~-Jf9(GElki_Y+oKq7>)7uZ zMZ40hTY9I{37;(w=5OqZ@juNv%iNlaW(kY46k5{5L}R3;kLxk(=flXvVy^EG*EbLQ z)?>+-TO^K9w}yzTF8{i*Fng?VruNns{tFhE#`>O}^-~K=ZfsrZV0WQSF`?Sw2~{om z;JXY9&#`S?%WRkgR325k&_DU(K-k=GR>~w6lTPhwEZ{*}xGvz@Ccazhet{!doc5yx zV_XmIsia@V!T>{WbfOz`iEPL#UJOb2&d|RD(CmGqtP!c*Wa!)l#M9dQ~9{J5)@mfC}9|HNyQZ7 zQJwB`8EW^6A}L(qE`9aXXIe>PC~GDq4<-vI1*!Y9ZH@0aNyP0wSJiP{=G>N#ji4$M zvgQ3n=QsIAmm+ia873-P$6!P>GaGAZzB<45^WDVfZIRJGQ*c~4&!HJxvHonenP(+` zkGAD~f4+-B$8nq2)u3O`*CX{uC?(^S#AtyznM6zBBW4xjTSYE6x43I2>9P|zO}dl;h)DIq7`R)56^wjY?Fn(+DY{)b&lN8CB=M@Dx8ll?bQMIThj;Ey)a4rm@ahKXg!7zRp7nka!PD@5K`wbFmagqz2xyW-+ez* zM|=JSx-HRf$l*ztlG40$H4!JlGRjXr^+j1vp!k&s%^d<{W2keZdlgFF@6ck~`b9kS zp%)4)rA>%l#GyJD{utzp&k6hpK=lkv+*<$rbnA>{cG(f{!hw8#53f^s*7cfmb`?|y zpPM_gt7|zm-3QH84Vm??`@C8?-NQ~ckup1(WxuQS-NqxP`B3EJ`&`E&6M=2sEqoU! z!d@C(&*)tTImK!CR1dKuTl`Umi%Qq|y*{bz#TQwaF0$i%Gh;% z#23m%5*p2JIGG_?(7kIH=?jtH=A$1b!e; zxECXeXJHZlxkZ6e$9V9rq&k~wgzGb(d z7E!W(vzzefl^*qbV%QI^cO%#?^)7shxN5h(I-<_ca(jK`3rk&hzX(s-3+R{iQz>mY z!ghGc>yF=hJZv4N^FRMq4aHl%;iW;p zi`icl*pf>M8Z-KScv^gq4_7x{P?%=i1Kv;WjU!a2ws_qZ%L)GREP8ADVp>|GxX>F0 zEaiK}RzlJ?;;TR3-}w2Md&tv*eu6e3`}*Nq6ZvTNwL{u0VbKU3O}8a8g`;w82X+Sh z5ra_I28FivOm1uP>A)tDN6}=r3 z6TKL5wYpF#n(S3q%%>5&L^gi-3Gx11byu>?50=XkQ6(*QntCi9oN6gkv~QUpp?{Oc zJR5IihdlbIlApWxg7#Ex&J89MKg-oJk$cw?rcMjl(|90vv~!--i^Nozf=ca@$zX^)@oY^~1)I96wm7s7T~g!;-nGX!E(?qgy(rqg%S+cc0Ji`@fH)=e_%V-Ph~&dS2I?_HE_z;BWj@8m`v& zzR*^ax214VUI9FH8Czjc}DC z+!s*Lo|*Z`-zQ!OGJQv{-r15daq#uQ|$8T(jh$K>zhdyQr4#@2B>53MQ%(V1LPQYal!=j z9pZ95K2WApk093H+eg5BlWl)2!$)4XFmG1FkTe_;Ho<>?s9H-vmSfr_($ z_S_Wyi*8>||GsFyEX2yvCnOKg|O6OLrkc4bakh|EnFvXC2Au^}&4ihyd*{4sz(fUX1Q~1S`|mnZ3`ar!Vczzr;3bheo+fw8w#}qT=9~YThH$+|+fM5F22a-rr-eawg&cFs_~Cq8Xz`Pe@&DOyICbpr zxyv(I;_Z-2tM(j{SPyhIt;d{rm#~quLxPUefs63-?9j|DNJf)8axV0%)zO;y<%RpJ z-6Fz6*iuhM!%|vL<2OR*{UH7LUsDunn87=OaD0>|-+hA_tBiXbK^9aCG@3ZwqLM)b zO3QPy2$%#BnzcAhiH;?J~dvi4Kvy45!xx{vv4 zj*qVM%{E?RnObu!oIRmVSz7|vHR$1OLUyUa>+*bAGAmHtY)h%jN_*vt^f0M=Y4A3c zg_%%eAUkGj0_9qlCA|)#Pgr-i%EWP4r4EitLceN=mdO6N>I}~{B?tuk1xr~&P@>5d ziRH~fy*n!me&>w@+x>%tc^NNuI(Kho&}`M79$n9Rme;OTnJX3WG+?|eaEIij%*C6* z5<{>3w>EyAGAVN%QuQ*U=(Dz9DZvsq#a9|Li;U_Pi~L< zJ?+|7WCR&q21bw87zLmTJW*;iEJw=8`|xNZ{VQ3t7RENe#|;z3?bn~UroLf54-&p8 z8(cY`WT}GqX_wF3rQ&Z8(cEHZC+|- zTWVdkzHD~2g%%YQ2+M){qPT7zQGS^$srsy0Hy|HsG8y8+t;W6qHD+PJ$1grT)3Gaw ziXl~>(}gUcH`)o-+kf4F6!|7mFm_TwA5}0ln+1yvZ}k9#fsoyBSyn}_Ua#p}#29g79OKYm|bbABW_ZisnM*Yb9d0vvlijK?#A0OfUC zLdGxYcB>ij^j|l!9`6MIBb$Z%+b&9Z0eQV?l}C3Yaj9jTrG9B4?keA zL*hI@2<43E$s4=D;*D80OH5>fGtN(vch*rksb$T6ofBqO^NVwL#6z}RfK#UV#A4vz zfUH7D-|f|2X@sRdQFl^5-C~fnO6p{l@I2rgeY_w6iq?GYd{Q-qkX0fdTeC{z)W`mW zU-c9jXD71rD})mUJ?F50QG-!UpH}otf$NS)E)6=L7K1|ff^=Bg_AGQ{tl&W>_t)+; zx2?IK-EfxROv^|!@080#7c#bjv%CL{r+rG|z5c6%g9N|reJd_Oqnrr@`_56hitwq3 zI#1bzK5+*h>s9utNEAKyRK{v>-3RTaC1VC!J7>y(onutyR$GCz8glqu%Q*#9ElJw9 z3sm9Owou^z{#Qi(j}wbAs#P9-KNc6bdUkJZ1glimIvy{xf*w1DJ8mV&XB>;8Nu}XB zaIMPv>Yd}gX=T=@p!*#&bE$1AG-!T|X&3`n_;!ssghX&Th{_0mpz2 zn#(=BXrygJQxe77T5WzhWw&Y^*y1X=vjfkvE=T-huDAqEhQ_M>706;Ynfj*J^ZN#D zb=&f;c7UzwZPr9_JVln~05|NQl8)_Gv-0z~P$T9ni2b@*mhdjc8>T)9_?om7+E=qLT!8)0owQ&o3ZX8>&YfGsX(hILnF=vBQ=oZz0ab2m4Yh#2c4E5IV8F$M>7wM;lDG7~z;KnLcVW z6lR3}i!&=RZMb!cn5M*kilQzXX|mz`R#j^FWv#ES9zDTh7dwKlM}u{wU=Yzl zcS<`fiG=|&Rf=c%3oF8uh<}^8)xogzYmGU}@F09`MtWftRXo`({6wu_b1PBSx9j5K zUWx-Fjh@?PqO@;#@7I`4sAtAuI#ME)xpPqiHwdzuld6UFBK{!}x|rZ?_kn8OuhmVV z%s2MV%ECQwzg zSRHUtnhmYITivAN4?bnvJ}Nm+c*=}+|EMS$zmfyrYk4YT2I>T?svu%WlT4l&?!^m! zYyl&>kqr&Y;PZ@~`I5`sV10fezYnx;N~_lI@FP|A^g>I^)?9~ECt7?yZ(3T%Df1{9 z_02zv6RK;mOx>=hA2~!T=#+kJbXro*dhEDv7M97ymq$LUG!u1Q4Gu1+uqG~8K6y|$ zoXQy%y^Sqz|CM6q$8u-Z=A1}FA4B-hGHwi(tF5yO0O5dyZco4S7hddcxYr0J?jcWt z;b{Qq;a;vYg#pi)&*9B&MDo@YDzFY?aVh=-dP~9B-~>8g^ZKpmJ$$T(UmGw|BDuCa zPdiDSa@DvzfsO+Isi7;rJ2Jo!?PpnURxRSij5pA6ab*SM=)?A?^MIEDx-8&t4@OlkonzZjn?S>^%7}$;%2|SDc z8ErnGJ*cQsL@1V;BTffNAG0;KUtG|E_Ia?9;@C@xmXrGv_}PLlf}l&rhEpOFc5(!f zR+DIb0YQuw{dDtD#L9vJ@DTpXQ$$FiOF9Cg>=|ir>5v}nW?XwQotnf$9)?1zpr2=d zra+Ou56=AeKNmNcx%OU12~Ki7Q=H%RBo^jOMhsdvT14g}jegZvLX_7>%kV^6kk&=% zC%;g@&DWIXn-XXeXp(z*UwQ#Q!I(`~ye?09D#E)t*M*Wh*ZJ%DiX?Ep^lbNwjO{7V zL8O1LKl%sGx?q=lG#7H`0{!o=i%rGmd$E_y5?&wAOn=UY2w3knk3ZFMy7qtML$J&- zm06;!?pZg}cf=BP?jU|^`$UaDqVSM$NtCj&-_z&W7XGChd+~;m&7@t>nQs|iwKGwX z*nuHuL6g7v8AZw5J}wT5Ss*%9m?}#+d)7@6wa(hruJ@9#-x$MN4@8ls15a4f+d(~< z!0;EI?@O7~WUNCjlSj;~awdy^M46ih$DPl(EZ)fwjE+9|HuobTIPQgKJ8`gnTzv7> zVKS-J30>XEcjBLV5Vxl|vUwczCDaC7Jap7)zS8vx2kaHzV%f7iRpOW!H|XXB<>-^n zqSn9Z&UHdGSYS60zx}er#gyi@RgGqpXe^8I(tx@U+NMMFp8Jz(Ga6X;vOiHc^Xna_qNL`1 zPTc6aW$@2l(&pX;{xe>DrUDOAblB;eVD9=V+54XqX;wT=Niu;c4xZtax7;c@`MB2I zOTYl5a3oWh-2F>0wJ~)g|0h-g!W2;L+&41xIQ&m>)j`xxDAUM6`p!DWp*nA(q;tt} zz1V7CBmgLLxNg86rC$2*zw8Okr}NiYKKA#2J~Ts>gD0Ht{$glFfBt-zM2{n2TTe7o z(iKL(gjv~)y9&g0ZQz4d4B`Q=W7dW5juL2He`Kn1-3Hzu%*c2;XitkM+@gGI-&#W| zNpCAB)@ygL+NAN^KDM-)VqrqzV2q!ek8Kwu1(AYE%y>}$9Dw`cEHQU6ahPZ+70W&? z;hHMAcO9>KA}1qhyL@l^>GC6dQ^Gq(+^xV=x*@|zPs$W#Vgt?rCHPs-yOxej>_BkP zxJ%=2rTZ0R^#{SSL0%*EPznA`+}My>?`lPvU(Av%gZ>4d<@U>nx$?xYfy& zU7@9@Qn5$E2y`VJ03Un|75niyiEu9w(cV|unU%sGCoS=TRi9>yVSOcxlmXDMq~vZK zT5LIkALnVj$M_S?)yti{_v0bY3X65gvLKvkMc~NUA@=FRXIO{3xyUUPN*n&MS1qHa z;j&4tt+NT?DwzZEVBS&;V_KoBT{+3x5?guT4xboX(D(Hp24D6m^e`W3Il=5Eaebr2 z)FRK4JyG-G5fWGIL#( zwf8=*xVVFXq173GaYADJ)yg{LRNnOC=+LGZ=#3)x_T`erp;@Mck2;GiRX$G4wyv7x z&0H`C;F&&&W(rU<(KQ`r5v7KivVqsAqSP=YV0r+)$7<1ds2-7K^{*2M>wYiSAN*4M zxMo0JR490+mOL-JapUO;e;#eK>A+=q`k&M5CvWko%wdk#m;a+A|Hq@AQ4w-NK7Ep* z@98_2AQVf|we+J8TKDfI8{ z0QZGrVO70n?`*G0dOgunIc9Lg*@Y`bY zJh}}e!j{d?{f|R|wLE?E*xaU9`|AxIg5&OvEwtRz{d+#r6W*F)F8yb7ZtMB(E$|)g z#|FO;-%T}S$;*a5@$#uN4yWc#ViOGNs-W5$h+=;Ap<|{l3Ca@Lg^K_y$BRB=U2)l@ z%HT?Nd#8I73r6&erHG&6}>q2YdKPSK-UKpYEGg-Q3>2AefZ>?L-0Pmg~8yak7nQfQouGm zG5e_9pEI7(oPH{00wAE$!Urq|pC0sS z-~b>d_aq5UPQ29J*hFII?T$X9V{g0}6>okt_iC0$!TT&~lso50wwRcDaqblC%&UDW zeA{+VRPHMoGZ(qr?Y@qRX|cNl^c%EL?bei*lc|62F?0UD;mR^M{YHyM?+#<+C|PbR z^LH2t{-~dGE+rbCcpVxI(47=}@}L+kk7)s5L2AE;Gdkb*uAFdD$< zcpb;ce$wyY_BbtOM{2t1ft5L`^Y^;B3U@SxdgH}Avs5JGJJ)D9g~NHv z!*y2fNDkScqHPX*%IZ9y5juhp9KGHxJAVS!w@QFU4{w?r9FeSu`>b2>7V&9v+L{>J za$YHHTp#u#fGZ4DPhnwjwZmVZc6d`v#zW7LG-N>dfIka-+M2L|L`Ccw8&Ed;Jl}1e z6=?da75SVL@WY1i@0Spku&2M5zWw{E$M#U^bi4J|(#)50hy`=xw#ka9HmCAqFy4^E z+eelq%$35|0lkf}k;mwCF7cGD$ZIyCV8Ajft$C2b3rk3VEZ{mP=nyj2{ugg5QURC* zqi299b*>ZPlZ?PNAH)kb`l73-hIdsMnX&y~aX?tF$B>71D!o3M8N@K(K*pYv$o;TS zy&|q17$$;l+<8vf=QzHHeHyQ#D^j!3v_}|~VpXV67KAi6$x*sw|HPMG%(2CP2Rq(Jo z{rJ@p78x0xv#a6)5&_>g4@i!8s7cWZz^Bcg=w{#RxkthMuBKG zcu;sL98R2rFY}fA2eAG9%Tr_v&wb7@ zUV;fzy6T1u&}*Ex0A5C;L=`mVKPT~_7d4D~wVad5ar(X8Nufo6^5V6?t}GAr@0`@Z zO|fxE+)9O@3nI7cIE+B|CkTko&O)6 zw!Z3ydne978XWfa<#NO@8gvu!F@&WNpO6^PYA+tlxr6^X#$;t`N+Sk9FQ7)=8z8>o z3egcKT=uTH-|nBLi_=_JaeHj~wiHss!-rvhyH z<`Z>BJjhxE4xDJ-dz6Vnw68I`Ei4trHp5GWX|c3{dXjsr2z^0s3WSlsUK;I+ZDgy&iFL@S;^sYFw`U5Of}h2Kz2f2s1Ctm~UvH2ij5^?xMJ7`I zF{Nv&`L}o4nC8R<>jP1v7&7oew-M|f&E9U`Pcl&dsZ)RFn~xWpw^#p@gUdhZ+Y5|& z7yloIl5K<4>4*FnKDE^=UhvvWvb~`5-(*A-6(q;r_OtX^O!+ltE=6Z;OhT(O zU#ZzJC&Gw&iDsx14Z>R`FL1P|-G`T9K z#zC+oc)Z;%D5GuATebXwQBgpI;3-&-iSJy4m4iZBfZ3sEIwVF1c&NFs^x^^&Dc_XE zZ*lEab;MVPWGVku;TJ)`H@G%t;I;+c@*D}*QiQy|W`U>=ZRG8fsvl9{M3A~#O51uI z|I@}D_AFRTGOed0?{-}t@M#6ScqbV#9_m(OGB-4T(Wx1ArF+7+XGsdgBn)!eaEl-m zE}q|a00(?vjPBT#v-omXDAqAQsl&*}!@~+VWvQ~C++6@-lvNI zk$1KdrnW5Al!Ul}UTDWs_=L=5gjW-oJTNgyan#J_?$9qU2)@W8KB~n z2r{r8GRNIlwhWjPh*%*Y7}!3H-b*dK_lM;bPx{$d*OlM zwhl@w(kYRwh`sTlN?h!@S7+Wz(G z0f}hmfO2Fk@t6Z#L~jCL{}>Rd7>Ngw$i?CZVO%}HYG-Yp9O$n6tg@Y->()4n+R0G=x`?hO)OU`&ZX{&YD+rP zgy$w^9B1$V#5Sw&0W4oouY-#=GSUG1Ag#wfygc!)BPUedUXY;;9Lr9xx6C)X7CtB% zb22@_Se&?ehuK25u{ybxv}-fW&bd)EWh>N6%BTg-AOosgPQ0>{E%0rx#1fk`9W}*1Bt(JJ6Ho zncNaB&aXCv$t(gb-cLMJZ?J;jc7%U`3c(PNSNd*S_N%E06{nSU-`YzVoq74^TPN^} zwVGY7v@}aJVNDOMQiTrKefk|W+#iX^xhQy!!$XefH!PEHf({+JvMYq9%Ptg8fPED8 zc!w8PpUZJmL&2V)<`WZyl3%EpYTLh)i3S!0_*-!aPP{K-K&_Z@R}I=rsq!FiuL2hI z;IDuon@8Z2vVXWDvdu58IcQ8m0)osms6?L>(hZjuOMrv9d?1-tF{z) zr!Z?pn3kz_fwv3tE06k@4e1F*_9Isop#u&zAWsf~V{35FmKs2FE5{1SGdFB2q}tze zGq|!}%9sGYZp_I|4eFVEo}6PoAV%@K!{IiiPe})ZBe&Sl`XMlglg~}(|C$cpr^EqZ z>C}uUPy5)dk|TxB`E0g^S;bE)hiU(1(31jVbz5wzLp9VYy}a2^yVn1y&v@o5MUzfz z&$-*N37Y(z-4>%v)XC@Z6C+cuRw44h?(sQ)=i#RoFmAK^jyrZL#aznfbcY6Dx`>(( zB~jU>Z?(`aE)YxSpEm3bdL?)TsIe~xVXnQTg*75Usl|6%AePFY>OF8tI9zqiQH-JCaaDD=eyz%UO-_+by^9 z!?L3Ttrj{?7kSgnb78B8dGGs9IEnMP!+EU#0uX) zyWd@Y#?J4C6QE3^-4Ehl(=e42%(9If=J+C3^CNRgb@a3FZ>{SK)~6z&++Z7V#y!F3 zM8yXEtY>FB0B0;fmSHkw?%LNLDj{`!=M1svpM?=*9&7-^852d%^5g{bQtmcE#@rOpW^BY?TVc# z{WWWV1`; z06Bug=_<|feKmky$XFlm-JT9QW5sy<5J#`Or^=FzA|8 z5C?A%%b%+bdrH#FK)g^kAt4%Fu<0%laH0f0RtGeryQ^syh6SRg~?%Z7Q z3ifENQoHthx7VPM|DsYvkWMv6&f1lINOuV!f1}Liblta;s9ULj4lwZ zVw6qR59<37$y5P{hc1pi&Os_vS7Fn)uJRT8=)AvQA7&OjFy=cEFX2k!S#4 zd=~ZDsmZ_XE!Lk@d_O`h&fS0SHK!IeGqNYd8(Ovnp>w{l=D?igDVr(i_c5Isd2gLk z+7|M^ki>X+Ke`dUWTwYQJ?_Q+DHAUwu`}K=-XBwg_!uJ^3+~d67*;s$r3`V1Wuc zGRTXsTcv);C@|ML^wm>UZ}iv2RsdS0#`*!w5g^&}P2!H9*9;y~0k|DZo7s3_PHtc{ zAH*>I&Ue7uUA5H-7zdR2@@kh3{Q^WXBV%}sl##SqsCk=Y=eO3j5z9-fG+Le@PVEao zl78q^C5Yq<*J_^48KTNebH?2oxzc*TxpsX7_1LiH$$L{DfH5B;D~yt3hW{%GT!Is( zHX_PD;5||Z9S1dOs@WqsBTn!9^p zycMbWCqQqp;#6c|6;q7Ck>CdzqOOk^Ns)co-%!gXrXDc@?OHYgI57?LKIcQ1}O$kl(we0FBpNRg98b`T~1z4f_@ z*JCXiI%adBPwhAF&HL9;Vk6w&MlZnc-}Z4s>qu;qObtTxU~p|OZQ>o3+Ko~d9eDN= znPTbI3%HVpU(t^UvL8p4EY7cfDJ~d}T1V$a>9H$i=@a({)lQxo19(=b&YwRlG>B{M zmgRQd8N!%SKs{Pz40T7&g32*h_))f)atQ*SE8*Jd$WwP7<|~NJLr1|!i8oYmY8*hd zl3RppQC}tonugwM%y?g@!Fc)P$^9j6ZEF_obh-^|6;Z1pR_}4~xEpCYt`jp&n5``C zEK361L>jm#^7p*7J{W*P(R+}7wvO?y2N|Q6sN>=PfWp#dKNzCWO(YUz8H8fPuR$@Y^{!=q z+Zt$zdXGKYfM(6K$4HYaI^*}&AF4BVjl>CGL#skh>*(9iQDfWo7mElx`uCh4vZ~D!OsTusN=tk%G6`xQAVWh{9sZH&EVlTA5D!%Q6XH z`&NnG;Ej9<_5dx%+ZFn6*t^ut2_5_Q6pXi$EE+!;q5PX;vmBf4S^R-zYO{M{0Eh{I zP;APc^BwQ>IF=E<1)kjxssvMP@iDWDuR@}bG$Ck8%cutuOKLC=W13t5(l@{JfI7G= z7~18>&G+-<+9ilbYnQyuENEku(zfrfN<29qE=UzPUGW<;Y&}-=P70@_aRd#2r#^)E zl4U?S^9>~9XnIFq>W+isp4*&#PZz;mqE;vJ7MO?DaRBt%#2IJ+2Joo|Yi_gvT8yo# zq6n(IUZl#^J-qg(oGNP4>7**IJwAs^NKKcT&S-=2RC!e<_nTU<;G2J1HOt&qPUD4n za&GQfGE6G7Y!-JqXduq`Ta~0ihc4Hn5oYNDJ{#5i-1Gb$n7$j=V6igd1B?wVh zUGg07v}FdYcRDTs=pHyJ8`hDd$*xtzZ%rI9b!Es958qP7Q~-4|-{5BTeB^D|n_XDf zLnUJju#;hl^~z*W+m$s_ROa~!t*le_Jgr=kcKok;$+Ban-bKrMFZJXb8x!)rf7JmI zk9`QQ;6l};ZDHH^Gb5S4`ygh3@3wtuY&J4aK|q-Z4D|5Jt1xR&D9XBl~)i^hU9<4TO)Q|$KHOm zq%ueLQ)P~}I9Hi({w%j~!y`?X4K1xG+9{*WmhC1+=FF1|LjkrZ&A3u@u~Pdz28lhV z1(|(%;{$9delc}O~>*d`!Ly>51m$RVwDSZCp z)CStR8*z4M3(v_v4EB2b{U(sud=>Y%!zIo@PGaN*Dm+4_-wc&nWi#r$xQX?>^IkO> z0@b$fOme~PLOS;# zD#>==Pm>&}uNNJ`|4x{~wpoG9;L>oiIRFxRe81AhL2${*@K^mb}rPI@*oNnbWAmsI_KVLSp5&w{BCu{l-XT0 z?!>uiec)aO+?5?^^hETEV$;io92h+^LrcFxB=}NFvQ7Mt9ozJHB6s&$LOE?8=o7rI zBzZfzwHosAUTIzN{m8No;hC=+?x`PlEMt?j`h$<{T-Ar3IP-BuH?nsD|1av(icS=ytg^)akC@L( zDON}3{G2wl^?KV6S(Fa+1612ig^Hv8qxvbfFSW_-Ig4sO58Q9f4AAe+0GS0Nk4a6G z*Y%7d6#Qx5zRN7`%)6a>T@2Oy)N`CVR{~qk115(vqpUqH2D-nL20I`Lo0+}Ok6fn9tt5P zg-2Dl7bw1=qwM5Y^DPiYLq=wL>AvMZTp!80V9_;+1~bj^?B2^vlkr|vn3>;gB({Vh z5s_n}`N2FG(JXd!;@N5A1i(3adC492HGVF`6iK~J^6LQhV)&4e8eh|-WD;2xUpyHZ zaI&e5?g^8Vsm9S>On9|znvPyc?rjt=SE1T?snyf~r0OXMin{>~i~GuRa`L-(lN}x` z74YAXLeKq19+#_2F`q}rxN?#D$&eIXH!z`@0Enq^75U(wdqg;Rg)rI)K;Dr2o7w@X zN&P8~(Mk9uf`De!wx6B!ojMEb>5m^5fV>%*Db;kR|2~o($|Hbpxb<|f>#GH|x$Gy7 z$mh=Z zfCW;Kb*wt;!QZy3wI_y<&PVFZe$AN!rk(#ji`;>t`XnllOr+Z^j8i8SPwa-x@9~N5 zP|*6kC>w9p0G)E)CE{931TrV-Q}(lTo)Uopl>pIQ)ZMDKfc6mS$x}yK;{PAnja7*@@y6tm)zKo30|jBfmTu3fzk9s z%Uz2a$>)nWfBho&q{k(nt9%swkj%;@-!UWEHV9>(@hhgZB4ho}Wc(A(*BBK2q7SsH zSK2sU%3g>9h!e5weE8p-PVMp0R1aS|fa1w}-%gAeY=XMi*5U(rh$gorS=`~;`YNm| z|7B|9zCDmZ9cN@y2PYDa?jf<~=OUsg@XG?F@pEtW)||Mi>&Aq_iBWpFcyAEPmmjS# zgrz$9irt?v_j!?HhInqUYzM#|e-m>49+Ff>pXJE*zC!2Qw2Z6v5Nu+%=Tg0DQqG-K z1YumdUDLJh)%%4X>U)E zK3-hn5~>hSnCeBrC{@h0b+9oIo>mcp#IzD9P5h7Bf4?MO1W%vfg{NVbEd z<++D&EID*?vrDMQ-mDQ$Sjkbn*Jh}mw}J7vn=iQW%|yHOS?9~@s0KKJw{3^TmVI?5 z8T?Rq#9eIu$Ok)rF7`Or1GAlp31^?0#0<}8R*@CWso=A@UfMW15Tyb}CC7z%dO%1z z;JdYFWF<1D2irb28nCU*4fP8CvWUN0#0!>-uy{ji6LR1C;OSR3m(#jAE{}#h9z8-m zyLZ1&0&!={wDX})c192Kp|PliKi9@kN|+itTj5}J>V-~i9p;7_2EIojijl9~GDRCP z($LV+d^ue+c+auJg+@SWAlbdJ=+dvE%iNgu`Bqx(yw7+QW#v6LUK$w^ydnUpODt?x zl1<6%m`@#^d+U>N^CGXgSx~hVNa>g&t?eZ8C#Gq*KtsmgN7$FUufZuf)OGJ^23dbg zuf~u~^pJpeW5!KyatjThXirxSb`~W1D7apC{<)ZJ7L~+T#j2gX?A}~Zd3?XI<!4Dw~xvRxCGQl-uM3*_%z z57*qv7^a>AF(2UBfuvXsaqzKt@?`9->XwrHyN;1YhBtzx+?I9PP{PZ9#JXB**CKZG z?_DuLu9?Q}p8hm<-nbq3y`-Jdg(;kB9r5q?<~}r)keti;o|X9}-00r*$*gH+&bPE( zWtO1^+_nwOjn{)3rX%#}M_kac=YICKdO}Bs_1l=Bg)ypMj(kgaTRmQ^*F<>8oXeX7 znQNxmj0=sM7N@zoIyy>?Qh7I*p5USumKsYlg)>@Ro(3#@*ycOcKhuaUiHJl4k-RCzR>b7t9Z0-*p|G5!=j;U41lupEfufI=<}ZZ0 zUW8KTVh`?<+01jpvD8#%8MGACoUp|ZAa5pT@t}NN@J9_HKm<^2tY?0bAeUa{j z^LZkmRKe=8v^2n^O|+28GbK>lH^CaF^osc=8ZQiu{@}n=RH8*=?@T_y+8fq+&B6fQ z=pVVZ6`Zz!JrtjA{23M9xq8(nBQO%k(4U(p5|hu$Jn$C>bl8y(!W(Xou9hYhm*YbR zAC*)cr5~?Cc!RHpvnq_iYyU$n-cLCrYOu5NY{@CAZ zm(-j*YCKwDMg~BX9bdAXdHp=%|FW*tpbNqNv%tlzmmE89(0qq~&{R<5u5CRxgF>p8 z;O+!rNcFp%K2G1Y&j=l~m3vI=jhDCp0tgU!md3_Z4*xtpJO6z%-m_yaz(A zvXN8W1GckO+}6>$Mq8RU|J)ln!n1JN*d(Q=Yhj>N{xxfH(-gt-Ldmq6jJ3=6^>PSZCAZY`>n`OL?X9nJ$w;ssp*( zTH4q->MdPd|G=o?wjMRhpXjEW`&Y%}F-VRl>ed+Ci-7j|b@<5QJ+NFXqw|)BOq+xX zp^7#Gv15cE_?P&KV8p!B`7U#71x)$)X}|W-5~X{uxOAheGu0triFMcvXE5F)23stf z<5z0*@rbdJ-IlctIo0oB_?qS$sCdg_>Z6u%SwMq${@3bdaf!|j`ywX|87qK0bGDr> z#(ULKbBM?u{}WNBseQzdV0b9TC2;{jbufd7WS??xaL#Rc#<8YF>BoB<7F}r6;W#(G z|Hf9F{%`OJUl*G*{@~*EugxujFg)IPwx{?bQew8!yz_Mm_cqC^ck=MMKNT&}`ua~} zR7eAp^o6?ClsraNVDT|uXl-@p{^orWqqc|jhRe+pZDWvy2^H-!`T{#;0c*E+mkmD& zohbi!P`{S_)qcyW^UKw9z0u#geP9CgCF4LWZFjyrp@i~}G&!w$aG#iOWhwgQUNzS$ znO{~ONlG-tMwqBrbDY+A=d5l(|fqyM-*-u8Q<9!SL~Q9>bXBek5u>+dE0b-Cxpg0QmEj?jg8h9#-8)XSWU z1jU;R2CO+P99nk+TLz)9Y-0&$=1v#hi~&~2x6DZ2RUX+$J4a8U;& za7DuT-Av*2%w4-YUrt^0c$qk2Gs-zn>y3$NgDh9L9W=nkinxE0W{jkK7Bvp4`2i#n z*T2opp27UXAznKxYN=ewQ1@la$(=I-dZyV~a0|67b2s{B2p z>Tg0vJp>D@VvZ@UP-iI(l6&Q)5VJd!@kx!ZM*oHz2T_R(tzk_ztYjURE2WDk1UP?nM~3!6mm9T_VY%=yz8`&K{d8 z&I_4scNC0ypBS$+@eea+aE$5kpU=Da4-?L8%+FbF@Ne@#kPk4(A}wlHb}l(JqmF-k zmpL^Uk=ZD$`MqnS={X6dVj{R(AKNIhHCqCM{Y|@O`JakfWwHpC9=r(6bk~~%9Q+_Y z0uo$?D{yP%ge_6S{@oZ9&3k6?r!Kl!`smjc@Y=T#scnVbUO(Vv5dSo3PLqpC1WV;a zquUDVoFmH3bIxZK)nP&UR_I_saLK^r(3gxIOE#+ZHYTLbRsY@U!=nLDV|(L&rHJS~c8F@v>WMlpkOL?z z#AM|*`mH#xU9${!EUu=2pXmv5{)s4*2*&Zv5M#2N368m%D{g_9-;?6GB}(UShMe3Q zrNrf#6$t7r*%Bf*Z8R}M)fDP5Odxyp(oAi+hql4S*;;U`B3|bh)-1endHa?Yvim zty3IOUMsFjuP?jAJWaPuWdJh*P$93^ylt;dePut?YSIV!tCly$ey(hZ22s2tszuSJ zjxho3T$@bcsItsU8C>5A3SFp#NUo2SwM@MZrq1Yo^8L)5{qpRkN0oSf$>F$apahGc z7TYA?0dwk_^Q1zS5C5`tk*U{ynsCqMW<6h(PaYmAyE8i?>57ZMD7c*D(a*^eo_+s= zy_)k12TiBW)nyqp4#3zzQ7LUCBj*&yMEPW~S=V0@1C%UH9g#LL*KEcCaV{-`@LheM zC=Yf6<81D0sm8AmfsKp-f((Z3ki_hs*_74H3gNtgS%n8XFV9K~Srhv^CiU{u0^HDr z%Hti(QKqS@xev5x{rA3-a^tQpkfZbYmCh`G!agbc4PVpaU&cP3@=cOTIxSYSOl$mF)>R0NQlB2M$=b6c`b#-vtuk?n z{FDrPwBgQ!(uQZh@B)~z$gQCA_Qfo6YT4^tsG?5X%QY>rdSw|MxA{gRbv7(F0!jJW zl!n^~jN#Sy`}P{zVI@XRl3fwn<%Hj<94U_>Mt^@yf$Bn)YcpA2AJloa$_uhj`u9fQ z$4InLf1zAjhw0y`v+?j&Dko6qG9ip~w?x5K#$)Y!DuCs>kXFw*USPIUd$^d`CFkee zcCgO{yw=+DwIz_o#TFI&u4SAim^7aLTYS+)nENqyaby2nWTaO^@8TJpLq_xh>_`Rc zgAKtw@B4J!XQG$-+{J+*9( zuGi}iJJfDPw0fo;8@^+~5+#@wTuqIJTozh}X_m7sv?j6RWfA|&FtDyIHG}*cvErk& zJAcwI?ahQJnz|PHlpOs~3Dq+51JAYhR__6l`BNtma(gzfR_qds-6$@4mCb?jOgiEI zfTS*4dFSubKkj3<>p4Iji;EXxXRFND1&i`Pv{hV`BlkS_N>84KX6m3Z>6XaH0WlGA zPLl6(9?iSQ68k60qf{uE#n|)8Sc`SUbHO(KVIWTr5&Z~+-cI*Im zkifxr3{a2NIr4Tr@21nLZP@LwrUI~t)+@YGbFCcH^d-U|wqlAKkZesdN9fIyipf9P zmULyOlVhY6JH2<6Vb{(}@e#sfP8(^{OCGWntsgm^uQpw^CmJ3&VaJ;fj0~p&n%Qm6 z6u+sMaYT{u*4L@?#F`ri5VLS<6XF7t9LR)*DF_X+)H6S5-gZ#XD@rkh!m@AUHkh~v z-;(j)Dj#pNKdb5TG@K&0;Gnj)a;lLdD=jX7E0a}=^E!J|AB$7IKU+s6h*NWF7_+th z@>p*8F{V!YSP97-H242_I;*I*+AdlL5ANy=ijJ5L_M)G!VM_3* zK)FSqwsg>&nNFOXwAmTPUE{l0nGt@@n5%^mDa#2>A;ApzwacW~^|1_CCGG;g1koVd4 z#*()zjz3l-aKLQ&Bwp1Jg?kvj@>_r<#jbb;)sZu9Q@dyIv>VBAe+t%d+1H}D7Ef@4 zzcZb2(nc`U-iu0xzeqbr_T;rVadx4TO8Xi>rm+}|;3ROhYSS5K`&|-uQN6pbw@QH= zNOd#t{H??1&hua1oq*$+{iQ8Fw=7}DR%?JbcH*>~R_d7daf_2;37drMWo%k^Z@W&An|HobD3!e9&! z%?xRO_c`pa05Y_;vVUN61k<~Hd(G!qCoWS_A0?yX?XQ5xW{S#*D_|<&dlHQn=Ub*| zCMCrSbig6Ge~(mlomI})&mK8KoecOB%>q=kMkf|0?`=D;zr_PC%{+;tz9)}nh)+C# z$Et}lEev+=O=IgSSB>Jmry4GDufl?}yjzT_DNt2}#YEi4+>4m)T#&w^?t7@UHs-W- ze0KBfdLCHIHCT&|)JO+{Qkt1r{>J|oQW$2}5xQ3;|M$g@FK+;Ur4FaTOA0;b$zxgJ zin=Z^UKPQK>4a+-u>J=Q_j$&~Ze^5Oz^zSVPUAX#7o@xfy1QkW(%#ueob!Jr@@YNN zm3L*BtNOLZ1rI~mV!Tp;-$l_5%t!k@?cLVoGo3$Ph5uOS*2<6ULv# z8FkrBsbJS^zpF>c>5U{}5TvpCm~)nFzwm}Sa#i83?+P%&q-7T+I#Yf6+F8tmC0;B% zidn^>7_h9h`_1Bw(2z1l`PM<-IE~2#*Nn4jrgcFR5%aLn#R5i#H84snNM%;o;uuA= z12&QnE#8Tn&pvTKxaF1P=cZS=0@&rXb+OPgR?>m+0O>B&^2m^77q@e0n~`g~ps?bG zjq;m&d(xwGD;kt)chJv;JZ;cAjp%J8bqz&N{#h-Zv5ADnumA3x@v{(3tL{*21fG%C7VHwtT6c$*Y zMonr|*qRd68sw^XC$_STNgy|K{P%B_wTOw9AO9s61M2G9w!cCR8&(7`H(4Kv2%*0} zAL2vU?X|LamyLEph7=)TCOD~~wK#q>3#=!V(9Z}**+!VWmTg=qtz6qw&KM-9#UCiJ zOy0nb4A|xB)XOy#m_dfCNCTE@`u#Nn4tUwlwaF^c`*e8pq-f{`V;5!q{F)Ll@DKk^SF+##urn?I-$o4>OoM%cY&- zYOgz2V;NxIOVRuGt5d*Cj$R{PddXDS?dR#QtF%s;@KEpt^3u{#HSlQtq#PO@5c=x< z^o)@p{bc(vN?WCw{#|Cw9Ea)(yEJ1`k2nQ<==N(wtthB?4z4H9)-g*zBJ)+t3Bt5^ zvK@+dA2k5^K88k%%chyB%_FYjw#?>$_&&xp>z1YDW|LCqW8gD;{_1k_h#r7L(By#% zhL02u8OLaKdhh78H5H4tY_3ZP!ga3#Q7TrK6II8ouU)B>0+8sh-+Usd5y@Yz0P=YK znyYJ@0gSh*v8H}X7%^4`gx{=GsI*-Q$R}p}T#khE9dITkdwBe=Xm&f!1f%Oh2K^e! zvs(vlP6Vm~Z)y4JM~0T?;s}tI1h0o8ckg_FLJgp^>D{Mum$z8^5{gQz>WXXXc4qZg zv{x5cPt3%~wu~)@n(02;xu(stO1??z_GYoX!u_t0G)i(xzx@`K7Z~Amu0xy0O7=y+ zYNj~=)xB=t*j&vFqfjL(CUba}h}Ld95+DAhsEeX?AHaa`s}Oy4UZ7dv5_;6Z!mi1w z4cts@s1zcK`sL5<)@StA#}?ayY({iZ z4v%OkE2(JHH~fLbXlB;DY}ZPpoyjR3F4QWae6QFgS{Q$34Fz~I%$=l%W;U`Pd%f=q)0m{$mVFP?ex>0l9)$c7 zI{vlD^qn}?Ug1cLA$`SglPT`T`EHAS&To%mc&Di~l0UYRRqbL5y@S$vZb}w?=EjtP zrb}>yC|ZI?pdGJ4iN%3kJbf|_$#7`R3oy#KrcXIKN4Mf{?8$cwGiq1-;i9d-@Qg^KXeX7st%&D#*jk-P{MEx&Ev-)^VeE&BprZjaoORQk! zTUXv}dX1f85hnY*&6|f%fXs=b=~WQ!52N}{YbUj)%e!+~wZb;^DY89t;#g4D06pNH zD)A}4;`zJ_O2e+w=anM9&#;4gu8r; zJ@S)U{_>(*-iB7ZHHw4rL9;LJkB~UxrZBSK*d}kPE|0~Ath-i=DUMD}H8Y7oX)3MH zyLbBzv-+>iiThP0=-c87cI@^^^HoB3L-kb{K3fvGtNh!~*^tqUL26>OcJq|ER-b&j zvxWdiqQ)_@f*~(_R`iaer`vY#lfuqEsVdDx`D^@Q!q6$@ked<6Wk3Jryvq8>_Dh{y zyNFs>AyS~d8dV!13|l6X?dtvr*1DD!>S{ZQJmc6d9m0r%~+VLcsY#rE$H z)9AQg5FG2t_$mUME5sVM%cL%uc8E>66%1wM*_HjwF@n5i4JqSXeHzXfxJWCC=BLN1 zbSRYC()-bCrZ_DT>OymU-Q`DtRovCB@qzz%f~nqx>7z{gGC*aK-jsAYic@?{=5ZBH z({!5c4a_S1j{`94eQv-H-I|!V#f~BzLkBR}i#P|pIGz87`HFO#tZ2fb4Hy9+hbNwg21|7~NB>xm3sMz&r%yb=#zet39* zMgy>;C)Blj_1AafzxiJ-RUJaR@jo^BOY9W#U;F2E&cBAmfnFDd)0F@^^f>5_yvl9o z$500!Jy7aZMogjl+yVf=uguy}p_yRAO@9Wzm!8h`E&pGF3zTSyNefK3X3G!!02X67 zj1{IXwB}5v2K%i*NGAwmb#ItLhbH!Sj{g}dx+w}!D9vMI`=o$>W-z+NzNmad^J&a1 z<8E37_#zA$vAI_T9pSV_6KF()RqLsK`@+Tj>|355*DZ(9CL(Wbqg0n(`ei@D7tS#_6ybgsVF?w?o7 zz|>HYE=5H_iTZ_>+ls<&GNZqNij4n??hQFk1dMrI!i{TGzQ(F(v%uVd>6oMU=t_0ZfSh5ddLrYFD1*-M_^i zvIbq_GkI*}!so%`?a*XV5trJ5jJz?SOfAc#;;Yg$0DT15RI?_wkQP)WmPrBLvR6HCvi(MSIAKbGwmoov^++?DiH7c*5K9g zJ6G>#_Nw;lv3dV1gr6@{L4)%;#Vj9^)B!m3YtYS0`9i&D%SlgvhrzS6dXV#vG(o;M zZ~oILL6n3dvnyku9D|20zEO%Toceo&wMVQzqnD#CRi#jGhf)*J<4NmLbG&(MeHI%z z(R)38;@&mf4dJEEK~`k?qAM#mdpvqFyXrS0)PILvP{-VK)5hy3(jvOdz(Xb%)|$G?@%Qp!oo1EopoQ9yrAIs5621*U#=NJ1Ycrc#g8KLzbJ#c= zY;=%!O;FJWvlepV9Nm$S7{mTG%-)7hN7gRLl03zcgMOliV59>sJZA zH_=D*^vc{zxO<-xkBr`rs3amgsg-?eiJ~z8l)L^&G8DFoWb#`klNc9{hv4pIJgqfR4F5F1A+i(^iztVR!E+P=+6({**dJNLRNxH=WTIM*L{I#Vj1%_= z1J+W{+%Y!j!(BYgx7H(4n~S=;&S`LuV&fSK;?lF%El(oSq^iScXYwnn8^>=7Y<@;v zcp~c(^0-Dgx0VkD&GllRs*d$o)R{@KQLwc1;7Ef3IBdj&KkCNuN?wt}`eO`ghg1dC zs>~{{jZEiF1PSl5IsPZWrX95@zrN`CmtqpxA0oA2+F2kC zomx*3T+~%VnR5y@*FUvm*K|%)A=yIgZUH(ljR#dzirJc|bBx>iwzm<|kBKk(_V;LN zOv2fIx?#oGua%%yvf^2*+n0HzL}<|3`V6Fb56ya1mx+}O*E{4S6BUWm0Xdb`_Wmn) zI$BJ=yW6{J5l6DSeX%#|NNu{(noNB+(?u2;NC+}%b@XT`nu;OI*vhYXhe2~FXKK#0 zp_>xDsJ+}OtJt+(J!j)K_$MTw9=ZxiP+JZH9u^)xU90pLC zk+U_jXz${pvlG`E6jNw!q@~XGz^jD+0IU)e@djrMjQeE$HM!N#`lVY0+HJ8;6KLA_ zh>i!|TBD74+VG`ot%G{+eq5&=_}W1-p54fjm?`~;sO5Ie(84dD%GTl?(jfU|JH;Ip zOp|RO+|Jt4ZpVSV)RT@=v@8R%y?p~l{xw5VJPYcz8mL*9iEcvjV3HCh11OFW*3WoRPbp;BxukyW+gCqK)AcetSq zl9HLK{o>c_r5z%W&~`gI;^#*;mg_a#6p5k@zg_UJA~w>pkI1J~T!>5t^$7M@AQ5tD zx<3v{_FizjB6$2<(JK{0);UR~H1?~qitbOttZ~3zlYX9_fI61_0ARok#YSp?INg5sF%WVhN z^z;70jB>9`mRVo@Tvj$|C+tR;WQjrD2k<${zQ9TIMbQywv< zM0XAIESc@}oDsSHNbMnij9kgeogJeE#1$sWRU_#nkAjPen9)PI9?N8fvwC!xb<*4N zl_xh#UF?}I^Lb9W3M~5)rbj@-cUl>8y)`jh7mUL<3in~tN0lrhuPH}QFduZSDY<}p zhqAADBm|8Nx)^(m>~kbbxR@)w#TH9hHLKVsq-ju5NF6IzO6 z6~|a3QNp6x$L^?2pGBR&vWkaheofMMjxupeI$-N5sK~m_Jz*y`K~edU=~09Z#q~XS zk0q+3TfmPWYojv5RP*cV*Xffh!wJvyOzv{*)?@rA+Xni8vNa7={>kB|IMu=p6ws( zkemogZCVgJ@W|otY7;bM?w!@-{0hOSB;;%7@PgDXAa>G#5#8=$H?;O1FaoU%8sz+g zva7h0jS;)uYllK0 zORfv4N{mX=9-sVqy4#^PLA$~Z`WG+JJr(rS(S7goB2GfEBE7C=~0J0#Asi${JfVgNn4BU#YcZ(XIPf9 z+XzArJ(6N&p2n3V=5y@yx%w5MFt*zjL1JmJwV#c~>=)M}Mlpf`dS-*%1>O^%1lmnx z;URh6D{jZd`XbRLUH?}tretPOGw6H@{0|%b52&5}e5HJi=>Pt&&VhtkERdXQft$%%`E*m3;Yfzc?WOR=)o-s2~CQ!lPWL>w*fNT2cNFtM`? z>=rm0hO+&X3WJ_VGMUAo>+i93UF{KYz%-ql>B3}dAQ8tD4Ct&v1sWQ{3=JV#ww?~i zyNRkcXQN-THe+=JiRszF$g@WczXp|fuV!eJ+5e8xBAwX|iy=`nV-KoW;|4E-q!m4O zXoQvJ9a_}f^A3y-%HqF~9~`IWQ)oBBj9E0hSFSflYn7Y))F(oN-{D_&4_)V5lGzC5 zAWtQ^AJl#hpTCB0AkX(_x)FvEZFA!j+#i9t-n}o`bQG+YVvC@y_dD>P!^hqh9%+1& zkz%cbPZIalf0hE-A%|gPTp4?A&X{~Cl>D~rLxjYB>PKeJgy|)LFgz?Rxa}XV$st5# zIqt7Q?P~=o9&ZQ83u5TkCj`-m{_uI*SUiwu3e#VgiJ#po8n{Y)6-EPmVQH}KW zmXbIRRAo-BG#q8YZY)gS8g|Dyy;5GRuu*OH03c{8dDPsgKA~XPVq^tF=q{e&5Z^jj8Tj-3?JdJ>05f4 zxA3sr<;KoVX&YhL{jhve9=#_eQ_EJu4T>T)n%?l)R)5v?2UOvoc?+giZvN4}?&1DE z;y0~t3gw9@k(vTEvKJO#`6qM3GoTTlC|KI{o%KMp1Z8oh}br|82r=0pobWSlU9 zIrqB~>)v|*`CS%4Q_1s79oq7E--?X&WE{0FuZFubj}#(smSXJPMds}?lxywlecD)+ z4PiaQ$LiQa?I?*cv{Gdtr>-tRW>;vAqRJDf0uT4ds z_b+(g!gGpE+;embI(HF*^w2)rf=kU+KVaHTA!#LeGca>Dlrsta#_YZK*w#@D>`-u( z=VF@LA=@b+Gl_R>4ii`z%)I-s%lGa-kMymcpo@-y>K+Mnke&E#w z?(%bu4*?h{npVzXIIhBEy)CerDux;#LWb&>6 znrT74;?pDFHLRs_!?zZx23wrvX40Yc2AbrYtj<~l3kbV-fYZ_=$VD*31%(%bid zVaii?ccYE`Bj?iZ>HvkZQdpDx;FrEsivI>$`JhB9f;So*(wU@+sTeMgDV_33oZfIF zmSG@CFZG+G>$M`Tfw zmW;@&=1u+ykC{A=KUl+e`z^pSRK_3t4wc%k_Ha#CQ@jsO+J1kYBISVQ#!JLk`Q^`D zNR4cgYKgs?hKrk|q^n0n`(l@f!Ut6KUi(@;(rL3b0SzriZy8xHha7l_GJ&^M&Qxsl zD=fv_6{~{q*A9(lI)M`{Lgk^nV(`8v2m}Qw$x7+$M%iW5+)Fc~W1krWv%LX!wVj&b z@ago3f0;(OqPSOth}6Ok_=V&iNgCqs)$n&vzV?48`*q}F@m=M|7bhhrQbLA)G^>Qs z6x&+|NhN^tWUSXS?N^}f#&XvlI*Q@($Q9C{xU1m5M166O|M5^s4(Y{W;5rNa!9J30 z2q+%BQ%IQ#cgNFE>c+^E>2*Xj^#1}6vw&Lt6hX8m>bb!dOxULSU@(bC&1x)Srx;#! zt7!9~c0(D3+@Y~K@1flnH%qnD_XB&G5g(UFO0vD#-;HLHm=zYrDrA*#Tv?Y}EcvfR zp)vEscp&15ZZ?j8z!6@1&yz0p=5fi$p04C}n!Edh-dMH#m`o1YBAYi)ZeHq-F!mrE z*6M&zAfT0fx1t|fw+*+TdxP-QYj#q7o2~Q3+3LJ?y3Qoj-xJHmkZFp!AcrkQ=Tzfy zC#U_tmLoA_q88+cNk`ZTp22ZJ1;rxdA1z2LBIO3OK6ckoUVatcMfoc$ASJxNwI#+ zBIPvyAR0kJrGSO#OnVj}Q4d2Nm~}iI_=Ld)rsBethMv)M-GK41yf8)gre1GbRp^-0 z>EOSRJHgGwSX-B8)?pqr!Q~PKA(&DUV`vWn3Z8+(=Mckjl(EovEC0qpVUl!h=A0@D z`1S1-8!}KYF<1A@{M?k4$SYBN5m^kBrQ2BCoV%EYZOMXvRJF@q%zX_ibFt_6E^7wP z;I6M3JXE2GD9FZhNk$0^-1RPYc9@76T33V87@a~2Br7^YU@Y{T%^A2Y+5lC-O(u`sCx9sP=h_ zH+RvPQJJq`iWzt{PO5{waO%DdOuu`_W{Ovg4vK#sF*1!BPoYMH_}(FGT88+xSeB43 zT&QYmzBNp2&Q>EC{5+7E)m|uEanA!VdV&tISO$J5VjMK%YSE>sSlGLf;Du*H03#** zVq_*8{yYSy1XFn6~S<>nW>IhMOz94G(1f&8KG*?Nj*5qdNTbA4OfSNf!_UQKO>|kUdTnV zJ@=GDFMN_nFOeuT(G`oh4+uMX55DSwJo6C)ivuyCQ0LVyAGh>U2ukKgx~PQVTzJBk zIeSQlHbdwZ?ctpmYd^hTbtNV}NY_;6i0&z=$#<4wuaLEmpwMY}*QqJy>ntjw zq+-OlN!1q1@EK>q28~PmgaX-dPErp4_fsm4u+n^46<$cFK+2D|)5`dbKD{0z`jLw7 zf@y<3ugx+dFW`Qoq}fJlI7fz_RGH8GG(xo|;=?ldvYnIb-@ZTK8L{!a#TnEOc~H@Q z%3=)*gIUejhr<|bse7)bMS0)S%9zh8Akh;IKzar*#$Brp`e2P!tU6WDvSLM@`qia+{z=8>mg-u zY2RA>pASlj88sMC<`Z0F{R6vi<|5vb@pHWaLj|p`l$w&28QDL}PI-}-_(1V6hOB}6 zij~(ThCxl|#YF(n?Eny3ze%eiq4A&*c@#_>%_RtTo#)2`nJb;cH(GH`#f?IacIf!5 zQIm*D;!>Haw$*kHsr6EZf9bAE6L)x*^}S+-DAg|l2usMu*nZ@@5k0L8^#o`E8& zp8<{MR@h`q`o##+&eD74JW(46B^PD+elC#|T4ZV`^}Pi1PWa^z2Mk!n2IuC%Nl?3b z(Ec&}{ec&fPPfSvX(!@_TLSL7ns%l;fqv0aY}Ws@bg4lssGpC9_668or3aROj+sO} z4#Y0yXZgeT>nr-)Z^a9CYa&3QN>GXZwBAgDFnwK~2T!rmjD`H{zTr~Q%Y!rnJhL9k zP)Fg&ge3cOGH|#g3@wWU{w^+gq6p_Saa4W$NH^*mc^;EOT~lxZQCi9SIiklXt5kd3 zLPptzFb2ehu#1&c0DoVo}S#se_28gP#cV5P~{l) zIa4puGaX0>;cS-KLYGYOEoB7n<`TpdYapRMiypM1h3ZOuL#y0I63IGw`S48?x!omu z%kT&Wp4C+8oOsO2jsz#w9dJxSap9r3qJzp5ZzKI1%|99s2BXmFcNG>zmyc?-qQxK-ohQ`#*`EUj&%61J5Il8$ah z7hR=D?nD;++#9?$Y>|Y{dj|;o{}dt^j)gr1gkz8El9YtNahLD z*x(!r{RqzH?DDfwkH2~2)d9GLLl&E9;ZnP3&sc>_5(7yoR7s;;1RZ^Q{WSq&A1FLk zu}*Mv@6M-^hS3md{j9v%kvp3;y>r52n;f9Xzg;1wN5V4Zs}@~+vU=tFjp=w-Vt-F) zhy0V+xXd3=)2l}M=f7!ORkk+n~Q3}!1L2q9sf-!PWz3K z25Ks2t-~xn3#%ol0d-G|4_sZ=L^I(A!pL?j;A%Sd87@56HCku#%?BB5eqeM6TpN}|Z>e(-v1&)-7ag+R)>mq9S{j{+bh z@0}}X*bS3*UG3O=d+Ys$oE6E4OLT2s1R#6s95$SdTKKxb@Bn5Vwu^5GM4mS-U!R5$ zf9VRCOj-pLW5^K^vGZL+78V#y+pnSsC@eF2NH}70;9_{kg|hxB`T ziok&xXAU(@&Os-jyzN&cHhW|jV=9ih;gd!M8FT32reu{%PUh$L5}&=~kjU*q_Rh!6 zMe^d*)!*jiA@4k32oC|n{9+G{G{#<-J_3H|jPV?uG6t9(2rIx70Js&K?wOO3`?nO! zJreo;5Sv4rq$#&t7yGiZzbuY`9_bhPE0v&JsjLPg{^$y=taJ(#gB-4!w54zf$u}*CcJo&qZ28FH=m=cuc5Rgt}P77VM__&=JkN z4=r&D`5$~E9bGZl`7;l52~8Kji|oNAp{pKL#OZkw<+)R_j{5;&i(3-_R2BpgcXz9Ea)&+|z}k_B3zfe#V6 zf>@r8^zv-E#~h!@kJucHPD@L>JTj?^HtKS8%H1TJ2J-dN(G}q%pgr{fF8J=Fm&EhBO(fg6-fK(%k-fe`{i`y zS45v$3cDTOLCrjs68)&29}xSCWb6_+St z`U{EkS~n9j)thrMPrPx(JZ7D$A=OXVGa%T_KQE|v*ZKH@i~|KfN&`N!!wJ+^ywyGX zSAw#3TLBTc3lYnPI?tgR7UAIHL*9A78~QKA{jXvt*tuXQhU~|omco{0T$rE2Y>)(m zJ=MMQ=SG5M*s~HIL#H1ax@q&58t5gGUS}QG&!fFn0|?A>pdvpgLdwj2R{}5P6Hmew@a`DAYoWz_`>SEswFP zUpwS}h~bL*G>Da`9ETXbotps-dJ+N+RALzFE7JGdYn&pA3J-=u|9eR6l9FlvC)eyh z;3LU^#Dytb!cidJAn?F&gkYget{Iy`VH-2N$qU-(Z zI(1%H&QDF{Zg7C7p`;z>>Lc>p&u8@Z2b)(t(MOjTTHA((t+CdI=e7SQeO6eNY(E>l zEEI0R&Ha~ImjszZ-3Ut9@{YWdYCozj~ORi)_p#2 zp-O{O?aS4+)m|!iS6N9h*E~IG@5&Cr!7#PH?`j({c?%Pnb{uXrJTZXY>ILWvAW1D1 zd>d`1dm`z5R|_5pXLApZNq}UaN5p*}q4z0pgoRA{eBeZogNjbU*#Iv<3h7_E`6)b% zX4_nSPz_#fACEOv{;KiRbL!uXEScYCQVKj5ee622IlOZXvV!qiWrP3W0%nZ93pfLs z)5vfcGm0Ltsz)L218#R@C$hbkF1CBji`-nfK-W?Zf?F8 zG?GGEK7W`GOJ7sE>5(npc5oit*&`90j>T0_z>u0T2_*t@C=C+hAdE`u%hhhbNXO>7&nrlRmKc1eD4W)C_BO*a|w1LV?Rkz6D=;Ywejam zn&1rNW;fhIE9Ww{{k8#2`4MFw^O@Cp=B!YeINJhr&VQU?vsP;llJT_V)#i_lUJ+w` zN!fLkDC_bXr7)|qSrzxjqP$?KB;itq5Q_r{%hzv_%J_&XYl+N893I!e1l>IwshRaF zK;d+to`E?7En8}zW}4R_3i;$ATmMZ_#rz{nA&CIhFw1j%aT(1&oc|a;^O2dgJ-w7!A*a4zU1U3PFD=S z&76S`8sz854BS#@>zP_s6&lG;k-7rXK)av;S7hDg9+CH7D44iHsJw$BF6W={S|h=mYH>D!of<#><6ju;8N>!}C5ZIW zJhi+<+#Qey84{cYP&->eUr=;!#WWx3XGAm+CERf75N-C(ai*XoNL^P}j-5+1)g-Hv z-2`+4QM)mt^b7*MK6|_AiO+nJU&2BE9a(t9qKxnIw1(RBWm9>>|IjW+Ybk*Pxe7pB z35b38Z0{|i9{C_>-lbcSOG(Jh)DfSi-e2+gB5tKs(*M8}q{0h|a{jR%W{=DsIupcY zWp080OecTwjCC`PgoeKRG6N2!p)_he9x~uZgzbyvZjyCfZ+S8JlQl6Q-AcuM{YfN( zr`%)k5=g1m{DqW{+o_N4v+t+Kz8JL`y9u&yjOoM<&lBPt(e)L(EY68(z4M*8R1wC?9XVul6 zu~KP{B}Ja9_PIGJ@Dpj;{BQHbON!qGFhdpe~=;q7XB5MMukPDZ)trUY})ly%OxeGprF_$(;=dDzjr&G8JBhZc0cygPBI|hdJ?GW1Ym)uzC`RF;b z%W&4-cVmt=Z!@Q;4QDcCs@5& z?oQC&q21lf;v3ftxxbg$OC|EAM@|~Ts@#<_2D4Qps{9-LH*hwaC+5gK4Msg(_tqrb zMZw;1ye*FP8?I)d$Vnc;3J6$#;{C6*CZZ0w77p;wT}T zW0m;ER893JMgi`uzvPmNqeP`MjpG`CR;dh=3Ctwkjk|{Ud&d5&jyR>mniBGWe{nX$<1t*tHs_78 zSR|0G0mX`29FETy&C_S?yYgf`V^$wdFe}VCHa~bA zDOLyk>8Xx%P>yM+PVVPfkE7t>U?b*Zn$k#C)YEQ30J%`R%R-VmPiKOWCB_dU-=m)% zHImW)C;CbgG=~dq2I1l}$fnY}YBO2l>{tzoOEK|z4=nia-oGzJo#cVIy(m`{o1_`ysZ7>{?B)?0{7cw4GTVF zQIaJ-;?@@V59Ft8^o>e+jkERG&JWnk=sI8xBV-Y8#5zs3VTHEqUZRU?#}2`3i|u$e z*!nncU)(oZijy8lDlVRdi(k7F8pKToTsoA+KfhC0v}<7t-55BHm`lsY22VqzabjVl zGB;Tz=z5c=3fS*O*FW$`qAiejaT^Ye(MR-w6%yD^@)imS=x7lx#1LPl^!MbjS`OA7 zaC3ziKxI@!%CJh*Tz=y>p!O{EYLJTLzm4b8J0Uxezevxr~(EX+vIN07D(?R&J8twlKYpahuW03hIv{C3G#U7;ZXcIkYpK8S7 z8=h#MXmO!*liZqaR2^d9gb;h*GBZ_c@$kHuhpHkpTl@C zcXCLu;1PU(Z^cH;;|OzmUDcAK65vuv9D~t)m-d>M4uh7YCVs3FmsF1P4;0n?snqw? zRvF=J&tX$WMV(f|F`q-Br3g+$Yj?mk=^x|h8{1wwt_RGyY8>(IqSFpc$>aqvjn!5f zYW6OCDws}?n?qxJM8k>+iO#aYb=LlVAfMuh5T?uiOA%pSrHEC|mTf__-%@gIrIl_( zX|WJ;JlhcZ-9Kun)C+V2k(LNc0t1{v29K{O)O}HTaEA9<3~H=rt9aifGREnwMSA^> z0*ua|8FF$C4MVg6#pG_4&WH*yDD43TSby{iOP&83u1-H=0t7|HK3LXz6f}zjgq*&D zfk3lw9sF>^<+uj$Hgj6rQ33ejzykA z-{Uaaky5@FDuiZz%sLnP`LHbpT(1CEG3D%z|Dx_7EN+9k+Nohj-j$xRh>penB6B1s z&*QHiuNuIHKSmfP-dRji0)1%?J|f~egNV@5?FD9JTOp-nVLiPh$1GE0o#xj^rM{7} z`pn06@Fzh=cBn4A!^RY+zp=j)jqE3WFPDv7G?HtAoq!*4N{N#E`=M>f^$sNmYFer(lgRBCjz-h2%A{YZ*?pxk z0G|Z_)8SSPtz2Y8j`t6g);+VwT@oB59RQYYcv`u}W|{*>M_``aTI!|UP5*w5MT>&Y zu~8Z+dF#Go*>>&H z3_T$I3=IM*B_Kn0cS%cwbV_%Z10n*_jWkF%BPA*&A|Tye(!DR=Z~xN6LkDnR-D{nh zUk?jZZ1tiUOwSb$)1V%9erx7W8ecdb$5kxz!o*en5)~=5Q?BljUM;J4K$)yZ&t9VN zGiwLG5F^lovH~?Uq`Hj0V-UzjfWWPzZfh4;Q4F&q+|CG#cwF}N3*j%PmtkB7&0D)9 zni-&j!A-vtbW%#~Lf*euX2#?P6=%|>`)0FI9#;e^i;V1#(`ik5&S~(q1EOP4G?NsU zl}nYG|FMLyby&xU!HR6KxzBO1So4_ zvB?o!EoDJJJiJAVLgJpw;0H13=3q;Ed872fA&?`ngqL${nSc8mnEd`G?XQp6T41p$ z$Z|k*>`Khql4}%kg6vd@LMq#;U0(NSTNG(OY8B6$sm|BMppxCnq+Z`4&^`J{c(a?< zaY-_5A{x$1e)Sh1Raoo$Mph?G5le0@zN$%G+h~*5xM$999fL#&r`*J(A++sNqtp9! zeajnUVf-TBSz9ml#7Q)p-qdR%BNYVK zw&*Jw04ZqBcZ4;Qzn@UvtIk13GGu0(J)Bb|Ka)=(*B5`leZR`EzzfZ=(rG_aYKPc6$ zn@W7kr!&@2mVKEAtSF`0ag#-YDzYCUO9~Y}*eQXAxa(TEWYt03Q9ti^pSBP?!m;fL z^2hxcO=WCMKblce)AbyCHt(nQN=dj)?D;Jg8JbN=gn^-PCoxr^)QJb>Ow$&8{C4lAB7&VrSJ2 zin&gh3_=e<rZ2fFS^D2cjwMHMm=(H{g;boE`yv-t75_K7-bfa|on_~o} zw29{F9Z4M54qAw2I2qpQF8!la>wa)I??L~;EWNy>IMn+Hd2A8ocwNHDQ2dz9DGyGI zF}12FTb;?4FGpFn$aVgsdhkelFjjNTW=NBmmxU4#qFA#Y?4Gir#2w zA^)?-fxi0E%#l3EZfv!bi|yI{392Ni9OPifKD`*2_Oo#|+t9_|PX#s10dh5(f+gTc zlJJ}7FoYqi(BnPFgXaRZA0Z0u!uA}o@x0<@3?*v!la(lvd^W<@1pP$en;VbRH`fC1 zAMP)AVYj|aMk)X*3wLrOV{bVAQJ-(9jX&^EF$`_jp`gv1%ZID;U`NQbFG}rD_OD>Ly+GbylR4^n z>@kE|E4!w=`!c()H@(;u8E0`V%wzpGG6fR#>Hb&0vT4DjjV#{#32XqPji=7?U@LN< z?7rhpfF`L>$jqm?Cm2B$*p^&xa3QGRila@`$ijAF_xP_rfBS(RU{OIQTF;~1`cGl$+Lr5BqQ){G_jB6q*UOAQhZrz9iTdYlYRGbAk-M8RT z+kb>F6TOo(!)&_4$A~vJ6TeFKT#ag8z5Brq?~-`_vEY?SzJmks#FhEa5r|GNR_*(m zW3s859FG{-O{n}UhF(fBcjNV}i!+%Bd zHz4x(PvC!Wg%nX3>biqai}^sHNv;1K!5{m?nX5;Dktv`2?}r*!ej!FCg(>fmOBi^= z9A|&}5BtNMUoo(k0ChX4WrLOq{#|GP&D9m5Lp?Ep2XgEQ7%)E<@}^AHp!isQ=QSj3 zAlsl&*KnyZ-ywNlKRDfePl)vYF+yv3vGbqLCU@`=ZBtE`9BC=Q2=qlC_@V^bR}Nug8$2R5Y_iS-;d~7-1!?QuGLmpOGvs zxk!0Q+!~9O$vgW%Gx)Zx*V$9#4Nwk#OLbQL?J(utP+3m6s>R_$RP5_&eVLUK=b|l9 z?+~)`M6`}onpkP4BMde1r%Z$8Xe$3jOn>a@$V777LY> zASA%n2V*I`v{Jkst)p4wC<%{MqINhKd}m03Qp)B&Y^YQcbw&}lQ!KCxc=GpJptqvO z3959K-sBIhaI{+R`AFb09wz3#mu{LjqJI4$WV?MFN7kO5=zEUcEvKtdh*?H(MD+^dUtN;PmnfM97g4Y@}i8LV7gks68`-XzP1(3LE~60L(fh)<_esk*dY+->kS3PBC3oS8l7niG2#p(h2({CV&d2Q| z=lM?;L9if>r#DSZ(lv(-HSpqs-1UM&c;lYH{pVwnxqN59oJh<0wMXw2_ z4$(qW*M+Dp6@GaweY7(x3yt{CA?lB{p~h)pWX2_FgM_x`Z5kuK)}xf6d@P^>0Mb!2-%XOQS zo-=WPgpi2@E7i_C^#Zp0Gl{&J8uM$ynZ1~2^-h=*DL^PDqZkH;n~~;xjuOdMdY<)A z1nFpJM!TJaxJ@} z_kvmZ#$Eh0kL7K@Qpj5lCpL=$=U$KGJKCz=`V)Dpb=!;Veskc9Q&|F-xFRs0~_!>GT{*O(zG`;He5 zYu_Jz9?&zol*s-O*c!fVSYmmR4l_kmf(_fXN!Ij35^C)NqY{Zi+4!CSw<^KxWUXp{ zk+o!XVu_UAfmu8GZ;fXmdpG2Ynqz`vI^0f*P4+a2P9(jNiFQf_AL}jTC) zv$jD!pFF|y^e$ObtrT;VQ=I$({3;J}A=PnyvW#AGH?hc{Jms?jq)#<*C$9;@py}D7 zlBNe^j?O?!98%BbvM3?TQ^HC#cJO<;>xx`HQ9Nwlu(Iop|8eQ&SMtG@yMrkRntoPy z^xYXA=zZIuNF4hh43ZJz3V9(^=68D@GIj{Sp@Uh9lWnCCk6GPyg{eboetg6ZI_aZG z(N5x7^~HhL@+q*Nte($MXb61)9Y8M^gRt@~Ks%D<$t|9YU?{w%`&tliOn+yH!9VNU z+avDahZ}eH9N**?boipr@`F(8f$M&~zM!wT;6ugETv>urhR#;x=^Dx8wI3`i(>)#} zKA7eGEaH3V|20Cw{TKg&q#O=vO_7yRomBm-gdM*-&5C1K(;U-C$?E4=iD-V$3?55* zDLrk^SeUl6$7#;El~-i(!IEqvM6T$aVe*&vW}5)F!4a?lzkija8I`c z8|84ZV;LWu{9jw2TieZSubUBrs9JV!&4j~Ln+UiDskfLJDq0z9bK@*9Cf>efk*1+* zb%-%m6Z92-(u+=<ZUETbQ4d^0$ZF^(7L!pKd8mxW_M4 z=kVybFfF~*!SRA8Y)qx1IqQ%ps~3AoGCUWt?Dx124|Oz8%2jniAzv@q@fx|ugf z1lA?1&=sveAPs7W-SI~|*4emFxy?)>G6tT8_ zH(2oB#5El%m^Yu!NM2~3IE?fP^x|UMdzyJ60l_L#vHUK~`m*rQ$ep^YDn!(SW_o7H z=h(*3e)MRs5A`6Gpro)QJD*2JfnZkqHX$$E`z=wgZOO0WulUfN13_XfsKf*ng4|Ul zgoY2j)Z$X)zf@Gl+FtsW_VY*8;glg=C1ryONKuLQICy+0qBwRYRN8m|JoM*zIlA_ z*;By(PE08G`67CEaMy<&z!CfYy+^ z#Ba8Z!6c=^jz9vGuM}YaP;OW!Kl8$@dIV(gp2;8ts3(&aw5_H;-FIBfOQ*ARcgLAX znKtPRiPP#6`E>DSh(AJJr>@xudB*W``=8ElF(pMhfj8kHc$1%`67}`14xn7ul9x=MaDroH@&06f$5*)pr)}wZ-LWyBk~8GlA_( ztLh?m@gagE951GloF%pb@k+cd9H&4EhUfR;_}9>>ANR+%zyUdIRCa} zJTc8-RC*43=>l{x*Chb==bI&q&;Z150dpbJv0ciPj!i6|KVu)a$wd>EO@A5EWe4ma zo;=ej+$BICl(&Kre{!L@&@r%a)|@01wSw1a(=9pmJ3U8CB4uN`<2o*7(KF1in{g8- z#IX${LZ-1((lw=uZy0s*oLtEsptN6vfuCFXw*hUJ>Z}xdY=9g7;j`;etaRd@yQ$FkY5Kce$`~D$&pznNS|UPOekV8uo&KdT*HM+ zuoGmHLk$Z>E0?Q4Q)a=_3$`hN^ekhECy}$8rW$+JUJ(^s_pl_~!NcINyGbxm`8U!I zdmG5W(35fVL~IWUz8vjB!2sK1!hFS{#=f)b^=Wji)7#-)m%5gKFqF{AcrKpq0JQ9) zmirwFa3}B>WPzRqJQ=sB{wwLZpbNp3XM?AEsMX!qWI7oZzE@)4l_fx95iEOU=X);W z=IgOxJ@LWYTO2gzrkd^n(8W8Ziw&zb1!AfTjjC!u#H1#QeHj+$mU8n1Q95on`!%&K z0ce{5Q>C6*#RiWHG$r~>PVm1j)g=<`^wh@t86fj+gYari2A9NySTQlYYP$2|$E(A3 zjlQPC(0PdF!qMzz<5t8}zw74kIqt&qk-WL%vY(6gnl`XdwO+JVJ8LjTe?zj#Es_xR zo)Q$m!^=IQkP23v15DD6(G1$ef5GCr9CdmIuy-@Ej0nrL94r`ug>+ma? zRmPfEEVg^s6X9p?o|H8x5L1wD!Scjnwu5pWeZ)v>S$-?Ge~F4BY?jRvfA%?pm_k7h@`GK{GcB;OQ9WF@1lJ)6`M7fIGiZmf_Fjy3 zT}Xg@V-m(HQxBu{T`}}1Cj;l}42lAz+Ra)FQ&<)l?oa)=r$TdWHU}<3P|P?24-?7W z|3>7pn_&+_d|`}?OqL<0@(kvx%E|(p2j!Pxm&&TB;cpfR>Ig9q0?f6Y%O2A`(cEo` zDZgP9nlM#*AB!a+bD;|+XOg5JM6P>3kdX2smJ%8V_2@t1WoO_>zpthW%?tnW=v@FU z4)ViWQWHwUr!mAyZxIvSXIA?+tHDx|+P76eyu*cZkl3Bdr1TtYA4@c$HCoiK1CMG= zq@@pUA@5l#PTI--h^{M@4pJ~Vz3&R(H#qB*?(CH8GyCi^``?kzFG6!>s8!#$$Octqfnh z#MYHK7`JxPpB!Y|#r-YTOt5MT@x~f<#$=C$FYY%3KlUd6N~MHQ_CzEJv+-hHjWW<^ zqky&!cauN(@!v0&;JNc@MkBv*_7+4y<9W}G#K-$pk1alFunMI{ixo405&CV?VT-SS z?UFO(p`;m55 zZxKMo4D4TDb_CzxKaU$sj}{R1a>*ga=kfW(Ce_#$s^+1RIAS)NVTk3Z?nK}u-P^R! zBOaXK*dzl27`he;|4U`TIV)1G;t}-)+$j?GB;PzZE&2__IAp9CkX8E)Ji zhOkty(eLrUuCETYHfmel5oYK63Fv#>FJ1(3S2!7W9N%WA(sM+mNLk^P3sMT0G%P?4 zmEI;JCLV_1-K%~j2{8*ghqeoFX&hF&U3D(X8SNjfYzBwKCkCUHF?C$s0xgs+c(<0$ zXGc*WFwraMO@$u3vije*M%N)I`;1**C1NNZs29I_FuOVe!4V#F0atj>XvHHD+8tMu zxdm`B=`NApVS!-DgRCnOm!P}N^sFT9&7CRn{?k*270d9|?m-DqNr>I(b&g=TE6pMt`N*W@GT zB94RxYlKM|Sk$vjYR{*u>9_`BR}SE~d2(U!Nueh#)siVtE)3|8?bmYlO&ZkTwO)uz z0Tip4eI|lRVY4%QU#MLDN69C>sjrEn8a0b~`dRsgCg$$$i1|t7XPgVY_d9~%@&l*E zJGDf}02PZ>MWSU(&htNkdXnAmGcOk2PTEQ-jj+DYrdk+(9`4jt%>*$r%WR};+b~c~ zV>q()?mZ2TV-y@w^Ouj8EoS7KB)8*Xf;z|;SXe@WX7q|~y`%a0WgVUK-X}a!|4y*7 z4eN4P;<(6YCTnzaeQe~eHe-PH5Q(N|esn*?LN78e zzWFs@aYAxPB#GBk_CN_Q%wz^spk z8{g6KU6CM{>*3ZzM=WCD2h^J^4WE_SEo6>Z>t~3Zra*aJ@zlt?Y102!R^DIcuJy%| z0BZT&eQ4cAeB~P%P4&_g;lrKem`Nb0?{l?FUZIf7@QNy5`|aV6BKr z#_#`&{{%6fh7F$u-WzB!mE+*W)8Sg5BifWWjq1fO!qEY~DrP0uC{vRPCCW02FVNNi zKa``w@IkJzQ&x}W6CrUZ=W8Fx8?bd>ld;b^K477}sOhpyA_I9xl19!9Z!kd0%6AU% z@PKBSPp0XXcSUdi2S(eu9+v^f?iei)t+1yO)?2vq!i^yFz$rRP?~Zi7_I?J}`1g^z&61HC-~PNg#c4uy4pdwU5hEcJB%j8%T!i zJw$(V`r3lDzh5^5j|Yjky906lEh#eMuz|0Hp<$Aw;OrnNxtE z+YX4mU4sRh6wJ&?5kUv8L+)#3g+5yP-9t;9w!|<-y_BgfbV#LHxAjLS9rauTiD+1X zsCnT&}Xa5Pe z!b?D_vmy8P7`{!CskHXq{uTXoL-uX9Io(twG|uARjc@h57hLxho2ET{WQg1VqLI^< z`wcEIip2nq#1(Xp{dI#C?t6IS18iCN`OG8Yw*+$mH_8p|WFx@I#dpIG7Tn(P)x_oO z{+*dkeX)C}X2vR5g3ZC;P9DN=>AIvMr%(sJ2A{hMapYg5Hjw>q2H$hJ{yo)JU_ZXr z3r_fc_&}J&+j4z7>UP|@7-pyJXc`<}pBVJ0!Zx>eme7{&?y+#a7{1%Y9{Zp0Wz^1gKjQV+W-+Z>#wJ%6iE>k$RxXiTTPF)W= zMjBQoN@aFbdjHXuC2$;nXL0N*Eu-`p{tetRtPOsITi4b_DE>{XpphN1Xn5WedG zN(4QnvwU0?KUS>JQg8HBIt}1&E0j{Pa@7f>-MG7SQtxaGmczgALmS}7dj(qttdHUI8tgNA{%FjfrPO-G=cCj<#mdR{ zDQjvfRpTh0`$ACj`RgdJgLL9!=@dB$9Mb2<-X%M!j;ayF@!&TGrF2q=bo``_-m$P7 z)A=Dxi9MQs;pQrfFNo*-l5&n#OLP9IZd`J`nU82hi^nL0cp&P(6`rI&G_p9I1JA!` z9vrRdn}1aPVG;g9W=pX5(3hJC;R8QC+*jCUeH>JXk-X|6dXmKM2eD3zaN2uoFde6dyn$; zKF-v^qNwB1=KsPBK@x>)@GZfNRgp{zS>aFRkChP3(o$k!W5_w)R{!pYhmr){#jd6i=^Kz`zW7PW$UVhP}Y^d?$|FhKZQI};i4wG$K} z!2Kvy9dgE>;T{h!{v-VTYLS_x3q?wzezw+0T)GR6iW2sXDjckkSynQQHRoS9mDl36 zb!GvBkHd~xkP@QT1dbjub`(hod1^qp3!ZT<#w(A4VqJ{EUE3MCIN2#(B|hQTNmp&9F-U+Gp3y(DH7TT<~QU3fPsky;7W&b_rxNd`043(epLq%-T4jFQD zQN+xG&(Ma=MSrKBsm8*eatjBd9E$wujk0In746^$(GD$LgG1Q4jO;eAzl#z!*Nl7E zwrEg$eex0!lh^z3N#Lo12BK}DhB#~Rcr}sO_L1XaK=ekf`Irg#xsSBz?g!Ti8$u0G zWN*P-FVdM4(L_UuTh%_D49&Ax$Xi$di}FeU(8)5LPNIT}H6b-kDueSYQ*zqw=upA4Yr23G0r#IBpZOj3yVAKxs>ACd2Fny#FN ztLLW-#GBqSq$Y~XrEIiZT~ojxjs%vn`%lClYL1VhyYY%GJMJcPm&S=6P=RKwc`*I6;){j%ZJEc&n z+;B$dN;q>084ik!c`Dv+p9rEiRg?n=P^w+@hiORHxxei97{~Oid3;_DpCx)dGtQ5d znAqLl{or3yXR?1hKPlKykafasj4Nwj^-JfG!c_qE0cJQR1LmVYI4v7K8oa9gWS^4B z{!#|cYTd-?G)R1X-O5oMHHIGZ&hdJ|@M{dY2*}=iqP%G-A>kVO)Z-#X+r8CnEAArH zL>trI>-=L=L5GO@$1$I>29gvH(pwn@0d15_OQjl1!h2)0S+k1dOW>G~`Nq7!pUfbF4q; zP?4AE220Vn<7~21ps$Ox%YortPm`!;fjo3;x{6bRklyQwtX*8rf6;7hj}kfPrP!*~ zOJt=bK|l(Y6`!1NJ!gR0 zWb%E7#bA-+QOcVvsX_J#D7T4pFUiE|$vQh!WF{?A;)O6Z`>azVn9smtM8e>c((GcM zL9*=`>-oY~i+jAGure>f(Wr3dXa54gb|Zd%YMR|yxil;HCW&q~7c+4YSm zoO@m{&R=>?72V3>w6*muUlSDY{j)7G`0(AF>8}r2%tFCa_D2riM1c?h zOkxW#gEHnhKuG$gRA7ie>I%Vc`dm6Nc>hIn+#q4GMO{I7n+iD2YX>u*Su9KotN(u(`_hTElFj5d8$f5+`@FN9Wp!ylNscihEk-h_P z&x0eRXae&X=Y`%sSNGE`Bbh6V`ibb6pBT}z0v(ijLP%gS0t?{Y-@s>F|3X07^jwxJ z%@OG1?I%|}9Es&L*G*C>YGYH_zjhs_o4^L@pPnP$cd(BK6soVY$7+A;)SA3?^irve zhK^0Lyx{7NO0WRh|A-{3_cqDyW|N?CgzYx5Q z)T+n(^3&tX)kIg>c#5#kA%MD~NhMm_>XBa0MKxfk03skQ^IB5a=vzumG zs1LLBJBQo|jA~TZxSfv^jl*8FTy5|g2OY8kN6={SHTJ(;6dT*bqhY!`-lF&HoZSyb z|FGzzk(JYJqB_5O!JT~$PO*C)mB5~Z9n2B2TZZfMJ^(0x30DvPZ$Z#F_)Iw~=m;Hd z>w2<2dc1@kOw@GfdbU1#bR=*urZTkxID)0W(cSSj%>z5@X+Ec`!7;<%Yus7_<1d0v zF2DyM>)?e4{S`G1yz=O~BCVgm{>LxIV;`bxncuBE%?dbTZ*!0Ds^Sq2jJTUrW}d)| zNCpr2*#7W~p<=Crccbd#j%>JV+42Be29`KKe`(zk&9J6F3~Jh^Z(=<^OPHpmD87Ak zO2cloaGq7VD6PPcR@;}<{}PaPoeP3Hsu!UiTQnR)MFkI-j2@+e*=YAlt1?)P;c6+A$JD>q9^I}>DU z$d*~O`2fas6m+UY#<;<*IY8-k#lu z=RYJBTAIDslxH&XV`@+}LO!!Q1UNxu@Gbvy+LhA0pC?XvEAfGY;9F{luSJ9YBS$Ct z=5}*^PjcEhMsC8=HF)9nb9xLs_D@vEbCpUL2io7C#;tvvfc2mhX;Q~n$qW;>`Tq9l z(xJ#i<0&tOAX@`sSv8uCeVUN2(B+fT1eNmugzz0g@M6^WBtQI>-E=A?>{Oqx(r#dY zl1lcMMNhEW9`@)*ukWK}D{@iGo$PQSiSL~5P6|;RO3sZ`_JqEYecx+QORzWmAyF)T zSb~Jgf`-qU`kvHcaVk7>U%C)S$+NhZ}*1aofBIY;Ap9~H;aKiS58iz&(+U2vy- z%0|p*G^9b3^#n!LFPULN28n(gS@f*%HA6uczi&8bfbvsG-2@8x;UG+m6&w(ihASaI zy9>`vXzFkJ!vv?sjbEpVNMf6ES!zoy@A(M>Awy4_D{V{}eG+Zj3o7+r(P#gFU)T_L z$fl@6z6_F{cs?IIJw-M6si&iz&VjHy)=0x|B=JO=`Td$DE7D5O77Nj#ZWkB@mMulO zrKTK?FITq^R9Z0GYB^B9fD=4K#&jQ*IIqyt7{=V6uq4_fZ$!K0tB#A|0CE~fE>VZg zrA4Rhq5`};FJyjOQ-~I%&QrT9-I(FGq+$TVu|O{tCcjXtQ5XElGo6Ts20j|VZTrd z2y>Y3lFSdO7&GbKnV2}VAS6PEy?~5lt6a3imZ-MHhe$~t zAj*=Ro#s!=B^p~LxkXde#lU`t4T3BjO@qR{y2HFvD{dbHJR(dBH`>S$&R#q&Kn8#x z;z24-@hhAZ#PP<7c>nzl3(!P>&=CL=g(9@UQ4t3f0YLXh43J^OID)H^YWtc<*z+uu znkWGY6b!B-OIza?Nh1h1F!RQz{C{xf_E3e-?;b*n1+8~gN1fjy$kNgs3q%xf)B~qY zS_@wyEU?J57fe}kz~+9pYrFMbl$=OB0>NY)d_rXdvZvyxUIpLVg6|#*x(CRtz+%4e zp6fNT6cC`e06bY*CVCJ9KE0f~nc(mM-?#~)u0)FNOD1MJ1OPJrt-Uz5{vx-?!adK^B9Pro3bzo_d>jA9rR~*yT z$o=}!!n(Z1oH8U%vsOj|inlK%@-N5?=5NDhd!i_g^sqi5}Rtx0t~j z1~eb2D*h;0(#c$7slsTty8eAL7)PXm=r*P@!MU6#~9$ovelWtF*3Vv%Rq_jdv z#P*Y>hY8!F1U6|H@CElGB+3lb4)L(|%VNH+nY4x@v`#@XEvH#~#tKV2*=NDV7XbXn za1pzCWE^msso#A`GN>;0<$fQ}9j|hM5tvWPnt+jLDJtg(f!&HQLWOW|W<{!5crg@< zs2odd(}ZaiZ5T#TyYCxAauf~~ZL z8-+7x0uG-(n=YTr+Y&=k;&b^Q5_zlO_@QyZz#tr)?2jc15>vCKXYA1l7ya^^#LGkLBz3f8I_93LD1*r{JEdZ`}Lo3P57W?Lw_8^ zssjZ4N+w0YHlD}d*ZX*L=71XL<%{|gp3O|=G_@&7_2XE7Lt96qnWg-INQck;q|hU^ z3_7MI;JzW49Y81O7b?KRDFb5x6iw%8H*Urs1IIn=d7Ore3m8NIVFA=vNtr@pCP$LW z23SvL=Dy6(g3SV)ityp_No>9wqqP&uYr)C63}6{YP}m@?n*>C*dQ%D~piDi7 z(J0F-_zu^kwHWWkY@v0(cqWOJhCGJN&Nor8M4Ny2iYgpjl+L06TVd1^>?aj*pG$5a z7ELJtlOK_O2Wn!PnR`7KuuFx0>X80nj2jcOU*V#;&=sje4L)BtPr@q8y;s4?#2L)e z^+x%B7R)}wd&dh);d5Qc^I`8KB_Ni82AY6bidFxe_3Pt*{)*l+(c~<0>jlG?6~ICp ztwVgSH@cjFT)Tv6CKvvhlVUGVHtxK}s&;Wb-I4|thv7_@cdFzHaX_rx9hHLn4`?pm z=Xe36alLf+wAUqH;&UIG;de&@;3?YoJ@>9TJxi=_ypZT&7-czLqO;3;&yjtx`Zt4MxUJmLk@Q{_mU?thIAeuvJ$OrCbQdfq+?6ei~G zo}s%n!I3jF()1{k*VL?Z_b9Vzizr8+OsDVQ%)@Ge$}=UeBQSn@2K`s20}9Xu^&ebg ze%>ZYHRAfbO}sPA0kTWWIox=E2FT?~x2R}$r!q1Ok1@guD1--4yJZV zM0;pZ$U!zH+S6c!18FuxMu3?_Hq7yh(r3IL-Z6xQ4O6jcSzY1$sZ2uR3hDZF9JK~u zqUzaI^rW$RdOgksON6G^xAjBIE$w~T$!!67!~vuH!CD+4kP?1S-uqg*BthV^o_igO zc!=MJFA0y`Oogb5NhI(Hx73!_R808G>?Da&oqvxJtx|srsG;}AHroAa1D*Uz zIE@R^S!`WHl|d0@t|?#Z_)ZTtuVE-n-(w*ECT35E>dDf|Ggfbi?NVoBmOQrXAFvm` zp>LdO=(|Rr&vAOX^{+AIu}#D_NKj;g$d{(JkX0tseiMf2-U93-OuDAD;SY$o`J(B&tE|E$vCdtrQO_VvvCSu+Q`+}i4*AKFZ{g0c1-ry~pc zmG5Yw?n|=(>f%15F)2qSg-_jIZZ(NmZ=e5A+Ufj0rBgBr#rYuV=?gKAoUK;zKXk7J z<)7?~RP`N%##BgTTWdx=A?bzcj#KZ*qiq{tEnaB&;&T~A=#hk?P&XL!iE_R5i;{oQ zXS#x`J*rG{WV@)*NNtT-7xg(So2jD`C-f3SRrY8yW1%A4)e~SS!I|W!58c$bQHu|B zKVP~2Px$vu{`p7ZfO03ZKYk6h>@>s;3JOIN{pqvl6Xu=#MLA6LnOuN=H&=~@!aDNj zQq{DoaewKg^-AQkanQ4z4GT}0dtF1_#ANjj0g89Dz`(HqGNAr6)muAhC<1&9NJfiU}8FS*cUZDzWO=ec~%WBLIU_Nb#NO28024TqOH(;`*sn^vnmB zI)MfoLTl0*?SZv@8`HH0Tkq19$rGLU?dsHf92L^^rvNmQ6q0UR@o42csW*BuV4SXl z{7OKxp@A){dhW}|oV;)YR0p9b3>=^b_tN763~E1dOUa1fcMACsJLR2^i!St-uDACW z#I}M>BBujaDGF01z4sermD_dj-~^!MeuJMToRVn-ox}e0LJu;c*-!hZscK)p%8Oey zwrLJ&7!L06Bvta)-)M}dz=^Yj{->ARsWp@o7hLcR*&xpocch_K6p5x9NG}A6>D`Vo zw3I-5t8`$~|e^JQ~Gi~P(=s(Gv1qcz;le}>jEodS z)$@veIk;v4>-=N>hZRv^2!6@cEf*pWpzhB0{^91}P|v2mLNHVTMQ0p*Ly;u(xHw|< z8F)XN;874%0HOeV=^xe-$GDSAlox3zgWF`M1QZ%7>LYdjC$JI2td0j9fbG}$o)M_! z1b{%t1cBTKPsdrGs}u2vZF}RO>vnFZxAU{MV8}A1R}TPHKZ9ECJ(imICF-l&Q&W1* z68OXApbu!qLM4;+IqhBSJ-8+--zT6AxSoCed#dH?V9Muc`>^LDp}=BL6qw&H!uSDF zo~A=H-3WMTETZ6}_N{N||1kHfL2srQcg3C^zGjY)5Pk$^;UQ`N|; zD|Dbx0zW5`13YadQecV!gzE1V4@OAS<2>8oX@-v+V+YM3p9T`z#Yw#W$P@eX=+r-> zwPY|akcIbpX(Sny+j-KiVXM{{}b-$ z6;U$BIE?!_sGeHfa8;0GsWY53qsK{cpxoAsIP3F|=OO-MzU(A}mUy_(ya)`qscNtI z6sjC?NAY^92FZvab!DMXB^7LIA1U~{Sbj=U=wp7>xxz`9(^hiM4LtIqk4>@EW3T4b z&znV0SCe?hIvG9MJWrKe@H)~-fKA?Fqg|y|vh&L_p4v{31iAJATI_pI)!JZ%Q0y2u zygPEBtT_5UnyB$cumQhzpf--{^8Q_Yc;y4Tp1e(8G^OK47$siLD(b>{QO_=Ejj|V3~|5fL$nyV`b0=nV`+_x&TMo7 zPnHU0K}^o*e`Lh|Opq0O8AT;uA9dVL%8ZyO$t)VGqAnw9zZu=7*5+4)DiFm(BEz`G zRS6Zrn;gk^b8*Weg4C4Pis;p=l%aG+7_XtF4)lwSFgk zv&EyITwuX?|C6}vv6Jwh?KjEKJG0!aWR5qv&T`xk+`r{0#oO|~gb6yJD(xPzf%OqD5%;Jf5s9na`=X~<+l zpdj8^MLWME5FHWW0F7rPb zrs2FY2BA%J|77il&yq#x%!4Nid0*0swv|LAHOSZ#0ap@%6{+Rb5<0-vn|9g6G!E^` zpbErqAA3-9UPnoo2PRgRu*tiUPt-@Jn~H_nJ=MuHIz6M!*zc@91jp9eckM8}62XoO z{lE*VKfQ$D3rS5=2Pf6b(e8*85}{%9n^csLb;2~d2Mj<57E}@X+|A?`RGg>7a(Tb1 z=IiG$eq)8A{Tm$j!@Q?XZwoKP{^9fhrRW3C2pb@F)Adi;ZLSSWj6ZxJFBzopIs5)V zI4dwZ@CkW7*$l$fEVFtV2-d9us>#vvq&jL>n0gBc-d`HY%wSARfM>{me3|?}H8LhZ z20o{ry){(C;sZuA5N(^%x&B2G)dJcwV;&12G2l^I4YVdBIrq>fYR7w{4-P8ooUVWG zFWhc!@q8SBlF-HcY`zAF6eGc!&S40h??7J3i_0yh=!@RKfZ&`?i`~&QFnoeY40x9+ z(oC1PmbHC0U0VXfPZERC0mqU#wYaj^OP4=W1%fZ(S4-M+VmB}dD(m3`ik|5`Of$pM z?TXg9>jrj_ai=HI!n06@8X-BUnR*{Y6(y!6n#tM zt!;(rF+QJgse>;oc4(Wa@>M|WdSR*0%}lPF%Bn5c2H2a$Mda#RW$WOQdUQUoPsZ%x zynwiSbnK-twOEEt0~~KSj)v%07*}6*{-5Vsh{;b&*ieE%luE(`O5~Kmf^f-)`Zx0i zQ7qJ9^S;jVDApgcxAS#nQqA(=6lxMu4xgMGXKM1_sC@jpMEOODKT2A56)-wpGOkvS zv%#72j#N9Q=R+w{a*z}VfN|b$AMQ=$U<*(1lZHM*b24EB$&`c+7#~;uT18%ryjop9 zV+p#`4Tb0OO7OeNghfksDfF4u+q|Vg)-zU^M|lyA*!sU5G?^Or4x?AT%425oxik-@ zKT<QPb31XOPsk3FDJ8izINnI&;k{NX5OUo z$b+5C_KYkRRY%$GYIFR$*Mp+-S2D_n)YQjlum{R4wvHoOW1LeVp1K9>mk+TaTmw@? zg@sH$%A=)?r(FWQ7IB8+QB%A=^2BeK1}SHIVw2Fu4C(ddjnOtJ02hG&xQ2r!Fm7VqP&Y#0j0SE%I(Eys>X+k4S=?7-;>s6yvVdytc$6QaIn%QT<3|4XSSLcDdasVX5YnK(czfZ zEQF&TCO(K`bKTzCxG?7ZIn<;he2~KnX<&0bKVs;*IjcE7@5kGla!BubP!1MQBO$G) z5-xifHs%6(;J|}vbvL@93}FBguQ1eOay`}|eZ90bK6;|xRmen}t8gK4q3{&yri#J6 z^m?nC-6jW`xfdj8>trwGLd|Ns$DGtE{I`7-sP9x8CuYN;#Jr64{6ZP z$%l8*_slv+EwP@V6j_E#*rxNtD70X?Y%$NC10}O_D*; z0KfXR)w^>B*UND?mIZy>oldMU#gTD2dR39(#L8`V+iA z6Bu`ZXB954SKEudSJB;}?q^udi?_HV zr+j^S!juy$TSMUNv1tiB7X-qR|Hsi;Mzz&0Q5Y#uw73K-?jE!hch}+$#T{DQonpb= zy|@*J;-t7kafjmW_k4FPerA!AoSb)N_I_ptU{lkX>VRG^K!V9n1SVIgt{GA>>}d=6 z$f2gs=>fMQa6{FhI&T{n3Z*OKi`Q{*X&K?%MG> zmkSIu2n4us)2E|PY0bYcFQkE(1tj)^7vALXVkR$_wj`Zz$RFPszHPd#CzJVFCb#8}LqneKB!1zA@W(-QlY@@_;MdNB;czXRbfO0x>hWUjVPs zGZD~~Hk@kd@id_9e0{)Rw_tL&hoB^M54*ey^3^l(x`hFhCV-5BCAD1a@(f!VpjvDT z`HlgQ11HA-TQ39?1T-#C-~ZByYkj; zvxe&5no!^6R5%dyZJEgg2ToeLe~&x~_pD63z8gC84RYwtAE-DvyqY0ApbpYWwI%eyL~8Zv0BaqGy*K`s29~s9vkMcy2nL9*YDX zb+GM9`w;y2JdRmY5F%naUVD<+Mc$Dwbk+RV89_fhk9x&d{n{7alGF{7|H&@lPwKPZ zxOQ?$J~qtO2yQ#TV*0%j;<1?|9%2KgO#z=kVKL073bBt(ei8Qop_`;gUyWCaDVD!l zb)e612S6N5^B^_26_>DFzYC$YzhvSE@6`ehU$S;n!5u-X*lL*hpF>3K;aOqMpVKQg z^(XE^z2`%vHXiv*3ETh*QVI5ZY9T%(1*W=motSf<5~idy)}!LQ5O$gv1PN|%nx~YJ zOh73&_FN+O$@_vr7F3)vtCw43)xv};T?*_C1T=<@v(3)%WAu>swFaS>B+J0GQ>t+% z)T8+QXCYDi^g%Z22c@=^%eky-greE&9Q+^x+NA98L`?N?W74D_>8TV$D8uJUKL@$ke&3Sv-#Ts&Xc@i4tj_y2h#I844Zc;|f_!eGjf`D=W2&u<`PL9%J_y~z zyoJ9#3lE(=hrdz0Uid%eZYAbEzY~567T%c1`fvQx#R9OaJPg<~&@3^ZDzGK#`f(Q( z7ND?#BFD_LQLiNnsFPyz6V0iy#ot#$ll5VD%NQN&^GJ$tRa8-Im+PMRv(@a4wN9kk z&Gi-NEe%ie8!0nQa771^%LnyC-JcJ{`7G-Ie!e^`mz(_L`p^vnRy5eL75-zq(jG9} z0&o-bjW`bCyWS)H%A5uX$f-Ck^nZ-NF5?SR;sj^f^4TuxOaeIJ$4qi6IaC<3F$eU0 zX3bR-m25$CTv176K#S1GqRhlj{>1)KMw+AiI2_#ov(~E=nCPhl?5_q!8Tl&uj;MYC zgs$0kJSIo%USbJZsRt1=AiXn&NsNa(w2P!3lMWrfA#K9MRp*;YIQa}64*W>7d<3&F zkEwQU>lR=VZ^mOlDTk`P5~qkz!g}}{J5Uel>-%0{(&vLI6DXUu+4j(qddW)s+dNS8 zu%7@{2hj3Kk^X0r>Jk3Sw>OKFaZR6F`6X9!~Cbm%r&q%Ujy)wbr^5=tLp(@@67rW-TC-` zmg*;9QDY*GTJ7d%z_E495IrPZFnUAyf9s{|w~=>?%_iQbWOI)!8YE_Z4`fA{fUXZQ zPMzPl{Zv1ZEBFH2?3fGm2bew_z-wgM&SvTXLJi@eTi`-B&_bj{2GCLP9glP5R8d^| zK5s3xo)35!ylnq5li>h04xG*aR>KkW9WahTK-h_wGXYGL2One#DgY$;4{R@Zx6-ms z!MYc(mdF1OFe?6QR|0}*|5CUx5PJhp^!|`{#H~2`h4QhncYBcY0+$Xt-0Ab)t4rf(zOj$RQmt*jw=O^1t#<)UfZ|f1xjmGb#PC@= z>OM*m1 z7DzUN0oy(HCVUNJ=@EvPM;r}C<{_@l~JO>0hkLgwu^l2=XEgNmJi%a3Z~+_ma}|+c`9Im zEH!y4<`6!kvWjo>wrh3)MUEMnvGMLXe_pzJ0`ANONrQp7@!_fA&F?qOJeA@g-3+S{-u5yM>Iw=L$U%tOU>t%VAQXDsMciAAj)Xx z=dd!03inH}iQ6|Bot*+1C&4H&%HR&KaAuUW4-*3fSu`krXp($t=B1eAX$dA6uHc4h zOue}S1sJSXd^{-3O~mseO12@AuomfwA+R(uSY&^a`u!9#!fe#nD3QN13QTAvxPYul z$_f;@&kRG&h45rFapReLV&!t$7ll$Ss-O3Lx0YnkkrWt60-ZbpP56J^@Wh_sOoXAu z=ER4=`dP*dE|Xd4uzwb&&WUlZM7QY1WUNCgU{rHz#|u1Al>XzrzoQdn5bH=RB{z@#kW30WgZqLAf>wdNu@NQ}KxkPSwC5mY>Xsj=~`v>a@YH)tCKdM~$ zG5+E3b7%PO<6^8bADN2Y>hJO>7Rz~IOP-FrKdu?X?e|BWe94R!IxZIn>aawHK!@o4 z^#^j(WsH;)j#fSjWgMQ<4sp(0C!f1;yR`=t$#iG0H{az?ya)QNeN(0DrNe5?hA)iU ziN1pb(*HUx(Cex94radV05TWa%I5XjQ)7$chKJ@jncwfxc0MU4cik0UKL5)RPO{6b3%bVUYE^uMnJcp| zjva#=2OOTDnWgrD`<(!rO8K0AiEW{iRbmO8*6@QAaePUSm=uvUX5x0r9p9l!$RKRV zem;d=j9h~_`_bkXV(KXc&t>&3(7vAqFniAllNV#9Nbq8({aCsbpKEtC; zT0|s5=DW+sXv#U$%N>KeGwnaud=jChcL)DgQwGP&hux2U?UcvwTF93?LrWB~6+#4a zX$ezgu@MQIOE)~`T|`tagD_Z$#|gmqPT(H(sUS#HJPYq4c2#LPf(@$zkuMhi*LX_^ zrTR|&4Skf_zzGqqEcKX{&U+G-nMpUrqUYp_zet)n?GCyH=1xpSsv;>8_p984rBC25 z-_6f;f{uA3f{;O=lwAm-IzshT#2`G;U+TIJB`{tl?b5kqjw)`ekCN!0v269%f8_1a z(17h|cN)d{R1|k{^r{p()GXn36mrP59Z2zeIl}K$ril=e`P2>^d<% zV9N_iIq8Bq*)>)Cv#m0XO3&eDHqyf&PeggxR<1!%XTBycshGdBFKOsQ@v1gJ1w!-$ zoqXo3I@1y0KVSY6iVgtj}kzzkOSMTrNt2nOc%&Aj{KyAFDXuBqLUB zRzrfn04g%nNLtU=tAfJQ*Ssr~pBIOUpol%5QX^mV3K_4}E?IQYv=c@7XQ$298^9K~ z&h~=z>#mUe;^MCB&i_{`IRfklp~r};LMksy%WEZN|DQ{2ZSuiX8ju@m=fFym4ysO)pSiPqg&K^deLXw86JwfkU|Bo+}T ziEZtbBl8!6S+mxE+mA#tK^G8avZ9S=}4f!ve8V0%yw19LY4C zYT#1vE3(ghjaMt2)>R$QuYi#iOByeL8DpnD6ycRgjG#{2n$weLz|tX6wRW3wcO{C( znHZF7&e-^3!`Fo0W`d38{VteGVFin=TT2JSD2mxY%^fN@bX#F1$uNRgJWRndp~blx z0!F4+ixircV~8Cs=&2X9+f5|kTb8Kr2nC0nXj%Ni3P1V_1FaHEzzOC0`hr?!~(fiVcT%IO~_%4-~^*1BR%boKwOTev-<4b{vncf}rlAE$q|3S7}u2y^AMB_w++4C;zZ5etZVA zRJV9qzxPrQczgDf+)RGQkYJ8$b5ux%c4fJ}-7n$Z!wIk|d5>^35^! zdIYTN(nRltBnC=sDkA=B!tX7k`-`nbd7LE|!-oskc3-QgpmoYtva3>p9J`-5m=7~8 zVIEvfWG)+_t`5(K=eVok6SPT_oI?K||N4X(!?{9na6kNh46on;cg9^-gUVKb>F3O+OefP?rY1q&}M&r7paGYe+Hi zeP2ohZ&lK;(AcC!FiAL6Mxd{8c286AZ<|R+{OA32yBp2K1coSJ+h`d>Y_>z1Tw9ij zE{|kJnPN$Qt940Kk{)JPG>O3ieZxC9bTZ`w2O4s5);mLs5@&L+yh z1HNf4kx)FV)y(I8U8ijrmWt~crDxB1mJ4K0$)}u}{}AWgmRKcO?LaNMbYIHpQSoCP zw3CWs%ZEDLpBQ3F29dt&q3s>V(EOySn6P}l&nWq6F&toc(~a%_OU7mr4Z@Bo zC6W?lm`^|HZXl8{M?3SHt}pEz;h+jAviCq~XnhK813!zRc`>H%kEXjIQ z22ryES;&ft=13$Jm;59SMKhEj{P-_J15pHyYqnqBQMX7n!kQ49q1-NFi+n+YGLYpW z2}O!d)oplvA!#`XyHkQYD}9+c`Z2a%8v_k2ZZwDzHHOap3mYn@6XpJK0^d3Pchs;Z z&MRC5-HHs63qx#xO+>Wdz;%a(L2+=FWm1xL*i@bKTJ02SB4sjefZ*^XZAsK-l9xOL zProjK-r@)N9PY#HET-})aRuBAI7)4az^(iVzpoXXv;BxJE5X5>{G0&&2pz98avyN8 zN-FA0+wn#|G(l@?){xh(W^zu7dZB1mp;i@rIh~CVU3)Us?u&kkEFn5-NEDt$SD)pm z2xE4Eb+gIn542%ULt%>(KAL`G;~9OE_9btVJDqwBxVz!%eun;ixJ>0=Ti4pqIoXBT z*u4lBR#+LRY8g%pVU8`9*_320cF@+)oen`P>?*KE8J5w?BvG7kvaPZR`6H&*oHn|W zQ?p~X2_em65Q!@}p58b{v}RXbAy+pyU=*5g@eOP*o`Qt1dNz|KOA)WeAM|ieIQc|2 zLT9u&UFXETk#87Wz-?Wm^k0M#FUv&PAGMFP|2P| zVsEd2I4r6?F``uRS)cC+nMF5MY~X@;>nS&ep&qSNZNSAB-1jjO?h;H911HN`Hmh-+ zf-FfPnQCI}&27;)EL#vjsi^r*d` zvVruBTY)u@?nZu11J8f6C@c{DxrKQJHV~S$?+&xp`Gd3%fm5|NZ56uO&af~!N0Y<@8<#0blsJMH`mh~p{*28A8gHMCh3e`?4KnJU^UILbV%tz=s=|P)LZwb9~iEJbS;DT_VD%! z<-c~i{`E>UUNi&Bgze<-wV!i`&R)4}RuwzEqBk$p?OJ{xH7x*Pj??EgWbU{o{}3_t z=}x=VC0x!n)bh+f+{QN4>wDr%IQiBr$nBehbL$&_$+qgTgVV(hm)*pWV->rAmzMEFlzMv*e;$mQybUIDC|2S-DLf2|Lda$@gSr_|ck7U-*;ipHAf<&Bbm>i>BW(*+ zuYbhYUo;E_r$sKTu*?2t2(!SNDA8CppzXwA){?mnv&IVNlB6Q|6x07W1{8ab;c-?D zMrO;x>LK=ZKUIGJ^p~>S7uZfbSdFNFfeC<-l@QgiEI{P*R&qTCHLOJzShm~P?r{qG z$(e1V%tY^ld8>h_`(J3F%k3VTuQb}-8Zr0+jB5LLnKpmx9;8a%-6Y0-x~*~CKa&so z!fc#A#rgCJnNG##V05U4WS~MvZAEyL<|nh3gfr2!rYr>0Y)YF|2d4S*(bh)KE*g$9 zanK(2MR#(_z3*cj-icwbzQtep1}36^=}{vM%&As9_{Mp(a&?r7&P?t=eu4(Y@7eFA z`cmCJcyP~P*vUfub{KIJgU6^8X1lW^6~mm;Pu$l$V3s4X*ahi2hO?0mCQ=%(}lwK?i2?Yw3QcYyVS_N5nLge4df*P~a9>z`YZ_N5h@ICu&y2 z4<$^I<3{ghO5XWGBr>poJUuQ>Y9kl?u+8w zvw{w$-?0|J4safnRW+34IpJM0_qi}~{^YPPRs*MActq3c&4i+=*vK<=u_HnxUUjHJ zNyXqdi-b-XZc1(`WVO<=1Ch}nPF3`uaKE;NbrN6@0x`N8I1Io#29FB~HiuFZvd!u^$_wG$tu_>G!fhfr3^Nm>+Xi2!>0yz3Bg#blK2FXZ7rQ)vZ zu1GiK2gNIW7{0K`lZX09V#DG1-um5(jOZ)})!JQa#%Uw*AvZ>kCd5rQ`VTacw+K#^ z?)iFj9I}M*e-M7{Y7lQZHiTrcV102_7{ba+DKV=ID%BVm^6`kYULkD0U&_uvqY6@0 zZZ`76o2iz``3AyLq@(VYu>0U=u$F5?l@o(J_*sFbY8H*u43&OH?=4|UsI_)ltT>pIi(FqVg=X#)(V}olda-k8~9Q+I>MXxL!T8Eisy9-|G55^&GmdE0iJE|r;MI`*0=+5 zq2J{i$>`OUkzAu{|;2PSe>oWW}v0rjGrH|0BX;qTlST7E;ibD**6|*2g7`3 zd9R7n?YWho`ktY$o8o}F)U$lEu;_JCsV~$D9oU`#PE%7Y8$gv%!zHTZHB20QxF#Y{ z7RITRFAkFm)Uq|vI@*!#2ZWU=pQ!DH!_zg&bmerzoav=bSw1qC*L$3dl?9znukh$0 za-6Y2x0=7SpbvcB_Y}6g>*g=>sf%w@jw*XZ$1UB=KLeN2GKF8{|FA0awZ6fwuIj1a z{}{*6X}=IKY#O<+6z;z`{^gf#eHLP483X)HUElzDitV@msu@Ba!_Gp=1Kl0#KY#+` z>znH2AqqkO6ro9BAh);LzIRtT^_AHlwO3gA>f$Na**Y0_YaLVtLLXy~{AxyG z^pLH&*|}J;7iq2y#UG<4`A}AE2MAMUPwq>3>1y{ANS2M?9XN&f^8kVK;F_o@nKVc> zmpP`6Nwb7Nx{>Gh;Ip>~P!7bNzQ&&{bc?jbN?LNjqyY*V7)cT73aZ>l*u$c4VI zot&ZVq0y1rPl7_CIOeGdUnZVUnU4El#Ons6G4za2Ne*c!g!FwYg3268;Q|w!QJhB0 zVQ6|8J$)8LsmNIdq;PQhx8%E1-26N@#f&8~6BGK^hKLj`PBe)OQY1!8 zAE7}v16eqgzAQ@Ua0BkjMVc~|Vf$m2mV>0vqi6KXi~-34wLH$l^Q^BT<=YNXne{MN zC4GvJy-8luXoCS`gi(hAip*>ty)w?FVDFa^+_3EmmR5-Re)%~Hb2J#OwzEQJLO$tI zT+K&eLXVNmt&ch<7O0>L4pq3vX-0hNLu!ii1uMa;AJfpv8{15Y&uyl)GiiH&u}wh| zyS9XeYi;s56TYetaHpHldv;0Xd_72^2jOE1DH1RZi&3(jiB1Pmr`AaZ4ZxI)EZ8DO)J2vwET{@PCBi&*5ny`k zFj+o&#^-^U@L$HY7U>*>T~KnWpf8(aQU`w!wHU5NZPM3SL)F zM6?%EKQ8}JKl_B_EGBuCpYn4)gGv3ZGj(RY;mmO}qfN9K?ME@`3+l5{jAZzLs%czN zGjq?H5i6|%L%+;O!ujLhLU0CKP3t8M&PLo{6T-nupQpY>_*VnL6f%GA$>-oTc^zEA z#~qw70s{GglPzsD%>SSN!Vh9~c1v!dTnJDdAtp(ef@2SE>+wY6ir1>HEDU)L`uHm5 zSR+A?r0#Bdlq@;)b~U}d^%M)%4`72Z7^Nmw$c!;#XudTYxw&Lcc?kv0#7iNt?96I{_ zY={hOi1=)jN%#Q_A7&bdHEBJ;q!79~2}7bVAi}HtElwyyVjPPF!Sv%=GxzjT|GqfZ zII@56EugM%3*3JA6aG1U@)K*A1(e5LP}}Pk;aZEmlTWSREOT&>wZtSr!ga5cOO-(5 zC@*pyQqX_tqxnlFD^9(NN$r^^!(kFgc#IsmgoMrAo`1+S$Tu~Jrbzsl$Tj09Gb{`~ z@!FA<_PUvm*YG)zja7-d znxz_pjh&v~)vTFr-+rQe@b^kR9N?I{edKheBtZv`eBDf~^xJX1`;GR4l7Z9A^?t{i z%jfMgEJf*`2LABSZ~XTM-|3@+wB8nT``kVY-P64(UsCT3D!*Cp^`R=AbxsVPwCHr- z;1k3N=imJka;OSD^guB^*qF`mxZz1`fJa1%n`8;UZB}^>9#KJ$0_+K2DKL@C(~5rz zILhPk#UHpvf>O2ZgNF6ux~`$yW25bz*YF>)WDVc8(ILj8=N`FCMi2a>g8LWk-BOl! zv<{skhru6oI&T@rZVbpepM=$oR!gRJH+Qb?fRI(@&MPUqvB1F+ZR`=LZl8B3aA7Cr zZXZpVOp$G1&wiY3?2V_Zw?IfDG+3=M$s)h?uI4WV`o6-GWg~A5m!N0Vp$8B`9?F0` z24_MVSEs~IOy=*G9MzQJkIWdU7CadN;O!-CZHf}b1k_H!7_km7`2sn2^)%S(8qQ%n zb{4c+-&`vptYk$n!SCia+JZwTB3=gZ0sVU#rWJj`m#o1(va8KjJLSRvL6q_;J5Ir+ z(su9Y%_*G!Y!5(=YVuBeILBV7Nu=c{VVG`-}4$l|1VrGo%QYg_nN z>mOg!<>J? zgq?B|8f2;2SC9C1Fyp3DtLdk}4Jq9Zu1ND$58nCx`fYC5*UUZ5-hb-@d63wWztRX} zOpzz~!w@C5;khkO(yfFao>Z(|zxD90?;Ao}*|d{6s!e5n$7NGx$%4i=97U#GLy&Y{ za+0J}PQ(_Crhb|Nth+m|<{GE$zB+Ta6qu}nI$I`imXmpbD&t34;}@C2*0Q&_LU(K%|Skm4LZr^Yn8`qV26{pBvczWQjtB(<>)t}(GT zuic+dw1dq`-yj7v0&RvBUeX05s6{*s^&03d_#9#B%LUNRA{j2Uq2xsc#U&RF>;Xt( z!YE7wJy)Xw9sm20{ep~<8N!-|!6REE3bH$ypw=w9bY>;aVn!XG`8JyUKoeO|h;^q- z-0)ma^`9$(g*iC6FFU5;QNP*fQC$>Bte?SO`_g z+*e7u6m{}rq}a3*W9yEC zB;`MS@|osH+P>Y;tPs~^Ib)MHvJwl_A8ctA)B%ho7G{eW)_hdTRMr^JZ9Og!mB3uF zdg{SS?$qi2dfW+HeAIWtwIr8dERkGmx!~%TeV^ck;b_E2N z#AqtU7@nJCdlS_%SRH$J)Kzf0VHUf<(vYLuqUTlS52f6T=k4#-XZnSJGcZo>|9fC& zV##lt_@|+F%;uE3(&=k}u4T;lsp8|rDb7Tx{?jts2DiZ9w^L!$`A>xn-z{~rGMf8s z1{*l~_Tw1pLy~Q43J*)}&yP8AiE;#~qT!m2-WV-Zom|d*ZJ6}#t5~ITUs(OTL$ldl z&3V=xHa&gU?a=bae^2f_k14Ih$GZ*43?PAQeX8$*} zxR|i1gS|bU`C}r^iBS_!wVbAhoP8ixv4}QKU`>|=74u>lj>B2%REbeL>`1w6ny^4$6(AX2wl_2RFNt_jXPHe9VZ)Z^W_K$3=iV669GizNVyNSv= ztuC2UBNW*u#96|R{|RYa?Sl9#(r;N&kT<

6G`^Z0KJhJ^8b+k~u6CVHpnZ_j|x2 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%0D8*gweH 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%0Do5)J2&d?Ulta&p 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

+%kXIMUk8l|pAdp9InkIA;5 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 20.04.05 LTS. This can be on bare metal or running on WSL2 on Windows 10/11." ] }, { @@ -65,161 +52,33 @@ "\n", " conda activate idp \n", " \n", - "* __Step 4__: Now, you have the virtual environment with intel-python installed. Now you have to install jupyter-notebook additionally for the new environment with this command (after the activation of the environment with the command above):\n", + "* __Step 4__: Now, you have the virtual environment with intel-python installed. Now you have to install jupyter-lab additionally for the new environment with this command (after the activation of the environment with the command above):\n", "\n", " \n", " conda install -c conda-forge jupyterlab\n", " \n", " \n", - " [The latest release notes and links to forums for the Intel Distribution for Python can be found here](https://www.intel.com/content/www/us/en/developer/articles/release-notes/distribution-for-python-release-notes.html)" - ] - }, - { - "cell_type": "markdown", - "id": "8c2aa59f-eedd-426f-96ee-c1c8b0499d90", - "metadata": {}, - "source": [ - "## Intel AI Kits" - ] - }, - { - "cell_type": "markdown", - "id": "0e215fa2-06aa-451d-9434-f63188f311be", - "metadata": {}, - "source": [ - "## Use APT Package Manager\n", - "\n", - "If you want to use your distributions package manager to keep all of the Intel optimized software up to date, the following method could be of interest. This provides a bit more software but has the added convenience of just automatically updating along with the rest of your system." - ] - }, - { - "cell_type": "markdown", - "id": "32b30c30-8b6d-433e-9e43-f6d99a0a4b97", - "metadata": {}, - "source": [ - "## Add the Intel repositories to your system keyring\n", - "\n", - "__Step 1:__\n", - "\n", - "#### Download the key to system keyring\n", - "wget -O- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB | gpg --dearmor | sudo tee /usr/share/keyrings/oneapi-archive-keyring.gpg > /dev/null\n", - "\n", - "#### Add signed entry to apt sources and configure the APT client to use Intel repository:\n", - "echo \"deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main\" | sudo tee /etc/apt/sources.list.d/oneAPI.list.0\n", - "\n", - "__Step 2:__ \n", - "\n", - " sudo apt update\n", - " sudo apt upgrade\n", - " \n", - "* After the upgrade the Intel oneAPI Base Toolkit as well as all the [toolkits](https://www.intel.com/content/www/us/en/develop/documentation/installation-guide-for-intel-oneapi-toolkits-linux/top/installation/install-using-package-managers/apt.html) will be available for install.\n", - "\n", - "__Step 3:__\n", - "\n", - " sudo apt install oneapi-basekit\n", - " \n", - "__Step 4:__\n", - "\n", - "* In order to activate the environment execute the following command\n", - "\n", - " source /opt/intel/oneapi/setvars.sh\n", - " \n", - "* This will result in the following environment being installed. Add it to your .bashrc or execute it manually.\n", - "\n", - " base * /opt/intel/oneapi/intelpython/latest\n", - " 2022.1.0 /opt/intel/oneapi/intelpython/latest/envs/2022.1.0\n", - "\n", - "__Step 5:__\n", - "\n", - "* Change ownership of ~/.conda to your user instead of root. This will enable you to add features without having to use sudo.\n", - "\n", - " sudo chown $USER:$USER -R .conda\n", - "\n", - "* We will need to add jupyter and any other features you might want.\n", - "\n", - " create a new environment conda create -–clone base –-name jupyter\n", - " \n", - " conda env list\n", - " \n", - " jupyter /home/user/.conda/envs/jupyter\n", - " base * /opt/intel/oneapi/intelpython/latest\n", - " 2022.1.0 /opt/intel/oneapi/intelpython/latest/envs/2022.1.0\n", - " \n", + " [The latest release notes and links to forums for the Intel Distribution for Python can be found here](https://www.intel.com/content/www/us/en/developer/articles/release-notes/distribution-for-python-release-notes.html)\n", " \n", - "__Step 6:__\n", - "\n", - " conda activate jupyter\n", - " \n", - "* If running on a local install of Ubuntu enter the below in the terminal:\n", + "* __Step 5__: Run Jupyter from your home directory:\n", "\n", - " jupyter lab\n", - " \n", - "* If running on wsl2 \n", - "\n", - " jupyter lab --no-browser\n", - " \n", - "* The contents of the oneAPI Base Toolkit are described below:" + " jupyterlab" ] }, { "cell_type": "markdown", - "id": "89869660-2181-470a-90d9-1a2f705a7fef", - "metadata": {}, - "source": [ - "## Intel® oneAPI Base Toolkit\n", - "\n", - "* Heterogeneous Development across CPUs, GPUs, and FPGAs\n", - "\n", - "* The Intel® oneAPI Base Toolkit (Base Kit) is a core set of tools and libraries for developing high-performance, data-centric applications across diverse architectures. It features an industry-leading C++ compiler that implements SYCL*, an evolution of C++ for heterogeneous computing.\n", - "\n", - "* Domain-specific libraries and the Intel® Distribution for Python* provide drop-in acceleration across relevant architectures. Enhanced profiling, design assistance, and debug tools complete the kit.\n", - "\n", - "* The contents of the kit are as follows:\n", - "\n", - "* Intel oneAPI Base Toolkit\n", - "* General Compute\n", - "\n", - " * Intel® oneAPI Collective Communications Library\n", - " * Intel® oneAPI Data Analytics Library\n", - " * Intel® oneAPI Deep Neural Networks Library\n", - " * Intel® oneAPI DPC++/C++ Compiler\n", - " * Intel® oneAPI DPC++ Library\n", - " * Intel® oneAPI Math Kernel Library\n", - " * Intel® oneAPI Threading Building Blocks\n", - " * Intel® oneAPI Video Processing Library\n", - " * Intel® Advisor\n", - " * Intel® Distribution for GDB*\n", - " * Intel® Distribution for Python*\n", - " * Intel® DPC++ Compatibility Tool\n", - " * Intel® FPGA Add-on for oneAPI Base Toolkit\n", - " * Intel® Integrated Performance Primitives\n", - " * Intel® VTune™ Profiler" - ] - }, - { - "cell_type": "markdown", - "id": "fc692595-5df9-4491-a0ab-66912285d13b", + "id": "0e215fa2-06aa-451d-9434-f63188f311be", "metadata": {}, "source": [ - "### If you are doing strictly machine learning you are done, but if you want to add any frameworks this can easily be done by adding the AI Analytics Toolkit.\n", + "## Use APT Package Manager to Install the Intel® AI Analytics Toolkit\n", "\n", - "__Step 1:__\n", + "If you want to use your distributions package manager to keep all of the Intel optimized software up to date, the following method could be of interest. This provides a bit more software but has the added convenience of just automatically updating along with the rest of your system.\n", "\n", - " sudo apt install intel-aikit\n", - " \n", - "* The contents of the AI-Kit are described below. A number of additional conda environments are created after installation." - ] - }, - { - "cell_type": "markdown", - "id": "1935295d-e668-4f16-a6c3-229af18ef27f", - "metadata": {}, - "source": [ "## Intel® AI Analytics Toolkit\n", "\n", "The following additional packages will be installed:\n", "\n", - " * intel-aikit-getting-started intel-oneapi-model-zoo intel-oneapi-modin intel-oneapi-neural-compressor intel-oneapi-pytorch intel-oneapi-tensorflow (1341 MB)\n", + " * intel-aikit-getting-started intel-oneapi-model-zoo intel-oneapi-modin intel-oneapi-neural-compressor intel-oneapi-pytorch intel-oneapi-tensorflow (~6500 MB)\n", " \n", " * End-to-End AI and Machine Learning Acceleration\n", "\n", @@ -233,177 +92,73 @@ }, { "cell_type": "markdown", - "id": "daba4efa-fba1-4a86-83a4-d7c0d5a85e69", - "metadata": {}, - "source": [ - "## Intel Data Science Workstation Kit\n", - "``` user@Precision-5820-1:~$ conda env list\n", - "# conda environments:\n", - "#\n", - "jupyter /home/user/.conda/envs/jupyter\n", - "base * /opt/intel/oneapi/intelpython/latest\n", - "2022.1.0 /opt/intel/oneapi/intelpython/latest/envs/2022.1.0\n", - "modin /opt/intel/oneapi/intelpython/latest/envs/modin\n", - "modin-0.13.3 /opt/intel/oneapi/intelpython/latest/envs/modin-0.13.3\n", - "pytorch /opt/intel/oneapi/intelpython/latest/envs/pytorch\n", - "pytorch-1.10.0 /opt/intel/oneapi/intelpython/latest/envs/pytorch-1.10.0\n", - "tensorflow /opt/intel/oneapi/intelpython/latest/envs/tensorflow\n", - "tensorflow-2.8.0 /opt/intel/oneapi/intelpython/latest/envs/tensorflow-2.8.0\n", - " /opt/intel/oneapi/modin/latest\n", - " /opt/intel/oneapi/pytorch/latest\n", - " /opt/intel/oneapi/tensorflow/latest \n", - "```" - ] - }, - { - "cell_type": "markdown", - "id": "b374f4ac-23a0-45b6-b043-8e121c9c2af0", - "metadata": {}, - "source": [ - "# Intel Data Science Workstation Kit" - ] - }, - { - "cell_type": "markdown", - "id": "1fa88eb4-13c6-4ad7-bba2-a4bd8725b7d4", - "metadata": {}, + "id": "32b30c30-8b6d-433e-9e43-f6d99a0a4b97", + "metadata": { + "tags": [] + }, "source": [ - "This package installs a great deal of software all at once. The method above allows one to have more control over their environments and will alway be the latest version. However, if you want all the components listed below which have had some validation to help ensure smooth functionality amongst all the versions this is a reasonable choice. The tradeoff is this install method will lag behind the latest releases to the Intel conda channel.\n", - "\n", - "* The Data Science Workstation lineup from [Intel and Intel's OEM partners](https://www.intel.com/content/www/us/en/products/systems-devices/workstations/data-science-workstations.html) provides data scientists, data analysts, and developers productive and cost-effective AI development solutions to quickly generate insights for their organizations.\n", - "\n", - "* Open, optimized software tools are coupled with optimal compute and memory hardware configurations to deliver the best out-of-the-box developer experience, whether you are prototyping or developing production AI.\n", - "* High-memory systems can fit large datasets for efficient preprocessing, considerably shortening the time required to sort, filter, label, and transform your data.\n", - "* Familiar Python*‡ APIs deliver software accelerations of up to 10x to 100x for training and inference.\n", - "* Together, the hardware and software bundle inside the workstations enables data scientists to easily iterate and analyze data at scale.\n", + "## Add the Intel repositories to your system keyring\n", "\n", - "* Central to the optimized AI software stack of the Data Science Workstation† is the Intel oneAPI AI Analytics Toolkit (AI Kit) that accelerates end-to-end data science and machine-learning pipelines using Python-based tools and frameworks. The components of the toolkit are open and standards-based, while offering both drop-in acceleration with almost no code changes and seamless scaling to multiple nodes and architectures.\n", + "__Step 1:__\n", "\n", + "#### Download the key to system keyring\n", + "wget -O- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB | gpg --dearmor | sudo tee /usr/share/keyrings/oneapi-archive-keyring.gpg > /dev/null\n", "\n", + "#### Add signed entry to apt sources and configure the APT client to use Intel repository:\n", + "echo \"deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main\" | sudo tee /etc/apt/sources.list.d/oneAPI.list\n", "\n", - "### Components of This Toolkit:\n", - "* PyTorch*: The Intel® Math Kernel Library for Deep Neural Networks (Intel® MKL-DNN) is included in PyTorch as the default math kernel library for deep learning. See this article on the Intel® Developer Zone for more details.\n", - "* Intel® Optimization for TensorFlow*: This version integrates primitives from the Intel® Math Kernel Library for Deep Neural Networks (Intel® MKL-DNN) into the TensorFlow runtime for accelerated performance.\n", - "* Intel® Distribution for Python*: Get faster Python application performance right out of the box, with minimal or no changes to your code. This distribution is integrated with Intel® Performance Libraries such as the Intel® oneAPI Math Kernel Library and the Intel®oneAPI Data Analytics Library. The distribution also includes daal4py, a Python module integrated with the Intel® oneAPI Data Analytics Library as well as the Python Data Parallel Processing Library (PyDPPL), a light weight Python wrapper for Data Parallel C++ and SYCL that provides a data parallel interface and abstractions to efficiently tap into device management features of CPUs and GPUs running on Intel® Architecture.\n", - "* Intel® Distribution of Modin*, which enables you to seamlessly scale preprocessing across multi nodes using this intelligent, distributed dataframe library with an identical API to pandas. This distribution is only available by Installing the Intel® AI Analytics Toolkit with the Conda* Package Manager.\n", - "* Low Precision Optimization Tool: Provide a unified, low-precision inference interface across multiple deep learning frameworks optimized by Intel with this open-source Python library.\n", - "* Intel® Extension for Scikit-learn*: a seamless way to speed up your Scikit-learn application using the Intel® oneAPI Data Analytics Library (oneDAL). Patching scikit-learn accelerates stock scikit by single line change. \n", + "__Step 2:__ \n", "\n", - "# Installation\n", + " sudo apt update\n", + " sudo apt upgrade\n", + " \n", + "* After the upgrade the Intel oneAPI intel-aikit as well as all the [toolkits](https://www.intel.com/content/www/us/en/develop/documentation/installation-guide-for-intel-oneapi-toolkits-linux/top/installation/install-using-package-managers/apt.html) will be available for install.\n", "\n", - "This instance was built using Ubuntu 20.04 LTS. If you are on Windows 10/11, jump to addendum to setup the environment and come back here to Step 1.\n", + "__Step 3:__\n", "\n", - "__Step 1:__ Update your system:\n", + " sudo apt install intel-aikit\n", "\n", - "Launch a terminal (CTRL+ALT+T) and enter\n", + "* After the install which will take some time your environment should look similar to the one below:\n", "\n", - " sudo apt update && sudo apt upgrade -y\n", - " \n", - "__Step 2:__ After the update a reboot will be required, enter:\n", "\n", - " sudo reboot\n", + "__Step 4:__\n", "\n", - "__Step 3:__ Launch a terminal (CTRL+ALT+T) and enter. __Note__: The download is approximately 1.8G, a stable network connection is desired.\n", + "* Exit the terminal session and restart a new one, it will then be necessary to initialize the environment.\n", "\n", - " wget https://registrationcenter-download.intel.com/akdlm/irc_nas/18273/Intel-AIkit-2021.4.1-Linux-x86_64.sh\n", + " source /opt/intel/oneapi/setvars.sh\n", " \n", - " [If the download fails check for the correct link here.](https://www.intel.com/content/www/us/en/developer/tools/oneapi/ai-analytics-toolkit.html#gs.1bs6zw)\n", - "\n", + " conda env list\n", " \n", - "__Step 4:__ Change the permissions of the resulting download so that it is an executable.\n", - "\n", - " chmod 755 Intel-AIkit-2021.4.1-Linux-x86_64.sh\n", - "\n", - "__Step 5:__ Install the Intel AIkit\n", - "\n", - " ./Intel-AIkit-2021.4.1-Linux-x86_64.sh\n", - "\n", - " Follow the steps and make sure to choose yes to the final question “Do you wish the installer to initialize the Intel-AIkit”\n", - "\n", - "__Step 6:__ Close the terminal and launch a new one. This will result in the base conda environment being activated.\n", - "\n", - "* Note*\n", - " * This collection of packages has been validated against each other for functionality. At this point this is a stable environment and should be treated as the base package environment. Any modifications to this collection should be done in a cloned environment so that changes can be isolated and you can easily get back to a known good. \n", - "\n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "id": "014f84c2-c177-4c96-8c55-71aaac6a30d5", - "metadata": {}, - "source": [ - "## Add Jupyter to the Data Science Workstation Installation\n", - "\n", - "### In this section we will:\n", + "* If all went well the below environments should be available.\n", "\n", - "* Create a new environment and add some additional packages.\n", - "* Clone the Intel samples repository.\n", - "* Run a sample project using a Jupyter Notebook.\n", "\n", + "```\n", + "base * /opt/intel/oneapi/2023.0.1/oneapi/intelpython/latest\n", + "2023.0.0 /opt/intel/oneapi/2023.0.1/oneapi/intelpython/latest/envs/2023.0.0\n", + "modin /opt/intel/oneapi/2023.0.1/oneapi/intelpython/latest/envs/modin\n", + "pytorch /opt/intel/oneapi/2023.0.1/oneapi/intelpython/latest/envs/pytorch\n", + "pytorch-gpu /opt/intel/oneapi/2023.0.1/oneapi/intelpython/latest/envs/pytorch-gpu\n", + "tensorflow /opt/intel/oneapi/2023.0.1/oneapi/intelpython/latest/envs/tensorflow\n", + "tensorflow-gpu /opt/intel/oneapi/2023.0.1/oneapi/intelpython/latest/envs/tensorflow-gpu\n", + "```\n", "\n", - "__Step 1:__ Create New Environment\n", - "\n", - "* Launch a terminal \n", " \n", - " (CTRL+ALT+T) and enter\n", - " conda create –-clone base –-name for example:\n", - " conda create -–clone base –-name jupyter\n", - "\n", - "__Step 2:__\n", - "\n", - " Conda env list\n", - "\n", - "* You should see two environments now. The * denotes the active environment. \n", - "* Activate the new environment:\n", - "\n", - " Conda activate jupyter\n", + "__Step 5:__\n", "\n", - "* If you check the environments the asterisks should be next to the new environment name and the prompt should indicate the environment name as well.\n", - " conda env list\n", + "* Pick the environment that you want to use and add jupyter to it or create a new environment.\n", "\n", - "__Step 3:__ Start Jupyter Lab\n", + " conda install -c conda-forge jupyterlab\n", + " \n", + "__Step 6:__\n", "\n", - "From the terminal enter:\n", + "* If running on a local install of Ubuntu enter the below in the terminal:\n", "\n", " jupyter lab\n", + " \n", + "* If running on wsl2 \n", "\n", - "* The browser should auto launch. Then on the panel on the left navigate to where you downloaded the notebooks." - ] - }, - { - "cell_type": "markdown", - "id": "0523c76b-5cff-4da4-b40b-a22b72925e2b", - "metadata": {}, - "source": [ - "## Addendum: WSL2 on Windows 11:\n", - "\n", - "__Step 1:__\n", - "\n", - "* Tap the Windows Key and enter update, windows update will be the first match. Go through that process and reboot.\n", - "\n", - "__Step 2:__\n", - "\n", - "* Launch windows terminal with administrative privileges. Tap the Windows key and enter terminal. The down carrot on the right will expose the admin privilege option. \n", - "\n", - "\n", - "__Step 3:__\n", - "\n", - "* At the prompt enter: wsl – install (two dashes) This will automatically install Ubuntu 20.04\n", - "\n", - "__Step 4:__\n", - "\n", - "* Restart -- The install actually takes place here and after the reboot, this takes a couple of minutes.\n", - "\n", - "__Step 5:__\n", - "\n", - "* Ubuntu will launch automatically, follow the steps to create a new user. It’s a good idea to have the identical username for Windows as you do Ubuntu.\n", - "\n", - "__Step 6:__\n", - "\n", - "* Jump back up to [Intel Data Science Workstation Kit](#What-is-Data-Parallel-C++) and follow along, even the update steps. \n", - " * Note* a reboot in WSL2 is exiting the WSL2 session. To relaunch WSL2 tap the Windows key, enter terminal and then click on the down carrot and choose Ubuntu. This is a great way to have multiple terminal sessions in a tabbed environment." + " jupyter lab --no-browser\n", + " \n" ] }, { @@ -425,19 +180,19 @@ { "cell_type": "code", "execution_count": null, - "id": "07e15b07-cf46-4d40-ae7e-dc58dbfbc60b", + "id": "e15ba404-7359-4fa1-a620-168d151f43f7", "metadata": {}, "outputs": [], "source": [ - "! rsync -avhP /data/oneapi_workshop/AI_Kit_XGBoost_Predictive_Modeling ~/AI_Kit_XGBoost_Predictive_Modeling" + "! rsync -avhP /data/oneapi_workshops/AI_Kit_XGBoost_Predictive_Modeling ~/AI_Kit_XGBoost_Predictive_Modeling" ] } ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3 (Intel® oneAPI 2023.0)", "language": "python", - "name": "python3" + "name": "c009-intel_distribution_of_python_3_oneapi-beta05-python" }, "language_info": { "codemirror_mode": { @@ -449,7 +204,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.7" + "version": "3.9.15" } }, "nbformat": 4, diff --git a/AI-and-Analytics/Jupyter/Predictive_Modeling_Training/AI_Kit_XGBoost_Predictive_Modeling/03_XGBoost/XGBoost.ipynb b/AI-and-Analytics/Jupyter/Predictive_Modeling_Training/AI_Kit_XGBoost_Predictive_Modeling/03_XGBoost/XGBoost.ipynb index 1f57868f37..28c09d5518 100644 --- a/AI-and-Analytics/Jupyter/Predictive_Modeling_Training/AI_Kit_XGBoost_Predictive_Modeling/03_XGBoost/XGBoost.ipynb +++ b/AI-and-Analytics/Jupyter/Predictive_Modeling_Training/AI_Kit_XGBoost_Predictive_Modeling/03_XGBoost/XGBoost.ipynb @@ -33,16 +33,6 @@ "[Images Source](https://commons.wikimedia.org/wiki/File:3D_view_of_an_event_recorded_with_the_CMS_detector_in_2012_at_a_proton-proton_centre_of_mass_energy_of_8_TeV.png)" ] }, - { - "cell_type": "markdown", - "id": "2f66db55-d1f8-407e-b7bb-b353ce78fa56", - "metadata": {}, - "source": [ - "# Example environment creation:\n", - "\n", - "This environment is the latest [Intel® oneAPI AI Analytics Toolkit](https://software.intel.com/content/www/us/en/develop/tools/oneapi/ai-analytics-toolkit.html) base environment, which includes data analytics and machine learning workflows and Intel optimizations for XGboost. See [here](https://software.intel.com/content/www/us/en/develop/articles/installing-ai-kit-with-conda.html) for more installation information." - ] - }, { "cell_type": "markdown", "id": "57efb70b-7073-4baa-b544-253551c7bb58", @@ -61,29 +51,27 @@ "outputs": [], "source": [ "import sklearn\n", - "#from sklearnex import patch_sklearn\n", - "#patch_sklearn()\n", + "from sklearnex import patch_sklearn\n", + "patch_sklearn()\n", "#unpatch_sklearn()\n", "from sklearn.model_selection import train_test_split\n", "from sklearn.metrics import mean_squared_error\n", + "import warnings\n", + "warnings.simplefilter(action='ignore', category=FutureWarning)\n", "import pandas as pd\n", + "from pandas import MultiIndex, Int16Dtype # if you don't import in this order you will get a pandas.Int64Index fix for FutureWarning error.\n", "import xgboost as xgb\n", "import numpy as np\n", - "import warnings\n", - "import time\n", + "from time import perf_counter\n", "print(\"XGB Version : \", xgb.__version__)\n", - "print(\"Scikit-Learn Version : \", sklearn.__version__)" + "print(\"Scikit-Learn Version : \", sklearn.__version__)\n", + "print(\"Pandas Version : \", pd.__version__)" ] }, { "cell_type": "markdown", "id": "68230356-c247-4fc2-b9b2-9510e44584fd", - "metadata": { - "jupyter": { - "source_hidden": true - }, - "tags": [] - }, + "metadata": {}, "source": [ "## Import the Data:\n", "\n", @@ -99,7 +87,7 @@ "id": "88a41477-7724-4650-8252-dd80745ca226", "metadata": {}, "source": [ - "### To get the data using the Intel DevCloud execute the following cell:" + "### To get the data using the Intel DevCloud execute the following cells:" ] }, { @@ -109,7 +97,16 @@ "metadata": {}, "outputs": [], "source": [ - "# ! cp /data/oneapi_workshop/big_datasets/xgboost/HIGGS.tar.gz .\n", + "# ! cp /data/oneapi_workshop/big_datasets/xgboost/HIGGS.tar.gz ." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0cfd4799-114c-474b-8686-ba12156faa91", + "metadata": {}, + "outputs": [], + "source": [ "# ! tar -xzf HIGGS.tar.gz" ] }, @@ -145,7 +142,7 @@ "metadata": {}, "outputs": [], "source": [ - "! gunzip HIGGS.csv.gz" + "# ! gunzip HIGGS.csv.gz" ] }, { @@ -165,10 +162,21 @@ "source": [ "filename = 'HIGGS.csv'\n", "names = ['class_label', 'lepton pT', 'lepton eta', 'lepton phi', 'missing energy magnitude', 'missing energy phi', 'jet 1 pt', 'jet 1 eta', 'jet 1 phi', 'jet 1 b-tag', 'jet 2 pt', 'jet 2 eta', 'jet 2 phi', 'jet 2 b-tag', 'jet 3 pt', 'jet 3 eta', 'jet 3 phi', 'jet 3 b-tag', 'jet 4 pt', 'jet 4 eta', 'jet 4 phi', 'jet 4 b-tag', 'm_jj', 'm_jjj', 'm_lv', 'm_jlv', 'm_bb', 'm_wbb', 'm_wwbb']\n", - "data = pd.read_csv(filename, names=names, delimiter=\",\", nrows=100000)\n", + "#data = pd.read_csv(filename, names=names, delimiter=\",\", nrows=100000)\n", + "data = pd.read_csv(filename, names=names, delimiter=\",\", nrows=1100000)\n", "print(data.shape)" ] }, + { + "cell_type": "code", + "execution_count": null, + "id": "505ce472-a525-42c3-b995-ddc2c3aa2b43", + "metadata": {}, + "outputs": [], + "source": [ + "%time p_df = pd.read_csv(\"HIGGS.csv\")" + ] + }, { "cell_type": "markdown", "id": "0d7249bc-4e6b-4a28-8894-00b14c61d4f2", @@ -228,7 +236,7 @@ "id": "d339991a-3485-49ef-8151-c5c8020fc586", "metadata": {}, "source": [ - "* In this scenario loading 100000 rows the balance isn't too skewed. " + "* In this scenario loading 100000 rows the balance isn't too skewed, the next cell is optional." ] }, { @@ -277,7 +285,7 @@ "outputs": [], "source": [ "#check split of data. This is the x variable.\n", - "#print(data.iloc[:,1:])" + "print(data.iloc[:,1:])" ] }, { @@ -288,7 +296,7 @@ "outputs": [], "source": [ "# This is the y target vector -- the ones we want to predict.\n", - "# print(data.iloc[:,0])" + "print(data.iloc[:,0])" ] }, { @@ -378,12 +386,12 @@ "}\n", "\n", "# Train the model\n", - "warnings.filterwarnings(\"ignore\", category=UserWarning)\n", - "t = time.process_time() # Time fit function\n", + "warnings.simplefilter(action='ignore', category=UserWarning)\n", + "t1_start = perf_counter() # Time fit function\n", "model_xgb= xgb.XGBClassifier(**xgb_params)\n", "model_xgb.fit(X_train,y_train)\n", - "elapsed_time = time.process_time() - t\n", - "print (\"It took\",elapsed_time,\" to fit.\")" + "t1_stop = perf_counter()\n", + "print (\"It took\", t1_stop-t1_start,\" to fit.\")" ] }, { @@ -474,7 +482,7 @@ "\n", "[These descriptions are straight from the docs, which you can view all parameters explanation here.](https://xgboost.readthedocs.io/en/stable/parameter.html)\n", "\n", - "Feel free to change these values, these are a good starting point for round one. Word of caution this takes ~ 30 minutes on an Intel® Xeon® 6128 running in the Intel DevCloud. " + "Feel free to change these values, these are a good starting point for round one. Word of caution this takes ~ 1 to 3 hours on an Intel® Xeon® 6128 running in the Intel DevCloud. " ] }, { @@ -488,11 +496,11 @@ " \"learning_rate\": [0.1, 0.3, 0.5],\n", " \"gamma\": [0, 0.25, 1],\n", " \"max_depth\": [4, 6, 8],\n", - " \"subsample\": [.5, 1],\n", + " \"subsample\": [0.5, 1],\n", " \"colsample_bytree\": [0.7, 1],\n", " \"colsample_bynode\": [0.7, 1],\n", " \"reg_lambda\": [0, 1, 10],\n", - " \"scale_pos_weight\": [1, 3, 5],\n", + " \"scale_pos_weight\": [1],\n", "}" ] }, @@ -504,15 +512,23 @@ "outputs": [], "source": [ "from sklearn.model_selection import GridSearchCV\n", + "xgb_params2 = {\n", + " 'objective': 'binary:logistic',\n", + " 'predictor': 'cpu_predictor',\n", + " 'disable_default_eval_metric': 'true',\n", + " 'tree_method': 'hist', \n", + "}\n", + "# Necessary for now to supress multi-threaded Future errors with respect to pandas and XGBoost\n", + "import os\n", + "os.environ['PYTHONWARNINGS']='ignore::FutureWarning'\n", "\n", - "# Use binary logistic classifier\n", - "model_xgb = xgb.XGBClassifier(objective=\"binary:logistic\")\n", + "# Train the model\n", + "model_xgb= xgb.XGBClassifier(**xgb_params2, use_label_encoder=False)\n", "\n", "# Setup grid search n_jobs=-1 uses all cores, reducing cv from 5 to 3 for speed, scoring is done using area under curve.\n", "grid_cv = GridSearchCV(model_xgb, param_grid, n_jobs=-1, cv=3, scoring=\"roc_auc\")\n", "\n", - "# This fit function takes a while, make sure you are ready.\n", - "warnings.filterwarnings(\"ignore\", category=UserWarning)\n", + "# This fit function takes a while--hours, make sure you are ready.\n", "_ = grid_cv.fit(X_train, y_train)" ] }, @@ -543,7 +559,7 @@ "source": [ "### Results\n", "\n", - " grid_cv.best_score_ = 0.8002252116945674 grid cv.best_params\n", + " grid_cv.best_score_ = 0.80 grid cv.best_params\n", "\n", " {'colsample_bytree': 1, 'gamma': 0, 'learning_rate': 0.1, 'max_depth': 8, 'reg_lambda': 10, 'scale_pos_weight': 1, 'subsample': 1}\n", "\n", @@ -565,7 +581,7 @@ " 'reg_lambda': 10,\n", " 'scale_pos_weight': 1,\n", " \n", - "From this result it would be worth exploring a higher tree depth as it was at the edge of our parameters as well as the reg_lambda parameter. This is an exercise you can run setting the best values and adding some additional ranges. For exampel max_depth: [8, 10, 12]" + "From this result it would be worth exploring a higher tree depth as it was at the edge of our parameters as well as the reg_lambda parameter. This is an exercise you can run setting the best values and adding some additional ranges. For example max_depth: [8, 10, 12]" ] }, { @@ -596,7 +612,7 @@ "\n", " n_estimators:, default=100\n", "\n", - "The number of trees in the forest. A good way to see how many trees might be useful is to plot the learning curve. since this is a classification problem we will use log loss as our measurement where lower values are better. \n", + "n_estimaters represents the number of trees in the forest. A good way to see how many trees might be useful is to plot the learning curve. Since this is a classification problem we will use log loss as our measurement where lower values are better. \n", "\n", "Our orignal fit function needs to be modified to include eval_metric with the type set to logloss. In addition we need to define the evaluation data set so that the results are evaluated after each round in order to plot them.\n" ] @@ -619,7 +635,7 @@ "metadata": {}, "outputs": [], "source": [ - "# fit the model\n", + "# Fit the model\n", "model_xgb.fit(X_train, y_train, eval_metric='logloss', eval_set=evalset)" ] }, @@ -681,7 +697,7 @@ "\n", "* From the curves above you can see that they are still at a slope when n_estimators is at 100. In this case it would seem that increasing the number of trees might yield a better result. We know that we achieve 72% when using the default 100 trees and our best results discovered via the grid search is approximately 80%. Can we do better?\n", "\n", - "* Start by setting up a new parameters section and use the values discovered earlier. In addition set n_estimators to 250 and see if a better result is achieved." + "* Start by setting up a new parameters section and use the values discovered earlier. In addition set n_estimators to 1000 and see if a better result is achieved." ] }, { @@ -703,16 +719,15 @@ " 'reg_lambda': 10,\n", " 'scale_pos_weight': 1,\n", " 'tree_method': 'hist', \n", - " 'n_estimators': 250\n", + " 'n_estimators': 1000,\n", "}\n", "\n", "# Train the model\n", - "warnings.filterwarnings(\"ignore\", category=UserWarning)\n", - "t = time.process_time() # Time fit function\n", + "t1_start = perf_counter() # Time fit function\n", "model_xgb= xgb.XGBClassifier(**xgb_params)\n", "model_xgb.fit(X_train,y_train, eval_metric='logloss', eval_set=evalset, verbose=True)\n", - "elapsed_time = time.process_time() - t\n", - "print (\"It took\",elapsed_time,\" to fit.\")" + "t1_stop = perf_counter()\n", + "print (\"It took\", t1_stop-t1_start,\"seconds to fit.\")" ] }, { @@ -767,7 +782,7 @@ "source": [ "## So how many trees do we need really?\n", "\n", - "* It takes awhile to watch 250 trees get evaluated, a great performance improvement is to use the XGBoost early stopping capbility.\n", + "* It takes awhile to watch 1000 trees get evaluated, a great performance improvement is to use the XGBoost early stopping capability.\n", "\n", "* Modify the fit function to stop the training after 10 to 15 rounds of no improvement. \n", " \n", @@ -810,9 +825,9 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3 (ipykernel)", + "display_name": "Python 3 (Intel® oneAPI 2023.0)", "language": "python", - "name": "python3" + "name": "c009-intel_distribution_of_python_3_oneapi-beta05-python" }, "language_info": { "codemirror_mode": { @@ -824,7 +839,30 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.7" + "version": "3.9.15" + }, + "nbTranslate": { + "displayLangs": [ + "*" + ], + "hotkey": "alt-t", + "langInMainMenu": true, + "sourceLang": "en", + "targetLang": "fr", + "useGoogleTranslate": true + }, + "toc": { + "base_numbering": 1, + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false } }, "nbformat": 4, diff --git a/AI-and-Analytics/Jupyter/Predictive_Modeling_Training/AI_Kit_XGBoost_Predictive_Modeling/04_oneDal/3D_view_energy_of_8_TeV.png b/AI-and-Analytics/Jupyter/Predictive_Modeling_Training/AI_Kit_XGBoost_Predictive_Modeling/04_oneDal/3D_view_energy_of_8_TeV.png new file mode 100644 index 0000000000000000000000000000000000000000..11240522f2b6ce73757661dbf0f3103c7b382d97 GIT binary patch literal 727032 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

6G`^Z0KJhJ^8b+k~u6CVHpnZ_j|x2 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%0D8*gweH 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%0Do5)J2&d?Ulta&p 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

+%kXIMUk8l|pAdp9InkIA;5 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 #include #include -#include // dpc_common.hpp can be found in the dev-utilities include folder. // e.g., $ONEAPI_ROOT/dev-utilities//include/dpc_common.hpp #include "dpc_common.hpp" #include "mandel.hpp" - using namespace std; using namespace sycl; diff --git a/DirectProgramming/C++SYCL/DenseLinearAlgebra/complex_mult/src/complex_mult.cpp b/DirectProgramming/C++SYCL/DenseLinearAlgebra/complex_mult/src/complex_mult.cpp index 0560422317..405d13848f 100644 --- a/DirectProgramming/C++SYCL/DenseLinearAlgebra/complex_mult/src/complex_mult.cpp +++ b/DirectProgramming/C++SYCL/DenseLinearAlgebra/complex_mult/src/complex_mult.cpp @@ -4,7 +4,7 @@ // // SPDX-License-Identifier: MIT // ============================================================= -#include +#include #include #include // dpc_common.hpp can be found in the dev-utilities include folder. diff --git a/DirectProgramming/C++SYCL/DenseLinearAlgebra/guided_matrix_mul_SYCLMigration/01_sycl_dpct_output/Common/exception.h b/DirectProgramming/C++SYCL/DenseLinearAlgebra/guided_matrix_mul_SYCLMigration/01_sycl_dpct_output/Common/exception.h new file mode 100644 index 0000000000..ca8ac25258 --- /dev/null +++ b/DirectProgramming/C++SYCL/DenseLinearAlgebra/guided_matrix_mul_SYCLMigration/01_sycl_dpct_output/Common/exception.h @@ -0,0 +1,151 @@ +/* Copyright (c) 2022, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of NVIDIA CORPORATION nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* CUda UTility Library */ +#ifndef COMMON_EXCEPTION_H_ +#define COMMON_EXCEPTION_H_ + +// includes, system +#include +#include +#include +#include +#include + +//! Exception wrapper. +//! @param Std_Exception Exception out of namespace std for easy typing. +template +class Exception : public Std_Exception { + public: + //! @brief Static construction interface + //! @return Alwayss throws ( Located_Exception) + //! @param file file in which the Exception occurs + //! @param line line in which the Exception occurs + //! @param detailed details on the code fragment causing the Exception + static void throw_it(const char *file, const int line, + const char *detailed = "-"); + + //! Static construction interface + //! @return Alwayss throws ( Located_Exception) + //! @param file file in which the Exception occurs + //! @param line line in which the Exception occurs + //! @param detailed details on the code fragment causing the Exception + static void throw_it(const char *file, const int line, + const std::string &detailed); + + //! Destructor + virtual ~Exception() throw(); + + private: + //! Constructor, default (private) + Exception(); + + //! Constructor, standard + //! @param str string returned by what() + explicit Exception(const std::string &str); +}; + +//////////////////////////////////////////////////////////////////////////////// +//! Exception handler function for arbitrary exceptions +//! @param ex exception to handle +//////////////////////////////////////////////////////////////////////////////// +template +inline void handleException(const Exception_Typ &ex) { + std::cerr << ex.what() << std::endl; + + exit(EXIT_FAILURE); +} + +//! Convenience macros + +//! Exception caused by dynamic program behavior, e.g. file does not exist +#define RUNTIME_EXCEPTION(msg) \ + Exception::throw_it(__FILE__, __LINE__, msg) + +//! Logic exception in program, e.g. an assert failed +#define LOGIC_EXCEPTION(msg) \ + Exception::throw_it(__FILE__, __LINE__, msg) + +//! Out of range exception +#define RANGE_EXCEPTION(msg) \ + Exception::throw_it(__FILE__, __LINE__, msg) + +//////////////////////////////////////////////////////////////////////////////// +//! Implementation + +// includes, system +#include + +//////////////////////////////////////////////////////////////////////////////// +//! Static construction interface. +//! @param Exception causing code fragment (file and line) and detailed infos. +//////////////////////////////////////////////////////////////////////////////// +/*static*/ template +void Exception::throw_it(const char *file, const int line, + const char *detailed) { + std::stringstream s; + + // Quiet heavy-weight but exceptions are not for + // performance / release versions + s << "Exception in file '" << file << "' in line " << line << "\n" + << "Detailed description: " << detailed << "\n"; + + throw Exception(s.str()); +} + +//////////////////////////////////////////////////////////////////////////////// +//! Static construction interface. +//! @param Exception causing code fragment (file and line) and detailed infos. +//////////////////////////////////////////////////////////////////////////////// +/*static*/ template +void Exception::throw_it(const char *file, const int line, + const std::string &msg) { + throw_it(file, line, msg.c_str()); +} + +//////////////////////////////////////////////////////////////////////////////// +//! Constructor, default (private). +//////////////////////////////////////////////////////////////////////////////// +template +Exception::Exception() : Std_Exception("Unknown Exception.\n") {} + +//////////////////////////////////////////////////////////////////////////////// +//! Constructor, standard (private). +//! String returned by what(). +//////////////////////////////////////////////////////////////////////////////// +template +Exception::Exception(const std::string &s) : Std_Exception(s) {} + +//////////////////////////////////////////////////////////////////////////////// +//! Destructor +//////////////////////////////////////////////////////////////////////////////// +template +Exception::~Exception() throw() {} + + // functions, exported + +#endif // COMMON_EXCEPTION_H_ diff --git a/DirectProgramming/C++SYCL/DenseLinearAlgebra/guided_matrix_mul_SYCLMigration/01_sycl_dpct_output/Common/helper_cuda.h b/DirectProgramming/C++SYCL/DenseLinearAlgebra/guided_matrix_mul_SYCLMigration/01_sycl_dpct_output/Common/helper_cuda.h new file mode 100644 index 0000000000..396729118e --- /dev/null +++ b/DirectProgramming/C++SYCL/DenseLinearAlgebra/guided_matrix_mul_SYCLMigration/01_sycl_dpct_output/Common/helper_cuda.h @@ -0,0 +1,1051 @@ +/* Copyright (c) 2022, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of NVIDIA CORPORATION nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +//////////////////////////////////////////////////////////////////////////////// +// These are CUDA Helper functions for initialization and error checking + +#ifndef COMMON_HELPER_CUDA_H_ +#define COMMON_HELPER_CUDA_H_ + +#pragma once + +#include +#include +#include +#include +#include +#include + +#include + +#ifndef EXIT_WAIVED +#define EXIT_WAIVED 2 +#endif + +// Note, it is required that your SDK sample to include the proper header +// files, please refer the CUDA examples for examples of the needed CUDA +// headers, which may change depending on which CUDA functions are used. + +// CUDA Runtime error messages +#ifdef __DPCT_HPP__ +static const char *_cudaGetErrorEnum(int error) { + /* + DPCT1009:0: SYCL uses exceptions to report errors and does not use the error + codes. The original code was commented out and a warning string was inserted. + You need to rewrite this code. + */ + return "cudaGetErrorName is not supported" /*cudaGetErrorName(error)*/; +} +#endif + +#ifdef CUDA_DRIVER_API +// CUDA Driver API errors +static const char *_cudaGetErrorEnum(CUresult error) { + static char unknown[] = ""; + const char *ret = NULL; + cuGetErrorName(error, &ret); + return ret ? ret : unknown; +} +#endif + +#ifdef CUBLAS_API_H_ +// cuBLAS API errors +static const char *_cudaGetErrorEnum(int error) { + switch (error) { + case 0: + return "CUBLAS_STATUS_SUCCESS"; + + case 1: + return "CUBLAS_STATUS_NOT_INITIALIZED"; + + case 3: + return "CUBLAS_STATUS_ALLOC_FAILED"; + + case 7: + return "CUBLAS_STATUS_INVALID_VALUE"; + + case 8: + return "CUBLAS_STATUS_ARCH_MISMATCH"; + + case 11: + return "CUBLAS_STATUS_MAPPING_ERROR"; + + case 13: + return "CUBLAS_STATUS_EXECUTION_FAILED"; + + case 14: + return "CUBLAS_STATUS_INTERNAL_ERROR"; + + case 15: + return "CUBLAS_STATUS_NOT_SUPPORTED"; + + case 16: + return "CUBLAS_STATUS_LICENSE_ERROR"; + } + + return ""; +} +#endif + +#ifdef _CUFFT_H_ +// cuFFT API errors +static const char *_cudaGetErrorEnum(cufftResult error) { + switch (error) { + case CUFFT_SUCCESS: + return "CUFFT_SUCCESS"; + + case CUFFT_INVALID_PLAN: + return "CUFFT_INVALID_PLAN"; + + case CUFFT_ALLOC_FAILED: + return "CUFFT_ALLOC_FAILED"; + + case CUFFT_INVALID_TYPE: + return "CUFFT_INVALID_TYPE"; + + case CUFFT_INVALID_VALUE: + return "CUFFT_INVALID_VALUE"; + + case CUFFT_INTERNAL_ERROR: + return "CUFFT_INTERNAL_ERROR"; + + case CUFFT_EXEC_FAILED: + return "CUFFT_EXEC_FAILED"; + + case CUFFT_SETUP_FAILED: + return "CUFFT_SETUP_FAILED"; + + case CUFFT_INVALID_SIZE: + return "CUFFT_INVALID_SIZE"; + + case CUFFT_UNALIGNED_DATA: + return "CUFFT_UNALIGNED_DATA"; + + case CUFFT_INCOMPLETE_PARAMETER_LIST: + return "CUFFT_INCOMPLETE_PARAMETER_LIST"; + + case CUFFT_INVALID_DEVICE: + return "CUFFT_INVALID_DEVICE"; + + case CUFFT_PARSE_ERROR: + return "CUFFT_PARSE_ERROR"; + + case CUFFT_NO_WORKSPACE: + return "CUFFT_NO_WORKSPACE"; + + case CUFFT_NOT_IMPLEMENTED: + return "CUFFT_NOT_IMPLEMENTED"; + + case CUFFT_LICENSE_ERROR: + return "CUFFT_LICENSE_ERROR"; + + case CUFFT_NOT_SUPPORTED: + return "CUFFT_NOT_SUPPORTED"; + } + + return ""; +} +#endif + +#ifdef CUSPARSEAPI +// cuSPARSE API errors +static const char *_cudaGetErrorEnum(cusparseStatus_t error) { + switch (error) { + case CUSPARSE_STATUS_SUCCESS: + return "CUSPARSE_STATUS_SUCCESS"; + + case CUSPARSE_STATUS_NOT_INITIALIZED: + return "CUSPARSE_STATUS_NOT_INITIALIZED"; + + case CUSPARSE_STATUS_ALLOC_FAILED: + return "CUSPARSE_STATUS_ALLOC_FAILED"; + + case CUSPARSE_STATUS_INVALID_VALUE: + return "CUSPARSE_STATUS_INVALID_VALUE"; + + case CUSPARSE_STATUS_ARCH_MISMATCH: + return "CUSPARSE_STATUS_ARCH_MISMATCH"; + + case CUSPARSE_STATUS_MAPPING_ERROR: + return "CUSPARSE_STATUS_MAPPING_ERROR"; + + case CUSPARSE_STATUS_EXECUTION_FAILED: + return "CUSPARSE_STATUS_EXECUTION_FAILED"; + + case CUSPARSE_STATUS_INTERNAL_ERROR: + return "CUSPARSE_STATUS_INTERNAL_ERROR"; + + case CUSPARSE_STATUS_MATRIX_TYPE_NOT_SUPPORTED: + return "CUSPARSE_STATUS_MATRIX_TYPE_NOT_SUPPORTED"; + } + + return ""; +} +#endif + +#ifdef CUSOLVER_COMMON_H_ +// cuSOLVER API errors +static const char *_cudaGetErrorEnum(cusolverStatus_t error) { + switch (error) { + case CUSOLVER_STATUS_SUCCESS: + return "CUSOLVER_STATUS_SUCCESS"; + case CUSOLVER_STATUS_NOT_INITIALIZED: + return "CUSOLVER_STATUS_NOT_INITIALIZED"; + case CUSOLVER_STATUS_ALLOC_FAILED: + return "CUSOLVER_STATUS_ALLOC_FAILED"; + case CUSOLVER_STATUS_INVALID_VALUE: + return "CUSOLVER_STATUS_INVALID_VALUE"; + case CUSOLVER_STATUS_ARCH_MISMATCH: + return "CUSOLVER_STATUS_ARCH_MISMATCH"; + case CUSOLVER_STATUS_MAPPING_ERROR: + return "CUSOLVER_STATUS_MAPPING_ERROR"; + case CUSOLVER_STATUS_EXECUTION_FAILED: + return "CUSOLVER_STATUS_EXECUTION_FAILED"; + case CUSOLVER_STATUS_INTERNAL_ERROR: + return "CUSOLVER_STATUS_INTERNAL_ERROR"; + case CUSOLVER_STATUS_MATRIX_TYPE_NOT_SUPPORTED: + return "CUSOLVER_STATUS_MATRIX_TYPE_NOT_SUPPORTED"; + case CUSOLVER_STATUS_NOT_SUPPORTED: + return "CUSOLVER_STATUS_NOT_SUPPORTED "; + case CUSOLVER_STATUS_ZERO_PIVOT: + return "CUSOLVER_STATUS_ZERO_PIVOT"; + case CUSOLVER_STATUS_INVALID_LICENSE: + return "CUSOLVER_STATUS_INVALID_LICENSE"; + } + + return ""; +} +#endif + +#ifdef CURAND_H_ +// cuRAND API errors +static const char *_cudaGetErrorEnum(int error) { + switch (error) { + case 0: + return "CURAND_STATUS_SUCCESS"; + + case 100: + return "CURAND_STATUS_VERSION_MISMATCH"; + + case 101: + return "CURAND_STATUS_NOT_INITIALIZED"; + + case 102: + return "CURAND_STATUS_ALLOCATION_FAILED"; + + case 103: + return "CURAND_STATUS_TYPE_ERROR"; + + case 104: + return "CURAND_STATUS_OUT_OF_RANGE"; + + case 105: + return "CURAND_STATUS_LENGTH_NOT_MULTIPLE"; + + case 106: + return "CURAND_STATUS_DOUBLE_PRECISION_REQUIRED"; + + case 201: + return "CURAND_STATUS_LAUNCH_FAILURE"; + + case 202: + return "CURAND_STATUS_PREEXISTING_FAILURE"; + + case 203: + return "CURAND_STATUS_INITIALIZATION_FAILED"; + + case 204: + return "CURAND_STATUS_ARCH_MISMATCH"; + + case 999: + return "CURAND_STATUS_INTERNAL_ERROR"; + } + + return ""; +} +#endif + +#ifdef NVJPEGAPI +// nvJPEG API errors +static const char *_cudaGetErrorEnum(nvjpegStatus_t error) { + switch (error) { + case NVJPEG_STATUS_SUCCESS: + return "NVJPEG_STATUS_SUCCESS"; + + case NVJPEG_STATUS_NOT_INITIALIZED: + return "NVJPEG_STATUS_NOT_INITIALIZED"; + + case NVJPEG_STATUS_INVALID_PARAMETER: + return "NVJPEG_STATUS_INVALID_PARAMETER"; + + case NVJPEG_STATUS_BAD_JPEG: + return "NVJPEG_STATUS_BAD_JPEG"; + + case NVJPEG_STATUS_JPEG_NOT_SUPPORTED: + return "NVJPEG_STATUS_JPEG_NOT_SUPPORTED"; + + case NVJPEG_STATUS_ALLOCATOR_FAILURE: + return "NVJPEG_STATUS_ALLOCATOR_FAILURE"; + + case NVJPEG_STATUS_EXECUTION_FAILED: + return "NVJPEG_STATUS_EXECUTION_FAILED"; + + case NVJPEG_STATUS_ARCH_MISMATCH: + return "NVJPEG_STATUS_ARCH_MISMATCH"; + + case NVJPEG_STATUS_INTERNAL_ERROR: + return "NVJPEG_STATUS_INTERNAL_ERROR"; + } + + return ""; +} +#endif + +#ifdef NV_NPPIDEFS_H +// NPP API errors +static const char *_cudaGetErrorEnum(NppStatus error) { + switch (error) { + case NPP_NOT_SUPPORTED_MODE_ERROR: + return "NPP_NOT_SUPPORTED_MODE_ERROR"; + + case NPP_ROUND_MODE_NOT_SUPPORTED_ERROR: + return "NPP_ROUND_MODE_NOT_SUPPORTED_ERROR"; + + case NPP_RESIZE_NO_OPERATION_ERROR: + return "NPP_RESIZE_NO_OPERATION_ERROR"; + + case NPP_NOT_SUFFICIENT_COMPUTE_CAPABILITY: + return "NPP_NOT_SUFFICIENT_COMPUTE_CAPABILITY"; + +#if ((NPP_VERSION_MAJOR << 12) + (NPP_VERSION_MINOR << 4)) <= 0x5000 + + case NPP_BAD_ARG_ERROR: + return "NPP_BAD_ARGUMENT_ERROR"; + + case NPP_COEFF_ERROR: + return "NPP_COEFFICIENT_ERROR"; + + case NPP_RECT_ERROR: + return "NPP_RECTANGLE_ERROR"; + + case NPP_QUAD_ERROR: + return "NPP_QUADRANGLE_ERROR"; + + case NPP_MEM_ALLOC_ERR: + return "NPP_MEMORY_ALLOCATION_ERROR"; + + case NPP_HISTO_NUMBER_OF_LEVELS_ERROR: + return "NPP_HISTOGRAM_NUMBER_OF_LEVELS_ERROR"; + + case NPP_INVALID_INPUT: + return "NPP_INVALID_INPUT"; + + case NPP_POINTER_ERROR: + return "NPP_POINTER_ERROR"; + + case NPP_WARNING: + return "NPP_WARNING"; + + case NPP_ODD_ROI_WARNING: + return "NPP_ODD_ROI_WARNING"; +#else + + // These are for CUDA 5.5 or higher + case NPP_BAD_ARGUMENT_ERROR: + return "NPP_BAD_ARGUMENT_ERROR"; + + case NPP_COEFFICIENT_ERROR: + return "NPP_COEFFICIENT_ERROR"; + + case NPP_RECTANGLE_ERROR: + return "NPP_RECTANGLE_ERROR"; + + case NPP_QUADRANGLE_ERROR: + return "NPP_QUADRANGLE_ERROR"; + + case NPP_MEMORY_ALLOCATION_ERR: + return "NPP_MEMORY_ALLOCATION_ERROR"; + + case NPP_HISTOGRAM_NUMBER_OF_LEVELS_ERROR: + return "NPP_HISTOGRAM_NUMBER_OF_LEVELS_ERROR"; + + case NPP_INVALID_HOST_POINTER_ERROR: + return "NPP_INVALID_HOST_POINTER_ERROR"; + + case NPP_INVALID_DEVICE_POINTER_ERROR: + return "NPP_INVALID_DEVICE_POINTER_ERROR"; +#endif + + case NPP_LUT_NUMBER_OF_LEVELS_ERROR: + return "NPP_LUT_NUMBER_OF_LEVELS_ERROR"; + + case NPP_TEXTURE_BIND_ERROR: + return "NPP_TEXTURE_BIND_ERROR"; + + case NPP_WRONG_INTERSECTION_ROI_ERROR: + return "NPP_WRONG_INTERSECTION_ROI_ERROR"; + + case NPP_NOT_EVEN_STEP_ERROR: + return "NPP_NOT_EVEN_STEP_ERROR"; + + case NPP_INTERPOLATION_ERROR: + return "NPP_INTERPOLATION_ERROR"; + + case NPP_RESIZE_FACTOR_ERROR: + return "NPP_RESIZE_FACTOR_ERROR"; + + case NPP_HAAR_CLASSIFIER_PIXEL_MATCH_ERROR: + return "NPP_HAAR_CLASSIFIER_PIXEL_MATCH_ERROR"; + +#if ((NPP_VERSION_MAJOR << 12) + (NPP_VERSION_MINOR << 4)) <= 0x5000 + + case NPP_MEMFREE_ERR: + return "NPP_MEMFREE_ERR"; + + case NPP_MEMSET_ERR: + return "NPP_MEMSET_ERR"; + + case NPP_MEMCPY_ERR: + return "NPP_MEMCPY_ERROR"; + + case NPP_MIRROR_FLIP_ERR: + return "NPP_MIRROR_FLIP_ERR"; +#else + + case NPP_MEMFREE_ERROR: + return "NPP_MEMFREE_ERROR"; + + case NPP_MEMSET_ERROR: + return "NPP_MEMSET_ERROR"; + + case NPP_MEMCPY_ERROR: + return "NPP_MEMCPY_ERROR"; + + case NPP_MIRROR_FLIP_ERROR: + return "NPP_MIRROR_FLIP_ERROR"; +#endif + + case NPP_ALIGNMENT_ERROR: + return "NPP_ALIGNMENT_ERROR"; + + case NPP_STEP_ERROR: + return "NPP_STEP_ERROR"; + + case NPP_SIZE_ERROR: + return "NPP_SIZE_ERROR"; + + case NPP_NULL_POINTER_ERROR: + return "NPP_NULL_POINTER_ERROR"; + + case NPP_CUDA_KERNEL_EXECUTION_ERROR: + return "NPP_CUDA_KERNEL_EXECUTION_ERROR"; + + case NPP_NOT_IMPLEMENTED_ERROR: + return "NPP_NOT_IMPLEMENTED_ERROR"; + + case NPP_ERROR: + return "NPP_ERROR"; + + case NPP_SUCCESS: + return "NPP_SUCCESS"; + + case NPP_WRONG_INTERSECTION_QUAD_WARNING: + return "NPP_WRONG_INTERSECTION_QUAD_WARNING"; + + case NPP_MISALIGNED_DST_ROI_WARNING: + return "NPP_MISALIGNED_DST_ROI_WARNING"; + + case NPP_AFFINE_QUAD_INCORRECT_WARNING: + return "NPP_AFFINE_QUAD_INCORRECT_WARNING"; + + case NPP_DOUBLE_SIZE_WARNING: + return "NPP_DOUBLE_SIZE_WARNING"; + + case NPP_WRONG_INTERSECTION_ROI_WARNING: + return "NPP_WRONG_INTERSECTION_ROI_WARNING"; + +#if ((NPP_VERSION_MAJOR << 12) + (NPP_VERSION_MINOR << 4)) >= 0x6000 + /* These are 6.0 or higher */ + case NPP_LUT_PALETTE_BITSIZE_ERROR: + return "NPP_LUT_PALETTE_BITSIZE_ERROR"; + + case NPP_ZC_MODE_NOT_SUPPORTED_ERROR: + return "NPP_ZC_MODE_NOT_SUPPORTED_ERROR"; + + case NPP_QUALITY_INDEX_ERROR: + return "NPP_QUALITY_INDEX_ERROR"; + + case NPP_CHANNEL_ORDER_ERROR: + return "NPP_CHANNEL_ORDER_ERROR"; + + case NPP_ZERO_MASK_VALUE_ERROR: + return "NPP_ZERO_MASK_VALUE_ERROR"; + + case NPP_NUMBER_OF_CHANNELS_ERROR: + return "NPP_NUMBER_OF_CHANNELS_ERROR"; + + case NPP_COI_ERROR: + return "NPP_COI_ERROR"; + + case NPP_DIVISOR_ERROR: + return "NPP_DIVISOR_ERROR"; + + case NPP_CHANNEL_ERROR: + return "NPP_CHANNEL_ERROR"; + + case NPP_STRIDE_ERROR: + return "NPP_STRIDE_ERROR"; + + case NPP_ANCHOR_ERROR: + return "NPP_ANCHOR_ERROR"; + + case NPP_MASK_SIZE_ERROR: + return "NPP_MASK_SIZE_ERROR"; + + case NPP_MOMENT_00_ZERO_ERROR: + return "NPP_MOMENT_00_ZERO_ERROR"; + + case NPP_THRESHOLD_NEGATIVE_LEVEL_ERROR: + return "NPP_THRESHOLD_NEGATIVE_LEVEL_ERROR"; + + case NPP_THRESHOLD_ERROR: + return "NPP_THRESHOLD_ERROR"; + + case NPP_CONTEXT_MATCH_ERROR: + return "NPP_CONTEXT_MATCH_ERROR"; + + case NPP_FFT_FLAG_ERROR: + return "NPP_FFT_FLAG_ERROR"; + + case NPP_FFT_ORDER_ERROR: + return "NPP_FFT_ORDER_ERROR"; + + case NPP_SCALE_RANGE_ERROR: + return "NPP_SCALE_RANGE_ERROR"; + + case NPP_DATA_TYPE_ERROR: + return "NPP_DATA_TYPE_ERROR"; + + case NPP_OUT_OFF_RANGE_ERROR: + return "NPP_OUT_OFF_RANGE_ERROR"; + + case NPP_DIVIDE_BY_ZERO_ERROR: + return "NPP_DIVIDE_BY_ZERO_ERROR"; + + case NPP_RANGE_ERROR: + return "NPP_RANGE_ERROR"; + + case NPP_NO_MEMORY_ERROR: + return "NPP_NO_MEMORY_ERROR"; + + case NPP_ERROR_RESERVED: + return "NPP_ERROR_RESERVED"; + + case NPP_NO_OPERATION_WARNING: + return "NPP_NO_OPERATION_WARNING"; + + case NPP_DIVIDE_BY_ZERO_WARNING: + return "NPP_DIVIDE_BY_ZERO_WARNING"; +#endif + +#if ((NPP_VERSION_MAJOR << 12) + (NPP_VERSION_MINOR << 4)) >= 0x7000 + /* These are 7.0 or higher */ + case NPP_OVERFLOW_ERROR: + return "NPP_OVERFLOW_ERROR"; + + case NPP_CORRUPTED_DATA_ERROR: + return "NPP_CORRUPTED_DATA_ERROR"; +#endif + } + + return ""; +} +#endif + +template +void check(T result, char const *const func, const char *const file, + int const line) { +} + +#ifdef __DPCT_HPP__ +// This will output the proper CUDA error strings in the event +// that a CUDA host call returns an error +#define checkCudaErrors(val) check((val), #val, __FILE__, __LINE__) + +// This will output the proper error string when calling cudaGetLastError +#define getLastCudaError(msg) __getLastCudaError(msg, __FILE__, __LINE__) + +inline void __getLastCudaError(const char *errorMessage, const char *file, + const int line) { + /* + DPCT1010:1: SYCL uses exceptions to report errors and does not use the error + codes. The call was replaced with 0. You need to rewrite this code. + */ + int err = 0; +} + +// This will only print the proper error string when calling cudaGetLastError +// but not exit program incase error detected. +#define printLastCudaError(msg) __printLastCudaError(msg, __FILE__, __LINE__) + +inline void __printLastCudaError(const char *errorMessage, const char *file, + const int line) { + /* + DPCT1010:3: SYCL uses exceptions to report errors and does not use the error + codes. The call was replaced with 0. You need to rewrite this code. + */ + int err = 0; +} +#endif + +#ifndef MAX +#define MAX(a, b) (a > b ? a : b) +#endif + +// Float To Int conversion +inline int ftoi(float value) { + return (value >= 0 ? static_cast(value + 0.5) + : static_cast(value - 0.5)); +} + +// Beginning of GPU Architecture definitions +inline int _ConvertSMVer2Cores(int major, int minor) { + // Defines for GPU Architecture types (using the SM version to determine + // the # of cores per SM + typedef struct dpct_type_168589 { + int SM; // 0xMm (hexidecimal notation), M = SM Major version, + // and m = SM minor version + int Cores; + } sSMtoCores; + + sSMtoCores nGpuArchCoresPerSM[] = { + {0x30, 192}, + {0x32, 192}, + {0x35, 192}, + {0x37, 192}, + {0x50, 128}, + {0x52, 128}, + {0x53, 128}, + {0x60, 64}, + {0x61, 128}, + {0x62, 128}, + {0x70, 64}, + {0x72, 64}, + {0x75, 64}, + {0x80, 64}, + {0x86, 128}, + {0x87, 128}, + {0x90, 128}, + {-1, -1}}; + + int index = 0; + + while (nGpuArchCoresPerSM[index].SM != -1) { + if (nGpuArchCoresPerSM[index].SM == ((major << 4) + minor)) { + return nGpuArchCoresPerSM[index].Cores; + } + + index++; + } + + // If we don't find the values, we default use the previous one + // to run properly + printf( + "MapSMtoCores for SM %d.%d is undefined." + " Default to use %d Cores/SM\n", + major, minor, nGpuArchCoresPerSM[index - 1].Cores); + return nGpuArchCoresPerSM[index - 1].Cores; +} + +inline const char* _ConvertSMVer2ArchName(int major, int minor) { + // Defines for GPU Architecture types (using the SM version to determine + // the GPU Arch name) + typedef struct dpct_type_127073 { + int SM; // 0xMm (hexidecimal notation), M = SM Major version, + // and m = SM minor version + const char* name; + } sSMtoArchName; + + sSMtoArchName nGpuArchNameSM[] = { + {0x30, "Kepler"}, + {0x32, "Kepler"}, + {0x35, "Kepler"}, + {0x37, "Kepler"}, + {0x50, "Maxwell"}, + {0x52, "Maxwell"}, + {0x53, "Maxwell"}, + {0x60, "Pascal"}, + {0x61, "Pascal"}, + {0x62, "Pascal"}, + {0x70, "Volta"}, + {0x72, "Xavier"}, + {0x75, "Turing"}, + {0x80, "Ampere"}, + {0x86, "Ampere"}, + {0x87, "Ampere"}, + {0x90, "Hopper"}, + {-1, "Graphics Device"}}; + + int index = 0; + + while (nGpuArchNameSM[index].SM != -1) { + if (nGpuArchNameSM[index].SM == ((major << 4) + minor)) { + return nGpuArchNameSM[index].name; + } + + index++; + } + + // If we don't find the values, we default use the previous one + // to run properly + printf( + "MapSMtoArchName for SM %d.%d is undefined." + " Default to use %s\n", + major, minor, nGpuArchNameSM[index - 1].name); + return nGpuArchNameSM[index - 1].name; +} + // end of GPU Architecture definitions + +#ifdef __DPCT_HPP__ +// General GPU Device CUDA Initialization +inline int gpuDeviceInit(int devID) { + int device_count; + /* + DPCT1003:5: Migrated API does not return error code. (*, 0) is inserted. You + may need to rewrite this code. + */ + checkCudaErrors((device_count = dpct::dev_mgr::instance().device_count(), 0)); + + if (device_count == 0) { + fprintf(stderr, + "gpuDeviceInit() CUDA error: " + "no devices supporting CUDA.\n"); + exit(EXIT_FAILURE); + } + + if (devID < 0) { + devID = 0; + } + + if (devID > device_count - 1) { + fprintf(stderr, "\n"); + fprintf(stderr, ">> %d CUDA capable GPU device(s) detected. <<\n", + device_count); + fprintf(stderr, + ">> gpuDeviceInit (-device=%d) is not a valid" + " GPU device. <<\n", + devID); + fprintf(stderr, "\n"); + return -devID; + } + + int computeMode = -1, major = 0, minor = 0; + /* + DPCT1035:6: All SYCL devices can be used by host to submit tasks. You may need + to adjust this code. + */ + checkCudaErrors((computeMode = 1, 0)); + checkCudaErrors( + (major = dpct::dev_mgr::instance().get_device(devID).get_major_version(), + 0)); + checkCudaErrors( + (minor = dpct::dev_mgr::instance().get_device(devID).get_minor_version(), + 0)); + /* + DPCT1035:7: All SYCL devices can be used by host to submit tasks. You may need + to adjust this code. + */ + if (computeMode == 0) { + fprintf(stderr, + "Error: device is running in , no threads can use cudaSetDevice().\n"); + return -1; + } + + if (major < 1) { + fprintf(stderr, "gpuDeviceInit(): GPU device does not support CUDA.\n"); + exit(EXIT_FAILURE); + } + + /* + DPCT1093:8: The "devID" may not be the best XPU device. Adjust the selected + device if needed. + */ + /* + DPCT1003:9: Migrated API does not return error code. (*, 0) is inserted. You + may need to rewrite this code. + */ + checkCudaErrors((dpct::select_device(devID), 0)); + printf("gpuDeviceInit() CUDA Device [%d]: \"%s\n", devID, _ConvertSMVer2ArchName(major, minor)); + + return devID; +} + +// This function returns the best GPU (with maximum GFLOPS) +inline int gpuGetMaxGflopsDeviceId() try { + int current_device = 0, sm_per_multiproc = 0; + int max_perf_device = 0; + int device_count = 0; + int devices_prohibited = 0; + + uint64_t max_compute_perf = 0; + /* + DPCT1003:10: Migrated API does not return error code. (*, 0) is inserted. You + may need to rewrite this code. + */ + checkCudaErrors((device_count = dpct::dev_mgr::instance().device_count(), 0)); + + if (device_count == 0) { + fprintf(stderr, + "gpuGetMaxGflopsDeviceId() CUDA error:" + " no devices supporting CUDA.\n"); + exit(EXIT_FAILURE); + } + + // Find the best CUDA capable GPU device + current_device = 0; + + while (current_device < device_count) { + int computeMode = -1, major = 0, minor = 0; + /* + DPCT1035:11: All SYCL devices can be used by host to submit tasks. You may + need to adjust this code. + */ + checkCudaErrors((computeMode = 1, 0)); + checkCudaErrors((major = dpct::dev_mgr::instance() + .get_device(current_device) + .get_major_version(), + 0)); + checkCudaErrors((minor = dpct::dev_mgr::instance() + .get_device(current_device) + .get_minor_version(), + 0)); + + // If this GPU is not running on Compute Mode prohibited, + // then we can add it to the list + /* + DPCT1035:12: All SYCL devices can be used by host to submit tasks. You may + need to adjust this code. + */ + if (computeMode != 0) { + if (major == 9999 && minor == 9999) { + sm_per_multiproc = 1; + } else { + sm_per_multiproc = + _ConvertSMVer2Cores(major, minor); + } + int multiProcessorCount = 0, clockRate = 0; + checkCudaErrors((multiProcessorCount = dpct::dev_mgr::instance() + .get_device(current_device) + .get_max_compute_units(), + 0)); + int result = (clockRate = dpct::dev_mgr::instance() + .get_device(current_device) + .get_max_clock_frequency(), + 0); + + uint64_t compute_perf = (uint64_t)multiProcessorCount * sm_per_multiproc * clockRate; + + if (compute_perf > max_compute_perf) { + max_compute_perf = compute_perf; + max_perf_device = current_device; + } + } else { + devices_prohibited++; + } + + ++current_device; + } + + if (devices_prohibited == device_count) { + fprintf(stderr, + "gpuGetMaxGflopsDeviceId() CUDA error:" + " all devices have compute mode prohibited.\n"); + exit(EXIT_FAILURE); + } + + return max_perf_device; +} +catch (sycl::exception const &exc) { + std::cerr << exc.what() << "Exception caught at file:" << __FILE__ + << ", line:" << __LINE__ << std::endl; + std::exit(1); +} + +// Initialization code to find the best CUDA Device +inline int findCudaDevice(int argc, const char **argv) { + int devID = 0; + + // If the command-line has a device number specified, use it + if (checkCmdLineFlag(argc, argv, "device")) { + devID = getCmdLineArgumentInt(argc, argv, "device="); + + if (devID < 0) { + printf("Invalid command line parameter\n "); + exit(EXIT_FAILURE); + } else { + devID = gpuDeviceInit(devID); + + if (devID < 0) { + printf("exiting...\n"); + exit(EXIT_FAILURE); + } + } + } else { + // Otherwise pick the device with highest Gflops/s + devID = gpuGetMaxGflopsDeviceId(); + /* + DPCT1093:13: The "devID" may not be the best XPU device. Adjust the selected + device if needed. + */ + /* + DPCT1003:14: Migrated API does not return error code. (*, 0) is inserted. + You may need to rewrite this code. + */ + checkCudaErrors((dpct::select_device(devID), 0)); + int major = 0, minor = 0; + checkCudaErrors(( + major = dpct::dev_mgr::instance().get_device(devID).get_major_version(), + 0)); + checkCudaErrors(( + minor = dpct::dev_mgr::instance().get_device(devID).get_minor_version(), + 0)); + printf("GPU Device %d: \"%s\" with compute capability %d.%d\n\n", + devID, _ConvertSMVer2ArchName(major, minor), major, minor); + + } + + return devID; +} + +inline int findIntegratedGPU() { + int current_device = 0; + int device_count = 0; + int devices_prohibited = 0; + + /* + DPCT1003:15: Migrated API does not return error code. (*, 0) is inserted. You + may need to rewrite this code. + */ + checkCudaErrors((device_count = dpct::dev_mgr::instance().device_count(), 0)); + + if (device_count == 0) { + fprintf(stderr, "CUDA error: no devices supporting CUDA.\n"); + exit(EXIT_FAILURE); + } + + // Find the integrated GPU which is compute capable + while (current_device < device_count) { + int computeMode = -1, integrated = -1; + /* + DPCT1035:16: All SYCL devices can be used by host to submit tasks. You may + need to adjust this code. + */ + checkCudaErrors((computeMode = 1, 0)); + checkCudaErrors((integrated = dpct::dev_mgr::instance() + .get_device(current_device) + .get_integrated(), + 0)); + // If GPU is integrated and is not running on Compute Mode prohibited, + // then cuda can map to GLES resource + /* + DPCT1035:17: All SYCL devices can be used by host to submit tasks. You may + need to adjust this code. + */ + if (integrated && (computeMode != 0)) { + /* + DPCT1093:18: The "current_device" may not be the best XPU device. Adjust + the selected device if needed. + */ + /* + DPCT1003:19: Migrated API does not return error code. (*, 0) is inserted. + You may need to rewrite this code. + */ + checkCudaErrors((dpct::select_device(current_device), 0)); + + int major = 0, minor = 0; + checkCudaErrors((major = dpct::dev_mgr::instance() + .get_device(current_device) + .get_major_version(), + 0)); + checkCudaErrors((minor = dpct::dev_mgr::instance() + .get_device(current_device) + .get_minor_version(), + 0)); + printf("GPU Device %d: \"%s\" with compute capability %d.%d\n\n", + current_device, _ConvertSMVer2ArchName(major, minor), major, minor); + + return current_device; + } else { + devices_prohibited++; + } + + current_device++; + } + + if (devices_prohibited == device_count) { + fprintf(stderr, + "CUDA error:" + " No GLES-CUDA Interop capable GPU found.\n"); + exit(EXIT_FAILURE); + } + + return -1; +} + +// General check for CUDA GPU SM Capabilities +inline bool checkCudaCapabilities(int major_version, int minor_version) { + int dev; + int major = 0, minor = 0; + + checkCudaErrors(dev = dpct::dev_mgr::instance().current_device_id()); + checkCudaErrors( + (major = dpct::dev_mgr::instance().get_device(dev).get_major_version(), + 0)); + checkCudaErrors( + (minor = dpct::dev_mgr::instance().get_device(dev).get_minor_version(), + 0)); + + if ((major > major_version) || + (major == major_version && + minor >= minor_version)) { + printf(" Device %d: <%16s >, Compute SM %d.%d detected\n", dev, + _ConvertSMVer2ArchName(major, minor), major, minor); + return true; + } else { + printf( + " No GPU device was found that can support " + "CUDA compute capability %d.%d.\n", + major_version, minor_version); + return false; + } +} +#endif + + // end of CUDA Helper Functions + +#endif // COMMON_HELPER_CUDA_H_ diff --git a/DirectProgramming/C++SYCL/DenseLinearAlgebra/guided_matrix_mul_SYCLMigration/01_sycl_dpct_output/Common/helper_functions.h b/DirectProgramming/C++SYCL/DenseLinearAlgebra/guided_matrix_mul_SYCLMigration/01_sycl_dpct_output/Common/helper_functions.h new file mode 100644 index 0000000000..2975ddba6a --- /dev/null +++ b/DirectProgramming/C++SYCL/DenseLinearAlgebra/guided_matrix_mul_SYCLMigration/01_sycl_dpct_output/Common/helper_functions.h @@ -0,0 +1,59 @@ +/* Copyright (c) 2022, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of NVIDIA CORPORATION nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +// These are helper functions for the SDK samples (string parsing, +// timers, image helpers, etc) +#ifndef COMMON_HELPER_FUNCTIONS_H_ +#define COMMON_HELPER_FUNCTIONS_H_ + +#ifdef WIN32 +#pragma warning(disable : 4996) +#endif + +// includes, project +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +// includes, timer, string parsing, image helpers +#include // helper functions for image compare, dump, data comparisons +#include // helper functions for string parsing +#include // helper functions for timers + +#ifndef EXIT_WAIVED +#define EXIT_WAIVED 2 +#endif + +#endif // COMMON_HELPER_FUNCTIONS_H_ diff --git a/DirectProgramming/C++SYCL/DenseLinearAlgebra/guided_matrix_mul_SYCLMigration/01_sycl_dpct_output/Common/helper_image.h b/DirectProgramming/C++SYCL/DenseLinearAlgebra/guided_matrix_mul_SYCLMigration/01_sycl_dpct_output/Common/helper_image.h new file mode 100644 index 0000000000..d093d16a0e --- /dev/null +++ b/DirectProgramming/C++SYCL/DenseLinearAlgebra/guided_matrix_mul_SYCLMigration/01_sycl_dpct_output/Common/helper_image.h @@ -0,0 +1,1001 @@ +/* Copyright (c) 2022, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of NVIDIA CORPORATION nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +// These are helper functions for the SDK samples (image,bitmap) +#ifndef COMMON_HELPER_IMAGE_H_ +#define COMMON_HELPER_IMAGE_H_ + +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +#ifndef MIN +#define MIN(a, b) ((a < b) ? a : b) +#endif +#ifndef MAX +#define MAX(a, b) ((a > b) ? a : b) +#endif + +#ifndef EXIT_WAIVED +#define EXIT_WAIVED 2 +#endif + +#include "helper_string.h" + +// namespace unnamed (internal) +namespace helper_image_internal { +//! size of PGM file header +const unsigned int PGMHeaderSize = 0x40; + +// types + +//! Data converter from unsigned char / unsigned byte to type T +template +struct ConverterFromUByte; + +//! Data converter from unsigned char / unsigned byte +template <> +struct ConverterFromUByte { + //! Conversion operator + //! @return converted value + //! @param val value to convert + float operator()(const unsigned char &val) { + return static_cast(val); + } +}; + +//! Data converter from unsigned char / unsigned byte to float +template <> +struct ConverterFromUByte { + //! Conversion operator + //! @return converted value + //! @param val value to convert + float operator()(const unsigned char &val) { + return static_cast(val) / 255.0f; + } +}; + +//! Data converter from unsigned char / unsigned byte to type T +template +struct ConverterToUByte; + +//! Data converter from unsigned char / unsigned byte to unsigned int +template <> +struct ConverterToUByte { + //! Conversion operator (essentially a passthru + //! @return converted value + //! @param val value to convert + unsigned char operator()(const unsigned char &val) { return val; } +}; + +//! Data converter from unsigned char / unsigned byte to unsigned int +template <> +struct ConverterToUByte { + //! Conversion operator + //! @return converted value + //! @param val value to convert + unsigned char operator()(const float &val) { + return static_cast(val * 255.0f); + } +}; +} // namespace helper_image_internal + +#if defined(WIN32) || defined(_WIN32) || defined(WIN64) || defined(_WIN64) +#ifndef FOPEN +#define FOPEN(fHandle, filename, mode) fopen_s(&fHandle, filename, mode) +#endif +#ifndef FOPEN_FAIL +#define FOPEN_FAIL(result) (result != 0) +#endif +#ifndef SSCANF +#define SSCANF sscanf_s +#endif +#else +#ifndef FOPEN +#define FOPEN(fHandle, filename, mode) (fHandle = fopen(filename, mode)) +#endif +#ifndef FOPEN_FAIL +#define FOPEN_FAIL(result) (result == NULL) +#endif +#ifndef SSCANF +#define SSCANF sscanf +#endif +#endif + +inline bool __loadPPM(const char *file, unsigned char **data, unsigned int *w, + unsigned int *h, unsigned int *channels) { + FILE *fp = NULL; + + if (FOPEN_FAIL(FOPEN(fp, file, "rb"))) { + std::cerr << "__LoadPPM() : Failed to open file: " << file << std::endl; + return false; + } + + // check header + char header[helper_image_internal::PGMHeaderSize]; + + if (fgets(header, helper_image_internal::PGMHeaderSize, fp) == NULL) { + std::cerr << "__LoadPPM() : reading PGM header returned NULL" << std::endl; + return false; + } + + if (strncmp(header, "P5", 2) == 0) { + *channels = 1; + } else if (strncmp(header, "P6", 2) == 0) { + *channels = 3; + } else { + std::cerr << "__LoadPPM() : File is not a PPM or PGM image" << std::endl; + *channels = 0; + return false; + } + + // parse header, read maxval, width and height + unsigned int width = 0; + unsigned int height = 0; + unsigned int maxval = 0; + unsigned int i = 0; + + while (i < 3) { + if (fgets(header, helper_image_internal::PGMHeaderSize, fp) == NULL) { + std::cerr << "__LoadPPM() : reading PGM header returned NULL" + << std::endl; + return false; + } + + if (header[0] == '#') { + continue; + } + + if (i == 0) { + i += SSCANF(header, "%u %u %u", &width, &height, &maxval); + } else if (i == 1) { + i += SSCANF(header, "%u %u", &height, &maxval); + } else if (i == 2) { + i += SSCANF(header, "%u", &maxval); + } + } + + // check if given handle for the data is initialized + if (NULL != *data) { + if (*w != width || *h != height) { + std::cerr << "__LoadPPM() : Invalid image dimensions." << std::endl; + } + } else { + *data = (unsigned char *)malloc(sizeof(unsigned char) * width * height * + *channels); + *w = width; + *h = height; + } + + // read and close file + if (fread(*data, sizeof(unsigned char), width * height * *channels, fp) == + 0) { + std::cerr << "__LoadPPM() read data returned error." << std::endl; + } + + fclose(fp); + + return true; +} + +template +inline bool sdkLoadPGM(const char *file, T **data, unsigned int *w, + unsigned int *h) { + unsigned char *idata = NULL; + unsigned int channels; + + if (true != __loadPPM(file, &idata, w, h, &channels)) { + return false; + } + + unsigned int size = *w * *h * channels; + + // initialize mem if necessary + // the correct size is checked / set in loadPGMc() + if (NULL == *data) { + *data = reinterpret_cast(malloc(sizeof(T) * size)); + } + + // copy and cast data + std::transform(idata, idata + size, *data, + helper_image_internal::ConverterFromUByte()); + + free(idata); + + return true; +} + +template +inline bool sdkLoadPPM4(const char *file, T **data, unsigned int *w, + unsigned int *h) { + unsigned char *idata = 0; + unsigned int channels; + + if (__loadPPM(file, &idata, w, h, &channels)) { + // pad 4th component + int size = *w * *h; + // keep the original pointer + unsigned char *idata_orig = idata; + *data = reinterpret_cast(malloc(sizeof(T) * size * 4)); + unsigned char *ptr = *data; + + for (int i = 0; i < size; i++) { + *ptr++ = *idata++; + *ptr++ = *idata++; + *ptr++ = *idata++; + *ptr++ = 0; + } + + free(idata_orig); + return true; + } else { + free(idata); + return false; + } +} + +inline bool __savePPM(const char *file, unsigned char *data, unsigned int w, + unsigned int h, unsigned int channels) { + assert(NULL != data); + assert(w > 0); + assert(h > 0); + + std::fstream fh(file, std::fstream::out | std::fstream::binary); + + if (fh.bad()) { + std::cerr << "__savePPM() : Opening file failed." << std::endl; + return false; + } + + if (channels == 1) { + fh << "P5\n"; + } else if (channels == 3) { + fh << "P6\n"; + } else { + std::cerr << "__savePPM() : Invalid number of channels." << std::endl; + return false; + } + + fh << w << "\n" << h << "\n" << 0xff << std::endl; + + for (unsigned int i = 0; (i < (w * h * channels)) && fh.good(); ++i) { + fh << data[i]; + } + + fh.flush(); + + if (fh.bad()) { + std::cerr << "__savePPM() : Writing data failed." << std::endl; + return false; + } + + fh.close(); + + return true; +} + +template +inline bool sdkSavePGM(const char *file, T *data, unsigned int w, + unsigned int h) { + unsigned int size = w * h; + unsigned char *idata = (unsigned char *)malloc(sizeof(unsigned char) * size); + + std::transform(data, data + size, idata, + helper_image_internal::ConverterToUByte()); + + // write file + bool result = __savePPM(file, idata, w, h, 1); + + // cleanup + free(idata); + + return result; +} + +inline bool sdkSavePPM4ub(const char *file, unsigned char *data, unsigned int w, + unsigned int h) { + // strip 4th component + int size = w * h; + unsigned char *ndata = + (unsigned char *)malloc(sizeof(unsigned char) * size * 3); + unsigned char *ptr = ndata; + + for (int i = 0; i < size; i++) { + *ptr++ = *data++; + *ptr++ = *data++; + *ptr++ = *data++; + data++; + } + + bool result = __savePPM(file, ndata, w, h, 3); + free(ndata); + return result; +} + +////////////////////////////////////////////////////////////////////////////// +//! Read file \filename and return the data +//! @return bool if reading the file succeeded, otherwise false +//! @param filename name of the source file +//! @param data uninitialized pointer, returned initialized and pointing to +//! the data read +//! @param len number of data elements in data, -1 on error +////////////////////////////////////////////////////////////////////////////// +template +inline bool sdkReadFile(const char *filename, T **data, unsigned int *len, + bool verbose) { + // check input arguments + assert(NULL != filename); + assert(NULL != len); + + // intermediate storage for the data read + std::vector data_read; + + // open file for reading + FILE *fh = NULL; + + // check if filestream is valid + if (FOPEN_FAIL(FOPEN(fh, filename, "r"))) { + printf("Unable to open input file: %s\n", filename); + return false; + } + + // read all data elements + T token; + + while (!feof(fh)) { + fscanf(fh, "%f", &token); + data_read.push_back(token); + } + + // the last element is read twice + data_read.pop_back(); + fclose(fh); + + // check if the given handle is already initialized + if (NULL != *data) { + if (*len != data_read.size()) { + std::cerr << "sdkReadFile() : Initialized memory given but " + << "size mismatch with signal read " + << "(data read / data init = " << (unsigned int)data_read.size() + << " / " << *len << ")" << std::endl; + + return false; + } + } else { + // allocate storage for the data read + *data = reinterpret_cast(malloc(sizeof(T) * data_read.size())); + // store signal size + *len = static_cast(data_read.size()); + } + + // copy data + memcpy(*data, &data_read.front(), sizeof(T) * data_read.size()); + + return true; +} + +////////////////////////////////////////////////////////////////////////////// +//! Read file \filename and return the data +//! @return bool if reading the file succeeded, otherwise false +//! @param filename name of the source file +//! @param data uninitialized pointer, returned initialized and pointing to +//! the data read +//! @param len number of data elements in data, -1 on error +////////////////////////////////////////////////////////////////////////////// +template +inline bool sdkReadFileBlocks(const char *filename, T **data, unsigned int *len, + unsigned int block_num, unsigned int block_size, + bool verbose) { + // check input arguments + assert(NULL != filename); + assert(NULL != len); + + // open file for reading + FILE *fh = fopen(filename, "rb"); + + if (fh == NULL && verbose) { + std::cerr << "sdkReadFile() : Opening file failed." << std::endl; + return false; + } + + // check if the given handle is already initialized + // allocate storage for the data read + data[block_num] = reinterpret_cast(malloc(block_size)); + + // read all data elements + fseek(fh, block_num * block_size, SEEK_SET); + *len = fread(data[block_num], sizeof(T), block_size / sizeof(T), fh); + + fclose(fh); + + return true; +} + +////////////////////////////////////////////////////////////////////////////// +//! Write a data file \filename +//! @return true if writing the file succeeded, otherwise false +//! @param filename name of the source file +//! @param data data to write +//! @param len number of data elements in data, -1 on error +//! @param epsilon epsilon for comparison +////////////////////////////////////////////////////////////////////////////// +template +inline bool sdkWriteFile(const char *filename, const T *data, unsigned int len, + const S epsilon, bool verbose, bool append = false) { + assert(NULL != filename); + assert(NULL != data); + + // open file for writing + // if (append) { + std::fstream fh(filename, std::fstream::out | std::fstream::ate); + + if (verbose) { + std::cerr << "sdkWriteFile() : Open file " << filename + << " for write/append." << std::endl; + } + + /* } else { + std::fstream fh(filename, std::fstream::out); + if (verbose) { + std::cerr << "sdkWriteFile() : Open file " << filename << " for + write." << std::endl; + } + } + */ + + // check if filestream is valid + if (!fh.good()) { + if (verbose) { + std::cerr << "sdkWriteFile() : Opening file failed." << std::endl; + } + + return false; + } + + // first write epsilon + fh << "# " << epsilon << "\n"; + + // write data + for (unsigned int i = 0; (i < len) && (fh.good()); ++i) { + fh << data[i] << ' '; + } + + // Check if writing succeeded + if (!fh.good()) { + if (verbose) { + std::cerr << "sdkWriteFile() : Writing file failed." << std::endl; + } + + return false; + } + + // file ends with nl + fh << std::endl; + + return true; +} + +////////////////////////////////////////////////////////////////////////////// +//! Compare two arrays of arbitrary type +//! @return true if \a reference and \a data are identical, otherwise false +//! @param reference timer_interface to the reference data / gold image +//! @param data handle to the computed data +//! @param len number of elements in reference and data +//! @param epsilon epsilon to use for the comparison +////////////////////////////////////////////////////////////////////////////// +template +inline bool compareData(const T *reference, const T *data, + const unsigned int len, const S epsilon, + const float threshold) { + assert(epsilon >= 0); + + bool result = true; + unsigned int error_count = 0; + + for (unsigned int i = 0; i < len; ++i) { + float diff = static_cast(reference[i]) - static_cast(data[i]); + bool comp = (diff <= epsilon) && (diff >= -epsilon); + result &= comp; + + error_count += !comp; + +#if 0 + + if (!comp) { + std::cerr << "ERROR, i = " << i << ",\t " + << reference[i] << " / " + << data[i] + << " (reference / data)\n"; + } + +#endif + } + + if (threshold == 0.0f) { + return (result) ? true : false; + } else { + if (error_count) { + printf("%4.2f(%%) of bytes mismatched (count=%d)\n", + static_cast(error_count) * 100 / static_cast(len), + error_count); + } + + return (len * threshold > error_count) ? true : false; + } +} + +#ifndef __MIN_EPSILON_ERROR +#define __MIN_EPSILON_ERROR 1e-3f +#endif + +////////////////////////////////////////////////////////////////////////////// +//! Compare two arrays of arbitrary type +//! @return true if \a reference and \a data are identical, otherwise false +//! @param reference handle to the reference data / gold image +//! @param data handle to the computed data +//! @param len number of elements in reference and data +//! @param epsilon epsilon to use for the comparison +//! @param epsilon threshold % of (# of bytes) for pass/fail +////////////////////////////////////////////////////////////////////////////// +template +inline bool compareDataAsFloatThreshold(const T *reference, const T *data, + const unsigned int len, const S epsilon, + const float threshold) { + assert(epsilon >= 0); + + // If we set epsilon to be 0, let's set a minimum threshold + float max_error = MAX((float)epsilon, __MIN_EPSILON_ERROR); + int error_count = 0; + bool result = true; + + for (unsigned int i = 0; i < len; ++i) { + float diff = + fabs(static_cast(reference[i]) - static_cast(data[i])); + bool comp = (diff < max_error); + result &= comp; + + if (!comp) { + error_count++; + } + } + + if (threshold == 0.0f) { + if (error_count) { + printf("total # of errors = %d\n", error_count); + } + + return (error_count == 0) ? true : false; + } else { + if (error_count) { + printf("%4.2f(%%) of bytes mismatched (count=%d)\n", + static_cast(error_count) * 100 / static_cast(len), + error_count); + } + + return ((len * threshold > error_count) ? true : false); + } +} + +inline void sdkDumpBin(void *data, unsigned int bytes, const char *filename) { + printf("sdkDumpBin: <%s>\n", filename); + FILE *fp; + FOPEN(fp, filename, "wb"); + fwrite(data, bytes, 1, fp); + fflush(fp); + fclose(fp); +} + +inline bool sdkCompareBin2BinUint(const char *src_file, const char *ref_file, + unsigned int nelements, const float epsilon, + const float threshold, char *exec_path) { + unsigned int *src_buffer, *ref_buffer; + FILE *src_fp = NULL, *ref_fp = NULL; + + uint64_t error_count = 0; + size_t fsize = 0; + + if (FOPEN_FAIL(FOPEN(src_fp, src_file, "rb"))) { + printf("compareBin2Bin unable to open src_file: %s\n", + src_file); + error_count++; + } + + char *ref_file_path = sdkFindFilePath(ref_file, exec_path); + + if (ref_file_path == NULL) { + printf("compareBin2Bin unable to find <%s> in <%s>\n", + ref_file, exec_path); + printf(">>> Check info.xml and [project//data] folder <%s> <<<\n", + ref_file); + printf("Aborting comparison!\n"); + printf(" FAILED\n"); + error_count++; + + if (src_fp) { + fclose(src_fp); + } + + if (ref_fp) { + fclose(ref_fp); + } + } else { + if (FOPEN_FAIL(FOPEN(ref_fp, ref_file_path, "rb"))) { + printf( + "compareBin2Bin " + " unable to open ref_file: %s\n", + ref_file_path); + error_count++; + } + + if (src_fp && ref_fp) { + src_buffer = (unsigned int *)malloc(nelements * sizeof(unsigned int)); + ref_buffer = (unsigned int *)malloc(nelements * sizeof(unsigned int)); + + fsize = fread(src_buffer, nelements, sizeof(unsigned int), src_fp); + fsize = fread(ref_buffer, nelements, sizeof(unsigned int), ref_fp); + + printf( + "> compareBin2Bin nelements=%d," + " epsilon=%4.2f, threshold=%4.2f\n", + nelements, epsilon, threshold); + printf(" src_file <%s>, size=%d bytes\n", src_file, + static_cast(fsize)); + printf(" ref_file <%s>, size=%d bytes\n", ref_file_path, + static_cast(fsize)); + + if (!compareData(ref_buffer, src_buffer, nelements, + epsilon, threshold)) { + error_count++; + } + + fclose(src_fp); + fclose(ref_fp); + + free(src_buffer); + free(ref_buffer); + } else { + if (src_fp) { + fclose(src_fp); + } + + if (ref_fp) { + fclose(ref_fp); + } + } + } + + if (error_count == 0) { + printf(" OK\n"); + } else { + printf(" FAILURE: %d errors...\n", (unsigned int)error_count); + } + + return (error_count == 0); // returns true if all pixels pass +} + +inline bool sdkCompareBin2BinFloat(const char *src_file, const char *ref_file, + unsigned int nelements, const float epsilon, + const float threshold, char *exec_path) { + float *src_buffer = NULL, *ref_buffer = NULL; + FILE *src_fp = NULL, *ref_fp = NULL; + size_t fsize = 0; + + uint64_t error_count = 0; + + if (FOPEN_FAIL(FOPEN(src_fp, src_file, "rb"))) { + printf("compareBin2Bin unable to open src_file: %s\n", src_file); + error_count = 1; + } + + char *ref_file_path = sdkFindFilePath(ref_file, exec_path); + + if (ref_file_path == NULL) { + printf("compareBin2Bin unable to find <%s> in <%s>\n", ref_file, + exec_path); + printf(">>> Check info.xml and [project//data] folder <%s> <<<\n", + exec_path); + printf("Aborting comparison!\n"); + printf(" FAILED\n"); + error_count++; + + if (src_fp) { + fclose(src_fp); + } + + if (ref_fp) { + fclose(ref_fp); + } + } else { + if (FOPEN_FAIL(FOPEN(ref_fp, ref_file_path, "rb"))) { + printf("compareBin2Bin unable to open ref_file: %s\n", + ref_file_path); + error_count = 1; + } + + if (src_fp && ref_fp) { + src_buffer = reinterpret_cast(malloc(nelements * sizeof(float))); + ref_buffer = reinterpret_cast(malloc(nelements * sizeof(float))); + + printf( + "> compareBin2Bin nelements=%d, epsilon=%4.2f," + " threshold=%4.2f\n", + nelements, epsilon, threshold); + fsize = fread(src_buffer, sizeof(float), nelements, src_fp); + printf(" src_file <%s>, size=%d bytes\n", src_file, + static_cast(fsize * sizeof(float))); + fsize = fread(ref_buffer, sizeof(float), nelements, ref_fp); + printf(" ref_file <%s>, size=%d bytes\n", ref_file_path, + static_cast(fsize * sizeof(float))); + + if (!compareDataAsFloatThreshold( + ref_buffer, src_buffer, nelements, epsilon, threshold)) { + error_count++; + } + + fclose(src_fp); + fclose(ref_fp); + + free(src_buffer); + free(ref_buffer); + } else { + if (src_fp) { + fclose(src_fp); + } + + if (ref_fp) { + fclose(ref_fp); + } + } + } + + if (error_count == 0) { + printf(" OK\n"); + } else { + printf(" FAILURE: %d errors...\n", (unsigned int)error_count); + } + + return (error_count == 0); // returns true if all pixels pass +} + +inline bool sdkCompareL2fe(const float *reference, const float *data, + const unsigned int len, const float epsilon) { + assert(epsilon >= 0); + + float error = 0; + float ref = 0; + + for (unsigned int i = 0; i < len; ++i) { + float diff = reference[i] - data[i]; + error += diff * diff; + ref += reference[i] * reference[i]; + } + + float normRef = sqrtf(ref); + + if (fabs(ref) < 1e-7) { +#ifdef _DEBUG + std::cerr << "ERROR, reference l2-norm is 0\n"; +#endif + return false; + } + + float normError = sqrtf(error); + error = normError / normRef; + bool result = error < epsilon; +#ifdef _DEBUG + + if (!result) { + std::cerr << "ERROR, l2-norm error " << error << " is greater than epsilon " + << epsilon << "\n"; + } + +#endif + + return result; +} + +inline bool sdkLoadPPMub(const char *file, unsigned char **data, + unsigned int *w, unsigned int *h) { + unsigned int channels; + return __loadPPM(file, data, w, h, &channels); +} + +inline bool sdkLoadPPM4ub(const char *file, unsigned char **data, + unsigned int *w, unsigned int *h) { + unsigned char *idata = 0; + unsigned int channels; + + if (__loadPPM(file, &idata, w, h, &channels)) { + // pad 4th component + int size = *w * *h; + // keep the original pointer + unsigned char *idata_orig = idata; + *data = (unsigned char *)malloc(sizeof(unsigned char) * size * 4); + unsigned char *ptr = *data; + + for (int i = 0; i < size; i++) { + *ptr++ = *idata++; + *ptr++ = *idata++; + *ptr++ = *idata++; + *ptr++ = 0; + } + + free(idata_orig); + return true; + } else { + free(idata); + return false; + } +} + +inline bool sdkComparePPM(const char *src_file, const char *ref_file, + const float epsilon, const float threshold, + bool verboseErrors) { + unsigned char *src_data, *ref_data; + uint64_t error_count = 0; + unsigned int ref_width, ref_height; + unsigned int src_width, src_height; + + if (src_file == NULL || ref_file == NULL) { + if (verboseErrors) { + std::cerr << "PPMvsPPM: src_file or ref_file is NULL." + " Aborting comparison\n"; + } + + return false; + } + + if (verboseErrors) { + std::cerr << "> Compare (a)rendered: <" << src_file << ">\n"; + std::cerr << "> (b)reference: <" << ref_file << ">\n"; + } + + if (sdkLoadPPM4ub(ref_file, &ref_data, &ref_width, &ref_height) != true) { + if (verboseErrors) { + std::cerr << "PPMvsPPM: unable to load ref image file: " << ref_file + << "\n"; + } + + return false; + } + + if (sdkLoadPPM4ub(src_file, &src_data, &src_width, &src_height) != true) { + std::cerr << "PPMvsPPM: unable to load src image file: " << src_file + << "\n"; + return false; + } + + if (src_height != ref_height || src_width != ref_width) { + if (verboseErrors) { + std::cerr << "PPMvsPPM: source and ref size mismatch (" << src_width + << "," << src_height << ")vs(" << ref_width << "," << ref_height + << ")\n"; + } + } + + if (verboseErrors) { + std::cerr << "PPMvsPPM: comparing images size (" << src_width << "," + << src_height << ") epsilon(" << epsilon << "), threshold(" + << threshold * 100 << "%)\n"; + } + + if (compareData(ref_data, src_data, src_width * src_height * 4, epsilon, + threshold) == false) { + error_count = 1; + } + + if (error_count == 0) { + if (verboseErrors) { + std::cerr << " OK\n\n"; + } + } else { + if (verboseErrors) { + std::cerr << " FAILURE! " << error_count << " errors...\n\n"; + } + } + + // returns true if all pixels pass + return (error_count == 0) ? true : false; +} + +inline bool sdkComparePGM(const char *src_file, const char *ref_file, + const float epsilon, const float threshold, + bool verboseErrors) { + unsigned char *src_data = 0, *ref_data = 0; + uint64_t error_count = 0; + unsigned int ref_width, ref_height; + unsigned int src_width, src_height; + + if (src_file == NULL || ref_file == NULL) { + if (verboseErrors) { + std::cerr << "PGMvsPGM: src_file or ref_file is NULL." + " Aborting comparison\n"; + } + + return false; + } + + if (verboseErrors) { + std::cerr << "> Compare (a)rendered: <" << src_file << ">\n"; + std::cerr << "> (b)reference: <" << ref_file << ">\n"; + } + + if (sdkLoadPPMub(ref_file, &ref_data, &ref_width, &ref_height) != true) { + if (verboseErrors) { + std::cerr << "PGMvsPGM: unable to load ref image file: " << ref_file + << "\n"; + } + + return false; + } + + if (sdkLoadPPMub(src_file, &src_data, &src_width, &src_height) != true) { + std::cerr << "PGMvsPGM: unable to load src image file: " << src_file + << "\n"; + return false; + } + + if (src_height != ref_height || src_width != ref_width) { + if (verboseErrors) { + std::cerr << "PGMvsPGM: source and ref size mismatch (" << src_width + << "," << src_height << ")vs(" << ref_width << "," << ref_height + << ")\n"; + } + } + + if (verboseErrors) + std::cerr << "PGMvsPGM: comparing images size (" << src_width << "," + << src_height << ") epsilon(" << epsilon << "), threshold(" + << threshold * 100 << "%)\n"; + + if (compareData(ref_data, src_data, src_width * src_height, epsilon, + threshold) == false) { + error_count = 1; + } + + if (error_count == 0) { + if (verboseErrors) { + std::cerr << " OK\n\n"; + } + } else { + if (verboseErrors) { + std::cerr << " FAILURE! " << error_count << " errors...\n\n"; + } + } + + // returns true if all pixels pass + return (error_count == 0) ? true : false; +} + +#endif // COMMON_HELPER_IMAGE_H_ \ No newline at end of file diff --git a/DirectProgramming/C++SYCL/DenseLinearAlgebra/guided_matrix_mul_SYCLMigration/01_sycl_dpct_output/Common/helper_string.h b/DirectProgramming/C++SYCL/DenseLinearAlgebra/guided_matrix_mul_SYCLMigration/01_sycl_dpct_output/Common/helper_string.h new file mode 100644 index 0000000000..47fb1ac1fa --- /dev/null +++ b/DirectProgramming/C++SYCL/DenseLinearAlgebra/guided_matrix_mul_SYCLMigration/01_sycl_dpct_output/Common/helper_string.h @@ -0,0 +1,428 @@ +/* Copyright (c) 2022, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of NVIDIA CORPORATION nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +// These are helper functions for the SDK samples (string parsing, timers, etc) +#ifndef COMMON_HELPER_STRING_H_ +#define COMMON_HELPER_STRING_H_ + +#include +#include +#include +#include + +#if defined(WIN32) || defined(_WIN32) || defined(WIN64) || defined(_WIN64) +#ifndef _CRT_SECURE_NO_DEPRECATE +#define _CRT_SECURE_NO_DEPRECATE +#endif +#ifndef STRCASECMP +#define STRCASECMP _stricmp +#endif +#ifndef STRNCASECMP +#define STRNCASECMP _strnicmp +#endif +#ifndef STRCPY +#define STRCPY(sFilePath, nLength, sPath) strcpy_s(sFilePath, nLength, sPath) +#endif + +#ifndef FOPEN +#define FOPEN(fHandle, filename, mode) fopen_s(&fHandle, filename, mode) +#endif +#ifndef FOPEN_FAIL +#define FOPEN_FAIL(result) (result != 0) +#endif +#ifndef SSCANF +#define SSCANF sscanf_s +#endif +#ifndef SPRINTF +#define SPRINTF sprintf_s +#endif +#else // Linux Includes +#include +#include + +#ifndef STRCASECMP +#define STRCASECMP strcasecmp +#endif +#ifndef STRNCASECMP +#define STRNCASECMP strncasecmp +#endif +#ifndef STRCPY +#define STRCPY(sFilePath, nLength, sPath) strcpy(sFilePath, sPath) +#endif + +#ifndef FOPEN +#define FOPEN(fHandle, filename, mode) (fHandle = fopen(filename, mode)) +#endif +#ifndef FOPEN_FAIL +#define FOPEN_FAIL(result) (result == NULL) +#endif +#ifndef SSCANF +#define SSCANF sscanf +#endif +#ifndef SPRINTF +#define SPRINTF sprintf +#endif +#endif + +#ifndef EXIT_WAIVED +#define EXIT_WAIVED 2 +#endif + +// CUDA Utility Helper Functions +inline int stringRemoveDelimiter(char delimiter, const char *string) { + int string_start = 0; + + while (string[string_start] == delimiter) { + string_start++; + } + + if (string_start >= static_cast(strlen(string) - 1)) { + return 0; + } + + return string_start; +} + +inline int getFileExtension(char *filename, char **extension) { + int string_length = static_cast(strlen(filename)); + + while (filename[string_length--] != '.') { + if (string_length == 0) break; + } + + if (string_length > 0) string_length += 2; + + if (string_length == 0) + *extension = NULL; + else + *extension = &filename[string_length]; + + return string_length; +} + +inline bool checkCmdLineFlag(const int argc, const char **argv, + const char *string_ref) { + bool bFound = false; + + if (argc >= 1) { + for (int i = 1; i < argc; i++) { + int string_start = stringRemoveDelimiter('-', argv[i]); + const char *string_argv = &argv[i][string_start]; + + const char *equal_pos = strchr(string_argv, '='); + int argv_length = static_cast( + equal_pos == 0 ? strlen(string_argv) : equal_pos - string_argv); + + int length = static_cast(strlen(string_ref)); + + if (length == argv_length && + !STRNCASECMP(string_argv, string_ref, length)) { + bFound = true; + continue; + } + } + } + + return bFound; +} + +// This function wraps the CUDA Driver API into a template function +template +inline bool getCmdLineArgumentValue(const int argc, const char **argv, + const char *string_ref, T *value) { + bool bFound = false; + + if (argc >= 1) { + for (int i = 1; i < argc; i++) { + int string_start = stringRemoveDelimiter('-', argv[i]); + const char *string_argv = &argv[i][string_start]; + int length = static_cast(strlen(string_ref)); + + if (!STRNCASECMP(string_argv, string_ref, length)) { + if (length + 1 <= static_cast(strlen(string_argv))) { + int auto_inc = (string_argv[length] == '=') ? 1 : 0; + *value = (T)atoi(&string_argv[length + auto_inc]); + } + + bFound = true; + i = argc; + } + } + } + + return bFound; +} + +inline int getCmdLineArgumentInt(const int argc, const char **argv, + const char *string_ref) { + bool bFound = false; + int value = -1; + + if (argc >= 1) { + for (int i = 1; i < argc; i++) { + int string_start = stringRemoveDelimiter('-', argv[i]); + const char *string_argv = &argv[i][string_start]; + int length = static_cast(strlen(string_ref)); + + if (!STRNCASECMP(string_argv, string_ref, length)) { + if (length + 1 <= static_cast(strlen(string_argv))) { + int auto_inc = (string_argv[length] == '=') ? 1 : 0; + value = atoi(&string_argv[length + auto_inc]); + } else { + value = 0; + } + + bFound = true; + continue; + } + } + } + + if (bFound) { + return value; + } else { + return 0; + } +} + +inline float getCmdLineArgumentFloat(const int argc, const char **argv, + const char *string_ref) { + bool bFound = false; + float value = -1; + + if (argc >= 1) { + for (int i = 1; i < argc; i++) { + int string_start = stringRemoveDelimiter('-', argv[i]); + const char *string_argv = &argv[i][string_start]; + int length = static_cast(strlen(string_ref)); + + if (!STRNCASECMP(string_argv, string_ref, length)) { + if (length + 1 <= static_cast(strlen(string_argv))) { + int auto_inc = (string_argv[length] == '=') ? 1 : 0; + value = static_cast(atof(&string_argv[length + auto_inc])); + } else { + value = 0.f; + } + + bFound = true; + continue; + } + } + } + + if (bFound) { + return value; + } else { + return 0; + } +} + +inline bool getCmdLineArgumentString(const int argc, const char **argv, + const char *string_ref, + char **string_retval) { + bool bFound = false; + + if (argc >= 1) { + for (int i = 1; i < argc; i++) { + int string_start = stringRemoveDelimiter('-', argv[i]); + char *string_argv = const_cast(&argv[i][string_start]); + int length = static_cast(strlen(string_ref)); + + if (!STRNCASECMP(string_argv, string_ref, length)) { + *string_retval = &string_argv[length + 1]; + bFound = true; + continue; + } + } + } + + if (!bFound) { + *string_retval = NULL; + } + + return bFound; +} + +////////////////////////////////////////////////////////////////////////////// +//! Find the path for a file assuming that +//! files are found in the searchPath. +//! +//! @return the path if succeeded, otherwise 0 +//! @param filename name of the file +//! @param executable_path optional absolute path of the executable +////////////////////////////////////////////////////////////////////////////// +inline char *sdkFindFilePath(const char *filename, + const char *executable_path) { + // defines a variable that is replaced with the name of the + // executable + + // Typical relative search paths to locate needed companion files (e.g. sample + // input data, or JIT source files) The origin for the relative search may be + // the .exe file, a .bat file launching an .exe, a browser .exe launching the + // .exe or .bat, etc + const char *searchPath[] = { + "./", // same dir + "./data/", // same dir + + "../../../../Samples//", // up 4 in tree + "../../../Samples//", // up 3 in tree + "../../Samples//", // up 2 in tree + + "../../../../Samples//data/", // up 4 in tree + "../../../Samples//data/", // up 3 in tree + "../../Samples//data/", // up 2 in tree + + "../../../../Samples/0_Introduction//", // up 4 in tree + "../../../Samples/0_Introduction//", // up 3 in tree + "../../Samples/0_Introduction//", // up 2 in tree + + "../../../../Samples/1_Utilities//", // up 4 in tree + "../../../Samples/1_Utilities//", // up 3 in tree + "../../Samples/1_Utilities//", // up 2 in tree + + "../../../../Samples/2_Concepts_and_Techniques//", // up 4 in tree + "../../../Samples/2_Concepts_and_Techniques//", // up 3 in tree + "../../Samples/2_Concepts_and_Techniques//", // up 2 in tree + + "../../../../Samples/3_CUDA_Features//", // up 4 in tree + "../../../Samples/3_CUDA_Features//", // up 3 in tree + "../../Samples/3_CUDA_Features//", // up 2 in tree + + "../../../../Samples/4_CUDA_Libraries//", // up 4 in tree + "../../../Samples/4_CUDA_Libraries//", // up 3 in tree + "../../Samples/4_CUDA_Libraries//", // up 2 in tree + + "../../../../Samples/5_Domain_Specific//", // up 4 in tree + "../../../Samples/5_Domain_Specific//", // up 3 in tree + "../../Samples/5_Domain_Specific//", // up 2 in tree + + "../../../../Samples/6_Performance//", // up 4 in tree + "../../../Samples/6_Performance//", // up 3 in tree + "../../Samples/6_Performance//", // up 2 in tree + + "../../../../Samples/0_Introduction//data/", // up 4 in tree + "../../../Samples/0_Introduction//data/", // up 3 in tree + "../../Samples/0_Introduction//data/", // up 2 in tree + + "../../../../Samples/1_Utilities//data/", // up 4 in tree + "../../../Samples/1_Utilities//data/", // up 3 in tree + "../../Samples/1_Utilities//data/", // up 2 in tree + + "../../../../Samples/2_Concepts_and_Techniques//data/", // up 4 in tree + "../../../Samples/2_Concepts_and_Techniques//data/", // up 3 in tree + "../../Samples/2_Concepts_and_Techniques//data/", // up 2 in tree + + "../../../../Samples/3_CUDA_Features//data/", // up 4 in tree + "../../../Samples/3_CUDA_Features//data/", // up 3 in tree + "../../Samples/3_CUDA_Features//data/", // up 2 in tree + + "../../../../Samples/4_CUDA_Libraries//data/", // up 4 in tree + "../../../Samples/4_CUDA_Libraries//data/", // up 3 in tree + "../../Samples/4_CUDA_Libraries//data/", // up 2 in tree + + "../../../../Samples/5_Domain_Specific//data/", // up 4 in tree + "../../../Samples/5_Domain_Specific//data/", // up 3 in tree + "../../Samples/5_Domain_Specific//data/", // up 2 in tree + + "../../../../Samples/6_Performance//data/", // up 4 in tree + "../../../Samples/6_Performance//data/", // up 3 in tree + "../../Samples/6_Performance//data/", // up 2 in tree + + "../../../../Common/data/", // up 4 in tree + "../../../Common/data/", // up 3 in tree + "../../Common/data/" // up 2 in tree + }; + + // Extract the executable name + std::string executable_name; + + if (executable_path != 0) { + executable_name = std::string(executable_path); + +#if defined(WIN32) || defined(_WIN32) || defined(WIN64) || defined(_WIN64) + // Windows path delimiter + size_t delimiter_pos = executable_name.find_last_of('\\'); + executable_name.erase(0, delimiter_pos + 1); + + if (executable_name.rfind(".exe") != std::string::npos) { + // we strip .exe, only if the .exe is found + executable_name.resize(executable_name.size() - 4); + } + +#else + // Linux & OSX path delimiter + size_t delimiter_pos = executable_name.find_last_of('/'); + executable_name.erase(0, delimiter_pos + 1); +#endif + } + + // Loop over all search paths and return the first hit + for (unsigned int i = 0; i < sizeof(searchPath) / sizeof(char *); ++i) { + std::string path(searchPath[i]); + size_t executable_name_pos = path.find(""); + + // If there is executable_name variable in the searchPath + // replace it with the value + if (executable_name_pos != std::string::npos) { + if (executable_path != 0) { + path.replace(executable_name_pos, strlen(""), + executable_name); + } else { + // Skip this path entry if no executable argument is given + continue; + } + } + +#ifdef _DEBUG + printf("sdkFindFilePath <%s> in %s\n", filename, path.c_str()); +#endif + + // Test if the file exists + path.append(filename); + FILE *fp; + FOPEN(fp, path.c_str(), "rb"); + + if (fp != NULL) { + fclose(fp); + // File found + // returning an allocated array here for backwards compatibility reasons + char *file_path = reinterpret_cast(malloc(path.length() + 1)); + STRCPY(file_path, path.length() + 1, path.c_str()); + return file_path; + } + + if (fp) { + fclose(fp); + } + } + + // File not found + printf("\nerror: sdkFindFilePath: file <%s> not found!\n", filename); + return 0; +} + +#endif // COMMON_HELPER_STRING_H_ \ No newline at end of file diff --git a/DirectProgramming/C++SYCL/DenseLinearAlgebra/guided_matrix_mul_SYCLMigration/01_sycl_dpct_output/Common/helper_timer.h b/DirectProgramming/C++SYCL/DenseLinearAlgebra/guided_matrix_mul_SYCLMigration/01_sycl_dpct_output/Common/helper_timer.h new file mode 100644 index 0000000000..8ebce43598 --- /dev/null +++ b/DirectProgramming/C++SYCL/DenseLinearAlgebra/guided_matrix_mul_SYCLMigration/01_sycl_dpct_output/Common/helper_timer.h @@ -0,0 +1,465 @@ +/* Copyright (c) 2022, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of NVIDIA CORPORATION nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +// Helper Timing Functions +#ifndef COMMON_HELPER_TIMER_H_ +#define COMMON_HELPER_TIMER_H_ + +#ifndef EXIT_WAIVED +#define EXIT_WAIVED 2 +#endif + +// includes, system +#include + +// includes, project +#include + +// Definition of the StopWatch Interface, this is used if we don't want to use +// the CUT functions But rather in a self contained class interface +class StopWatchInterface { + public: + StopWatchInterface() {} + virtual ~StopWatchInterface() {} + + public: + //! Start time measurement + virtual void start() = 0; + + //! Stop time measurement + virtual void stop() = 0; + + //! Reset time counters to zero + virtual void reset() = 0; + + //! Time in msec. after start. If the stop watch is still running (i.e. there + //! was no call to stop()) then the elapsed time is returned, otherwise the + //! time between the last start() and stop call is returned + virtual float getTime() = 0; + + //! Mean time to date based on the number of times the stopwatch has been + //! _stopped_ (ie finished sessions) and the current total time + virtual float getAverageTime() = 0; +}; + +////////////////////////////////////////////////////////////////// +// Begin Stopwatch timer class definitions for all OS platforms // +////////////////////////////////////////////////////////////////// +#if defined(WIN32) || defined(_WIN32) || defined(WIN64) || defined(_WIN64) +// includes, system +#define WINDOWS_LEAN_AND_MEAN +#include +#undef min +#undef max + +//! Windows specific implementation of StopWatch +class StopWatchWin : public StopWatchInterface { + public: + //! Constructor, default + StopWatchWin() + : start_time(), + end_time(), + diff_time(0.0f), + total_time(0.0f), + running(false), + clock_sessions(0), + freq(0), + freq_set(false) { + if (!freq_set) { + // helper variable + LARGE_INTEGER temp; + + // get the tick frequency from the OS + QueryPerformanceFrequency(reinterpret_cast(&temp)); + + // convert to type in which it is needed + freq = (static_cast(temp.QuadPart)) / 1000.0; + + // rememeber query + freq_set = true; + } + } + + // Destructor + ~StopWatchWin() {} + + public: + //! Start time measurement + inline void start(); + + //! Stop time measurement + inline void stop(); + + //! Reset time counters to zero + inline void reset(); + + //! Time in msec. after start. If the stop watch is still running (i.e. there + //! was no call to stop()) then the elapsed time is returned, otherwise the + //! time between the last start() and stop call is returned + inline float getTime(); + + //! Mean time to date based on the number of times the stopwatch has been + //! _stopped_ (ie finished sessions) and the current total time + inline float getAverageTime(); + + private: + // member variables + + //! Start of measurement + LARGE_INTEGER start_time; + //! End of measurement + LARGE_INTEGER end_time; + + //! Time difference between the last start and stop + float diff_time; + + //! TOTAL time difference between starts and stops + float total_time; + + //! flag if the stop watch is running + bool running; + + //! Number of times clock has been started + //! and stopped to allow averaging + int clock_sessions; + + //! tick frequency + double freq; + + //! flag if the frequency has been set + bool freq_set; +}; + +// functions, inlined + +//////////////////////////////////////////////////////////////////////////////// +//! Start time measurement +//////////////////////////////////////////////////////////////////////////////// +inline void StopWatchWin::start() { + QueryPerformanceCounter(reinterpret_cast(&start_time)); + running = true; +} + +//////////////////////////////////////////////////////////////////////////////// +//! Stop time measurement and increment add to the current diff_time summation +//! variable. Also increment the number of times this clock has been run. +//////////////////////////////////////////////////////////////////////////////// +inline void StopWatchWin::stop() { + QueryPerformanceCounter(reinterpret_cast(&end_time)); + diff_time = static_cast(((static_cast(end_time.QuadPart) - + static_cast(start_time.QuadPart)) / + freq)); + + total_time += diff_time; + clock_sessions++; + running = false; +} + +//////////////////////////////////////////////////////////////////////////////// +//! Reset the timer to 0. Does not change the timer running state but does +//! recapture this point in time as the current start time if it is running. +//////////////////////////////////////////////////////////////////////////////// +inline void StopWatchWin::reset() { + diff_time = 0; + total_time = 0; + clock_sessions = 0; + + if (running) { + QueryPerformanceCounter(reinterpret_cast(&start_time)); + } +} + +//////////////////////////////////////////////////////////////////////////////// +//! Time in msec. after start. If the stop watch is still running (i.e. there +//! was no call to stop()) then the elapsed time is returned added to the +//! current diff_time sum, otherwise the current summed time difference alone +//! is returned. +//////////////////////////////////////////////////////////////////////////////// +inline float StopWatchWin::getTime() { + // Return the TOTAL time to date + float retval = total_time; + + if (running) { + LARGE_INTEGER temp; + QueryPerformanceCounter(reinterpret_cast(&temp)); + retval += static_cast(((static_cast(temp.QuadPart) - + static_cast(start_time.QuadPart)) / + freq)); + } + + return retval; +} + +//////////////////////////////////////////////////////////////////////////////// +//! Time in msec. for a single run based on the total number of COMPLETED runs +//! and the total time. +//////////////////////////////////////////////////////////////////////////////// +inline float StopWatchWin::getAverageTime() { + return (clock_sessions > 0) ? (total_time / clock_sessions) : 0.0f; +} +#else +// Declarations for Stopwatch on Linux and Mac OSX +// includes, system +#include +#include + +//! Windows specific implementation of StopWatch +class StopWatchLinux : public StopWatchInterface { + public: + //! Constructor, default + StopWatchLinux() + : start_time(), + diff_time(0.0), + total_time(0.0), + running(false), + clock_sessions(0) {} + + // Destructor + virtual ~StopWatchLinux() {} + + public: + //! Start time measurement + inline void start(); + + //! Stop time measurement + inline void stop(); + + //! Reset time counters to zero + inline void reset(); + + //! Time in msec. after start. If the stop watch is still running (i.e. there + //! was no call to stop()) then the elapsed time is returned, otherwise the + //! time between the last start() and stop call is returned + inline float getTime(); + + //! Mean time to date based on the number of times the stopwatch has been + //! _stopped_ (ie finished sessions) and the current total time + inline float getAverageTime(); + + private: + // helper functions + + //! Get difference between start time and current time + inline float getDiffTime(); + + private: + // member variables + + //! Start of measurement + struct timeval start_time; + + //! Time difference between the last start and stop + float diff_time; + + //! TOTAL time difference between starts and stops + float total_time; + + //! flag if the stop watch is running + bool running; + + //! Number of times clock has been started + //! and stopped to allow averaging + int clock_sessions; +}; + +// functions, inlined + +//////////////////////////////////////////////////////////////////////////////// +//! Start time measurement +//////////////////////////////////////////////////////////////////////////////// +inline void StopWatchLinux::start() { + gettimeofday(&start_time, 0); + running = true; +} + +//////////////////////////////////////////////////////////////////////////////// +//! Stop time measurement and increment add to the current diff_time summation +//! variable. Also increment the number of times this clock has been run. +//////////////////////////////////////////////////////////////////////////////// +inline void StopWatchLinux::stop() { + diff_time = getDiffTime(); + total_time += diff_time; + running = false; + clock_sessions++; +} + +//////////////////////////////////////////////////////////////////////////////// +//! Reset the timer to 0. Does not change the timer running state but does +//! recapture this point in time as the current start time if it is running. +//////////////////////////////////////////////////////////////////////////////// +inline void StopWatchLinux::reset() { + diff_time = 0; + total_time = 0; + clock_sessions = 0; + + if (running) { + gettimeofday(&start_time, 0); + } +} + +//////////////////////////////////////////////////////////////////////////////// +//! Time in msec. after start. If the stop watch is still running (i.e. there +//! was no call to stop()) then the elapsed time is returned added to the +//! current diff_time sum, otherwise the current summed time difference alone +//! is returned. +//////////////////////////////////////////////////////////////////////////////// +inline float StopWatchLinux::getTime() { + // Return the TOTAL time to date + float retval = total_time; + + if (running) { + retval += getDiffTime(); + } + + return retval; +} + +//////////////////////////////////////////////////////////////////////////////// +//! Time in msec. for a single run based on the total number of COMPLETED runs +//! and the total time. +//////////////////////////////////////////////////////////////////////////////// +inline float StopWatchLinux::getAverageTime() { + return (clock_sessions > 0) ? (total_time / clock_sessions) : 0.0f; +} +//////////////////////////////////////////////////////////////////////////////// + +//////////////////////////////////////////////////////////////////////////////// +inline float StopWatchLinux::getDiffTime() { + struct timeval t_time; + gettimeofday(&t_time, 0); + + // time difference in milli-seconds + return static_cast(1000.0 * (t_time.tv_sec - start_time.tv_sec) + + (0.001 * (t_time.tv_usec - start_time.tv_usec))); +} +#endif // WIN32 + +//////////////////////////////////////////////////////////////////////////////// +//! Timer functionality exported + +//////////////////////////////////////////////////////////////////////////////// +//! Create a new timer +//! @return true if a time has been created, otherwise false +//! @param name of the new timer, 0 if the creation failed +//////////////////////////////////////////////////////////////////////////////// +inline bool sdkCreateTimer(StopWatchInterface **timer_interface) { +// printf("sdkCreateTimer called object %08x\n", (void *)*timer_interface); +#if defined(WIN32) || defined(_WIN32) || defined(WIN64) || defined(_WIN64) + *timer_interface = reinterpret_cast(new StopWatchWin()); +#else + *timer_interface = + reinterpret_cast(new StopWatchLinux()); +#endif + return (*timer_interface != NULL) ? true : false; +} + +//////////////////////////////////////////////////////////////////////////////// +//! Delete a timer +//! @return true if a time has been deleted, otherwise false +//! @param name of the timer to delete +//////////////////////////////////////////////////////////////////////////////// +inline bool sdkDeleteTimer(StopWatchInterface **timer_interface) { + // printf("sdkDeleteTimer called object %08x\n", (void *)*timer_interface); + if (*timer_interface) { + delete *timer_interface; + *timer_interface = NULL; + } + + return true; +} + +//////////////////////////////////////////////////////////////////////////////// +//! Start the time with name \a name +//! @param name name of the timer to start +//////////////////////////////////////////////////////////////////////////////// +inline bool sdkStartTimer(StopWatchInterface **timer_interface) { + // printf("sdkStartTimer called object %08x\n", (void *)*timer_interface); + if (*timer_interface) { + (*timer_interface)->start(); + } + + return true; +} + +//////////////////////////////////////////////////////////////////////////////// +//! Stop the time with name \a name. Does not reset. +//! @param name name of the timer to stop +//////////////////////////////////////////////////////////////////////////////// +inline bool sdkStopTimer(StopWatchInterface **timer_interface) { + // printf("sdkStopTimer called object %08x\n", (void *)*timer_interface); + if (*timer_interface) { + (*timer_interface)->stop(); + } + + return true; +} + +//////////////////////////////////////////////////////////////////////////////// +//! Resets the timer's counter. +//! @param name name of the timer to reset. +//////////////////////////////////////////////////////////////////////////////// +inline bool sdkResetTimer(StopWatchInterface **timer_interface) { + // printf("sdkResetTimer called object %08x\n", (void *)*timer_interface); + if (*timer_interface) { + (*timer_interface)->reset(); + } + + return true; +} + +//////////////////////////////////////////////////////////////////////////////// +//! Return the average time for timer execution as the total time +//! for the timer dividied by the number of completed (stopped) runs the timer +//! has made. +//! Excludes the current running time if the timer is currently running. +//! @param name name of the timer to return the time of +//////////////////////////////////////////////////////////////////////////////// +inline float sdkGetAverageTimerValue(StopWatchInterface **timer_interface) { + // printf("sdkGetAverageTimerValue called object %08x\n", (void + // *)*timer_interface); + if (*timer_interface) { + return (*timer_interface)->getAverageTime(); + } else { + return 0.0f; + } +} + +//////////////////////////////////////////////////////////////////////////////// +//! Total execution time for the timer over all runs since the last reset +//! or timer creation. +//! @param name name of the timer to obtain the value of. +//////////////////////////////////////////////////////////////////////////////// +inline float sdkGetTimerValue(StopWatchInterface **timer_interface) { + // printf("sdkGetTimerValue called object %08x\n", (void *)*timer_interface); + if (*timer_interface) { + return (*timer_interface)->getTime(); + } else { + return 0.0f; + } +} + +#endif // COMMON_HELPER_TIMER_H_ \ No newline at end of file diff --git a/DirectProgramming/C++SYCL/DenseLinearAlgebra/guided_matrix_mul_SYCLMigration/01_sycl_dpct_output/src/matrixMulCUBLAS.cpp.dp.cpp b/DirectProgramming/C++SYCL/DenseLinearAlgebra/guided_matrix_mul_SYCLMigration/01_sycl_dpct_output/src/matrixMulCUBLAS.cpp.dp.cpp new file mode 100644 index 0000000000..777f10711e --- /dev/null +++ b/DirectProgramming/C++SYCL/DenseLinearAlgebra/guided_matrix_mul_SYCLMigration/01_sycl_dpct_output/src/matrixMulCUBLAS.cpp.dp.cpp @@ -0,0 +1,489 @@ +/* Copyright (c) 2022, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of NVIDIA CORPORATION nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* +* Matrix multiplication: C = A * B. +* Host code. +* +* This sample implements matrix multiplication as described in Chapter 3 +* of the programming guide and uses the CUBLAS library to demonstrate +* the best performance. +* SOME PRECAUTIONS: +* IF WE WANT TO CALCULATE ROW-MAJOR MATRIX MULTIPLY C = A * B, +* WE JUST NEED CALL CUBLAS API IN A REVERSE ORDER: cublasSegemm(B, A)! +* The reason is explained as follows: +* CUBLAS library uses column-major storage, but C/C++ use row-major storage. +* When passing the matrix pointer to CUBLAS, the memory layout alters from +* row-major to column-major, which is equivalent to an implicit transpose. +* In the case of row-major C/C++ matrix A, B, and a simple matrix multiplication +* C = A * B, we can't use the input order like cublasSgemm(A, B) because of +* implicit transpose. The actual result of cublasSegemm(A, B) is A(T) * B(T). +* If col(A(T)) != row(B(T)), equal to row(A) != col(B), A(T) and B(T) are not +* multipliable. Moreover, even if A(T) and B(T) are multipliable, the result C +* is a column-based cublas matrix, which means C(T) in C/C++, we need extra +* transpose code to convert it to a row-based C/C++ matrix. +* To solve the problem, let's consider our desired result C, a row-major matrix. +* In cublas format, it is C(T) actually (because of the implicit transpose). +* C = A * B, so C(T) = (A * B) (T) = B(T) * A(T). Cublas matrice B(T) and A(T) +* happen to be C/C++ matrice B and A (still because of the implicit transpose)! +* We don't need extra transpose code, we only need alter the input order! +* +* CUBLAS provides high-performance matrix multiplication. +* See also: +* V. Volkov and J. Demmel, "Benchmarking GPUs to tune dense linear algebra," +* in Proc. 2008 ACM/IEEE Conf. on Supercomputing (SC '08), +* Piscataway, NJ: IEEE Press, 2008, pp. Art. 31:1-11. +*/ + +// Utilities and system includes +#include +#include +#include +#include +#include +#include + // helper for shared functions common to CUDA Samples + +// CUDA runtime + +// CUDA and CUBLAS functions +#include +#include +#include + +#include + +#ifndef min +#define min(a, b) ((a < b) ? a : b) +#endif +#ifndef max +#define max(a, b) ((a > b) ? a : b) +#endif + +// Optional Command-line multiplier for matrix sizes +typedef struct _matrixSize { + unsigned int uiWA, uiHA, uiWB, uiHB, uiWC, uiHC; +} sMatrixSize; + +//////////////////////////////////////////////////////////////////////////////// +//! Compute reference data set matrix multiply on CPU +//! C = A * B +//! @param C reference data, computed but preallocated +//! @param A matrix A as provided to device +//! @param B matrix B as provided to device +//! @param hA height of matrix A +//! @param wB width of matrix B +//////////////////////////////////////////////////////////////////////////////// +void matrixMulCPU(float *C, const float *A, const float *B, unsigned int hA, + unsigned int wA, unsigned int wB) { + for (unsigned int i = 0; i < hA; ++i) + for (unsigned int j = 0; j < wB; ++j) { + double sum = 0; + + for (unsigned int k = 0; k < wA; ++k) { + double a = A[i * wA + k]; + double b = B[k * wB + j]; + sum += a * b; + } + + C[i * wB + j] = (float)sum; + } +} + +// Allocates a matrix with random float entries. +void randomInit(float *data, int size) { + for (int i = 0; i < size; ++i) data[i] = rand() / (float)RAND_MAX; +} + +void printDiff(float *data1, float *data2, int width, int height, + int iListLength, float fListTol) { + printf("Listing first %d Differences > %.6f...\n", iListLength, fListTol); + int i, j, k; + int error_count = 0; + + for (j = 0; j < height; j++) { + if (error_count < iListLength) { + printf("\n Row %d:\n", j); + } + + for (i = 0; i < width; i++) { + k = j * width + i; + float fDiff = fabs(data1[k] - data2[k]); + + if (fDiff > fListTol) { + if (error_count < iListLength) { + printf(" Loc(%d,%d)\tCPU=%.5f\tGPU=%.5f\tDiff=%.6f\n", i, j, + data1[k], data2[k], fDiff); + } + + error_count++; + } + } + } + + printf(" \n Total Errors = %d\n", error_count); +} + +void initializeCUDA(int argc, char **argv, int &devID, int &iSizeMultiple, + sMatrixSize &matrix_size) try { + // By default, we use device 0, otherwise we override the device ID based on + // what is provided at the command line + int error; + devID = 0; + + devID = findCudaDevice(argc, (const char **)argv); + + if (checkCmdLineFlag(argc, (const char **)argv, "sizemult")) { + iSizeMultiple = + getCmdLineArgumentInt(argc, (const char **)argv, "sizemult"); + } + + iSizeMultiple = min(iSizeMultiple, 10); + iSizeMultiple = max(iSizeMultiple, 1); + + dpct::device_info deviceProp; + + /* + DPCT1003:20: Migrated API does not return error code. (*, 0) is inserted. You + may need to rewrite this code. + */ + error = + (dpct::dev_mgr::instance().get_device(devID).get_device_info(deviceProp), + 0); + + printf("GPU Device %d: \"%s\" with compute capability %d.%d\n\n", devID, + /* + DPCT1005:21: The SYCL device version is different from CUDA Compute + Compatibility. You may need to rewrite this code. + */ + deviceProp.get_name(), deviceProp.get_major_version(), + deviceProp.get_minor_version()); + + int block_size = 32; + + matrix_size.uiWA = 3 * block_size * iSizeMultiple; + matrix_size.uiHA = 4 * block_size * iSizeMultiple; + matrix_size.uiWB = 2 * block_size * iSizeMultiple; + matrix_size.uiHB = 3 * block_size * iSizeMultiple; + matrix_size.uiWC = 2 * block_size * iSizeMultiple; + matrix_size.uiHC = 4 * block_size * iSizeMultiple; + + printf("MatrixA(%u,%u), MatrixB(%u,%u), MatrixC(%u,%u)\n", matrix_size.uiHA, + matrix_size.uiWA, matrix_size.uiHB, matrix_size.uiWB, matrix_size.uiHC, + matrix_size.uiWC); + + if (matrix_size.uiWA != matrix_size.uiHB || + matrix_size.uiHA != matrix_size.uiHC || + matrix_size.uiWB != matrix_size.uiWC) { + printf("ERROR: Matrix sizes do not match!\n"); + exit(-1); + } +} +catch (sycl::exception const &exc) { + std::cerr << exc.what() << "Exception caught at file:" << __FILE__ + << ", line:" << __LINE__ << std::endl; + std::exit(1); +} + +//////////////////////////////////////////////////////////////////////////////// +//! Run a simple test matrix multiply using CUBLAS +//////////////////////////////////////////////////////////////////////////////// +int matrixMultiply(int argc, char **argv, int devID, sMatrixSize &matrix_size) { + dpct::device_info deviceProp; + + /* + DPCT1003:22: Migrated API does not return error code. (*, 0) is inserted. You + may need to rewrite this code. + */ + checkCudaErrors( + (dpct::dev_mgr::instance().get_device(devID).get_device_info(deviceProp), + 0)); + + int block_size = 32; + + // set seed for rand() + srand(2006); + + // allocate host memory for matrices A and B + unsigned int size_A = matrix_size.uiWA * matrix_size.uiHA; + unsigned int mem_size_A = sizeof(float) * size_A; + float *h_A = (float *)malloc(mem_size_A); + unsigned int size_B = matrix_size.uiWB * matrix_size.uiHB; + unsigned int mem_size_B = sizeof(float) * size_B; + float *h_B = (float *)malloc(mem_size_B); + + // set seed for rand() + srand(2006); + + // initialize host memory + randomInit(h_A, size_A); + randomInit(h_B, size_B); + + // allocate device memory + float *d_A, *d_B, *d_C; + unsigned int size_C = matrix_size.uiWC * matrix_size.uiHC; + unsigned int mem_size_C = sizeof(float) * size_C; + + // allocate host memory for the result + float *h_C = (float *)malloc(mem_size_C); + float *h_CUBLAS = (float *)malloc(mem_size_C); + + /* + DPCT1003:23: Migrated API does not return error code. (*, 0) is inserted. You + may need to rewrite this code. + */ + checkCudaErrors(( + d_A = (float *)sycl::malloc_device(mem_size_A, dpct::get_default_queue()), + 0)); + /* + DPCT1003:24: Migrated API does not return error code. (*, 0) is inserted. You + may need to rewrite this code. + */ + checkCudaErrors(( + d_B = (float *)sycl::malloc_device(mem_size_B, dpct::get_default_queue()), + 0)); + /* + DPCT1003:25: Migrated API does not return error code. (*, 0) is inserted. You + may need to rewrite this code. + */ + checkCudaErrors( + (dpct::get_default_queue().memcpy(d_A, h_A, mem_size_A).wait(), 0)); + /* + DPCT1003:26: Migrated API does not return error code. (*, 0) is inserted. You + may need to rewrite this code. + */ + checkCudaErrors( + (dpct::get_default_queue().memcpy(d_B, h_B, mem_size_B).wait(), 0)); + /* + DPCT1003:27: Migrated API does not return error code. (*, 0) is inserted. You + may need to rewrite this code. + */ + checkCudaErrors(( + d_C = (float *)sycl::malloc_device(mem_size_C, dpct::get_default_queue()), + 0)); + + // setup execution parameters + sycl::range<3> threads(1, block_size, block_size); + sycl::range<3> grid(1, matrix_size.uiHC / threads[1], + matrix_size.uiWC / threads[2]); + + // create and start timer + printf("Computing result using CUBLAS..."); + + // execute the kernel + int nIter = 30; + + // CUBLAS version 2.0 + { + const float alpha = 1.0f; + const float beta = 0.0f; + sycl::queue *handle; + dpct::event_ptr start, stop; + std::chrono::time_point start_ct1; + std::chrono::time_point stop_ct1; + + /* + DPCT1003:28: Migrated API does not return error code. (*, 0) is inserted. + You may need to rewrite this code. + */ + checkCudaErrors((handle = &dpct::get_default_queue(), 0)); + + // Perform warmup operation with cublas + /* + DPCT1003:29: Migrated API does not return error code. (*, 0) is inserted. + You may need to rewrite this code. + */ + checkCudaErrors( + (oneapi::mkl::blas::column_major::gemm( + *handle, oneapi::mkl::transpose::nontrans, + oneapi::mkl::transpose::nontrans, matrix_size.uiWB, + matrix_size.uiHA, matrix_size.uiWA, alpha, d_B, matrix_size.uiWB, + d_A, matrix_size.uiWA, beta, d_C, matrix_size.uiWB), + 0)); + + // Allocate CUDA events that we'll use for timing + /* + DPCT1003:30: Migrated API does not return error code. (*, 0) is inserted. + You may need to rewrite this code. + */ + checkCudaErrors((start = new sycl::event(), 0)); + /* + DPCT1003:31: Migrated API does not return error code. (*, 0) is inserted. + You may need to rewrite this code. + */ + checkCudaErrors((stop = new sycl::event(), 0)); + + // Record the start event + /* + DPCT1012:32: Detected kernel execution time measurement pattern and + generated an initial code for time measurements in SYCL. You can change the + way time is measured depending on your goals. + */ + /* + DPCT1024:33: The original code returned the error code that was further + consumed by the program logic. This original code was replaced with 0. You + may need to rewrite the program logic consuming the error code. + */ + start_ct1 = std::chrono::steady_clock::now(); + checkCudaErrors(0); + + for (int j = 0; j < nIter; j++) { + // note cublas is column primary! + // need to transpose the order + /* + DPCT1003:34: Migrated API does not return error code. (*, 0) is inserted. + You may need to rewrite this code. + */ + checkCudaErrors( + (oneapi::mkl::blas::column_major::gemm( + *handle, oneapi::mkl::transpose::nontrans, + oneapi::mkl::transpose::nontrans, matrix_size.uiWB, + matrix_size.uiHA, matrix_size.uiWA, alpha, d_B, matrix_size.uiWB, + d_A, matrix_size.uiWA, beta, d_C, matrix_size.uiWB), + 0)); + } + + printf("done.\n"); + + // Record the stop event + /* + DPCT1012:35: Detected kernel execution time measurement pattern and + generated an initial code for time measurements in SYCL. You can change the + way time is measured depending on your goals. + */ + /* + DPCT1024:36: The original code returned the error code that was further + consumed by the program logic. This original code was replaced with 0. You + may need to rewrite the program logic consuming the error code. + */ + stop_ct1 = std::chrono::steady_clock::now(); + checkCudaErrors(0); + + // Wait for the stop event to complete + checkCudaErrors(0); + + float msecTotal = 0.0f; + /* + DPCT1003:37: Migrated API does not return error code. (*, 0) is inserted. + You may need to rewrite this code. + */ + checkCudaErrors((msecTotal = std::chrono::duration( + stop_ct1 - start_ct1) + .count(), + 0)); + + // Compute and print the performance + float msecPerMatrixMul = msecTotal / nIter; + double flopsPerMatrixMul = 2.0 * (double)matrix_size.uiHC * + (double)matrix_size.uiWC * + (double)matrix_size.uiHB; + double gigaFlops = + (flopsPerMatrixMul * 1.0e-9f) / (msecPerMatrixMul / 1000.0f); + printf("Performance= %.2f GFlop/s, Time= %.3f msec, Size= %.0f Ops\n", + gigaFlops, msecPerMatrixMul, flopsPerMatrixMul); + + // copy result from device to host + /* + DPCT1003:38: Migrated API does not return error code. (*, 0) is inserted. + You may need to rewrite this code. + */ + checkCudaErrors(( + dpct::get_default_queue().memcpy(h_CUBLAS, d_C, mem_size_C).wait(), 0)); + + // Destroy the handle + /* + DPCT1003:39: Migrated API does not return error code. (*, 0) is inserted. + You may need to rewrite this code. + */ + checkCudaErrors((handle = nullptr, 0)); + } + + // compute reference solution + printf("Computing result using host CPU..."); + float *reference = (float *)malloc(mem_size_C); + matrixMulCPU(reference, h_A, h_B, matrix_size.uiHA, matrix_size.uiWA, + matrix_size.uiWB); + printf("done.\n"); + + // check result (CUBLAS) + bool resCUBLAS = sdkCompareL2fe(reference, h_CUBLAS, size_C, 1.0e-6f); + + if (resCUBLAS != true) { + printDiff(reference, h_CUBLAS, matrix_size.uiWC, matrix_size.uiHC, 100, + 1.0e-5f); + } + + printf("Comparing CUBLAS Matrix Multiply with CPU results: %s\n", + (true == resCUBLAS) ? "PASS" : "FAIL"); + + printf( + "\nNOTE: The CUDA Samples are not meant for performance measurements. " + "Results may vary when GPU Boost is enabled.\n"); + + // clean up memory + free(h_A); + free(h_B); + free(h_C); + free(reference); + /* + DPCT1003:40: Migrated API does not return error code. (*, 0) is inserted. You + may need to rewrite this code. + */ + checkCudaErrors((sycl::free(d_A, dpct::get_default_queue()), 0)); + /* + DPCT1003:41: Migrated API does not return error code. (*, 0) is inserted. You + may need to rewrite this code. + */ + checkCudaErrors((sycl::free(d_B, dpct::get_default_queue()), 0)); + /* + DPCT1003:42: Migrated API does not return error code. (*, 0) is inserted. You + may need to rewrite this code. + */ + checkCudaErrors((sycl::free(d_C, dpct::get_default_queue()), 0)); + + if (resCUBLAS == true) { + return EXIT_SUCCESS; // return value = 1 + } else { + return EXIT_FAILURE; // return value = 0 + } +} + +//////////////////////////////////////////////////////////////////////////////// +// Program main +//////////////////////////////////////////////////////////////////////////////// +int main(int argc, char **argv) { + printf("[Matrix Multiply CUBLAS] - Starting...\n"); + + int devID = 0, sizeMult = 5; + sMatrixSize matrix_size; + + initializeCUDA(argc, argv, devID, sizeMult, matrix_size); + + int matrix_result = matrixMultiply(argc, argv, devID, matrix_size); + + return matrix_result; +} \ No newline at end of file diff --git a/DirectProgramming/C++SYCL/DenseLinearAlgebra/guided_matrix_mul_SYCLMigration/02_sycl_dpct_migrated/CMakeLists.txt b/DirectProgramming/C++SYCL/DenseLinearAlgebra/guided_matrix_mul_SYCLMigration/02_sycl_dpct_migrated/CMakeLists.txt new file mode 100644 index 0000000000..f3cd0a8f89 --- /dev/null +++ b/DirectProgramming/C++SYCL/DenseLinearAlgebra/guided_matrix_mul_SYCLMigration/02_sycl_dpct_migrated/CMakeLists.txt @@ -0,0 +1,8 @@ +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsycl -std=c++17") +set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -lmkl_sycl -lmkl_intel_ilp64 -lmkl_sequential -lmkl_core") +include_directories(${CMAKE_SOURCE_DIR}/02_sycl_dpct_migrated/Common/) + +add_executable (02_sycl_dpct_migrated src/matrixMulCUBLAS.cpp) +target_link_libraries(02_sycl_dpct_migrated sycl) + +add_custom_target (run_matrix_mul cd ${CMAKE_SOURCE_DIR}/02_sycl_dpct_migrated/ && ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/02_sycl_dpct_migrated) diff --git a/DirectProgramming/C++SYCL/DenseLinearAlgebra/guided_matrix_mul_SYCLMigration/02_sycl_dpct_migrated/Common/exception.h b/DirectProgramming/C++SYCL/DenseLinearAlgebra/guided_matrix_mul_SYCLMigration/02_sycl_dpct_migrated/Common/exception.h new file mode 100644 index 0000000000..ca8ac25258 --- /dev/null +++ b/DirectProgramming/C++SYCL/DenseLinearAlgebra/guided_matrix_mul_SYCLMigration/02_sycl_dpct_migrated/Common/exception.h @@ -0,0 +1,151 @@ +/* Copyright (c) 2022, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of NVIDIA CORPORATION nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* CUda UTility Library */ +#ifndef COMMON_EXCEPTION_H_ +#define COMMON_EXCEPTION_H_ + +// includes, system +#include +#include +#include +#include +#include + +//! Exception wrapper. +//! @param Std_Exception Exception out of namespace std for easy typing. +template +class Exception : public Std_Exception { + public: + //! @brief Static construction interface + //! @return Alwayss throws ( Located_Exception) + //! @param file file in which the Exception occurs + //! @param line line in which the Exception occurs + //! @param detailed details on the code fragment causing the Exception + static void throw_it(const char *file, const int line, + const char *detailed = "-"); + + //! Static construction interface + //! @return Alwayss throws ( Located_Exception) + //! @param file file in which the Exception occurs + //! @param line line in which the Exception occurs + //! @param detailed details on the code fragment causing the Exception + static void throw_it(const char *file, const int line, + const std::string &detailed); + + //! Destructor + virtual ~Exception() throw(); + + private: + //! Constructor, default (private) + Exception(); + + //! Constructor, standard + //! @param str string returned by what() + explicit Exception(const std::string &str); +}; + +//////////////////////////////////////////////////////////////////////////////// +//! Exception handler function for arbitrary exceptions +//! @param ex exception to handle +//////////////////////////////////////////////////////////////////////////////// +template +inline void handleException(const Exception_Typ &ex) { + std::cerr << ex.what() << std::endl; + + exit(EXIT_FAILURE); +} + +//! Convenience macros + +//! Exception caused by dynamic program behavior, e.g. file does not exist +#define RUNTIME_EXCEPTION(msg) \ + Exception::throw_it(__FILE__, __LINE__, msg) + +//! Logic exception in program, e.g. an assert failed +#define LOGIC_EXCEPTION(msg) \ + Exception::throw_it(__FILE__, __LINE__, msg) + +//! Out of range exception +#define RANGE_EXCEPTION(msg) \ + Exception::throw_it(__FILE__, __LINE__, msg) + +//////////////////////////////////////////////////////////////////////////////// +//! Implementation + +// includes, system +#include + +//////////////////////////////////////////////////////////////////////////////// +//! Static construction interface. +//! @param Exception causing code fragment (file and line) and detailed infos. +//////////////////////////////////////////////////////////////////////////////// +/*static*/ template +void Exception::throw_it(const char *file, const int line, + const char *detailed) { + std::stringstream s; + + // Quiet heavy-weight but exceptions are not for + // performance / release versions + s << "Exception in file '" << file << "' in line " << line << "\n" + << "Detailed description: " << detailed << "\n"; + + throw Exception(s.str()); +} + +//////////////////////////////////////////////////////////////////////////////// +//! Static construction interface. +//! @param Exception causing code fragment (file and line) and detailed infos. +//////////////////////////////////////////////////////////////////////////////// +/*static*/ template +void Exception::throw_it(const char *file, const int line, + const std::string &msg) { + throw_it(file, line, msg.c_str()); +} + +//////////////////////////////////////////////////////////////////////////////// +//! Constructor, default (private). +//////////////////////////////////////////////////////////////////////////////// +template +Exception::Exception() : Std_Exception("Unknown Exception.\n") {} + +//////////////////////////////////////////////////////////////////////////////// +//! Constructor, standard (private). +//! String returned by what(). +//////////////////////////////////////////////////////////////////////////////// +template +Exception::Exception(const std::string &s) : Std_Exception(s) {} + +//////////////////////////////////////////////////////////////////////////////// +//! Destructor +//////////////////////////////////////////////////////////////////////////////// +template +Exception::~Exception() throw() {} + + // functions, exported + +#endif // COMMON_EXCEPTION_H_ diff --git a/DirectProgramming/C++SYCL/DenseLinearAlgebra/guided_matrix_mul_SYCLMigration/02_sycl_dpct_migrated/Common/helper_cuda.h b/DirectProgramming/C++SYCL/DenseLinearAlgebra/guided_matrix_mul_SYCLMigration/02_sycl_dpct_migrated/Common/helper_cuda.h new file mode 100644 index 0000000000..396729118e --- /dev/null +++ b/DirectProgramming/C++SYCL/DenseLinearAlgebra/guided_matrix_mul_SYCLMigration/02_sycl_dpct_migrated/Common/helper_cuda.h @@ -0,0 +1,1051 @@ +/* Copyright (c) 2022, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of NVIDIA CORPORATION nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +//////////////////////////////////////////////////////////////////////////////// +// These are CUDA Helper functions for initialization and error checking + +#ifndef COMMON_HELPER_CUDA_H_ +#define COMMON_HELPER_CUDA_H_ + +#pragma once + +#include +#include +#include +#include +#include +#include + +#include + +#ifndef EXIT_WAIVED +#define EXIT_WAIVED 2 +#endif + +// Note, it is required that your SDK sample to include the proper header +// files, please refer the CUDA examples for examples of the needed CUDA +// headers, which may change depending on which CUDA functions are used. + +// CUDA Runtime error messages +#ifdef __DPCT_HPP__ +static const char *_cudaGetErrorEnum(int error) { + /* + DPCT1009:0: SYCL uses exceptions to report errors and does not use the error + codes. The original code was commented out and a warning string was inserted. + You need to rewrite this code. + */ + return "cudaGetErrorName is not supported" /*cudaGetErrorName(error)*/; +} +#endif + +#ifdef CUDA_DRIVER_API +// CUDA Driver API errors +static const char *_cudaGetErrorEnum(CUresult error) { + static char unknown[] = ""; + const char *ret = NULL; + cuGetErrorName(error, &ret); + return ret ? ret : unknown; +} +#endif + +#ifdef CUBLAS_API_H_ +// cuBLAS API errors +static const char *_cudaGetErrorEnum(int error) { + switch (error) { + case 0: + return "CUBLAS_STATUS_SUCCESS"; + + case 1: + return "CUBLAS_STATUS_NOT_INITIALIZED"; + + case 3: + return "CUBLAS_STATUS_ALLOC_FAILED"; + + case 7: + return "CUBLAS_STATUS_INVALID_VALUE"; + + case 8: + return "CUBLAS_STATUS_ARCH_MISMATCH"; + + case 11: + return "CUBLAS_STATUS_MAPPING_ERROR"; + + case 13: + return "CUBLAS_STATUS_EXECUTION_FAILED"; + + case 14: + return "CUBLAS_STATUS_INTERNAL_ERROR"; + + case 15: + return "CUBLAS_STATUS_NOT_SUPPORTED"; + + case 16: + return "CUBLAS_STATUS_LICENSE_ERROR"; + } + + return ""; +} +#endif + +#ifdef _CUFFT_H_ +// cuFFT API errors +static const char *_cudaGetErrorEnum(cufftResult error) { + switch (error) { + case CUFFT_SUCCESS: + return "CUFFT_SUCCESS"; + + case CUFFT_INVALID_PLAN: + return "CUFFT_INVALID_PLAN"; + + case CUFFT_ALLOC_FAILED: + return "CUFFT_ALLOC_FAILED"; + + case CUFFT_INVALID_TYPE: + return "CUFFT_INVALID_TYPE"; + + case CUFFT_INVALID_VALUE: + return "CUFFT_INVALID_VALUE"; + + case CUFFT_INTERNAL_ERROR: + return "CUFFT_INTERNAL_ERROR"; + + case CUFFT_EXEC_FAILED: + return "CUFFT_EXEC_FAILED"; + + case CUFFT_SETUP_FAILED: + return "CUFFT_SETUP_FAILED"; + + case CUFFT_INVALID_SIZE: + return "CUFFT_INVALID_SIZE"; + + case CUFFT_UNALIGNED_DATA: + return "CUFFT_UNALIGNED_DATA"; + + case CUFFT_INCOMPLETE_PARAMETER_LIST: + return "CUFFT_INCOMPLETE_PARAMETER_LIST"; + + case CUFFT_INVALID_DEVICE: + return "CUFFT_INVALID_DEVICE"; + + case CUFFT_PARSE_ERROR: + return "CUFFT_PARSE_ERROR"; + + case CUFFT_NO_WORKSPACE: + return "CUFFT_NO_WORKSPACE"; + + case CUFFT_NOT_IMPLEMENTED: + return "CUFFT_NOT_IMPLEMENTED"; + + case CUFFT_LICENSE_ERROR: + return "CUFFT_LICENSE_ERROR"; + + case CUFFT_NOT_SUPPORTED: + return "CUFFT_NOT_SUPPORTED"; + } + + return ""; +} +#endif + +#ifdef CUSPARSEAPI +// cuSPARSE API errors +static const char *_cudaGetErrorEnum(cusparseStatus_t error) { + switch (error) { + case CUSPARSE_STATUS_SUCCESS: + return "CUSPARSE_STATUS_SUCCESS"; + + case CUSPARSE_STATUS_NOT_INITIALIZED: + return "CUSPARSE_STATUS_NOT_INITIALIZED"; + + case CUSPARSE_STATUS_ALLOC_FAILED: + return "CUSPARSE_STATUS_ALLOC_FAILED"; + + case CUSPARSE_STATUS_INVALID_VALUE: + return "CUSPARSE_STATUS_INVALID_VALUE"; + + case CUSPARSE_STATUS_ARCH_MISMATCH: + return "CUSPARSE_STATUS_ARCH_MISMATCH"; + + case CUSPARSE_STATUS_MAPPING_ERROR: + return "CUSPARSE_STATUS_MAPPING_ERROR"; + + case CUSPARSE_STATUS_EXECUTION_FAILED: + return "CUSPARSE_STATUS_EXECUTION_FAILED"; + + case CUSPARSE_STATUS_INTERNAL_ERROR: + return "CUSPARSE_STATUS_INTERNAL_ERROR"; + + case CUSPARSE_STATUS_MATRIX_TYPE_NOT_SUPPORTED: + return "CUSPARSE_STATUS_MATRIX_TYPE_NOT_SUPPORTED"; + } + + return ""; +} +#endif + +#ifdef CUSOLVER_COMMON_H_ +// cuSOLVER API errors +static const char *_cudaGetErrorEnum(cusolverStatus_t error) { + switch (error) { + case CUSOLVER_STATUS_SUCCESS: + return "CUSOLVER_STATUS_SUCCESS"; + case CUSOLVER_STATUS_NOT_INITIALIZED: + return "CUSOLVER_STATUS_NOT_INITIALIZED"; + case CUSOLVER_STATUS_ALLOC_FAILED: + return "CUSOLVER_STATUS_ALLOC_FAILED"; + case CUSOLVER_STATUS_INVALID_VALUE: + return "CUSOLVER_STATUS_INVALID_VALUE"; + case CUSOLVER_STATUS_ARCH_MISMATCH: + return "CUSOLVER_STATUS_ARCH_MISMATCH"; + case CUSOLVER_STATUS_MAPPING_ERROR: + return "CUSOLVER_STATUS_MAPPING_ERROR"; + case CUSOLVER_STATUS_EXECUTION_FAILED: + return "CUSOLVER_STATUS_EXECUTION_FAILED"; + case CUSOLVER_STATUS_INTERNAL_ERROR: + return "CUSOLVER_STATUS_INTERNAL_ERROR"; + case CUSOLVER_STATUS_MATRIX_TYPE_NOT_SUPPORTED: + return "CUSOLVER_STATUS_MATRIX_TYPE_NOT_SUPPORTED"; + case CUSOLVER_STATUS_NOT_SUPPORTED: + return "CUSOLVER_STATUS_NOT_SUPPORTED "; + case CUSOLVER_STATUS_ZERO_PIVOT: + return "CUSOLVER_STATUS_ZERO_PIVOT"; + case CUSOLVER_STATUS_INVALID_LICENSE: + return "CUSOLVER_STATUS_INVALID_LICENSE"; + } + + return ""; +} +#endif + +#ifdef CURAND_H_ +// cuRAND API errors +static const char *_cudaGetErrorEnum(int error) { + switch (error) { + case 0: + return "CURAND_STATUS_SUCCESS"; + + case 100: + return "CURAND_STATUS_VERSION_MISMATCH"; + + case 101: + return "CURAND_STATUS_NOT_INITIALIZED"; + + case 102: + return "CURAND_STATUS_ALLOCATION_FAILED"; + + case 103: + return "CURAND_STATUS_TYPE_ERROR"; + + case 104: + return "CURAND_STATUS_OUT_OF_RANGE"; + + case 105: + return "CURAND_STATUS_LENGTH_NOT_MULTIPLE"; + + case 106: + return "CURAND_STATUS_DOUBLE_PRECISION_REQUIRED"; + + case 201: + return "CURAND_STATUS_LAUNCH_FAILURE"; + + case 202: + return "CURAND_STATUS_PREEXISTING_FAILURE"; + + case 203: + return "CURAND_STATUS_INITIALIZATION_FAILED"; + + case 204: + return "CURAND_STATUS_ARCH_MISMATCH"; + + case 999: + return "CURAND_STATUS_INTERNAL_ERROR"; + } + + return ""; +} +#endif + +#ifdef NVJPEGAPI +// nvJPEG API errors +static const char *_cudaGetErrorEnum(nvjpegStatus_t error) { + switch (error) { + case NVJPEG_STATUS_SUCCESS: + return "NVJPEG_STATUS_SUCCESS"; + + case NVJPEG_STATUS_NOT_INITIALIZED: + return "NVJPEG_STATUS_NOT_INITIALIZED"; + + case NVJPEG_STATUS_INVALID_PARAMETER: + return "NVJPEG_STATUS_INVALID_PARAMETER"; + + case NVJPEG_STATUS_BAD_JPEG: + return "NVJPEG_STATUS_BAD_JPEG"; + + case NVJPEG_STATUS_JPEG_NOT_SUPPORTED: + return "NVJPEG_STATUS_JPEG_NOT_SUPPORTED"; + + case NVJPEG_STATUS_ALLOCATOR_FAILURE: + return "NVJPEG_STATUS_ALLOCATOR_FAILURE"; + + case NVJPEG_STATUS_EXECUTION_FAILED: + return "NVJPEG_STATUS_EXECUTION_FAILED"; + + case NVJPEG_STATUS_ARCH_MISMATCH: + return "NVJPEG_STATUS_ARCH_MISMATCH"; + + case NVJPEG_STATUS_INTERNAL_ERROR: + return "NVJPEG_STATUS_INTERNAL_ERROR"; + } + + return ""; +} +#endif + +#ifdef NV_NPPIDEFS_H +// NPP API errors +static const char *_cudaGetErrorEnum(NppStatus error) { + switch (error) { + case NPP_NOT_SUPPORTED_MODE_ERROR: + return "NPP_NOT_SUPPORTED_MODE_ERROR"; + + case NPP_ROUND_MODE_NOT_SUPPORTED_ERROR: + return "NPP_ROUND_MODE_NOT_SUPPORTED_ERROR"; + + case NPP_RESIZE_NO_OPERATION_ERROR: + return "NPP_RESIZE_NO_OPERATION_ERROR"; + + case NPP_NOT_SUFFICIENT_COMPUTE_CAPABILITY: + return "NPP_NOT_SUFFICIENT_COMPUTE_CAPABILITY"; + +#if ((NPP_VERSION_MAJOR << 12) + (NPP_VERSION_MINOR << 4)) <= 0x5000 + + case NPP_BAD_ARG_ERROR: + return "NPP_BAD_ARGUMENT_ERROR"; + + case NPP_COEFF_ERROR: + return "NPP_COEFFICIENT_ERROR"; + + case NPP_RECT_ERROR: + return "NPP_RECTANGLE_ERROR"; + + case NPP_QUAD_ERROR: + return "NPP_QUADRANGLE_ERROR"; + + case NPP_MEM_ALLOC_ERR: + return "NPP_MEMORY_ALLOCATION_ERROR"; + + case NPP_HISTO_NUMBER_OF_LEVELS_ERROR: + return "NPP_HISTOGRAM_NUMBER_OF_LEVELS_ERROR"; + + case NPP_INVALID_INPUT: + return "NPP_INVALID_INPUT"; + + case NPP_POINTER_ERROR: + return "NPP_POINTER_ERROR"; + + case NPP_WARNING: + return "NPP_WARNING"; + + case NPP_ODD_ROI_WARNING: + return "NPP_ODD_ROI_WARNING"; +#else + + // These are for CUDA 5.5 or higher + case NPP_BAD_ARGUMENT_ERROR: + return "NPP_BAD_ARGUMENT_ERROR"; + + case NPP_COEFFICIENT_ERROR: + return "NPP_COEFFICIENT_ERROR"; + + case NPP_RECTANGLE_ERROR: + return "NPP_RECTANGLE_ERROR"; + + case NPP_QUADRANGLE_ERROR: + return "NPP_QUADRANGLE_ERROR"; + + case NPP_MEMORY_ALLOCATION_ERR: + return "NPP_MEMORY_ALLOCATION_ERROR"; + + case NPP_HISTOGRAM_NUMBER_OF_LEVELS_ERROR: + return "NPP_HISTOGRAM_NUMBER_OF_LEVELS_ERROR"; + + case NPP_INVALID_HOST_POINTER_ERROR: + return "NPP_INVALID_HOST_POINTER_ERROR"; + + case NPP_INVALID_DEVICE_POINTER_ERROR: + return "NPP_INVALID_DEVICE_POINTER_ERROR"; +#endif + + case NPP_LUT_NUMBER_OF_LEVELS_ERROR: + return "NPP_LUT_NUMBER_OF_LEVELS_ERROR"; + + case NPP_TEXTURE_BIND_ERROR: + return "NPP_TEXTURE_BIND_ERROR"; + + case NPP_WRONG_INTERSECTION_ROI_ERROR: + return "NPP_WRONG_INTERSECTION_ROI_ERROR"; + + case NPP_NOT_EVEN_STEP_ERROR: + return "NPP_NOT_EVEN_STEP_ERROR"; + + case NPP_INTERPOLATION_ERROR: + return "NPP_INTERPOLATION_ERROR"; + + case NPP_RESIZE_FACTOR_ERROR: + return "NPP_RESIZE_FACTOR_ERROR"; + + case NPP_HAAR_CLASSIFIER_PIXEL_MATCH_ERROR: + return "NPP_HAAR_CLASSIFIER_PIXEL_MATCH_ERROR"; + +#if ((NPP_VERSION_MAJOR << 12) + (NPP_VERSION_MINOR << 4)) <= 0x5000 + + case NPP_MEMFREE_ERR: + return "NPP_MEMFREE_ERR"; + + case NPP_MEMSET_ERR: + return "NPP_MEMSET_ERR"; + + case NPP_MEMCPY_ERR: + return "NPP_MEMCPY_ERROR"; + + case NPP_MIRROR_FLIP_ERR: + return "NPP_MIRROR_FLIP_ERR"; +#else + + case NPP_MEMFREE_ERROR: + return "NPP_MEMFREE_ERROR"; + + case NPP_MEMSET_ERROR: + return "NPP_MEMSET_ERROR"; + + case NPP_MEMCPY_ERROR: + return "NPP_MEMCPY_ERROR"; + + case NPP_MIRROR_FLIP_ERROR: + return "NPP_MIRROR_FLIP_ERROR"; +#endif + + case NPP_ALIGNMENT_ERROR: + return "NPP_ALIGNMENT_ERROR"; + + case NPP_STEP_ERROR: + return "NPP_STEP_ERROR"; + + case NPP_SIZE_ERROR: + return "NPP_SIZE_ERROR"; + + case NPP_NULL_POINTER_ERROR: + return "NPP_NULL_POINTER_ERROR"; + + case NPP_CUDA_KERNEL_EXECUTION_ERROR: + return "NPP_CUDA_KERNEL_EXECUTION_ERROR"; + + case NPP_NOT_IMPLEMENTED_ERROR: + return "NPP_NOT_IMPLEMENTED_ERROR"; + + case NPP_ERROR: + return "NPP_ERROR"; + + case NPP_SUCCESS: + return "NPP_SUCCESS"; + + case NPP_WRONG_INTERSECTION_QUAD_WARNING: + return "NPP_WRONG_INTERSECTION_QUAD_WARNING"; + + case NPP_MISALIGNED_DST_ROI_WARNING: + return "NPP_MISALIGNED_DST_ROI_WARNING"; + + case NPP_AFFINE_QUAD_INCORRECT_WARNING: + return "NPP_AFFINE_QUAD_INCORRECT_WARNING"; + + case NPP_DOUBLE_SIZE_WARNING: + return "NPP_DOUBLE_SIZE_WARNING"; + + case NPP_WRONG_INTERSECTION_ROI_WARNING: + return "NPP_WRONG_INTERSECTION_ROI_WARNING"; + +#if ((NPP_VERSION_MAJOR << 12) + (NPP_VERSION_MINOR << 4)) >= 0x6000 + /* These are 6.0 or higher */ + case NPP_LUT_PALETTE_BITSIZE_ERROR: + return "NPP_LUT_PALETTE_BITSIZE_ERROR"; + + case NPP_ZC_MODE_NOT_SUPPORTED_ERROR: + return "NPP_ZC_MODE_NOT_SUPPORTED_ERROR"; + + case NPP_QUALITY_INDEX_ERROR: + return "NPP_QUALITY_INDEX_ERROR"; + + case NPP_CHANNEL_ORDER_ERROR: + return "NPP_CHANNEL_ORDER_ERROR"; + + case NPP_ZERO_MASK_VALUE_ERROR: + return "NPP_ZERO_MASK_VALUE_ERROR"; + + case NPP_NUMBER_OF_CHANNELS_ERROR: + return "NPP_NUMBER_OF_CHANNELS_ERROR"; + + case NPP_COI_ERROR: + return "NPP_COI_ERROR"; + + case NPP_DIVISOR_ERROR: + return "NPP_DIVISOR_ERROR"; + + case NPP_CHANNEL_ERROR: + return "NPP_CHANNEL_ERROR"; + + case NPP_STRIDE_ERROR: + return "NPP_STRIDE_ERROR"; + + case NPP_ANCHOR_ERROR: + return "NPP_ANCHOR_ERROR"; + + case NPP_MASK_SIZE_ERROR: + return "NPP_MASK_SIZE_ERROR"; + + case NPP_MOMENT_00_ZERO_ERROR: + return "NPP_MOMENT_00_ZERO_ERROR"; + + case NPP_THRESHOLD_NEGATIVE_LEVEL_ERROR: + return "NPP_THRESHOLD_NEGATIVE_LEVEL_ERROR"; + + case NPP_THRESHOLD_ERROR: + return "NPP_THRESHOLD_ERROR"; + + case NPP_CONTEXT_MATCH_ERROR: + return "NPP_CONTEXT_MATCH_ERROR"; + + case NPP_FFT_FLAG_ERROR: + return "NPP_FFT_FLAG_ERROR"; + + case NPP_FFT_ORDER_ERROR: + return "NPP_FFT_ORDER_ERROR"; + + case NPP_SCALE_RANGE_ERROR: + return "NPP_SCALE_RANGE_ERROR"; + + case NPP_DATA_TYPE_ERROR: + return "NPP_DATA_TYPE_ERROR"; + + case NPP_OUT_OFF_RANGE_ERROR: + return "NPP_OUT_OFF_RANGE_ERROR"; + + case NPP_DIVIDE_BY_ZERO_ERROR: + return "NPP_DIVIDE_BY_ZERO_ERROR"; + + case NPP_RANGE_ERROR: + return "NPP_RANGE_ERROR"; + + case NPP_NO_MEMORY_ERROR: + return "NPP_NO_MEMORY_ERROR"; + + case NPP_ERROR_RESERVED: + return "NPP_ERROR_RESERVED"; + + case NPP_NO_OPERATION_WARNING: + return "NPP_NO_OPERATION_WARNING"; + + case NPP_DIVIDE_BY_ZERO_WARNING: + return "NPP_DIVIDE_BY_ZERO_WARNING"; +#endif + +#if ((NPP_VERSION_MAJOR << 12) + (NPP_VERSION_MINOR << 4)) >= 0x7000 + /* These are 7.0 or higher */ + case NPP_OVERFLOW_ERROR: + return "NPP_OVERFLOW_ERROR"; + + case NPP_CORRUPTED_DATA_ERROR: + return "NPP_CORRUPTED_DATA_ERROR"; +#endif + } + + return ""; +} +#endif + +template +void check(T result, char const *const func, const char *const file, + int const line) { +} + +#ifdef __DPCT_HPP__ +// This will output the proper CUDA error strings in the event +// that a CUDA host call returns an error +#define checkCudaErrors(val) check((val), #val, __FILE__, __LINE__) + +// This will output the proper error string when calling cudaGetLastError +#define getLastCudaError(msg) __getLastCudaError(msg, __FILE__, __LINE__) + +inline void __getLastCudaError(const char *errorMessage, const char *file, + const int line) { + /* + DPCT1010:1: SYCL uses exceptions to report errors and does not use the error + codes. The call was replaced with 0. You need to rewrite this code. + */ + int err = 0; +} + +// This will only print the proper error string when calling cudaGetLastError +// but not exit program incase error detected. +#define printLastCudaError(msg) __printLastCudaError(msg, __FILE__, __LINE__) + +inline void __printLastCudaError(const char *errorMessage, const char *file, + const int line) { + /* + DPCT1010:3: SYCL uses exceptions to report errors and does not use the error + codes. The call was replaced with 0. You need to rewrite this code. + */ + int err = 0; +} +#endif + +#ifndef MAX +#define MAX(a, b) (a > b ? a : b) +#endif + +// Float To Int conversion +inline int ftoi(float value) { + return (value >= 0 ? static_cast(value + 0.5) + : static_cast(value - 0.5)); +} + +// Beginning of GPU Architecture definitions +inline int _ConvertSMVer2Cores(int major, int minor) { + // Defines for GPU Architecture types (using the SM version to determine + // the # of cores per SM + typedef struct dpct_type_168589 { + int SM; // 0xMm (hexidecimal notation), M = SM Major version, + // and m = SM minor version + int Cores; + } sSMtoCores; + + sSMtoCores nGpuArchCoresPerSM[] = { + {0x30, 192}, + {0x32, 192}, + {0x35, 192}, + {0x37, 192}, + {0x50, 128}, + {0x52, 128}, + {0x53, 128}, + {0x60, 64}, + {0x61, 128}, + {0x62, 128}, + {0x70, 64}, + {0x72, 64}, + {0x75, 64}, + {0x80, 64}, + {0x86, 128}, + {0x87, 128}, + {0x90, 128}, + {-1, -1}}; + + int index = 0; + + while (nGpuArchCoresPerSM[index].SM != -1) { + if (nGpuArchCoresPerSM[index].SM == ((major << 4) + minor)) { + return nGpuArchCoresPerSM[index].Cores; + } + + index++; + } + + // If we don't find the values, we default use the previous one + // to run properly + printf( + "MapSMtoCores for SM %d.%d is undefined." + " Default to use %d Cores/SM\n", + major, minor, nGpuArchCoresPerSM[index - 1].Cores); + return nGpuArchCoresPerSM[index - 1].Cores; +} + +inline const char* _ConvertSMVer2ArchName(int major, int minor) { + // Defines for GPU Architecture types (using the SM version to determine + // the GPU Arch name) + typedef struct dpct_type_127073 { + int SM; // 0xMm (hexidecimal notation), M = SM Major version, + // and m = SM minor version + const char* name; + } sSMtoArchName; + + sSMtoArchName nGpuArchNameSM[] = { + {0x30, "Kepler"}, + {0x32, "Kepler"}, + {0x35, "Kepler"}, + {0x37, "Kepler"}, + {0x50, "Maxwell"}, + {0x52, "Maxwell"}, + {0x53, "Maxwell"}, + {0x60, "Pascal"}, + {0x61, "Pascal"}, + {0x62, "Pascal"}, + {0x70, "Volta"}, + {0x72, "Xavier"}, + {0x75, "Turing"}, + {0x80, "Ampere"}, + {0x86, "Ampere"}, + {0x87, "Ampere"}, + {0x90, "Hopper"}, + {-1, "Graphics Device"}}; + + int index = 0; + + while (nGpuArchNameSM[index].SM != -1) { + if (nGpuArchNameSM[index].SM == ((major << 4) + minor)) { + return nGpuArchNameSM[index].name; + } + + index++; + } + + // If we don't find the values, we default use the previous one + // to run properly + printf( + "MapSMtoArchName for SM %d.%d is undefined." + " Default to use %s\n", + major, minor, nGpuArchNameSM[index - 1].name); + return nGpuArchNameSM[index - 1].name; +} + // end of GPU Architecture definitions + +#ifdef __DPCT_HPP__ +// General GPU Device CUDA Initialization +inline int gpuDeviceInit(int devID) { + int device_count; + /* + DPCT1003:5: Migrated API does not return error code. (*, 0) is inserted. You + may need to rewrite this code. + */ + checkCudaErrors((device_count = dpct::dev_mgr::instance().device_count(), 0)); + + if (device_count == 0) { + fprintf(stderr, + "gpuDeviceInit() CUDA error: " + "no devices supporting CUDA.\n"); + exit(EXIT_FAILURE); + } + + if (devID < 0) { + devID = 0; + } + + if (devID > device_count - 1) { + fprintf(stderr, "\n"); + fprintf(stderr, ">> %d CUDA capable GPU device(s) detected. <<\n", + device_count); + fprintf(stderr, + ">> gpuDeviceInit (-device=%d) is not a valid" + " GPU device. <<\n", + devID); + fprintf(stderr, "\n"); + return -devID; + } + + int computeMode = -1, major = 0, minor = 0; + /* + DPCT1035:6: All SYCL devices can be used by host to submit tasks. You may need + to adjust this code. + */ + checkCudaErrors((computeMode = 1, 0)); + checkCudaErrors( + (major = dpct::dev_mgr::instance().get_device(devID).get_major_version(), + 0)); + checkCudaErrors( + (minor = dpct::dev_mgr::instance().get_device(devID).get_minor_version(), + 0)); + /* + DPCT1035:7: All SYCL devices can be used by host to submit tasks. You may need + to adjust this code. + */ + if (computeMode == 0) { + fprintf(stderr, + "Error: device is running in , no threads can use cudaSetDevice().\n"); + return -1; + } + + if (major < 1) { + fprintf(stderr, "gpuDeviceInit(): GPU device does not support CUDA.\n"); + exit(EXIT_FAILURE); + } + + /* + DPCT1093:8: The "devID" may not be the best XPU device. Adjust the selected + device if needed. + */ + /* + DPCT1003:9: Migrated API does not return error code. (*, 0) is inserted. You + may need to rewrite this code. + */ + checkCudaErrors((dpct::select_device(devID), 0)); + printf("gpuDeviceInit() CUDA Device [%d]: \"%s\n", devID, _ConvertSMVer2ArchName(major, minor)); + + return devID; +} + +// This function returns the best GPU (with maximum GFLOPS) +inline int gpuGetMaxGflopsDeviceId() try { + int current_device = 0, sm_per_multiproc = 0; + int max_perf_device = 0; + int device_count = 0; + int devices_prohibited = 0; + + uint64_t max_compute_perf = 0; + /* + DPCT1003:10: Migrated API does not return error code. (*, 0) is inserted. You + may need to rewrite this code. + */ + checkCudaErrors((device_count = dpct::dev_mgr::instance().device_count(), 0)); + + if (device_count == 0) { + fprintf(stderr, + "gpuGetMaxGflopsDeviceId() CUDA error:" + " no devices supporting CUDA.\n"); + exit(EXIT_FAILURE); + } + + // Find the best CUDA capable GPU device + current_device = 0; + + while (current_device < device_count) { + int computeMode = -1, major = 0, minor = 0; + /* + DPCT1035:11: All SYCL devices can be used by host to submit tasks. You may + need to adjust this code. + */ + checkCudaErrors((computeMode = 1, 0)); + checkCudaErrors((major = dpct::dev_mgr::instance() + .get_device(current_device) + .get_major_version(), + 0)); + checkCudaErrors((minor = dpct::dev_mgr::instance() + .get_device(current_device) + .get_minor_version(), + 0)); + + // If this GPU is not running on Compute Mode prohibited, + // then we can add it to the list + /* + DPCT1035:12: All SYCL devices can be used by host to submit tasks. You may + need to adjust this code. + */ + if (computeMode != 0) { + if (major == 9999 && minor == 9999) { + sm_per_multiproc = 1; + } else { + sm_per_multiproc = + _ConvertSMVer2Cores(major, minor); + } + int multiProcessorCount = 0, clockRate = 0; + checkCudaErrors((multiProcessorCount = dpct::dev_mgr::instance() + .get_device(current_device) + .get_max_compute_units(), + 0)); + int result = (clockRate = dpct::dev_mgr::instance() + .get_device(current_device) + .get_max_clock_frequency(), + 0); + + uint64_t compute_perf = (uint64_t)multiProcessorCount * sm_per_multiproc * clockRate; + + if (compute_perf > max_compute_perf) { + max_compute_perf = compute_perf; + max_perf_device = current_device; + } + } else { + devices_prohibited++; + } + + ++current_device; + } + + if (devices_prohibited == device_count) { + fprintf(stderr, + "gpuGetMaxGflopsDeviceId() CUDA error:" + " all devices have compute mode prohibited.\n"); + exit(EXIT_FAILURE); + } + + return max_perf_device; +} +catch (sycl::exception const &exc) { + std::cerr << exc.what() << "Exception caught at file:" << __FILE__ + << ", line:" << __LINE__ << std::endl; + std::exit(1); +} + +// Initialization code to find the best CUDA Device +inline int findCudaDevice(int argc, const char **argv) { + int devID = 0; + + // If the command-line has a device number specified, use it + if (checkCmdLineFlag(argc, argv, "device")) { + devID = getCmdLineArgumentInt(argc, argv, "device="); + + if (devID < 0) { + printf("Invalid command line parameter\n "); + exit(EXIT_FAILURE); + } else { + devID = gpuDeviceInit(devID); + + if (devID < 0) { + printf("exiting...\n"); + exit(EXIT_FAILURE); + } + } + } else { + // Otherwise pick the device with highest Gflops/s + devID = gpuGetMaxGflopsDeviceId(); + /* + DPCT1093:13: The "devID" may not be the best XPU device. Adjust the selected + device if needed. + */ + /* + DPCT1003:14: Migrated API does not return error code. (*, 0) is inserted. + You may need to rewrite this code. + */ + checkCudaErrors((dpct::select_device(devID), 0)); + int major = 0, minor = 0; + checkCudaErrors(( + major = dpct::dev_mgr::instance().get_device(devID).get_major_version(), + 0)); + checkCudaErrors(( + minor = dpct::dev_mgr::instance().get_device(devID).get_minor_version(), + 0)); + printf("GPU Device %d: \"%s\" with compute capability %d.%d\n\n", + devID, _ConvertSMVer2ArchName(major, minor), major, minor); + + } + + return devID; +} + +inline int findIntegratedGPU() { + int current_device = 0; + int device_count = 0; + int devices_prohibited = 0; + + /* + DPCT1003:15: Migrated API does not return error code. (*, 0) is inserted. You + may need to rewrite this code. + */ + checkCudaErrors((device_count = dpct::dev_mgr::instance().device_count(), 0)); + + if (device_count == 0) { + fprintf(stderr, "CUDA error: no devices supporting CUDA.\n"); + exit(EXIT_FAILURE); + } + + // Find the integrated GPU which is compute capable + while (current_device < device_count) { + int computeMode = -1, integrated = -1; + /* + DPCT1035:16: All SYCL devices can be used by host to submit tasks. You may + need to adjust this code. + */ + checkCudaErrors((computeMode = 1, 0)); + checkCudaErrors((integrated = dpct::dev_mgr::instance() + .get_device(current_device) + .get_integrated(), + 0)); + // If GPU is integrated and is not running on Compute Mode prohibited, + // then cuda can map to GLES resource + /* + DPCT1035:17: All SYCL devices can be used by host to submit tasks. You may + need to adjust this code. + */ + if (integrated && (computeMode != 0)) { + /* + DPCT1093:18: The "current_device" may not be the best XPU device. Adjust + the selected device if needed. + */ + /* + DPCT1003:19: Migrated API does not return error code. (*, 0) is inserted. + You may need to rewrite this code. + */ + checkCudaErrors((dpct::select_device(current_device), 0)); + + int major = 0, minor = 0; + checkCudaErrors((major = dpct::dev_mgr::instance() + .get_device(current_device) + .get_major_version(), + 0)); + checkCudaErrors((minor = dpct::dev_mgr::instance() + .get_device(current_device) + .get_minor_version(), + 0)); + printf("GPU Device %d: \"%s\" with compute capability %d.%d\n\n", + current_device, _ConvertSMVer2ArchName(major, minor), major, minor); + + return current_device; + } else { + devices_prohibited++; + } + + current_device++; + } + + if (devices_prohibited == device_count) { + fprintf(stderr, + "CUDA error:" + " No GLES-CUDA Interop capable GPU found.\n"); + exit(EXIT_FAILURE); + } + + return -1; +} + +// General check for CUDA GPU SM Capabilities +inline bool checkCudaCapabilities(int major_version, int minor_version) { + int dev; + int major = 0, minor = 0; + + checkCudaErrors(dev = dpct::dev_mgr::instance().current_device_id()); + checkCudaErrors( + (major = dpct::dev_mgr::instance().get_device(dev).get_major_version(), + 0)); + checkCudaErrors( + (minor = dpct::dev_mgr::instance().get_device(dev).get_minor_version(), + 0)); + + if ((major > major_version) || + (major == major_version && + minor >= minor_version)) { + printf(" Device %d: <%16s >, Compute SM %d.%d detected\n", dev, + _ConvertSMVer2ArchName(major, minor), major, minor); + return true; + } else { + printf( + " No GPU device was found that can support " + "CUDA compute capability %d.%d.\n", + major_version, minor_version); + return false; + } +} +#endif + + // end of CUDA Helper Functions + +#endif // COMMON_HELPER_CUDA_H_ diff --git a/DirectProgramming/C++SYCL/DenseLinearAlgebra/guided_matrix_mul_SYCLMigration/02_sycl_dpct_migrated/Common/helper_functions.h b/DirectProgramming/C++SYCL/DenseLinearAlgebra/guided_matrix_mul_SYCLMigration/02_sycl_dpct_migrated/Common/helper_functions.h new file mode 100644 index 0000000000..2975ddba6a --- /dev/null +++ b/DirectProgramming/C++SYCL/DenseLinearAlgebra/guided_matrix_mul_SYCLMigration/02_sycl_dpct_migrated/Common/helper_functions.h @@ -0,0 +1,59 @@ +/* Copyright (c) 2022, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of NVIDIA CORPORATION nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +// These are helper functions for the SDK samples (string parsing, +// timers, image helpers, etc) +#ifndef COMMON_HELPER_FUNCTIONS_H_ +#define COMMON_HELPER_FUNCTIONS_H_ + +#ifdef WIN32 +#pragma warning(disable : 4996) +#endif + +// includes, project +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +// includes, timer, string parsing, image helpers +#include // helper functions for image compare, dump, data comparisons +#include // helper functions for string parsing +#include // helper functions for timers + +#ifndef EXIT_WAIVED +#define EXIT_WAIVED 2 +#endif + +#endif // COMMON_HELPER_FUNCTIONS_H_ diff --git a/DirectProgramming/C++SYCL/DenseLinearAlgebra/guided_matrix_mul_SYCLMigration/02_sycl_dpct_migrated/Common/helper_image.h b/DirectProgramming/C++SYCL/DenseLinearAlgebra/guided_matrix_mul_SYCLMigration/02_sycl_dpct_migrated/Common/helper_image.h new file mode 100644 index 0000000000..d093d16a0e --- /dev/null +++ b/DirectProgramming/C++SYCL/DenseLinearAlgebra/guided_matrix_mul_SYCLMigration/02_sycl_dpct_migrated/Common/helper_image.h @@ -0,0 +1,1001 @@ +/* Copyright (c) 2022, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of NVIDIA CORPORATION nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +// These are helper functions for the SDK samples (image,bitmap) +#ifndef COMMON_HELPER_IMAGE_H_ +#define COMMON_HELPER_IMAGE_H_ + +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +#ifndef MIN +#define MIN(a, b) ((a < b) ? a : b) +#endif +#ifndef MAX +#define MAX(a, b) ((a > b) ? a : b) +#endif + +#ifndef EXIT_WAIVED +#define EXIT_WAIVED 2 +#endif + +#include "helper_string.h" + +// namespace unnamed (internal) +namespace helper_image_internal { +//! size of PGM file header +const unsigned int PGMHeaderSize = 0x40; + +// types + +//! Data converter from unsigned char / unsigned byte to type T +template +struct ConverterFromUByte; + +//! Data converter from unsigned char / unsigned byte +template <> +struct ConverterFromUByte { + //! Conversion operator + //! @return converted value + //! @param val value to convert + float operator()(const unsigned char &val) { + return static_cast(val); + } +}; + +//! Data converter from unsigned char / unsigned byte to float +template <> +struct ConverterFromUByte { + //! Conversion operator + //! @return converted value + //! @param val value to convert + float operator()(const unsigned char &val) { + return static_cast(val) / 255.0f; + } +}; + +//! Data converter from unsigned char / unsigned byte to type T +template +struct ConverterToUByte; + +//! Data converter from unsigned char / unsigned byte to unsigned int +template <> +struct ConverterToUByte { + //! Conversion operator (essentially a passthru + //! @return converted value + //! @param val value to convert + unsigned char operator()(const unsigned char &val) { return val; } +}; + +//! Data converter from unsigned char / unsigned byte to unsigned int +template <> +struct ConverterToUByte { + //! Conversion operator + //! @return converted value + //! @param val value to convert + unsigned char operator()(const float &val) { + return static_cast(val * 255.0f); + } +}; +} // namespace helper_image_internal + +#if defined(WIN32) || defined(_WIN32) || defined(WIN64) || defined(_WIN64) +#ifndef FOPEN +#define FOPEN(fHandle, filename, mode) fopen_s(&fHandle, filename, mode) +#endif +#ifndef FOPEN_FAIL +#define FOPEN_FAIL(result) (result != 0) +#endif +#ifndef SSCANF +#define SSCANF sscanf_s +#endif +#else +#ifndef FOPEN +#define FOPEN(fHandle, filename, mode) (fHandle = fopen(filename, mode)) +#endif +#ifndef FOPEN_FAIL +#define FOPEN_FAIL(result) (result == NULL) +#endif +#ifndef SSCANF +#define SSCANF sscanf +#endif +#endif + +inline bool __loadPPM(const char *file, unsigned char **data, unsigned int *w, + unsigned int *h, unsigned int *channels) { + FILE *fp = NULL; + + if (FOPEN_FAIL(FOPEN(fp, file, "rb"))) { + std::cerr << "__LoadPPM() : Failed to open file: " << file << std::endl; + return false; + } + + // check header + char header[helper_image_internal::PGMHeaderSize]; + + if (fgets(header, helper_image_internal::PGMHeaderSize, fp) == NULL) { + std::cerr << "__LoadPPM() : reading PGM header returned NULL" << std::endl; + return false; + } + + if (strncmp(header, "P5", 2) == 0) { + *channels = 1; + } else if (strncmp(header, "P6", 2) == 0) { + *channels = 3; + } else { + std::cerr << "__LoadPPM() : File is not a PPM or PGM image" << std::endl; + *channels = 0; + return false; + } + + // parse header, read maxval, width and height + unsigned int width = 0; + unsigned int height = 0; + unsigned int maxval = 0; + unsigned int i = 0; + + while (i < 3) { + if (fgets(header, helper_image_internal::PGMHeaderSize, fp) == NULL) { + std::cerr << "__LoadPPM() : reading PGM header returned NULL" + << std::endl; + return false; + } + + if (header[0] == '#') { + continue; + } + + if (i == 0) { + i += SSCANF(header, "%u %u %u", &width, &height, &maxval); + } else if (i == 1) { + i += SSCANF(header, "%u %u", &height, &maxval); + } else if (i == 2) { + i += SSCANF(header, "%u", &maxval); + } + } + + // check if given handle for the data is initialized + if (NULL != *data) { + if (*w != width || *h != height) { + std::cerr << "__LoadPPM() : Invalid image dimensions." << std::endl; + } + } else { + *data = (unsigned char *)malloc(sizeof(unsigned char) * width * height * + *channels); + *w = width; + *h = height; + } + + // read and close file + if (fread(*data, sizeof(unsigned char), width * height * *channels, fp) == + 0) { + std::cerr << "__LoadPPM() read data returned error." << std::endl; + } + + fclose(fp); + + return true; +} + +template +inline bool sdkLoadPGM(const char *file, T **data, unsigned int *w, + unsigned int *h) { + unsigned char *idata = NULL; + unsigned int channels; + + if (true != __loadPPM(file, &idata, w, h, &channels)) { + return false; + } + + unsigned int size = *w * *h * channels; + + // initialize mem if necessary + // the correct size is checked / set in loadPGMc() + if (NULL == *data) { + *data = reinterpret_cast(malloc(sizeof(T) * size)); + } + + // copy and cast data + std::transform(idata, idata + size, *data, + helper_image_internal::ConverterFromUByte()); + + free(idata); + + return true; +} + +template +inline bool sdkLoadPPM4(const char *file, T **data, unsigned int *w, + unsigned int *h) { + unsigned char *idata = 0; + unsigned int channels; + + if (__loadPPM(file, &idata, w, h, &channels)) { + // pad 4th component + int size = *w * *h; + // keep the original pointer + unsigned char *idata_orig = idata; + *data = reinterpret_cast(malloc(sizeof(T) * size * 4)); + unsigned char *ptr = *data; + + for (int i = 0; i < size; i++) { + *ptr++ = *idata++; + *ptr++ = *idata++; + *ptr++ = *idata++; + *ptr++ = 0; + } + + free(idata_orig); + return true; + } else { + free(idata); + return false; + } +} + +inline bool __savePPM(const char *file, unsigned char *data, unsigned int w, + unsigned int h, unsigned int channels) { + assert(NULL != data); + assert(w > 0); + assert(h > 0); + + std::fstream fh(file, std::fstream::out | std::fstream::binary); + + if (fh.bad()) { + std::cerr << "__savePPM() : Opening file failed." << std::endl; + return false; + } + + if (channels == 1) { + fh << "P5\n"; + } else if (channels == 3) { + fh << "P6\n"; + } else { + std::cerr << "__savePPM() : Invalid number of channels." << std::endl; + return false; + } + + fh << w << "\n" << h << "\n" << 0xff << std::endl; + + for (unsigned int i = 0; (i < (w * h * channels)) && fh.good(); ++i) { + fh << data[i]; + } + + fh.flush(); + + if (fh.bad()) { + std::cerr << "__savePPM() : Writing data failed." << std::endl; + return false; + } + + fh.close(); + + return true; +} + +template +inline bool sdkSavePGM(const char *file, T *data, unsigned int w, + unsigned int h) { + unsigned int size = w * h; + unsigned char *idata = (unsigned char *)malloc(sizeof(unsigned char) * size); + + std::transform(data, data + size, idata, + helper_image_internal::ConverterToUByte()); + + // write file + bool result = __savePPM(file, idata, w, h, 1); + + // cleanup + free(idata); + + return result; +} + +inline bool sdkSavePPM4ub(const char *file, unsigned char *data, unsigned int w, + unsigned int h) { + // strip 4th component + int size = w * h; + unsigned char *ndata = + (unsigned char *)malloc(sizeof(unsigned char) * size * 3); + unsigned char *ptr = ndata; + + for (int i = 0; i < size; i++) { + *ptr++ = *data++; + *ptr++ = *data++; + *ptr++ = *data++; + data++; + } + + bool result = __savePPM(file, ndata, w, h, 3); + free(ndata); + return result; +} + +////////////////////////////////////////////////////////////////////////////// +//! Read file \filename and return the data +//! @return bool if reading the file succeeded, otherwise false +//! @param filename name of the source file +//! @param data uninitialized pointer, returned initialized and pointing to +//! the data read +//! @param len number of data elements in data, -1 on error +////////////////////////////////////////////////////////////////////////////// +template +inline bool sdkReadFile(const char *filename, T **data, unsigned int *len, + bool verbose) { + // check input arguments + assert(NULL != filename); + assert(NULL != len); + + // intermediate storage for the data read + std::vector data_read; + + // open file for reading + FILE *fh = NULL; + + // check if filestream is valid + if (FOPEN_FAIL(FOPEN(fh, filename, "r"))) { + printf("Unable to open input file: %s\n", filename); + return false; + } + + // read all data elements + T token; + + while (!feof(fh)) { + fscanf(fh, "%f", &token); + data_read.push_back(token); + } + + // the last element is read twice + data_read.pop_back(); + fclose(fh); + + // check if the given handle is already initialized + if (NULL != *data) { + if (*len != data_read.size()) { + std::cerr << "sdkReadFile() : Initialized memory given but " + << "size mismatch with signal read " + << "(data read / data init = " << (unsigned int)data_read.size() + << " / " << *len << ")" << std::endl; + + return false; + } + } else { + // allocate storage for the data read + *data = reinterpret_cast(malloc(sizeof(T) * data_read.size())); + // store signal size + *len = static_cast(data_read.size()); + } + + // copy data + memcpy(*data, &data_read.front(), sizeof(T) * data_read.size()); + + return true; +} + +////////////////////////////////////////////////////////////////////////////// +//! Read file \filename and return the data +//! @return bool if reading the file succeeded, otherwise false +//! @param filename name of the source file +//! @param data uninitialized pointer, returned initialized and pointing to +//! the data read +//! @param len number of data elements in data, -1 on error +////////////////////////////////////////////////////////////////////////////// +template +inline bool sdkReadFileBlocks(const char *filename, T **data, unsigned int *len, + unsigned int block_num, unsigned int block_size, + bool verbose) { + // check input arguments + assert(NULL != filename); + assert(NULL != len); + + // open file for reading + FILE *fh = fopen(filename, "rb"); + + if (fh == NULL && verbose) { + std::cerr << "sdkReadFile() : Opening file failed." << std::endl; + return false; + } + + // check if the given handle is already initialized + // allocate storage for the data read + data[block_num] = reinterpret_cast(malloc(block_size)); + + // read all data elements + fseek(fh, block_num * block_size, SEEK_SET); + *len = fread(data[block_num], sizeof(T), block_size / sizeof(T), fh); + + fclose(fh); + + return true; +} + +////////////////////////////////////////////////////////////////////////////// +//! Write a data file \filename +//! @return true if writing the file succeeded, otherwise false +//! @param filename name of the source file +//! @param data data to write +//! @param len number of data elements in data, -1 on error +//! @param epsilon epsilon for comparison +////////////////////////////////////////////////////////////////////////////// +template +inline bool sdkWriteFile(const char *filename, const T *data, unsigned int len, + const S epsilon, bool verbose, bool append = false) { + assert(NULL != filename); + assert(NULL != data); + + // open file for writing + // if (append) { + std::fstream fh(filename, std::fstream::out | std::fstream::ate); + + if (verbose) { + std::cerr << "sdkWriteFile() : Open file " << filename + << " for write/append." << std::endl; + } + + /* } else { + std::fstream fh(filename, std::fstream::out); + if (verbose) { + std::cerr << "sdkWriteFile() : Open file " << filename << " for + write." << std::endl; + } + } + */ + + // check if filestream is valid + if (!fh.good()) { + if (verbose) { + std::cerr << "sdkWriteFile() : Opening file failed." << std::endl; + } + + return false; + } + + // first write epsilon + fh << "# " << epsilon << "\n"; + + // write data + for (unsigned int i = 0; (i < len) && (fh.good()); ++i) { + fh << data[i] << ' '; + } + + // Check if writing succeeded + if (!fh.good()) { + if (verbose) { + std::cerr << "sdkWriteFile() : Writing file failed." << std::endl; + } + + return false; + } + + // file ends with nl + fh << std::endl; + + return true; +} + +////////////////////////////////////////////////////////////////////////////// +//! Compare two arrays of arbitrary type +//! @return true if \a reference and \a data are identical, otherwise false +//! @param reference timer_interface to the reference data / gold image +//! @param data handle to the computed data +//! @param len number of elements in reference and data +//! @param epsilon epsilon to use for the comparison +////////////////////////////////////////////////////////////////////////////// +template +inline bool compareData(const T *reference, const T *data, + const unsigned int len, const S epsilon, + const float threshold) { + assert(epsilon >= 0); + + bool result = true; + unsigned int error_count = 0; + + for (unsigned int i = 0; i < len; ++i) { + float diff = static_cast(reference[i]) - static_cast(data[i]); + bool comp = (diff <= epsilon) && (diff >= -epsilon); + result &= comp; + + error_count += !comp; + +#if 0 + + if (!comp) { + std::cerr << "ERROR, i = " << i << ",\t " + << reference[i] << " / " + << data[i] + << " (reference / data)\n"; + } + +#endif + } + + if (threshold == 0.0f) { + return (result) ? true : false; + } else { + if (error_count) { + printf("%4.2f(%%) of bytes mismatched (count=%d)\n", + static_cast(error_count) * 100 / static_cast(len), + error_count); + } + + return (len * threshold > error_count) ? true : false; + } +} + +#ifndef __MIN_EPSILON_ERROR +#define __MIN_EPSILON_ERROR 1e-3f +#endif + +////////////////////////////////////////////////////////////////////////////// +//! Compare two arrays of arbitrary type +//! @return true if \a reference and \a data are identical, otherwise false +//! @param reference handle to the reference data / gold image +//! @param data handle to the computed data +//! @param len number of elements in reference and data +//! @param epsilon epsilon to use for the comparison +//! @param epsilon threshold % of (# of bytes) for pass/fail +////////////////////////////////////////////////////////////////////////////// +template +inline bool compareDataAsFloatThreshold(const T *reference, const T *data, + const unsigned int len, const S epsilon, + const float threshold) { + assert(epsilon >= 0); + + // If we set epsilon to be 0, let's set a minimum threshold + float max_error = MAX((float)epsilon, __MIN_EPSILON_ERROR); + int error_count = 0; + bool result = true; + + for (unsigned int i = 0; i < len; ++i) { + float diff = + fabs(static_cast(reference[i]) - static_cast(data[i])); + bool comp = (diff < max_error); + result &= comp; + + if (!comp) { + error_count++; + } + } + + if (threshold == 0.0f) { + if (error_count) { + printf("total # of errors = %d\n", error_count); + } + + return (error_count == 0) ? true : false; + } else { + if (error_count) { + printf("%4.2f(%%) of bytes mismatched (count=%d)\n", + static_cast(error_count) * 100 / static_cast(len), + error_count); + } + + return ((len * threshold > error_count) ? true : false); + } +} + +inline void sdkDumpBin(void *data, unsigned int bytes, const char *filename) { + printf("sdkDumpBin: <%s>\n", filename); + FILE *fp; + FOPEN(fp, filename, "wb"); + fwrite(data, bytes, 1, fp); + fflush(fp); + fclose(fp); +} + +inline bool sdkCompareBin2BinUint(const char *src_file, const char *ref_file, + unsigned int nelements, const float epsilon, + const float threshold, char *exec_path) { + unsigned int *src_buffer, *ref_buffer; + FILE *src_fp = NULL, *ref_fp = NULL; + + uint64_t error_count = 0; + size_t fsize = 0; + + if (FOPEN_FAIL(FOPEN(src_fp, src_file, "rb"))) { + printf("compareBin2Bin unable to open src_file: %s\n", + src_file); + error_count++; + } + + char *ref_file_path = sdkFindFilePath(ref_file, exec_path); + + if (ref_file_path == NULL) { + printf("compareBin2Bin unable to find <%s> in <%s>\n", + ref_file, exec_path); + printf(">>> Check info.xml and [project//data] folder <%s> <<<\n", + ref_file); + printf("Aborting comparison!\n"); + printf(" FAILED\n"); + error_count++; + + if (src_fp) { + fclose(src_fp); + } + + if (ref_fp) { + fclose(ref_fp); + } + } else { + if (FOPEN_FAIL(FOPEN(ref_fp, ref_file_path, "rb"))) { + printf( + "compareBin2Bin " + " unable to open ref_file: %s\n", + ref_file_path); + error_count++; + } + + if (src_fp && ref_fp) { + src_buffer = (unsigned int *)malloc(nelements * sizeof(unsigned int)); + ref_buffer = (unsigned int *)malloc(nelements * sizeof(unsigned int)); + + fsize = fread(src_buffer, nelements, sizeof(unsigned int), src_fp); + fsize = fread(ref_buffer, nelements, sizeof(unsigned int), ref_fp); + + printf( + "> compareBin2Bin nelements=%d," + " epsilon=%4.2f, threshold=%4.2f\n", + nelements, epsilon, threshold); + printf(" src_file <%s>, size=%d bytes\n", src_file, + static_cast(fsize)); + printf(" ref_file <%s>, size=%d bytes\n", ref_file_path, + static_cast(fsize)); + + if (!compareData(ref_buffer, src_buffer, nelements, + epsilon, threshold)) { + error_count++; + } + + fclose(src_fp); + fclose(ref_fp); + + free(src_buffer); + free(ref_buffer); + } else { + if (src_fp) { + fclose(src_fp); + } + + if (ref_fp) { + fclose(ref_fp); + } + } + } + + if (error_count == 0) { + printf(" OK\n"); + } else { + printf(" FAILURE: %d errors...\n", (unsigned int)error_count); + } + + return (error_count == 0); // returns true if all pixels pass +} + +inline bool sdkCompareBin2BinFloat(const char *src_file, const char *ref_file, + unsigned int nelements, const float epsilon, + const float threshold, char *exec_path) { + float *src_buffer = NULL, *ref_buffer = NULL; + FILE *src_fp = NULL, *ref_fp = NULL; + size_t fsize = 0; + + uint64_t error_count = 0; + + if (FOPEN_FAIL(FOPEN(src_fp, src_file, "rb"))) { + printf("compareBin2Bin unable to open src_file: %s\n", src_file); + error_count = 1; + } + + char *ref_file_path = sdkFindFilePath(ref_file, exec_path); + + if (ref_file_path == NULL) { + printf("compareBin2Bin unable to find <%s> in <%s>\n", ref_file, + exec_path); + printf(">>> Check info.xml and [project//data] folder <%s> <<<\n", + exec_path); + printf("Aborting comparison!\n"); + printf(" FAILED\n"); + error_count++; + + if (src_fp) { + fclose(src_fp); + } + + if (ref_fp) { + fclose(ref_fp); + } + } else { + if (FOPEN_FAIL(FOPEN(ref_fp, ref_file_path, "rb"))) { + printf("compareBin2Bin unable to open ref_file: %s\n", + ref_file_path); + error_count = 1; + } + + if (src_fp && ref_fp) { + src_buffer = reinterpret_cast(malloc(nelements * sizeof(float))); + ref_buffer = reinterpret_cast(malloc(nelements * sizeof(float))); + + printf( + "> compareBin2Bin nelements=%d, epsilon=%4.2f," + " threshold=%4.2f\n", + nelements, epsilon, threshold); + fsize = fread(src_buffer, sizeof(float), nelements, src_fp); + printf(" src_file <%s>, size=%d bytes\n", src_file, + static_cast(fsize * sizeof(float))); + fsize = fread(ref_buffer, sizeof(float), nelements, ref_fp); + printf(" ref_file <%s>, size=%d bytes\n", ref_file_path, + static_cast(fsize * sizeof(float))); + + if (!compareDataAsFloatThreshold( + ref_buffer, src_buffer, nelements, epsilon, threshold)) { + error_count++; + } + + fclose(src_fp); + fclose(ref_fp); + + free(src_buffer); + free(ref_buffer); + } else { + if (src_fp) { + fclose(src_fp); + } + + if (ref_fp) { + fclose(ref_fp); + } + } + } + + if (error_count == 0) { + printf(" OK\n"); + } else { + printf(" FAILURE: %d errors...\n", (unsigned int)error_count); + } + + return (error_count == 0); // returns true if all pixels pass +} + +inline bool sdkCompareL2fe(const float *reference, const float *data, + const unsigned int len, const float epsilon) { + assert(epsilon >= 0); + + float error = 0; + float ref = 0; + + for (unsigned int i = 0; i < len; ++i) { + float diff = reference[i] - data[i]; + error += diff * diff; + ref += reference[i] * reference[i]; + } + + float normRef = sqrtf(ref); + + if (fabs(ref) < 1e-7) { +#ifdef _DEBUG + std::cerr << "ERROR, reference l2-norm is 0\n"; +#endif + return false; + } + + float normError = sqrtf(error); + error = normError / normRef; + bool result = error < epsilon; +#ifdef _DEBUG + + if (!result) { + std::cerr << "ERROR, l2-norm error " << error << " is greater than epsilon " + << epsilon << "\n"; + } + +#endif + + return result; +} + +inline bool sdkLoadPPMub(const char *file, unsigned char **data, + unsigned int *w, unsigned int *h) { + unsigned int channels; + return __loadPPM(file, data, w, h, &channels); +} + +inline bool sdkLoadPPM4ub(const char *file, unsigned char **data, + unsigned int *w, unsigned int *h) { + unsigned char *idata = 0; + unsigned int channels; + + if (__loadPPM(file, &idata, w, h, &channels)) { + // pad 4th component + int size = *w * *h; + // keep the original pointer + unsigned char *idata_orig = idata; + *data = (unsigned char *)malloc(sizeof(unsigned char) * size * 4); + unsigned char *ptr = *data; + + for (int i = 0; i < size; i++) { + *ptr++ = *idata++; + *ptr++ = *idata++; + *ptr++ = *idata++; + *ptr++ = 0; + } + + free(idata_orig); + return true; + } else { + free(idata); + return false; + } +} + +inline bool sdkComparePPM(const char *src_file, const char *ref_file, + const float epsilon, const float threshold, + bool verboseErrors) { + unsigned char *src_data, *ref_data; + uint64_t error_count = 0; + unsigned int ref_width, ref_height; + unsigned int src_width, src_height; + + if (src_file == NULL || ref_file == NULL) { + if (verboseErrors) { + std::cerr << "PPMvsPPM: src_file or ref_file is NULL." + " Aborting comparison\n"; + } + + return false; + } + + if (verboseErrors) { + std::cerr << "> Compare (a)rendered: <" << src_file << ">\n"; + std::cerr << "> (b)reference: <" << ref_file << ">\n"; + } + + if (sdkLoadPPM4ub(ref_file, &ref_data, &ref_width, &ref_height) != true) { + if (verboseErrors) { + std::cerr << "PPMvsPPM: unable to load ref image file: " << ref_file + << "\n"; + } + + return false; + } + + if (sdkLoadPPM4ub(src_file, &src_data, &src_width, &src_height) != true) { + std::cerr << "PPMvsPPM: unable to load src image file: " << src_file + << "\n"; + return false; + } + + if (src_height != ref_height || src_width != ref_width) { + if (verboseErrors) { + std::cerr << "PPMvsPPM: source and ref size mismatch (" << src_width + << "," << src_height << ")vs(" << ref_width << "," << ref_height + << ")\n"; + } + } + + if (verboseErrors) { + std::cerr << "PPMvsPPM: comparing images size (" << src_width << "," + << src_height << ") epsilon(" << epsilon << "), threshold(" + << threshold * 100 << "%)\n"; + } + + if (compareData(ref_data, src_data, src_width * src_height * 4, epsilon, + threshold) == false) { + error_count = 1; + } + + if (error_count == 0) { + if (verboseErrors) { + std::cerr << " OK\n\n"; + } + } else { + if (verboseErrors) { + std::cerr << " FAILURE! " << error_count << " errors...\n\n"; + } + } + + // returns true if all pixels pass + return (error_count == 0) ? true : false; +} + +inline bool sdkComparePGM(const char *src_file, const char *ref_file, + const float epsilon, const float threshold, + bool verboseErrors) { + unsigned char *src_data = 0, *ref_data = 0; + uint64_t error_count = 0; + unsigned int ref_width, ref_height; + unsigned int src_width, src_height; + + if (src_file == NULL || ref_file == NULL) { + if (verboseErrors) { + std::cerr << "PGMvsPGM: src_file or ref_file is NULL." + " Aborting comparison\n"; + } + + return false; + } + + if (verboseErrors) { + std::cerr << "> Compare (a)rendered: <" << src_file << ">\n"; + std::cerr << "> (b)reference: <" << ref_file << ">\n"; + } + + if (sdkLoadPPMub(ref_file, &ref_data, &ref_width, &ref_height) != true) { + if (verboseErrors) { + std::cerr << "PGMvsPGM: unable to load ref image file: " << ref_file + << "\n"; + } + + return false; + } + + if (sdkLoadPPMub(src_file, &src_data, &src_width, &src_height) != true) { + std::cerr << "PGMvsPGM: unable to load src image file: " << src_file + << "\n"; + return false; + } + + if (src_height != ref_height || src_width != ref_width) { + if (verboseErrors) { + std::cerr << "PGMvsPGM: source and ref size mismatch (" << src_width + << "," << src_height << ")vs(" << ref_width << "," << ref_height + << ")\n"; + } + } + + if (verboseErrors) + std::cerr << "PGMvsPGM: comparing images size (" << src_width << "," + << src_height << ") epsilon(" << epsilon << "), threshold(" + << threshold * 100 << "%)\n"; + + if (compareData(ref_data, src_data, src_width * src_height, epsilon, + threshold) == false) { + error_count = 1; + } + + if (error_count == 0) { + if (verboseErrors) { + std::cerr << " OK\n\n"; + } + } else { + if (verboseErrors) { + std::cerr << " FAILURE! " << error_count << " errors...\n\n"; + } + } + + // returns true if all pixels pass + return (error_count == 0) ? true : false; +} + +#endif // COMMON_HELPER_IMAGE_H_ \ No newline at end of file diff --git a/DirectProgramming/C++SYCL/DenseLinearAlgebra/guided_matrix_mul_SYCLMigration/02_sycl_dpct_migrated/Common/helper_string.h b/DirectProgramming/C++SYCL/DenseLinearAlgebra/guided_matrix_mul_SYCLMigration/02_sycl_dpct_migrated/Common/helper_string.h new file mode 100644 index 0000000000..47fb1ac1fa --- /dev/null +++ b/DirectProgramming/C++SYCL/DenseLinearAlgebra/guided_matrix_mul_SYCLMigration/02_sycl_dpct_migrated/Common/helper_string.h @@ -0,0 +1,428 @@ +/* Copyright (c) 2022, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of NVIDIA CORPORATION nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +// These are helper functions for the SDK samples (string parsing, timers, etc) +#ifndef COMMON_HELPER_STRING_H_ +#define COMMON_HELPER_STRING_H_ + +#include +#include +#include +#include + +#if defined(WIN32) || defined(_WIN32) || defined(WIN64) || defined(_WIN64) +#ifndef _CRT_SECURE_NO_DEPRECATE +#define _CRT_SECURE_NO_DEPRECATE +#endif +#ifndef STRCASECMP +#define STRCASECMP _stricmp +#endif +#ifndef STRNCASECMP +#define STRNCASECMP _strnicmp +#endif +#ifndef STRCPY +#define STRCPY(sFilePath, nLength, sPath) strcpy_s(sFilePath, nLength, sPath) +#endif + +#ifndef FOPEN +#define FOPEN(fHandle, filename, mode) fopen_s(&fHandle, filename, mode) +#endif +#ifndef FOPEN_FAIL +#define FOPEN_FAIL(result) (result != 0) +#endif +#ifndef SSCANF +#define SSCANF sscanf_s +#endif +#ifndef SPRINTF +#define SPRINTF sprintf_s +#endif +#else // Linux Includes +#include +#include + +#ifndef STRCASECMP +#define STRCASECMP strcasecmp +#endif +#ifndef STRNCASECMP +#define STRNCASECMP strncasecmp +#endif +#ifndef STRCPY +#define STRCPY(sFilePath, nLength, sPath) strcpy(sFilePath, sPath) +#endif + +#ifndef FOPEN +#define FOPEN(fHandle, filename, mode) (fHandle = fopen(filename, mode)) +#endif +#ifndef FOPEN_FAIL +#define FOPEN_FAIL(result) (result == NULL) +#endif +#ifndef SSCANF +#define SSCANF sscanf +#endif +#ifndef SPRINTF +#define SPRINTF sprintf +#endif +#endif + +#ifndef EXIT_WAIVED +#define EXIT_WAIVED 2 +#endif + +// CUDA Utility Helper Functions +inline int stringRemoveDelimiter(char delimiter, const char *string) { + int string_start = 0; + + while (string[string_start] == delimiter) { + string_start++; + } + + if (string_start >= static_cast(strlen(string) - 1)) { + return 0; + } + + return string_start; +} + +inline int getFileExtension(char *filename, char **extension) { + int string_length = static_cast(strlen(filename)); + + while (filename[string_length--] != '.') { + if (string_length == 0) break; + } + + if (string_length > 0) string_length += 2; + + if (string_length == 0) + *extension = NULL; + else + *extension = &filename[string_length]; + + return string_length; +} + +inline bool checkCmdLineFlag(const int argc, const char **argv, + const char *string_ref) { + bool bFound = false; + + if (argc >= 1) { + for (int i = 1; i < argc; i++) { + int string_start = stringRemoveDelimiter('-', argv[i]); + const char *string_argv = &argv[i][string_start]; + + const char *equal_pos = strchr(string_argv, '='); + int argv_length = static_cast( + equal_pos == 0 ? strlen(string_argv) : equal_pos - string_argv); + + int length = static_cast(strlen(string_ref)); + + if (length == argv_length && + !STRNCASECMP(string_argv, string_ref, length)) { + bFound = true; + continue; + } + } + } + + return bFound; +} + +// This function wraps the CUDA Driver API into a template function +template +inline bool getCmdLineArgumentValue(const int argc, const char **argv, + const char *string_ref, T *value) { + bool bFound = false; + + if (argc >= 1) { + for (int i = 1; i < argc; i++) { + int string_start = stringRemoveDelimiter('-', argv[i]); + const char *string_argv = &argv[i][string_start]; + int length = static_cast(strlen(string_ref)); + + if (!STRNCASECMP(string_argv, string_ref, length)) { + if (length + 1 <= static_cast(strlen(string_argv))) { + int auto_inc = (string_argv[length] == '=') ? 1 : 0; + *value = (T)atoi(&string_argv[length + auto_inc]); + } + + bFound = true; + i = argc; + } + } + } + + return bFound; +} + +inline int getCmdLineArgumentInt(const int argc, const char **argv, + const char *string_ref) { + bool bFound = false; + int value = -1; + + if (argc >= 1) { + for (int i = 1; i < argc; i++) { + int string_start = stringRemoveDelimiter('-', argv[i]); + const char *string_argv = &argv[i][string_start]; + int length = static_cast(strlen(string_ref)); + + if (!STRNCASECMP(string_argv, string_ref, length)) { + if (length + 1 <= static_cast(strlen(string_argv))) { + int auto_inc = (string_argv[length] == '=') ? 1 : 0; + value = atoi(&string_argv[length + auto_inc]); + } else { + value = 0; + } + + bFound = true; + continue; + } + } + } + + if (bFound) { + return value; + } else { + return 0; + } +} + +inline float getCmdLineArgumentFloat(const int argc, const char **argv, + const char *string_ref) { + bool bFound = false; + float value = -1; + + if (argc >= 1) { + for (int i = 1; i < argc; i++) { + int string_start = stringRemoveDelimiter('-', argv[i]); + const char *string_argv = &argv[i][string_start]; + int length = static_cast(strlen(string_ref)); + + if (!STRNCASECMP(string_argv, string_ref, length)) { + if (length + 1 <= static_cast(strlen(string_argv))) { + int auto_inc = (string_argv[length] == '=') ? 1 : 0; + value = static_cast(atof(&string_argv[length + auto_inc])); + } else { + value = 0.f; + } + + bFound = true; + continue; + } + } + } + + if (bFound) { + return value; + } else { + return 0; + } +} + +inline bool getCmdLineArgumentString(const int argc, const char **argv, + const char *string_ref, + char **string_retval) { + bool bFound = false; + + if (argc >= 1) { + for (int i = 1; i < argc; i++) { + int string_start = stringRemoveDelimiter('-', argv[i]); + char *string_argv = const_cast(&argv[i][string_start]); + int length = static_cast(strlen(string_ref)); + + if (!STRNCASECMP(string_argv, string_ref, length)) { + *string_retval = &string_argv[length + 1]; + bFound = true; + continue; + } + } + } + + if (!bFound) { + *string_retval = NULL; + } + + return bFound; +} + +////////////////////////////////////////////////////////////////////////////// +//! Find the path for a file assuming that +//! files are found in the searchPath. +//! +//! @return the path if succeeded, otherwise 0 +//! @param filename name of the file +//! @param executable_path optional absolute path of the executable +////////////////////////////////////////////////////////////////////////////// +inline char *sdkFindFilePath(const char *filename, + const char *executable_path) { + // defines a variable that is replaced with the name of the + // executable + + // Typical relative search paths to locate needed companion files (e.g. sample + // input data, or JIT source files) The origin for the relative search may be + // the .exe file, a .bat file launching an .exe, a browser .exe launching the + // .exe or .bat, etc + const char *searchPath[] = { + "./", // same dir + "./data/", // same dir + + "../../../../Samples//", // up 4 in tree + "../../../Samples//", // up 3 in tree + "../../Samples//", // up 2 in tree + + "../../../../Samples//data/", // up 4 in tree + "../../../Samples//data/", // up 3 in tree + "../../Samples//data/", // up 2 in tree + + "../../../../Samples/0_Introduction//", // up 4 in tree + "../../../Samples/0_Introduction//", // up 3 in tree + "../../Samples/0_Introduction//", // up 2 in tree + + "../../../../Samples/1_Utilities//", // up 4 in tree + "../../../Samples/1_Utilities//", // up 3 in tree + "../../Samples/1_Utilities//", // up 2 in tree + + "../../../../Samples/2_Concepts_and_Techniques//", // up 4 in tree + "../../../Samples/2_Concepts_and_Techniques//", // up 3 in tree + "../../Samples/2_Concepts_and_Techniques//", // up 2 in tree + + "../../../../Samples/3_CUDA_Features//", // up 4 in tree + "../../../Samples/3_CUDA_Features//", // up 3 in tree + "../../Samples/3_CUDA_Features//", // up 2 in tree + + "../../../../Samples/4_CUDA_Libraries//", // up 4 in tree + "../../../Samples/4_CUDA_Libraries//", // up 3 in tree + "../../Samples/4_CUDA_Libraries//", // up 2 in tree + + "../../../../Samples/5_Domain_Specific//", // up 4 in tree + "../../../Samples/5_Domain_Specific//", // up 3 in tree + "../../Samples/5_Domain_Specific//", // up 2 in tree + + "../../../../Samples/6_Performance//", // up 4 in tree + "../../../Samples/6_Performance//", // up 3 in tree + "../../Samples/6_Performance//", // up 2 in tree + + "../../../../Samples/0_Introduction//data/", // up 4 in tree + "../../../Samples/0_Introduction//data/", // up 3 in tree + "../../Samples/0_Introduction//data/", // up 2 in tree + + "../../../../Samples/1_Utilities//data/", // up 4 in tree + "../../../Samples/1_Utilities//data/", // up 3 in tree + "../../Samples/1_Utilities//data/", // up 2 in tree + + "../../../../Samples/2_Concepts_and_Techniques//data/", // up 4 in tree + "../../../Samples/2_Concepts_and_Techniques//data/", // up 3 in tree + "../../Samples/2_Concepts_and_Techniques//data/", // up 2 in tree + + "../../../../Samples/3_CUDA_Features//data/", // up 4 in tree + "../../../Samples/3_CUDA_Features//data/", // up 3 in tree + "../../Samples/3_CUDA_Features//data/", // up 2 in tree + + "../../../../Samples/4_CUDA_Libraries//data/", // up 4 in tree + "../../../Samples/4_CUDA_Libraries//data/", // up 3 in tree + "../../Samples/4_CUDA_Libraries//data/", // up 2 in tree + + "../../../../Samples/5_Domain_Specific//data/", // up 4 in tree + "../../../Samples/5_Domain_Specific//data/", // up 3 in tree + "../../Samples/5_Domain_Specific//data/", // up 2 in tree + + "../../../../Samples/6_Performance//data/", // up 4 in tree + "../../../Samples/6_Performance//data/", // up 3 in tree + "../../Samples/6_Performance//data/", // up 2 in tree + + "../../../../Common/data/", // up 4 in tree + "../../../Common/data/", // up 3 in tree + "../../Common/data/" // up 2 in tree + }; + + // Extract the executable name + std::string executable_name; + + if (executable_path != 0) { + executable_name = std::string(executable_path); + +#if defined(WIN32) || defined(_WIN32) || defined(WIN64) || defined(_WIN64) + // Windows path delimiter + size_t delimiter_pos = executable_name.find_last_of('\\'); + executable_name.erase(0, delimiter_pos + 1); + + if (executable_name.rfind(".exe") != std::string::npos) { + // we strip .exe, only if the .exe is found + executable_name.resize(executable_name.size() - 4); + } + +#else + // Linux & OSX path delimiter + size_t delimiter_pos = executable_name.find_last_of('/'); + executable_name.erase(0, delimiter_pos + 1); +#endif + } + + // Loop over all search paths and return the first hit + for (unsigned int i = 0; i < sizeof(searchPath) / sizeof(char *); ++i) { + std::string path(searchPath[i]); + size_t executable_name_pos = path.find(""); + + // If there is executable_name variable in the searchPath + // replace it with the value + if (executable_name_pos != std::string::npos) { + if (executable_path != 0) { + path.replace(executable_name_pos, strlen(""), + executable_name); + } else { + // Skip this path entry if no executable argument is given + continue; + } + } + +#ifdef _DEBUG + printf("sdkFindFilePath <%s> in %s\n", filename, path.c_str()); +#endif + + // Test if the file exists + path.append(filename); + FILE *fp; + FOPEN(fp, path.c_str(), "rb"); + + if (fp != NULL) { + fclose(fp); + // File found + // returning an allocated array here for backwards compatibility reasons + char *file_path = reinterpret_cast(malloc(path.length() + 1)); + STRCPY(file_path, path.length() + 1, path.c_str()); + return file_path; + } + + if (fp) { + fclose(fp); + } + } + + // File not found + printf("\nerror: sdkFindFilePath: file <%s> not found!\n", filename); + return 0; +} + +#endif // COMMON_HELPER_STRING_H_ \ No newline at end of file diff --git a/DirectProgramming/C++SYCL/DenseLinearAlgebra/guided_matrix_mul_SYCLMigration/02_sycl_dpct_migrated/Common/helper_timer.h b/DirectProgramming/C++SYCL/DenseLinearAlgebra/guided_matrix_mul_SYCLMigration/02_sycl_dpct_migrated/Common/helper_timer.h new file mode 100644 index 0000000000..8ebce43598 --- /dev/null +++ b/DirectProgramming/C++SYCL/DenseLinearAlgebra/guided_matrix_mul_SYCLMigration/02_sycl_dpct_migrated/Common/helper_timer.h @@ -0,0 +1,465 @@ +/* Copyright (c) 2022, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of NVIDIA CORPORATION nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +// Helper Timing Functions +#ifndef COMMON_HELPER_TIMER_H_ +#define COMMON_HELPER_TIMER_H_ + +#ifndef EXIT_WAIVED +#define EXIT_WAIVED 2 +#endif + +// includes, system +#include + +// includes, project +#include + +// Definition of the StopWatch Interface, this is used if we don't want to use +// the CUT functions But rather in a self contained class interface +class StopWatchInterface { + public: + StopWatchInterface() {} + virtual ~StopWatchInterface() {} + + public: + //! Start time measurement + virtual void start() = 0; + + //! Stop time measurement + virtual void stop() = 0; + + //! Reset time counters to zero + virtual void reset() = 0; + + //! Time in msec. after start. If the stop watch is still running (i.e. there + //! was no call to stop()) then the elapsed time is returned, otherwise the + //! time between the last start() and stop call is returned + virtual float getTime() = 0; + + //! Mean time to date based on the number of times the stopwatch has been + //! _stopped_ (ie finished sessions) and the current total time + virtual float getAverageTime() = 0; +}; + +////////////////////////////////////////////////////////////////// +// Begin Stopwatch timer class definitions for all OS platforms // +////////////////////////////////////////////////////////////////// +#if defined(WIN32) || defined(_WIN32) || defined(WIN64) || defined(_WIN64) +// includes, system +#define WINDOWS_LEAN_AND_MEAN +#include +#undef min +#undef max + +//! Windows specific implementation of StopWatch +class StopWatchWin : public StopWatchInterface { + public: + //! Constructor, default + StopWatchWin() + : start_time(), + end_time(), + diff_time(0.0f), + total_time(0.0f), + running(false), + clock_sessions(0), + freq(0), + freq_set(false) { + if (!freq_set) { + // helper variable + LARGE_INTEGER temp; + + // get the tick frequency from the OS + QueryPerformanceFrequency(reinterpret_cast(&temp)); + + // convert to type in which it is needed + freq = (static_cast(temp.QuadPart)) / 1000.0; + + // rememeber query + freq_set = true; + } + } + + // Destructor + ~StopWatchWin() {} + + public: + //! Start time measurement + inline void start(); + + //! Stop time measurement + inline void stop(); + + //! Reset time counters to zero + inline void reset(); + + //! Time in msec. after start. If the stop watch is still running (i.e. there + //! was no call to stop()) then the elapsed time is returned, otherwise the + //! time between the last start() and stop call is returned + inline float getTime(); + + //! Mean time to date based on the number of times the stopwatch has been + //! _stopped_ (ie finished sessions) and the current total time + inline float getAverageTime(); + + private: + // member variables + + //! Start of measurement + LARGE_INTEGER start_time; + //! End of measurement + LARGE_INTEGER end_time; + + //! Time difference between the last start and stop + float diff_time; + + //! TOTAL time difference between starts and stops + float total_time; + + //! flag if the stop watch is running + bool running; + + //! Number of times clock has been started + //! and stopped to allow averaging + int clock_sessions; + + //! tick frequency + double freq; + + //! flag if the frequency has been set + bool freq_set; +}; + +// functions, inlined + +//////////////////////////////////////////////////////////////////////////////// +//! Start time measurement +//////////////////////////////////////////////////////////////////////////////// +inline void StopWatchWin::start() { + QueryPerformanceCounter(reinterpret_cast(&start_time)); + running = true; +} + +//////////////////////////////////////////////////////////////////////////////// +//! Stop time measurement and increment add to the current diff_time summation +//! variable. Also increment the number of times this clock has been run. +//////////////////////////////////////////////////////////////////////////////// +inline void StopWatchWin::stop() { + QueryPerformanceCounter(reinterpret_cast(&end_time)); + diff_time = static_cast(((static_cast(end_time.QuadPart) - + static_cast(start_time.QuadPart)) / + freq)); + + total_time += diff_time; + clock_sessions++; + running = false; +} + +//////////////////////////////////////////////////////////////////////////////// +//! Reset the timer to 0. Does not change the timer running state but does +//! recapture this point in time as the current start time if it is running. +//////////////////////////////////////////////////////////////////////////////// +inline void StopWatchWin::reset() { + diff_time = 0; + total_time = 0; + clock_sessions = 0; + + if (running) { + QueryPerformanceCounter(reinterpret_cast(&start_time)); + } +} + +//////////////////////////////////////////////////////////////////////////////// +//! Time in msec. after start. If the stop watch is still running (i.e. there +//! was no call to stop()) then the elapsed time is returned added to the +//! current diff_time sum, otherwise the current summed time difference alone +//! is returned. +//////////////////////////////////////////////////////////////////////////////// +inline float StopWatchWin::getTime() { + // Return the TOTAL time to date + float retval = total_time; + + if (running) { + LARGE_INTEGER temp; + QueryPerformanceCounter(reinterpret_cast(&temp)); + retval += static_cast(((static_cast(temp.QuadPart) - + static_cast(start_time.QuadPart)) / + freq)); + } + + return retval; +} + +//////////////////////////////////////////////////////////////////////////////// +//! Time in msec. for a single run based on the total number of COMPLETED runs +//! and the total time. +//////////////////////////////////////////////////////////////////////////////// +inline float StopWatchWin::getAverageTime() { + return (clock_sessions > 0) ? (total_time / clock_sessions) : 0.0f; +} +#else +// Declarations for Stopwatch on Linux and Mac OSX +// includes, system +#include +#include + +//! Windows specific implementation of StopWatch +class StopWatchLinux : public StopWatchInterface { + public: + //! Constructor, default + StopWatchLinux() + : start_time(), + diff_time(0.0), + total_time(0.0), + running(false), + clock_sessions(0) {} + + // Destructor + virtual ~StopWatchLinux() {} + + public: + //! Start time measurement + inline void start(); + + //! Stop time measurement + inline void stop(); + + //! Reset time counters to zero + inline void reset(); + + //! Time in msec. after start. If the stop watch is still running (i.e. there + //! was no call to stop()) then the elapsed time is returned, otherwise the + //! time between the last start() and stop call is returned + inline float getTime(); + + //! Mean time to date based on the number of times the stopwatch has been + //! _stopped_ (ie finished sessions) and the current total time + inline float getAverageTime(); + + private: + // helper functions + + //! Get difference between start time and current time + inline float getDiffTime(); + + private: + // member variables + + //! Start of measurement + struct timeval start_time; + + //! Time difference between the last start and stop + float diff_time; + + //! TOTAL time difference between starts and stops + float total_time; + + //! flag if the stop watch is running + bool running; + + //! Number of times clock has been started + //! and stopped to allow averaging + int clock_sessions; +}; + +// functions, inlined + +//////////////////////////////////////////////////////////////////////////////// +//! Start time measurement +//////////////////////////////////////////////////////////////////////////////// +inline void StopWatchLinux::start() { + gettimeofday(&start_time, 0); + running = true; +} + +//////////////////////////////////////////////////////////////////////////////// +//! Stop time measurement and increment add to the current diff_time summation +//! variable. Also increment the number of times this clock has been run. +//////////////////////////////////////////////////////////////////////////////// +inline void StopWatchLinux::stop() { + diff_time = getDiffTime(); + total_time += diff_time; + running = false; + clock_sessions++; +} + +//////////////////////////////////////////////////////////////////////////////// +//! Reset the timer to 0. Does not change the timer running state but does +//! recapture this point in time as the current start time if it is running. +//////////////////////////////////////////////////////////////////////////////// +inline void StopWatchLinux::reset() { + diff_time = 0; + total_time = 0; + clock_sessions = 0; + + if (running) { + gettimeofday(&start_time, 0); + } +} + +//////////////////////////////////////////////////////////////////////////////// +//! Time in msec. after start. If the stop watch is still running (i.e. there +//! was no call to stop()) then the elapsed time is returned added to the +//! current diff_time sum, otherwise the current summed time difference alone +//! is returned. +//////////////////////////////////////////////////////////////////////////////// +inline float StopWatchLinux::getTime() { + // Return the TOTAL time to date + float retval = total_time; + + if (running) { + retval += getDiffTime(); + } + + return retval; +} + +//////////////////////////////////////////////////////////////////////////////// +//! Time in msec. for a single run based on the total number of COMPLETED runs +//! and the total time. +//////////////////////////////////////////////////////////////////////////////// +inline float StopWatchLinux::getAverageTime() { + return (clock_sessions > 0) ? (total_time / clock_sessions) : 0.0f; +} +//////////////////////////////////////////////////////////////////////////////// + +//////////////////////////////////////////////////////////////////////////////// +inline float StopWatchLinux::getDiffTime() { + struct timeval t_time; + gettimeofday(&t_time, 0); + + // time difference in milli-seconds + return static_cast(1000.0 * (t_time.tv_sec - start_time.tv_sec) + + (0.001 * (t_time.tv_usec - start_time.tv_usec))); +} +#endif // WIN32 + +//////////////////////////////////////////////////////////////////////////////// +//! Timer functionality exported + +//////////////////////////////////////////////////////////////////////////////// +//! Create a new timer +//! @return true if a time has been created, otherwise false +//! @param name of the new timer, 0 if the creation failed +//////////////////////////////////////////////////////////////////////////////// +inline bool sdkCreateTimer(StopWatchInterface **timer_interface) { +// printf("sdkCreateTimer called object %08x\n", (void *)*timer_interface); +#if defined(WIN32) || defined(_WIN32) || defined(WIN64) || defined(_WIN64) + *timer_interface = reinterpret_cast(new StopWatchWin()); +#else + *timer_interface = + reinterpret_cast(new StopWatchLinux()); +#endif + return (*timer_interface != NULL) ? true : false; +} + +//////////////////////////////////////////////////////////////////////////////// +//! Delete a timer +//! @return true if a time has been deleted, otherwise false +//! @param name of the timer to delete +//////////////////////////////////////////////////////////////////////////////// +inline bool sdkDeleteTimer(StopWatchInterface **timer_interface) { + // printf("sdkDeleteTimer called object %08x\n", (void *)*timer_interface); + if (*timer_interface) { + delete *timer_interface; + *timer_interface = NULL; + } + + return true; +} + +//////////////////////////////////////////////////////////////////////////////// +//! Start the time with name \a name +//! @param name name of the timer to start +//////////////////////////////////////////////////////////////////////////////// +inline bool sdkStartTimer(StopWatchInterface **timer_interface) { + // printf("sdkStartTimer called object %08x\n", (void *)*timer_interface); + if (*timer_interface) { + (*timer_interface)->start(); + } + + return true; +} + +//////////////////////////////////////////////////////////////////////////////// +//! Stop the time with name \a name. Does not reset. +//! @param name name of the timer to stop +//////////////////////////////////////////////////////////////////////////////// +inline bool sdkStopTimer(StopWatchInterface **timer_interface) { + // printf("sdkStopTimer called object %08x\n", (void *)*timer_interface); + if (*timer_interface) { + (*timer_interface)->stop(); + } + + return true; +} + +//////////////////////////////////////////////////////////////////////////////// +//! Resets the timer's counter. +//! @param name name of the timer to reset. +//////////////////////////////////////////////////////////////////////////////// +inline bool sdkResetTimer(StopWatchInterface **timer_interface) { + // printf("sdkResetTimer called object %08x\n", (void *)*timer_interface); + if (*timer_interface) { + (*timer_interface)->reset(); + } + + return true; +} + +//////////////////////////////////////////////////////////////////////////////// +//! Return the average time for timer execution as the total time +//! for the timer dividied by the number of completed (stopped) runs the timer +//! has made. +//! Excludes the current running time if the timer is currently running. +//! @param name name of the timer to return the time of +//////////////////////////////////////////////////////////////////////////////// +inline float sdkGetAverageTimerValue(StopWatchInterface **timer_interface) { + // printf("sdkGetAverageTimerValue called object %08x\n", (void + // *)*timer_interface); + if (*timer_interface) { + return (*timer_interface)->getAverageTime(); + } else { + return 0.0f; + } +} + +//////////////////////////////////////////////////////////////////////////////// +//! Total execution time for the timer over all runs since the last reset +//! or timer creation. +//! @param name name of the timer to obtain the value of. +//////////////////////////////////////////////////////////////////////////////// +inline float sdkGetTimerValue(StopWatchInterface **timer_interface) { + // printf("sdkGetTimerValue called object %08x\n", (void *)*timer_interface); + if (*timer_interface) { + return (*timer_interface)->getTime(); + } else { + return 0.0f; + } +} + +#endif // COMMON_HELPER_TIMER_H_ \ No newline at end of file diff --git a/DirectProgramming/C++SYCL/DenseLinearAlgebra/guided_matrix_mul_SYCLMigration/02_sycl_dpct_migrated/src/matrixMulCUBLAS.cpp b/DirectProgramming/C++SYCL/DenseLinearAlgebra/guided_matrix_mul_SYCLMigration/02_sycl_dpct_migrated/src/matrixMulCUBLAS.cpp new file mode 100644 index 0000000000..50ecbd820c --- /dev/null +++ b/DirectProgramming/C++SYCL/DenseLinearAlgebra/guided_matrix_mul_SYCLMigration/02_sycl_dpct_migrated/src/matrixMulCUBLAS.cpp @@ -0,0 +1,376 @@ +/* Copyright (c) 2022, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of NVIDIA CORPORATION nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* +* Matrix multiplication: C = A * B. +* Host code. +* +* This sample implements matrix multiplication as described in Chapter 3 +* of the programming guide and uses the CUBLAS library to demonstrate +* the best performance. +* SOME PRECAUTIONS: +* IF WE WANT TO CALCULATE ROW-MAJOR MATRIX MULTIPLY C = A * B, +* WE JUST NEED CALL CUBLAS API IN A REVERSE ORDER: cublasSegemm(B, A)! +* The reason is explained as follows: +* CUBLAS library uses column-major storage, but C/C++ use row-major storage. +* When passing the matrix pointer to CUBLAS, the memory layout alters from +* row-major to column-major, which is equivalent to an implicit transpose. +* In the case of row-major C/C++ matrix A, B, and a simple matrix multiplication +* C = A * B, we can't use the input order like cublasSgemm(A, B) because of +* implicit transpose. The actual result of cublasSegemm(A, B) is A(T) * B(T). +* If col(A(T)) != row(B(T)), equal to row(A) != col(B), A(T) and B(T) are not +* multipliable. Moreover, even if A(T) and B(T) are multipliable, the result C +* is a column-based cublas matrix, which means C(T) in C/C++, we need extra +* transpose code to convert it to a row-based C/C++ matrix. +* To solve the problem, let's consider our desired result C, a row-major matrix. +* In cublas format, it is C(T) actually (because of the implicit transpose). +* C = A * B, so C(T) = (A * B) (T) = B(T) * A(T). Cublas matrice B(T) and A(T) +* happen to be C/C++ matrice B and A (still because of the implicit transpose)! +* We don't need extra transpose code, we only need alter the input order! +* +* CUBLAS provides high-performance matrix multiplication. +* See also: +* V. Volkov and J. Demmel, "Benchmarking GPUs to tune dense linear algebra," +* in Proc. 2008 ACM/IEEE Conf. on Supercomputing (SC '08), +* Piscataway, NJ: IEEE Press, 2008, pp. Art. 31:1-11. +*/ + +// Utilities and system includes +#include +#include +#include +#include +#include +#include +// helper for shared functions common to CUDA Samples + +// CUDA runtime + +// CUDA and CUBLAS functions +#include +#include +#include + +#include + +#ifndef min +#define min(a, b) ((a < b) ? a : b) +#endif +#ifndef max +#define max(a, b) ((a > b) ? a : b) +#endif + +dpct::device_ext &dev_ct1 = dpct::get_current_device(); +sycl::queue &q_ct1 = dev_ct1.default_queue(); + +// Optional Command-line multiplier for matrix sizes +typedef struct _matrixSize { + unsigned int uiWA, uiHA, uiWB, uiHB, uiWC, uiHC; +} sMatrixSize; + +//////////////////////////////////////////////////////////////////////////////// +//! Compute reference data set matrix multiply on CPU +//! C = A * B +//! @param C reference data, computed but preallocated +//! @param A matrix A as provided to device +//! @param B matrix B as provided to device +//! @param hA height of matrix A +//! @param wB width of matrix B +//////////////////////////////////////////////////////////////////////////////// +void matrixMulCPU(float *C, const float *A, const float *B, unsigned int hA, + unsigned int wA, unsigned int wB) { + for (unsigned int i = 0; i < hA; ++i) + for (unsigned int j = 0; j < wB; ++j) { + double sum = 0; + + for (unsigned int k = 0; k < wA; ++k) { + double a = A[i * wA + k]; + double b = B[k * wB + j]; + sum += a * b; + } + + C[i * wB + j] = (float)sum; + } +} + +// Allocates a matrix with random float entries. +void randomInit(float *data, int size) { + for (int i = 0; i < size; ++i) data[i] = rand() / (float)RAND_MAX; +} + +void printDiff(float *data1, float *data2, int width, int height, + int iListLength, float fListTol) { + printf("Listing first %d Differences > %.6f...\n", iListLength, fListTol); + int i, j, k; + int error_count = 0; + + for (j = 0; j < height; j++) { + if (error_count < iListLength) { + printf("\n Row %d:\n", j); + } + + for (i = 0; i < width; i++) { + k = j * width + i; + float fDiff = fabs(data1[k] - data2[k]); + + if (fDiff > fListTol) { + if (error_count < iListLength) { + printf(" Loc(%d,%d)\tCPU=%.5f\tGPU=%.5f\tDiff=%.6f\n", i, j, + data1[k], data2[k], fDiff); + } + + error_count++; + } + } + } + + printf(" \n Total Errors = %d\n", error_count); +} + +void initializeCUDA(int argc, char **argv, int &devID, int &iSizeMultiple, + sMatrixSize &matrix_size) try { + // By default, we use device 0, otherwise we override the device ID based on + // what is provided at the command line + int error; + devID = 0; + + // devID = findCudaDevice(argc, (const char **)argv); + + if (checkCmdLineFlag(argc, (const char **)argv, "sizemult")) { + iSizeMultiple = + getCmdLineArgumentInt(argc, (const char **)argv, "sizemult"); + } + + iSizeMultiple = min(iSizeMultiple, 10); + iSizeMultiple = max(iSizeMultiple, 1); + + dpct::device_info deviceProp; + + dpct::dev_mgr::instance().get_device(devID).get_device_info(deviceProp); + + printf("GPU Device %d: \"%s\" with compute capability %d.%d\n\n", devID, + deviceProp.get_name(), deviceProp.get_major_version(), + deviceProp.get_minor_version()); + + int block_size = 32; + + matrix_size.uiWA = 3 * block_size * iSizeMultiple; + matrix_size.uiHA = 4 * block_size * iSizeMultiple; + matrix_size.uiWB = 2 * block_size * iSizeMultiple; + matrix_size.uiHB = 3 * block_size * iSizeMultiple; + matrix_size.uiWC = 2 * block_size * iSizeMultiple; + matrix_size.uiHC = 4 * block_size * iSizeMultiple; + + printf("MatrixA(%u,%u), MatrixB(%u,%u), MatrixC(%u,%u)\n", matrix_size.uiHA, + matrix_size.uiWA, matrix_size.uiHB, matrix_size.uiWB, matrix_size.uiHC, + matrix_size.uiWC); + + if (matrix_size.uiWA != matrix_size.uiHB || + matrix_size.uiHA != matrix_size.uiHC || + matrix_size.uiWB != matrix_size.uiWC) { + printf("ERROR: Matrix sizes do not match!\n"); + exit(-1); + } +} +catch (sycl::exception const &exc) { + std::cerr << exc.what() << "Exception caught at file:" << __FILE__ + << ", line:" << __LINE__ << std::endl; + std::exit(1); +} + +//////////////////////////////////////////////////////////////////////////////// +//! Run a simple test matrix multiply using CUBLAS +//////////////////////////////////////////////////////////////////////////////// +int matrixMultiply(int argc, char **argv, int devID, sMatrixSize &matrix_size) { + dpct::device_info deviceProp; + + dpct::dev_mgr::instance().get_device(devID).get_device_info(deviceProp); + + int block_size = 32; + + // set seed for rand() + srand(2006); + + // allocate host memory for matrices A and B + unsigned int size_A = matrix_size.uiWA * matrix_size.uiHA; + unsigned int mem_size_A = sizeof(float) * size_A; + float *h_A = (float *)malloc(mem_size_A); + unsigned int size_B = matrix_size.uiWB * matrix_size.uiHB; + unsigned int mem_size_B = sizeof(float) * size_B; + float *h_B = (float *)malloc(mem_size_B); + + // set seed for rand() + srand(2006); + + // initialize host memory + randomInit(h_A, size_A); + randomInit(h_B, size_B); + + // allocate device memory + float *d_A, *d_B, *d_C; + unsigned int size_C = matrix_size.uiWC * matrix_size.uiHC; + unsigned int mem_size_C = sizeof(float) * size_C; + + // allocate host memory for the result + float *h_C = (float *)malloc(mem_size_C); + float *h_CUBLAS = (float *)malloc(mem_size_C); + + d_A = (float *)sycl::malloc_device(mem_size_A, dpct::get_default_queue()); + d_B = (float *)sycl::malloc_device(mem_size_B, dpct::get_default_queue()); + + dpct::get_default_queue().memcpy(d_A, h_A, mem_size_A).wait(); + dpct::get_default_queue().memcpy(d_B, h_B, mem_size_B).wait(); + + d_C = (float *)sycl::malloc_device(mem_size_C, dpct::get_default_queue()); + + // setup execution parameters + sycl::range<3> threads(1, block_size, block_size); + sycl::range<3> grid(1, matrix_size.uiHC / threads[1], + matrix_size.uiWC / threads[2]); + + // create and start timer + printf("Computing result using CUBLAS..."); + + // execute the kernel + int nIter = 30; + + // CUBLAS version 2.0 + { + const float alpha = 1.0f; + const float beta = 0.0f; + sycl::queue *handle; + dpct::event_ptr start, stop; + std::chrono::time_point start_ct1; + std::chrono::time_point stop_ct1; + + handle = &dpct::get_default_queue(); + + // Perform warmup operation with cublas + oneapi::mkl::blas::column_major::gemm( + *handle, oneapi::mkl::transpose::nontrans, + oneapi::mkl::transpose::nontrans, matrix_size.uiWB, + matrix_size.uiHA, matrix_size.uiWA, alpha, d_B, matrix_size.uiWB, + d_A, matrix_size.uiWA, beta, d_C, matrix_size.uiWB); + + // Allocate CUDA events that we'll use for timing + start = new sycl::event(); + stop = new sycl::event(); + + // Record the start event + start_ct1 = std::chrono::steady_clock::now(); + + for (int j = 0; j < nIter; j++) { + // note cublas is column primary! + // need to transpose the order + oneapi::mkl::blas::column_major::gemm( + *handle, oneapi::mkl::transpose::nontrans, + oneapi::mkl::transpose::nontrans, matrix_size.uiWB, + matrix_size.uiHA, matrix_size.uiWA, alpha, d_B, matrix_size.uiWB, + d_A, matrix_size.uiWA, beta, d_C, matrix_size.uiWB); + } + + printf("done.\n"); + + // Record the stop event + stop_ct1 = std::chrono::steady_clock::now(); + + // Wait for the stop event to complete + float msecTotal = 0.0f; + msecTotal = std::chrono::duration( + stop_ct1 - start_ct1) + .count(); + + // Compute and print the performance + float msecPerMatrixMul = msecTotal / nIter; + double flopsPerMatrixMul = 2.0 * (double)matrix_size.uiHC * + (double)matrix_size.uiWC * + (double)matrix_size.uiHB; + double gigaFlops = + (flopsPerMatrixMul * 1.0e-9f) / (msecPerMatrixMul / 1000.0f); + printf("Performance= %.2f GFlop/s, Time= %.3f msec, Size= %.0f Ops\n", + gigaFlops, msecPerMatrixMul, flopsPerMatrixMul); + + // copy result from device to host + dpct::get_default_queue().memcpy(h_CUBLAS, d_C, mem_size_C).wait(); + + // Destroy the handle + handle = nullptr; + } + + // compute reference solution + printf("Computing result using host CPU..."); + float *reference = (float *)malloc(mem_size_C); + matrixMulCPU(reference, h_A, h_B, matrix_size.uiHA, matrix_size.uiWA, + matrix_size.uiWB); + printf("done.\n"); + + // check result (CUBLAS) + bool resCUBLAS = sdkCompareL2fe(reference, h_CUBLAS, size_C, 1.0e-6f); + + if (resCUBLAS != true) { + printDiff(reference, h_CUBLAS, matrix_size.uiWC, matrix_size.uiHC, 100, + 1.0e-5f); + } + + printf("Comparing CUBLAS Matrix Multiply with CPU results: %s\n", + (true == resCUBLAS) ? "PASS" : "FAIL"); + + printf( + "\nNOTE: The CUDA Samples are not meant for performance measurements. " + "Results may vary when GPU Boost is enabled.\n"); + + // clean up memory + free(h_A); + free(h_B); + free(h_C); + free(reference); + sycl::free(d_A, dpct::get_default_queue()); + sycl::free(d_B, dpct::get_default_queue()); + sycl::free(d_C, dpct::get_default_queue()); + + if (resCUBLAS == true) { + return EXIT_SUCCESS; // return value = 1 + } else { + return EXIT_FAILURE; // return value = 0 + } +} + +//////////////////////////////////////////////////////////////////////////////// +// Program main +//////////////////////////////////////////////////////////////////////////////// +int main(int argc, char **argv) { + printf("[Matrix Multiply CUBLAS] - Starting...\n"); + + int devID = 0, sizeMult = 5; + sMatrixSize matrix_size; + + initializeCUDA(argc, argv, devID, sizeMult, matrix_size); + + int matrix_result = matrixMultiply(argc, argv, devID, matrix_size); + + return matrix_result; +} \ No newline at end of file diff --git a/DirectProgramming/C++SYCL/DenseLinearAlgebra/guided_matrix_mul_SYCLMigration/CMakeLists.txt b/DirectProgramming/C++SYCL/DenseLinearAlgebra/guided_matrix_mul_SYCLMigration/CMakeLists.txt new file mode 100644 index 0000000000..02c234ea83 --- /dev/null +++ b/DirectProgramming/C++SYCL/DenseLinearAlgebra/guided_matrix_mul_SYCLMigration/CMakeLists.txt @@ -0,0 +1,16 @@ +cmake_minimum_required (VERSION 3.4.0) + +set(CMAKE_CXX_COMPILER "icpx") + +project (guided_mamtrix_mul_cuBLAS_SYCL_Migration) +# Set default build type to RelWithDebInfo if not specified +if (NOT CMAKE_BUILD_TYPE) + message (STATUS "Default CMAKE_BUILD_TYPE not set using Release with Debug Info") + set (CMAKE_BUILD_TYPE "RelWithDebInfo" CACHE + STRING "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel" + FORCE) +endif () + +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) + +add_subdirectory (02_sycl_dpct_migrated) diff --git a/DirectProgramming/C++SYCL/DenseLinearAlgebra/guided_matrix_mul_SYCLMigration/License.txt b/DirectProgramming/C++SYCL/DenseLinearAlgebra/guided_matrix_mul_SYCLMigration/License.txt new file mode 100644 index 0000000000..9cde07f558 --- /dev/null +++ b/DirectProgramming/C++SYCL/DenseLinearAlgebra/guided_matrix_mul_SYCLMigration/License.txt @@ -0,0 +1,8 @@ +Copyright Intel Corporation + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + diff --git a/DirectProgramming/C++SYCL/DenseLinearAlgebra/guided_matrix_mul_SYCLMigration/README.md b/DirectProgramming/C++SYCL/DenseLinearAlgebra/guided_matrix_mul_SYCLMigration/README.md new file mode 100644 index 0000000000..f60ebdc8b4 --- /dev/null +++ b/DirectProgramming/C++SYCL/DenseLinearAlgebra/guided_matrix_mul_SYCLMigration/README.md @@ -0,0 +1,157 @@ +# `Matrix Multiplication cuBLAS Migrated` Sample + +The `Matrix Multiplication cuBLAS Migrated` sample is a sample illustrating GPU performance for matrix multiplication. This sample also shows how to use the migrated code in a high-performance performance way for matrix multiplication. + +| Area | Description +|:--- |:--- +| What you will learn | How to begin migrating CUDA code to a SYCL*-compliant equivalent +| Time to complete | 90 minutes +| Category | Code Optimization + +For more information on oneMKL and complete documentation of all oneMKL routines, see https://www.intel.com/content/www/us/en/developer/tools/oneapi/onemkl-documentation.html. + +## Purpose + +The sample source code using SYCL was migrated from CUDA source code for offloading computations to a GPU/CPU. The sample demonstrates how to migrate code to SYCL, optimize the migration steps, and improve processing time. + +The sample source files show the usage of oneMKL and performance for GPU/CPU. + +>**Note**: This sample is based on the [*CUDA Samples - CUDA Libraries*](https://github.com/NVIDIA/cuda-samples/tree/master/Samples/4_CUDA_Libraries/matrixMulCUBLAS) sample in the NVIDIA/cuda-samples GitHub repository. + +## Prerequisites + +| Optimized for | Description +|:--- |:--- +| OS | Ubuntu* 20.04 +| Hardware | 10th Gen Intel® processors or newer +| Software | Intel® oneAPI DPC++/C++ Compiler + +## Key Implementation Details + +This sample contains two sets of sources in the following folders: + +| Folder Name | Description +|:--- |:--- +| `01_sycl_dpct_output` | Contains output of Intel® DPC++ Compatibility Tool used to migrate SYCL-compliant code from CUDA code.
This SYCL code has some unmigrated or incorrectly generated code that has to be manually fixed before it is functional. (The code does not work as supplied.) +| `02_sycl_dpct_migrated` | Contains SYCL to CUDA migrated code generated by using the Intel® DPC++ Compatibility Tool with the manual changes implemented to make the code fully functional. + +## Set Environment Variables + +When working with the command-line interface (CLI), you should configure the oneAPI toolkits using environment variables. Set up your CLI environment by sourcing the `setvars` script every time you open a new terminal window. This practice ensures that your compiler, libraries, and tools are ready for development. + +## Build the `Matrix Multiplication cuBLAS Migrated` Sample + +> **Note**: If you have not already done so, set up your CLI +> environment by sourcing the `setvars` script in the root of your oneAPI installation. +> +> Linux*: +> - For system wide installations: `. /opt/intel/oneapi/setvars.sh` +> - For private installations: ` . ~/intel/oneapi/setvars.sh` +> - For non-POSIX shells, like csh, use the following command: `bash -c 'source /setvars.sh ; exec csh'` +> +> For more information on configuring environment variables, see *[Use the setvars Script with Linux* or macOS*](https://www.intel.com/content/www/us/en/develop/documentation/oneapi-programming-guide/top/oneapi-development-environment-setup/use-the-setvars-script-with-linux-or-macos.html)*. + +### On Linux* + +1. Change to the sample directory. +2. Build the samples. + ``` + $ mkdir build + $ cd build + $ cmake .. + $ make + ``` + + By default, this command sequence builds the version of the source code in the `02_sycl_dpct_migrated` folder. + +#### Troubleshooting + +If an error occurs, you can get more details by running `make` with +the `VERBOSE=1` argument: +``` +make VERBOSE=1 +``` +If you receive an error message, troubleshoot the problem using the **Diagnostics Utility for Intel® oneAPI Toolkits**. The diagnostic utility provides configuration and system checks to help find missing dependencies, permissions errors, and other issues. See the [Diagnostics Utility for Intel® oneAPI Toolkits User Guide](https://www.intel.com/content/www/us/en/develop/documentation/diagnostic-utility-user-guide/top.html) for more information on using the utility. + + +## Run the `Matrix Multiplication cuBLAS Migrated` Sample + +### On Linux + +Run the programs on a CPU or GPU. Each sample uses a default device, which in most cases is a GPU. + +1. Run the samples in the `02_sycl_dpct_migrated` folder. + ``` + make run_matrix_mul + ``` + +### Build and Run the `Matrix Multiplication cuBLAS Migrated` Sample in Intel® DevCloud (Optional) + +When running a sample in the Intel® DevCloud, you must specify the compute node (CPU, GPU, FPGA) and whether to run in batch or interactive mode. For more information, see the Intel® oneAPI Base Toolkit [Get Started Guide](https://devcloud.intel.com/oneapi/get_started/). + +#### Build and Run Samples in Batch Mode (Optional) + +You can submit build and run jobs through a Portable Bash Script (PBS). A job is a script that submitted to PBS through the `qsub` utility. By default, the `qsub` utility does not inherit the current environment variables or your current working directory, so you might need to submit jobs to configure the environment variables. To indicate the correct working directory, you can use either absolute paths or pass the `-d \` option to `qsub`. + +1. Open a terminal on a Linux* system. +2. Log in to Intel® DevCloud. + ``` + ssh devcloud + ``` +3. Download the samples. + ``` + git clone https://github.com/oneapi-src/oneAPI-samples.git + ``` +4. Change to the sample directory. +5. Configure the sample for a GPU node and choose the backend as OpenCL. + ``` + qsub -I -l nodes=1:gpu:ppn=2 -d . + export SYCL_DEVICE_FILTER=opencl:gpu + ``` + - `-I` (upper case I) requests an interactive session. + - `-l nodes=1:gpu:ppn=2` (lower case L) assigns one full GPU node. + - `-d .` makes the current folder as the working directory for the task. + + |Available Nodes |Command Options + |:--- |:--- + | GPU |`qsub -l nodes=1:gpu:ppn=2 -d .` + | CPU |`qsub -l nodes=1:xeon:ppn=2 -d .` + +6. Perform build steps as you would on Linux. +7. Run the programs. +8. Clean up the project files. + ``` + make clean + ``` +9. Disconnect from the Intel® DevCloud. + ``` + exit + ``` + +## Example Output + +This is example output if you built the default and ran `run_matrix_mul`. + +``` +[ 50%] Building CXX object 02_sycl_dpct_migrated/CMakeFiles/02_sycl_dpct_migrated.dir/src/matrixMulCUBLAS.cpp.o +[100%] Linking CXX executable ../bin/02_sycl_dpct_migrated +[100%] Built target 02_sycl_dpct_migrated +[Matrix Multiply CUBLAS] - Starting... +GPU Device 0: "Intel(R) Core(TM) i7-10610U CPU @ 1.80GHz" with compute capability 3.0 + +MatrixA(640,480), MatrixB(480,320), MatrixC(640,320) +Computing result using CUBLAS...done. +Performance= 3676.94 GFlop/s, Time= 0.053 msec, Size= 196608000 Ops +Computing result using host CPU...done. +Comparing CUBLAS Matrix Multiply with CPU results: PASS + +NOTE: The CUDA Samples are not meant for performance measurements. Results may vary when GPU Boost is enabled. +Built target run_matrix_mul +``` + +## License + +Code samples are licensed under the MIT license. See +[License.txt](https://github.com/oneapi-src/oneAPI-samples/blob/master/License.txt) for details. + +Third party program licenses are at [third-party-programs.txt](https://github.com/oneapi-src/oneAPI-samples/blob/master/third-party-programs.txt). diff --git a/DirectProgramming/C++SYCL/DenseLinearAlgebra/guided_matrix_mul_SYCLMigration/sample.json b/DirectProgramming/C++SYCL/DenseLinearAlgebra/guided_matrix_mul_SYCLMigration/sample.json new file mode 100644 index 0000000000..1277adf7d1 --- /dev/null +++ b/DirectProgramming/C++SYCL/DenseLinearAlgebra/guided_matrix_mul_SYCLMigration/sample.json @@ -0,0 +1,24 @@ +{ + "guid": "244EEBAA-F3A0-46FD-9305-26DEDAA48C90", + "name": "Matrix Multiplication cuBLAS Migrated", + "categories": ["Toolkit/oneAPI Direct Programming/C++SYCL"], + "description": "This sample shows the migration of a more complex matrix multiplication sample from cuBLAS to SYCL.", + "toolchain": [ "dpcpp" ], + "dependencies": [ "mkl" ], + "languages": [ { "cpp": {} } ], + "targetDevice": [ "CPU", "GPU" ], + "os": [ "linux" ], + "builder": [ "cmake" ], + "ciTests": { + "linux": [{ + "steps": [ + "mkdir build", + "cd build", + "cmake ..", + "make", + "make run_matrix_mul" + ] + }] + }, + "expertise": "Code Optimization" +} diff --git a/DirectProgramming/C++SYCL/DenseLinearAlgebra/guided_matrix_mul_SYCLMigration/third-party-programs.txt b/DirectProgramming/C++SYCL/DenseLinearAlgebra/guided_matrix_mul_SYCLMigration/third-party-programs.txt new file mode 100644 index 0000000000..1fac18875f --- /dev/null +++ b/DirectProgramming/C++SYCL/DenseLinearAlgebra/guided_matrix_mul_SYCLMigration/third-party-programs.txt @@ -0,0 +1,518 @@ +oneAPI Code Samples - Third Party Programs File + +This file contains the list of third party software ("third party programs") +contained in the Intel software and their required notices and/or license +terms. This third party software, even if included with the distribution of the +Intel software, may be governed by separate license terms, including without +limitation, third party license terms, other Intel software license terms, and +open source software license terms. These separate license terms govern your use +of the third party programs as set forth in the “third-party-programs.txt” or +other similarly named text file. + +Third party programs and their corresponding required notices and/or license +terms are listed below. + +-------------------------------------------------------------------------------- +1. n-digit-mnist + +Apache License 2.0 + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +-------------------------------------------------------------------------------- +2. GNU-EFI + Copyright (c) 1998-2000 Intel Corporation + +The files in the "lib" and "inc" subdirectories are using the EFI Application +Toolkit distributed by Intel at http://developer.intel.com/technology/efi + +This code is covered by the following agreement: + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + +Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + +Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL INTEL BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. THE EFI SPECIFICATION AND ALL OTHER INFORMATION +ON THIS WEB SITE ARE PROVIDED "AS IS" WITH NO WARRANTIES, AND ARE SUBJECT +TO CHANGE WITHOUT NOTICE. + +-------------------------------------------------------------------------------- +3. Edk2 + Copyright (c) 2019, Intel Corporation. All rights reserved. + + Edk2 Basetools + Copyright (c) 2019, Intel Corporation. All rights reserved. + +SPDX-License-Identifier: BSD-2-Clause-Patent + +-------------------------------------------------------------------------------- +4. Cuda-Samples + Copyright (c) 2022, NVIDIA CORPORATION. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of NVIDIA CORPORATION nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY +EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +-------------------------------------------------------------------------------- +5. Rodinia + Copyright (c)2008-2011 University of Virginia +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted without royalty fees or other restrictions, provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + * Neither the name of the University of Virginia, the Dept. of Computer Science, nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE UNIVERSITY OF VIRGINIA OR THE SOFTWARE AUTHORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +If you use this software or a modified version of it, please cite the most relevant among the following papers: + + - M. A. Goodrum, M. J. Trotter, A. Aksel, S. T. Acton, and K. Skadron. Parallelization of Particle Filter Algorithms. In Proceedings of the 3rd Workshop on Emerging Applications and Many-core Architecture (EAMA), in conjunction with the IEEE/ACM International +Symposium on Computer Architecture (ISCA), June 2010. + + - S. Che, M. Boyer, J. Meng, D. Tarjan, J. W. Sheaffer, Sang-Ha Lee and K. Skadron. +Rodinia: A Benchmark Suite for Heterogeneous Computing. IEEE International Symposium +on Workload Characterization, Oct 2009. + +- J. Meng and K. Skadron. "Performance Modeling and Automatic Ghost Zone Optimization +for Iterative Stencil Loops on GPUs." In Proceedings of the 23rd Annual ACM International +Conference on Supercomputing (ICS), June 2009. + +- L.G. Szafaryn, K. Skadron and J. Saucerman. "Experiences Accelerating MATLAB Systems +Biology Applications." in Workshop on Biomedicine in Computing (BiC) at the International +Symposium on Computer Architecture (ISCA), June 2009. + +- M. Boyer, D. Tarjan, S. T. Acton, and K. Skadron. "Accelerating Leukocyte Tracking using CUDA: +A Case Study in Leveraging Manycore Coprocessors." In Proceedings of the International Parallel +and Distributed Processing Symposium (IPDPS), May 2009. + +- S. Che, M. Boyer, J. Meng, D. Tarjan, J. W. Sheaffer, and K. Skadron. "A Performance +Study of General Purpose Applications on Graphics Processors using CUDA" Journal of +Parallel and Distributed Computing, Elsevier, June 2008. +-------------------------------------------------------------------------------- +6. Intel® Implicit SPMD Program Compiler (Intel® ISPC) - Renderkit samples + Copyright Intel Corporation + All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +7. Heat Transmission + +GNU LESSER GENERAL PUBLIC LICENSE +Version 3, 29 June 2007 + +Copyright © 2007 Free Software Foundation, Inc. + +Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. + +This version of the GNU Lesser General Public License incorporates the terms and conditions of version 3 of the GNU General Public License, supplemented by the additional permissions listed below. + +0. Additional Definitions. +As used herein, “this License” refers to version 3 of the GNU Lesser General Public License, and the “GNU GPL” refers to version 3 of the GNU General Public License. + +“The Library” refers to a covered work governed by this License, other than an Application or a Combined Work as defined below. + +An “Application” is any work that makes use of an interface provided by the Library, but which is not otherwise based on the Library. Defining a subclass of a class defined by the Library is deemed a mode of using an interface provided by the Library. + +A “Combined Work” is a work produced by combining or linking an Application with the Library. The particular version of the Library with which the Combined Work was made is also called the “Linked Version”. + +The “Minimal Corresponding Source” for a Combined Work means the Corresponding Source for the Combined Work, excluding any source code for portions of the Combined Work that, considered in isolation, are based on the Application, and not on the Linked Version. + +The “Corresponding Application Code” for a Combined Work means the object code and/or source code for the Application, including any data and utility programs needed for reproducing the Combined Work from the Application, but excluding the System Libraries of the Combined Work. + +1. Exception to Section 3 of the GNU GPL. +You may convey a covered work under sections 3 and 4 of this License without being bound by section 3 of the GNU GPL. + +2. Conveying Modified Versions. +If you modify a copy of the Library, and, in your modifications, a facility refers to a function or data to be supplied by an Application that uses the facility (other than as an argument passed when the facility is invoked), then you may convey a copy of the modified version: + +a) under this License, provided that you make a good faith effort to ensure that, in the event an Application does not supply the function or data, the facility still operates, and performs whatever part of its purpose remains meaningful, or +b) under the GNU GPL, with none of the additional permissions of this License applicable to that copy. +3. Object Code Incorporating Material from Library Header Files. +The object code form of an Application may incorporate material from a header file that is part of the Library. You may convey such object code under terms of your choice, provided that, if the incorporated material is not limited to numerical parameters, data structure layouts and accessors, or small macros, inline functions and templates (ten or fewer lines in length), you do both of the following: + +a) Give prominent notice with each copy of the object code that the Library is used in it and that the Library and its use are covered by this License. +b) Accompany the object code with a copy of the GNU GPL and this license document. +4. Combined Works. +You may convey a Combined Work under terms of your choice that, taken together, effectively do not restrict modification of the portions of the Library contained in the Combined Work and reverse engineering for debugging such modifications, if you also do each of the following: + +a) Give prominent notice with each copy of the Combined Work that the Library is used in it and that the Library and its use are covered by this License. +b) Accompany the Combined Work with a copy of the GNU GPL and this license document. +c) For a Combined Work that displays copyright notices during execution, include the copyright notice for the Library among these notices, as well as a reference directing the user to the copies of the GNU GPL and this license document. +d) Do one of the following: +0) Convey the Minimal Corresponding Source under the terms of this License, and the Corresponding Application Code in a form suitable for, and under terms that permit, the user to recombine or relink the Application with a modified version of the Linked Version to produce a modified Combined Work, in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source. +1) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (a) uses at run time a copy of the Library already present on the user's computer system, and (b) will operate properly with a modified version of the Library that is interface-compatible with the Linked Version. +e) Provide Installation Information, but only if you would otherwise be required to provide such information under section 6 of the GNU GPL, and only to the extent that such information is necessary to install and execute a modified version of the Combined Work produced by recombining or relinking the Application with a modified version of the Linked Version. (If you use option 4d0, the Installation Information must accompany the Minimal Corresponding Source and Corresponding Application Code. If you use option 4d1, you must provide the Installation Information in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source.) +5. Combined Libraries. +You may place library facilities that are a work based on the Library side by side in a single library together with other library facilities that are not Applications and are not covered by this License, and convey such a combined library under terms of your choice, if you do both of the following: + +a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities, conveyed under the terms of this License. +b) Give prominent notice with the combined library that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. +6. Revised Versions of the GNU Lesser General Public License. +The Free Software Foundation may publish revised and/or new versions of the GNU Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library as you received it specifies that a certain numbered version of the GNU Lesser General Public License “or any later version” applies to it, you have the option of following the terms and conditions either of that published version or of any later version published by the Free Software Foundation. If the Library as you received it does not specify a version number of the GNU Lesser General Public License, you may choose any version of the GNU Lesser General Public License ever published by the Free Software Foundation. + +If the Library as you received it specifies that a proxy can decide whether future versions of the GNU Lesser General Public License shall apply, that proxy's public statement of acceptance of any version is permanent authorization for you to choose that version for the Library. + +-------------------------------------------------------------------------------- +8. chart.js + Copyright (c) 2014-2021 Chart.js Contributors + + color + Copyright (c) 2018-2021 Jukka Kurkela + + Microsoft DirectX 11 Toolkit Engine Template: d3d11game_win32 + copyright 2015-2021 Microsoft Corp. + + Microsoft DirectX 11 Tutorial Wiki + + Nbody + (c) 2019 Fabio Baruffa + + Nothings/STB + Copyright (c) 2017 Sean Barrett + + Plotly.js + Copyright (c) 2020 Plotly, Inc + + pytracing + Copyright (c) 2015 Kris Wilson + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +-------------------------------------------------------------------------------- +9. Stream + +***NOTE: This is a modified version of Stream, hence sectin 3b of the license applies. + +* Copyright 1991-2003: John D. McCalpin +*----------------------------------------------------------------------- +* License: +* 1. You are free to use this program and/or to redistribute +* this program. +* 2. You are free to modify this program for your own use, +* including commercial use, subject to the publication +* restrictions in item 3. +* 3. You are free to publish results obtained from running this +* program, or from works that you derive from this program, +* with the following limitations: +* 3a. In order to be referred to as "STREAM benchmark results", +* published results must be in conformance to the STREAM +* Run Rules, (briefly reviewed below) published at +* http://www.cs.virginia.edu/stream/ref.html +* and incorporated herein by reference. +* As the copyright holder, John McCalpin retains the +* right to determine conformity with the Run Rules. +* 3b. Results based on modified source code or on runs not in +* accordance with the STREAM Run Rules must be clearly +* labelled whenever they are published. Examples of +* proper labelling include: +* "tuned STREAM benchmark results" +* "based on a variant of the STREAM benchmark code" +* Other comparable, clear and reasonable labelling is +* acceptable. +* 3c. Submission of results to the STREAM benchmark web site +* is encouraged, but not required. +* 4. Use of this program or creation of derived works based on this +* program constitutes acceptance of these licensing restrictions. +* 5. Absolutely no warranty is expressed or implied. + +-------------------------------------------------------------------------------- +10. FGPA example designs-gzip + + SDL2.0 + +zlib License + + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + +-------------------------------------------------------------------------------- +The following third party programs have their own third party program files as well. These additional third party program files are as follows: + +1. Intel® Implicit SPMD Program Compiler (Intel® ISPC) diff --git a/DirectProgramming/C++SYCL/DenseLinearAlgebra/matrix_mul/Makefile.win b/DirectProgramming/C++SYCL/DenseLinearAlgebra/matrix_mul/Makefile.win index 8c3f87e2aa..2b0ab048de 100644 --- a/DirectProgramming/C++SYCL/DenseLinearAlgebra/matrix_mul/Makefile.win +++ b/DirectProgramming/C++SYCL/DenseLinearAlgebra/matrix_mul/Makefile.win @@ -1,6 +1,6 @@ SYCL_CXX = icx-cl -SYCL_CXXFLAGS = /Zi /EHsc -SYCL_LDFLAGS = +SYCL_CXXFLAGS = -fsycl /Zi /EHsc +SYCL_LDFLAGS = SYCL_EXE_NAME = matrix_mul_sycl.exe SYCL_SOURCES = src/matrix_mul_sycl.cpp @@ -17,5 +17,5 @@ run: run_sycl: $(SYCL_EXE_NAME) -clean: +clean: del -rf $(SYCL_EXE_NAME) *.pdb diff --git a/DirectProgramming/C++SYCL/DenseLinearAlgebra/matrix_mul/src/matrix_mul_sycl.cpp b/DirectProgramming/C++SYCL/DenseLinearAlgebra/matrix_mul/src/matrix_mul_sycl.cpp index 6770860bb5..7383ca9fea 100644 --- a/DirectProgramming/C++SYCL/DenseLinearAlgebra/matrix_mul/src/matrix_mul_sycl.cpp +++ b/DirectProgramming/C++SYCL/DenseLinearAlgebra/matrix_mul/src/matrix_mul_sycl.cpp @@ -14,7 +14,7 @@ * relevant terms noted in the comments. */ -#include +#include #include #include diff --git a/DirectProgramming/C++SYCL/DenseLinearAlgebra/simple-add/README.md b/DirectProgramming/C++SYCL/DenseLinearAlgebra/simple-add/README.md index f986e0c499..0b84ee3b4d 100644 --- a/DirectProgramming/C++SYCL/DenseLinearAlgebra/simple-add/README.md +++ b/DirectProgramming/C++SYCL/DenseLinearAlgebra/simple-add/README.md @@ -22,9 +22,20 @@ USM, buffer, accessor, kernel, and command groups. | Optimized for | Description |:--- |:--- | OS | Ubuntu* 18.04
Windows* 10 -| Hardware | GEN9 or newer
Intel® Programmable Acceleration Card with Intel® Arria® 10 GX FPGA (Intel® PAC with Intel® Arria® 10 GX FPGA) +| Hardware | GEN9 or newer
Intel® Agilex®, Arria® 10, and Stratix® 10 FPGAs | Software | Intel® oneAPI DPC++/C++ Compiler + +> **Note**: Even though the Intel DPC++/C++ OneAPI compiler is enough to compile for CPU, GPU, FPGA emulation, generating FPGA reports and generating RTL for FPGAs, there are extra software requirements for the FPGA simulation flow and FPGA compiles. +> +> For using the simulator flow, Intel® Quartus® Prime Pro Edition and one of the following simulators must be installed and accessible through your PATH: +> - Questa*-Intel® FPGA Edition +> - Questa*-Intel® FPGA Starter Edition +> - ModelSim® SE +> +> When using the hardware compile flow, Intel® Quartus® Prime Pro Edition must be installed and accessible through your PATH. +> **Warning** Make sure you add the device files associated with the FPGA that you are targeting to your Intel® Quartus® Prime installation. + ## Key Implementation Details This sample provides examples of both buffers and USM implementations for simple side-by-side comparison. @@ -94,6 +105,19 @@ To learn more about the extensions and how to configure the oneAPI environment, cmake .. -DUSM=1 ``` + > **Note**: When building for FPGAs, the default FPGA family will be used (Intel® Agilex®). + > You can change the default target by using the command: + > ``` + > cmake .. -DFPGA_DEVICE= + > ``` + > + > Alternatively, you can target an explicit FPGA board variant and BSP by using the following command: + > ``` + > cmake .. -DFPGA_DEVICE=: + > ``` + > + > You will only be able to run an executable on the FPGA if you specified a BSP. + #### Build for CPU and GPU 1. Build the program. @@ -111,19 +135,23 @@ To learn more about the extensions and how to configure the oneAPI environment, ``` make fpga_emu ``` -2. Generate HTML performance reports. +2. Compile for simulation (fast compile time, targets simulator FPGA device): + ``` + make fpga_sim + ``` +3. Generate HTML performance reports. ``` make report ``` The reports reside at `simple-add_report.prj/reports/report.html`. -3. Compile the program for FPGA hardware. (Compiling for hardware can take a long +4. Compile the program for FPGA hardware. (Compiling for hardware can take a long time.) ``` make fpga ``` -4. Clean the program. (Optional) +5. Clean the program. (Optional) ``` make clean ``` @@ -149,6 +177,19 @@ time.) cmake -G "NMake Makefiles" .. -DUSM=1 ``` + > **Note**: When building for FPGAs, the default FPGA family will be used (Intel® Agilex®). + > You can change the default target by using the command: + > ``` + > cmake -G "NMake Makefiles" .. -DFPGA_DEVICE= + > ``` + > + > Alternatively, you can target an explicit FPGA board variant and BSP by using the following command: + > ``` + > cmake -G "NMake Makefiles" .. -DFPGA_DEVICE=: + > ``` + > + > You will only be able to run an executable on the FPGA if you specified a BSP. + #### Build for CPU and GPU 1. Build the program. @@ -168,19 +209,23 @@ time.) ``` nmake fpga_emu ``` -2. Generate HTML performance reports. +2. Compile for simulation (fast compile time, targets simulator FPGA device): + ``` + nmake fpga_sim + ``` +3. Generate HTML performance reports. ``` nmake report ``` The reports reside at `simple-add_report.prj/reports/report.html`. -3. Compile the program for FPGA hardware. (Compiling for hardware can take a long +4. Compile the program for FPGA hardware. (Compiling for hardware can take a long time.) ``` nmake fpga ``` -4. Clean the program. (Optional) +5. Clean the program. (Optional) ``` nmake clean ``` @@ -216,7 +261,12 @@ If you receive an error message, troubleshoot the problem using the **Diagnostic ./simple-add-buffers.fpga_emu ./simple-add-usm.fpga_emu ``` -3. Run on FPGA hardware. +3. Run on FPGA simulator. + ``` + CL_CONTEXT_MPSIM_DEVICE_INTELFPGA=1 ./simple-add-buffers.fpga_sim + CL_CONTEXT_MPSIM_DEVICE_INTELFPGA=1 ./simple-add-usm.fpga_sim + ``` +4. Run on FPGA hardware (only if you ran `cmake` with `-DFPGA_DEVICE=:`). ``` ./simple-add-buffers.fpga ./simple-add-usm.fpga @@ -243,7 +293,14 @@ If you receive an error message, troubleshoot the problem using the **Diagnostic simple-add-buffers.fpga_emu.exe simple-add-usm.fpga_emu.exe ``` -3. Run on FPGA hardware. +3. Run on FPGA simulator. + ``` + set CL_CONTEXT_MPSIM_DEVICE_INTELFPGA=1 + simple-add-buffers.fpga_sim.exe + simple-add-usm.fpga_sim.exe + set CL_CONTEXT_MPSIM_DEVICE_INTELFPGA= + ``` +4. Run on FPGA hardware (only if you ran `cmake` with `-DFPGA_DEVICE=:`). ``` simple-add-buffers.fpga.exe simple-add-usm.fpga.exe @@ -269,8 +326,8 @@ qsub -I -l nodes=1:gpu:ppn=2 -d . |Available Nodes |Command Options |:--- |:--- - |GPU |`qsub -l nodes=1:gpu:ppn=2 -d .` - |CPU |`qsub -l nodes=1:xeon:ppn=2 -d .` + |GPU |`qsub -l nodes=1:gpu:ppn=2 -d .` + |CPU |`qsub -l nodes=1:xeon:ppn=2 -d .` |FPGA Compile Time |`qsub -l nodes=1:fpga_compile:ppn=2 -d .` |FPGA Runtime (Arria 10) |`qsub -l nodes=1:fpga_runtime:arria10:ppn=2 -d .` diff --git a/DirectProgramming/C++SYCL/DenseLinearAlgebra/simple-add/src/CMakeLists.txt b/DirectProgramming/C++SYCL/DenseLinearAlgebra/simple-add/src/CMakeLists.txt index e40f21c606..3615ce2d81 100755 --- a/DirectProgramming/C++SYCL/DenseLinearAlgebra/simple-add/src/CMakeLists.txt +++ b/DirectProgramming/C++SYCL/DenseLinearAlgebra/simple-add/src/CMakeLists.txt @@ -48,24 +48,27 @@ add_custom_target(cpu-gpu DEPENDS ${TARGET_NAME}) # FPGA device selection if(NOT DEFINED FPGA_DEVICE) - set(FPGA_DEVICE "intel_a10gx_pac:pac_a10") + set(FPGA_DEVICE "Agilex") message(STATUS "FPGA_DEVICE was not specified.\ - \nConfiguring the design to run on the default FPGA device ${FPGA_DEVICE} (Intel(R) PAC with Intel Arria(R) 10 GX FPGA). \ - \nPlease refer to the README for information on device selection.") + \nConfiguring the design to target the default FPGA family (Intel Agilex®). \ + \nPlease refer to the README for information on board selection.") else() message(STATUS "Configuring the design to run on FPGA device ${FPGA_DEVICE}") endif() set(EMULATOR_TARGET ${TARGET_NAME}.fpga_emu) +set(SIMULATOR_TARGET ${TARGET_NAME}.fpga_sim) set(FPGA_TARGET ${TARGET_NAME}.fpga) # A DPC++ ahead-of-time (AoT) compile processes the device code in two stages. # 1. The "compile" stage compiles the device code to an intermediate representation (SPIR-V). # 2. The "link" stage invokes the compiler's FPGA backend before linking. # For this reason, FPGA backend flags must be passed as link flags in CMake. -set(EMULATOR_COMPILE_FLAGS "-fsycl -Wall -fintelfpga ${WIN_FLAG} -DFPGA_EMULATOR") +set(EMULATOR_COMPILE_FLAGS "-fsycl -fintelfpga -Wall ${WIN_FLAG} -DFPGA_EMULATOR") set(EMULATOR_LINK_FLAGS "-fsycl -fintelfpga") -set(HARDWARE_COMPILE_FLAGS "-fsycl -Wall -fintelfpga ${WIN_FLAG}") +set(SIMULATOR_COMPILE_FLAGS "-fsycl -fintelfpga -Wall ${WIN_FLAG} -Xssimulation -DFPGA_SIMULATOR") +set(SIMULATOR_LINK_FLAGS "-fsycl -fintelfpga -Xssimulation -Xsghdl -Xstarget=${FPGA_DEVICE} ${USER_HARDWARE_FLAGS}") +set(HARDWARE_COMPILE_FLAGS "-fsycl -fintelfpga -Wall ${WIN_FLAG} -DFPGA_HARDWARE") set(HARDWARE_LINK_FLAGS "-fsycl -fintelfpga -Xshardware -Xstarget=${FPGA_DEVICE} ${USER_HARDWARE_FLAGS}") # use cmake -D USER_HARDWARE_FLAGS= to set extra flags for FPGA backend compilation @@ -82,6 +85,19 @@ set_target_properties(${EMULATOR_TARGET} PROPERTIES COMPILE_FLAGS "${EMULATOR_CO set_target_properties(${EMULATOR_TARGET} PROPERTIES LINK_FLAGS "${EMULATOR_LINK_FLAGS}") add_custom_target(fpga_emu DEPENDS ${EMULATOR_TARGET}) +############################################################################### +### FPGA Simulator +############################################################################### +# To compile in a single command: +# icpx -fsycl -fintelfpga -Xssimulation -Xsghdl -Xstarget= -DFPGA_SIMULATOR .cpp -o .fpga_sim +# CMake executes: +# [compile] icpx -fsycl -fintelfpga -Xssimulation -DFPGA_SIMULATOR -o .cpp.o -c .cpp +# [link] icpx -fsycl -fintelfpga -Xssimulation -Xsghdl -Xstarget= .cpp.o -o .fpga_sim +add_executable(${SIMULATOR_TARGET} ${SOURCE_FILE}) +set_target_properties(${SIMULATOR_TARGET} PROPERTIES COMPILE_FLAGS "${SIMULATOR_COMPILE_FLAGS}") +set_target_properties(${SIMULATOR_TARGET} PROPERTIES LINK_FLAGS "${SIMULATOR_LINK_FLAGS}") +add_custom_target(fpga_sim DEPENDS ${SIMULATOR_TARGET}) + ############################################################################### ### Generate Report ############################################################################### diff --git a/DirectProgramming/C++SYCL/DenseLinearAlgebra/simple-add/src/simple-add-buffers.cpp b/DirectProgramming/C++SYCL/DenseLinearAlgebra/simple-add/src/simple-add-buffers.cpp index 19c2b81f13..fed9b39fb7 100644 --- a/DirectProgramming/C++SYCL/DenseLinearAlgebra/simple-add/src/simple-add-buffers.cpp +++ b/DirectProgramming/C++SYCL/DenseLinearAlgebra/simple-add/src/simple-add-buffers.cpp @@ -23,7 +23,7 @@ #include #include -#if FPGA || FPGA_EMULATOR +#if FPGA_HARDWARE || FPGA_EMULATOR || FPGA_SIMULATOR #include #endif @@ -84,13 +84,16 @@ int main() { // Create device selector for the device of your interest. #if FPGA_EMULATOR // Intel extension: FPGA emulator selector on systems without FPGA card. - ext::intel::fpga_emulator_selector d_selector; -#elif FPGA + auto selector = sycl::ext::intel::fpga_emulator_selector_v; +#elif FPGA_SIMULATOR + // Intel extension: FPGA simulator selector on systems without FPGA card. + auto selector = sycl::ext::intel::fpga_simulator_selector_v; +#elif FPGA_HARDWARE // Intel extension: FPGA selector on systems with FPGA card. - ext::intel::fpga_selector d_selector; + auto selector = sycl::ext::intel::fpga_selector_v; #else // The default device selector will select the most performant device. - auto d_selector{default_selector_v}; + auto selector = default_selector_v; #endif // Create array objects with "array_size" to store data. @@ -101,7 +104,7 @@ int main() { for (size_t i = 0; i < sequential.size(); i++) sequential[i] = value + i; try { - queue q(d_selector, exception_handler); + queue q(selector, exception_handler); // Print out the device information used for the kernel code. cout << "Running on device: " diff --git a/DirectProgramming/C++SYCL/DenseLinearAlgebra/simple-add/src/simple-add-usm.cpp b/DirectProgramming/C++SYCL/DenseLinearAlgebra/simple-add/src/simple-add-usm.cpp index 2cc1e441b9..7f35aaf573 100644 --- a/DirectProgramming/C++SYCL/DenseLinearAlgebra/simple-add/src/simple-add-usm.cpp +++ b/DirectProgramming/C++SYCL/DenseLinearAlgebra/simple-add/src/simple-add-usm.cpp @@ -23,7 +23,7 @@ #include #include -#if FPGA || FPGA_EMULATOR +#if FPGA_HARDWARE || FPGA_EMULATOR || FPGA_SIMULATOR #include #endif @@ -75,13 +75,16 @@ int main() { // Create device selector for the device of your interest. #if FPGA_EMULATOR // Intel extension: FPGA emulator selector on systems without FPGA card. - ext::intel::fpga_emulator_selector selector; -#elif FPGA + auto selector = sycl::ext::intel::fpga_emulator_selector_v; +#elif FPGA_SIMULATOR + // Intel extension: FPGA simulator selector on systems without FPGA card. + auto selector = sycl::ext::intel::fpga_simulator_selector_v; +#elif FPGA_HARDWARE // Intel extension: FPGA selector on systems with FPGA card. - ext::intel::fpga_selector selector; + auto selector = sycl::ext::intel::fpga_selector_v; #else // The default device selector will select the most performant device. - auto selector{default_selector_v}; + auto selector = default_selector_v; #endif constexpr int value = 100000; diff --git a/DirectProgramming/C++SYCL/DenseLinearAlgebra/vector-add/README.md b/DirectProgramming/C++SYCL/DenseLinearAlgebra/vector-add/README.md index 0e723987b5..f5d866c195 100755 --- a/DirectProgramming/C++SYCL/DenseLinearAlgebra/vector-add/README.md +++ b/DirectProgramming/C++SYCL/DenseLinearAlgebra/vector-add/README.md @@ -25,9 +25,19 @@ This sample provides example implementations of both Unified Shared Memory (USM) | Optimized for | Description |:--- |:--- | OS | Ubuntu* 18.04
Windows* 10 -| Hardware | GEN9 or newer
Intel® Programmable Acceleration Card with Intel® Arria® 10 GX FPGA (Intel® PAC with Intel® Arria® 10 GX FPGA) +| Hardware | GEN9 or newer
Intel® Agilex®, Arria® 10, and Stratix® 10 FPGAs | Software | Intel® oneAPI DPC++/C++ Compiler +> **Note**: Even though the Intel DPC++/C++ OneAPI compiler is enough to compile for CPU, GPU, FPGA emulation, generating FPGA reports and generating RTL for FPGAs, there are extra software requirements for the FPGA simulation flow and FPGA compiles. +> +> For using the simulator flow, Intel® Quartus® Prime Pro Edition and one of the following simulators must be installed and accessible through your PATH: +> - Questa*-Intel® FPGA Edition +> - Questa*-Intel® FPGA Starter Edition +> - ModelSim® SE +> +> When using the hardware compile flow, Intel® Quartus® Prime Pro Edition must be installed and accessible through your PATH. +> **Warning** Make sure you add the device files associated with the FPGA that you are targeting to your Intel® Quartus® Prime installation. + ## Key Implementation Details The basic SYCL implementation explained in the code includes device selector, USM, buffer, accessor, kernel, and command groups. @@ -94,6 +104,19 @@ To learn more about the extensions and how to configure the oneAPI environment, cmake .. -DUSM=1 ``` + > **Note**: When building for FPGAs, the default FPGA family will be used (Intel® Agilex®). + > You can change the default target by using the command: + > ``` + > cmake .. -DFPGA_DEVICE= + > ``` + > + > Alternatively, you can target an explicit FPGA board variant and BSP by using the following command: + > ``` + > cmake .. -DFPGA_DEVICE=: + > ``` + > + > You will only be able to run an executable on the FPGA if you specified a BSP. + #### Build for CPU and GPU 1. Build the program. @@ -111,19 +134,23 @@ To learn more about the extensions and how to configure the oneAPI environment, ``` make fpga_emu ``` -2. Generate HTML performance reports. +2. Compile for simulation (fast compile time, targets simulator FPGA device): + ``` + make fpga_sim + ``` +3. Generate HTML performance reports. ``` make report ``` The reports reside at `simple-add_report.prj/reports/report.html`. -3. Compile the program for FPGA hardware. (Compiling for hardware can take a long +4. Compile the program for FPGA hardware. (Compiling for hardware can take a long time.) ``` make fpga ``` -4. Clean the program. (Optional) +5. Clean the program. (Optional) ``` make clean ``` @@ -149,6 +176,19 @@ time.) cmake -G "NMake Makefiles" .. -DUSM=1 ``` + > **Note**: When building for FPGAs, the default FPGA family will be used (Intel® Agilex®). + > You can change the default target by using the command: + > ``` + > cmake -G "NMake Makefiles" .. -DFPGA_DEVICE= + > ``` + > + > Alternatively, you can target an explicit FPGA board variant and BSP by using the following command: + > ``` + > cmake -G "NMake Makefiles" .. -DFPGA_DEVICE=: + > ``` + > + > You will only be able to run an executable on the FPGA if you specified a BSP. + #### Build for CPU and GPU 1. Build the program. @@ -168,19 +208,23 @@ time.) ``` nmake fpga_emu ``` -2. Generate HTML performance reports. +2. Compile for simulation (fast compile time, targets simulator FPGA device): + ``` + nmake fpga_sim + ``` +3. Generate HTML performance reports. ``` nmake report ``` The reports reside at `simple-add_report.prj/reports/report.html`. -3. Compile the program for FPGA hardware. (Compiling for hardware can take a long +4. Compile the program for FPGA hardware. (Compiling for hardware can take a long time.) ``` nmake fpga ``` -4. Clean the program. (Optional) +5. Clean the program. (Optional) ``` nmake clean ``` @@ -221,7 +265,12 @@ The source files (`vector-add-buffers.cpp` and `vector-add-usm.cpp`) specify the ./vector-add-buffers.fpga_emu ./vector-add-usm.fpga_emu ``` -3. Run on FPGA hardware. +3. Run on FPGA simulator. + ``` + CL_CONTEXT_MPSIM_DEVICE_INTELFPGA=1 ./vector-add-buffers.fpga_sim + CL_CONTEXT_MPSIM_DEVICE_INTELFPGA=1 ./vector-add-usm.fpga_sim + ``` +4. Run on FPGA hardware (only if you ran `cmake` with `-DFPGA_DEVICE=:`). ``` ./vector-add-buffers.fpga ./vector-add-usm.fpga @@ -248,7 +297,14 @@ The source files (`vector-add-buffers.cpp` and `vector-add-usm.cpp`) specify the vector-add-buffers.fpga_emu.exe vector-add-usm.fpga_emu.exe ``` -3. Run on FPGA hardware. +3. Run on FPGA simulator. + ``` + set CL_CONTEXT_MPSIM_DEVICE_INTELFPGA=1 + vector-add-buffers.fpga_sim.exe + vector-add-usm.fpga_sim.exe + set CL_CONTEXT_MPSIM_DEVICE_INTELFPGA= + ``` +4. Run on FPGA hardware (only if you ran `cmake` with `-DFPGA_DEVICE=:`). ``` vector-add-buffers.fpga.exe vector-add-usm.fpga.exe diff --git a/DirectProgramming/C++SYCL/DenseLinearAlgebra/vector-add/src/CMakeLists.txt b/DirectProgramming/C++SYCL/DenseLinearAlgebra/vector-add/src/CMakeLists.txt index d88bf5b824..49f8f90699 100755 --- a/DirectProgramming/C++SYCL/DenseLinearAlgebra/vector-add/src/CMakeLists.txt +++ b/DirectProgramming/C++SYCL/DenseLinearAlgebra/vector-add/src/CMakeLists.txt @@ -48,24 +48,28 @@ add_custom_target(cpu-gpu DEPENDS ${TARGET_NAME}) # FPGA device selection if(NOT DEFINED FPGA_DEVICE) - set(FPGA_DEVICE "intel_a10gx_pac:pac_a10") + set(FPGA_DEVICE "Agilex") message(STATUS "FPGA_DEVICE was not specified.\ - \nConfiguring the design to run on the default FPGA device ${FPGA_DEVICE} (Intel(R) PAC with Intel Arria(R) 10 GX FPGA). \ - \nPlease refer to the README for information on device selection.") + \nConfiguring the design to target the default FPGA family (Intel Agilex®). \ + \nPlease refer to the README for information on board selection.") else() message(STATUS "Configuring the design to run on FPGA device ${FPGA_DEVICE}") endif() + set(EMULATOR_TARGET ${TARGET_NAME}.fpga_emu) +set(SIMULATOR_TARGET ${TARGET_NAME}.fpga_sim) set(FPGA_TARGET ${TARGET_NAME}.fpga) # A DPC++ ahead-of-time (AoT) compile processes the device code in two stages. # 1. The "compile" stage compiles the device code to an intermediate representation (SPIR-V). # 2. The "link" stage invokes the compiler's FPGA backend before linking. # For this reason, FPGA backend flags must be passed as link flags in CMake. -set(EMULATOR_COMPILE_FLAGS "-fsycl -Wall -fintelfpga -DFPGA_EMULATOR ${WIN_FLAG}") +set(EMULATOR_COMPILE_FLAGS "-fsycl -fintelfpga -Wall ${WIN_FLAG} -DFPGA_EMULATOR") set(EMULATOR_LINK_FLAGS "-fsycl -fintelfpga") -set(HARDWARE_COMPILE_FLAGS "-fsycl -Wall -fintelfpga -DFPGA ${WIN_FLAG}") +set(SIMULATOR_COMPILE_FLAGS "-fsycl -fintelfpga -Wall ${WIN_FLAG} -Xssimulation -DFPGA_SIMULATOR") +set(SIMULATOR_LINK_FLAGS "-fsycl -fintelfpga -Xssimulation -Xsghdl -Xstarget=${FPGA_DEVICE} ${USER_HARDWARE_FLAGS}") +set(HARDWARE_COMPILE_FLAGS "-fsycl -fintelfpga -Wall ${WIN_FLAG} -DFPGA_HARDWARE") set(HARDWARE_LINK_FLAGS "-fsycl -fintelfpga -Xshardware -Xstarget=${FPGA_DEVICE} ${USER_HARDWARE_FLAGS}") # use cmake -D USER_HARDWARE_FLAGS= to set extra flags for FPGA backend compilation @@ -82,6 +86,19 @@ set_target_properties(${EMULATOR_TARGET} PROPERTIES COMPILE_FLAGS "${EMULATOR_CO set_target_properties(${EMULATOR_TARGET} PROPERTIES LINK_FLAGS "${EMULATOR_LINK_FLAGS}") add_custom_target(fpga_emu DEPENDS ${EMULATOR_TARGET}) +############################################################################### +### FPGA Simulator +############################################################################### +# To compile in a single command: +# icpx -fsycl -fintelfpga -Xssimulation -Xsghdl -Xstarget= -DFPGA_SIMULATOR .cpp -o .fpga_sim +# CMake executes: +# [compile] icpx -fsycl -fintelfpga -Xssimulation -DFPGA_SIMULATOR -o .cpp.o -c .cpp +# [link] icpx -fsycl -fintelfpga -Xssimulation -Xsghdl -Xstarget= .cpp.o -o .fpga_sim +add_executable(${SIMULATOR_TARGET} ${SOURCE_FILE}) +set_target_properties(${SIMULATOR_TARGET} PROPERTIES COMPILE_FLAGS "${SIMULATOR_COMPILE_FLAGS}") +set_target_properties(${SIMULATOR_TARGET} PROPERTIES LINK_FLAGS "${SIMULATOR_LINK_FLAGS}") +add_custom_target(fpga_sim DEPENDS ${SIMULATOR_TARGET}) + ############################################################################### ### Generate Report ############################################################################### diff --git a/DirectProgramming/C++SYCL/DenseLinearAlgebra/vector-add/src/vector-add-buffers.cpp b/DirectProgramming/C++SYCL/DenseLinearAlgebra/vector-add/src/vector-add-buffers.cpp index 4c895637b5..8896fdffdc 100755 --- a/DirectProgramming/C++SYCL/DenseLinearAlgebra/vector-add/src/vector-add-buffers.cpp +++ b/DirectProgramming/C++SYCL/DenseLinearAlgebra/vector-add/src/vector-add-buffers.cpp @@ -23,7 +23,7 @@ #include #include #include -#if FPGA || FPGA_EMULATOR +#if FPGA_HARDWARE || FPGA_EMULATOR || FPGA_SIMULATOR #include #endif @@ -109,13 +109,16 @@ int main(int argc, char* argv[]) { // Create device selector for the device of your interest. #if FPGA_EMULATOR // Intel extension: FPGA emulator selector on systems without FPGA card. - ext::intel::fpga_emulator_selector d_selector; -#elif FPGA + auto selector = sycl::ext::intel::fpga_emulator_selector_v; +#elif FPGA_SIMULATOR + // Intel extension: FPGA simulator selector on systems without FPGA card. + auto selector = sycl::ext::intel::fpga_simulator_selector_v; +#elif FPGA_HARDWARE // Intel extension: FPGA selector on systems with FPGA card. - ext::intel::fpga_selector d_selector; + auto selector = sycl::ext::intel::fpga_selector_v; #else // The default device selector will select the most performant device. - auto d_selector{default_selector_v}; + auto selector = default_selector_v; #endif // Create vector objects with "vector_size" to store the input and output data. @@ -130,7 +133,7 @@ int main(int argc, char* argv[]) { InitializeVector(b); try { - queue q(d_selector, exception_handler); + queue q(selector, exception_handler); // Print out the device information used for the kernel code. std::cout << "Running on device: " diff --git a/DirectProgramming/C++SYCL/DenseLinearAlgebra/vector-add/src/vector-add-usm.cpp b/DirectProgramming/C++SYCL/DenseLinearAlgebra/vector-add/src/vector-add-usm.cpp index d4b4648831..ba28b09713 100755 --- a/DirectProgramming/C++SYCL/DenseLinearAlgebra/vector-add/src/vector-add-usm.cpp +++ b/DirectProgramming/C++SYCL/DenseLinearAlgebra/vector-add/src/vector-add-usm.cpp @@ -23,7 +23,7 @@ #include #include #include -#if FPGA || FPGA_EMULATOR +#if FPGA_HARDWARE || FPGA_EMULATOR || FPGA_SIMULATOR #include #endif @@ -83,17 +83,20 @@ int main(int argc, char* argv[]) { // Create device selector for the device of your interest. #if FPGA_EMULATOR // Intel extension: FPGA emulator selector on systems without FPGA card. - ext::intel::fpga_emulator_selector d_selector; -#elif FPGA + auto selector = sycl::ext::intel::fpga_emulator_selector_v; +#elif FPGA_SIMULATOR + // Intel extension: FPGA simulator selector on systems without FPGA card. + auto selector = sycl::ext::intel::fpga_simulator_selector_v; +#elif FPGA_HARDWARE // Intel extension: FPGA selector on systems with FPGA card. - ext::intel::fpga_selector d_selector; + auto selector = sycl::ext::intel::fpga_selector_v; #else // The default device selector will select the most performant device. - auto d_selector{default_selector_v}; + auto selector = default_selector_v; #endif try { - queue q(d_selector, exception_handler); + queue q(selector, exception_handler); // Print out the device information used for the kernel code. std::cout << "Running on device: " diff --git a/DirectProgramming/C++SYCL/GraphAlgorithms/all-pairs-shortest-paths/src/apsp.cpp b/DirectProgramming/C++SYCL/GraphAlgorithms/all-pairs-shortest-paths/src/apsp.cpp index 64bbf92c43..3734581409 100644 --- a/DirectProgramming/C++SYCL/GraphAlgorithms/all-pairs-shortest-paths/src/apsp.cpp +++ b/DirectProgramming/C++SYCL/GraphAlgorithms/all-pairs-shortest-paths/src/apsp.cpp @@ -7,7 +7,7 @@ // SPDX-License-Identifier: MIT // ============================================================= -#include +#include #include #include #include diff --git a/DirectProgramming/C++SYCL/GraphTraversal/bitonic-sort/CMakeLists.txt b/DirectProgramming/C++SYCL/GraphTraversal/bitonic-sort/CMakeLists.txt index 2406eee398..657b7f10b4 100644 --- a/DirectProgramming/C++SYCL/GraphTraversal/bitonic-sort/CMakeLists.txt +++ b/DirectProgramming/C++SYCL/GraphTraversal/bitonic-sort/CMakeLists.txt @@ -3,7 +3,7 @@ cmake_minimum_required(VERSION 3.5) if(WIN32) - set(CMAKE_CXX_COMPILER "dpcpp-cl") + set(CMAKE_CXX_COMPILER "icx-cl") else() set(CMAKE_CXX_COMPILER "icpx") endif() diff --git a/DirectProgramming/C++SYCL/GraphTraversal/bitonic-sort/src/bitonic-sort.cpp b/DirectProgramming/C++SYCL/GraphTraversal/bitonic-sort/src/bitonic-sort.cpp index 1f37d473b1..5572aa74c4 100644 --- a/DirectProgramming/C++SYCL/GraphTraversal/bitonic-sort/src/bitonic-sort.cpp +++ b/DirectProgramming/C++SYCL/GraphTraversal/bitonic-sort/src/bitonic-sort.cpp @@ -38,7 +38,6 @@ #include #include #include -#include // dpc_common.hpp can be found in the dev-utilities include folder. // e.g., $ONEAPI_ROOT/dev-utilities//include/dpc_common.hpp diff --git a/DirectProgramming/C++SYCL/GraphTraversal/hidden-markov-models/CMakeLists.txt b/DirectProgramming/C++SYCL/GraphTraversal/hidden-markov-models/CMakeLists.txt index 07f1b53beb..d603c80a1d 100644 --- a/DirectProgramming/C++SYCL/GraphTraversal/hidden-markov-models/CMakeLists.txt +++ b/DirectProgramming/C++SYCL/GraphTraversal/hidden-markov-models/CMakeLists.txt @@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.5) if(WIN32) - set(CMAKE_CXX_COMPILER "dpcpp-cl") + set(CMAKE_CXX_COMPILER "icx-cl") else() set(CMAKE_CXX_COMPILER "icpx") endif() diff --git a/DirectProgramming/C++SYCL/GraphTraversal/hidden-markov-models/src/hidden-markov-models.cpp b/DirectProgramming/C++SYCL/GraphTraversal/hidden-markov-models/src/hidden-markov-models.cpp index 26892dcb29..b6706ee5bc 100644 --- a/DirectProgramming/C++SYCL/GraphTraversal/hidden-markov-models/src/hidden-markov-models.cpp +++ b/DirectProgramming/C++SYCL/GraphTraversal/hidden-markov-models/src/hidden-markov-models.cpp @@ -24,7 +24,7 @@ // Note: The implementation uses logarithms of the probabilities to process small numbers correctly // and to replace multiplication operations with addition operations. -#include +#include #include #include #include @@ -47,19 +47,19 @@ constexpr int M = 20; constexpr int T = 20; // The parameter for generating the sequence. constexpr int seed = 0; -// Minimal double to initialize logarithms for Viterbi values equal to 0. -constexpr double MIN_DOUBLE = -1.0 * std::numeric_limits::max(); +// Minimal float to initialize logarithms for Viterbi values equal to 0. +constexpr float MIN_FLOAT = -1.0 * std::numeric_limits::max(); -bool ViterbiCondition(double x, double y, double z, double compare); +bool ViterbiCondition(float x, float y, float z, float compare); int main() { try { // Initializing and generating initial probabilities for the hidden states. - double(*pi) = new double[N]; + float(*pi) = new float[N]; for (int i = 0; i < N; ++i) { pi[i] = sycl::log10(1.0f / N); } - buffer pi_buf(pi, N); + buffer pi_buf(pi, N); //Device initialization. queue q(default_selector_v); @@ -67,17 +67,17 @@ int main() { << q.get_device().get_platform().get_info() << "\n"; //Buffers initialization. - buffer viterbi(range<2>(N, T)); + buffer viterbi(range<2>(N, T)); buffer back_pointer(range<2>(N, T)); - buffer a(range<2>(N, N)); - buffer b(range<2>(N, M)); + buffer a(range<2>(N, N)); + buffer b(range<2>(N, M)); // Generating transition matrix A for the Markov process. q.submit([&](handler& h) { auto a_acc = a.get_access(h); h.parallel_for(range<2>(N, N), [=](id<2> index) { // The sum of the probabilities in each row of the matrix A has to be equal to 1. - double prob = 1.0f / N; + float prob = 1.0f / N; // The algorithm computes logarithms of the probability values to improve small numbers processing. a_acc[index] = sycl::log10(prob); }); @@ -88,9 +88,9 @@ int main() { auto b_acc = b.get_access(h); h.parallel_for(range<2>(N, M), [=](id<2> index) { // The sum of the probabilities in each row of the matrix B has to be equal to 1. - double prob = ((index[0] + index[1]) % M) * 2.0f / M / (M - 1); + float prob = ((index[0] + index[1]) % M) * 2.0f / M / (M - 1); // The algorithm computes logarithms of the probability values to improve small numbers processing. - b_acc[index] = (prob == 0.0f) ? MIN_DOUBLE : sycl::log10(prob); + b_acc[index] = (prob == 0.0f) ? MIN_FLOAT : sycl::log10(prob); }); }); @@ -113,7 +113,7 @@ int main() { int j = index[1]; // At starting point only the first Viterbi values are defined and these Values are substituted // with logarithms due to the following equation: log(x*y) = log(x) + log(y). - v_acc[index] = (j != 0) ? MIN_DOUBLE : pi_acc[i] + b_acc[i][seq_acc[0]]; + v_acc[index] = (j != 0) ? MIN_FLOAT : pi_acc[i] + b_acc[i][seq_acc[0]]; // Default values of all the back pointers are (-1) to show that they are not determined yet. b_ptr_acc[index] = -1; }); @@ -147,7 +147,7 @@ int main() { auto v_acc = viterbi.get_access(); auto b_ptr_acc = back_pointer.get_access(); auto vit_path_acc = vit_path.get_access(); - double v_max = MIN_DOUBLE; + float v_max = MIN_FLOAT; // Constructing the Viterbi path. The last state of this path is the one with // the biggest Viterbi value (the most likely state). for (int i = 0; i < N; ++i) { @@ -180,8 +180,8 @@ int main() { } // The method checks if all three components of the sum are not equivalent to logarithm of zero -// (that is incorrect value and is substituted with minimal possible value of double) and that +// (that is incorrect value and is substituted with minimal possible value of float) and that // the Viterbi value on the new step exceeds the current one. -bool ViterbiCondition(double x, double y, double z, double compare) { - return (x > MIN_DOUBLE) && (y > MIN_DOUBLE) && (z > MIN_DOUBLE) && (x + y + z > compare); +bool ViterbiCondition(float x, float y, float z, float compare) { + return (x > MIN_FLOAT) && (y > MIN_FLOAT) && (z > MIN_FLOAT) && (x + y + z > compare); } diff --git a/DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/00_SYCL_Migration_Introduction/00_SYCL_Migration_Introduction.ipynb b/DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/00_SYCL_Migration_Introduction/00_SYCL_Migration_Introduction.ipynb new file mode 100755 index 0000000000..8236cd4526 --- /dev/null +++ b/DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/00_SYCL_Migration_Introduction/00_SYCL_Migration_Introduction.ipynb @@ -0,0 +1,281 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "6f19683b-aa62-4c76-a8b2-e08d62fd43c7", + "metadata": { + "tags": [] + }, + "source": [ + "# SYCL Migration - Introduction" + ] + }, + { + "cell_type": "markdown", + "id": "0e5c267a-65b0-42eb-9d1d-b1d1b844c684", + "metadata": {}, + "source": [ + "##### Sections\n", + "- [Accelerating Choice with SYCL](#Accelerating-Choice-with-SYCL)\n", + "- [CUDA vs SYCL - Program Structure](CUDA-vs-SYCL---Program-Structure)\n", + "- [CUDA vs SYCL - Execution Model](CUDA-vs-SYCL---Execution-Model)\n", + "- [SYCLomatic Tool Introduction](SYCLomatic-Tool-Introduction)\n", + "- [Migration Workflow Overview](Migration-Workflow-Overview)\n", + "- [Tips for Migrating CUDA to SYCL using SYCLomatic](#Tips-for-Migrating-CUDA-to-SYCL-using-SYCLomatic)" + ] + }, + { + "cell_type": "markdown", + "id": "ce394c64-beab-429b-bb26-d3a44c8e49d7", + "metadata": {}, + "source": [ + "## Learning Objectives\n", + "* Explain the advantages of using C++ SYCL language to program for accelerators\n", + "* Explain the program structure and execution model differences with CUDA and SYCL\n", + "* Setup and explain migration flow with SYCLomatic Tool" + ] + }, + { + "cell_type": "markdown", + "id": "a560f954-d369-419f-94c7-18030debc0cc", + "metadata": {}, + "source": [ + "## Accelerating Choice with SYCL\n", + "\n", + "C++ and SYCL deliver a unified programming model, performance portability, and C++ alignment for applications using accelerators from differnet vendors. C++ with SYCL programming language offers many advantages:\n", + "\n", + "- Open, standards-based\n", + "- Multiarchitecture performance \n", + "- Freedom from vendor lock-in\n", + "- Comparable performance to native CUDA on Nvidia GPUs\n", + "- Extension of widely used C++ language\n" + ] + }, + { + "cell_type": "markdown", + "id": "348f3725-920c-4635-b39c-52c4ec9b04d3", + "metadata": {}, + "source": [ + "## CUDA vs SYCL - Program Structure\n", + "\n", + "NVIDIA introduced CUDA, which originally stood for “Compute Unified Device Architecture,” a purpose parallel computing platform and programming model. NVIDIA GPUs can solve many complex computational problems.\n", + "\n", + "A CUDA program is comprised of two primary components: a host and a GPU kernel. Host code runs locally on a CPU, while the GPU kernel codes are GPU functions that run on GPU devices. Kernel execution can be completely independent of host execution.\n", + "\n", + "SYCL (pronounced “sickle”) is a cross-platform abstraction of C++ programming model for OpenCL, introduced by Khronos Group. SYCL derives its device execution and memory models from the OpenCL kernel programming language.\n", + "\n", + "The single-source programming model in SYCL allows the kernel code to be embedded in the host code. SYCL also a supports single-source multiple-compiler passes technique, which allows a single-source code to be parsed by multiple compilers for generating device binaries. SYCL memory objects can be created in the form of buffers, sub-buffers, and images.\n", + "\n", + "## CUDA vs SYCL - Execution Model\n", + "\n", + "The CUDA execution model will expose an abstract view of NVIDIA GPU architecture. According to CUDA programming guidelines, all devices should preserve the same fundamental concepts. An NVIDIA GPU is built as a streaming multiprocessor (SM). An SM in a GPU is responsible for executing groups of threads. When one group of a thread is allocated to one SM, the threads that are left over will remain until their lifetime. Each SM consists of a set of cores, shred memory, registers, and a scheduler unit.\n", + "\n", + "The CUDA thread hierarchy is composed of a grid of thread blocks, which consist of a set of execution threads on the same SM. Each thread block has its own block ID within the grid and the thread can be one-, two-, or three-dimensional. A grid is an array of thread blocks launched by a kernel that reads inputs and writes results to global memory. A grid can also be one-, two-, or three-dimensional.\n", + "\n", + "In SYCL, work is described as a command group (CG). CGs are submitted to the SYCL queue through a submit function. When the CG is submitted to the queue, the SYCL runtime will analyze for data dependencies and schedule the execution. The SYCL thread hierarchy can be one-, two-, or three-dimensional sets of work items called an ND-range. A work item is a single thread within a thread hierarchy. These work items are equally sized of same dimensionality called work groups. A work group can be a one-, two- or three-dimensional set of threads within a thread hierarchy. ND-range is composed of three components; global range, local range, and number of work groups." + ] + }, + { + "cell_type": "markdown", + "id": "b358c245-7fa8-474f-a261-c100fb205bce", + "metadata": {}, + "source": [ + "## SYCLomatic Tool Introduction\n", + "\n", + "The SYCLomatic Tool is an open-source tool available on [Github](https://github.com/oneapi-src/SYCLomatic). Daily builds are available on Github releases, which needs to be downloaded and installed on your CUDA development machine.\n", + "\n", + "The SYCLomatic Tool assists in the migration of a developer's program that is written in CUDA to a program written in SYCL.\n", + "\n", + "Visit the [SYCLomatic Tool Github Readme](https://github.com/oneapi-src/SYCLomatic) for additional information about the tool. Visit the Release Notes for known issues and the most up-to-date information.\n", + "\n", + "

\n", + "**NOTE:** Migration will result in a project that is not entirely converted. Additional work, as outlined by the output of the SYCLomatic Tool, is required to complete the conversion.

" + ] + }, + { + "cell_type": "markdown", + "id": "2a05b0e2-bc9c-422a-99cb-cb0c351af69e", + "metadata": { + "tags": [] + }, + "source": [ + "## Migration Workflow Overview\n", + "\n", + "In most cases, migration of a user’s CUDA source code to SYCL code with the SYCLomatic Tool can be divided in to three stages: preparation, migration, and review.\n", + "\n", + "\n", + "\n", + "In the preparation stage, the project directory is cleaned, compile options are noted, and in some cases, source files may need to be modified. For most makefile-based projects, we recommend running the intercept-build script, which tracks and saves the compilation commands, compilation flags, and options automatically in a JSON file. For Microsoft Visual Studio projects, ensure the .vcxproj file exists, which can be passed to the `SYCLomatic` migration tool to keep track of project options. For simple projects, compile options and macros could be manually specified when running `c2s`. When running an intercept-build in a command line, specify the build command.\n", + "\n", + "```intercept-build make```\n", + "\n", + "In the migration stage, the SYCLomatic Tool executable `c2s` is run. It takes in the original application as an input, analyzes its headers and sources as well as the generated compile_commands.json if it exists, and outputs SYCL code and reports.\n", + "\n", + "```c2s -p ./ --in-root ./ --out-root output *.cu```\n", + "\n", + "If intercept-build was not run, compile options can also be specified manually as c2s arguments.\n", + "\n", + "```c2s --out-root=output source.cu –extra-arg=”-I./include” --extra-arg=”-DBUILD_CUDA”```\n", + "\n", + "In the final review stage, manual verification and edits are required. For parts of the code that the SYCLomatic Tool is unable to migrate, the user will need to fix the migrated code and ensure that it is correct. For portions of code that require manual intervention, SYCLomatic messages are logged in as comments in the migrated source files for easy discovery. For information on manually completing the migration process based on the SYCLomatic messages, refer to the [Diagnostics Reference of the SYCLomatic Tool User Guide](https://software.intel.com/content/www/us/en/develop/documentation/intel-dpcpp-compatibility-tool-user-guide/top/diagnostics-reference.html).\n", + "\n", + "The following diagram illustrates the workflow and the files generated when using the SYCLomatic Tool.\n", + "\n", + "" + ] + }, + { + "cell_type": "markdown", + "id": "ace319b9-90db-4139-9498-47c9202ce49c", + "metadata": {}, + "source": [ + "## Tips for Migrating CUDA to SYCL using SYCLomatic\n", + "\n", + "The sections below include useful tips to get started with migration from CUDA to SYCL using SYCLomatic Tool\n", + "\n", + "### CUDA Development Machine – Sanity Check\n", + "\n", + "You will need a CUDA development machine to migrate CUDA source to SYCL source. CUDA development should have a CUDA SDK installed and be able to compile and run CUDA code. The steps below will help you to check that you have the right configuration to proceed:\n", + "\n", + "- Run `nvidia-smi` in terminal\n", + " - `nvidia-smi`\n", + " - check that driver version is displayed, Nvidia card is detected, and CUDA version is displayed\n", + "- Check CUDA headers in install path\n", + " - Default installation path is `/usr/local/cuda/include`\n", + " - If CUDA is installed in non-default path, make a note of path, you will need it later\n", + "- Check that you are able to compile a simple CUDA code\n", + " - `nvcc --help`\n", + " - `nvcc test.cu`\n", + "\n", + "### Installing SYCLomatic\n", + "\n", + "The SYCLomatic Tool is installed on your CUDA development machine where you will be running the tool to migrate CUDA code to SYCL code.\n", + "\n", + "- Go to https://github.com/oneapi-src/SYCLomatic/releases\n", + " - Under Assets\n", + " - Copy web link to `linux_release.tgz`\n", + "- On you CUDA Development machine:\n", + " - In home directory or anywhere: `mkdir syclomatic; cd syclomatic`\n", + " - `wget `\n", + " - `tar –xvf linux_release.tgz`\n", + " - `export PATH=“/home/$USER/syclomatic/bin:$PATH”`\n", + " - `c2s --version`\n", + " \n", + "### SYCLomatic tool usage\n", + "\n", + "Below are some useful command-line options of the SYCLomatic Tool (`c2s`). Check `c2s --help` for full list of all options.\n", + "\n", + "- Migrate a single CUDA source file:\n", + " - `c2s test.cu`\n", + "- Migrate a single CUDA source file and copy all syclomatic helper header files:\n", + " - `c2s test.cu --use-custom-helper=all/file/api`\n", + "- Migrate a single CUDA source to a specific directory name\n", + " - `c2s test.cu --out-root sycl_code`\n", + "- Migrate a single CUDA source with source root tree\n", + " - `c2s test.cu --in-root ../..`\n", + "- Migrate a single CUDA source with custom CUDA installation\n", + " - `c2s test.cu --cuda-include-path /tmp/cuda/include`\n", + "- Migrate a CUDA project with makefile:\n", + " - `intercept-build make`\n", + " - `c2s -p compile_command.json`\n", + "\n", + "\n", + "### Compiling SYCL on Intel and Other hardware\n", + "\n", + "- Install __Intel oneAPI C++/DPC++ Compiler__ or __Intel oneAPI Base Toolkit__\n", + "- Install CUDA Plugin for oneAPI from CodePlay \n", + "- Link to [Installation Instructions](https://developer.codeplay.com/products/oneapi/nvidia/2023.0.0/guides/get-started-guide-nvidia)\n", + "\n", + "- Set environment variable for using the Compiler\n", + " - `source /opt/intel/oneapi/setvars.sh --include-intel-llvm`\n", + "\n", + "- Compile SYCL for Intel CPUs/GPUs\n", + " - `icpx –fsycl test.cpp`\n", + "\n", + "- Compile SYCL for Nvidia* GPUs\n", + " - `clang++ -fsycl -fsycl-targets=nvptx64-nvidia-cuda test.cpp`\n", + "\n", + "### Program Structure of Migrated SYCL code\n", + "\n", + "The SYCLomatic migrated code will use SYCL functions and methods to get functionality of CUDA APIs. The SYCL Specification has more information about all the SYCL classes, functions, and methods.\n", + "\n", + "#### dpct/dpct.hpp header file\n", + "\n", + "The migrated code will use the header file `dpct/dpct.hpp` that has helper functions, which is a wrapper for SYCL calls. The SYCLomatic (`c2s`) option `--use-custom-helper=api` used during migration will include all the helper functions used in migrated code in a folder called `include` under the output folder. The header files with all helper functions are also available in the `include` folder of the SYCLomatic installation.\n", + "\n", + "#### In order queue property\n", + "\n", + "By default, The SYCLomatic migrated code creates `sycl::queue` with `in_order` property. If the application has multiple kernels submitted and if they have no data dependency, you may be able to get more performance by allowing concurrent execution of kernels by removing `in_order` queue property.\n", + "\n", + "The code used to create `sycl::queue` in SYCLomatic migrated code will look as shown below:\n", + "\n", + "```cpp\n", + " dpct::device_ext &dev_ct1 = dpct::get_current_device();\n", + " sycl::queue &q_ct1 = dev_ct1.default_queue();\n", + "```\n", + "\n", + "The above code is using `dpct` helper functions to create a `sycl::queue` with the in_order queue property. The above code can be re-written without the `dpct` helper function, as show below:\n", + "\n", + "```cpp\n", + " sycl::queue q_ct1(sycl::property::queue::in_order());\n", + "```\n", + "If you plan to allow out-of-order execution of kernels and concurrent execution of kernels, you will have to remove the in_order queue property, as shown below:\n", + "\n", + "```cpp\n", + " sycl::queue q_ct1;\n", + "```\n", + "\n", + "Note that removing the `in_order` queue property may result in data race conditions if there are any data dependencies between the kernels. You may have to analyze the kernel code and add event-based dependencies where necessary.\n", + "\n", + "#### Device selection\n", + "\n", + "By default, the device selector used for execution of kernels is `sycl::default_selector_v`, which may use a GPU or CPU. If you want the kernels to execute on GPU only, you will have to add `sycl::gpu_selector_v` during `sycl::queue` creation, as show below:\n", + "\n", + "```cpp\n", + " sycl::queue q_ct1(sycl::gpu_selector_v);\n", + "\n", + "OR\n", + "\n", + " sycl::queue q_ct1{sycl::gpu_selector_v, sycl::property::queue::in_order()};\n", + "```\n", + "\n", + "Re-write the `sycl::queue` creation code in the SYCLomatic migrated code based on your preference." + ] + }, + { + "cell_type": "markdown", + "id": "ecfee447-1dbf-40f3-91a0-c4a0c80cd5e0", + "metadata": {}, + "source": [ + "## Reference\n", + "\n", + "- [SYCLomatic Tool Download](https://github.com/oneapi-src/SYCLomatic/releases)\n", + "- [One Stop Portal for CUDA to SYCL Migration](https://www.intel.com/content/www/us/en/developer/tools/oneapi/training/migrate-from-cuda-to-cpp-with-sycl.html)\n", + "- [SYCL2020 Spectifcation](https://registry.khronos.org/SYCL/specs/sycl-2020/pdf/sycl-2020.pdf)\n", + "- [SYCL Code Samples](https://github.com/oneapi-src/oneAPI-samples/tree/master/DirectProgramming/C%2B%2BSYCL)\n", + "- [Intel GPU Optimization Guide](https://www.intel.com/content/www/us/en/develop/documentation/oneapi-gpu-optimization-guide/top.html)\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (Intel® oneAPI 2023.0)", + "language": "python", + "name": "c009-intel_distribution_of_python_3_oneapi-beta05-python" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.15" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/00_SYCL_Migration_Introduction/assets/steps.png b/DirectProgramming/C++SYCL/Jupyter/cuda-to-sycl-migration-training/00_SYCL_Migration_Introduction/assets/steps.png new file mode 100755 index 0000000000000000000000000000000000000000..5421c219b8db6a28f7fe5574b68dc58c612c8780 GIT binary patch literal 22471 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