From c52b378660ec0252c39563cc48d716d5a150a01a Mon Sep 17 00:00:00 2001
From: Tony Feng <103078747+chuanyuf@users.noreply.github.com>
Date: Wed, 15 Oct 2025 16:59:18 -0500
Subject: [PATCH 1/4] Merge pull request #2696 from
noffermans/add_nnz_to_set_csr_data_sparse_cg_example
Add nnz argument to set_csr_data in sparse CG examples
---
Libraries/oneMKL/sparse_conjugate_gradient/sparse_cg.cpp | 5 +++++
Libraries/oneMKL/sparse_conjugate_gradient/sparse_cg2.cpp | 5 +++++
2 files changed, 10 insertions(+)
diff --git a/Libraries/oneMKL/sparse_conjugate_gradient/sparse_cg.cpp b/Libraries/oneMKL/sparse_conjugate_gradient/sparse_cg.cpp
index eec3f82891..f44bfc8c95 100644
--- a/Libraries/oneMKL/sparse_conjugate_gradient/sparse_cg.cpp
+++ b/Libraries/oneMKL/sparse_conjugate_gradient/sparse_cg.cpp
@@ -380,8 +380,13 @@ int run_sparse_pcg_example(const sycl::device &dev)
// setup optimizations and properties we know about A matrix
oneapi::mkl::sparse::init_matrix_handle(&A);
+#if (INTEL_MKL_VERSION < 20250300)
auto ev_set = oneapi::mkl::sparse::set_csr_data(q, A, n, n,
oneapi::mkl::index_base::zero, ia_d, ja_d, a_d, {});
+#else
+ auto ev_set = oneapi::mkl::sparse::set_csr_data(q, A, n, n, nnz,
+ oneapi::mkl::index_base::zero, ia_d, ja_d, a_d, {});
+#endif
oneapi::mkl::sparse::set_matrix_property(A, oneapi::mkl::sparse::property::symmetric);
oneapi::mkl::sparse::set_matrix_property(A, oneapi::mkl::sparse::property::sorted);
diff --git a/Libraries/oneMKL/sparse_conjugate_gradient/sparse_cg2.cpp b/Libraries/oneMKL/sparse_conjugate_gradient/sparse_cg2.cpp
index adb2360ac8..48a8deb043 100644
--- a/Libraries/oneMKL/sparse_conjugate_gradient/sparse_cg2.cpp
+++ b/Libraries/oneMKL/sparse_conjugate_gradient/sparse_cg2.cpp
@@ -453,8 +453,13 @@ int run_sparse_pcg_example(const sycl::device &dev)
// setup optimizations and properties we know about A matrix
oneapi::mkl::sparse::init_matrix_handle(&A);
+#if (INTEL_MKL_VERSION < 20250300)
auto ev_set = oneapi::mkl::sparse::set_csr_data(q, A, n, n,
oneapi::mkl::index_base::zero, ia_d, ja_d, a_d, {});
+#else
+ auto ev_set = oneapi::mkl::sparse::set_csr_data(q, A, n, n, nnz,
+ oneapi::mkl::index_base::zero, ia_d, ja_d, a_d, {});
+#endif
oneapi::mkl::sparse::set_matrix_property(A, oneapi::mkl::sparse::property::symmetric);
oneapi::mkl::sparse::set_matrix_property(A, oneapi::mkl::sparse::property::sorted);
From ba8f31e417736c5420ce4dc8a742a6a0d74a39bf Mon Sep 17 00:00:00 2001
From: Tony Feng <103078747+chuanyuf@users.noreply.github.com>
Date: Tue, 27 Jan 2026 09:19:14 -0600
Subject: [PATCH 2/4] Merge pull request #2702 from andreyfe1/onemkl_moving
[oneMKL] Samples have been moved to the separate repository
---
.gitmodules | 3 +
.../01_dpct_output/CMakeLists.txt | 0
.../01_dpct_output/MainSourceFiles.yaml | 0
.../longstaff_schwartz_svd_2.dp.cpp | 0
.../02_sycl_migrated_optimized/CMakeLists.txt | 0
.../MainSourceFiles.yaml | 0
.../include/dpct/atomic.hpp | 0
.../include/dpct/bindless_images.hpp | 0
.../include/dpct/blas_gemm_utils.hpp | 0
.../include/dpct/blas_utils.hpp | 0
.../include/dpct/ccl_utils.hpp | 0
.../include/dpct/codepin/codepin.hpp | 0
.../dpct/codepin/serialization/basic.hpp | 0
.../include/dpct/compat_service.hpp | 0
.../include/dpct/device.hpp | 0
.../include/dpct/dnnl_utils.hpp | 0
.../include/dpct/dpct.hpp | 0
.../include/dpct/dpl_extras/algorithm.h | 0
.../dpct/dpl_extras/dpcpp_extensions.h | 0
.../include/dpct/dpl_extras/functional.h | 0
.../dpct/dpl_extras/iterator_adaptor.h | 0
.../include/dpct/dpl_extras/iterators.h | 0
.../include/dpct/dpl_extras/memory.h | 0
.../include/dpct/dpl_extras/numeric.h | 0
.../include/dpct/dpl_extras/vector.h | 0
.../include/dpct/dpl_utils.hpp | 0
.../include/dpct/fft_utils.hpp | 0
.../include/dpct/graph.hpp | 0
.../include/dpct/group_utils.hpp | 0
.../include/dpct/image.hpp | 0
.../include/dpct/kernel.hpp | 0
.../include/dpct/lapack_utils.hpp | 0
.../include/dpct/lib_common_utils.hpp | 0
.../include/dpct/math.hpp | 0
.../include/dpct/memory.hpp | 0
.../include/dpct/rng_utils.hpp | 0
.../include/dpct/sparse_utils.hpp | 0
.../include/dpct/util.hpp | 0
.../longstaff_schwartz_svd_2.dp.cpp | 0
.../CMakeLists.txt | 0
.../License.txt | 0
.../README.md | 0
.../sample.json | 0
.../src/longstaff_schwartz_svd_2.cu | 0
.../third-party-programs.txt | 0
.../01_sycl_dpct_output/Common/cublas_utils.h | 0
.../Level-1/cublas_amax_example.dp.cpp | 0
.../Level-1/cublas_amin_example.dp.cpp | 0
.../Level-1/cublas_asum_example.dp.cpp | 0
.../Level-1/cublas_axpy_example.dp.cpp | 0
.../Level-1/cublas_copy_example.dp.cpp | 0
.../Level-1/cublas_dot_example.dp.cpp | 0
.../Level-1/cublas_dotc_example.dp.cpp | 0
.../Level-1/cublas_nrm2_example.dp.cpp | 0
.../Level-1/cublas_rot_example.dp.cpp | 0
.../Level-1/cublas_rotg_example.dp.cpp | 0
.../Level-1/cublas_rotm_example.dp.cpp | 0
.../Level-1/cublas_rotmg_example.dp.cpp | 0
.../Level-1/cublas_scal_example.dp.cpp | 0
.../Level-1/cublas_swap_example.dp.cpp | 0
.../Level-2/cublas_gbmv_example.dp.cpp | 0
.../Level-2/cublas_gemv_example.dp.cpp | 0
.../Level-2/cublas_ger_example.dp.cpp | 0
.../Level-2/cublas_hbmv_example.dp.cpp | 0
.../Level-2/cublas_hemv_example.dp.cpp | 0
.../Level-2/cublas_her2_example.dp.cpp | 0
.../Level-2/cublas_her_example.dp.cpp | 0
.../Level-2/cublas_hpmv_example.dp.cpp | 0
.../Level-2/cublas_hpr2_example.dp.cpp | 0
.../Level-2/cublas_hpr_example.dp.cpp | 0
.../Level-2/cublas_sbmv_example.dp.cpp | 0
.../Level-2/cublas_spmv_example.dp.cpp | 0
.../Level-2/cublas_spr2_example.dp.cpp | 0
.../Level-2/cublas_spr_example.dp.cpp | 0
.../Level-2/cublas_symv_example.dp.cpp | 0
.../Level-2/cublas_syr2_example.dp.cpp | 0
.../Level-2/cublas_syr_example.dp.cpp | 0
.../Level-2/cublas_tbmv_example.dp.cpp | 0
.../Level-2/cublas_tbsv_example.dp.cpp | 0
.../Level-2/cublas_tpmv_example.dp.cpp | 0
.../Level-2/cublas_tpsv_example.dp.cpp | 0
.../Level-2/cublas_trmv_example.dp.cpp | 0
.../Level-2/cublas_trsv_example.dp.cpp | 0
.../Level-3/cublas_gemm3m_example.dp.cpp | 0
.../Level-3/cublas_gemmBatched_example.dp.cpp | 0
.../cublas_gemmStridedBatched_example.dp.cpp | 0
.../Level-3/cublas_gemm_example.dp.cpp | 0
.../Level-3/cublas_hemm_example.dp.cpp | 0
.../Level-3/cublas_her2k_example.dp.cpp | 0
.../Level-3/cublas_herk_example.dp.cpp | 0
.../Level-3/cublas_herkx_example.dp.cpp | 0
.../Level-3/cublas_symm_example.dp.cpp | 0
.../Level-3/cublas_syr2k_example.dp.cpp | 0
.../Level-3/cublas_syrk_example.dp.cpp | 0
.../Level-3/cublas_syrkx_example.dp.cpp | 0
.../Level-3/cublas_trmm_example.dp.cpp | 0
.../Level-3/cublas_trsmBatched_example.dp.cpp | 0
.../Level-3/cublas_trsm_example.dp.cpp | 0
.../02_sycl_dpct_migrated/CMakeLists.txt | 0
.../Common/cublas_utils.h | 0
.../Level-1/CMakeLists.txt | 0
.../02_sycl_dpct_migrated/Level-1/amax.cpp | 0
.../02_sycl_dpct_migrated/Level-1/amin.cpp | 0
.../02_sycl_dpct_migrated/Level-1/asum.cpp | 0
.../02_sycl_dpct_migrated/Level-1/axpy.cpp | 0
.../02_sycl_dpct_migrated/Level-1/copy.cpp | 0
.../02_sycl_dpct_migrated/Level-1/dot.cpp | 0
.../02_sycl_dpct_migrated/Level-1/dotc.cpp | 0
.../02_sycl_dpct_migrated/Level-1/nrm2.cpp | 0
.../02_sycl_dpct_migrated/Level-1/rot.cpp | 0
.../02_sycl_dpct_migrated/Level-1/rotg.cpp | 0
.../02_sycl_dpct_migrated/Level-1/rotm.cpp | 0
.../02_sycl_dpct_migrated/Level-1/rotmg.cpp | 0
.../02_sycl_dpct_migrated/Level-1/scal.cpp | 0
.../02_sycl_dpct_migrated/Level-1/swap.cpp | 0
.../Level-2/CMakeLists.txt | 0
.../02_sycl_dpct_migrated/Level-2/gbmv.cpp | 0
.../02_sycl_dpct_migrated/Level-2/gemv.cpp | 0
.../02_sycl_dpct_migrated/Level-2/ger.cpp | 0
.../02_sycl_dpct_migrated/Level-2/hbmv.cpp | 0
.../02_sycl_dpct_migrated/Level-2/hemv.cpp | 0
.../02_sycl_dpct_migrated/Level-2/her.cpp | 0
.../02_sycl_dpct_migrated/Level-2/her2.cpp | 0
.../02_sycl_dpct_migrated/Level-2/hpmv.cpp | 0
.../02_sycl_dpct_migrated/Level-2/hpr.cpp | 0
.../02_sycl_dpct_migrated/Level-2/hpr2.cpp | 0
.../02_sycl_dpct_migrated/Level-2/sbmv.cpp | 0
.../02_sycl_dpct_migrated/Level-2/spmv.cpp | 0
.../02_sycl_dpct_migrated/Level-2/spr.cpp | 0
.../02_sycl_dpct_migrated/Level-2/spr2.cpp | 0
.../02_sycl_dpct_migrated/Level-2/symv.cpp | 0
.../02_sycl_dpct_migrated/Level-2/syr.cpp | 0
.../02_sycl_dpct_migrated/Level-2/syr2.cpp | 0
.../02_sycl_dpct_migrated/Level-2/tbmv.cpp | 0
.../02_sycl_dpct_migrated/Level-2/tbsv.cpp | 0
.../02_sycl_dpct_migrated/Level-2/tpmv.cpp | 0
.../02_sycl_dpct_migrated/Level-2/tpsv.cpp | 0
.../02_sycl_dpct_migrated/Level-2/trmv.cpp | 0
.../02_sycl_dpct_migrated/Level-2/trsv.cpp | 0
.../Level-3/CMakeLists.txt | 0
.../02_sycl_dpct_migrated/Level-3/gemm.cpp | 0
.../02_sycl_dpct_migrated/Level-3/gemm3m.cpp | 0
.../Level-3/gemmBatched.cpp | 0
.../Level-3/gemmStridedBatched.cpp | 0
.../02_sycl_dpct_migrated/Level-3/hemm.cpp | 0
.../02_sycl_dpct_migrated/Level-3/her2k.cpp | 0
.../02_sycl_dpct_migrated/Level-3/herk.cpp | 0
.../02_sycl_dpct_migrated/Level-3/herkx.cpp | 0
.../02_sycl_dpct_migrated/Level-3/symm.cpp | 0
.../02_sycl_dpct_migrated/Level-3/syr2k.cpp | 0
.../02_sycl_dpct_migrated/Level-3/syrk.cpp | 0
.../02_sycl_dpct_migrated/Level-3/syrkx.cpp | 0
.../02_sycl_dpct_migrated/Level-3/trmm.cpp | 0
.../02_sycl_dpct_migrated/Level-3/trsm.cpp | 0
.../Level-3/trsmBatched.cpp | 0
.../CMakeLists.txt | 0
.../License.txt | 0
.../README.md | 0
.../sample.json | 0
.../third-party-programs.txt | 0
.../01_sycl_dpct_output/common/curand_utils.h | 0
...rand_mrg32k3a_lognormal_example.cpp.dp.cpp | 0
.../curand_mrg32k3a_normal_example.cpp.dp.cpp | 0
...curand_mrg32k3a_poisson_example.cpp.dp.cpp | 0
...curand_mrg32k3a_uniform_example.cpp.dp.cpp | 0
.../01_sycl_dpct_output/mt19937/.gitignore | 0
...urand_mt19937_lognormal_example.cpp.dp.cpp | 0
.../curand_mt19937_normal_example.cpp.dp.cpp | 0
.../curand_mt19937_poisson_example.cpp.dp.cpp | 0
.../curand_mt19937_uniform_example.cpp.dp.cpp | 0
.../01_sycl_dpct_output/mtgp32/.gitignore | 0
...curand_mtgp32_lognormal_example.cpp.dp.cpp | 0
.../curand_mtgp32_normal_example.cpp.dp.cpp | 0
.../curand_mtgp32_poisson_example.cpp.dp.cpp | 0
.../curand_mtgp32_uniform_example.cpp.dp.cpp | 0
.../01_sycl_dpct_output/philox/.gitignore | 0
...curand_philox_lognormal_example.cpp.dp.cpp | 0
.../curand_philox_normal_example.cpp.dp.cpp | 0
.../curand_philox_poisson_example.cpp.dp.cpp | 0
.../curand_philox_uniform_example.cpp.dp.cpp | 0
.../scrambled_sobol32/.gitignore | 0
...mbled_sobol32_lognormal_example.cpp.dp.cpp | 0
...crambled_sobol32_normal_example.cpp.dp.cpp | 0
...rambled_sobol32_poisson_example.cpp.dp.cpp | 0
...rambled_sobol32_uniform_example.cpp.dp.cpp | 0
.../scrambled_sobol64/.gitignore | 0
...mbled_sobol64_lognormal_example.cpp.dp.cpp | 0
...crambled_sobol64_normal_example.cpp.dp.cpp | 0
...rambled_sobol64_poisson_example.cpp.dp.cpp | 0
...rambled_sobol64_uniform_example.cpp.dp.cpp | 0
.../01_sycl_dpct_output/sobol32/.gitignore | 0
...urand_sobol32_lognormal_example.cpp.dp.cpp | 0
.../curand_sobol32_normal_example.cpp.dp.cpp | 0
.../curand_sobol32_poisson_example.cpp.dp.cpp | 0
.../curand_sobol32_uniform_example.cpp.dp.cpp | 0
.../01_sycl_dpct_output/sobol64/.gitignore | 0
...urand_sobol64_lognormal_example.cpp.dp.cpp | 0
.../curand_sobol64_normal_example.cpp.dp.cpp | 0
.../curand_sobol64_poisson_example.cpp.dp.cpp | 0
.../curand_sobol64_uniform_example.cpp.dp.cpp | 0
.../02_sycl_dpct_migrated/CMakeLists.txt | 0
.../Common/curand_utils.h | 0
.../mrg32k3a/CMakeLists.txt | 0
.../mrg32k3a/mrg32k3a_lognormal.cpp | 0
.../mrg32k3a/mrg32k3a_normal.cpp | 0
.../mrg32k3a/mrg32k3a_poisson.cpp | 0
.../mrg32k3a/mrg32k3a_uniform.cpp | 0
.../02_sycl_dpct_migrated/mt19937/.gitignore | 0
.../mt19937/CMakeLists.txt | 0
.../mt19937/mt19937_lognormal.cpp | 0
.../mt19937/mt19937_normal.cpp | 0
.../mt19937/mt19937_poisson.cpp | 0
.../mt19937/mt19937_uniform.cpp | 0
.../02_sycl_dpct_migrated/mtgp32/.gitignore | 0
.../mtgp32/CMakeLists.txt | 0
.../mtgp32/mtgp32_lognormal.cpp | 0
.../mtgp32/mtgp32_normal.cpp | 0
.../mtgp32/mtgp32_poisson.cpp | 0
.../mtgp32/mtgp32_uniform.cpp | 0
.../02_sycl_dpct_migrated/philox/.gitignore | 0
.../philox/CMakeLists.txt | 0
.../philox/philox_lognormal.cpp | 0
.../philox/philox_normal.cpp | 0
.../philox/philox_poisson.cpp | 0
.../philox/philox_uniform.cpp | 0
.../scrambled_sobol32/.gitignore | 0
.../scrambled_sobol32/CMakeLists.txt | 0
.../scrambled_sobol32_lognormal.cpp | 0
.../scrambled_sobol32_normal.cpp | 0
.../scrambled_sobol32_poisson.cpp | 0
.../scrambled_sobol32_uniform.cpp | 0
.../scrambled_sobol64/.gitignore | 0
.../scrambled_sobol64/CMakeLists.txt | 0
.../scrambled_sobol64_lognormal.cpp | 0
.../scrambled_sobol64_normal.cpp | 0
.../scrambled_sobol64_poisson.cpp | 0
.../scrambled_sobol64_uniform.cpp | 0
.../02_sycl_dpct_migrated/sobol32/.gitignore | 0
.../sobol32/CMakeLists.txt | 0
.../sobol32/sobol32_lognormal.cpp | 0
.../sobol32/sobol32_normal.cpp | 0
.../sobol32/sobol32_poisson.cpp | 0
.../sobol32/sobol32_uniform.cpp | 0
.../02_sycl_dpct_migrated/sobol64/.gitignore | 0
.../sobol64/CMakeLists.txt | 0
.../sobol64/sobol64_lognormal.cpp | 0
.../sobol64/sobol64_normal.cpp | 0
.../sobol64/sobol64_poisson.cpp | 0
.../sobol64/sobol64_uniform.cpp | 0
.../CMakeLists.txt | 0
.../License.txt | 0
.../README.md | 0
.../sample.json | 0
.../third-party-programs.txt | 0
.../01_dpct_output/CMakeLists.txt | 0
.../01_dpct_output/Common/helper_cuda.h | 0
.../01_dpct_output/Common/helper_cuda.h.yaml | 0
.../01_dpct_output/Common/helper_string.h | 0
.../simpleCUBLAS_LU.cpp.dp.cpp | 0
.../01_dpct_output/include/dpct/atomic.hpp | 0
.../include/dpct/blas_utils.hpp | 0
.../01_dpct_output/include/dpct/ccl_utils.hpp | 0
.../01_dpct_output/include/dpct/device.hpp | 0
.../include/dpct/dnnl_utils.hpp | 0
.../01_dpct_output/include/dpct/dpct.hpp | 0
.../include/dpct/dpl_extras/algorithm.h | 0
.../dpct/dpl_extras/dpcpp_extensions.h | 0
.../include/dpct/dpl_extras/functional.h | 0
.../include/dpct/dpl_extras/iterators.h | 0
.../include/dpct/dpl_extras/memory.h | 0
.../include/dpct/dpl_extras/numeric.h | 0
.../include/dpct/dpl_extras/vector.h | 0
.../01_dpct_output/include/dpct/dpl_utils.hpp | 0
.../01_dpct_output/include/dpct/fft_utils.hpp | 0
.../01_dpct_output/include/dpct/image.hpp | 0
.../01_dpct_output/include/dpct/kernel.hpp | 0
.../include/dpct/lapack_utils.hpp | 0
.../include/dpct/lib_common_utils.hpp | 0
.../01_dpct_output/include/dpct/math.hpp | 0
.../01_dpct_output/include/dpct/memory.hpp | 0
.../01_dpct_output/include/dpct/rng_utils.hpp | 0
.../include/dpct/sparse_utils.hpp | 0
.../01_dpct_output/include/dpct/util.hpp | 0
.../02_sycl_migrated/CMakeLists.txt | 0
.../02_sycl_migrated/Common/helper_cuda.h | 0
.../Common/helper_cuda.h.yaml | 0
.../02_sycl_migrated/Common/helper_string.h | 0
.../simpleCUBLAS_LU.cpp.dp.cpp | 0
.../02_sycl_migrated/include/dpct/atomic.hpp | 0
.../include/dpct/blas_utils.hpp | 0
.../include/dpct/ccl_utils.hpp | 0
.../02_sycl_migrated/include/dpct/device.hpp | 0
.../include/dpct/dnnl_utils.hpp | 0
.../02_sycl_migrated/include/dpct/dpct.hpp | 0
.../include/dpct/dpl_extras/algorithm.h | 0
.../dpct/dpl_extras/dpcpp_extensions.h | 0
.../include/dpct/dpl_extras/functional.h | 0
.../include/dpct/dpl_extras/iterators.h | 0
.../include/dpct/dpl_extras/memory.h | 0
.../include/dpct/dpl_extras/numeric.h | 0
.../include/dpct/dpl_extras/vector.h | 0
.../include/dpct/dpl_utils.hpp | 0
.../include/dpct/fft_utils.hpp | 0
.../02_sycl_migrated/include/dpct/image.hpp | 0
.../02_sycl_migrated/include/dpct/kernel.hpp | 0
.../include/dpct/lapack_utils.hpp | 0
.../include/dpct/lib_common_utils.hpp | 0
.../02_sycl_migrated/include/dpct/math.hpp | 0
.../02_sycl_migrated/include/dpct/memory.hpp | 0
.../include/dpct/rng_utils.hpp | 0
.../include/dpct/sparse_utils.hpp | 0
.../02_sycl_migrated/include/dpct/util.hpp | 0
.../CMakeLists.txt | 0
.../License.txt | 0
.../README.md | 0
.../sample.json | 0
.../third-party-programs.txt | 0
.../oneMKL/batched_linear_solver/README.md | 105 --
.../lu_solve_omp_offload.F90 | 193 ----
.../lu_solve_omp_offload_optimized.F90 | 189 ----
.../oneMKL/batched_linear_solver/makefile | 27 -
.../oneMKL/batched_linear_solver/sample.json | 25 -
.../third-party-programs.txt | 253 -----
Libraries/oneMKL/binomial/GNUmakefile | 13 -
Libraries/oneMKL/binomial/README.md | 132 ---
Libraries/oneMKL/binomial/makefile | 15 -
Libraries/oneMKL/binomial/sample.json | 34 -
Libraries/oneMKL/binomial/src/binomial.hpp | 75 --
.../oneMKL/binomial/src/binomial_main.cpp | 87 --
.../oneMKL/binomial/src/binomial_sycl.cpp | 202 ----
.../oneMKL/binomial/third-party-programs.txt | 253 -----
Libraries/oneMKL/black_scholes/GNUmakefile | 18 -
Libraries/oneMKL/black_scholes/License.txt | 7 -
Libraries/oneMKL/black_scholes/README.md | 132 ---
Libraries/oneMKL/black_scholes/makefile | 15 -
Libraries/oneMKL/black_scholes/sample.json | 34 -
.../black_scholes/src/black_scholes.hpp | 132 ---
.../black_scholes/src/black_scholes_sycl.cpp | 192 ----
.../black_scholes/third-party-programs.txt | 253 -----
.../block_cholesky_decomposition/GNUmakefile | 18 -
.../block_cholesky_decomposition/License.txt | 7 -
.../block_cholesky_decomposition/README.md | 123 ---
.../block_cholesky_decomposition/auxi.cpp | 292 ------
.../block_cholesky_decomposition/dpbltrf.cpp | 173 ----
.../block_cholesky_decomposition/dpbltrs.cpp | 135 ---
.../block_cholesky_decomposition/factor.cpp | 157 ---
.../block_cholesky_decomposition/makefile | 16 -
.../block_cholesky_decomposition/sample.json | 33 -
.../block_cholesky_decomposition/solve.cpp | 182 ----
.../third-party-programs.txt | 253 -----
.../oneMKL/block_lu_decomposition/GNUmakefile | 18 -
.../oneMKL/block_lu_decomposition/License.txt | 7 -
.../oneMKL/block_lu_decomposition/README.md | 78 --
.../oneMKL/block_lu_decomposition/auxi.cpp | 304 ------
.../block_lu_decomposition/dgeblttrf.cpp | 382 -------
.../block_lu_decomposition/dgeblttrs.cpp | 176 ----
.../oneMKL/block_lu_decomposition/factor.cpp | 136 ---
.../oneMKL/block_lu_decomposition/makefile | 16 -
.../oneMKL/block_lu_decomposition/sample.json | 33 -
.../oneMKL/block_lu_decomposition/solve.cpp | 154 ---
.../third-party-programs.txt | 253 -----
.../oneMKL/computed_tomography/GNUmakefile | 20 -
.../oneMKL/computed_tomography/License.txt | 7 -
.../oneMKL/computed_tomography/README.md | 94 --
.../computed_tomography.cpp | 944 ------------------
.../oneMKL/computed_tomography/input.bmp | Bin 480054 -> 0 bytes
Libraries/oneMKL/computed_tomography/makefile | 18 -
.../oneMKL/computed_tomography/sample.json | 34 -
.../third-party-programs.txt | 253 -----
.../oneMKL/fourier_correlation/GNUmakefile | 26 -
.../oneMKL/fourier_correlation/License.txt | 7 -
.../oneMKL/fourier_correlation/README.md | 128 ---
.../fourier_correlation/fcorr_1d_buffers.cpp | 207 ----
.../fourier_correlation/fcorr_1d_usm.cpp | 207 ----
.../fourier_correlation/fcorr_2d_usm.cpp | 304 ------
Libraries/oneMKL/fourier_correlation/makefile | 27 -
.../oneMKL/fourier_correlation/sample.json | 33 -
.../third-party-programs.txt | 253 -----
.../License.txt | 7 -
.../License.txt | 7 -
Libraries/oneMKL/matrix_mul_mkl/GNUmakefile | 22 -
Libraries/oneMKL/matrix_mul_mkl/License.txt | 7 -
Libraries/oneMKL/matrix_mul_mkl/README.md | 113 ---
Libraries/oneMKL/matrix_mul_mkl/makefile | 19 -
.../oneMKL/matrix_mul_mkl/matrix_mul_mkl.cpp | 240 -----
Libraries/oneMKL/matrix_mul_mkl/sample.json | 34 -
.../matrix_mul_mkl/third-party-programs.txt | 253 -----
Libraries/oneMKL/matrix_mul_mkl/utilities.hpp | 55 -
.../monte_carlo_european_opt/GNUmakefile | 31 -
.../monte_carlo_european_opt/License.txt | 7 -
.../oneMKL/monte_carlo_european_opt/README.md | 141 ---
.../oneMKL/monte_carlo_european_opt/makefile | 23 -
.../monte_carlo_european_opt/sample.json | 34 -
.../src/montecarlo.hpp | 100 --
.../src/montecarlo_main.cpp | 202 ----
.../monte_carlo_european_opt/src/timer.hpp | 20 -
.../third-party-programs.txt | 253 -----
Libraries/oneMKL/monte_carlo_pi/GNUmakefile | 28 -
Libraries/oneMKL/monte_carlo_pi/License.txt | 7 -
Libraries/oneMKL/monte_carlo_pi/README.md | 118 ---
Libraries/oneMKL/monte_carlo_pi/makefile | 26 -
Libraries/oneMKL/monte_carlo_pi/mc_pi.cpp | 135 ---
.../monte_carlo_pi/mc_pi_device_api.cpp | 132 ---
Libraries/oneMKL/monte_carlo_pi/mc_pi_usm.cpp | 132 ---
Libraries/oneMKL/monte_carlo_pi/sample.json | 33 -
.../monte_carlo_pi/third-party-programs.txt | 253 -----
.../GNUmakefile | 28 -
.../License.txt | 7 -
.../README.md | 124 ---
.../lottery.cpp | 156 ---
.../lottery_device_api.cpp | 145 ---
.../lottery_usm.cpp | 157 ---
.../makefile | 37 -
.../sample.json | 33 -
.../third-party-programs.txt | 253 -----
.../sparse_conjugate_gradient/GNUmakefile | 24 -
.../sparse_conjugate_gradient/License.txt | 7 -
.../sparse_conjugate_gradient/README.md | 203 ----
.../oneMKL/sparse_conjugate_gradient/makefile | 23 -
.../sparse_conjugate_gradient/sample.json | 33 -
.../sparse_conjugate_gradient/sparse_cg.cpp | 592 -----------
.../sparse_conjugate_gradient/sparse_cg2.cpp | 655 ------------
.../third-party-programs.txt | 253 -----
.../sparse_conjugate_gradient/utils.hpp | 81 --
Libraries/oneMKL/student_t_test/GNUmakefile | 24 -
Libraries/oneMKL/student_t_test/License.txt | 7 -
Libraries/oneMKL/student_t_test/README.md | 93 --
Libraries/oneMKL/student_t_test/makefile | 22 -
Libraries/oneMKL/student_t_test/sample.json | 33 -
Libraries/oneMKL/student_t_test/t_test.cpp | 207 ----
.../oneMKL/student_t_test/t_test_usm.cpp | 210 ----
.../student_t_test/third-party-programs.txt | 253 -----
432 files changed, 3 insertions(+), 13986 deletions(-)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_american_options_SYCLmigration/01_dpct_output/CMakeLists.txt (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_american_options_SYCLmigration/01_dpct_output/MainSourceFiles.yaml (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_american_options_SYCLmigration/01_dpct_output/longstaff_schwartz_svd_2.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/CMakeLists.txt (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/MainSourceFiles.yaml (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/atomic.hpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/bindless_images.hpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/blas_gemm_utils.hpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/blas_utils.hpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/ccl_utils.hpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/codepin/codepin.hpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/codepin/serialization/basic.hpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/compat_service.hpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/device.hpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/dnnl_utils.hpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/dpct.hpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/dpl_extras/algorithm.h (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/dpl_extras/dpcpp_extensions.h (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/dpl_extras/functional.h (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/dpl_extras/iterator_adaptor.h (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/dpl_extras/iterators.h (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/dpl_extras/memory.h (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/dpl_extras/numeric.h (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/dpl_extras/vector.h (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/dpl_utils.hpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/fft_utils.hpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/graph.hpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/group_utils.hpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/image.hpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/kernel.hpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/lapack_utils.hpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/lib_common_utils.hpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/math.hpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/memory.hpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/rng_utils.hpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/sparse_utils.hpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/util.hpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/longstaff_schwartz_svd_2.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_american_options_SYCLmigration/CMakeLists.txt (100%)
rename {Libraries/oneMKL/batched_linear_solver => DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration}/License.txt (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_american_options_SYCLmigration/README.md (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_american_options_SYCLmigration/sample.json (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_american_options_SYCLmigration/src/longstaff_schwartz_svd_2.cu (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_american_options_SYCLmigration/third-party-programs.txt (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Common/cublas_utils.h (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-1/cublas_amax_example.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-1/cublas_amin_example.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-1/cublas_asum_example.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-1/cublas_axpy_example.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-1/cublas_copy_example.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-1/cublas_dot_example.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-1/cublas_dotc_example.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-1/cublas_nrm2_example.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-1/cublas_rot_example.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-1/cublas_rotg_example.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-1/cublas_rotm_example.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-1/cublas_rotmg_example.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-1/cublas_scal_example.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-1/cublas_swap_example.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_gbmv_example.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_gemv_example.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_ger_example.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_hbmv_example.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_hemv_example.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_her2_example.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_her_example.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_hpmv_example.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_hpr2_example.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_hpr_example.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_sbmv_example.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_spmv_example.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_spr2_example.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_spr_example.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_symv_example.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_syr2_example.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_syr_example.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_tbmv_example.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_tbsv_example.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_tpmv_example.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_tpsv_example.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_trmv_example.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_trsv_example.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-3/cublas_gemm3m_example.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-3/cublas_gemmBatched_example.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-3/cublas_gemmStridedBatched_example.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-3/cublas_gemm_example.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-3/cublas_hemm_example.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-3/cublas_her2k_example.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-3/cublas_herk_example.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-3/cublas_herkx_example.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-3/cublas_symm_example.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-3/cublas_syr2k_example.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-3/cublas_syrk_example.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-3/cublas_syrkx_example.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-3/cublas_trmm_example.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-3/cublas_trsmBatched_example.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-3/cublas_trsm_example.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/CMakeLists.txt (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Common/cublas_utils.h (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-1/CMakeLists.txt (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-1/amax.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-1/amin.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-1/asum.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-1/axpy.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-1/copy.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-1/dot.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-1/dotc.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-1/nrm2.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-1/rot.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-1/rotg.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-1/rotm.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-1/rotmg.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-1/scal.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-1/swap.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/CMakeLists.txt (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/gbmv.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/gemv.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/ger.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/hbmv.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/hemv.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/her.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/her2.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/hpmv.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/hpr.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/hpr2.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/sbmv.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/spmv.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/spr.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/spr2.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/symv.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/syr.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/syr2.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/tbmv.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/tbsv.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/tpmv.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/tpsv.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/trmv.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/trsv.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-3/CMakeLists.txt (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-3/gemm.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-3/gemm3m.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-3/gemmBatched.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-3/gemmStridedBatched.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-3/hemm.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-3/her2k.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-3/herk.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-3/herkx.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-3/symm.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-3/syr2k.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-3/syrk.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-3/syrkx.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-3/trmm.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-3/trsm.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-3/trsmBatched.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/CMakeLists.txt (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/License.txt (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/README.md (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/sample.json (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuBLAS_examples_SYCLMigration/third-party-programs.txt (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/common/curand_utils.h (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/mrg32k3a/curand_mrg32k3a_lognormal_example.cpp.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/mrg32k3a/curand_mrg32k3a_normal_example.cpp.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/mrg32k3a/curand_mrg32k3a_poisson_example.cpp.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/mrg32k3a/curand_mrg32k3a_uniform_example.cpp.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/mt19937/.gitignore (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/mt19937/curand_mt19937_lognormal_example.cpp.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/mt19937/curand_mt19937_normal_example.cpp.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/mt19937/curand_mt19937_poisson_example.cpp.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/mt19937/curand_mt19937_uniform_example.cpp.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/mtgp32/.gitignore (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/mtgp32/curand_mtgp32_lognormal_example.cpp.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/mtgp32/curand_mtgp32_normal_example.cpp.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/mtgp32/curand_mtgp32_poisson_example.cpp.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/mtgp32/curand_mtgp32_uniform_example.cpp.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/philox/.gitignore (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/philox/curand_philox_lognormal_example.cpp.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/philox/curand_philox_normal_example.cpp.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/philox/curand_philox_poisson_example.cpp.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/philox/curand_philox_uniform_example.cpp.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/scrambled_sobol32/.gitignore (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/scrambled_sobol32/curand_scrambled_sobol32_lognormal_example.cpp.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/scrambled_sobol32/curand_scrambled_sobol32_normal_example.cpp.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/scrambled_sobol32/curand_scrambled_sobol32_poisson_example.cpp.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/scrambled_sobol32/curand_scrambled_sobol32_uniform_example.cpp.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/scrambled_sobol64/.gitignore (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/scrambled_sobol64/curand_scrambled_sobol64_lognormal_example.cpp.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/scrambled_sobol64/curand_scrambled_sobol64_normal_example.cpp.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/scrambled_sobol64/curand_scrambled_sobol64_poisson_example.cpp.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/scrambled_sobol64/curand_scrambled_sobol64_uniform_example.cpp.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/sobol32/.gitignore (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/sobol32/curand_sobol32_lognormal_example.cpp.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/sobol32/curand_sobol32_normal_example.cpp.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/sobol32/curand_sobol32_poisson_example.cpp.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/sobol32/curand_sobol32_uniform_example.cpp.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/sobol64/.gitignore (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/sobol64/curand_sobol64_lognormal_example.cpp.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/sobol64/curand_sobol64_normal_example.cpp.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/sobol64/curand_sobol64_poisson_example.cpp.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/sobol64/curand_sobol64_uniform_example.cpp.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/CMakeLists.txt (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/Common/curand_utils.h (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mrg32k3a/CMakeLists.txt (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mrg32k3a/mrg32k3a_lognormal.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mrg32k3a/mrg32k3a_normal.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mrg32k3a/mrg32k3a_poisson.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mrg32k3a/mrg32k3a_uniform.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mt19937/.gitignore (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mt19937/CMakeLists.txt (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mt19937/mt19937_lognormal.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mt19937/mt19937_normal.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mt19937/mt19937_poisson.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mt19937/mt19937_uniform.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mtgp32/.gitignore (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mtgp32/CMakeLists.txt (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mtgp32/mtgp32_lognormal.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mtgp32/mtgp32_normal.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mtgp32/mtgp32_poisson.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mtgp32/mtgp32_uniform.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/philox/.gitignore (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/philox/CMakeLists.txt (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/philox/philox_lognormal.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/philox/philox_normal.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/philox/philox_poisson.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/philox/philox_uniform.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/scrambled_sobol32/.gitignore (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/scrambled_sobol32/CMakeLists.txt (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/scrambled_sobol32/scrambled_sobol32_lognormal.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/scrambled_sobol32/scrambled_sobol32_normal.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/scrambled_sobol32/scrambled_sobol32_poisson.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/scrambled_sobol32/scrambled_sobol32_uniform.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/scrambled_sobol64/.gitignore (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/scrambled_sobol64/CMakeLists.txt (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/scrambled_sobol64/scrambled_sobol64_lognormal.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/scrambled_sobol64/scrambled_sobol64_normal.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/scrambled_sobol64/scrambled_sobol64_poisson.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/scrambled_sobol64/scrambled_sobol64_uniform.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/sobol32/.gitignore (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/sobol32/CMakeLists.txt (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/sobol32/sobol32_lognormal.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/sobol32/sobol32_normal.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/sobol32/sobol32_poisson.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/sobol32/sobol32_uniform.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/sobol64/.gitignore (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/sobol64/CMakeLists.txt (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/sobol64/sobol64_lognormal.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/sobol64/sobol64_normal.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/sobol64/sobol64_poisson.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/sobol64/sobol64_uniform.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/CMakeLists.txt (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/License.txt (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/README.md (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/sample.json (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_cuRAND_examples_SYCLMigration/third-party-programs.txt (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/CMakeLists.txt (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/Common/helper_cuda.h (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/Common/helper_cuda.h.yaml (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/Common/helper_string.h (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/Samples/4_CUDA_Libraries/simpleCUBLAS_LU/simpleCUBLAS_LU.cpp.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/atomic.hpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/blas_utils.hpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/ccl_utils.hpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/device.hpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/dnnl_utils.hpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/dpct.hpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/dpl_extras/algorithm.h (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/dpl_extras/dpcpp_extensions.h (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/dpl_extras/functional.h (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/dpl_extras/iterators.h (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/dpl_extras/memory.h (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/dpl_extras/numeric.h (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/dpl_extras/vector.h (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/dpl_utils.hpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/fft_utils.hpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/image.hpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/kernel.hpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/lapack_utils.hpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/lib_common_utils.hpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/math.hpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/memory.hpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/rng_utils.hpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/sparse_utils.hpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/util.hpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/CMakeLists.txt (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/Common/helper_cuda.h (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/Common/helper_cuda.h.yaml (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/Common/helper_string.h (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/Samples/4_CUDA_Libraries/simpleCUBLAS_LU/simpleCUBLAS_LU.cpp.dp.cpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/atomic.hpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/blas_utils.hpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/ccl_utils.hpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/device.hpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/dnnl_utils.hpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/dpct.hpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/dpl_extras/algorithm.h (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/dpl_extras/dpcpp_extensions.h (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/dpl_extras/functional.h (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/dpl_extras/iterators.h (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/dpl_extras/memory.h (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/dpl_extras/numeric.h (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/dpl_extras/vector.h (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/dpl_utils.hpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/fft_utils.hpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/image.hpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/kernel.hpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/lapack_utils.hpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/lib_common_utils.hpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/math.hpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/memory.hpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/rng_utils.hpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/sparse_utils.hpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/util.hpp (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_simpleCUBLAS_LU_SYCLMigration/CMakeLists.txt (100%)
rename {Libraries/oneMKL/binomial => DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration}/License.txt (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_simpleCUBLAS_LU_SYCLMigration/README.md (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_simpleCUBLAS_LU_SYCLMigration/sample.json (100%)
rename {Libraries/oneMKL => DirectProgramming/C++SYCL/SYCLMigration}/guided_simpleCUBLAS_LU_SYCLMigration/third-party-programs.txt (100%)
delete mode 100644 Libraries/oneMKL/batched_linear_solver/README.md
delete mode 100644 Libraries/oneMKL/batched_linear_solver/lu_solve_omp_offload.F90
delete mode 100644 Libraries/oneMKL/batched_linear_solver/lu_solve_omp_offload_optimized.F90
delete mode 100644 Libraries/oneMKL/batched_linear_solver/makefile
delete mode 100644 Libraries/oneMKL/batched_linear_solver/sample.json
delete mode 100644 Libraries/oneMKL/batched_linear_solver/third-party-programs.txt
delete mode 100644 Libraries/oneMKL/binomial/GNUmakefile
delete mode 100644 Libraries/oneMKL/binomial/README.md
delete mode 100644 Libraries/oneMKL/binomial/makefile
delete mode 100644 Libraries/oneMKL/binomial/sample.json
delete mode 100644 Libraries/oneMKL/binomial/src/binomial.hpp
delete mode 100644 Libraries/oneMKL/binomial/src/binomial_main.cpp
delete mode 100644 Libraries/oneMKL/binomial/src/binomial_sycl.cpp
delete mode 100644 Libraries/oneMKL/binomial/third-party-programs.txt
delete mode 100644 Libraries/oneMKL/black_scholes/GNUmakefile
delete mode 100644 Libraries/oneMKL/black_scholes/License.txt
delete mode 100644 Libraries/oneMKL/black_scholes/README.md
delete mode 100644 Libraries/oneMKL/black_scholes/makefile
delete mode 100644 Libraries/oneMKL/black_scholes/sample.json
delete mode 100644 Libraries/oneMKL/black_scholes/src/black_scholes.hpp
delete mode 100644 Libraries/oneMKL/black_scholes/src/black_scholes_sycl.cpp
delete mode 100644 Libraries/oneMKL/black_scholes/third-party-programs.txt
delete mode 100644 Libraries/oneMKL/block_cholesky_decomposition/GNUmakefile
delete mode 100644 Libraries/oneMKL/block_cholesky_decomposition/License.txt
delete mode 100644 Libraries/oneMKL/block_cholesky_decomposition/README.md
delete mode 100644 Libraries/oneMKL/block_cholesky_decomposition/auxi.cpp
delete mode 100644 Libraries/oneMKL/block_cholesky_decomposition/dpbltrf.cpp
delete mode 100644 Libraries/oneMKL/block_cholesky_decomposition/dpbltrs.cpp
delete mode 100644 Libraries/oneMKL/block_cholesky_decomposition/factor.cpp
delete mode 100644 Libraries/oneMKL/block_cholesky_decomposition/makefile
delete mode 100644 Libraries/oneMKL/block_cholesky_decomposition/sample.json
delete mode 100644 Libraries/oneMKL/block_cholesky_decomposition/solve.cpp
delete mode 100644 Libraries/oneMKL/block_cholesky_decomposition/third-party-programs.txt
delete mode 100644 Libraries/oneMKL/block_lu_decomposition/GNUmakefile
delete mode 100644 Libraries/oneMKL/block_lu_decomposition/License.txt
delete mode 100644 Libraries/oneMKL/block_lu_decomposition/README.md
delete mode 100644 Libraries/oneMKL/block_lu_decomposition/auxi.cpp
delete mode 100644 Libraries/oneMKL/block_lu_decomposition/dgeblttrf.cpp
delete mode 100644 Libraries/oneMKL/block_lu_decomposition/dgeblttrs.cpp
delete mode 100644 Libraries/oneMKL/block_lu_decomposition/factor.cpp
delete mode 100644 Libraries/oneMKL/block_lu_decomposition/makefile
delete mode 100644 Libraries/oneMKL/block_lu_decomposition/sample.json
delete mode 100644 Libraries/oneMKL/block_lu_decomposition/solve.cpp
delete mode 100644 Libraries/oneMKL/block_lu_decomposition/third-party-programs.txt
delete mode 100644 Libraries/oneMKL/computed_tomography/GNUmakefile
delete mode 100644 Libraries/oneMKL/computed_tomography/License.txt
delete mode 100644 Libraries/oneMKL/computed_tomography/README.md
delete mode 100644 Libraries/oneMKL/computed_tomography/computed_tomography.cpp
delete mode 100644 Libraries/oneMKL/computed_tomography/input.bmp
delete mode 100644 Libraries/oneMKL/computed_tomography/makefile
delete mode 100644 Libraries/oneMKL/computed_tomography/sample.json
delete mode 100644 Libraries/oneMKL/computed_tomography/third-party-programs.txt
delete mode 100644 Libraries/oneMKL/fourier_correlation/GNUmakefile
delete mode 100644 Libraries/oneMKL/fourier_correlation/License.txt
delete mode 100644 Libraries/oneMKL/fourier_correlation/README.md
delete mode 100644 Libraries/oneMKL/fourier_correlation/fcorr_1d_buffers.cpp
delete mode 100644 Libraries/oneMKL/fourier_correlation/fcorr_1d_usm.cpp
delete mode 100644 Libraries/oneMKL/fourier_correlation/fcorr_2d_usm.cpp
delete mode 100644 Libraries/oneMKL/fourier_correlation/makefile
delete mode 100644 Libraries/oneMKL/fourier_correlation/sample.json
delete mode 100644 Libraries/oneMKL/fourier_correlation/third-party-programs.txt
delete mode 100644 Libraries/oneMKL/guided_american_options_SYCLmigration/License.txt
delete mode 100644 Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/License.txt
delete mode 100644 Libraries/oneMKL/matrix_mul_mkl/GNUmakefile
delete mode 100644 Libraries/oneMKL/matrix_mul_mkl/License.txt
delete mode 100644 Libraries/oneMKL/matrix_mul_mkl/README.md
delete mode 100644 Libraries/oneMKL/matrix_mul_mkl/makefile
delete mode 100644 Libraries/oneMKL/matrix_mul_mkl/matrix_mul_mkl.cpp
delete mode 100644 Libraries/oneMKL/matrix_mul_mkl/sample.json
delete mode 100644 Libraries/oneMKL/matrix_mul_mkl/third-party-programs.txt
delete mode 100644 Libraries/oneMKL/matrix_mul_mkl/utilities.hpp
delete mode 100644 Libraries/oneMKL/monte_carlo_european_opt/GNUmakefile
delete mode 100644 Libraries/oneMKL/monte_carlo_european_opt/License.txt
delete mode 100644 Libraries/oneMKL/monte_carlo_european_opt/README.md
delete mode 100644 Libraries/oneMKL/monte_carlo_european_opt/makefile
delete mode 100644 Libraries/oneMKL/monte_carlo_european_opt/sample.json
delete mode 100644 Libraries/oneMKL/monte_carlo_european_opt/src/montecarlo.hpp
delete mode 100644 Libraries/oneMKL/monte_carlo_european_opt/src/montecarlo_main.cpp
delete mode 100644 Libraries/oneMKL/monte_carlo_european_opt/src/timer.hpp
delete mode 100644 Libraries/oneMKL/monte_carlo_european_opt/third-party-programs.txt
delete mode 100644 Libraries/oneMKL/monte_carlo_pi/GNUmakefile
delete mode 100644 Libraries/oneMKL/monte_carlo_pi/License.txt
delete mode 100644 Libraries/oneMKL/monte_carlo_pi/README.md
delete mode 100644 Libraries/oneMKL/monte_carlo_pi/makefile
delete mode 100644 Libraries/oneMKL/monte_carlo_pi/mc_pi.cpp
delete mode 100644 Libraries/oneMKL/monte_carlo_pi/mc_pi_device_api.cpp
delete mode 100644 Libraries/oneMKL/monte_carlo_pi/mc_pi_usm.cpp
delete mode 100644 Libraries/oneMKL/monte_carlo_pi/sample.json
delete mode 100644 Libraries/oneMKL/monte_carlo_pi/third-party-programs.txt
delete mode 100644 Libraries/oneMKL/random_sampling_without_replacement/GNUmakefile
delete mode 100644 Libraries/oneMKL/random_sampling_without_replacement/License.txt
delete mode 100644 Libraries/oneMKL/random_sampling_without_replacement/README.md
delete mode 100644 Libraries/oneMKL/random_sampling_without_replacement/lottery.cpp
delete mode 100644 Libraries/oneMKL/random_sampling_without_replacement/lottery_device_api.cpp
delete mode 100644 Libraries/oneMKL/random_sampling_without_replacement/lottery_usm.cpp
delete mode 100644 Libraries/oneMKL/random_sampling_without_replacement/makefile
delete mode 100644 Libraries/oneMKL/random_sampling_without_replacement/sample.json
delete mode 100644 Libraries/oneMKL/random_sampling_without_replacement/third-party-programs.txt
delete mode 100644 Libraries/oneMKL/sparse_conjugate_gradient/GNUmakefile
delete mode 100644 Libraries/oneMKL/sparse_conjugate_gradient/License.txt
delete mode 100644 Libraries/oneMKL/sparse_conjugate_gradient/README.md
delete mode 100644 Libraries/oneMKL/sparse_conjugate_gradient/makefile
delete mode 100644 Libraries/oneMKL/sparse_conjugate_gradient/sample.json
delete mode 100644 Libraries/oneMKL/sparse_conjugate_gradient/sparse_cg.cpp
delete mode 100644 Libraries/oneMKL/sparse_conjugate_gradient/sparse_cg2.cpp
delete mode 100644 Libraries/oneMKL/sparse_conjugate_gradient/third-party-programs.txt
delete mode 100644 Libraries/oneMKL/sparse_conjugate_gradient/utils.hpp
delete mode 100644 Libraries/oneMKL/student_t_test/GNUmakefile
delete mode 100644 Libraries/oneMKL/student_t_test/License.txt
delete mode 100644 Libraries/oneMKL/student_t_test/README.md
delete mode 100644 Libraries/oneMKL/student_t_test/makefile
delete mode 100644 Libraries/oneMKL/student_t_test/sample.json
delete mode 100644 Libraries/oneMKL/student_t_test/t_test.cpp
delete mode 100644 Libraries/oneMKL/student_t_test/t_test_usm.cpp
delete mode 100644 Libraries/oneMKL/student_t_test/third-party-programs.txt
diff --git a/.gitmodules b/.gitmodules
index e69de29bb2..d07085d98e 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -0,0 +1,3 @@
+[submodule "Libraries/oneMKL"]
+ path = Libraries/oneMKL
+ url = https://github.com/oneapi-src/oneMKL-samples.git
diff --git a/Libraries/oneMKL/guided_american_options_SYCLmigration/01_dpct_output/CMakeLists.txt b/DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/01_dpct_output/CMakeLists.txt
similarity index 100%
rename from Libraries/oneMKL/guided_american_options_SYCLmigration/01_dpct_output/CMakeLists.txt
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/01_dpct_output/CMakeLists.txt
diff --git a/Libraries/oneMKL/guided_american_options_SYCLmigration/01_dpct_output/MainSourceFiles.yaml b/DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/01_dpct_output/MainSourceFiles.yaml
similarity index 100%
rename from Libraries/oneMKL/guided_american_options_SYCLmigration/01_dpct_output/MainSourceFiles.yaml
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/01_dpct_output/MainSourceFiles.yaml
diff --git a/Libraries/oneMKL/guided_american_options_SYCLmigration/01_dpct_output/longstaff_schwartz_svd_2.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/01_dpct_output/longstaff_schwartz_svd_2.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_american_options_SYCLmigration/01_dpct_output/longstaff_schwartz_svd_2.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/01_dpct_output/longstaff_schwartz_svd_2.dp.cpp
diff --git a/Libraries/oneMKL/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/CMakeLists.txt b/DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/CMakeLists.txt
similarity index 100%
rename from Libraries/oneMKL/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/CMakeLists.txt
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/CMakeLists.txt
diff --git a/Libraries/oneMKL/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/MainSourceFiles.yaml b/DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/MainSourceFiles.yaml
similarity index 100%
rename from Libraries/oneMKL/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/MainSourceFiles.yaml
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/MainSourceFiles.yaml
diff --git a/Libraries/oneMKL/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/atomic.hpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/atomic.hpp
similarity index 100%
rename from Libraries/oneMKL/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/atomic.hpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/atomic.hpp
diff --git a/Libraries/oneMKL/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/bindless_images.hpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/bindless_images.hpp
similarity index 100%
rename from Libraries/oneMKL/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/bindless_images.hpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/bindless_images.hpp
diff --git a/Libraries/oneMKL/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/blas_gemm_utils.hpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/blas_gemm_utils.hpp
similarity index 100%
rename from Libraries/oneMKL/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/blas_gemm_utils.hpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/blas_gemm_utils.hpp
diff --git a/Libraries/oneMKL/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/blas_utils.hpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/blas_utils.hpp
similarity index 100%
rename from Libraries/oneMKL/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/blas_utils.hpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/blas_utils.hpp
diff --git a/Libraries/oneMKL/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/ccl_utils.hpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/ccl_utils.hpp
similarity index 100%
rename from Libraries/oneMKL/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/ccl_utils.hpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/ccl_utils.hpp
diff --git a/Libraries/oneMKL/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/codepin/codepin.hpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/codepin/codepin.hpp
similarity index 100%
rename from Libraries/oneMKL/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/codepin/codepin.hpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/codepin/codepin.hpp
diff --git a/Libraries/oneMKL/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/codepin/serialization/basic.hpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/codepin/serialization/basic.hpp
similarity index 100%
rename from Libraries/oneMKL/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/codepin/serialization/basic.hpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/codepin/serialization/basic.hpp
diff --git a/Libraries/oneMKL/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/compat_service.hpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/compat_service.hpp
similarity index 100%
rename from Libraries/oneMKL/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/compat_service.hpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/compat_service.hpp
diff --git a/Libraries/oneMKL/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/device.hpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/device.hpp
similarity index 100%
rename from Libraries/oneMKL/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/device.hpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/device.hpp
diff --git a/Libraries/oneMKL/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/dnnl_utils.hpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/dnnl_utils.hpp
similarity index 100%
rename from Libraries/oneMKL/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/dnnl_utils.hpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/dnnl_utils.hpp
diff --git a/Libraries/oneMKL/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/dpct.hpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/dpct.hpp
similarity index 100%
rename from Libraries/oneMKL/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/dpct.hpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/dpct.hpp
diff --git a/Libraries/oneMKL/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/dpl_extras/algorithm.h b/DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/dpl_extras/algorithm.h
similarity index 100%
rename from Libraries/oneMKL/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/dpl_extras/algorithm.h
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/dpl_extras/algorithm.h
diff --git a/Libraries/oneMKL/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/dpl_extras/dpcpp_extensions.h b/DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/dpl_extras/dpcpp_extensions.h
similarity index 100%
rename from Libraries/oneMKL/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/dpl_extras/dpcpp_extensions.h
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/dpl_extras/dpcpp_extensions.h
diff --git a/Libraries/oneMKL/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/dpl_extras/functional.h b/DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/dpl_extras/functional.h
similarity index 100%
rename from Libraries/oneMKL/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/dpl_extras/functional.h
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/dpl_extras/functional.h
diff --git a/Libraries/oneMKL/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/dpl_extras/iterator_adaptor.h b/DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/dpl_extras/iterator_adaptor.h
similarity index 100%
rename from Libraries/oneMKL/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/dpl_extras/iterator_adaptor.h
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/dpl_extras/iterator_adaptor.h
diff --git a/Libraries/oneMKL/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/dpl_extras/iterators.h b/DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/dpl_extras/iterators.h
similarity index 100%
rename from Libraries/oneMKL/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/dpl_extras/iterators.h
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/dpl_extras/iterators.h
diff --git a/Libraries/oneMKL/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/dpl_extras/memory.h b/DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/dpl_extras/memory.h
similarity index 100%
rename from Libraries/oneMKL/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/dpl_extras/memory.h
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/dpl_extras/memory.h
diff --git a/Libraries/oneMKL/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/dpl_extras/numeric.h b/DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/dpl_extras/numeric.h
similarity index 100%
rename from Libraries/oneMKL/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/dpl_extras/numeric.h
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/dpl_extras/numeric.h
diff --git a/Libraries/oneMKL/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/dpl_extras/vector.h b/DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/dpl_extras/vector.h
similarity index 100%
rename from Libraries/oneMKL/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/dpl_extras/vector.h
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/dpl_extras/vector.h
diff --git a/Libraries/oneMKL/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/dpl_utils.hpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/dpl_utils.hpp
similarity index 100%
rename from Libraries/oneMKL/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/dpl_utils.hpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/dpl_utils.hpp
diff --git a/Libraries/oneMKL/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/fft_utils.hpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/fft_utils.hpp
similarity index 100%
rename from Libraries/oneMKL/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/fft_utils.hpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/fft_utils.hpp
diff --git a/Libraries/oneMKL/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/graph.hpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/graph.hpp
similarity index 100%
rename from Libraries/oneMKL/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/graph.hpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/graph.hpp
diff --git a/Libraries/oneMKL/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/group_utils.hpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/group_utils.hpp
similarity index 100%
rename from Libraries/oneMKL/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/group_utils.hpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/group_utils.hpp
diff --git a/Libraries/oneMKL/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/image.hpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/image.hpp
similarity index 100%
rename from Libraries/oneMKL/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/image.hpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/image.hpp
diff --git a/Libraries/oneMKL/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/kernel.hpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/kernel.hpp
similarity index 100%
rename from Libraries/oneMKL/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/kernel.hpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/kernel.hpp
diff --git a/Libraries/oneMKL/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/lapack_utils.hpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/lapack_utils.hpp
similarity index 100%
rename from Libraries/oneMKL/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/lapack_utils.hpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/lapack_utils.hpp
diff --git a/Libraries/oneMKL/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/lib_common_utils.hpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/lib_common_utils.hpp
similarity index 100%
rename from Libraries/oneMKL/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/lib_common_utils.hpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/lib_common_utils.hpp
diff --git a/Libraries/oneMKL/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/math.hpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/math.hpp
similarity index 100%
rename from Libraries/oneMKL/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/math.hpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/math.hpp
diff --git a/Libraries/oneMKL/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/memory.hpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/memory.hpp
similarity index 100%
rename from Libraries/oneMKL/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/memory.hpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/memory.hpp
diff --git a/Libraries/oneMKL/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/rng_utils.hpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/rng_utils.hpp
similarity index 100%
rename from Libraries/oneMKL/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/rng_utils.hpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/rng_utils.hpp
diff --git a/Libraries/oneMKL/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/sparse_utils.hpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/sparse_utils.hpp
similarity index 100%
rename from Libraries/oneMKL/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/sparse_utils.hpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/sparse_utils.hpp
diff --git a/Libraries/oneMKL/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/util.hpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/util.hpp
similarity index 100%
rename from Libraries/oneMKL/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/util.hpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/include/dpct/util.hpp
diff --git a/Libraries/oneMKL/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/longstaff_schwartz_svd_2.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/longstaff_schwartz_svd_2.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/longstaff_schwartz_svd_2.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/02_sycl_migrated_optimized/longstaff_schwartz_svd_2.dp.cpp
diff --git a/Libraries/oneMKL/guided_american_options_SYCLmigration/CMakeLists.txt b/DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/CMakeLists.txt
similarity index 100%
rename from Libraries/oneMKL/guided_american_options_SYCLmigration/CMakeLists.txt
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/CMakeLists.txt
diff --git a/Libraries/oneMKL/batched_linear_solver/License.txt b/DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/License.txt
similarity index 100%
rename from Libraries/oneMKL/batched_linear_solver/License.txt
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/License.txt
diff --git a/Libraries/oneMKL/guided_american_options_SYCLmigration/README.md b/DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/README.md
similarity index 100%
rename from Libraries/oneMKL/guided_american_options_SYCLmigration/README.md
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/README.md
diff --git a/Libraries/oneMKL/guided_american_options_SYCLmigration/sample.json b/DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/sample.json
similarity index 100%
rename from Libraries/oneMKL/guided_american_options_SYCLmigration/sample.json
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/sample.json
diff --git a/Libraries/oneMKL/guided_american_options_SYCLmigration/src/longstaff_schwartz_svd_2.cu b/DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/src/longstaff_schwartz_svd_2.cu
similarity index 100%
rename from Libraries/oneMKL/guided_american_options_SYCLmigration/src/longstaff_schwartz_svd_2.cu
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/src/longstaff_schwartz_svd_2.cu
diff --git a/Libraries/oneMKL/guided_american_options_SYCLmigration/third-party-programs.txt b/DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/third-party-programs.txt
similarity index 100%
rename from Libraries/oneMKL/guided_american_options_SYCLmigration/third-party-programs.txt
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_american_options_SYCLmigration/third-party-programs.txt
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Common/cublas_utils.h b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Common/cublas_utils.h
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Common/cublas_utils.h
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Common/cublas_utils.h
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-1/cublas_amax_example.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-1/cublas_amax_example.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-1/cublas_amax_example.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-1/cublas_amax_example.dp.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-1/cublas_amin_example.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-1/cublas_amin_example.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-1/cublas_amin_example.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-1/cublas_amin_example.dp.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-1/cublas_asum_example.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-1/cublas_asum_example.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-1/cublas_asum_example.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-1/cublas_asum_example.dp.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-1/cublas_axpy_example.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-1/cublas_axpy_example.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-1/cublas_axpy_example.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-1/cublas_axpy_example.dp.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-1/cublas_copy_example.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-1/cublas_copy_example.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-1/cublas_copy_example.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-1/cublas_copy_example.dp.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-1/cublas_dot_example.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-1/cublas_dot_example.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-1/cublas_dot_example.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-1/cublas_dot_example.dp.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-1/cublas_dotc_example.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-1/cublas_dotc_example.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-1/cublas_dotc_example.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-1/cublas_dotc_example.dp.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-1/cublas_nrm2_example.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-1/cublas_nrm2_example.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-1/cublas_nrm2_example.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-1/cublas_nrm2_example.dp.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-1/cublas_rot_example.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-1/cublas_rot_example.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-1/cublas_rot_example.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-1/cublas_rot_example.dp.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-1/cublas_rotg_example.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-1/cublas_rotg_example.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-1/cublas_rotg_example.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-1/cublas_rotg_example.dp.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-1/cublas_rotm_example.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-1/cublas_rotm_example.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-1/cublas_rotm_example.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-1/cublas_rotm_example.dp.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-1/cublas_rotmg_example.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-1/cublas_rotmg_example.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-1/cublas_rotmg_example.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-1/cublas_rotmg_example.dp.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-1/cublas_scal_example.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-1/cublas_scal_example.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-1/cublas_scal_example.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-1/cublas_scal_example.dp.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-1/cublas_swap_example.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-1/cublas_swap_example.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-1/cublas_swap_example.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-1/cublas_swap_example.dp.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_gbmv_example.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_gbmv_example.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_gbmv_example.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_gbmv_example.dp.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_gemv_example.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_gemv_example.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_gemv_example.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_gemv_example.dp.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_ger_example.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_ger_example.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_ger_example.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_ger_example.dp.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_hbmv_example.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_hbmv_example.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_hbmv_example.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_hbmv_example.dp.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_hemv_example.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_hemv_example.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_hemv_example.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_hemv_example.dp.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_her2_example.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_her2_example.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_her2_example.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_her2_example.dp.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_her_example.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_her_example.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_her_example.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_her_example.dp.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_hpmv_example.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_hpmv_example.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_hpmv_example.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_hpmv_example.dp.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_hpr2_example.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_hpr2_example.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_hpr2_example.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_hpr2_example.dp.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_hpr_example.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_hpr_example.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_hpr_example.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_hpr_example.dp.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_sbmv_example.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_sbmv_example.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_sbmv_example.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_sbmv_example.dp.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_spmv_example.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_spmv_example.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_spmv_example.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_spmv_example.dp.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_spr2_example.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_spr2_example.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_spr2_example.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_spr2_example.dp.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_spr_example.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_spr_example.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_spr_example.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_spr_example.dp.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_symv_example.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_symv_example.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_symv_example.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_symv_example.dp.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_syr2_example.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_syr2_example.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_syr2_example.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_syr2_example.dp.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_syr_example.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_syr_example.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_syr_example.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_syr_example.dp.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_tbmv_example.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_tbmv_example.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_tbmv_example.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_tbmv_example.dp.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_tbsv_example.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_tbsv_example.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_tbsv_example.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_tbsv_example.dp.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_tpmv_example.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_tpmv_example.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_tpmv_example.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_tpmv_example.dp.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_tpsv_example.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_tpsv_example.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_tpsv_example.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_tpsv_example.dp.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_trmv_example.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_trmv_example.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_trmv_example.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_trmv_example.dp.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_trsv_example.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_trsv_example.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_trsv_example.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-2/cublas_trsv_example.dp.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-3/cublas_gemm3m_example.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-3/cublas_gemm3m_example.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-3/cublas_gemm3m_example.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-3/cublas_gemm3m_example.dp.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-3/cublas_gemmBatched_example.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-3/cublas_gemmBatched_example.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-3/cublas_gemmBatched_example.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-3/cublas_gemmBatched_example.dp.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-3/cublas_gemmStridedBatched_example.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-3/cublas_gemmStridedBatched_example.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-3/cublas_gemmStridedBatched_example.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-3/cublas_gemmStridedBatched_example.dp.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-3/cublas_gemm_example.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-3/cublas_gemm_example.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-3/cublas_gemm_example.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-3/cublas_gemm_example.dp.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-3/cublas_hemm_example.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-3/cublas_hemm_example.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-3/cublas_hemm_example.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-3/cublas_hemm_example.dp.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-3/cublas_her2k_example.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-3/cublas_her2k_example.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-3/cublas_her2k_example.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-3/cublas_her2k_example.dp.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-3/cublas_herk_example.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-3/cublas_herk_example.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-3/cublas_herk_example.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-3/cublas_herk_example.dp.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-3/cublas_herkx_example.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-3/cublas_herkx_example.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-3/cublas_herkx_example.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-3/cublas_herkx_example.dp.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-3/cublas_symm_example.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-3/cublas_symm_example.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-3/cublas_symm_example.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-3/cublas_symm_example.dp.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-3/cublas_syr2k_example.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-3/cublas_syr2k_example.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-3/cublas_syr2k_example.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-3/cublas_syr2k_example.dp.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-3/cublas_syrk_example.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-3/cublas_syrk_example.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-3/cublas_syrk_example.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-3/cublas_syrk_example.dp.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-3/cublas_syrkx_example.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-3/cublas_syrkx_example.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-3/cublas_syrkx_example.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-3/cublas_syrkx_example.dp.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-3/cublas_trmm_example.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-3/cublas_trmm_example.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-3/cublas_trmm_example.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-3/cublas_trmm_example.dp.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-3/cublas_trsmBatched_example.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-3/cublas_trsmBatched_example.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-3/cublas_trsmBatched_example.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-3/cublas_trsmBatched_example.dp.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-3/cublas_trsm_example.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-3/cublas_trsm_example.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-3/cublas_trsm_example.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/01_sycl_dpct_output/Level-3/cublas_trsm_example.dp.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/CMakeLists.txt b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/CMakeLists.txt
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/CMakeLists.txt
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/CMakeLists.txt
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Common/cublas_utils.h b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Common/cublas_utils.h
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Common/cublas_utils.h
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Common/cublas_utils.h
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-1/CMakeLists.txt b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-1/CMakeLists.txt
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-1/CMakeLists.txt
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-1/CMakeLists.txt
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-1/amax.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-1/amax.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-1/amax.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-1/amax.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-1/amin.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-1/amin.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-1/amin.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-1/amin.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-1/asum.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-1/asum.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-1/asum.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-1/asum.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-1/axpy.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-1/axpy.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-1/axpy.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-1/axpy.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-1/copy.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-1/copy.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-1/copy.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-1/copy.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-1/dot.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-1/dot.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-1/dot.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-1/dot.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-1/dotc.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-1/dotc.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-1/dotc.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-1/dotc.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-1/nrm2.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-1/nrm2.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-1/nrm2.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-1/nrm2.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-1/rot.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-1/rot.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-1/rot.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-1/rot.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-1/rotg.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-1/rotg.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-1/rotg.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-1/rotg.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-1/rotm.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-1/rotm.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-1/rotm.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-1/rotm.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-1/rotmg.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-1/rotmg.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-1/rotmg.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-1/rotmg.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-1/scal.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-1/scal.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-1/scal.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-1/scal.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-1/swap.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-1/swap.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-1/swap.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-1/swap.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/CMakeLists.txt b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/CMakeLists.txt
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/CMakeLists.txt
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/CMakeLists.txt
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/gbmv.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/gbmv.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/gbmv.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/gbmv.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/gemv.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/gemv.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/gemv.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/gemv.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/ger.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/ger.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/ger.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/ger.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/hbmv.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/hbmv.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/hbmv.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/hbmv.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/hemv.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/hemv.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/hemv.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/hemv.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/her.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/her.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/her.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/her.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/her2.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/her2.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/her2.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/her2.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/hpmv.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/hpmv.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/hpmv.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/hpmv.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/hpr.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/hpr.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/hpr.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/hpr.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/hpr2.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/hpr2.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/hpr2.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/hpr2.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/sbmv.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/sbmv.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/sbmv.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/sbmv.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/spmv.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/spmv.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/spmv.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/spmv.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/spr.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/spr.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/spr.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/spr.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/spr2.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/spr2.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/spr2.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/spr2.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/symv.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/symv.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/symv.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/symv.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/syr.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/syr.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/syr.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/syr.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/syr2.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/syr2.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/syr2.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/syr2.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/tbmv.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/tbmv.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/tbmv.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/tbmv.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/tbsv.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/tbsv.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/tbsv.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/tbsv.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/tpmv.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/tpmv.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/tpmv.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/tpmv.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/tpsv.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/tpsv.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/tpsv.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/tpsv.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/trmv.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/trmv.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/trmv.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/trmv.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/trsv.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/trsv.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/trsv.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-2/trsv.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-3/CMakeLists.txt b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-3/CMakeLists.txt
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-3/CMakeLists.txt
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-3/CMakeLists.txt
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-3/gemm.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-3/gemm.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-3/gemm.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-3/gemm.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-3/gemm3m.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-3/gemm3m.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-3/gemm3m.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-3/gemm3m.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-3/gemmBatched.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-3/gemmBatched.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-3/gemmBatched.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-3/gemmBatched.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-3/gemmStridedBatched.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-3/gemmStridedBatched.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-3/gemmStridedBatched.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-3/gemmStridedBatched.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-3/hemm.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-3/hemm.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-3/hemm.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-3/hemm.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-3/her2k.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-3/her2k.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-3/her2k.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-3/her2k.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-3/herk.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-3/herk.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-3/herk.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-3/herk.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-3/herkx.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-3/herkx.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-3/herkx.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-3/herkx.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-3/symm.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-3/symm.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-3/symm.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-3/symm.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-3/syr2k.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-3/syr2k.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-3/syr2k.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-3/syr2k.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-3/syrk.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-3/syrk.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-3/syrk.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-3/syrk.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-3/syrkx.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-3/syrkx.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-3/syrkx.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-3/syrkx.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-3/trmm.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-3/trmm.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-3/trmm.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-3/trmm.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-3/trsm.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-3/trsm.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-3/trsm.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-3/trsm.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-3/trsmBatched.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-3/trsmBatched.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-3/trsmBatched.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/02_sycl_dpct_migrated/Level-3/trsmBatched.cpp
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/CMakeLists.txt b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/CMakeLists.txt
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/CMakeLists.txt
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/CMakeLists.txt
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/License.txt b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/License.txt
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/License.txt
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/License.txt
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/README.md b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/README.md
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/README.md
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/README.md
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/sample.json b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/sample.json
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/sample.json
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/sample.json
diff --git a/Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/third-party-programs.txt b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/third-party-programs.txt
similarity index 100%
rename from Libraries/oneMKL/guided_cuBLAS_examples_SYCLMigration/third-party-programs.txt
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuBLAS_examples_SYCLMigration/third-party-programs.txt
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/common/curand_utils.h b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/common/curand_utils.h
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/common/curand_utils.h
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/common/curand_utils.h
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/mrg32k3a/curand_mrg32k3a_lognormal_example.cpp.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/mrg32k3a/curand_mrg32k3a_lognormal_example.cpp.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/mrg32k3a/curand_mrg32k3a_lognormal_example.cpp.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/mrg32k3a/curand_mrg32k3a_lognormal_example.cpp.dp.cpp
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/mrg32k3a/curand_mrg32k3a_normal_example.cpp.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/mrg32k3a/curand_mrg32k3a_normal_example.cpp.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/mrg32k3a/curand_mrg32k3a_normal_example.cpp.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/mrg32k3a/curand_mrg32k3a_normal_example.cpp.dp.cpp
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/mrg32k3a/curand_mrg32k3a_poisson_example.cpp.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/mrg32k3a/curand_mrg32k3a_poisson_example.cpp.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/mrg32k3a/curand_mrg32k3a_poisson_example.cpp.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/mrg32k3a/curand_mrg32k3a_poisson_example.cpp.dp.cpp
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/mrg32k3a/curand_mrg32k3a_uniform_example.cpp.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/mrg32k3a/curand_mrg32k3a_uniform_example.cpp.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/mrg32k3a/curand_mrg32k3a_uniform_example.cpp.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/mrg32k3a/curand_mrg32k3a_uniform_example.cpp.dp.cpp
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/mt19937/.gitignore b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/mt19937/.gitignore
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/mt19937/.gitignore
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/mt19937/.gitignore
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/mt19937/curand_mt19937_lognormal_example.cpp.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/mt19937/curand_mt19937_lognormal_example.cpp.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/mt19937/curand_mt19937_lognormal_example.cpp.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/mt19937/curand_mt19937_lognormal_example.cpp.dp.cpp
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/mt19937/curand_mt19937_normal_example.cpp.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/mt19937/curand_mt19937_normal_example.cpp.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/mt19937/curand_mt19937_normal_example.cpp.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/mt19937/curand_mt19937_normal_example.cpp.dp.cpp
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/mt19937/curand_mt19937_poisson_example.cpp.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/mt19937/curand_mt19937_poisson_example.cpp.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/mt19937/curand_mt19937_poisson_example.cpp.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/mt19937/curand_mt19937_poisson_example.cpp.dp.cpp
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/mt19937/curand_mt19937_uniform_example.cpp.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/mt19937/curand_mt19937_uniform_example.cpp.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/mt19937/curand_mt19937_uniform_example.cpp.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/mt19937/curand_mt19937_uniform_example.cpp.dp.cpp
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/mtgp32/.gitignore b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/mtgp32/.gitignore
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/mtgp32/.gitignore
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/mtgp32/.gitignore
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/mtgp32/curand_mtgp32_lognormal_example.cpp.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/mtgp32/curand_mtgp32_lognormal_example.cpp.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/mtgp32/curand_mtgp32_lognormal_example.cpp.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/mtgp32/curand_mtgp32_lognormal_example.cpp.dp.cpp
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/mtgp32/curand_mtgp32_normal_example.cpp.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/mtgp32/curand_mtgp32_normal_example.cpp.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/mtgp32/curand_mtgp32_normal_example.cpp.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/mtgp32/curand_mtgp32_normal_example.cpp.dp.cpp
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/mtgp32/curand_mtgp32_poisson_example.cpp.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/mtgp32/curand_mtgp32_poisson_example.cpp.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/mtgp32/curand_mtgp32_poisson_example.cpp.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/mtgp32/curand_mtgp32_poisson_example.cpp.dp.cpp
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/mtgp32/curand_mtgp32_uniform_example.cpp.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/mtgp32/curand_mtgp32_uniform_example.cpp.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/mtgp32/curand_mtgp32_uniform_example.cpp.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/mtgp32/curand_mtgp32_uniform_example.cpp.dp.cpp
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/philox/.gitignore b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/philox/.gitignore
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/philox/.gitignore
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/philox/.gitignore
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/philox/curand_philox_lognormal_example.cpp.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/philox/curand_philox_lognormal_example.cpp.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/philox/curand_philox_lognormal_example.cpp.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/philox/curand_philox_lognormal_example.cpp.dp.cpp
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/philox/curand_philox_normal_example.cpp.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/philox/curand_philox_normal_example.cpp.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/philox/curand_philox_normal_example.cpp.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/philox/curand_philox_normal_example.cpp.dp.cpp
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/philox/curand_philox_poisson_example.cpp.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/philox/curand_philox_poisson_example.cpp.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/philox/curand_philox_poisson_example.cpp.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/philox/curand_philox_poisson_example.cpp.dp.cpp
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/philox/curand_philox_uniform_example.cpp.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/philox/curand_philox_uniform_example.cpp.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/philox/curand_philox_uniform_example.cpp.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/philox/curand_philox_uniform_example.cpp.dp.cpp
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/scrambled_sobol32/.gitignore b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/scrambled_sobol32/.gitignore
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/scrambled_sobol32/.gitignore
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/scrambled_sobol32/.gitignore
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/scrambled_sobol32/curand_scrambled_sobol32_lognormal_example.cpp.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/scrambled_sobol32/curand_scrambled_sobol32_lognormal_example.cpp.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/scrambled_sobol32/curand_scrambled_sobol32_lognormal_example.cpp.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/scrambled_sobol32/curand_scrambled_sobol32_lognormal_example.cpp.dp.cpp
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/scrambled_sobol32/curand_scrambled_sobol32_normal_example.cpp.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/scrambled_sobol32/curand_scrambled_sobol32_normal_example.cpp.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/scrambled_sobol32/curand_scrambled_sobol32_normal_example.cpp.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/scrambled_sobol32/curand_scrambled_sobol32_normal_example.cpp.dp.cpp
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/scrambled_sobol32/curand_scrambled_sobol32_poisson_example.cpp.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/scrambled_sobol32/curand_scrambled_sobol32_poisson_example.cpp.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/scrambled_sobol32/curand_scrambled_sobol32_poisson_example.cpp.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/scrambled_sobol32/curand_scrambled_sobol32_poisson_example.cpp.dp.cpp
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/scrambled_sobol32/curand_scrambled_sobol32_uniform_example.cpp.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/scrambled_sobol32/curand_scrambled_sobol32_uniform_example.cpp.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/scrambled_sobol32/curand_scrambled_sobol32_uniform_example.cpp.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/scrambled_sobol32/curand_scrambled_sobol32_uniform_example.cpp.dp.cpp
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/scrambled_sobol64/.gitignore b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/scrambled_sobol64/.gitignore
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/scrambled_sobol64/.gitignore
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/scrambled_sobol64/.gitignore
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/scrambled_sobol64/curand_scrambled_sobol64_lognormal_example.cpp.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/scrambled_sobol64/curand_scrambled_sobol64_lognormal_example.cpp.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/scrambled_sobol64/curand_scrambled_sobol64_lognormal_example.cpp.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/scrambled_sobol64/curand_scrambled_sobol64_lognormal_example.cpp.dp.cpp
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/scrambled_sobol64/curand_scrambled_sobol64_normal_example.cpp.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/scrambled_sobol64/curand_scrambled_sobol64_normal_example.cpp.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/scrambled_sobol64/curand_scrambled_sobol64_normal_example.cpp.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/scrambled_sobol64/curand_scrambled_sobol64_normal_example.cpp.dp.cpp
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/scrambled_sobol64/curand_scrambled_sobol64_poisson_example.cpp.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/scrambled_sobol64/curand_scrambled_sobol64_poisson_example.cpp.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/scrambled_sobol64/curand_scrambled_sobol64_poisson_example.cpp.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/scrambled_sobol64/curand_scrambled_sobol64_poisson_example.cpp.dp.cpp
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/scrambled_sobol64/curand_scrambled_sobol64_uniform_example.cpp.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/scrambled_sobol64/curand_scrambled_sobol64_uniform_example.cpp.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/scrambled_sobol64/curand_scrambled_sobol64_uniform_example.cpp.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/scrambled_sobol64/curand_scrambled_sobol64_uniform_example.cpp.dp.cpp
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/sobol32/.gitignore b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/sobol32/.gitignore
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/sobol32/.gitignore
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/sobol32/.gitignore
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/sobol32/curand_sobol32_lognormal_example.cpp.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/sobol32/curand_sobol32_lognormal_example.cpp.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/sobol32/curand_sobol32_lognormal_example.cpp.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/sobol32/curand_sobol32_lognormal_example.cpp.dp.cpp
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/sobol32/curand_sobol32_normal_example.cpp.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/sobol32/curand_sobol32_normal_example.cpp.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/sobol32/curand_sobol32_normal_example.cpp.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/sobol32/curand_sobol32_normal_example.cpp.dp.cpp
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/sobol32/curand_sobol32_poisson_example.cpp.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/sobol32/curand_sobol32_poisson_example.cpp.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/sobol32/curand_sobol32_poisson_example.cpp.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/sobol32/curand_sobol32_poisson_example.cpp.dp.cpp
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/sobol32/curand_sobol32_uniform_example.cpp.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/sobol32/curand_sobol32_uniform_example.cpp.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/sobol32/curand_sobol32_uniform_example.cpp.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/sobol32/curand_sobol32_uniform_example.cpp.dp.cpp
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/sobol64/.gitignore b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/sobol64/.gitignore
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/sobol64/.gitignore
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/sobol64/.gitignore
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/sobol64/curand_sobol64_lognormal_example.cpp.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/sobol64/curand_sobol64_lognormal_example.cpp.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/sobol64/curand_sobol64_lognormal_example.cpp.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/sobol64/curand_sobol64_lognormal_example.cpp.dp.cpp
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/sobol64/curand_sobol64_normal_example.cpp.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/sobol64/curand_sobol64_normal_example.cpp.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/sobol64/curand_sobol64_normal_example.cpp.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/sobol64/curand_sobol64_normal_example.cpp.dp.cpp
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/sobol64/curand_sobol64_poisson_example.cpp.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/sobol64/curand_sobol64_poisson_example.cpp.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/sobol64/curand_sobol64_poisson_example.cpp.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/sobol64/curand_sobol64_poisson_example.cpp.dp.cpp
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/sobol64/curand_sobol64_uniform_example.cpp.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/sobol64/curand_sobol64_uniform_example.cpp.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/sobol64/curand_sobol64_uniform_example.cpp.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/01_sycl_dpct_output/sobol64/curand_sobol64_uniform_example.cpp.dp.cpp
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/CMakeLists.txt b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/CMakeLists.txt
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/CMakeLists.txt
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/CMakeLists.txt
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/Common/curand_utils.h b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/Common/curand_utils.h
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/Common/curand_utils.h
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/Common/curand_utils.h
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mrg32k3a/CMakeLists.txt b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mrg32k3a/CMakeLists.txt
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mrg32k3a/CMakeLists.txt
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mrg32k3a/CMakeLists.txt
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mrg32k3a/mrg32k3a_lognormal.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mrg32k3a/mrg32k3a_lognormal.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mrg32k3a/mrg32k3a_lognormal.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mrg32k3a/mrg32k3a_lognormal.cpp
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mrg32k3a/mrg32k3a_normal.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mrg32k3a/mrg32k3a_normal.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mrg32k3a/mrg32k3a_normal.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mrg32k3a/mrg32k3a_normal.cpp
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mrg32k3a/mrg32k3a_poisson.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mrg32k3a/mrg32k3a_poisson.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mrg32k3a/mrg32k3a_poisson.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mrg32k3a/mrg32k3a_poisson.cpp
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mrg32k3a/mrg32k3a_uniform.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mrg32k3a/mrg32k3a_uniform.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mrg32k3a/mrg32k3a_uniform.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mrg32k3a/mrg32k3a_uniform.cpp
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mt19937/.gitignore b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mt19937/.gitignore
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mt19937/.gitignore
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mt19937/.gitignore
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mt19937/CMakeLists.txt b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mt19937/CMakeLists.txt
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mt19937/CMakeLists.txt
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mt19937/CMakeLists.txt
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mt19937/mt19937_lognormal.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mt19937/mt19937_lognormal.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mt19937/mt19937_lognormal.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mt19937/mt19937_lognormal.cpp
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mt19937/mt19937_normal.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mt19937/mt19937_normal.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mt19937/mt19937_normal.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mt19937/mt19937_normal.cpp
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mt19937/mt19937_poisson.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mt19937/mt19937_poisson.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mt19937/mt19937_poisson.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mt19937/mt19937_poisson.cpp
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mt19937/mt19937_uniform.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mt19937/mt19937_uniform.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mt19937/mt19937_uniform.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mt19937/mt19937_uniform.cpp
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mtgp32/.gitignore b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mtgp32/.gitignore
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mtgp32/.gitignore
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mtgp32/.gitignore
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mtgp32/CMakeLists.txt b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mtgp32/CMakeLists.txt
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mtgp32/CMakeLists.txt
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mtgp32/CMakeLists.txt
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mtgp32/mtgp32_lognormal.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mtgp32/mtgp32_lognormal.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mtgp32/mtgp32_lognormal.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mtgp32/mtgp32_lognormal.cpp
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mtgp32/mtgp32_normal.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mtgp32/mtgp32_normal.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mtgp32/mtgp32_normal.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mtgp32/mtgp32_normal.cpp
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mtgp32/mtgp32_poisson.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mtgp32/mtgp32_poisson.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mtgp32/mtgp32_poisson.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mtgp32/mtgp32_poisson.cpp
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mtgp32/mtgp32_uniform.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mtgp32/mtgp32_uniform.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mtgp32/mtgp32_uniform.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/mtgp32/mtgp32_uniform.cpp
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/philox/.gitignore b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/philox/.gitignore
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/philox/.gitignore
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/philox/.gitignore
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/philox/CMakeLists.txt b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/philox/CMakeLists.txt
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/philox/CMakeLists.txt
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/philox/CMakeLists.txt
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/philox/philox_lognormal.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/philox/philox_lognormal.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/philox/philox_lognormal.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/philox/philox_lognormal.cpp
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/philox/philox_normal.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/philox/philox_normal.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/philox/philox_normal.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/philox/philox_normal.cpp
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/philox/philox_poisson.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/philox/philox_poisson.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/philox/philox_poisson.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/philox/philox_poisson.cpp
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/philox/philox_uniform.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/philox/philox_uniform.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/philox/philox_uniform.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/philox/philox_uniform.cpp
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/scrambled_sobol32/.gitignore b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/scrambled_sobol32/.gitignore
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/scrambled_sobol32/.gitignore
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/scrambled_sobol32/.gitignore
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/scrambled_sobol32/CMakeLists.txt b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/scrambled_sobol32/CMakeLists.txt
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/scrambled_sobol32/CMakeLists.txt
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/scrambled_sobol32/CMakeLists.txt
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/scrambled_sobol32/scrambled_sobol32_lognormal.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/scrambled_sobol32/scrambled_sobol32_lognormal.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/scrambled_sobol32/scrambled_sobol32_lognormal.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/scrambled_sobol32/scrambled_sobol32_lognormal.cpp
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/scrambled_sobol32/scrambled_sobol32_normal.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/scrambled_sobol32/scrambled_sobol32_normal.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/scrambled_sobol32/scrambled_sobol32_normal.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/scrambled_sobol32/scrambled_sobol32_normal.cpp
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/scrambled_sobol32/scrambled_sobol32_poisson.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/scrambled_sobol32/scrambled_sobol32_poisson.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/scrambled_sobol32/scrambled_sobol32_poisson.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/scrambled_sobol32/scrambled_sobol32_poisson.cpp
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/scrambled_sobol32/scrambled_sobol32_uniform.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/scrambled_sobol32/scrambled_sobol32_uniform.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/scrambled_sobol32/scrambled_sobol32_uniform.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/scrambled_sobol32/scrambled_sobol32_uniform.cpp
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/scrambled_sobol64/.gitignore b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/scrambled_sobol64/.gitignore
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/scrambled_sobol64/.gitignore
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/scrambled_sobol64/.gitignore
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/scrambled_sobol64/CMakeLists.txt b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/scrambled_sobol64/CMakeLists.txt
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/scrambled_sobol64/CMakeLists.txt
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/scrambled_sobol64/CMakeLists.txt
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/scrambled_sobol64/scrambled_sobol64_lognormal.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/scrambled_sobol64/scrambled_sobol64_lognormal.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/scrambled_sobol64/scrambled_sobol64_lognormal.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/scrambled_sobol64/scrambled_sobol64_lognormal.cpp
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/scrambled_sobol64/scrambled_sobol64_normal.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/scrambled_sobol64/scrambled_sobol64_normal.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/scrambled_sobol64/scrambled_sobol64_normal.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/scrambled_sobol64/scrambled_sobol64_normal.cpp
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/scrambled_sobol64/scrambled_sobol64_poisson.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/scrambled_sobol64/scrambled_sobol64_poisson.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/scrambled_sobol64/scrambled_sobol64_poisson.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/scrambled_sobol64/scrambled_sobol64_poisson.cpp
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/scrambled_sobol64/scrambled_sobol64_uniform.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/scrambled_sobol64/scrambled_sobol64_uniform.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/scrambled_sobol64/scrambled_sobol64_uniform.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/scrambled_sobol64/scrambled_sobol64_uniform.cpp
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/sobol32/.gitignore b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/sobol32/.gitignore
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/sobol32/.gitignore
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/sobol32/.gitignore
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/sobol32/CMakeLists.txt b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/sobol32/CMakeLists.txt
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/sobol32/CMakeLists.txt
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/sobol32/CMakeLists.txt
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/sobol32/sobol32_lognormal.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/sobol32/sobol32_lognormal.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/sobol32/sobol32_lognormal.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/sobol32/sobol32_lognormal.cpp
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/sobol32/sobol32_normal.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/sobol32/sobol32_normal.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/sobol32/sobol32_normal.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/sobol32/sobol32_normal.cpp
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/sobol32/sobol32_poisson.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/sobol32/sobol32_poisson.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/sobol32/sobol32_poisson.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/sobol32/sobol32_poisson.cpp
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/sobol32/sobol32_uniform.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/sobol32/sobol32_uniform.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/sobol32/sobol32_uniform.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/sobol32/sobol32_uniform.cpp
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/sobol64/.gitignore b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/sobol64/.gitignore
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/sobol64/.gitignore
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/sobol64/.gitignore
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/sobol64/CMakeLists.txt b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/sobol64/CMakeLists.txt
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/sobol64/CMakeLists.txt
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/sobol64/CMakeLists.txt
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/sobol64/sobol64_lognormal.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/sobol64/sobol64_lognormal.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/sobol64/sobol64_lognormal.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/sobol64/sobol64_lognormal.cpp
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/sobol64/sobol64_normal.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/sobol64/sobol64_normal.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/sobol64/sobol64_normal.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/sobol64/sobol64_normal.cpp
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/sobol64/sobol64_poisson.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/sobol64/sobol64_poisson.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/sobol64/sobol64_poisson.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/sobol64/sobol64_poisson.cpp
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/sobol64/sobol64_uniform.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/sobol64/sobol64_uniform.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/sobol64/sobol64_uniform.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/02_sycl_dpct_migrated/sobol64/sobol64_uniform.cpp
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/CMakeLists.txt b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/CMakeLists.txt
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/CMakeLists.txt
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/CMakeLists.txt
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/License.txt b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/License.txt
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/License.txt
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/License.txt
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/README.md b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/README.md
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/README.md
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/README.md
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/sample.json b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/sample.json
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/sample.json
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/sample.json
diff --git a/Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/third-party-programs.txt b/DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/third-party-programs.txt
similarity index 100%
rename from Libraries/oneMKL/guided_cuRAND_examples_SYCLMigration/third-party-programs.txt
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_cuRAND_examples_SYCLMigration/third-party-programs.txt
diff --git a/Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/CMakeLists.txt b/DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/CMakeLists.txt
similarity index 100%
rename from Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/CMakeLists.txt
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/CMakeLists.txt
diff --git a/Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/Common/helper_cuda.h b/DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/Common/helper_cuda.h
similarity index 100%
rename from Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/Common/helper_cuda.h
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/Common/helper_cuda.h
diff --git a/Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/Common/helper_cuda.h.yaml b/DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/Common/helper_cuda.h.yaml
similarity index 100%
rename from Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/Common/helper_cuda.h.yaml
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/Common/helper_cuda.h.yaml
diff --git a/Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/Common/helper_string.h b/DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/Common/helper_string.h
similarity index 100%
rename from Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/Common/helper_string.h
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/Common/helper_string.h
diff --git a/Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/Samples/4_CUDA_Libraries/simpleCUBLAS_LU/simpleCUBLAS_LU.cpp.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/Samples/4_CUDA_Libraries/simpleCUBLAS_LU/simpleCUBLAS_LU.cpp.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/Samples/4_CUDA_Libraries/simpleCUBLAS_LU/simpleCUBLAS_LU.cpp.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/Samples/4_CUDA_Libraries/simpleCUBLAS_LU/simpleCUBLAS_LU.cpp.dp.cpp
diff --git a/Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/atomic.hpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/atomic.hpp
similarity index 100%
rename from Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/atomic.hpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/atomic.hpp
diff --git a/Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/blas_utils.hpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/blas_utils.hpp
similarity index 100%
rename from Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/blas_utils.hpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/blas_utils.hpp
diff --git a/Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/ccl_utils.hpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/ccl_utils.hpp
similarity index 100%
rename from Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/ccl_utils.hpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/ccl_utils.hpp
diff --git a/Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/device.hpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/device.hpp
similarity index 100%
rename from Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/device.hpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/device.hpp
diff --git a/Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/dnnl_utils.hpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/dnnl_utils.hpp
similarity index 100%
rename from Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/dnnl_utils.hpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/dnnl_utils.hpp
diff --git a/Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/dpct.hpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/dpct.hpp
similarity index 100%
rename from Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/dpct.hpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/dpct.hpp
diff --git a/Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/dpl_extras/algorithm.h b/DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/dpl_extras/algorithm.h
similarity index 100%
rename from Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/dpl_extras/algorithm.h
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/dpl_extras/algorithm.h
diff --git a/Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/dpl_extras/dpcpp_extensions.h b/DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/dpl_extras/dpcpp_extensions.h
similarity index 100%
rename from Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/dpl_extras/dpcpp_extensions.h
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/dpl_extras/dpcpp_extensions.h
diff --git a/Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/dpl_extras/functional.h b/DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/dpl_extras/functional.h
similarity index 100%
rename from Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/dpl_extras/functional.h
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/dpl_extras/functional.h
diff --git a/Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/dpl_extras/iterators.h b/DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/dpl_extras/iterators.h
similarity index 100%
rename from Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/dpl_extras/iterators.h
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/dpl_extras/iterators.h
diff --git a/Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/dpl_extras/memory.h b/DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/dpl_extras/memory.h
similarity index 100%
rename from Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/dpl_extras/memory.h
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/dpl_extras/memory.h
diff --git a/Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/dpl_extras/numeric.h b/DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/dpl_extras/numeric.h
similarity index 100%
rename from Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/dpl_extras/numeric.h
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/dpl_extras/numeric.h
diff --git a/Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/dpl_extras/vector.h b/DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/dpl_extras/vector.h
similarity index 100%
rename from Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/dpl_extras/vector.h
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/dpl_extras/vector.h
diff --git a/Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/dpl_utils.hpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/dpl_utils.hpp
similarity index 100%
rename from Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/dpl_utils.hpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/dpl_utils.hpp
diff --git a/Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/fft_utils.hpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/fft_utils.hpp
similarity index 100%
rename from Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/fft_utils.hpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/fft_utils.hpp
diff --git a/Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/image.hpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/image.hpp
similarity index 100%
rename from Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/image.hpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/image.hpp
diff --git a/Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/kernel.hpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/kernel.hpp
similarity index 100%
rename from Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/kernel.hpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/kernel.hpp
diff --git a/Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/lapack_utils.hpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/lapack_utils.hpp
similarity index 100%
rename from Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/lapack_utils.hpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/lapack_utils.hpp
diff --git a/Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/lib_common_utils.hpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/lib_common_utils.hpp
similarity index 100%
rename from Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/lib_common_utils.hpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/lib_common_utils.hpp
diff --git a/Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/math.hpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/math.hpp
similarity index 100%
rename from Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/math.hpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/math.hpp
diff --git a/Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/memory.hpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/memory.hpp
similarity index 100%
rename from Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/memory.hpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/memory.hpp
diff --git a/Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/rng_utils.hpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/rng_utils.hpp
similarity index 100%
rename from Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/rng_utils.hpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/rng_utils.hpp
diff --git a/Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/sparse_utils.hpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/sparse_utils.hpp
similarity index 100%
rename from Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/sparse_utils.hpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/sparse_utils.hpp
diff --git a/Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/util.hpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/util.hpp
similarity index 100%
rename from Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/util.hpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/01_dpct_output/include/dpct/util.hpp
diff --git a/Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/CMakeLists.txt b/DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/CMakeLists.txt
similarity index 100%
rename from Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/CMakeLists.txt
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/CMakeLists.txt
diff --git a/Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/Common/helper_cuda.h b/DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/Common/helper_cuda.h
similarity index 100%
rename from Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/Common/helper_cuda.h
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/Common/helper_cuda.h
diff --git a/Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/Common/helper_cuda.h.yaml b/DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/Common/helper_cuda.h.yaml
similarity index 100%
rename from Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/Common/helper_cuda.h.yaml
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/Common/helper_cuda.h.yaml
diff --git a/Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/Common/helper_string.h b/DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/Common/helper_string.h
similarity index 100%
rename from Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/Common/helper_string.h
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/Common/helper_string.h
diff --git a/Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/Samples/4_CUDA_Libraries/simpleCUBLAS_LU/simpleCUBLAS_LU.cpp.dp.cpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/Samples/4_CUDA_Libraries/simpleCUBLAS_LU/simpleCUBLAS_LU.cpp.dp.cpp
similarity index 100%
rename from Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/Samples/4_CUDA_Libraries/simpleCUBLAS_LU/simpleCUBLAS_LU.cpp.dp.cpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/Samples/4_CUDA_Libraries/simpleCUBLAS_LU/simpleCUBLAS_LU.cpp.dp.cpp
diff --git a/Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/atomic.hpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/atomic.hpp
similarity index 100%
rename from Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/atomic.hpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/atomic.hpp
diff --git a/Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/blas_utils.hpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/blas_utils.hpp
similarity index 100%
rename from Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/blas_utils.hpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/blas_utils.hpp
diff --git a/Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/ccl_utils.hpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/ccl_utils.hpp
similarity index 100%
rename from Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/ccl_utils.hpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/ccl_utils.hpp
diff --git a/Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/device.hpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/device.hpp
similarity index 100%
rename from Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/device.hpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/device.hpp
diff --git a/Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/dnnl_utils.hpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/dnnl_utils.hpp
similarity index 100%
rename from Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/dnnl_utils.hpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/dnnl_utils.hpp
diff --git a/Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/dpct.hpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/dpct.hpp
similarity index 100%
rename from Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/dpct.hpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/dpct.hpp
diff --git a/Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/dpl_extras/algorithm.h b/DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/dpl_extras/algorithm.h
similarity index 100%
rename from Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/dpl_extras/algorithm.h
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/dpl_extras/algorithm.h
diff --git a/Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/dpl_extras/dpcpp_extensions.h b/DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/dpl_extras/dpcpp_extensions.h
similarity index 100%
rename from Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/dpl_extras/dpcpp_extensions.h
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/dpl_extras/dpcpp_extensions.h
diff --git a/Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/dpl_extras/functional.h b/DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/dpl_extras/functional.h
similarity index 100%
rename from Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/dpl_extras/functional.h
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/dpl_extras/functional.h
diff --git a/Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/dpl_extras/iterators.h b/DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/dpl_extras/iterators.h
similarity index 100%
rename from Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/dpl_extras/iterators.h
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/dpl_extras/iterators.h
diff --git a/Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/dpl_extras/memory.h b/DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/dpl_extras/memory.h
similarity index 100%
rename from Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/dpl_extras/memory.h
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/dpl_extras/memory.h
diff --git a/Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/dpl_extras/numeric.h b/DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/dpl_extras/numeric.h
similarity index 100%
rename from Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/dpl_extras/numeric.h
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/dpl_extras/numeric.h
diff --git a/Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/dpl_extras/vector.h b/DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/dpl_extras/vector.h
similarity index 100%
rename from Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/dpl_extras/vector.h
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/dpl_extras/vector.h
diff --git a/Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/dpl_utils.hpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/dpl_utils.hpp
similarity index 100%
rename from Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/dpl_utils.hpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/dpl_utils.hpp
diff --git a/Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/fft_utils.hpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/fft_utils.hpp
similarity index 100%
rename from Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/fft_utils.hpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/fft_utils.hpp
diff --git a/Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/image.hpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/image.hpp
similarity index 100%
rename from Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/image.hpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/image.hpp
diff --git a/Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/kernel.hpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/kernel.hpp
similarity index 100%
rename from Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/kernel.hpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/kernel.hpp
diff --git a/Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/lapack_utils.hpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/lapack_utils.hpp
similarity index 100%
rename from Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/lapack_utils.hpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/lapack_utils.hpp
diff --git a/Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/lib_common_utils.hpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/lib_common_utils.hpp
similarity index 100%
rename from Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/lib_common_utils.hpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/lib_common_utils.hpp
diff --git a/Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/math.hpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/math.hpp
similarity index 100%
rename from Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/math.hpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/math.hpp
diff --git a/Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/memory.hpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/memory.hpp
similarity index 100%
rename from Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/memory.hpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/memory.hpp
diff --git a/Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/rng_utils.hpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/rng_utils.hpp
similarity index 100%
rename from Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/rng_utils.hpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/rng_utils.hpp
diff --git a/Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/sparse_utils.hpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/sparse_utils.hpp
similarity index 100%
rename from Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/sparse_utils.hpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/sparse_utils.hpp
diff --git a/Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/util.hpp b/DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/util.hpp
similarity index 100%
rename from Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/util.hpp
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/02_sycl_migrated/include/dpct/util.hpp
diff --git a/Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/CMakeLists.txt b/DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/CMakeLists.txt
similarity index 100%
rename from Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/CMakeLists.txt
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/CMakeLists.txt
diff --git a/Libraries/oneMKL/binomial/License.txt b/DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/License.txt
similarity index 100%
rename from Libraries/oneMKL/binomial/License.txt
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/License.txt
diff --git a/Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/README.md b/DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/README.md
similarity index 100%
rename from Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/README.md
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/README.md
diff --git a/Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/sample.json b/DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/sample.json
similarity index 100%
rename from Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/sample.json
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/sample.json
diff --git a/Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/third-party-programs.txt b/DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/third-party-programs.txt
similarity index 100%
rename from Libraries/oneMKL/guided_simpleCUBLAS_LU_SYCLMigration/third-party-programs.txt
rename to DirectProgramming/C++SYCL/SYCLMigration/guided_simpleCUBLAS_LU_SYCLMigration/third-party-programs.txt
diff --git a/Libraries/oneMKL/batched_linear_solver/README.md b/Libraries/oneMKL/batched_linear_solver/README.md
deleted file mode 100644
index 64b6b5139b..0000000000
--- a/Libraries/oneMKL/batched_linear_solver/README.md
+++ /dev/null
@@ -1,105 +0,0 @@
-# Batched Linear Solver Sample
-Solving a batch of linear systems is a common operation in engineering and scientific computing.
-Consequently, the oneMKL LAPACK implementation provides batched LU solver functions that are optimized
-for Intel processors.
-
-For more information on oneMKL, and complete documentation of all oneMKL routines, see https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/onemkl.html.
-
-| Optimized for | Description
-|:--- |:---
-| OS | Linux* Ubuntu* 18.04
-| Hardware | Intel® Skylake with Gen9 or newer
-| Software | Intel® oneMKL, Intel® Fortran Compiler
-| What you will learn | How to optimize host-device data transfer when using OpenMP target offload
-| Time to complete | 45 minutes
-
-## Purpose
-This sample shows how to solve a batch of linear systems using the batched solver functions
-([``getrf_batch_strided``](https://www.intel.com/content/www/us/en/docs/onemkl/developer-reference-fortran/2023-1/getrf-batch-strided.html) and [``getrs_batch_strided``](https://www.intel.com/content/www/us/en/docs/onemkl/developer-reference-fortran/2023-1/getrs-batch-strided.html)), how to offload these functions to an accelerator using the OpenMP target directives, and how to minimize host-device data transfer to achieve better performance. The following article provides more detailed descriptions of the sample codes: [Solving Linear Systems Using oneMKL and OpenMP Target Offloading](https://www.intel.com/content/www/us/en/developer/articles/technical/solve-linear-systems-onemkl-openmp-target-offload.html).
-
-## Key Implementation Details
-In general, the factored matrices and pivots can be discarded after the linear systems are solved. Only the solutions
-need to be transferred back to the host. Two sample codes are provided: `lu_solve_omp_offload.F90` and
-`lu_solve_omp_offload_optimized.F90`. The first shows a straightforward way to
-dispatch the LU factorization and solver functions using two OpenMP target regions. The code gives correct results
-but performs some unnecessary host-device data transfer. The second sample code fuses the two OpenMP regions to
-improve performance by minimizing data transfer.
-
-## 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 can be found here: [third-party-programs.txt](https://github.com/oneapi-src/oneAPI-samples/blob/master/third-party-programs.txt).
-
-## Building and Running the Batched Linear Solver Sample
-> **Note**: If you have not already done so, set up your CLI
-> environment by sourcing the `setvars` script located in
-> the root of your oneAPI installation.
->
-> Linux Sudo: . /opt/intel/oneapi/setvars.sh
->
-> Linux User: . ~/intel/oneapi/setvars.sh
->
->For more information on environment variables, see [Use the setvars Script for 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).
-
-Run `make` to build and run the sample. Three programs are generated:
-
-1. `lu_solve`: CPU-only, OpenMP disabled
-2. `lu_solve_omp_offload`: two OpenMP target regions with accelerator offload enabled
-3. `lu_solve_omp_offload_optimized`: one OpenMP target offload region to minimize host-device data transfer
-
-Note that the makefile only runs small tests to verify that the executables are working correctly. The problem sizes are too small to justify accelerator offload. Use the following command-line options to run the tests shown in [Solving Linear Systems Using oneMKL and OpenMP Target Offloading](https://www.intel.com/content/www/us/en/developer/articles/technical/solve-linear-systems-onemkl-openmp-target-offload.html): `-n 16000 -b 8 -r 1 -c 5`.
-
-> **Note**: By default this makefile will be executable on devices with double precision support (fp64).
-> To execute on devices with only single precision support(e.g., gen11, gen12) include `-DSP` option as follows in makefile
->
-> ```
-> IFX_OPTS_OFFLOAD = -DSP -DMKL_ILP64 -qopenmp -fopenmp-targets=spir64 -fsycl -L${MKLROOT}/lib/intel64 -lmkl_sycl -
->lmkl_intel_ilp64 -lmkl_intel_thread -lmkl_core -liomp5 -lpthread -ldl
-> ```
->
-
-You can remove all generated files with `make clean`.
-
-### Example of Output
-If everything is working correctly, the output should be similar to this:
-```
-u172874@s001-n157:~/oneAPI-samples/Libraries/oneMKL/batched_linear_solver$ make
-ifx lu_solve_omp_offload.F90 -o lu_solve -i8 -free -qmkl
-ifx lu_solve_omp_offload.F90 -o lu_solve_omp_offload -i8 -free -qmkl -DMKL_ILP64 -qopenmp -fopenmp-targets=spir64 -qmkl-sycl-impl=lapack
-ifx lu_solve_omp_offload_optimized.F90 -o lu_solve_omp_offload_optimized -i8 -free -qmkl -DMKL_ILP64 -qopenmp -fopenmp-targets=spir64 -qmkl-sycl-impl=lapack
-./lu_solve -n 64 -b 8 -r 1 -c 2
- Matrix dimensions: 64
- Batch size: 8
- Number of RHS: 1
- Number of test cycles: 2
- Computation completed successfully 2.849000000000000E-002 seconds
- Computation completed successfully 4.600000000000000E-005 seconds
- Total time: 2.853600000000000E-002 seconds
-./lu_solve_omp_offload -n 64 -b 8 -r 1 -c 2
- Matrix dimensions: 64
- Batch size: 8
- Number of RHS: 1
- Number of test cycles: 2
- Computation completed successfully 1.52985400000000 seconds
- Computation completed successfully 1.212700000000000E-002 seconds
- Total time: 1.54198100000000 seconds
-./lu_solve_omp_offload_optimized -n 64 -b 8 -r 1 -c 2
- Matrix dimensions: 64
- Batch size: 8
- Number of RHS: 1
- Number of test cycles: 2
- Computation completed successfully 1.54803900000000 seconds
- Computation completed successfully 1.202200000000000E-002 seconds
- Total time: 1.56006100000000 seconds
-```
-
-### Troubleshooting
-If an error occurs, troubleshoot the problem using the Diagnostics Utility for Intel® oneAPI Toolkits.
-[Learn more](https://www.intel.com/content/www/us/en/docs/oneapi/user-guide-diagnostic-utility/current/overview.html).
-
-## License
-
-Code samples are licensed under the MIT license. See
-[License.txt](License.txt) for details.
-
-Third party program Licenses can be found here: [third-party-programs.txt](third-party-programs.txt).
diff --git a/Libraries/oneMKL/batched_linear_solver/lu_solve_omp_offload.F90 b/Libraries/oneMKL/batched_linear_solver/lu_solve_omp_offload.F90
deleted file mode 100644
index 4fad5b4b40..0000000000
--- a/Libraries/oneMKL/batched_linear_solver/lu_solve_omp_offload.F90
+++ /dev/null
@@ -1,193 +0,0 @@
-!===============================================================================
-! Copyright 2021-2022 Intel Corporation.
-!
-! This software and the related documents are Intel copyrighted materials, and
-! your use of them is governed by the express license under which they were
-! provided to you (License). Unless the License provides otherwise, you may not
-! use, modify, copy, publish, distribute, disclose or transmit this software or
-! the related documents without Intel's prior written permission.
-!
-! This software and the related documents are provided as is, with no express
-! or implied warranties, other than those that are expressly stated in the
-! License.
-!===============================================================================
-!
-! Content:
-! Intel(R) oneAPI Math Kernel Library (oneMKL)
-! FORTRAN OpenMP offload examples for solving batched linear systems.
-!
-! Compile for CPU:
-! ifx -i8 -qmkl -free \
-! lu_solve_omp_offload_ex1_timer.F90 -o lu_solve_ex1_timer
-!
-! Compile for GPU:
-! ifx -i8 -DMKL_ILP64 -qopenmp -fopenmp-targets=spir64 -free \
-! -qmkl -qmkl-sycl-impl=lapack \
-! lu_solve_omp_offload_ex1_timer.F90 -o lu_solve_ex1_omp_timer
-!
-! Compile with -DSP to use single precision instead of double precision.
-!
-!*******************************************************************************
-
-!$ include "mkl_omp_offload.f90"
-
-program solve_batched_linear_systems
-
-! Decide whether to use 32- or 64-bit integer type
-#if defined(MKL_ILP64)
-!$ use onemkl_lapack_omp_offload_ilp64 ! 64-bit
-#else
-!$ use onemkl_lapack_omp_offload_lp64 ! 32-bit
-#endif
-
- implicit none
-
- integer :: n = 64, batch_size = 4096, nrhs = 1, cycles = 5
- integer :: lda, stride_a, stride_ipiv
- integer :: ldb, stride_b
- integer, allocatable :: ipiv(:,:), info(:)
-
-#if defined(SP)
- real (kind=4), allocatable :: a(:,:), b(:,:), a_orig(:,:), b_orig(:,:), x(:)
- real (kind=4) :: residual, threshold = 1.0e-5
-#else
- real (kind=8), allocatable :: a(:,:), b(:,:), a_orig(:,:), b_orig(:,:), x(:)
- real (kind=8) :: residual, threshold = 1.0d-9
-#endif
-
- integer (kind=8) :: start_time, end_time, clock_precision
- real (kind=8) :: cycle_time, total_time = 0.0d0
-
- integer :: i, j, c, allocstat, stat
- character (len = 132) :: allocmsg
- character (len = 32) :: arg1, arg2
-
- ! Simple command-line parser with no error checks
- do i = 1, command_argument_count(), 2
- call get_command_argument(i, arg1)
- select case (arg1)
- case ('-n')
- call get_command_argument(i+1, arg2)
- read(arg2, *, iostat=stat) n
- case ('-b')
- call get_command_argument(i+1, arg2)
- read(arg2, *, iostat=stat) batch_size
- case ('-r')
- call get_command_argument(i+1, arg2)
- read(arg2, *, iostat=stat) nrhs
- case ('-c')
- call get_command_argument(i+1, arg2)
- read(arg2, *, iostat=stat) cycles
- case default
- print *, 'Unrecognized command-line option:', arg1
- stop
- end select
- enddo
- print *, 'Matrix dimensions:', n
- print *, 'Batch size:', batch_size
- print *, 'Number of RHS:', nrhs
- print *, 'Number of test cycles:', cycles
-
- lda = n
- stride_a = n * lda
- stride_ipiv = n
- ldb = n
- stride_b = n * nrhs
-
- ! Allocate memory for linear algebra computations
- allocate (a(stride_a, batch_size), b(n, batch_size*nrhs), &
- ipiv(stride_ipiv, batch_size), info(batch_size), &
- stat = allocstat, errmsg = allocmsg)
- if (allocstat > 0) stop trim(allocmsg)
-
- ! Allocate memory for error checking
- allocate (a_orig(stride_a, batch_size), b_orig(n, batch_size*nrhs), x(n), &
- stat = allocstat, errmsg = allocmsg)
- if (allocstat > 0) stop trim(allocmsg)
-
- call system_clock(count_rate = clock_precision)
- call random_seed()
-
- do c = 1, cycles
- ! Initialize the matrices with a random number in the interval (-0.5, 0.5)
- call random_number(a)
- a = 0.5 - a
- ! Make diagonal band values larger to ensure well-conditioned matrices
- do i = 1, n
- a(i+(i-1)*lda,:) = a(i+(i-1)*lda,:) + 50.0
- if (i .ne. 1) a(i+(i-1)*lda-1,:) = a(i+(i-1)*lda-1,:) + 20.0
- if (i .ne. n) a(i+(i-1)*lda+1,:) = a(i+(i-1)*lda+1,:) + 20.0
- enddo
-
- ! Initialize the RHS with a random number in the interval (-2.5, 2.5)
- call random_number(b)
- b = 2.5 - (5.0 * b)
- a_orig = a
- b_orig = b
-
- call system_clock(start_time) ! Start timer
-
- ! Compute the LU factorizations and solve the linear systems using OpenMP offload.
- ! On entry, "a" contains the input matrices. On exit, it contains the factored matrices.
- !$omp target data map(tofrom:a) map(from:ipiv) map(from:info)
- !$omp dispatch
-#if defined(SP)
- call sgetrf_batch_strided(n, n, a, lda, stride_a, ipiv, stride_ipiv, batch_size, info)
-#else
- call dgetrf_batch_strided(n, n, a, lda, stride_a, ipiv, stride_ipiv, batch_size, info)
-#endif
- !$omp end target data
-
- if (any(info .ne. 0)) then
- print *, 'Error: getrf_batch_strided returned with errors.'
- stop
- else
- ! Solving the linear systems. On exit, the solutions are stored in b.
- !$omp target data map(to:a) map(to:ipiv) map(tofrom: b) map(from:info)
- !$omp dispatch
-#if defined(SP)
- call sgetrs_batch_strided('N', n, nrhs, a, lda, stride_a, ipiv, stride_ipiv, &
- b, ldb, stride_b, batch_size, info)
-#else
- call dgetrs_batch_strided('N', n, nrhs, a, lda, stride_a, ipiv, stride_ipiv, &
- b, ldb, stride_b, batch_size, info)
-#endif
- !$omp end target data
-
- call system_clock(end_time) ! Stop timer
-
- if (any(info .ne. 0)) then
- print *, 'Error: getrs_batch_strided returned with errors.'
- stop
- else
-
- ! Compute a_orig*b and compare result to saved RHS
- do i = 1, batch_size
- do j = 1, nrhs
- x = 0.0
-#if defined(SP)
- call sgemv('N', n, n, 1.0, a_orig(:,i), lda, b(:,(i-1)*nrhs+j), 1, 0.0, x, 1)
-#else
- call dgemv('N', n, n, 1.0d0, a_orig(:,i), lda, b(:,(i-1)*nrhs+j), 1, 0.0d0, x, 1)
-#endif
-
- ! Check relative residual
- residual = norm2(b_orig(:,(i-1)*nrhs+j) - x(:)) / norm2(b_orig(:,(i-1)*nrhs+j))
- if (residual > threshold) then
- print *, 'Warning: relative residual of ', residual
- endif
- enddo
- enddo
-
- cycle_time = dble(end_time - start_time) / dble(clock_precision)
- print *, 'Computation completed successfully', cycle_time, 'seconds'
- total_time = total_time + cycle_time
- endif
- endif
- enddo
-
- print *, 'Total time:', total_time, 'seconds'
-
- ! Clean up
- deallocate (a, b, a_orig, b_orig, x, ipiv, info)
-end program solve_batched_linear_systems
diff --git a/Libraries/oneMKL/batched_linear_solver/lu_solve_omp_offload_optimized.F90 b/Libraries/oneMKL/batched_linear_solver/lu_solve_omp_offload_optimized.F90
deleted file mode 100644
index be1275e18f..0000000000
--- a/Libraries/oneMKL/batched_linear_solver/lu_solve_omp_offload_optimized.F90
+++ /dev/null
@@ -1,189 +0,0 @@
-!===============================================================================
-! Copyright 2021-2022 Intel Corporation.
-!
-! This software and the related documents are Intel copyrighted materials, and
-! your use of them is governed by the express license under which they were
-! provided to you (License). Unless the License provides otherwise, you may not
-! use, modify, copy, publish, distribute, disclose or transmit this software or
-! the related documents without Intel's prior written permission.
-!
-! This software and the related documents are provided as is, with no express
-! or implied warranties, other than those that are expressly stated in the
-! License.
-!===============================================================================
-!
-! Content:
-! Intel(R) oneAPI Math Kernel Library (oneMKL)
-! FORTRAN OpenMP offload examples for solving batched linear systems.
-!
-! Compile for CPU:
-! ifx -i8 -qmkl -free \
-! lu_solve_omp_offload_ex3_timer.F90 -o lu_solve_ex3_timer
-!
-! Compile for GPU:
-! ifx -i8 -DMKL_ILP64 -qopenmp -fopenmp-targets=spir64 -free \
-! -qmkl -qmkl-sycl-impl=lapack \
-! lu_solve_omp_offload_ex3_timer.F90 -o lu_solve_ex3_omp_timer
-!
-! Compile with -DSP to use single precision instead of double precision.
-!
-!*******************************************************************************
-
-!$ include "mkl_omp_offload.f90"
-
-program solve_batched_linear_systems
-
-! Decide whether to use 32- or 64-bit integer type
-#if defined(MKL_ILP64)
-!$ use onemkl_lapack_omp_offload_ilp64 ! 64-bit
-#else
-!$ use onemkl_lapack_omp_offload_lp64 ! 32-bit
-#endif
-
- implicit none
-
- integer :: n = 64, batch_size = 4096, nrhs = 1, cycles = 5
- integer :: lda, stride_a, stride_ipiv
- integer :: ldb, stride_b
- integer, allocatable :: ipiv(:,:), info_rf(:), info_rs(:)
-
-#if defined(SP)
- real (kind=4), allocatable :: a(:,:), b(:,:), a_orig(:,:), b_orig(:,:), x(:)
- real (kind=4) :: residual, threshold = 1.0e-5
-#else
- real (kind=8), allocatable :: a(:,:), b(:,:), a_orig(:,:), b_orig(:,:), x(:)
- real (kind=8) :: residual, threshold = 1.0d-9
-#endif
-
- integer (kind=8) :: start_time, end_time, clock_precision
- real (kind=8) :: cycle_time, total_time = 0.0d0
-
- integer :: i, j, c, allocstat, stat
- character (len = 132) :: allocmsg
- character (len = 32) :: arg1, arg2
-
- ! Simple command-line parser with no error checks
- do i = 1, command_argument_count(), 2
- call get_command_argument(i, arg1)
- select case (arg1)
- case ('-n')
- call get_command_argument(i+1, arg2)
- read(arg2, *, iostat=stat) n
- case ('-b')
- call get_command_argument(i+1, arg2)
- read(arg2, *, iostat=stat) batch_size
- case ('-r')
- call get_command_argument(i+1, arg2)
- read(arg2, *, iostat=stat) nrhs
- case ('-c')
- call get_command_argument(i+1, arg2)
- read(arg2, *, iostat=stat) cycles
- case default
- print *, 'Unrecognized command-line option:', arg1
- stop
- end select
- enddo
- print *, 'Matrix dimensions:', n
- print *, 'Batch size:', batch_size
- print *, 'Number of RHS:', nrhs
- print *, 'Number of test cycles:', cycles
-
- lda = n
- stride_a = n * lda
- stride_ipiv = n
- ldb = n
- stride_b = n * nrhs
-
- ! Allocate memory for linear algebra computations
- allocate (a(stride_a, batch_size), b(n, batch_size*nrhs), &
- ipiv(stride_ipiv, batch_size), &
- info_rf(batch_size), info_rs(batch_size), &
- stat = allocstat, errmsg = allocmsg)
- if (allocstat > 0) stop trim(allocmsg)
-
- ! Allocate memory for error checking
- allocate (a_orig(stride_a, batch_size), b_orig(n, batch_size*nrhs), x(n), &
- stat = allocstat, errmsg = allocmsg)
- if (allocstat > 0) stop trim(allocmsg)
-
- call system_clock(count_rate = clock_precision)
- call random_seed()
-
- do c = 1, cycles
- ! Initialize the matrices with a random number in the interval (-0.5, 0.5)
- call random_number(a)
- a = 0.5 - a
- ! Make diagonal band values larger to ensure well-conditioned matrices
- do i = 1, n
- a(i+(i-1)*lda,:) = a(i+(i-1)*lda,:) + 50.0
- if (i .ne. 1) a(i+(i-1)*lda-1,:) = a(i+(i-1)*lda-1,:) + 20.0
- if (i .ne. n) a(i+(i-1)*lda+1,:) = a(i+(i-1)*lda+1,:) + 20.0
- enddo
- ! Initialize the RHS with a random number in the interval (-2.5, 2.5)
- call random_number(b)
- b = 2.5 - (5.0 * b)
- a_orig = a
- b_orig = b
-
- call system_clock(start_time) ! Start timer
-
- ! Compute the LU factorizations and solve the linear systems using OpenMP offload.
- ! On entry, "a" contains the input matrices. On exit, it contains the factored matrices.
- !$omp target data map(to:a) map(tofrom: b) map(from:info_rf, info_rs) &
- !$ map(alloc:ipiv(1:stride_ipiv, 1:batch_size))
- !$omp dispatch
-#if defined(SP)
- call sgetrf_batch_strided(n, n, a, lda, stride_a, ipiv, stride_ipiv, batch_size, info_rf)
-#else
- call dgetrf_batch_strided(n, n, a, lda, stride_a, ipiv, stride_ipiv, batch_size, info_rf)
-#endif
-
- !$omp dispatch
-#if defined(SP)
- call sgetrs_batch_strided('N', n, nrhs, a, lda, stride_a, ipiv, stride_ipiv, &
- b, ldb, stride_b, batch_size, info_rs)
-#else
- call dgetrs_batch_strided('N', n, nrhs, a, lda, stride_a, ipiv, stride_ipiv, &
- b, ldb, stride_b, batch_size, info_rs)
-#endif
- !$omp end target data
-
- call system_clock(end_time) ! Stop timer
-
- if (any(info_rf .ne. 0)) then
- print *, 'Error: getrf_batch_strided returned with errors.'
- stop
- elseif (any(info_rs .ne. 0)) then
- print *, 'Error: getrs_batch_strided returned with errors.'
- stop
- else
-
- ! Compute a_orig*b and compare result to saved RHS
- do i = 1, batch_size
- do j = 1, nrhs
- x = 0.0
-#if defined(SP)
- call sgemv('N', n, n, 1.0, a_orig(:,i), lda, b(:,(i-1)*nrhs+j), 1, 0.0, x, 1)
-#else
- call dgemv('N', n, n, 1.0d0, a_orig(:,i), lda, b(:,(i-1)*nrhs+j), 1, 0.0d0, x, 1)
-#endif
-
- ! Check relative residual
- residual = norm2(b_orig(:,(i-1)*nrhs+j) - x(:)) / norm2(b_orig(:,(i-1)*nrhs+j))
- if (residual > threshold) then
- print *, 'Warning: relative residual of ', residual
- endif
- enddo
- enddo
-
- cycle_time = dble(end_time - start_time) / dble(clock_precision)
- print *, 'Computation completed successfully', cycle_time, 'seconds'
- total_time = total_time + cycle_time
- endif
- enddo
-
- print *, 'Total time:', total_time, 'seconds'
-
- ! Clean up
- deallocate (a, b, a_orig, b_orig, x, ipiv, info_rf, info_rs)
-end program solve_batched_linear_systems
diff --git a/Libraries/oneMKL/batched_linear_solver/makefile b/Libraries/oneMKL/batched_linear_solver/makefile
deleted file mode 100644
index 135ccde9a5..0000000000
--- a/Libraries/oneMKL/batched_linear_solver/makefile
+++ /dev/null
@@ -1,27 +0,0 @@
-# Makefile for Linux
-
-default: run_all
-
-all: run_all
-
-run_all: lu_solve lu_solve_omp_offload lu_solve_omp_offload_optimized
- ./lu_solve -n 64 -b 8 -r 1 -c 2
- ./lu_solve_omp_offload -n 64 -b 8 -r 1 -c 2
- ./lu_solve_omp_offload_optimized -n 64 -b 8 -r 1 -c 2
-
-IFX_OPTS = -i8 -free -qmkl
-IFX_OPTS_OFFLOAD = -DMKL_ILP64 -qopenmp -fopenmp-targets=spir64 -qmkl-sycl-impl=lapack
-
-lu_solve: lu_solve_omp_offload.F90
- ifx $< -o $@ $(IFX_OPTS)
-
-lu_solve_omp_offload: lu_solve_omp_offload.F90
- ifx $< -o $@ $(IFX_OPTS) $(IFX_OPTS_OFFLOAD)
-
-lu_solve_omp_offload_optimized: lu_solve_omp_offload_optimized.F90
- ifx $< -o $@ $(IFX_OPTS) $(IFX_OPTS_OFFLOAD)
-
-clean:
- -rm -f lu_solve lu_solve_omp_offload lu_solve_omp_offload_optimized *.mod *.modmic
-
-.PHONY: run_all clean all
diff --git a/Libraries/oneMKL/batched_linear_solver/sample.json b/Libraries/oneMKL/batched_linear_solver/sample.json
deleted file mode 100644
index f456014ea6..0000000000
--- a/Libraries/oneMKL/batched_linear_solver/sample.json
+++ /dev/null
@@ -1,25 +0,0 @@
-{
- "guid": "B90C0393-6FCE-443B-8CFA-2576FC8FDA2C",
- "name": "Batched Linear Solver",
- "categories": ["Toolkit/oneAPI Libraries/oneMKL"],
- "description": "Solve batched linear systems using oneMKL and OpenMP target offloading",
- "toolchain": [ "ifx" ],
- "dependencies": [ "oneMKL" ],
- "languages": [ { "cpp": { "properties": { "projectOptions": [ { "projectType": "makefile" } ] } } } ],
- "targetDevice": [ "CPU", "GPU" ],
- "gpuRequired": ["gen9","pvc"],
- "os": [ "linux" ],
- "builder": [ "make" ],
- "ciTests": {
- "linux": [
- {
- "id": "batched_linear_solver",
- "steps": [
- "make clean",
- "make"
- ]
- }
- ]
- },
- "expertise": "Code Optimization"
-}
diff --git a/Libraries/oneMKL/batched_linear_solver/third-party-programs.txt b/Libraries/oneMKL/batched_linear_solver/third-party-programs.txt
deleted file mode 100644
index 90daff458d..0000000000
--- a/Libraries/oneMKL/batched_linear_solver/third-party-programs.txt
+++ /dev/null
@@ -1,253 +0,0 @@
-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. Nothings STB Libraries
-
-stb/LICENSE
-
- This software is available under 2 licenses -- choose whichever you prefer.
- ------------------------------------------------------------------------------
- ALTERNATIVE A - MIT License
- Copyright (c) 2017 Sean Barrett
- 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.
- ------------------------------------------------------------------------------
- ALTERNATIVE B - Public Domain (www.unlicense.org)
- This is free and unencumbered software released into the public domain.
- Anyone is free to copy, modify, publish, use, compile, sell, or distribute this
- software, either in source code form or as a compiled binary, for any purpose,
- commercial or non-commercial, and by any means.
- In jurisdictions that recognize copyright laws, the author or authors of this
- software dedicate any and all copyright interest in the software to the public
- domain. We make this dedication for the benefit of the public at large and to
- the detriment of our heirs and successors. We intend this dedication to be an
- overt act of relinquishment in perpetuity of all present and future rights to
- this software under copyright law.
- 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 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.
-
---------------------------------------------------------------------------------
-
-2. 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.
-
-
---------------------------------------------------------------------------------
-
-3. Nbody
- (c) 2019 Fabio Baruffa
-
- Plotly.js
- Copyright (c) 2020 Plotly, Inc
-
-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.
-© 2020 GitHub, Inc.
-
---------------------------------------------------------------------------------
-
-4. 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.
-
---------------------------------------------------------------------------------
-
-5. 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
-
---------------------------------------------------------------------------------
-
-6. 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.
-
---------------------------------------------------------------------------------
-7. 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.
-
---------------------------------------------------------------------------------
-Other names and brands may be claimed as the property of others.
-
---------------------------------------------------------------------------------
\ No newline at end of file
diff --git a/Libraries/oneMKL/binomial/GNUmakefile b/Libraries/oneMKL/binomial/GNUmakefile
deleted file mode 100644
index 820786a0db..0000000000
--- a/Libraries/oneMKL/binomial/GNUmakefile
+++ /dev/null
@@ -1,13 +0,0 @@
-all: binomial_sycl
-
-init_on_host ?= 0
-
-MKL_COPTS = -DMKL_ILP64 -qmkl -qmkl-sycl-impl=rng
-
-binomial_sycl: src/binomial_sycl.cpp src/binomial_main.cpp src/binomial.hpp
- icpx -fsycl -O3 -DSMALL_OPT_N=0 -DVERBOSE=1 -DREPORT_COLD=1 -DREPORT_WARM=1 -DINIT_ON_HOST=$(init_on_host) $(MKL_COPTS) -o $@ src/binomial_main.cpp src/binomial_sycl.cpp
-
-clean:
- @rm -f binomial_sycl
-
-.PHONY: clean all
diff --git a/Libraries/oneMKL/binomial/README.md b/Libraries/oneMKL/binomial/README.md
deleted file mode 100644
index eec3848424..0000000000
--- a/Libraries/oneMKL/binomial/README.md
+++ /dev/null
@@ -1,132 +0,0 @@
-# `Binomial` Sample
-
-Binomial shows how to use Random Number Generator (RNG) functionality
-available in Intel® oneAPI Math Kernel Library (oneMKL). It uses for
-european options pricing using binomial options pricing model
-for suitable randomly-generated portfolios.
-
-| Optimized for | Description
-|:--- |:---
-| OS | Linux* Ubuntu* 18.04
Windows 10
-| Hardware | Skylake with Gen9 or newer
-| Software | Intel® oneAPI Math Kernel Library (oneMKL)
-| What you will learn | How to use the oneMKL random number generation functionality
-| Time to complete | 15 minutes
-
-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 binomial options pricing model is widely used in financial markets.
-It has a lot of computation after random numbers are generated.
-
-The sample first generates a portfolio within given constraints using a uniform
-distribution and a Philox-type generator provided by the oneMKL RNG API.
-
-This sample performs its computations on the default SYCL* device. You can set
-the `ONEAPI_DEVICE_SELECTOR` environment variable to `"*:cpu"` or `"*:gpu"`
-to select the device to use.
-To find more information about the variable follow the link:
-[ONEAPI_DEVICE_SELECTOR](https://github.com/intel/llvm/blob/sycl/sycl/doc/EnvironmentVariables.md#oneapi_device_selector).
-
-## Key Implementation Details
-
-This sample illustrates how to create an RNG engine object (the source of
-pseudo-randomness), a distribution object (specifying the desired probability
-distribution), and finally generate the random numbers themselves.
-
-In this sample, a Philox 4x32x10 generator is used. It is a lightweight
-counter-based RNG well-suited for parallel computing.
-
-This sample has pretty heavy kernel. It means that the kernel
-contains a lot of computations.
-
-## Using Visual Studio Code* (Optional)
-
-You can use Visual Studio Code (VS Code) extensions to set your environment, create launch configurations,
-and browse and download samples.
-
-The basic steps to build and run a sample using VS Code include:
- - Download a sample using the extension **Code Sample Browser for Intel Software Developer Tools**.
- - Configure the oneAPI environment with the extension **Environment Configurator for Intel Software Developer Tools**.
- - Open a Terminal in VS Code (**Terminal>New Terminal**).
- - Run the sample in the VS Code terminal using the instructions below.
- - (Linux only) Debug your GPU application with GDB for Intel® oneAPI toolkits using the **Generate Launch Configurations** extension.
-
-To learn more about the extensions, see the
-[Using Visual Studio Code with Intel® oneAPI Toolkits User Guide](https://www.intel.com/content/www/us/en/develop/documentation/using-vs-code-with-intel-oneapi/top.html).
-
-## Building the Binomial Sample
-
-> **Note**: If you have not already done so, set up your CLI
-> environment by sourcing the `setvars` script located 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'`
->
-> Windows*:
-> - `C:\"Program Files (x86)"\Intel\oneAPI\setvars.bat`
-> - For Windows PowerShell*, use the following command: `cmd.exe "/K" '"C:\Program Files (x86)\Intel\oneAPI\setvars.bat" && powershell'`
->
-> 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) or [Use the setvars Script with Windows*](https://www.intel.com/content/www/us/en/develop/documentation/oneapi-programming-guide/top/oneapi-development-environment-setup/use-the-setvars-script-with-windows.html).
-
-### On a Linux* System
-Run `make` to build the sample. Then run the sample calling generated execution file.
-
-You can remove all generated files with `make clean`.
-
-### On a Windows* System
-Run `nmake` to build and run the sample programs. `nmake clean` removes temporary files.
-
-#### Build a sample using Random Number Generation on Host
-To use the RNG on host use `init_on_host=1`, e.g.
-```
-make init_on_host=1
-```
-for Linux* system or
-
-```
-nmake init_on_host=1
-```
-
-for Windows* System.
-
-## Running the Binomial Sample
-If everything is working correctly, the program will run the Binomial simulation.
-After the simulation, results will be checked against the known true values
-given by the Black-Scholes formula, and the absolute error is output.
-
-Example of output:
-```
-$ ./binomial_sycl
-
-Double Precision Binomial Option Pricing version 1.8 running on Intel(R) Xeon(R) Gold 6148 CPU @ 2.40GHz using DPC++, workgroup size 128, sub-group size 32.
-Compiler Version: Intel(R) oneAPI DPC++/C++ Compiler 2023.1.0 (2023.1.0.20230320), LLVM 16.0 based.
-Driver Version : 2023.15.3.0.20_160000
-Build Time : May 3 2023 03:51:58
-Input Dataset : 8388608
-Pricing 8388608 Options with time step of 2048.
-Cold iteration.
-Completed in 379.85246 seconds. Options per second: 22083.85865
-Warm iteration.
-Completed in 378.85559 seconds. Options per second: 22141.96683
-Time Elapsed = 378.85559 seconds
-Creating the reference result...
-L1 norm: 2.645901E-06
-TEST PASSED
-```
-
-### Troubleshooting
-If an error occurs, troubleshoot the problem using the Diagnostics Utility for Intel® oneAPI Toolkits.
-[Learn more](https://www.intel.com/content/www/us/en/docs/oneapi/user-guide-diagnostic-utility/current/overview.html).
-
-## License
-
-Code samples are licensed under the MIT license. See
-[License.txt](License.txt) for details.
-
-Third party program Licenses can be found here: [third-party-programs.txt](third-party-programs.txt).
diff --git a/Libraries/oneMKL/binomial/makefile b/Libraries/oneMKL/binomial/makefile
deleted file mode 100644
index 007459efc5..0000000000
--- a/Libraries/oneMKL/binomial/makefile
+++ /dev/null
@@ -1,15 +0,0 @@
-all: binomial_sycl.exe
-
-!if "$(init_on_host)" == "1"
- INIT_ON_HOST=/DINIT_ON_HOST=1
-!endif
-
-DPCPP_OPTS=-O3 /I"$(MKLROOT)\include" /DMKL_ILP64 /DVERBOSE=1 /DSMALL_OPT_N=0 /DREPORT_COLD=1 /DREPORT_WARM=1 $(INIT_ON_HOST) -fsycl /Qmkl /Qmkl-sycl-impl=rng OpenCL.lib
-
-binomial_sycl.exe: src\binomial_sycl.cpp src\binomial_main.cpp src\binomial.hpp
- icx $(DPCPP_OPTS) /DVERBOSE=1 /DSMALL_OPT_N=0 /DREPORT_COLD=1 /DREPORT_WARM=1 src\binomial_sycl.cpp src\binomial_main.cpp /obinomial_sycl.exe
-
-clean:
- del /q binomial_sycl.exe
-
-.PHONY: clean all
diff --git a/Libraries/oneMKL/binomial/sample.json b/Libraries/oneMKL/binomial/sample.json
deleted file mode 100644
index 97e1ea17ef..0000000000
--- a/Libraries/oneMKL/binomial/sample.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "guid": "0DDCAFEA-65A6-4DE1-ACFF-FB219612E91F",
- "name": "Binomial",
- "categories": ["Toolkit/oneAPI Libraries/oneMKL"],
- "description": "Binomial European Option Pricing Model Simulation using Intel® oneMKL Random Number Generators",
- "toolchain": [ "dpcpp" ],
- "dependencies": [ "mkl" ],
- "languages": [ { "cpp": { "properties": { "projectOptions": [ { "projectType": "makefile" } ] } } } ],
- "targetDevice": [ "CPU", "GPU" ],
- "gpuRequired": ["gen9","pvc"],
- "os": [ "linux", "windows" ],
- "builder": [ "make" ],
- "ciTests": {
- "linux": [
- {
- "id": "binomial",
- "steps": [
- "make clean",
- "make && ./binomial_sycl"
- ]
- }
- ],
- "windows": [
- {
- "id": "binomial",
- "steps": [
- "nmake clean",
- "nmake && binomial_sycl.exe"
- ]
- }
- ]
- },
- "expertise": "Concepts and Functionality"
-}
diff --git a/Libraries/oneMKL/binomial/src/binomial.hpp b/Libraries/oneMKL/binomial/src/binomial.hpp
deleted file mode 100644
index 073ea1be42..0000000000
--- a/Libraries/oneMKL/binomial/src/binomial.hpp
+++ /dev/null
@@ -1,75 +0,0 @@
-//==============================================================
-// Copyright © 2023 Intel Corporation
-//
-// SPDX-License-Identifier: MIT
-// =============================================================
-
-#ifndef __Binomial_HPP__
-#define __Binomial_HPP__
-
-#include
-
-#ifndef VERBOSE
-#define VERBOSE 0
-#endif
-
-/******* VERSION *******/
-
-#define MAJOR 1
-#define MINOR 8
-
-/******* VERSION *******/
-
-constexpr float volatility = 0.10f;
-constexpr float risk_free = 0.06f;
-
-constexpr int num_steps = 2048;
-constexpr int opt_n =
-#if SMALL_OPT_N
- 480;
-#else
- 8 * 1024 * 1024;
-#endif
-
-#ifndef __clang_major__
-#define __clang_major__ 0
-#endif
-#ifndef __clang_minor__
-#define __clang_minor__ 0
-#endif
-#ifndef __VERSION__
-#define __VERSION__ __clang_major__
-#endif
-
-template
-class Binomial {
- public:
- Binomial();
- ~Binomial();
-
- void run();
- void check();
-
- private:
- DATA_TYPE* h_call_result;
- DATA_TYPE* h_stock_price;
- DATA_TYPE* h_option_strike;
- DATA_TYPE* h_option_years;
-
- void body();
-};
-
-class timer {
- public:
- timer() { start(); }
- void start() { t1_ = std::chrono::steady_clock::now(); }
- void stop() { t2_ = std::chrono::steady_clock::now(); }
- auto duration() { return std::chrono::duration(t2_ - t1_).count(); }
-
- private:
- std::chrono::steady_clock::time_point t1_, t2_;
-};
-
-bool is_fp64();
-
-#endif // __Binomial_HPP__
diff --git a/Libraries/oneMKL/binomial/src/binomial_main.cpp b/Libraries/oneMKL/binomial/src/binomial_main.cpp
deleted file mode 100644
index a574584f57..0000000000
--- a/Libraries/oneMKL/binomial/src/binomial_main.cpp
+++ /dev/null
@@ -1,87 +0,0 @@
-//==============================================================
-// Copyright © 2023 Intel Corporation
-//
-// SPDX-License-Identifier: MIT
-// =============================================================
-
-#include
-#include
-#include
-#include
-
-#include "binomial.hpp"
-
-// Black-Scholes Reference Implementation
-void BlackScholesRefImpl(double& callResult,
- double Sf, // Stock price
- double Xf, // Option strike
- double Tf, // Option years
- double Rf, // Riskless rate
- double Vf // Volatility rate
-) {
- // BSM Formula:
- // https://www.nobelprize.org/prizes/economic-sciences/1997/press-release/
- double S = Sf, L = Xf, t = Tf, r = Rf, sigma = Vf;
- double N_d1 =
- 1. / 2. + 1. / 2. *
- std::erf(((log(S / L) + (r + 0.5 * sigma * sigma) * t) /
- (sigma * std::sqrt(t))) /
- std::sqrt(2.));
- double N_d2 =
- 1. / 2. + 1. / 2. *
- std::erf(((log(S / L) + (r - 0.5 * sigma * sigma) * t) /
- (sigma * std::sqrt(t))) /
- std::sqrt(2.));
- callResult = (S * N_d1 - L * std::exp(-r * t) * N_d2);
-}
-
-template
-void Binomial::check() {
- if (VERBOSE) {
- std::printf("Creating the reference result...\n");
- std::vector h_call_result_host(opt_n);
-
- for (int opt = 0; opt < opt_n; opt++)
- BlackScholesRefImpl(h_call_result_host[opt], h_stock_price[opt],
- h_option_strike[opt], h_option_years[opt], risk_free,
- volatility);
-
- double sum_delta = 0.0, sum_ref = 0.0, max_delta = 0.0, errorVal = 0.0;
-
- for (int i = 0; i < opt_n; i++) {
- double ref = h_call_result_host[i];
- auto delta = std::fabs(ref - h_call_result[i]);
- if (delta > max_delta) {
- max_delta = delta;
- }
- sum_delta += delta;
- sum_ref += std::fabs(ref);
- }
- if (sum_ref > 1E-5)
- std::printf("L1 norm: %E\n", errorVal = sum_delta / sum_ref);
- else
- std::printf("Avg. diff: %E\n", errorVal = sum_delta / opt_n);
- if(errorVal < 5e-4){
- std::printf("TEST PASSED\n");
- }
- else{
- std::printf("TEST FAILED\n");
- exit(1);
- }
- }
-}
-
-int main(int argc, char** argv) {
- if(is_fp64()){
- Binomial test;
- test.run();
- test.check();
- }
- else{
- std::cout<<"Warning: could not find a device with double precision support. Single precision is used."< test;
- test.run();
- test.check();
- }
- return 0;
-}
diff --git a/Libraries/oneMKL/binomial/src/binomial_sycl.cpp b/Libraries/oneMKL/binomial/src/binomial_sycl.cpp
deleted file mode 100644
index 00bdbc351e..0000000000
--- a/Libraries/oneMKL/binomial/src/binomial_sycl.cpp
+++ /dev/null
@@ -1,202 +0,0 @@
-//==============================================================
-// Copyright © 2023 Intel Corporation
-//
-// SPDX-License-Identifier: MIT
-// =============================================================
-#include
-#include
-#include
-
-#include "binomial.hpp"
-
-constexpr int sg_size = 32;
-constexpr int wg_size = 128;
-
-sycl::queue* binomial_queue;
-
-template
-class k_binomial; // can be useful for profiling
-
-template
-Binomial::Binomial() {
- binomial_queue = new sycl::queue;
-
- h_call_result = sycl::malloc_shared(opt_n, *binomial_queue);
- h_stock_price = sycl::malloc_shared(opt_n, *binomial_queue);
- h_option_strike = sycl::malloc_shared(opt_n, *binomial_queue);
- h_option_years = sycl::malloc_shared(opt_n, *binomial_queue);
-
- binomial_queue->fill(h_call_result, DATA_TYPE(0), opt_n);
-
- constexpr int rand_seed = 777;
- namespace mkl_rng = oneapi::mkl::rng;
-
- // create random number generator object
- mkl_rng::philox4x32x10 engine(
-#if !INIT_ON_HOST
- *binomial_queue,
-#else
- sycl::queue{sycl::cpu_selector_v},
-#endif
- rand_seed);
-
- sycl::event event_1 = mkl_rng::generate(
- mkl_rng::uniform(5.0, 50.0), engine, opt_n, h_stock_price);
- sycl::event event_2 = mkl_rng::generate(
- mkl_rng::uniform(10.0, 25.0), engine, opt_n, h_option_strike);
- sycl::event event_3 = mkl_rng::generate(
- mkl_rng::uniform(1.0, 5.0), engine, opt_n, h_option_years);
- sycl::event::wait({event_1, event_2, event_3});
-}
-
-template
-Binomial::~Binomial() {
- sycl::free(h_call_result, *binomial_queue);
- sycl::free(h_stock_price, *binomial_queue);
- sycl::free(h_option_strike, *binomial_queue);
- sycl::free(h_option_years, *binomial_queue);
-
- delete binomial_queue;
-}
-
-template
-void Binomial::body() {
- constexpr int block_size = num_steps / wg_size;
- static_assert(block_size * wg_size == num_steps);
-
- // "this" can not be captured to the kernel. So, we need to copy internals of
- // the class to local variables
- DATA_TYPE* h_stock_price_local = this->h_stock_price;
- DATA_TYPE* h_option_years_local = this->h_option_years;
- DATA_TYPE* h_option_strike_local = this->h_option_strike;
- DATA_TYPE* h_call_result_local = this->h_call_result;
-
- binomial_queue->submit([&](sycl::handler& h) {
- sycl::local_accessor slm_call{wg_size + 1, h};
-
- h.parallel_for>(
- sycl::nd_range(sycl::range<1>(opt_n * wg_size),
- sycl::range<1>(wg_size)),
- [=](sycl::nd_item<1> item)
- [[intel::kernel_args_restrict]] [[sycl::reqd_sub_group_size(
- sg_size)]] {
- const size_t opt = item.get_global_id(0) / wg_size;
- const DATA_TYPE sx = h_stock_price_local[opt];
- const DATA_TYPE xx = h_option_strike_local[opt];
- const DATA_TYPE tx = h_option_years_local[opt];
- const DATA_TYPE dt = tx / static_cast(num_steps);
- const DATA_TYPE v_dt = volatility * sycl::sqrt(dt);
- const DATA_TYPE r_dt = risk_free * dt;
- const DATA_TYPE i_f = sycl::exp(r_dt);
- const DATA_TYPE df = sycl::exp(-r_dt);
- const DATA_TYPE u = sycl::exp(v_dt);
- const DATA_TYPE d = sycl::exp(-v_dt);
- const DATA_TYPE pu = (i_f - d) / (u - d);
- const DATA_TYPE pd = static_cast(1.0) - pu;
- const DATA_TYPE pu_df = pu * df;
- const DATA_TYPE pd_df = pd * df;
- const DATA_TYPE mul_c = v_dt * static_cast(2.0);
- DATA_TYPE id = v_dt * static_cast(-num_steps);
-
- DATA_TYPE local_call[block_size + 1];
- auto wg = item.get_group();
- int local_id = wg.get_local_id(0);
- int block_start = block_size * local_id;
- id += block_start * mul_c;
- for (int i = 0; i < block_size; i++) {
- auto d = sx * sycl::exp(id) - xx;
- local_call[i] = (d > 0) ? d : 0;
- id += mul_c;
- }
-
- // Handling num_steps step by last item and putting it directly to
- // SLM last element
- if (local_id == wg_size - 1) {
- auto d = sx * sycl::exp(id) - xx;
- slm_call[wg_size] = (d > 0) ? d : 0;
- }
-
- // Start at the final tree time step nodes(leaves) and walk
- // backwards to calculate the call option price.
- for (int i = num_steps; i > 0; i--) {
- // Give and get "next block's local_call[j+1]" (local_call[0] in
- // next block) elements across work items
- slm_call[local_id] = local_call[0];
- if (wg_size > sg_size) {
- item.barrier(sycl::access::fence_space::local_space);
- }
- local_call[block_size] = slm_call[local_id + 1];
- if (wg_size > sg_size) {
- item.barrier(sycl::access::fence_space::local_space);
- }
- if (block_start <= i) {
- for (int j = 0; j < block_size; j++) {
- local_call[j] =
- pu_df * local_call[j + 1] + pd_df * local_call[j];
- }
- }
- }
- if (local_id == 0) {
- h_call_result_local[opt] = local_call[0];
- }
- });
- });
-
- binomial_queue->wait();
-}
-
-template
-void Binomial::run() {
- std::printf(
- "%s Precision Binomial Option Pricing version %d.%d running on %s using "
- "DPC++, workgroup size %d, sub-group size %d.\n",
- sizeof(DATA_TYPE) > 4 ? "Double" : "Single", MAJOR, MINOR,
- binomial_queue->get_device().get_info().c_str(),
- wg_size, sg_size);
-
- std::printf("Compiler Version: %s, LLVM %d.%d based.\n", __VERSION__,
- __clang_major__, __clang_minor__);
- std::printf("Driver Version : %s\n",
- binomial_queue->get_device()
- .get_info()
- .c_str());
- std::printf("Build Time : %s %s\n", __DATE__, __TIME__);
- std::printf("Input Dataset : %d\n", opt_n);
- std::printf("Pricing %d Options with time step of %d.\n", opt_n, num_steps);
- fflush(stdout);
- std::printf("Cold iteration.\n");
- fflush(stdout);
- timer t{};
- t.start();
- body();
- t.stop();
-#if REPORT_COLD
- std::printf("Completed in %10.5f seconds. Options per second: %10.5f\n",
- t.duration(), static_cast(opt_n) / (t.duration()));
-#endif
-#if REPORT_WARM
- std::printf("Warm iteration.\n");
- fflush(stdout);
- t.start();
- body();
- t.stop();
- std::printf("Completed in %10.5f seconds. Options per second: %10.5f\n",
- t.duration(), static_cast(opt_n) / (t.duration()));
-#endif
- std::printf("Time Elapsed = %10.5f seconds\n", t.duration());
- fflush(stdout);
-}
-
-bool is_fp64() {
- sycl::queue test_queue;
- return test_queue.get_device().has(sycl::aspect::fp64);
-}
-
-template DLL_EXPORT Binomial::Binomial();
-template DLL_EXPORT Binomial::Binomial();
-
-template DLL_EXPORT Binomial::~Binomial();
-template DLL_EXPORT Binomial::~Binomial();
-
-template DLL_EXPORT void Binomial::run();
-template DLL_EXPORT void Binomial::run();
diff --git a/Libraries/oneMKL/binomial/third-party-programs.txt b/Libraries/oneMKL/binomial/third-party-programs.txt
deleted file mode 100644
index 90daff458d..0000000000
--- a/Libraries/oneMKL/binomial/third-party-programs.txt
+++ /dev/null
@@ -1,253 +0,0 @@
-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. Nothings STB Libraries
-
-stb/LICENSE
-
- This software is available under 2 licenses -- choose whichever you prefer.
- ------------------------------------------------------------------------------
- ALTERNATIVE A - MIT License
- Copyright (c) 2017 Sean Barrett
- 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.
- ------------------------------------------------------------------------------
- ALTERNATIVE B - Public Domain (www.unlicense.org)
- This is free and unencumbered software released into the public domain.
- Anyone is free to copy, modify, publish, use, compile, sell, or distribute this
- software, either in source code form or as a compiled binary, for any purpose,
- commercial or non-commercial, and by any means.
- In jurisdictions that recognize copyright laws, the author or authors of this
- software dedicate any and all copyright interest in the software to the public
- domain. We make this dedication for the benefit of the public at large and to
- the detriment of our heirs and successors. We intend this dedication to be an
- overt act of relinquishment in perpetuity of all present and future rights to
- this software under copyright law.
- 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 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.
-
---------------------------------------------------------------------------------
-
-2. 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.
-
-
---------------------------------------------------------------------------------
-
-3. Nbody
- (c) 2019 Fabio Baruffa
-
- Plotly.js
- Copyright (c) 2020 Plotly, Inc
-
-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.
-© 2020 GitHub, Inc.
-
---------------------------------------------------------------------------------
-
-4. 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.
-
---------------------------------------------------------------------------------
-
-5. 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
-
---------------------------------------------------------------------------------
-
-6. 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.
-
---------------------------------------------------------------------------------
-7. 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.
-
---------------------------------------------------------------------------------
-Other names and brands may be claimed as the property of others.
-
---------------------------------------------------------------------------------
\ No newline at end of file
diff --git a/Libraries/oneMKL/black_scholes/GNUmakefile b/Libraries/oneMKL/black_scholes/GNUmakefile
deleted file mode 100644
index 3d51c6e90f..0000000000
--- a/Libraries/oneMKL/black_scholes/GNUmakefile
+++ /dev/null
@@ -1,18 +0,0 @@
-# ==============================================================================
-# Content:
-# Black-Scholes formula example makefile
-# ==============================================================================
-
-all: black_scholes_sycl
-
-init_on_host ?= 0
-
-MKL_COPTS = -DMKL_ILP64 -qmkl -qmkl-sycl-impl=rng
-
-black_scholes_sycl: src/black_scholes_sycl.cpp
- icpx -O3 -g -fsycl $(MKL_COPTS) -DVERBOSE=1 -DSMALL_OPT_N=0 -DINIT_ON_HOST=$(init_on_host) -o $@ src/black_scholes_sycl.cpp
-
-clean:
- @rm -f black_scholes_sycl
-
-.PHONY: clean all
diff --git a/Libraries/oneMKL/black_scholes/License.txt b/Libraries/oneMKL/black_scholes/License.txt
deleted file mode 100644
index e63c6e13dc..0000000000
--- a/Libraries/oneMKL/black_scholes/License.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-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/Libraries/oneMKL/black_scholes/README.md b/Libraries/oneMKL/black_scholes/README.md
deleted file mode 100644
index 220fb12a58..0000000000
--- a/Libraries/oneMKL/black_scholes/README.md
+++ /dev/null
@@ -1,132 +0,0 @@
-# `Black-Scholes` Sample
-
-Black-Scholes shows how to use Random Number Generator (RNG) functionality
-available in Intel® oneAPI Math Kernel Library (oneMKL) to calculate the prices
-of options using the Black-Scholes formula for suitable randomly-generated portfolios.
-
-| Optimized for | Description
-|:--- |:---
-| OS | Linux* Ubuntu* 18.04
Windows 10, 11
-| Hardware | Skylake CPU with Gen9 GPU or newer
-| Software | Intel® oneAPI Math Kernel Library (oneMKL)
-| What you will learn | How to use the oneMKL random number generation functionality
-| Time to complete | 5 minutes
-
-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 Black-Scholes formula is widely used in financial markets as a basic
-prognostic tool. The ability to calculate it quickly for a large number of
-options has become a necessity and represents a classic problem in parallel
-computation.
-
-The sample first generates a portfolio within given constraints using a uniform
-distribution and a Philox-type generator provided by the oneMKL RNG API.
-
-This sample performs its computations on the default SYCL* device. You can set
-the `ONEAPI_DEVICE_SELECTOR` environment variable to `"*:cpu"` or `"*:gpu"`
-to select the device to use.
-To find more information about the variable follow the link:
-[ONEAPI_DEVICE_SELECTOR](https://github.com/intel/llvm/blob/sycl/sycl/doc/EnvironmentVariables.md#oneapi_device_selector).
-
-This article explains in detail how oneMKL functions speed up Black-Scholes
-computation of European options pricing:
-https://www.intel.com/content/www/us/en/docs/onemkl/cookbook/current/black-scholes-formula-european-options-pricing.html.
-
-## Key Implementation Details
-
-This sample illustrates how to create an RNG engine object (the source of
-pseudo-randomness), a distribution object (specifying the desired probability
-distribution), and finally generate the random numbers themselves.
-
-In this sample, a Philox 4x32x10 generator is used. It is a lightweight
-counter-based RNG well-suited for parallel computing.
-
-## Using Visual Studio Code* (Optional)
-
-You can use Visual Studio Code (VS Code) extensions to set your environment, create launch configurations,
-and browse and download samples.
-
-The basic steps to build and run a sample using VS Code include:
- - Download a sample using the extension **Code Sample Browser for Intel Software Developer Tools**.
- - Configure the oneAPI environment with the extension **Environment Configurator for Intel Software Developer Tools**.
- - Open a Terminal in VS Code (**Terminal>New Terminal**).
- - Run the sample in the VS Code terminal using the instructions below.
- - (Linux only) Debug your GPU application with GDB for Intel® oneAPI toolkits using the **Generate Launch Configurations** extension.
-
-To learn more about the extensions, see the
-[Using Visual Studio Code with Intel® oneAPI Toolkits User Guide](https://www.intel.com/content/www/us/en/develop/documentation/using-vs-code-with-intel-oneapi/top.html).
-
-## Building the Black-Scholes Sample
-
-> **Note**: If you have not already done so, set up your CLI
-> environment by sourcing the `setvars` script located 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'`
->
-> Windows*:
-> - `C:\"Program Files (x86)"\Intel\oneAPI\setvars.bat`
-> - For Windows PowerShell*, use the following command: `cmd.exe "/K" '"C:\Program Files (x86)\Intel\oneAPI\setvars.bat" && powershell'`
->
-> 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) or [Use the setvars Script with Windows*](https://www.intel.com/content/www/us/en/develop/documentation/oneapi-programming-guide/top/oneapi-development-environment-setup/use-the-setvars-script-with-windows.html).
-
-### On a Linux* System
-Run `make` to build the sample. Then run the sample calling generated execution file.
-
-You can remove all generated files with `make clean`.
-
-### On a Windows* System
-Run `nmake` to build and run the sample programs. `nmake clean` removes temporary files.
-
-#### Build a sample using Random Number Generation on Host
-To use the RNG on host use `init_on_host=1`, e.g.
-```
-make init_on_host=1
-```
-for Linux* system or
-
-```
-nmake init_on_host=1
-```
-
-for Windows* System.
-
-## Running the Black-Scholes Sample
-If everything is working correctly, the program will run the Black-scholes simulation.
-After the simulation, results will be checked against the known true values
-given by the Black-Scholes formula, and the absolute error is output.
-
-Example of output:
-```
-$ ./black_scholes_sycl
-
-Double Precision Black&Scholes Option Pricing version 1.6 running on Intel(R) Xeon(R) Gold 6148 CPU @ 2.40GHz using DPC++, workgroup size 256, sub-group size 32.
-Compiler Version: Intel(R) oneAPI DPC++/C++ Compiler 2023.1.0 (2023.1.0.20230320), LLVM 16.0 based.
-Driver Version : 2023.15.3.0.20_160000
-Build Time : Apr 28 2023 05:34:33
-Input Dataset : 8388608
-Pricing 16777216 Options in 512 iterations, 8589934592 Options in total.
-Completed in 1.41111 seconds. GOptions per second: 6.08735
-Time Elapsed = 1.41111 seconds
-Creating the reference result...
-L1 norm: 1.385136E-16
-TEST PASSED
-
-```
-
-### Troubleshooting
-If an error occurs, troubleshoot the problem using the Diagnostics Utility for Intel® oneAPI Toolkits.
-[Learn more](https://www.intel.com/content/www/us/en/docs/oneapi/user-guide-diagnostic-utility/current/overview.html).
-
-## License
-
-Code samples are licensed under the MIT license. See
-[License.txt](License.txt) for details.
-
-Third party program Licenses can be found here: [third-party-programs.txt](third-party-programs.txt).
diff --git a/Libraries/oneMKL/black_scholes/makefile b/Libraries/oneMKL/black_scholes/makefile
deleted file mode 100644
index 271caca621..0000000000
--- a/Libraries/oneMKL/black_scholes/makefile
+++ /dev/null
@@ -1,15 +0,0 @@
-all: black_scholes_sycl.exe
-
-!if "$(init_on_host)" == "1"
- INIT_ON_HOST=/DINIT_ON_HOST=1
-!endif
-
-DPCPP_OPTS=-O3 /I"$(MKLROOT)\include" /DMKL_ILP64 /DVERBOSE=1 /DSMALL_OPT_N=0 $(INIT_ON_HOST) -fsycl /Qmkl /Qmkl-sycl-impl=rng OpenCL.lib
-
-black_scholes_sycl.exe: src\black_scholes_sycl.cpp
- icx $(DPCPP_OPTS) src\black_scholes_sycl.cpp /oblack_scholes_sycl.exe
-
-clean:
- del /q black_scholes_sycl.exe
-
-.PHONY: clean all
diff --git a/Libraries/oneMKL/black_scholes/sample.json b/Libraries/oneMKL/black_scholes/sample.json
deleted file mode 100644
index 972daee9f6..0000000000
--- a/Libraries/oneMKL/black_scholes/sample.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "guid": "7095DF22-8CBC-44FE-8E13-DDEFC49A7B18",
- "name": "Black Scholes",
- "categories": ["Toolkit/oneAPI Libraries/oneMKL"],
- "description": "Black Scholes formula calculation using Intel® oneMKL Vector Math and Random Number Generators",
- "toolchain": [ "dpcpp" ],
- "dependencies": [ "mkl" ],
- "languages": [ { "cpp": { "properties": { "projectOptions": [ { "projectType": "makefile" } ] } } } ],
- "targetDevice": [ "CPU", "GPU" ],
- "gpuRequired": ["gen9","pvc"],
- "os": [ "linux", "windows" ],
- "builder": [ "make" ],
- "ciTests": {
- "linux": [
- {
- "id": "black_scholes",
- "steps": [
- "make clean",
- "make && ./black_scholes_sycl"
- ]
- }
- ],
- "windows": [
- {
- "id": "black_scholes",
- "steps": [
- "nmake clean",
- "nmake && black_scholes_sycl.exe"
- ]
- }
- ]
- },
- "expertise": "Concepts and Functionality"
-}
diff --git a/Libraries/oneMKL/black_scholes/src/black_scholes.hpp b/Libraries/oneMKL/black_scholes/src/black_scholes.hpp
deleted file mode 100644
index 82f2f13a0a..0000000000
--- a/Libraries/oneMKL/black_scholes/src/black_scholes.hpp
+++ /dev/null
@@ -1,132 +0,0 @@
-//==============================================================
-// Copyright © 2023 Intel Corporation
-//
-// SPDX-License-Identifier: MIT
-// =============================================================
-
-#ifndef __BLACK_SCHOLES_HPP__
-#define __BLACK_SCHOLES_HPP__
-
-#include
-#include
-
-/******* VERSION *******/
-#define MAJOR 1
-#define MINOR 6
-/******* VERSION *******/
-
-// #ifndef DATA_TYPE
-// #define DATA_TYPE double
-// #endif
-
-#ifndef VERBOSE
-#define VERBOSE 1
-#endif
-
-constexpr float volatility = 0.30f;
-constexpr float risk_free = 0.02f;
-
-constexpr size_t opt_n =
-#if SMALL_OPT_N
- 480;
-#else
- 8 * 1024 * 1024;
-#endif
-
-#ifndef ITER_N
-#define ITER_N 512
-#endif
-
-#ifndef __clang_major__
-#define __clang_major__ 0
-#endif
-#ifndef __clang_minor__
-#define __clang_minor__ 0
-#endif
-#ifndef __VERSION__
-#define __VERSION__ __clang_major__
-#endif
-
-template
-class BlackScholes {
-public:
- BlackScholes();
- ~BlackScholes();
- void run();
- void check();
-
-private:
- DATA_TYPE* h_call_result;
- DATA_TYPE* h_put_result;
- DATA_TYPE* h_stock_price;
- DATA_TYPE* h_option_strike;
- DATA_TYPE* h_option_years;
- void body();
-};
-
-// Black-Scholes Reference Implementation
-void BlackScholesRefImpl(
- double& call_result,
- double Sf, //Stock price
- double Xf, //Option strike
- double Tf, //Option years
- double Rf, //Riskless rate
- double Vf //Volatility rate
-)
-{
- // BSM Formula: https://www.nobelprize.org/prizes/economic-sciences/1997/press-release/
- double S = Sf, L = Xf, t = Tf, r = Rf, sigma = Vf;
- double N_d1 = 1. / 2. + 1. / 2. * std::erf(((std::log(S / L) + (r + 0.5 * sigma * sigma) * t) / (sigma * std::sqrt(t))) / std::sqrt(2.));
- double N_d2 = 1. / 2. + 1. / 2. * std::erf(((std::log(S / L) + (r - 0.5 * sigma * sigma) * t) / (sigma * std::sqrt(t))) / std::sqrt(2.));
- call_result = (S * N_d1 - L * std::exp(-r * t) * N_d2);
-}
-
-template
-void BlackScholes::check()
-{
- if (VERBOSE) {
- std::printf("Creating the reference result...\n");
- std::vector h_CallResultCPU(opt_n);
-
- for (size_t opt = 0; opt < opt_n; opt++)
- BlackScholesRefImpl(h_CallResultCPU[opt], h_stock_price[opt], h_option_strike[opt], h_option_years[opt], risk_free, volatility);
-
- double sum_delta = 0.0,
- sum_ref = 0.0,
- max_delta = 0.0,
- errorVal = 0.0;
-
- for (size_t i = 0; i < opt_n; i++) {
- auto ref = h_CallResultCPU[i];
- auto delta = std::fabs(h_CallResultCPU[i] - h_call_result[i]);
- if (delta > max_delta) {
- max_delta = delta;
- }
- sum_delta += delta;
- sum_ref += std::fabs(ref);
- }
- if (sum_ref > 1E-5)
- std::printf("L1 norm: %E\n", errorVal = sum_delta / sum_ref);
- else
- std::printf("Avg. diff: %E\n", errorVal = sum_delta / opt_n);
- if(errorVal < 5e-4){
- std::printf("TEST PASSED\n");
- }
- else{
- std::printf("TEST FAILED\n");
- exit(1);
- }
- }
-}
-
-class timer {
-public:
- timer() { start(); }
- void start() { t1_ = std::chrono::steady_clock::now(); }
- void stop() { t2_ = std::chrono::steady_clock::now(); }
- auto duration() { return std::chrono::duration(t2_ - t1_).count(); }
-private:
- std::chrono::steady_clock::time_point t1_, t2_;
-};
-
-#endif // __BLACK_SCHOLES_HPP__
diff --git a/Libraries/oneMKL/black_scholes/src/black_scholes_sycl.cpp b/Libraries/oneMKL/black_scholes/src/black_scholes_sycl.cpp
deleted file mode 100644
index 7423008b6e..0000000000
--- a/Libraries/oneMKL/black_scholes/src/black_scholes_sycl.cpp
+++ /dev/null
@@ -1,192 +0,0 @@
-//==============================================================
-// Copyright © 2023 Intel Corporation
-//
-// SPDX-License-Identifier: MIT
-// =============================================================
-
-#include
-
-#if !SYCL_LANGUAGE_VERSION
-#error "SYCL is not enabled""
-#endif
-
-#include
-#include
-
-#include "black_scholes.hpp"
-
-constexpr int sg_size = 32;
-#if NON_DEFAULT_SIZE
-constexpr int wg_size = 128;
-constexpr int block_size = 1;
-#else
-constexpr int wg_size = 256;
-constexpr int block_size = 4;
-#endif
-
-sycl::queue* black_scholes_queue;
-
-template
-class k_BlackScholes;
-
-#if USE_CNDF_C
-
-template
-__attribute__((always_inline))
-static inline T CNDF_C(T input)
-{
- constexpr T inv_sqrt_2xPI = 0.39894228040143270286;
- constexpr T CNDF_C1 = 0.2316419;
- constexpr T CNDF_C2 = 0.319381530;
- constexpr T CNDF_C3 = -0.356563782;
- constexpr T CNDF_C4 = 1.781477937;
- constexpr T CNDF_C5 = -1.821255978;
- constexpr T CNDF_C6 = 1.330274429;
- constexpr T CNDF_LN2 = 0.693147180559945309417;
- constexpr T INV_LN2X2 = 1.0 / (CNDF_LN2 * 2.0);
-
- T x = (input < 0.0) ? -input : input;
-
- T k2 = 1.0 / (1.0 + CNDF_C1 * x);
- T k2_2 = k2 * k2;
- T k2_3 = k2_2 * k2;
- T k2_4 = k2_3 * k2;
- T k2_5 = k2_4 * k2;
-
- T output = 1.0 - (inv_sqrt_2xPI * sycl::exp2(-x * x * INV_LN2X2) * ((CNDF_C2 * k2) +
- ((CNDF_C3 * (k2_2)) + (CNDF_C4 * (k2_3)) + (CNDF_C5 * (k2_4)) + (CNDF_C6 * (k2_5)))));
- if (input < 0.0)
- output = (1.0 - output);
-
- return output;
-}
-#endif // USE_CNDF_C
-
-template
-void BlackScholes::body() {
- // this can not be captured to the kernel. So, we need to copy internals of the class to local variables
- DATA_TYPE* h_stock_price_local = this->h_stock_price;
- DATA_TYPE* h_option_years_local = this->h_option_years;
- DATA_TYPE* h_option_strike_local = this->h_option_strike;
- DATA_TYPE* h_call_result_local = this->h_call_result;
- DATA_TYPE* h_put_result_local = this->h_put_result;
-
- black_scholes_queue->parallel_for>(sycl::nd_range(sycl::range<1>(opt_n / block_size), sycl::range<1>(wg_size)),
- [=](sycl::nd_item<1> item) [[intel::kernel_args_restrict]] [[sycl::reqd_sub_group_size(sg_size)]] {
- auto local_id = item.get_local_linear_id();
- auto group_id = item.get_group_linear_id();
-#pragma unroll
- for (size_t opt = group_id * block_size * wg_size + local_id, i = 0; i < block_size; opt += wg_size, i++) {
- constexpr DATA_TYPE sigma = volatility;
- const DATA_TYPE s = h_stock_price_local[opt];
- const DATA_TYPE t = h_option_years_local[opt];
- const DATA_TYPE x = h_option_strike_local[opt];
- const DATA_TYPE XexpRT = x * sycl::exp(-risk_free * t);
-#if USE_CNDF_C
- const DATA_TYPE v_sqrt = sigma * sycl::sqrt(t);
- const DATA_TYPE d1 = (sycl::log(s / x) + (risk_free + DATA_TYPE(0.5) * sigma * sigma) * t) / v_sqrt;
- const DATA_TYPE d2 = d1 - v_sqrt;
- const DATA_TYPE n_d1 = CNDF_C(d1);
- const DATA_TYPE n_d2 = CNDF_C(d2);
-#else
- constexpr DATA_TYPE sqrt1_2 = 0.707106781186547524401;
- DATA_TYPE n_d1 = DATA_TYPE(1. / 2.) + DATA_TYPE(1. / 2.) * sycl::erf(((sycl::log(s / x) + (risk_free + DATA_TYPE(0.5) * sigma * sigma) * t) / (sigma * sycl::sqrt(t))) * sqrt1_2);
- DATA_TYPE n_d2 = DATA_TYPE(1. / 2.) + DATA_TYPE(1. / 2.) * sycl::erf(((sycl::log(s / x) + (risk_free - DATA_TYPE(0.5) * sigma * sigma) * t) / (sigma * sycl::sqrt(t))) * sqrt1_2);
-#endif // USE_CNDF_C
- const DATA_TYPE call_val = s * n_d1 - XexpRT * n_d2;
- const DATA_TYPE put_val = call_val + XexpRT - s;
- h_call_result_local[opt] = call_val;
- h_put_result_local[opt] = put_val;
- }
- });
-}
-
-template
-BlackScholes::BlackScholes()
-{
- black_scholes_queue = new sycl::queue;
-
- h_call_result = sycl::malloc_shared(opt_n, *black_scholes_queue);
- h_put_result = sycl::malloc_shared(opt_n, *black_scholes_queue);
- h_stock_price = sycl::malloc_shared(opt_n, *black_scholes_queue);
- h_option_strike = sycl::malloc_shared(opt_n, *black_scholes_queue);
- h_option_years = sycl::malloc_shared(opt_n, *black_scholes_queue);
-
- constexpr int rand_seed = 777;
- namespace mkl_rng = oneapi::mkl::rng;
- // create random number generator object
- mkl_rng::philox4x32x10 engine(
-#if !INIT_ON_HOST
- *black_scholes_queue,
-#else
- sycl::queue{sycl::cpu_selector_v},
-#endif // !INIT_ON_HOST
- rand_seed);
-
- sycl::event event_1 = mkl_rng::generate(mkl_rng::uniform(5.0, 50.0), engine, opt_n, h_stock_price);
- sycl::event event_2 = mkl_rng::generate(mkl_rng::uniform(10.0, 25.0), engine, opt_n, h_option_strike);
- sycl::event event_3 = mkl_rng::generate(mkl_rng::uniform(1.0, 5.0), engine, opt_n, h_option_years);
- sycl::event::wait({event_1, event_2, event_3});
-}
-
-template
-BlackScholes::~BlackScholes()
-{
- sycl::free(h_call_result, *black_scholes_queue);
- sycl::free(h_put_result, *black_scholes_queue);
- sycl::free(h_stock_price, *black_scholes_queue);
- sycl::free(h_option_strike, *black_scholes_queue);
- sycl::free(h_option_years, *black_scholes_queue);
- delete black_scholes_queue;
-}
-
-template
-void BlackScholes::run()
-{
- std::printf("%s Precision Black&Scholes Option Pricing version %d.%d running on %s using DPC++, workgroup size %d, sub-group size %d.\n",
- sizeof(DATA_TYPE) > 4 ? "Double" : "Single", MAJOR, MINOR, black_scholes_queue->get_device().get_info().c_str(), wg_size, sg_size);
-
- std::printf("Compiler Version: %s, LLVM %d.%d based.\n", __VERSION__, __clang_major__, __clang_minor__);
- std::printf("Driver Version : %s\n", black_scholes_queue->get_device().get_info().c_str());
- std::printf("Build Time : %s %s\n", __DATE__, __TIME__);
- std::printf("Input Dataset : %zu\n", opt_n);
- size_t total_options = 2 * opt_n /*Pricing Call and Put options at the same time, so 2*num_options*/ * ITER_N;
-
- body();
- black_scholes_queue->wait();
-
- std::printf("Pricing %zu Options in %d iterations, %zu Options in total.\n", 2 * opt_n, ITER_N, total_options); fflush(stdout);
- timer t{};
- t.start();
-
- for (int i = 0; i < ITER_N; i++) {
- body();
- }
- black_scholes_queue->wait();
-
- t.stop();
-
- std::printf("Completed in %10.5f seconds. GOptions per second: %10.5f\n", t.duration(), static_cast(total_options) / t.duration() / 1e9);
- std::printf("Time Elapsed = %10.5f seconds\n", t.duration()); fflush(stdout);
-}
-
-int main(int const argc, char const* argv[])
-{
- bool is_fp64 = true;
- {
- sycl::queue test_queue;
- is_fp64 = test_queue.get_device().has(sycl::aspect::fp64);
- }
- if (is_fp64) {
- BlackScholes test{};
- test.run();
- test.check();
- } else {
- std::cout<<"Warning: could not find a device with double precision support. Single precision is used."< test{};
- test.run();
- test.check();
- }
-
- return 0;
-}
diff --git a/Libraries/oneMKL/black_scholes/third-party-programs.txt b/Libraries/oneMKL/black_scholes/third-party-programs.txt
deleted file mode 100644
index 90daff458d..0000000000
--- a/Libraries/oneMKL/black_scholes/third-party-programs.txt
+++ /dev/null
@@ -1,253 +0,0 @@
-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. Nothings STB Libraries
-
-stb/LICENSE
-
- This software is available under 2 licenses -- choose whichever you prefer.
- ------------------------------------------------------------------------------
- ALTERNATIVE A - MIT License
- Copyright (c) 2017 Sean Barrett
- 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.
- ------------------------------------------------------------------------------
- ALTERNATIVE B - Public Domain (www.unlicense.org)
- This is free and unencumbered software released into the public domain.
- Anyone is free to copy, modify, publish, use, compile, sell, or distribute this
- software, either in source code form or as a compiled binary, for any purpose,
- commercial or non-commercial, and by any means.
- In jurisdictions that recognize copyright laws, the author or authors of this
- software dedicate any and all copyright interest in the software to the public
- domain. We make this dedication for the benefit of the public at large and to
- the detriment of our heirs and successors. We intend this dedication to be an
- overt act of relinquishment in perpetuity of all present and future rights to
- this software under copyright law.
- 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 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.
-
---------------------------------------------------------------------------------
-
-2. 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.
-
-
---------------------------------------------------------------------------------
-
-3. Nbody
- (c) 2019 Fabio Baruffa
-
- Plotly.js
- Copyright (c) 2020 Plotly, Inc
-
-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.
-© 2020 GitHub, Inc.
-
---------------------------------------------------------------------------------
-
-4. 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.
-
---------------------------------------------------------------------------------
-
-5. 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
-
---------------------------------------------------------------------------------
-
-6. 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.
-
---------------------------------------------------------------------------------
-7. 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.
-
---------------------------------------------------------------------------------
-Other names and brands may be claimed as the property of others.
-
---------------------------------------------------------------------------------
\ No newline at end of file
diff --git a/Libraries/oneMKL/block_cholesky_decomposition/GNUmakefile b/Libraries/oneMKL/block_cholesky_decomposition/GNUmakefile
deleted file mode 100644
index 241e419a48..0000000000
--- a/Libraries/oneMKL/block_cholesky_decomposition/GNUmakefile
+++ /dev/null
@@ -1,18 +0,0 @@
-# Makefile for GNU make
-
-all: factor solve
- ./factor
- ./solve
-
-MKL_COPTS = -DMKL_ILP64 -qmkl -qmkl-sycl-impl="blas,lapack"
-
-factor: factor.cpp dpbltrf.cpp auxi.cpp
- icpx $^ -o $@ -fsycl -fsycl-device-code-split=per_kernel $(MKL_COPTS)
-
-solve: solve.cpp dpbltrf.cpp dpbltrs.cpp auxi.cpp
- icpx $^ -o $@ -fsycl -fsycl-device-code-split=per_kernel $(MKL_COPTS)
-
-clean:
- -rm -f factor solve
-
-.PHONY: all clean
diff --git a/Libraries/oneMKL/block_cholesky_decomposition/License.txt b/Libraries/oneMKL/block_cholesky_decomposition/License.txt
deleted file mode 100644
index e63c6e13dc..0000000000
--- a/Libraries/oneMKL/block_cholesky_decomposition/License.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-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/Libraries/oneMKL/block_cholesky_decomposition/README.md b/Libraries/oneMKL/block_cholesky_decomposition/README.md
deleted file mode 100644
index cdf7bf297a..0000000000
--- a/Libraries/oneMKL/block_cholesky_decomposition/README.md
+++ /dev/null
@@ -1,123 +0,0 @@
-# `Block Cholesky Decomposition` Sample
-
-Block Cholesky Decomposition shows how to use the Intel® oneAPI Math Kernel Library (oneMKL) library's BLAS and LAPACK functionality to solve a symmetric, positive-definite block tridiagonal linear equation.
-
-| Optimized for | Description
-|:--- |:---
-| OS | Linux* Ubuntu* 18.04
Windows* 10, 11
-| Hardware | Skylake with Gen9 or newer
-| Software | Intel® oneAPI Math Kernel Library (oneMKL)
-| What you will learn | How to use oneMKL BLAS and LAPACK routines with pointer-based (USM) programming
-| Time to complete | 15 minutes
-
-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
-
-Block Cholesky Decomposition consists of two small applications (`factor.cpp` and `solve.cpp`). The factor step generates a block tridiagonal matrix, then performs a block Cholesky factorization using oneMKL BLAS and LAPACK routines. The solver application uses this factorization to solve a linear system with the block tridiagonal matrix on the left-hand side. Both factoring and solving require several oneMKL routines. Some steps can be parallelized, while others must be ordered sequentially.
-
-The sample code shows how to inform oneMKL of the dependencies between routines using SYCL*-compliant events. The code uses pointer-based programming, with Unified Shared Memory (USM) throughout, which allows individual oneMKL routines to work on submatrices of the original matrices.
-
-This sample will use the default SYCL device. You can set the `SYCL_DEVICE_TYPE` environment variable to `cpu` or `gpu` to select the device to use.
-
-This article explains in detail how to solve a system of linear equations with a Cholesky-factored symmetric positive definite block tridiagonal coefficient matrix: https://www.intel.com/content/www/us/en/docs/onemkl/cookbook/current/slve-lin-eqs-blck-tridag-symm-pos-def-coeff-mtrx.html.
-
-## Key Implementation Details
-
-This sample illustrates several important oneMKL routines: matrix multiplication, rank-k updates, and triangular solves from BLAS (`gemm`, `syrk`, and `trsm`), and Cholesky factorization (`potrf`) from LAPACK.
-
-## Using Visual Studio Code* (Optional)
-
-You can use Visual Studio Code (VS Code) extensions to set your environment, create launch configurations,
-and browse and download samples.
-
-The basic steps to build and run a sample using VS Code include:
- - Download a sample using the extension **Code Sample Browser for Intel Software Developer Tools**.
- - Configure the oneAPI environment with the extension **Environment Configurator for Intel Software Developer Tools**.
- - Open a Terminal in VS Code (**Terminal>New Terminal**).
- - Run the sample in the VS Code terminal using the instructions below.
- - (Linux only) Debug your GPU application with GDB for Intel® oneAPI toolkits using the **Generate Launch Configurations** extension.
-
-To learn more about the extensions, see the
-[Using Visual Studio Code with Intel® oneAPI Toolkits User Guide](https://www.intel.com/content/www/us/en/develop/documentation/using-vs-code-with-intel-oneapi/top.html).
-
-
-## Building the Block Cholesky Decomposition Sample
-> **Note**: If you have not already done so, set up your CLI
-> environment by sourcing the `setvars` script located 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'`
->
-> Windows*:
-> - `C:\"Program Files (x86)"\Intel\oneAPI\setvars.bat`
-> - For Windows PowerShell*, use the following command: `cmd.exe "/K" '"C:\Program Files (x86)\Intel\oneAPI\setvars.bat" && powershell'`
->
-> 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) or [Use the setvars Script with Windows*](https://www.intel.com/content/www/us/en/develop/documentation/oneapi-programming-guide/top/oneapi-development-environment-setup/use-the-setvars-script-with-windows.html).
-
-### On a Linux* System
-Run `make` to build and run the factor and solve programs. You can remove all generated files with `make clean`.
-
-### On a Windows* System
-Run `nmake` to build and run the sample. `nmake clean` removes temporary files.
-
-> **Warning**: On Windows, static linking with oneMKL currently takes a very long time due to a known compiler issue. This will be addressed in an upcoming release.
-
-## Running the Block Cholesky Decomposition Sample
-
-### Example of Output
-After building, if everything is working correctly, you will see the step-by-step output from the `factor` and `solve` programs. Each includes an accuracy check at the end to verify that the computation was successful.
-```
-./factor
-Testing accuracy of Cholesky factorization
-of randomly generated positive definite symmetric
-block tridiagonal matrix by calculating residual.
-
-Matrix size = 200
-Block size = 20
-...
-Matrices are being generated.
-...
-Call Cholesky factorization
-...
-Cholesky factorization succeeded.
-Testing the residual
-...
-Residual test
-||A-L*L^t||_F/||A||_F <= 5*EPS...
-passed
-
-./solve
-Testing accuracy of the solution of linear equations system
-with randomly generated positive definite symmetric
-block tridiagonal coefficient matrix by calculating
-ratios of residuals to RHS vectors' norms.
-...
-Matrices are being generated.
-...
-Call Cholesky factorization
-...
-Cholesky factorization succeeded.
-Call solving the system of linear equations
-...
-Solution succeeded.
-The system is solved. Testing the residual
-...
-Residual test
-max_(i=1,...,NRHS){||A*X(i)-F(i)||/||F(i)||} <= 10*EPS
-passed
-```
-
-### Troubleshooting
-If an error occurs, troubleshoot the problem using the Diagnostics Utility for Intel® oneAPI Toolkits.
-[Learn more](https://www.intel.com/content/www/us/en/docs/oneapi/user-guide-diagnostic-utility/current/overview.html).
-
-## License
-
-Code samples are licensed under the MIT license. See
-[License.txt](License.txt) for details.
-
-Third party program Licenses can be found here: [third-party-programs.txt](third-party-programs.txt).
diff --git a/Libraries/oneMKL/block_cholesky_decomposition/auxi.cpp b/Libraries/oneMKL/block_cholesky_decomposition/auxi.cpp
deleted file mode 100644
index f3fef9bca1..0000000000
--- a/Libraries/oneMKL/block_cholesky_decomposition/auxi.cpp
+++ /dev/null
@@ -1,292 +0,0 @@
-//==============================================================
-// Copyright © 2020 Intel Corporation
-//
-// SPDX-License-Identifier: MIT
-// =============================================================
-
-/*
-* Content:
-* Auxiliary subroutines for:
-* - Testing accuracy of Cholesky factorization by computing ratio
-* ||A-L*L^t||_F/||A||_F of Frobenius norms of the residual to the
-* Frobenius norm of the initial matrix and comparing it to 5*EPS.
-* - Calculating max_(i=1,...,NRHS){||AX(i)-F(i)||/||F(i)||} of
-* ratios of residuals to norms of RHS vectors for a system of
-* linear equations with tridiagonal coefficient matrix and
-* multiple RHS
-*
-***********************************************************************/
-#include
-#include
-#include
-#include
-#include
-#include "mkl.h"
-
-
-/************************************************************************
-* Definition:
-* ===========
-* double test_res(int64_t n, int64_t nb, double* d, int64_t ldd, double* b, int64_t ldb, double* d1, int64_t ldd1, double* b1, int64_t ldb1, double* d2, int64_t ldd2, double* b2, int64_t ldb2)
-*
-* Purpose:
-* ========
-* Given L*L^t factorization of block tridiagonal matrix A TEST_RES
-* computes ratio ||A-L*L^t||_F/||A||_F of Frobenius norm of the residual
-* to the Frobenius norm of the initial matrix. The test is considered as
-* passed if the ratio does not exceed 5*EPS. The result is returned via
-* value of INFO.
-*
-* Arguments:
-* ==========
-* N (input) int64_t
-* The number of block rows of the matrix A. N > 0.
-*
-* NB (input) int64_t
-* The size of blocks. NB > 0.
-*
-* D (input) double array, dimension (LDD) * (N*NB)
-* The array stores N diagonal blocks (each of size NB by NB)
-* of the triangular factor L if factorized matrix. The blocks
-* are stored sequentially block by block.
-* Caution: upper triangles of diagonal blocks are not zeroed*
-* =======
-*
-* LDD (input) int64_t.
-* The leading dimension of the array D, LDD >= NB
-*
-* B (input) double array, dimension (LDB,(N-1)*NB)
-* The array stores sub-diagonal blocks of triangular factor L.
-* The blocks are stored sequentially block by block.
-*
-* LDB (input) int64_t.
-* The leading dimension of the array B, LDB >= NB
-*
-* D1 (work array) double array, dimension (LDD1,N*NB)
-* The array is destined for internal computations.
-*
-* LDD1 (input) int64_t.
-* The leading dimension of the array D1, LDD1 >= NB
-*
-* B1 (work array) double array, dimension (LDB1,(N-1)*NB)
-* The array is destined for internal computations.
-*
-* LDB1 (input) int64_t.
-* The leading dimension of the array B1, LDB1 >= NB
-*
-* D2 (input) double array, dimension (LDD2,N*NB)
-* The array stores N diagonal blocks (each of size NB by NB)
-* of the initial symmetric positive definite matrix A.
-* The blocks are stored sequentially block by block. The
-* array is used for comparison.
-*
-* LDD2 (input) int64_t.
-* The leading dimension of the array D2, LDD2 >= NB
-*
-* B2 (input) double array, dimension (LDB2,(N-1)*NB)
-* The array stores sub-diagonal blocks of the initial symmetric
-* positive definite matrix A. The blocks are stored
-* sequentially block by block. The array is used for comparison.
-*
-* LDB2 (input) int64_t.
-* The leading dimension of the array B2, LDB2 >= NB
-*
-* INFO (output) int64_t
-* = 0: successful exit
-* < 0: if INFO = -i, the i-th argument had an illegal value
-* = 1: the ratio ||A-L*L^t||_F/||A||_F exceeds 5*EPS
-***********************************************************************/
-
-double test_res(int64_t n, int64_t nb, double* d, int64_t ldd, double* b, int64_t ldb, double* d1, int64_t ldd1, double* b1, int64_t ldb1, double* d2, int64_t ldd2, double* b2, int64_t ldb2) {
-
- // Matrix accessors
- auto D = [=](int64_t i, int64_t j) -> double& { return d[i + j*ldd]; };
- auto D1 = [=](int64_t i, int64_t j) -> double& { return d1[i + j*ldd1]; };
- auto D2 = [=](int64_t i, int64_t j) -> double& { return d2[i + j*ldd2]; };
- auto B = [=](int64_t i, int64_t j) -> double& { return b[i + j*ldb]; };
- auto B1 = [=](int64_t i, int64_t j) -> double& { return b1[i + j*ldb1]; };
- auto B2 = [=](int64_t i, int64_t j) -> double& { return b2[i + j*ldb2]; };
-
- // Compute S2 = ||A||_F
- double s = LAPACKE_dlange(MKL_COL_MAJOR, 'F', nb, nb*n, d2, ldd2);
- double s1 = LAPACKE_dlange(MKL_COL_MAJOR, 'F', nb, nb*(n-1), b2, ldb2);
- double s2 = sqrt(s*s+2.0*s1*s1);
-
- // Copy D -> D1, B -> B1 and nullify the upper triangle of blocks in D1
- for (int64_t k = 0; k < n; k++) {
- for(int64_t j = 0; j < nb; j++) {
- cblas_dcopy(nb-j, &D(j, k*nb+j), 1, &D1(j, k*nb+j), ldd1);
- for (int64_t i = 0; i < j; i++) {
- D1(j, k*nb+i) = 0.0;
- }
- }
- }
-
- for (int64_t k = 0; k < n-1; k++) {
- for (int64_t j = 0; j < nb; j++) {
- cblas_dcopy(nb, &B(0, k*nb+j), 1, &B1(0, k*nb+j), 1);
- }
- }
-
- // Compute product of lower block bidiagonal matrix by its transpose
- // | L_1 | | L_1^t B_1^t |
- // | B_1 L_2 | | L_2^t B_2^t |
- // | . . |*| . . |
- // | . . | | . . |
- // | B_N-2 L_N-1 | | L_N-1^t B_N-1^t|
- // | B_N-1 L_N | | L_N^t |
- //
- // Result matrix has the following structure
- // D_1 B_1^t
- // B_1 D_2 B_2^t
- // B_2 D_3 B_3^t
- // . . .
- // . . .
- // B_N-2 D_N-1 B_N-1^t
- // B_N-1 D_N
- //
- // D_1 := L_1*L_1^t
- cblas_dtrmm(CblasColMajor, CblasLeft, CblasLower, CblasNoTrans, CblasNonUnit, nb, nb, 1.0, d, ldd, d1, ldd1);
- for (int64_t k = 0; k < n-1; k++) {
- // B_k := B_k*L_k^t
- cblas_dtrmm(CblasColMajor, CblasRight, CblasLower, CblasTrans, CblasNonUnit,
- nb, nb, 1.0, &D(0, k*nb), ldd, &B1(0, k*nb), ldb1);
- // D_k := L_k*L_k^t
- cblas_dtrmm(CblasColMajor, CblasLeft, CblasLower, CblasNoTrans, CblasNonUnit,
- nb, nb, 1.0, &D(0, (k+1)*nb), ldd, &D1(0, (k+1)*nb), ldd1);
- // D_k := D_k + B_k*B_k^t
- cblas_dgemm(CblasColMajor, CblasNoTrans, CblasTrans, nb, nb, nb, 1.0,
- &B(0, k*nb), ldb, &B(0, k*nb), ldb, 1.0,
- &D1(0, (k+1)*nb), ldd1);
- }
-
- // Compute the difference between the calculated product L*L^t and initial
- // matrix that was factored
- for (int64_t j = 0; j < nb*n; j++) {
- for (int64_t i = 0; i < nb; i++) {
- D1(i,j) = D1(i,j) - D2(i,j);
- }
- }
-
- for (int64_t j = 0; j < nb*(n-1); j++) {
- for (int64_t i = 0; i < nb; i++) {
- B1(i,j) = B1(i,j) - B2(i,j);
- }
- }
-
- s = LAPACKE_dlange(MKL_COL_MAJOR, 'F', nb, nb*n, d1, ldd1);
- s1 = LAPACKE_dlange(MKL_COL_MAJOR, 'F', nb, nb*(n-1), b1, ldb1);
-
- s = sqrt(s*s+2.0*s1*s1)/s2;
- return s;
-}
-
-/************************************************************************
-* Definition:
-* ===========
-* double test_res1(int64_t n, int64_t nrhs, int64_t nb, double* d, int64_t ldd, double* b, int64_t ldb, double* f, int64_t ldf, double* x, int64_t ldx )
-*
-* Purpose:
-* ========
-* Given approximate solution X of system of linear equations A*X=F
-* with symmetric positive definite block tridiagonal coefficient matrix
-* A =
-* D_1 B_1^t
-* B_1 D_2 B_2^t
-* B_2 D_3 B_3^t
-* . . .
-* . . .
-* B_N-2 D_N-1 B_N-1^t
-* B_N-1 D_N
-* the routine computes max_(i=1,...,NRHS){||AX(i)-F(i)||/F(i)} of ratios
-* of residuals to norms of RHS vectors. he test is considered as passed
-* if the value does not exceed 10*EPS where EPS is the machine
-* precision.
-*
-* Arguments:
-* ==========
-* N (input) int64_t
-* The number of block rows of the matrix A. N > 0.
-*
-* NRHS (input) int64_t
-* The number of right hand sides (number of columns in matrix F.
-*
-* NB (input) int64_t
-* The block size of blocks D_j, B_j
-*
-* D (input) double array, dimension (LDD) * (N*NB)
-* The array stores N diagonal blocks (each of size NB by NB)
-* of matrix A. The blocks are stored sequentially block by
-* block.
-* Caution: The diagonal blocks are symmetric matrices - this
-* =======
-* feature is assumed.
-*
-* LDD (input) int64_t.
-* The leading dimension of the array D, LDD >= NB
-*
-* B (input) double array, dimension (LDB) * ((N-1)*NB)
-* The array stores sub-diagonal blocks of matrix A.
-* The blocks are stored sequentially block by block.
-*
-* LDB (input) int64_t.
-* The leading dimension of the array B, LDB >= NB
-*
-* F (input) double array, dimension (LDF) * (NRHS)
-* The right hand sides of the system of linear equations.
-*
-* LDF (input) int64_t.
-* The leading dimension of the array F, LDF >= NB*N
-*
-* X (input) double array, dimension (LDX) * (NRHS)
-* The solutions of the system of linear equations.
-*
-* LDX (input) int64_t.
-* The leading dimension of the array X, LDX >= NB*N
-*
-* INFO (output) int64_t
-* = 0: successful exit
-* < 0: if INFO = -i, the i-th argument had an illegal value
-* = 1: max_(i=1,...,NRHS){||AX(i)-F(i)||/F(i)} exceeds 10*EPS
-* = 10: note enough memory for internal array
-***********************************************************************/
-
-double test_res1(int64_t n, int64_t nrhs, int64_t nb, double* d, int64_t ldd, double* b, int64_t ldb, double* f, int64_t ldf, double* x, int64_t ldx ) {
-
- // Matrix accessors
- auto D = [=](int64_t i, int64_t j) -> double& { return d[i + j*ldd]; };
- auto B = [=](int64_t i, int64_t j) -> double& { return b[i + j*ldb]; };
- auto F = [=](int64_t i, int64_t j) -> double& { return f[i + j*ldf]; };
- auto X = [=](int64_t i, int64_t j) -> double& { return x[i + j*ldx]; };
-
- std::vector norms(nrhs);
-
- // Compute norms of RHS vectors
- for (int64_t i = 0; i < nrhs; i++) {
- norms[i] = cblas_dnrm2(nb*n, &F(0,i), 1);
- }
-
- // Out-of-loop compute F(1):=F(1)-D(1)*X(1)-B(1)^t*X(2)
- cblas_dgemm(CblasColMajor, CblasNoTrans, CblasNoTrans, nb, nrhs, nb, -1.0, d, ldd, x, ldx, 1.0, f, ldf);
- cblas_dgemm(CblasColMajor, CblasTrans, CblasNoTrans, nb, nrhs, nb, -1.0, b,ldb, &X(nb, 0), ldx, 1.0, f, ldf);
-
- for (int64_t k = 1; k < n-1; k++) {
- // Compute F(K):=F(K)-B(K-1)*X(K-1)-D(K)*X(K)-B(K)^t*X(K+1)
- cblas_dgemm(CblasColMajor, CblasNoTrans, CblasNoTrans, nb, nrhs, nb, -1.0, &B(0, (k-1)*nb), ldb, &X((k-1)*nb, 0), ldx, 1.0, &F(k*nb, 0), ldf);
- cblas_dgemm(CblasColMajor, CblasNoTrans, CblasNoTrans, nb, nrhs, nb, -1.0, &D(0, k*nb), ldd, &X( k*nb, 0), ldx, 1.0, &F(k*nb, 0), ldf);
- cblas_dgemm(CblasColMajor, CblasTrans, CblasNoTrans, nb, nrhs, nb, -1.0, &B(0, k*nb), ldb, &X((k+1)*nb, 0), ldx, 1.0, &F(k*nb, 0), ldf);
- }
-
- // Out-of-loop compute F(N):=F(N)-B(N-1)*X(N-1)-D(N)*X(N)
- cblas_dgemm(CblasColMajor, CblasNoTrans, CblasNoTrans, nb, nrhs, nb, -1.0, &B(0, (n-2)*nb), ldb, &X((n-2)*nb, 0), ldx, 1.0, &F((n-1)*nb, 0), ldf);
- cblas_dgemm(CblasColMajor, CblasNoTrans, CblasNoTrans, nb, nrhs, nb, -1.0, &D(0, (n-1)*nb), ldd, &X((n-1)*nb, 0), ldx, 1.0, &F((n-1)*nb, 0), ldf);
-
- // Compute norms of residual vectors divided by norms of RHS vectors
- double res = 0.0;
- for (int64_t i = 0; i < nrhs; i++) {
- double s = cblas_dnrm2(n*nb, &F(0,i), 1);
- res = std::max(res, s/norms[i]);
- }
-
- return res;
-}
diff --git a/Libraries/oneMKL/block_cholesky_decomposition/dpbltrf.cpp b/Libraries/oneMKL/block_cholesky_decomposition/dpbltrf.cpp
deleted file mode 100644
index cca2d64392..0000000000
--- a/Libraries/oneMKL/block_cholesky_decomposition/dpbltrf.cpp
+++ /dev/null
@@ -1,173 +0,0 @@
-//==============================================================
-// Copyright © 2020 Intel Corporation
-//
-// SPDX-License-Identifier: MIT
-// =============================================================
-
-/*
-*
-* Content:
-* Function DPBLTRF for Cholesky factorization of symmetric
-* positive definite block tridiagonal matrix.
-************************************************************************/
-#include
-
-#include
-#include "oneapi/mkl.hpp"
-
-using namespace oneapi;
-
-/************************************************************************
-* Definition:
-* ===========
-* int64_t dpbltrf(sycl::queue queue, int64_t n, int64_t nb, double* d, int64_t ldd, double* b, int64_t ldb) {
-*
-* Purpose:
-* ========
-* DPBLTRF computes Cholesky L*L^t-factorization of symmetric positive
-* definite block tridiagonal matrix A
-* D_1 B_1^t
-* B_1 D_2 B_2^t
-* B_2 D_3 B_3^t
-* . . .
-* . . .
-* B_N-2 D_N-1 B_N-1^t
-* B_N-1 D_N
-* The factorization has the form A = L*L**t, where L is a lower
-* bidiagonal block matrix
-* L_1
-* C_1 L_2
-* C_2 L_3
-* . . .
-* . . .
-* C_N-2 L_N-1
-* C_N-1 L_N
-* This is a block version of LAPACK DPTTRF subroutine.
-*
-* Arguments:
-* ==========
-* QUEUE (input) sycl queue
-* The device queue
-*
-* N (input) int64_t
-* The number of block rows of the matrix A. N >= 0.
-*
-* NB (input) int64_t
-* The size of blocks. NB >= 0.
-*
-* D (input/output) double array, dimension (LDD)*(N*NB)
-* On entry, the array stores N diagonal blocks (each of size NB by
-* NB) of the matrix to be factored. The blocks are stored
-* sequentially: first NB columns of D store block D_1, second NB
-* columns store block D_2,...,last NB columns store block D_N.
-* Note: As the diagonal blocks are symmetric only lower or upper
-* ====
-* triangle is needed to store blocks' elements. In this code
-* lower storage is used***
-* On exit, the array stores diagonal blocks of triangular factor L.
-* Diagonal blocks of lower triangular factor L replace
-* respective lower triangles of blocks D_j (1 <= j <= N).
-* Caution: upper triangles of diagonal blocks are not zeroed on exit
-*
-* LDD (input) int64_t
-* The leading dimension of array D. LDD >= NB.
-*
-* B (input/output) double array, dimension (LDB)*((N-1)*NB)
-* On entry, the array stores sub-diagonal blocks (each of size NB
-* by NB) of the matrix to be factored. The blocks are stored
-* sequentially: first NB columns of B store block B_1, second
-* NB columns store block B_2,...,last NB columns store block
-* B_N-1.
-* On exit, the array stores sub-diagonal blocks of triangular factor
-* L.
-*
-* LDB (input) int64_t
-* The leading dimension of array B. LDB >= NB.
-*
-* INFO (return) int64_t
-* = 0: successful exit
-* < 0: if INFO = -i, the i-th argument had an illegal value
-* > 0: if INFO = i, the leading minor of order i (and
-* therefore the matrix A itself) is not
-* positive-definite, and the factorization could not be
-* completed. This may indicate an error in forming the
-* matrix A.
-***********************************************************************/
-int64_t dpbltrf(sycl::queue queue, int64_t n, int64_t nb, double* d, int64_t ldd, double* b, int64_t ldb) {
-
- // Matrix accessors
- auto D = [=](int64_t i, int64_t j) -> double& { return d[(i) + (j)*ldd]; };
- auto B = [=](int64_t i, int64_t j) -> double& { return b[(i) + (j)*ldb]; };
-
- int64_t info = 0;
- if (n < 0)
- info = -1;
- else if (nb < 0)
- info = -2;
- else if (ldd < nb)
- info = -4;
- else if (ldb < nb)
- info = -6;
-
- if (info)
- return info;
-
- sycl::context context = queue.get_context();
- sycl::device device = queue.get_device();
-
- // Compute Cholesky factorization of the first diagonal block
- try {
- std::int64_t scratchpad_size = mkl::lapack::potrf_scratchpad_size(queue, mkl::uplo::lower, nb, ldd);
- double* scratchpad = static_cast(sycl::malloc_shared(scratchpad_size * sizeof(double), device, context));
- if (scratchpad_size != 0 && !scratchpad) {
- info = -1000;
- goto cleanup;
- }
- auto event1 = mkl::lapack::potrf(queue, mkl::uplo::lower, nb, d, ldd, scratchpad, scratchpad_size );
- event1.wait_and_throw();
- sycl::free(scratchpad, context);
- } catch(mkl::lapack::exception const& e) {
- // Handle LAPACK related exceptions happened during synchronous call
- std::cout << "Unexpected exception caught during synchronous call to LAPACK API:\ninfo: " << e.info() << std::endl;
- if (e.info() > 0) {
- // INFO is equal to the 'global' index of the element u_ii of the factor
- // U which is equal to zero
- info = e.info();
- }
- return info;
- }
-
- // Main loop
- for (int64_t k = 0; k < n-1; k++) {
- auto event1 = mkl::blas::trsm(queue, mkl::side::right, mkl::uplo::lower, mkl::transpose::trans,
- mkl::diag::nonunit, nb, nb, 1.0, &D(0,k*nb), ldd, &B(0,k*nb), ldb);
- auto event2 = mkl::blas::syrk(queue, mkl::uplo::lower, mkl::transpose::nontrans, nb, nb,
- -1.0, &B(0,k*nb), ldb, 1.0, &D(0,(k+1)*nb), ldd, {event1});
- event2.wait_and_throw();
-
- try {
- std::int64_t scratchpad_size = mkl::lapack::potrf_scratchpad_size(queue, mkl::uplo::lower, nb, ldd);
- double* scratchpad = static_cast(sycl::malloc_shared(scratchpad_size * sizeof(double), device, context));
- if (scratchpad_size != 0 && !scratchpad) {
- info = -1000;
- goto cleanup;
- }
- auto event1 = mkl::lapack::potrf(queue, mkl::uplo::lower, nb, &D(0,(k+1)*nb), ldd, scratchpad, scratchpad_size );
- event1.wait_and_throw();
- sycl::free(scratchpad, context);
- } catch(mkl::lapack::exception const& e) {
- // Handle LAPACK related exceptions happened during synchronous call
- std::cout << "Unexpected exception caught during synchronous call to LAPACK API:\ninfo: " << e.info() << std::endl;
- if (e.info() > 0) {
- // INFO is equal to the 'global' index of the element u_ii of the factor
- // U which is equal to zero
- info = e.info() + (k+1)*nb;
- }
- return info;
- }
- }
- return info;
-
-cleanup:
- return info;
-}
diff --git a/Libraries/oneMKL/block_cholesky_decomposition/dpbltrs.cpp b/Libraries/oneMKL/block_cholesky_decomposition/dpbltrs.cpp
deleted file mode 100644
index fc956641d6..0000000000
--- a/Libraries/oneMKL/block_cholesky_decomposition/dpbltrs.cpp
+++ /dev/null
@@ -1,135 +0,0 @@
-//==============================================================
-// Copyright © 2020 Intel Corporation
-//
-// SPDX-License-Identifier: MIT
-// =============================================================
-
-/*
-*
-* Content:
-* Function DPBLTRS for solving a system of linear equations with
-* Cholesky factored symmetric positive definite block tridiagonal
-* coefficient matrix.
-************************************************************************/
-#include
-
-#include
-#include "oneapi/mkl.hpp"
-
-using namespace oneapi;
-
-/************************************************************************
-* Definition:
-* ===========
-* int64_t dpbltrs(sycl::queue queue, int64_t n, int64_t nrhs, int64_t nb, double* d, int64_t ldd, double* b, int64_t ldb, double* f, int64_t ldf)
-*
-* Purpose:
-* ========
-* DPBLTRS computes a solution to system of linear equations A*X=F with
-* symmetric positive definite block tridiagonal coefficient matrix A
-* D_1 B_1^t
-* B_1 D_2 B_2^t
-* B_2 D_3 B_3^t
-* . . .
-* . . .
-* B_N-2 D_N-1 B_N-1^t
-* B_N-1 D_N
-* and multiple right hand sides F. Before call this routine the
-* coefficient matrix should factored A=L*L^T by calling DPBLTRF where
-* L is a lower block bidiagonal matrix
-* L_1
-* C_1 L_2
-* C_2 L_3
-* . . .
-* . . .
-* C_N-2 L_N-1
-* C_N-1 L_N
-* This is a block version of LAPACK DPTTRS subroutine.
-*
-* Arguments:
-* ==========
-* QUEUE (input) sycl queue
-* The device queue
-*
-* N (input) int64_t
-* The number of block rows of the matrix A. N >= 0.
-*
-* NRHS (input) int64_t
-* The number of right hand sides (the number of columns in matrix F).
-*
-* NB (input) int64_t
-* The size of blocks. NB >= 0.
-*
-* D (input) double array, dimension (LDD) * (N*NB)
-* On entry, the array stores diagonal blocks of triangular factor L.
-* Diagonal blocks L_j of lower triangular factor L are stored as
-* respective lower triangles of blocks D_j (1 <= j <= N).
-* Caution: upper triangles of D_j are not assumed to be zeroed.
-* =======
-*
-* LDD (input) int64_t
-* The leading dimension of array D. LDD >= NB.
-*
-* B (input) double array, dimension (LDB) * ((N-1)*NB)
-* On entry, the array stores sub-diagonal blocks L_j of triangular
-* factor L.
-*
-* LDB (input) int64_t
-* The leading dimension of array B. LDB >= NB.
-*
-* F (input/output) double array, dimension (LDF) * (NRHS)
-* On entry, the columns of the array store vectors F(i) of right
-* hand sides of system of linear equations A*X=F.
-*
-* LDF (input) int64_t
-* The leading dimension of array F. LDF >= NB*N.
-*
-* INFO (return) int64_t
-* = 0: successful exit
-* < 0: if INFO = -i, the i-th argument had an illegal value
-* =====================================================================
-*/
-int64_t dpbltrs(sycl::queue queue, int64_t n, int64_t nrhs, int64_t nb, double* d, int64_t ldd, double* b, int64_t ldb, double* f, int64_t ldf) {
-
- auto D = [=](int64_t i, int64_t j) -> double& { return d[i + j*ldd]; };
- auto B = [=](int64_t i, int64_t j) -> double& { return b[i + j*ldb]; };
- auto F = [=](int64_t i, int64_t j) -> double& { return f[i + j*ldf]; };
-
- // Test the input arguments.
- int64_t info = 0;
- if (n < 0)
- info = -1;
- else if (nrhs < 0)
- info = -2;
- else if (nb < 0)
- info = -3;
- else if (ldd < nb)
- info = -5;
- else if (ldb < nb)
- info = -7;
- else if (ldf < nb*n)
- info = -9;
-
- if (info)
- return info;
-
- // Solving the system of linear equations L*Y=F
- auto event1 = mkl::blas::trsm(queue, mkl::side::left, mkl::uplo::lower, mkl::transpose::nontrans, mkl::diag::nonunit, nb, nrhs, 1.0, d, ldd, f, ldf);
- event1.wait_and_throw();
- for ( int64_t k = 0; k < n-1; k++) {
- auto event2 = mkl::blas::gemm(queue, mkl::transpose::nontrans, mkl::transpose::nontrans, nb, nrhs, nb, -1.0, &B(0, k*nb), ldb, &F(k*nb, 0), ldf, 1.0, &F((k+1)*nb, 0), ldf);
- auto event3 = mkl::blas::trsm(queue, mkl::side::left, mkl::uplo::lower, mkl::transpose::nontrans, mkl::diag::nonunit, nb, nrhs, 1.0, &D(0, (k+1)*nb), ldd, &F((k+1)*nb, 0), ldf, {event2});
- event3.wait_and_throw();
- }
- // ..
- // Solving the system of linear equations L^T*X=Y
- event1 = mkl::blas::trsm(queue, mkl::side::left, mkl::uplo::lower, mkl::transpose::trans, mkl::diag::nonunit, nb, nrhs, 1.0, &D(0, (n-1)*nb), ldd, &F((n-1)*nb, 0), ldf);
- event1.wait_and_throw();
- for ( int64_t k = n-2; k >= 0; k-- ) {
- auto event2 = mkl::blas::gemm(queue, mkl::transpose::trans, mkl::transpose::nontrans, nb, nrhs, nb, -1.0, &B(0, k*nb), ldb, &F((k+1)*nb, 0), ldf, 1.0, &F(k*nb, 0), ldf);
- auto event3 = mkl::blas::trsm(queue, mkl::side::left, mkl::uplo::lower, mkl::transpose::trans, mkl::diag::nonunit, nb, nrhs, 1.0, &D(0, k*nb), ldd, &F(k*nb, 0), ldf, {event2});
- event3.wait_and_throw();
- }
-
- return info;
-}
diff --git a/Libraries/oneMKL/block_cholesky_decomposition/factor.cpp b/Libraries/oneMKL/block_cholesky_decomposition/factor.cpp
deleted file mode 100644
index 928b66e8c3..0000000000
--- a/Libraries/oneMKL/block_cholesky_decomposition/factor.cpp
+++ /dev/null
@@ -1,157 +0,0 @@
-//==============================================================
-// Copyright © 2020 Intel Corporation
-//
-// SPDX-License-Identifier: MIT
-// =============================================================
-
-/*
- *
- * Content:
- * Example of Cholesky factorization of a symmetric positive
- * definite block tridiagonal matrix
- ************************************************************************
- * Purpose:
- * ========
- * Testing accuracy of Cholesky factorization A=
- * | L_1 | | L_1^t C_1^t |
- * | C_1 L_2 | | L_2^t C_2^t |
- * A = | . . |*| . . |
- * | . . | | . C_N-1^t |
- * | C_N-1 L_N | | L_N^t |
- *
- * of a symmetric positive definite block tridiagonal matrix A
- * | D_1 B_1^t |
- * | B_1 D_2 B_2^t |
- * | B_2 D_3 B_3^t |
- * | . . . |
- * | . . . |
- * | B_N-2 D_N-1 B_N-1^t |
- * | B_N-1 D_N |
- * by calling TEST_RES which calculates ratio of Frobenius norms
- * ||A-L*L^t||_F/||A||_F.
- */
-
-#include
-#include
-#include
-
-#include
-#include "oneapi/mkl.hpp"
-
-using namespace oneapi;
-
-int64_t dpbltrf(sycl::queue queue, int64_t n, int64_t nb, double* d, int64_t ldd, double* b, int64_t ldb);
-double test_res(int64_t, int64_t, double*, int64_t, double*, int64_t, double*, int64_t, double*, int64_t, double*, int64_t, double*, int64_t);
-
-template
-using allocator_t = sycl::usm_allocator;
-
-
-int main() {
-
- if (sizeof(MKL_INT) != sizeof(int64_t)) {
- std::cerr << "MKL_INT not 64bit" << std::endl;
- return -1;
- }
-
- int64_t info = 0;
-
- // Asynchronous error handler
- auto error_handler = [&] (sycl::exception_list exceptions) {
- for (auto const& e : exceptions) {
- try {
- std::rethrow_exception(e);
- } catch(mkl::lapack::exception const& e) {
- // Handle LAPACK related exceptions happened during asynchronous call
- info = e.info();
- std::cout << "Unexpected exception caught during asynchronous LAPACK operation:\ninfo: " << e.info() << std::endl;
- } catch(sycl::exception const& e) {
- // Handle not LAPACK related exceptions happened during asynchronous call
- std::cout << "Unexpected exception caught during asynchronous operation:\n" << e.what() << std::endl;
- info = -1;
- }
- }
- };
-
- sycl::device device{sycl::default_selector_v};
- sycl::queue queue(device, error_handler);
- sycl::context context = queue.get_context();
-
- if (device.get_info().empty()) {
- std::cerr << "The sample uses double precision, which is not supported" << std::endl;
- std::cerr << "by the selected device. Quitting." << std::endl;
- return 0;
- }
-
- allocator_t allocator_d(context, device);
-
- MKL_INT n = 200;
- MKL_INT nb = 20;
-
- std::vector> d(nb * n*nb, allocator_d);
- std::vector> b(nb * (n-1)*nb, allocator_d);
- std::vector d1(nb * n*nb);
- std::vector b1(nb * (n-1)*nb);
- std::vector d2(nb * n*nb);
- std::vector b2(nb * (n-1)*nb);
-
- std::vector iseed = {1, 2, 33, 15};
-
- auto D = [=,&d](int64_t i, int64_t j) -> double& { return d[i + j*nb]; };
-
- std::cout << "Testing accuracy of Cholesky factorization\n";
- std::cout << "of randomly generated positive definite symmetric\n";
- std::cout << "block tridiagonal matrix by calculating residual.\n\n";
- std::cout << "Matrix size = " << n << "\n";
- std::cout << "Block size = " << nb << "\n";
- std::cout << "...\n";
- std::cout << "Matrices are being generated.\n";
- std::cout << "...\n";
-
- // Initializing arrays randomly
- LAPACKE_dlarnv(2, iseed.data(), (n-1)*nb*nb, b.data());
- cblas_dcopy((n-1)*nb*nb, b.data(), 1, b2.data(), 1);
- for (int64_t k = 0; k < n; k++) {
- for (int64_t j = 0; j < nb; j++) {
- LAPACKE_dlarnv(2, iseed.data(), nb-j, &D(j,k*nb+j));
- cblas_dcopy(nb-j, &D(j+1, k*nb+j), 1, &D(j, k*nb+j+1), nb);
- }
- // Diagonal dominance to make the matrix positive definite
- for (int64_t j = 0; j < nb; j++) {
- D(j, k*nb+j) += nb*3.0;
- }
- }
- cblas_dcopy(n*nb*nb, d.data(), 1, d2.data(), 1);
-
- std::cout << "Call Cholesky factorization\n";
- std::cout << "...\n";
- try {
- info = dpbltrf(queue, n, nb, d.data(), nb, b.data(), nb);
- } catch(sycl::exception const& e) {
- // Handle not LAPACK related exceptions happened during synchronous call
- std::cout << "Unexpected exception caught during synchronous call to SYCL API:\n" << e.what() << std::endl;
- info = -1;
- }
-
- if(info) {
- std::cout << "Factorization failed. info = " << info << std::endl;
- return 1;
- } else {
- std::cout << "Cholesky factorization succeeded." << std::endl;
- std::cout << "Testing the residual" << std::endl;
- std::cout << "..." << std::endl;
- double res = test_res(n, nb, d.data(), nb, b.data(), nb, d1.data(), nb, b1.data(), nb, d2.data(), nb, b2.data(), nb);
- double eps = LAPACKE_dlamch('E');
-
- std::cout << "Residual test" << std::endl;
- std::cout << "||A-L*L^t||_F/||A||_F <= 5*EPS..." << std::endl;
- if (res/eps > 5.0) {
- std::cout << "failed: ||A-L*L^t||_F/||A||_F = " << res << std::endl;
- return 1;
- } else {
- std::cout << "passed" << std::endl;
- }
- }
-
- return 0;
-}
diff --git a/Libraries/oneMKL/block_cholesky_decomposition/makefile b/Libraries/oneMKL/block_cholesky_decomposition/makefile
deleted file mode 100644
index b526884f63..0000000000
--- a/Libraries/oneMKL/block_cholesky_decomposition/makefile
+++ /dev/null
@@ -1,16 +0,0 @@
-# Makefile for NMAKE
-
-all: factor.exe solve.exe
- .\factor.exe
- .\solve.exe
-
-DPCPP_OPTS=/I"$(MKLROOT)\include" /Qmkl /Qmkl-sycl-impl="blas,lapack" /DMKL_ILP64 /EHsc -fsycl-device-code-split=per_kernel OpenCL.lib
-
-factor.exe: factor.cpp dpbltrf.cpp auxi.cpp
- icx-cl -fsycl factor.cpp dpbltrf.cpp auxi.cpp /Fefactor.exe $(DPCPP_OPTS)
-
-solve.exe: solve.cpp dpbltrf.cpp dpbltrs.cpp auxi.cpp
- icx-cl -fsycl solve.cpp dpbltrf.cpp dpbltrs.cpp auxi.cpp /Fesolve.exe $(DPCPP_OPTS)
-
-clean:
- del /q factor.exe factor.exp factor.lib solve.exe solve.exp solve.lib
diff --git a/Libraries/oneMKL/block_cholesky_decomposition/sample.json b/Libraries/oneMKL/block_cholesky_decomposition/sample.json
deleted file mode 100644
index 75ae809fbd..0000000000
--- a/Libraries/oneMKL/block_cholesky_decomposition/sample.json
+++ /dev/null
@@ -1,33 +0,0 @@
-{
- "guid": "54F991CC-F04C-443A-9C3E-0AAF98A8FD65",
- "name": "Block Cholesky Decomposition",
- "categories": ["Toolkit/oneAPI Libraries/oneMKL"],
- "description": "Block Cholesky Decomposition using Intel® oneMKL BLAS and LAPACK",
- "toolchain": [ "dpcpp" ],
- "dependencies": [ "mkl" ],
- "languages": [ { "cpp": { "properties": { "projectOptions": [ { "projectType": "makefile" } ] } } } ],
- "targetDevice": [ "CPU", "GPU" ],
- "os": [ "linux", "windows" ],
- "builder": [ "make" ],
- "ciTests": {
- "linux": [
- {
- "id": "block_cholesky_decomposition",
- "steps": [
- "make clean",
- "make"
- ]
- }
- ],
- "windows": [
- {
- "id": "block_cholesky_decomposition",
- "steps": [
- "nmake clean",
- "nmake"
- ]
- }
- ]
- },
- "expertise": "Concepts and Functionality"
-}
diff --git a/Libraries/oneMKL/block_cholesky_decomposition/solve.cpp b/Libraries/oneMKL/block_cholesky_decomposition/solve.cpp
deleted file mode 100644
index 4bac877248..0000000000
--- a/Libraries/oneMKL/block_cholesky_decomposition/solve.cpp
+++ /dev/null
@@ -1,182 +0,0 @@
-//==============================================================
-// Copyright © 2020 Intel Corporation
-//
-// SPDX-License-Identifier: MIT
-// =============================================================
-
-/*
-* Content:
-* Example of solving a system of linear equations with symmetric
-* positive definite block tridiagonal coefficient matrix Cholesky
-* factored
-************************************************************************
-* Purpose:
-* ========
-* Testing accuracy of solution of a system of linear equations A*X=F
-* with a symmetric positive definite block tridiagonal coefficient
-* matrix A
-* | D_1 B_1^t |
-* | B_1 D_2 B_2^t |
-* | B_2 D_3 B_3^t |
-* | . . . |
-* | . . . |
-* | B_N-2 D_N-1 B_N-1^t |
-* | B_N-1 D_N |
-* preliminarily Cholesky factored as follows:
-* | L_1 | | L_1^t C_1^t |
-* | C_1 L_2 | | L_2^t C_2^t |
-* A = | . . |*| . . |
-* | . . | | . C_N-1^t |
-* | C_N-1 L_N | | L_N^t |
-*
-* To test the solution function TES_RES1 is called.
-*/
-
-#include
-#include
-#include
-
-#include
-#include "oneapi/mkl.hpp"
-
-using namespace oneapi;
-
-template
-using allocator_t = sycl::usm_allocator;
-
-int64_t dpbltrf(sycl::queue queue, int64_t n, int64_t nb, double* d, int64_t ldd, double* b, int64_t ldb);
-int64_t dpbltrs(sycl::queue queue, int64_t n, int64_t nrhs, int64_t nb, double* d, int64_t ldd, double* b, int64_t ldb, double* f, int64_t ldf);
-
-double test_res1(int64_t n, int64_t nrhs, int64_t nb, double* d, int64_t ldd, double* b, int64_t ldb, double* f, int64_t ldf, double* x, int64_t ldx );
-
-int main() {
-
- if (sizeof(MKL_INT) != sizeof(int64_t)) {
- std::cerr << "MKL_INT not 64bit" << std::endl;
- return -1;
- }
-
- int64_t info = 0;
-
- // Asynchronous error handler
- auto error_handler = [&] (sycl::exception_list exceptions) {
- for (auto const& e : exceptions) {
- try {
- std::rethrow_exception(e);
- } catch(mkl::lapack::exception const& e) {
- // Handle LAPACK related exceptions happened during asynchronous call
- info = e.info();
- std::cout << "Unexpected exception caught during asynchronous LAPACK operation:\ninfo: " << e.info() << std::endl;
- } catch(sycl::exception const& e) {
- // Handle not LAPACK related exceptions happened during asynchronous call
- std::cout << "Unexpected exception caught during asynchronous operation:\n" << e.what() << std::endl;
- info = -1;
- }
- }
- };
-
- sycl::device device{sycl::default_selector_v};
- sycl::queue queue(device, error_handler);
- sycl::context context = queue.get_context();
-
- if (device.get_info().empty()) {
- std::cerr << "The sample uses double precision, which is not supported" << std::endl;
- std::cerr << "by the selected device. Quitting." << std::endl;
- return 0;
- }
-
- allocator_t allocator_d(context, device);
-
- int64_t n = 200;
- int64_t nb = 20;
- int64_t nrhs = 10;
- int64_t ldf = nb*n;
-
-
- std::vector> d(nb * n*nb, allocator_d);
- std::vector> b(nb * (n-1)*nb, allocator_d);
- std::vector> f(ldf * nrhs, allocator_d);
- std::vector d2(nb * n*nb);
- std::vector b2(nb * (n-1)*nb);
- std::vector f2(ldf * nrhs);
-
- auto D = [=,&d](int64_t i, int64_t j) -> double& { return d[i + j*nb]; };
-
- std::vector iseed = {1, 2, 3, 19};
-
-
- std::cout << "Testing accuracy of solution of linear equations system" << std::endl;
- std::cout << "with randomly generated positive definite symmetric" << std::endl;
- std::cout << "block tridiagonal coefficient matrix by calculating" << std::endl;
- std::cout << "ratios of residuals to RHS vectors' norms." << std::endl;
- std::cout << "..." << std::endl;
-
- std::cout << "Matrices are being generated." << std::endl;
- std::cout << "..." << std::endl;
-
- // Initializing arrays randomly
- LAPACKE_dlarnv(2, iseed.data(), (n-1)*nb*nb, b.data());
- cblas_dcopy((n-1)*nb*nb, b.data(), 1, b2.data(), 1);
- LAPACKE_dlarnv(2, iseed.data(), nrhs*ldf, f.data());
- cblas_dcopy(nrhs*ldf, f.data(), 1, f2.data(), 1);
-
- for (int64_t k = 0; k < n; k++) {
- for (int64_t j = 0; j < nb; j++) {
- LAPACKE_dlarnv(2, iseed.data(), nb-j, &D(j, k*nb+j));
- cblas_dcopy(nb-j-1, &D(j+1, k*nb+j), 1, &D(j, k*nb+j+1), nb);
- }
- // Diagonal dominance to make the matrix positive definite
- for (int64_t j = 0; j < nb; j++) {
- D(j, k*nb+j) += nb*3.0;
- }
- }
- cblas_dcopy(nb*nb*n, d.data(), 1, d2.data(), 1);
-
- // Factor the coefficient matrix
- std::cout << "Call Cholesky factorization" << std::endl;
- std::cout << "..." << std::endl;
-
- try {
- info = dpbltrf(queue, n, nb, d.data(), nb, b.data(), nb);
- } catch(sycl::exception const& e) {
- // Handle not LAPACK related exceptions happened during synchronous call
- std::cout << "Unexpected exception caught during synchronous call to SYCL API:\n" << e.what() << std::endl;
- info = -1;
- }
- if(info) {
- std::cout << "Cholesky factorization failed. INFO = " << info << std::endl;
- return 1;
- } else {
- std::cout << "Cholesky factorization succeeded." << std::endl;
- }
-
- // Solve the system of equations with factored coefficient matrix
- std::cout << "Call solving the system of linear equations" << std::endl;
- std::cout << "..." << std::endl;
-
- info = dpbltrs(queue, n, nrhs, nb, d.data(), nb, b.data(), nb, f.data(), ldf);
- if(info) {
- std::cout << "Solution failed. INFO= " << info << std::endl;
- return 1;
- } else {
- std::cout << "Solution succeeded." << std::endl;
- }
-
- // Test the accuracy of the solution
- std::cout << "The system is solved. Testing the residual" << std::endl;
- std::cout << "..." << std::endl;
- double res = test_res1(n, nrhs, nb, d2.data(), nb, b2.data(), nb, f2.data(), ldf, f.data(), ldf);
- double eps = LAPACKE_dlamch('E');
- if(res/eps > 10.0) {
- std::cout << "Residual test" << std::endl;
- std::cout << "max_(i=1,...,NRHS){||A*X(i)-F(i)||/||F(i)||} <= 10*EPS " << std::endl;
- std::cout << "failed" << std::endl;
- return 1;
- } else {
- std::cout << "Residual test" << std::endl;
- std::cout << "max_(i=1,...,NRHS){||A*X(i)-F(i)||/||F(i)||} <= 10*EPS " << std::endl;
- std::cout << "passed" << std::endl;
- }
-
- return 0;
-}
diff --git a/Libraries/oneMKL/block_cholesky_decomposition/third-party-programs.txt b/Libraries/oneMKL/block_cholesky_decomposition/third-party-programs.txt
deleted file mode 100644
index 90daff458d..0000000000
--- a/Libraries/oneMKL/block_cholesky_decomposition/third-party-programs.txt
+++ /dev/null
@@ -1,253 +0,0 @@
-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. Nothings STB Libraries
-
-stb/LICENSE
-
- This software is available under 2 licenses -- choose whichever you prefer.
- ------------------------------------------------------------------------------
- ALTERNATIVE A - MIT License
- Copyright (c) 2017 Sean Barrett
- 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.
- ------------------------------------------------------------------------------
- ALTERNATIVE B - Public Domain (www.unlicense.org)
- This is free and unencumbered software released into the public domain.
- Anyone is free to copy, modify, publish, use, compile, sell, or distribute this
- software, either in source code form or as a compiled binary, for any purpose,
- commercial or non-commercial, and by any means.
- In jurisdictions that recognize copyright laws, the author or authors of this
- software dedicate any and all copyright interest in the software to the public
- domain. We make this dedication for the benefit of the public at large and to
- the detriment of our heirs and successors. We intend this dedication to be an
- overt act of relinquishment in perpetuity of all present and future rights to
- this software under copyright law.
- 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 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.
-
---------------------------------------------------------------------------------
-
-2. 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.
-
-
---------------------------------------------------------------------------------
-
-3. Nbody
- (c) 2019 Fabio Baruffa
-
- Plotly.js
- Copyright (c) 2020 Plotly, Inc
-
-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.
-© 2020 GitHub, Inc.
-
---------------------------------------------------------------------------------
-
-4. 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.
-
---------------------------------------------------------------------------------
-
-5. 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
-
---------------------------------------------------------------------------------
-
-6. 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.
-
---------------------------------------------------------------------------------
-7. 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.
-
---------------------------------------------------------------------------------
-Other names and brands may be claimed as the property of others.
-
---------------------------------------------------------------------------------
\ No newline at end of file
diff --git a/Libraries/oneMKL/block_lu_decomposition/GNUmakefile b/Libraries/oneMKL/block_lu_decomposition/GNUmakefile
deleted file mode 100644
index 04e845c34a..0000000000
--- a/Libraries/oneMKL/block_lu_decomposition/GNUmakefile
+++ /dev/null
@@ -1,18 +0,0 @@
-# Makefile for GNU make
-
-all: factor solve
- ./factor
- ./solve
-
-MKL_COPTS = -DMKL_ILP64 -qmkl -qmkl-sycl-impl="blas,lapack"
-
-factor: factor.cpp dgeblttrf.cpp auxi.cpp
- icpx $^ -o $@ -fsycl -fsycl-device-code-split=per_kernel $(MKL_COPTS)
-
-solve: solve.cpp dgeblttrf.cpp dgeblttrs.cpp auxi.cpp
- icpx $^ -o $@ -fsycl -fsycl-device-code-split=per_kernel $(MKL_COPTS)
-
-clean:
- -rm -f factor solve genxir
-
-.PHONY: clean all
diff --git a/Libraries/oneMKL/block_lu_decomposition/License.txt b/Libraries/oneMKL/block_lu_decomposition/License.txt
deleted file mode 100644
index e63c6e13dc..0000000000
--- a/Libraries/oneMKL/block_lu_decomposition/License.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-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/Libraries/oneMKL/block_lu_decomposition/README.md b/Libraries/oneMKL/block_lu_decomposition/README.md
deleted file mode 100644
index e94bd3c431..0000000000
--- a/Libraries/oneMKL/block_lu_decomposition/README.md
+++ /dev/null
@@ -1,78 +0,0 @@
-# `Block LU Decomposition` Sample
-Block LU Decomposition shows how to use the Intel® oneAPI Math Kernel Library (oneMKL) BLAS and LAPACK functionality to solve a block tridiagonal linear equation.
-
-| Optimized for | Description
-|:--- |:---
-| OS | Linux* Ubuntu* 18.04
Windows* 10, 11
-| Hardware | Skylake with Gen9 or newer
-| Software | Intel® oneAPI Math Kernel Library (oneMKL)
-| What you will learn | How to use oneMKL BLAS and LAPACK routines with pointer-based (USM) programming
-| Time to complete | 15 minutes
-
-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
-Block LU Decomposition consists of two small applications (`factor.cpp` and `solve.cpp`).
-The factor.cpp generates a tridiagonal block matrix, then performs a block LU factorization using oneMKL BLAS and LAPACK routines. The solve.cpp application uses this factorization to solve a linear system with the block tridiagonal matrix on the left-hand side.
-Both factoring and solving require several oneMKL routines. Some steps can be parallelized, while others must be ordered sequentially. The sample code shows how to inform oneMKL of the existing dependencies between routines using SYCL*-compliant events. This code sample uses pointer-based programming with Unified Shared Memory (USM), allowing individual oneMKL routines to work on submatrices of the original matrices.
-
-This sample will use the default SYCL device. You can set the `SYCL_DEVICE_TYPE` environment variable to `cpu` or `gpu` to select the device to use.
-
-This article explains in detail how oneMKL LAPACK routines can be used to solve a system of linear equations with an LU-factored block tridiagonal coefficient matrix: https://www.intel.com/content/www/us/en/docs/onemkl/cookbook/current/slv-sys-lin-eq-lu-factor-blk-tridiag-coeff-mat.html.
-
-## Key Implementation Details
-This sample illustrates several important oneMKL routines: matrix multiplication, triangular solves from BLAS (`gemm`, `trsm`), and LU factorization (`getrf`) from LAPACK, as well as several other utility routines.
-
-## Using Visual Studio Code* (Optional)
-You can use Visual Studio Code (VS Code) extensions to set your environment, create launch configurations,
-and browse and download samples.
-
-The basic steps to build and run a sample using VS Code include:
- - Download a sample using the extension **Code Sample Browser for Intel Software Developer Tools**.
- - Configure the oneAPI environment with the extension **Environment Configurator for Intel Software Developer Tools**.
- - Open a Terminal in VS Code (**Terminal>New Terminal**).
- - Run the sample in the VS Code terminal using the instructions below.
- - (Linux only) Debug your GPU application with GDB for Intel® oneAPI toolkits using the **Generate Launch Configurations** extension.
-
-To learn more about the extensions, see the
-[Using Visual Studio Code with Intel® oneAPI Toolkits User Guide](https://www.intel.com/content/www/us/en/develop/documentation/using-vs-code-with-intel-oneapi/top.html).
-
-
-## Building the Block LU Decomposition Sample
-
-### On a Linux* System
-Run `make` to build and run the factor and solve programs. You can remove all generated files with `make clean`.
-
-### On a Windows* System
-Run `nmake` to build and run the sample. `nmake clean` removes temporary files.
-
-*Warning*: On Windows, static linking with oneMKL currently takes a very long time due to a known compiler issue. This will be addressed in an upcoming release.
-
-## Running the Block LU Decomposition Sample
-### Example of Output
-After building, if everything is working correctly, you will see the output from both the `factor` and `solve` programs. Each includes an accuracy check at the end. The example output below shows a successful run with a very small floating-point error.
-```
-./factor
-Testing the accuracy of LU factorization with pivoting
-of randomly generated block tridiagonal matrix
-by calculating norm of the residual matrix.
-||A - LU||_F/||A||_F = 3.65246e-16
-
-./solve
-Testing accuracy of solution of linear equations system
-with randomly generated block tridiagonal coefficient
-matrix by calculating ratios of residuals
-to RHS vectors norms.
-max_(i=1,...,nrhs){||ax(i)-f(i)||/||f(i)||} = 6.88457e-13
-```
-
-### Troubleshooting
-If an error occurs, troubleshoot the problem using the Diagnostics Utility for Intel® oneAPI Toolkits.
-[Learn more](https://www.intel.com/content/www/us/en/docs/oneapi/user-guide-diagnostic-utility/current/overview.html).
-
-## License
-
-Code samples are licensed under the MIT license. See
-[License.txt](License.txt) for details.
-
-Third party program Licenses can be found here: [third-party-programs.txt](third-party-programs.txt).
diff --git a/Libraries/oneMKL/block_lu_decomposition/auxi.cpp b/Libraries/oneMKL/block_lu_decomposition/auxi.cpp
deleted file mode 100644
index f4c9846872..0000000000
--- a/Libraries/oneMKL/block_lu_decomposition/auxi.cpp
+++ /dev/null
@@ -1,304 +0,0 @@
-//==============================================================
-// Copyright © 2020 Intel Corporation
-//
-// SPDX-License-Identifier: MIT
-// =============================================================
-
-/*
-* Content:
-* Auxiliary subroutines for:
-* - Computing ratio ||A-L*U||_F/||A||_F of Frobenius norm of the
-* residual to the Frobenius norm of the initial matrix.
-* - Calculating max_(i=1,...,NRHS){||AX(i)-F(i)||/||F(i)||} of
-* ratios of residuals to norms of RHS vectors for a system of
-* linear equations with tridiagonal coefficient matrix and
-* multiple RHS
-*
-*/
-
-#include
-#include
-#include
-#include
-#include
-#include "mkl.h"
-
-/***********************************************************************
-* Definition:
-* ===========
-* double resid1( int64_t n, int64_t nb, double* dl, double* d, double* du1, double* du2, int64_t* ipiv, double* dlcpy, double* dcpy, double* du1cpy) {
-*
-* Purpose:
-* ========
-* Given LU factorization of block tridiagonal matrix A function RESID1
-* returns ratio ||A-L*U||_F/||A||_F of Frobenius norm of the residual
-* to the Frobenius norm of the initial matrix. The ratio provides info
-* on how good the factorization is.
-*
-* Arguments:
-* ==========
-* N (input) int64_t
-* The number of block rows of the matrix A. N > 0.
-*
-* NB (input) int64_t
-* The size of blocks. NB > 0.
-*
-* DL (input) double array, dimension (NB) * ((N-1)*NB)
-* The array stores N-1 subdiagonal blocks (each of size NB by NB) of
-* lower triangular factor L. The blocks are stored sequentially
-* block by block.
-*
-* D (input) double array, dimension (NB) * (N*NB)
-* The array stores N diagonal blocks (each of size NB by NB)
-* of triangular factors L and U.
-*
-* DU1 (input) double array, dimension (NB) * ((N-1)*NB)
-* The array stores N-1 superdiagonal blocks (each of size
-* NB by NB) of triangular factor U.
-*
-* DU2 (input) double array, dimension (NB) * ((N-2)*NB)
-* The array stores N-2 blocks of the second superdiagonal of
-* triangular factor U.
-*
-* IPIV (input) int64_t array, dimension (NB) * (N)
-* The array stores pivot 'local' row indices.
-*
-* DLCPY (input) double array, dimension (NB) * ((N-1)*NB)
-* The array stores N-1 subdiagonal blocks of initial block
-* tridiagonal matrix.
-*
-* DCPY (input) double array, dimension (NB) * (N*NB)
-* The array stores N diagonal blocks of initial block
-* tridiagonal matrix.
-*
-* DU1CPY (input) double array, dimension (NB) * ((N-1)*NB)
-* The array stores N-1 superdiagonal blocks of initial block
-* tridiagonal matrix.
-***********************************************************************/
-double resid1( int64_t n, int64_t nb, double* dl, double* d, double* du1, double* du2, int64_t* ipiv, double* dlcpy, double* dcpy, double* du1cpy) {
-
- // Matrix accessors
- auto D = [=,&d] (int64_t i, int64_t j) -> double& { return d[i + j*nb]; };
- auto DCPY = [=,&dcpy] (int64_t i, int64_t j) -> double& { return dcpy[i + j*nb]; };
- auto DL = [=,&dl] (int64_t i, int64_t j) -> double& { return dl[i + j*nb]; };
- auto DLCPY = [=,&dlcpy] (int64_t i, int64_t j) -> double& { return dlcpy[i + j*nb]; };
- auto DU1 = [=,&du1] (int64_t i, int64_t j) -> double& { return du1[i + j*nb]; };
- auto DU1CPY = [=,&du1cpy] (int64_t i, int64_t j) -> double& { return du1cpy[i + j*nb]; };
- auto DU2 = [=,&du2] (int64_t i, int64_t j) -> double& { return du2[i + j*nb]; };
- auto IPIV = [=,&ipiv] (int64_t i, int64_t j) -> int64_t& { return ipiv[i + j*nb]; };
-
- double s = 0.0;
- double norm = 0.0;
-
- s = LAPACKE_dlange(MKL_COL_MAJOR, 'F', nb, nb*n, dcpy, nb);
- norm = s*s;
- s = LAPACKE_dlange(MKL_COL_MAJOR, 'F', nb, nb*(n-1), dlcpy, nb);
- norm = norm + s*s;
- s = LAPACKE_dlange(MKL_COL_MAJOR, 'F', nb, nb*(n-1), du1cpy, nb);
- norm = sqrt(norm + s*s);
-
- const int64_t ldb = 2*nb;
- std::vector b(ldb*3*nb);
- std::vector b1(ldb*3*nb);
-
- auto B = [=,&b] (int64_t i, int64_t j) -> double& { return b[i + j*ldb]; };
- auto B1 = [=,&b1](int64_t i, int64_t j) -> double& { return b1[i + j*ldb]; };
-
- for(int64_t j = 0; j < 3*nb; j++ ) {
- for(int64_t i = 0; i < 2*nb; i++ ) {
- B(i,j) = 0.0;
- B1(i,j) = 0.0;
- }
- }
-
- const int64_t ldl = 2*nb;
- std::vector l(ldl*nb);
- auto L = [=,&l] (int64_t i, int64_t j) -> double& { return l[i + j*ldl]; };
-
- for(int64_t j = 0; j < nb; j++) {
- for(int64_t i = 0; i < 2*nb; i++) {
- L(i,j) = 0.0;
- }
- L(j,j) = 1.0;
- }
-
- const int64_t ldu = nb;
- std::vector u(ldu*3*nb);
- auto U = [=,&u] (int64_t i, int64_t j) -> double& { return u[i + j*ldu]; };
-
- for(int64_t j = 0; j < 3*nb; j++) {
- for(int64_t i = 0; i < nb; i++) {
- U(i,j) = 0.0;
- }
- }
- for(int64_t j = 0; j < nb; j++) {
- cblas_dcopy( j+1, &D( 0, (n-1)*nb + j), 1, &U( 0, j), 1);
- cblas_dcopy(nb-j-1, &D(j+1, (n-1)*nb + j), 1, &L(j+1, j), 1);
- }
- cblas_dgemm(CblasColMajor, CblasNoTrans, CblasNoTrans, nb, nb, nb, 1.0, l.data(), 2*nb,
- u.data(), nb, 1.0, &B1(nb, nb), 2*nb);
- for(int64_t j = 0; j < nb; j++) {
- cblas_dcopy(j+1, &D( 0, (n-2)*nb + j), 1, &U( 0, j), 1);
- cblas_dcopy(nb, &DU1(0, (n-2)*nb + j), 1, &U( 0, nb+j), 1);
- cblas_dcopy(nb-j-1,&D(j+1, (n-2)*nb + j), 1, &L(j+1, j), 1);
- cblas_dcopy(nb, &DL( 0, (n-2)*nb + j), 1, &L( nb, j), 1);
- }
- cblas_dgemm(CblasColMajor, CblasNoTrans, CblasNoTrans, 2*nb, 2*nb, nb, 1.0, l.data(), 2*nb,
- u.data(), nb, 1.0, b1.data(), 2*nb);
-
- for (int64_t i = nb -1; i >= 0; i--) {
- if(IPIV(i,n-1) != nb+i+1) {
- cblas_dswap(2*nb, &B1(nb+i, 0), 2*nb, &B1(IPIV(i,n-1)-1,0), 2*nb);
- }
- }
- for (int64_t i = nb-1; i >= 0; i--) {
- if (IPIV(i,n-2) != i+1) {
- cblas_dswap(2*nb, &B1(i, 0), 2*nb, &B1(IPIV(i,n-2)-1, 0), 2*nb);
- }
- }
- for(int64_t j = 0; j < nb; j++) {
- for(int64_t i = 0; i < nb; i++) {
- B1(nb+i, j) = B1(nb+i, j) - DLCPY(i, (n-2)*nb+j);
- B1(nb+i, nb+j) = B1(nb+i, nb+j) - DCPY(i, (n-1)*nb+j);
- }
- }
- s = LAPACKE_dlange(MKL_COL_MAJOR, 'F', nb, nb, &B1(nb, 0), 2*nb);
- double eps = s*s;
- s = LAPACKE_dlange(MKL_COL_MAJOR, 'F', nb, nb, &B1(nb, nb), 2*nb);
- eps = eps + s*s;
-
- for (int64_t k = n-3; k >= 0; k--) {
- for(int64_t j = 0; j < nb; j++) {
- cblas_dcopy( j+1, &D( 0,k*nb + j), 1, &U(0, j), 1);
- cblas_dcopy( nb, &DU1(0,k*nb + j), 1, &U(0, nb+j), 1);
- cblas_dcopy( nb, &DU2(0,k*nb + j), 1, &U(0,2*nb+j), 1);
- cblas_dcopy(nb-j-1, &D(j+1,k*nb + j), 1, &L(j+1, j), 1);
- cblas_dcopy( nb, &DL( 0,k*nb + j), 1, &L(nb, j), 1);
- }
-
- cblas_dgemm(CblasColMajor, CblasNoTrans, CblasNoTrans, 2*nb, 3*nb, nb, 1.0, l.data(), 2*nb, u.data(), nb, 0.0, b.data(), 2*nb);
-
- for (int64_t j = 0; j < 2*nb; j++) {
- for(int64_t i = 0; i < nb; i++) {
- B(nb+i, nb+j) = B(nb+i, nb+j) + B1(i, j);
- }
- }
- for (int64_t i = nb-1; i >= 0; i--) {
- if (IPIV(i,k) != i+1) {
- cblas_dswap(3*nb, &B(i, 0), 2*nb, &B(IPIV(i,k)-1, 0), 2*nb);
- }
- }
- for(int64_t j = 0; j < nb; j++) {
- for (int64_t i = 0; i < nb; i++) {
- B1(nb+i, j) = B(nb+i, j) - DLCPY(i,(k)*nb+j);
- B1(nb+i, nb+j) = B(nb+i, nb+j) - DCPY(i,(k+1)*nb+j);
- B1(nb+i,2*nb+j) = B(nb+i,2*nb+j) -DU1CPY(i,(k+1)*nb+j);
- }
- }
- s = LAPACKE_dlange(MKL_COL_MAJOR, 'F', nb, nb, &B(0,2*nb), 2*nb);
- eps = eps + s*s;
- s = LAPACKE_dlange(MKL_COL_MAJOR, 'F', nb, nb, &B1(nb, 0), 2*nb);
- eps = eps + s*s;
- s = LAPACKE_dlange(MKL_COL_MAJOR, 'F', nb, nb, &B1(nb, nb), 2*nb);
- eps = eps + s*s;
- s = LAPACKE_dlange(MKL_COL_MAJOR, 'F', nb, nb, &B1(nb, 2*nb), 2*nb);
- eps = eps + s*s;
- for ( int64_t j = 0; j < 2*nb; j++) {
- cblas_dcopy(nb, &B(0, j), 1, &B1(0, j), 1);
- }
- }
- double resid = sqrt(eps)/norm;
-
- return resid;
-}
-
-/************************************************************************
-* Definition:
-* ===========
-* double resid2(int64_t n, int64_t nb, int64_t nrhs, double* dl, double* d, double* du1, double* x, int64_t ldx, double* b, int64_t ldb)
-
-* Purpose:
-* ========
-* Given solution X to a system of linear equations AX=B with tridiagonal
-* coefficient matrix A and multiple right hand sides B function RESID2
-* returns max_(i=1,...,NRHS){||AX(i)-B(i)||/||B(i)||}. This quantity
-* provides info on how good the solution is.
-*
-* Arguments:
-* ==========
-* N (input) int64_t
-* The number of block rows of the matrix A. N > 0.
-*
-* NB (input) int64_t
-* The size of blocks. NB > 0.
-*
-* NRHS (input) int64_t
-* The number of right hand sides. NRHS >0.
-*
-* DL (input) double array, dimension (NB) * ((N-1)*NB)
-* The array stores N-1 subdiagonal blocks (each of size NB by NB) of
-* the coefficient matrix. The blocks are stored sequentially
-* block by block.
-*
-* D (input) double array, dimension (NB) * (N*NB)
-* The array stores N diagonal blocks (each of size NB by NB)
-* of the coefficient matrix. The blocks are stored sequentially
-* block by block.
-*
-* DU1 (input) double array, dimension (NB) * ((N-1)*NB)
-* The array stores N-1 superdiagonal blocks (each of size NB by NB)
-* of the coefficient matrix. The blocks are stored sequentially
-* block by block.
-*
-* X (input) double array, dimension (LDX) * (NRHS).
-* The array stores components of the solution to be tested.
-*
-* LDX (input) int64_t
-* The leading dimension of the array X. LDX >= N*NB.
-*
-* B (input) double array, dimension (LDB) * (NRHS).
-* The array stores components of the right hand sides.
-*
-* LDB (input) int64_t
-* The leading dimension of the array B. LDB >= N*NB.
-***********************************************************************/
-double resid2(int64_t n, int64_t nb, int64_t nrhs, double* dl, double* d, double* du1, double* x, int64_t ldx, double* b, int64_t ldb) {
-
- auto DL = [=,&dl] (int64_t i, int64_t j) -> double& { return dl[i + j*nb]; };
- auto D = [=,&d] (int64_t i, int64_t j) -> double& { return d[i + j*nb]; };
- auto DU1 = [=,&du1] (int64_t i, int64_t j) -> double& { return du1[i + j*nb]; };
- auto X = [=,&x] (int64_t i, int64_t j) -> double& { return x[i + j*ldx]; };
- auto B = [=,&b] (int64_t i, int64_t j) -> double& { return b[i + j*ldb]; };
-
- // Initializing return value
- std::vector norms(nrhs);
-
- // Compute norms of RHS vectors
- for (int64_t i = 0; i < nrhs; i++) {
- norms[i] = cblas_dnrm2(nb*n, &B(0,i), 1);
- }
-
- // Computing B(1)-D(1)*X(1)-DU1(1)*X(2) out of loop
- cblas_dgemm(CblasColMajor, CblasNoTrans, CblasNoTrans, nb, nrhs, nb, -1.0, d, nb, x, ldx, 1.0, b, ldb);
- cblas_dgemm(CblasColMajor, CblasNoTrans, CblasNoTrans, nb, nrhs, nb, -1.0, du1, nb, &X(nb, 0), ldx, 1.0, b, ldb);
-
- // In the loop computing B(K)-DL(K-1)*X(K-1)-D(K)*X(K)-DU1(K)*X(K+1)
- for (int64_t k = 1; k < n-1; k++) {
- cblas_dgemm(CblasColMajor, CblasNoTrans, CblasNoTrans, nb, nrhs, nb, -1.0, &DL(0, (k-1)*nb), nb, &X((k-1)*nb, 0), ldx, 1.0, &B(k*nb, 0), ldb);
- cblas_dgemm(CblasColMajor, CblasNoTrans, CblasNoTrans, nb, nrhs, nb, -1.0, &D(0, k*nb), nb, &X( k*nb, 0), ldx, 1.0, &B(k*nb, 0), ldb);
- cblas_dgemm(CblasColMajor, CblasNoTrans, CblasNoTrans, nb, nrhs, nb, -1.0, &DU1(0, k*nb), nb, &X((k+1)*nb, 0), ldx, 1.0, &B(k*nb, 0), ldb);
- }
-
- // Computing B(N)-DL(N-1)*X(N-1)-D(N)*X(N) out of loop
- cblas_dgemm(CblasColMajor, CblasNoTrans, CblasNoTrans, nb, nrhs, nb, -1.0, &D(0, (n-1)*nb), nb, &X((n-1)*nb, 0), ldx, 1.0, &B((n-1)*nb, 0), ldb);
- cblas_dgemm(CblasColMajor, CblasNoTrans, CblasNoTrans, nb, nrhs, nb, -1.0, &DL(0, (n-2)*nb), nb, &X((n-2)*nb, 0), ldx, 1.0, &B((n-1)*nb, 0), ldb);
-
- // Compute norms of residual vectors divided by norms of RHS vectors
- double res = 0.0;
- for (int64_t i = 0; i < nrhs; i++) {
- double s = cblas_dnrm2(n*nb, &B(0,i), 1);
- res = std::max(res, s/norms[i]);
- }
-
- return res;
-}
diff --git a/Libraries/oneMKL/block_lu_decomposition/dgeblttrf.cpp b/Libraries/oneMKL/block_lu_decomposition/dgeblttrf.cpp
deleted file mode 100644
index df192e24a9..0000000000
--- a/Libraries/oneMKL/block_lu_decomposition/dgeblttrf.cpp
+++ /dev/null
@@ -1,382 +0,0 @@
-//==============================================================
-// Copyright © 2020 Intel Corporation
-//
-// SPDX-License-Identifier: MIT
-// =============================================================
-
-/*
-*
-* Content:
-* Function DGEBLTTRF for LU factorization of general block
-* tridiagonal matrix;
-* Function PTLDGETRF for partial LU factorization of general
-* rectangular matrix.
-************************************************************************/
-#include
-#include
-#include "oneapi/mkl.hpp"
-
-using namespace oneapi;
-
-int64_t ptldgetrf(sycl::queue queue, int64_t m, int64_t n, int64_t k, double* a, int64_t lda, int64_t* ipiv);
-
-/************************************************************************
-* Definition:
-* ===========
-* int64_t dgeblttrf(sycl::queue queue, int64_t n, int64_t nb, double* d, double* dl, double* du1, double* du2, int64_t* ipiv) {
-*
-* Purpose:
-* ========
-* DGEBLTTRF computes LU factorization of general block tridiagonal
-* matrix
-* (D_1 C_1 )
-* (B_1 D_2 C_2 )
-* ( B_2 D_3 C_3 )
-* ( ......... )
-* ( B_N-2 D_N-1 C_N-1 )
-* ( B_N-1 D_N )
-* using elimination with partial pivoting and row interchanges.
-* The factorization has the form A = L*U, where L is a product of
-* permutation and unit lower bidiagonal block matrices and U is upper
-* triangular with nonzeroes in only the main block diagonal and first
-* two block superdiagonals.
-* This is a block version of LAPACK DGTTRF subroutine.
-*
-* Arguments:
-* ==========
-* QUEUE (input) sycl queue
-* The device queue
-*
-* N (input) int64_t
-* The number of block rows of the matrix A. N > 0.
-*
-* NB (input) int64_t
-* The size of blocks. NB > 0.
-*
-* D (input/output) double array, dimension (NB)*(N*NB)
-* On entry, the array stores N diagonal blocks (each of size NB by NB)
-* of the matrix to be factored. The blocks are stored
-* sequentially: first NB columns of D store block D_1, second NB
-* columns store block D_2,...,last NB columns store block D_N.
-* On exit, the array stores diagonal blocks of triangular factor L
-* and U. Diagonal blocks of lower triangular factor L replace
-* respective lower triangles of blocks D_j (1 <= j <= N).
-* Diagonal units are not stored. Diagonal blocks of upper
-* triangular factor U replace respective upper triangles of
-* blocks D_j.
-*
-* DL (input/output) double array, dimension (NB)*((N-1)*NB)
-* On entry, the array stores N-1 subdiagonal blocks (each of size
-* NB by NB) of the matrix to be factored. The blocks are stored
-* sequentially: first NB columns of DL store block B_1, second
-* NB columns store block B_2,...,last NB columns store block
-* B_N-1.
-* On exit, the array stores subdiagonal blocks of lower triangular
-* factor L.
-*
-* DU1 (input/output) double array, dimension (NB)*((N-1)*NB)
-* On entry, the array stores N-1 superdiagonal blocks (each of size
-* NB by NB) of the matrix to be factored. The blocks are stored
-* sequentially: first NB columns of DU1 store block C_1, second
-* NB columns store block C_2,...,last NB columns store block
-* C_N-1.
-* On exit, the array stores superdiagonal blocks of triangular
-* factor U.
-*
-* DU2 (output) double array, dimension (NB)*((N-2)*NB)
-* On exit, the array stores blocks of the second superdiagonal of
-* triangular factor U.
-*
-* IPIV (output) int64_t array, dimension (NB)*(N)
-* The pivot 'local' row indices ('local' means indices vary in the
-* range 1..2*NB. Global row index is IPIV(I,K) + (K-1)*NB ).
-*
-* INFO (return) int64_t
-* = 0: successful exit
-* = -1000 memory buffer could not be allocated
-* < 0: if INFO = -i, the i-th argument had an illegal value
-* > 0: if INFO = i, U(i,i) is exactly zero. The factorization
-* can be not completed.
-***********************************************************************/
-int64_t dgeblttrf(sycl::queue queue, int64_t n, int64_t nb, double* d, double* dl, double* du1, double* du2, int64_t* ipiv) {
-
- // Matrix accessors
- auto D = [=,&d] (int64_t i, int64_t j) -> double& { return d[i + j*nb]; };
- auto DL = [=,&dl] (int64_t i, int64_t j) -> double& { return dl[i + j*nb]; };
- auto DU1 = [=,&du1] (int64_t i, int64_t j) -> double& { return du1[i + j*nb]; };
- auto DU2 = [=,&du2] (int64_t i, int64_t j) -> double& { return du2[i + j*nb]; };
- auto IPIV = [=,&ipiv] (int64_t i, int64_t j) -> int64_t& { return ipiv[i + j*nb]; };
-
- // Test the input arguments.
- int64_t info=0;
- if(n <= 0)
- info = -1;
- else if(nb <= 0)
- info = -2;
- if(info)
- return info;
-
- sycl::context context = queue.get_context();
- sycl::device device = queue.get_device();
-
- // Allocating a contiguous USM array for partial factorizations
- const int64_t lda = 2*nb;
- double* a = sycl::malloc_shared(lda * 3*nb, device, context);
- auto A = [=,&a](int64_t i, int64_t j) -> double& { return a[i + j*lda]; };
- if (!a) {
- info = -1000;
- goto cleanup;
- }
-
-
- for (int64_t k = 0; k < n-2; k++){
- // Form a 2*NB x 3*NB submatrix
- // D_K C_K 0
- // B_K D_K+1 C_K+1
- for (int64_t j = 0; j < nb; j++) {
- auto event1 = mkl::blas::copy(queue, nb, &D(0,(k)*nb + j), 1, &A(0, j),1);
- auto event2 = mkl::blas::copy(queue, nb, &DL(0,(k)*nb + j), 1, &A(nb, j),1);
- auto event3 = mkl::blas::copy(queue, nb, &DU1(0,(k)*nb + j), 1, &A(0, nb+j),1);
- auto event4 = mkl::blas::copy(queue, nb, &D(0,(k+1)*nb + j), 1, &A(nb, nb+j),1);
- auto event5 = mkl::blas::copy(queue, nb, &DU1(0,(k+1)*nb + j), 1, &A(nb,2*nb+j),1);
- event1.wait_and_throw();
- event2.wait_and_throw();
- event3.wait_and_throw();
- event4.wait_and_throw();
- event5.wait_and_throw();
-
- queue.submit([&](sycl::handler& cgh) {
- cgh.parallel_for(sycl::range<1>(nb), [=] (sycl::id<1> it) {
- const int64_t i = it[0];
- a[i + (2*nb + j)*lda] = 0.0;
- });
- });
- queue.wait();
-
- }
-
-
-
- // Partial factorization of the submatrix
- // (D_K C_K 0 ) (L_K,K ) (U_K,K U_K,K+1, U_K,K+2)
- // ( ) = P * ( ) *
- // (B_K D_K+1 C_K+1) (L_K+1,K+1)
- //
- // ( 0 0 0 )
- // + ( )
- // ( 0 D'_K+1 C'_K+1)
- info = ptldgetrf(queue, 2*nb, 3*nb, nb, &A(0,0), lda, &IPIV(0,k));
- if (info > 0) {
- // INFO is equal to the 'global' index of the element u_ii of the factor
- // U which is equal to zero
- return info + k*nb;
- }
-
- // Factorization results to be copied back to arrays:
- // L_K,K, U_K,K, D'_K+1 -> D
- // L_K+1,K -> DL
- // U_K,K+1 -> DU1
- // U_K,K+2 -> DU2
- for(int64_t j = 0; j < nb; j++) {
- auto event1 = mkl::blas::copy(queue, nb, &A( 0, j), 1, &D(0,k*nb + j), 1);
- auto event2 = mkl::blas::copy(queue, nb, &A(nb, j), 1, &DL(0,k*nb + j), 1);
- auto event3 = mkl::blas::copy(queue, nb, &A( 0, nb+j), 1, &DU1(0,k*nb + j), 1);
- auto event4 = mkl::blas::copy(queue, nb, &A(nb, nb+j), 1, &D(0,(k+1)*nb + j), 1);
- auto event5 = mkl::blas::copy(queue, nb, &A( 0,2*nb+j), 1, &DU2(0,k*nb + j), 1);
- auto event6 = mkl::blas::copy(queue, nb, &A(nb,2*nb+j), 1, &DU1(0,(k+1)*nb + j), 1);
- event1.wait_and_throw();
- event2.wait_and_throw();
- event3.wait_and_throw();
- event4.wait_and_throw();
- event5.wait_and_throw();
- event6.wait_and_throw();
- }
- }
-
- // Out of loop factorization of the last 2*NBx2*NB submatrix
- // (D_N-1 C_N-1) (L_N-1,N-1 0) (U_N-1,N-1 U_N-1,N )
- // ( ) = P_N-1* ( ) * ( )
- // (B_N-1 D_N) ( L_N,N-1 L_N,N) ( 0 U_N,N )
- for(int64_t j = 0; j < nb; j++) {
- auto event1 = mkl::blas::copy(queue, nb, &D(0, (n-2)*nb + j), 1, &A(0, j), 1);
- auto event2 = mkl::blas::copy(queue, nb, &DL(0, (n-2)*nb + j), 1, &A(nb+0, j), 1);
- auto event3 = mkl::blas::copy(queue, nb, &DU1(0, (n-2)*nb + j), 1, &A( 0, nb+j), 1);
- auto event4 = mkl::blas::copy(queue, nb, &D(0, (n-1)*nb + j), 1, &A(nb+0, nb+j), 1);
- event1.wait_and_throw();
- event2.wait_and_throw();
- event3.wait_and_throw();
- event4.wait_and_throw();
- }
-
- // Pivoting array for the last factorization has 2*NB elements stored in
- // two last columns of IPIV
- try {
- std::int64_t scratchpad_size = mkl::lapack::getrf_scratchpad_size(queue, 2*nb, 2*nb, lda);
- double* scratchpad = sycl::malloc_shared(scratchpad_size, device, context);
- if (!scratchpad) {
- info = -1000;
- goto cleanup;
- }
- auto event1 = mkl::lapack::getrf(queue, 2*nb, 2*nb, &A(0,0), lda, &IPIV(0,n-2), scratchpad, scratchpad_size );
- event1.wait_and_throw();
- sycl::free(scratchpad, context);
- } catch(mkl::lapack::exception const& e) {
- // Handle LAPACK related exceptions happened during synchronous call
- std::cout << "Unexpected exception caught during synchronous call to LAPACK API:\ninfo: " << e.info() << std::endl;
- if (e.info() > 0) {
- // INFO is equal to the 'global' index of the element u_ii of the factor
- // U which is equal to zero
- info = e.info() + (n-2)*nb;
- }
- return info;
- }
-
- // Copy the last result back to arrays:
- // L_N-1,N-1, L_N,N, U_N-1,N-1, U_N,N -> D
- // L_N,N-1 -> DL
- // U_N-1,N -> DU1
- for (int64_t j = 0; j < nb; j++) {
- auto event1 = mkl::blas::copy(queue, nb, &A(0, j), 1, &D(0, (n-2)*nb + j), 1);
- auto event2 = mkl::blas::copy(queue, nb, &A(nb+0, j), 1, &DL(0, (n-2)*nb + j), 1);
- auto event3 = mkl::blas::copy(queue, nb, &A(0, nb + j), 1, &DU1(0, (n-2)*nb + j), 1);
- auto event4 = mkl::blas::copy(queue, nb, &A(nb+0, nb + j), 1, &D(0, (n-1)*nb + j), 1);
- event1.wait_and_throw();
- event2.wait_and_throw();
- event3.wait_and_throw();
- event4.wait_and_throw();
- }
-
- sycl::free(a, context);
- return info;
-
-cleanup:
- sycl::free(a, context);
- return info;
-
-}
-
-
-
-/**********************************************************************
-* Purpose:
-* ========
-* PTLDGETRF computes partial (in a case K= 0.
-*
-* N (input) int64_t
-* The number of columns of the matrix A. N >= 0.
-*
-* K (input) int64_t
-* The number of columns of the matrix A participating in
-* factorization. N >= K >= 0
-*
-* A (input/output) double array, dimension (LDA)*(N)
-* On entry, the M-by-N matrix A to be factored.
-* On exit:
-* if K >= min(M,N), A is overwritten by details of its LU
-* factorization as returned by DGETRF.
-* if K < min(M,N), partial factorization A = P * (L * U + A1)
-* is performed where P is permutation matrix (pivoting);
-* L is M by K lower trapezoidal (with unit diagonal) matrix
-* stored in lower MxK trapezoid of A. Diagonal units
-* are not stored.
-* U is K by N upper trapezoidal matrix stored in upper
-* K by N trapezoid of A;
-* A1 is (M-K) by (N-K) residual stored in intersection
-* of last M-K rows and last N-K columns of A.
-*
-* LDA (input) int64_t
-* The leading dimension of the array A. LDA >= max(1,M).
-*
-* IPIV (output) int64_t array, dimension (min(M,K))
-* The pivot indices; for 1 <= i <= min(M,K), row i of the
-* matrix was interchanged with row IPIV(i).
-*
-* INFO (return) int64_t
-* = 0: successful exit
-* < 0: if INFO = -i, the i-th argument had an illegal value
-* > 0: if INFO = i, U(i,i) is exactly zero. The factorization
-* can be not completed.
-***********************************************************************/
-#undef A
-#undef D
-#undef DL
-#undef DU1
-#undef DU2
-#undef IPIV
-int64_t ptldgetrf(sycl::queue queue, int64_t m, int64_t n, int64_t k, double* a, int64_t lda, int64_t* ipiv) {
-
- auto A = [=,&a](int64_t i, int64_t j) -> double& { return a[i + j*lda]; };
-
- sycl::context context = queue.get_context();
- sycl::device device = queue.get_device();
-
- int64_t info=0;
- if(m < 0)
- info = -1;
- else if(n < 0)
- info = -2;
- else if( (k > n) || (k <0))
- info = -3;
- else if(lda < m)
- info = -5;
-
- if(info)
- return info;
-
- if(k < std::min(m,n)) {
-
- // LU factorization of first K columns
- {
- try {
- std::int64_t scratchpad_size = mkl::lapack::getrf_scratchpad_size(queue, m, k, lda);
- double* scratchpad = sycl::malloc_shared(scratchpad_size, device, context);
- if (!scratchpad) {
- info = -1000;
- return info;
- }
- auto event1 = mkl::lapack::getrf(queue, m, k, &A(0,0), lda, &ipiv[0], scratchpad, scratchpad_size );
- event1.wait_and_throw();
- sycl::free(scratchpad, context);
- } catch(mkl::lapack::exception const& e) {
- // Handle LAPACK related exceptions happened during synchronous call
- std::cout << "Unexpected exception caught during synchronous call to LAPACK API:\ninfo: " << e.info() << std::endl;
- if (e.info() > 0) {
- info = e.info();
- }
- return info;
- }
- }
- for (int64_t i = 0; i < k; i++) {
- if(ipiv[i] != i+1) {
- // Applying permutations returned by DGETRF to last N-K columns
- auto event1 = mkl::blas::swap(queue, n-k, &A(i,k), lda, &A(ipiv[i]-1, k), lda);
- event1.wait_and_throw();
- }
- }
- // Updating A1
- {
- auto event1 = mkl::blas::trsm(queue, mkl::side::left, mkl::uplo::lower, mkl::transpose::nontrans, mkl::diag::unit, k, n-k, 1.0, &A(0,0), lda, &A(0,k), lda);
- auto event2 = mkl::blas::gemm(queue, mkl::transpose::nontrans, mkl::transpose::nontrans, m-k, n-k, k, -1.0, &A(k,0), lda, &A(0,k), lda, 1.0, &A(k,k), lda, {event1});
- event2.wait_and_throw();
- }
- }
- else {
- std::int64_t scratchpad_size = mkl::lapack::getrf_scratchpad_size(queue, m, n, lda);
- double* scratchpad = sycl::malloc_shared(scratchpad_size, device, context);
- if (!scratchpad) {
- info = -1000;
- return info;
- }
- auto event1 = mkl::lapack::getrf(queue, m, n, &A(0,0), lda, &ipiv[0], scratchpad, scratchpad_size );
- event1.wait_and_throw();
- sycl::free(scratchpad, context);
- }
-
- return info;
-}
diff --git a/Libraries/oneMKL/block_lu_decomposition/dgeblttrs.cpp b/Libraries/oneMKL/block_lu_decomposition/dgeblttrs.cpp
deleted file mode 100644
index a10a1b5a1d..0000000000
--- a/Libraries/oneMKL/block_lu_decomposition/dgeblttrs.cpp
+++ /dev/null
@@ -1,176 +0,0 @@
-//==============================================================
-// Copyright © 2020 Intel Corporation
-//
-// SPDX-License-Identifier: MIT
-// =============================================================
-
-/*
-* Content:
-* Function DGEBLTTRS for solving a system of linear equations
-* with LU-factored block tridiagonal coefficient matrix and
-* multiple right hand sides.
-************************************************************************
-* Definition:
-* ===========
-* int64_t dgeblttrs(sycl::queue queue, int64_t n, int64_t nb, int64_t nrhs, double* d, double* dl, double* du1, double* du2, int64_t* ipiv, double* f, int64_t ldf)
-*
-* Purpose:
-* ========
-* DGEBLTTRS solves system of linear equations AX = F with general block
-* tridiagonal coefficient matrix
-* (D_1 C_1 )
-* (B_1 D_2 C_2 )
-* ( B_2 D_3 C_3 )
-* A= ( ......... )
-* ( B_N-2 D_N-1 C_N-1 )
-* ( B_N-1 D_N )
-*
-* LU-factored by DGEBLTTRF and multiple RHS F.
-*
-* Arguments:
-* ==========
-* QUEUE (input) sycl queue
-* The device queue
-*
-* N (input) int64_t
-* The number of block rows of the matrix A. N > 0.
-*
-* NB (input) int64_t
-* The size of blocks. NB > 0.
-*
-* NRHS (input) int64_t
-* The number of right hand sides. NRHS > 0.
-*
-* D (input) double array, dimension (NB) * (N*NB)
-* The array stores N diagonal blocks (each of size NB by NB)
-* of triangular factors L and U as they are returned by
-* DGEBLTTRF. Diagonal blocks of factors L and U are lower and
-* upper triangular respectively, and their diagonal blocks
-* with the same index are stored in a block of D with the same
-* index occupying respectively lower and upper triangles of a
-* block in D. Unit diagonal elements of factor L are not stored.
-*
-* DL (input) double array, dimension (NB) * ((N-1)*NB)
-* The array stores subdiagonal blocks of lower triangular factor L
-* as they are returned by DGEBLTTRF.
-*
-* DU1 (input) double array, dimension (NB) * ((N-1)*NB)
-* The array stores superdiagonal blocks of upper triangular factor U
-* as they are returned by DGEBLTTRF.
-*
-* DU2 (input) double array, dimension (NB) * ((N-2)*NB)
-* The array stores blocks of the second superdiagonal of upper
-* triangular factor U as they are returned by DGEBLTTRF.
-*
-* IPIV (input) int64_t array, dimension (NB) * (N)
-* The array stores pivot 'local' row indices ('local' means indices
-* vary in the range 1..2*NB. Global row index is
-* IPIV(I,K) + (K-1)*NB ).
-*
-* F (input/output) double array, dimension (LDF) * (NRHS)
-* On entry, the array stores NRHS columns of right hand F of the
-* system of linear equations AX = F.
-* On exit, the array stores NRHS columns of unknowns of the system
-* of linear equations AX = F.
-*
-* LDF (input) int64_t. LDF >= N*NB
-* Leading dimension of the array F
-*
-* INFO (return) int64_t
-* = 0: successful exit
-* < 0: if INFO = -i, the i-th argument had an illegal value
-***********************************************************************/
-#include
-#include
-#include "oneapi/mkl.hpp"
-
-using namespace oneapi;
-
-int64_t dgeblttrs(sycl::queue queue, int64_t n, int64_t nb, int64_t nrhs, double* d, double* dl, double* du1, double* du2, int64_t* ipiv, double* f, int64_t ldf) {
-
- // Matrix accessors
- auto D = [=,&d] (int64_t i, int64_t j) -> double& { return d[i + j*nb]; };
- auto DL = [=,&dl] (int64_t i, int64_t j) -> double& { return dl[i + j*nb]; };
- auto DU1 = [=,&du1] (int64_t i, int64_t j) -> double& { return du1[i + j*nb]; };
- auto DU2 = [=,&du2] (int64_t i, int64_t j) -> double& { return du2[i + j*nb]; };
- auto IPIV = [=,&ipiv] (int64_t i, int64_t j) -> int64_t& { return ipiv[i + j*nb]; };
- auto F = [=,&f] (int64_t i, int64_t j) -> double& { return f[i + j*ldf]; };
-
- // Test the input arguments.
- int64_t info = 0;
- if (n <= 0)
- info = -1;
- else if (nb <= 0)
- info = -2;
- else if (nrhs <= 0)
- info = -3;
- else if (ldf < n*nb)
- info = -10;
-
- if (info)
- return info;
-
- sycl::context context = queue.get_context();
- sycl::device device = queue.get_device();
-
- // Forward substitution
- // In the loop compute components Y_K stored in array F
- for (int64_t k = 0; k < n-2; k++) {
- for (int64_t i = 0; i < nb; i++) {
- if (IPIV(i,k) != i+1){
- auto event1 = mkl::blas::swap(queue, nrhs, &F(k*nb+i, 0), ldf, &F(k*nb+IPIV(i,k)-1, 0), ldf);
- event1.wait_and_throw();
- }
- }
- auto event1 = mkl::blas::trsm(queue, mkl::side::left, mkl::uplo::lower, mkl::transpose::nontrans, mkl::diag::unit, nb, nrhs, 1.0, &D(0, k*nb), nb, &F(k*nb, 0), ldf);
- auto event2 = mkl::blas::gemm(queue, mkl::transpose::nontrans, mkl::transpose::nontrans, nb, nrhs, nb, -1.0, &DL(0, k*nb), nb, &F(k*nb, 0), ldf, 1.0, &F((k+1)*nb, 0), ldf, {event1});
- event2.wait_and_throw();
- }
-
- // Apply two last pivots
- for (int64_t i = 0; i < nb; i++) {
- if (IPIV(i,n-2) != i+1){
- auto event1 = mkl::blas::swap(queue, nrhs, &F((n-2)*nb+i, 0), ldf, &F((n-2)*nb+IPIV(i,n-2)-1, 0), ldf);
- event1.wait_and_throw();
- }
- }
-
- for (int64_t i = 0; i < nb; i++) {
- if (IPIV(i,n-1) != i+1 + nb){
- auto event1 = mkl::blas::swap(queue, nrhs, &F((n-1)*nb+i, 0), ldf, &F((n-2)*nb+IPIV(i,n-1)-1, 0), ldf);
- event1.wait_and_throw();
- }
- }
-
- // Computing components Y_N-1 and Y_N out of loop
- {
- auto event1 = mkl::blas::trsm(queue, mkl::side::left, mkl::uplo::lower, mkl::transpose::nontrans, mkl::diag::unit, nb, nrhs, 1.0, &D(0, (n-2)*nb), nb, &F((n-2)*nb, 0), ldf);
- auto event2 = mkl::blas::gemm(queue, mkl::transpose::nontrans, mkl::transpose::nontrans, nb, nrhs, nb, -1.0, &DL(0, (n-2)*nb), nb, &F((n-2)*nb, 0), ldf, 1.0, &F((n-1)*nb, 0), ldf, {event1});
- auto event3 = mkl::blas::trsm(queue, mkl::side::left, mkl::uplo::lower, mkl::transpose::nontrans, mkl::diag::unit, nb, nrhs, 1.0, &D(0, (n-1)*nb), nb, &F((n-1)*nb, 0), ldf, {event2});
- event3.wait_and_throw();
- }
-
- // Backward substitution
- // Computing _N out of loop and store in array F
- {
- auto event1 = mkl::blas::trsm(queue, mkl::side::left, mkl::uplo::upper, mkl::transpose::nontrans, mkl::diag::nonunit, nb, nrhs, 1.0, &D(0, (n-1)*nb), nb, &F((n-1)*nb, 0), ldf);
- event1.wait_and_throw();
- }
-
- // Computing _N-1 out of loop and store in array F
- {
- auto event1 = mkl::blas::gemm(queue, mkl::transpose::nontrans, mkl::transpose::nontrans, nb, nrhs, nb, -1.0, &DU1(0, (n-2)*nb), nb, &F((n-1)*nb, 0), ldf, 1.0, &F((n-2)*nb, 0), ldf);
- auto event2 = mkl::blas::trsm(queue, mkl::side::left, mkl::uplo::upper, mkl::transpose::nontrans, mkl::diag::nonunit, nb, nrhs, 1.0, &D(0, (n-2)*nb), nb, &F((n-2)*nb, 0), ldf, {event1});
- event2.wait_and_throw();
- }
-
- // In the loop computing components _K stored in array F
- for (int64_t k = n-3; k >= 0; k--) {
- auto event1 = mkl::blas::gemm(queue, mkl::transpose::nontrans, mkl::transpose::nontrans, nb, nrhs, nb, -1.0, &DU1(0, k*nb), nb, &F((k+1)*nb, 0), ldf, 1.0, &F(k*nb, 0), ldf);
- auto event2 = mkl::blas::gemm(queue, mkl::transpose::nontrans, mkl::transpose::nontrans, nb, nrhs, nb, -1.0, &DU2(0, k*nb), nb, &F((k+2)*nb, 0), ldf, 1.0, &F(k*nb, 0), ldf, {event1});
- auto event3 = mkl::blas::trsm(queue, mkl::side::left, mkl::uplo::upper, mkl::transpose::nontrans, mkl::diag::nonunit, nb, nrhs, 1.0, &D(0, k*nb), nb, &F(k*nb, 0), ldf, {event2});
- event3.wait_and_throw();
- }
-
- return info;
-}
diff --git a/Libraries/oneMKL/block_lu_decomposition/factor.cpp b/Libraries/oneMKL/block_lu_decomposition/factor.cpp
deleted file mode 100644
index 1ef6106b80..0000000000
--- a/Libraries/oneMKL/block_lu_decomposition/factor.cpp
+++ /dev/null
@@ -1,136 +0,0 @@
-//==============================================================
-// Copyright © 2020 Intel Corporation
-//
-// SPDX-License-Identifier: MIT
-// =============================================================
-
-/*
-*
-* Content:
-* Example of LU factorization of general block tridiagonal matrix
-************************************************************************
-* Purpose:
-* ========
-* Testing LU factorization of block tridiagonal matrix
-* (D_1 C_1 )
-* (B_1 D_2 C_2 )
-* ( B_2 D_3 C_3 )
-* ( ......... )
-* ( B_N-2 D_N-1 C_N-1 )
-* ( B_N-1 D_N )
-* provided by function dgeblttrf by calculating Frobenius norm of the
-* residual ||A-L*U||. Computation of the residual and its Frobenius norm
-* is done by function resid1 (for source see file auxi.cpp).
-* Input block tridiagonal matrix A is randomly generated.
-*/
-
-#include
-#include
-#include
-
-#include
-#include "oneapi/mkl.hpp"
-
-using namespace oneapi;
-
-int64_t dgeblttrf(sycl::queue queue, int64_t n, int64_t nb, double* d, double* dl, double* du1, double* du2, int64_t* ipiv);
-double resid1( int64_t n, int64_t nb, double* dl, double* d, double* du1, double* du2, int64_t* ipiv, double* dlcpy, double* dcpy, double* du1cpy);
-
-template
-using allocator_t = sycl::usm_allocator;
-
-int main(){
-
- if (sizeof(MKL_INT) != sizeof(int64_t)) {
- std::cerr << "MKL_INT not 64bit" << std::endl;
- return -1;
- }
-
- int64_t n = 200;
- int64_t nb = 20;
-
- int64_t info = 0;
-
- // Asynchronous error handler
- auto error_handler = [&] (sycl::exception_list exceptions) {
- for (auto const& e : exceptions) {
- try {
- std::rethrow_exception(e);
- } catch(mkl::lapack::exception const& e) {
- // Handle LAPACK related exceptions happened during asynchronous call
- info = e.info();
- std::cout << "Unexpected exception caught during asynchronous LAPACK operation:\ninfo: " << e.info() << std::endl;
- } catch(sycl::exception const& e) {
- // Handle not LAPACK related exceptions happened during asynchronous call
- std::cout << "Unexpected exception caught during asynchronous operation:\n" << e.what() << std::endl;
- info = -1;
- }
- }
- };
-
- sycl::device device{sycl::default_selector_v};
- sycl::queue queue(device, error_handler);
- sycl::context context = queue.get_context();
-
- if (device.is_gpu() && device.get_platform().get_backend() != sycl::backend::ext_oneapi_level_zero) {
- std::cerr << "This sample requires Level Zero when running on GPUs." << std::endl;
- std::cerr << "Please check your system configuration." << std::endl;
- return 0;
- }
-
- if (device.get_info().empty()) {
- std::cerr << "This sample uses double precision, which is not supported" << std::endl;
- std::cerr << "by the selected device. Quitting." << std::endl;
- return 0;
- }
-
- allocator_t allocator_d(context, device);
- allocator_t allocator_i(context, device);
-
- std::vector> d(nb* n*nb, allocator_d);
- std::vector> dl(nb* (n-1)*nb, allocator_d);
- std::vector> du1(nb* (n-1)*nb, allocator_d);
- std::vector> du2(nb* (n-2)*nb, allocator_d);
-
- std::vector> dcpy(nb* n*nb, allocator_d);
- std::vector> dlcpy(nb* (n-1)*nb, allocator_d);
- std::vector> du1cpy(nb* (n-1)*nb, allocator_d);
-
- std::vector> ipiv(nb* n, allocator_i);
- std::vector iseed = {9, 41, 11, 3};
-
-
- std::cout << "Testing accuracy of LU factorization with pivoting" << std::endl;
- std::cout << "of randomly generated block tridiagonal matrix " << std::endl;
- std::cout << "by calculating norm of the residual matrix." << std::endl;
-
- // Initializing arrays randomly
- LAPACKE_dlarnv(2, iseed.data(), n*nb*nb, d.data());
- LAPACKE_dlarnv(2, iseed.data(), (n-1)*nb*nb, dl.data());
- LAPACKE_dlarnv(2, iseed.data(), (n-1)*nb*nb, du1.data());
-
- // Copying arrays for testing purposes
- cblas_dcopy(n*nb*nb, d.data(), 1, dcpy.data(), 1);
- cblas_dcopy((n-1)*nb*nb, dl.data(), 1, dlcpy.data(), 1);
- cblas_dcopy((n-1)*nb*nb, du1.data(), 1, du1cpy.data(), 1);
-
- // Factoring the matrix
- try {
- info = dgeblttrf(queue, n, nb, d.data(), dl.data(), du1.data(), du2.data(), ipiv.data());
- } catch(sycl::exception const& e) {
- // Handle not LAPACK related exceptions happened during synchronous call
- std::cout << "Unexpected exception caught during synchronous call to SYCL API:\n" << e.what() << std::endl;
- info = -1;
- }
- // Check the exit INFO for success
- if(info){
- std::cout << "DGEBLTTRF returned nonzero INFOi = " << info << std::endl;
- return 1;
- }
-
- // Computing the ratio ||A - LU||_F/||A||_F
- double eps = resid1(n, nb, dl.data(), d.data(), du1.data(), du2.data(), ipiv.data(), dlcpy.data(), dcpy.data(), du1cpy.data());
- std::cout << "||A - LU||_F/||A||_F = " << eps << std::endl;
-
- return 0;
-}
diff --git a/Libraries/oneMKL/block_lu_decomposition/makefile b/Libraries/oneMKL/block_lu_decomposition/makefile
deleted file mode 100644
index b566e6496e..0000000000
--- a/Libraries/oneMKL/block_lu_decomposition/makefile
+++ /dev/null
@@ -1,16 +0,0 @@
-# Makefile for NMAKE
-
-all: factor.exe solve.exe
- .\factor.exe
- .\solve.exe
-
-DPCPP_OPTS=/I"$(MKLROOT)\include" /Qmkl /Qmkl-sycl-impl="blas,lapack" /DMKL_ILP64 /EHsc -fsycl-device-code-split=per_kernel OpenCL.lib
-
-factor.exe: factor.cpp dgeblttrf.cpp auxi.cpp
- icx-cl -fsycl factor.cpp dgeblttrf.cpp auxi.cpp /Fefactor.exe $(DPCPP_OPTS)
-
-solve.exe: solve.cpp dgeblttrf.cpp dgeblttrs.cpp auxi.cpp
- icx-cl -fsycl solve.cpp dgeblttrf.cpp dgeblttrs.cpp auxi.cpp /Fesolve.exe $(DPCPP_OPTS)
-
-clean:
- del /q factor.exe factor.exp factor.lib solve.exe solve.exp solve.lib
diff --git a/Libraries/oneMKL/block_lu_decomposition/sample.json b/Libraries/oneMKL/block_lu_decomposition/sample.json
deleted file mode 100644
index 7834a2b07e..0000000000
--- a/Libraries/oneMKL/block_lu_decomposition/sample.json
+++ /dev/null
@@ -1,33 +0,0 @@
-{
- "guid": "3EC851D1-056A-4973-A2F7-9FC7EFEDA785",
- "name": "Block LU Decomposition",
- "categories": ["Toolkit/oneAPI Libraries/oneMKL"],
- "description": "Block LU Decomposition using Intel® oneMKL BLAS and LAPACK",
- "toolchain": [ "dpcpp" ],
- "dependencies": [ "mkl" ],
- "languages": [ { "cpp": { "properties": { "projectOptions": [ { "projectType": "makefile" } ] } } } ],
- "targetDevice": [ "CPU", "GPU" ],
- "os": [ "linux", "windows" ],
- "builder": [ "make" ],
- "ciTests": {
- "linux": [
- {
- "id": "block_lu_decomposition",
- "steps": [
- "make clean",
- "make"
- ]
- }
- ],
- "windows": [
- {
- "id": "block_lu_decomposition",
- "steps": [
- "nmake clean",
- "nmake"
- ]
- }
- ]
- },
- "expertise": "Concepts and Functionality"
-}
diff --git a/Libraries/oneMKL/block_lu_decomposition/solve.cpp b/Libraries/oneMKL/block_lu_decomposition/solve.cpp
deleted file mode 100644
index 2c9f5fb29e..0000000000
--- a/Libraries/oneMKL/block_lu_decomposition/solve.cpp
+++ /dev/null
@@ -1,154 +0,0 @@
-//==============================================================
-// Copyright © 2020 Intel Corporation
-//
-// SPDX-License-Identifier: MIT
-// =============================================================
-
-/*
-*
-* Content:
-* Example of solving a system of linear equations with general
-* block tridiagonal coefficient matrix
-************************************************************************
-* Purpose:
-* ========
-* Testing solution of a linear system of equations with general block
-* tridiagonal matrix of coefficients
-* D(1)*X(1) + C(1)*X(2) = F(1)
-* B(1)*X(1) + D(2)*X(2) + C(2)*X(3) = F(2)
-* B(2)*X(2) + D(3)*X(3) + C(3)*X(4) = F(3)
-* ...
-* B(N-2)*X(N-2) + D(N-1)*X(N-1) + C(N-1)*X(N) = F(N-1)
-* B(N-1)*X(N-1) + D(N)*X(N) = F(N)
-* Here D(J),B(J),C(J) are NB by NB matrices - block matrix coefficients
-* X(J),F(J) are NB by NRHS-matrices - unknowns and RHS components
-*
-* Solving is done via LU factorization of the coefficient matrix
-* (call DGEBLTTRF) followed by call DGEBLTTRS to solve a system of
-* equations with coefficient matrix factored by DGEBLTTRF.
-*
-* Coefficients and right hand sides are randomly generated.
-*
-* Testing is done via calculating
-* max{||F(1)-D(1)*X(1)-C(1)*X(2)||,
-* ||F(2)-B(1)*X(1)-D(1)*X(1)-C(1)*X(2)||,
-* ...
-* ||F(N)-B(N-1)*X(N-1)-D(N)*X(N)||}
-*
-* ||.|| denotes Frobenius norm of a respective matrix
-*/
-#include
-#include
-#include
-
-#include
-#include "oneapi/mkl.hpp"
-
-using namespace oneapi;
-
-int64_t dgeblttrf(sycl::queue, int64_t n, int64_t nb, double* d, double* dl, double* du1, double* du2, int64_t* ipiv);
-int64_t dgeblttrs(sycl::queue, int64_t n, int64_t nb, int64_t nrhs, double* d, double* dl, double* du1, double* du2, int64_t* ipiv, double* f, int64_t ldf);
-double resid2(int64_t n, int64_t nb, int64_t nrhs, double* dl, double* d, double* du1, double* x, int64_t ldx, double* b, int64_t ldb);
-
-template
-using allocator_t = sycl::usm_allocator;
-
-int main() {
- if (sizeof(MKL_INT) != sizeof(int64_t)) {
- std::cerr << "MKL_INT not 64bit" << std::endl;
- return -1;
- }
-
- int64_t n = 200;
- int64_t nb = 20;
- int64_t nrhs = 10;
- int64_t ldf = nb*n;
-
- int64_t info = 0;
-
- // Asynchronous error handler
- auto error_handler = [&] (sycl::exception_list exceptions) {
- for (auto const& e : exceptions) {
- try {
- std::rethrow_exception(e);
- } catch(mkl::lapack::exception const& e) {
- // Handle LAPACK related exceptions happened during asynchronous call
- info = e.info();
- std::cout << "Unexpected exception caught during asynchronous LAPACK operation:\ninfo: " << e.info() << std::endl;
- } catch(sycl::exception const& e) {
- // Handle not LAPACK related exceptions happened during asynchronous call
- std::cout << "Unexpected exception caught during asynchronous operation:\n" << e.what() << std::endl;
- info = -1;
- }
- }
- };
-
- sycl::device device{sycl::default_selector_v};
- sycl::queue queue(device, error_handler);
- sycl::context context = queue.get_context();
-
- if (device.is_gpu() && device.get_platform().get_backend() != sycl::backend::ext_oneapi_level_zero) {
- std::cerr << "This sample requires Level Zero when running on GPUs." << std::endl;
- std::cerr << "Please check your system configuration." << std::endl;
- return 0;
- }
-
- if (device.get_info().empty()) {
- std::cerr << "This sample uses double precision, which is not supported" << std::endl;
- std::cerr << "by the selected device. Quitting." << std::endl;
- return 0;
- }
-
- allocator_t allocator_d(context, device);
- allocator_t allocator_i(context, device);
-
- std::vector> d(nb * n*nb, allocator_d);
- std::vector> dl(nb * (n-1)*nb, allocator_d);
- std::vector> du1(nb * (n-1)*nb, allocator_d);
- std::vector> du2(nb * (n-2)*nb, allocator_d);
- std::vector> f(ldf * nrhs, allocator_d);
- std::vector> dcpy(nb * n*nb, allocator_d);
- std::vector> dlcpy(nb * (n-1)*nb, allocator_d);
- std::vector> du1cpy(nb * (n-1)*nb, allocator_d);
- std::vector> fcpy(ldf * nrhs, allocator_d);
-
- std::vector> ipiv(nb * n, allocator_i);
- std::vector iseed = {1, 4, 23, 77};
-
- // Initializing arrays randomly
- LAPACKE_dlarnv(2, reinterpret_cast(iseed.data()), n*nb*nb, d.data());
- LAPACKE_dlarnv(2, reinterpret_cast(iseed.data()), (n-1)*nb*nb, dl.data());
- LAPACKE_dlarnv(2, reinterpret_cast(iseed.data()), (n-1)*nb*nb, du1.data());
- LAPACKE_dlarnv(2, reinterpret_cast(iseed.data()), n*nb*nrhs, f.data());
-
- // Copying arrays for testing purposes
- cblas_dcopy(n*nb*nb, d.data(), 1, dcpy.data(), 1);
- cblas_dcopy((n-1)*nb*nb, dl.data(), 1, dlcpy.data(), 1);
- cblas_dcopy((n-1)*nb*nb, du1.data(), 1, du1cpy.data(), 1);
- cblas_dcopy(n*nb*nrhs, f.data(), 1, fcpy.data(), 1);
-
- std::cout << "Testing accuracy of solution of linear equations system" << std::endl;
- std::cout << "with randomly generated block tridiagonal coefficient" << std::endl;
- std::cout << "matrix by calculating ratios of residuals" << std::endl;
- std::cout << "to RHS vectors' norms." << std::endl;
-
- // LU factorization of the coefficient matrix
- info = dgeblttrf(queue, n, nb, d.data(), dl.data(), du1.data(), du2.data(), ipiv.data());
- if (info) {
- std::cout << "DGEBLTTRF returned nonzero INFO = " << info << std::endl;
- return 1;
- }
-
- // Solving the system of equations using factorized coefficient matrix
- info = dgeblttrs(queue, n, nb, nrhs, d.data(), dl.data(), du1.data(), du2.data(), ipiv.data(), f.data(), ldf);
- if (info) {
- std::cout << -info << "-th parameter in call of dgeblttrs has illegal value" << std::endl;
- return 1;
- } else {
- // computing the residual
- double eps = resid2(n, nb, nrhs, dlcpy.data(), dcpy.data(), du1cpy.data(), f.data(), ldf, fcpy.data(), ldf);
- std::cout << "max_(i=1,...,nrhs){||ax(i)-f(i)||/||f(i)||} = " << eps << std::endl;
- }
-
- return 0;
-}
diff --git a/Libraries/oneMKL/block_lu_decomposition/third-party-programs.txt b/Libraries/oneMKL/block_lu_decomposition/third-party-programs.txt
deleted file mode 100644
index 90daff458d..0000000000
--- a/Libraries/oneMKL/block_lu_decomposition/third-party-programs.txt
+++ /dev/null
@@ -1,253 +0,0 @@
-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. Nothings STB Libraries
-
-stb/LICENSE
-
- This software is available under 2 licenses -- choose whichever you prefer.
- ------------------------------------------------------------------------------
- ALTERNATIVE A - MIT License
- Copyright (c) 2017 Sean Barrett
- 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.
- ------------------------------------------------------------------------------
- ALTERNATIVE B - Public Domain (www.unlicense.org)
- This is free and unencumbered software released into the public domain.
- Anyone is free to copy, modify, publish, use, compile, sell, or distribute this
- software, either in source code form or as a compiled binary, for any purpose,
- commercial or non-commercial, and by any means.
- In jurisdictions that recognize copyright laws, the author or authors of this
- software dedicate any and all copyright interest in the software to the public
- domain. We make this dedication for the benefit of the public at large and to
- the detriment of our heirs and successors. We intend this dedication to be an
- overt act of relinquishment in perpetuity of all present and future rights to
- this software under copyright law.
- 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 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.
-
---------------------------------------------------------------------------------
-
-2. 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.
-
-
---------------------------------------------------------------------------------
-
-3. Nbody
- (c) 2019 Fabio Baruffa
-
- Plotly.js
- Copyright (c) 2020 Plotly, Inc
-
-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.
-© 2020 GitHub, Inc.
-
---------------------------------------------------------------------------------
-
-4. 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.
-
---------------------------------------------------------------------------------
-
-5. 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
-
---------------------------------------------------------------------------------
-
-6. 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.
-
---------------------------------------------------------------------------------
-7. 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.
-
---------------------------------------------------------------------------------
-Other names and brands may be claimed as the property of others.
-
---------------------------------------------------------------------------------
\ No newline at end of file
diff --git a/Libraries/oneMKL/computed_tomography/GNUmakefile b/Libraries/oneMKL/computed_tomography/GNUmakefile
deleted file mode 100644
index 5f03a668a7..0000000000
--- a/Libraries/oneMKL/computed_tomography/GNUmakefile
+++ /dev/null
@@ -1,20 +0,0 @@
-#Makefile for GNU make
-
-default: run
-
-all: run
-
-run: computed_tomography
- ./computed_tomography
-
-MKL_COPTS = -qmkl -qmkl-sycl-impl=dft
-
-DPCPP_OPTS = $(MKL_COPTS) -fsycl-device-code-split=per_kernel
-
-computed_tomography: computed_tomography.cpp
- icpx $< -fsycl -o $@ $(DPCPP_OPTS)
-
-clean:
- -rm -f computed_tomography radon.bmp restored.bmp errors.bmp
-
-.PHONY: clean run all
diff --git a/Libraries/oneMKL/computed_tomography/License.txt b/Libraries/oneMKL/computed_tomography/License.txt
deleted file mode 100644
index e63c6e13dc..0000000000
--- a/Libraries/oneMKL/computed_tomography/License.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-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/Libraries/oneMKL/computed_tomography/README.md b/Libraries/oneMKL/computed_tomography/README.md
deleted file mode 100644
index b323ce35a1..0000000000
--- a/Libraries/oneMKL/computed_tomography/README.md
+++ /dev/null
@@ -1,94 +0,0 @@
-# `Computed Tomography Reconstruction` Sample
-
-Computed Tomography shows how to use the Intel® oneAPI Math Kernel Library (oneMKL) DFT functionality to simulate computed tomography (CT) imaging.
-
-| Optimized for | Description
-|:--- |:---
-| OS | Linux* Ubuntu* 18.04
Windows* 10, 11
-| Hardware | Skylake with Gen9 or newer
-| Software | Intel® oneAPI Math Kernel Library (oneMKL)
-| What you will learn | How to use oneMKL Discrete Fourier Transform (DFT) functionality
-| Time to complete | 15 minutes
-
-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
-
-Computed Tomography uses oneMKL discrete Fourier transform (DFT) routines to transform simulated raw CT data (as collected by a CT scanner) into a reconstructed image of the scanned object.
-
-In computed tomography, the raw imaging data is a set of line integrals over the actual object, also known as its _Radon transform_. From this data, the original image must be recovered by approximately inverting the Radon transform. This sample uses Fourier reconstruction for inverting the Radon transform of a user-provided input image. Using batched 1D real DFT of Radon transform data points, samples of the input image's Fourier spectrum may be estimated on a polar grid. After interpolating the latter onto a Cartesian grid, an inverse 2D real DFT produces a fair reproduction of the original image.
-
-This sample performs its computations on the default SYCL device. You can set the `ONEAPI_DEVICE_SELECTOR` environment variable to `*:cpu` or `*:gpu` to select the device to use.
-
-## Key Implementation Details
-
-To use oneMKL DFT routines, the sample creates double-precision real DFT descriptor objects and calls the `commit` member function with a `sycl::queue` object to define the device and context. The `compute_*` routines are then called to perform the actual computation with the appropriate descriptor object and input data.
-
-## Using Visual Studio Code* (Optional)
-You can use Visual Studio Code (VS Code) extensions to set your environment, create launch configurations,
-and browse and download samples.
-
-The basic steps to build and run a sample using VS Code include:
- - Download a sample using the extension **Code Sample Browser for Intel Software Developer Tools**.
- - Configure the oneAPI environment with the extension **Environment Configurator for Intel Software Developer Tools**.
- - Open a Terminal in VS Code (**Terminal>New Terminal**).
- - Run the sample in the VS Code terminal using the instructions below.
- - (Linux only) Debug your GPU application with GDB for Intel® oneAPI toolkits using the **Generate Launch Configurations** extension.
-
-To learn more about the extensions, see the
-[Using Visual Studio Code with Intel® oneAPI Toolkits User Guide](https://www.intel.com/content/www/us/en/develop/documentation/using-vs-code-with-intel-oneapi/top.html).
-
-
-## Building the Computed Tomography Reconstruction Sample
-> **Note**: If you have not already done so, set up your CLI
-> environment by sourcing the `setvars` script located 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'`
->
-> Windows*:
-> - `C:\"Program Files (x86)"\Intel\oneAPI\setvars.bat`
-> - For Windows PowerShell*, use the following command: `cmd.exe "/K" '"C:\Program Files (x86)\Intel\oneAPI\setvars.bat" && powershell'`
->
-> 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) or [Use the setvars Script with Windows*](https://www.intel.com/content/www/us/en/develop/documentation/oneapi-programming-guide/top/oneapi-development-environment-setup/use-the-setvars-script-with-windows.html).
-
-### On a Linux* System
-Run `make` to build and run the sample.
-
-You can remove all generated files with `make clean`.
-
-### On a Windows* System
-Run `nmake` to build and run the sample. `nmake clean` removes temporary files.
-
-> **Warning**: On Windows, static linking with oneMKL currently takes a very long time due to a known compiler issue. This will be addressed in an upcoming release.
-
-## Running the Computed Tomography Reconstruction Sample
-
-### Example of Output
-If everything is working correctly, the example program will start with the 400x400 example image `input.bmp` then create simulated CT data from it (stored as `radon.bmp`). It will then reconstruct the original image in grayscale and store it as `restored.bmp`.
-
-```
-./computed_tomography
-Reading original image from input.bmp
-Generating Radon transform data from input.bmp
-Saving Radon transform data in radon.bmp
-Reconstructing image from the Radon projection data
- Step 1 - Batch of 400 real 1D in-place forward DFTs of length 400
- Step 2 - Interpolating spectrum from polar to cartesian grid
- Step 3 - In-place backward real 2D DFT of size 400x400
-Saving restored image in restored.bmp
-```
-
-### Troubleshooting
-If an error occurs, troubleshoot the problem using the Diagnostics Utility for Intel® oneAPI Toolkits.
-[Learn more](https://www.intel.com/content/www/us/en/docs/oneapi/user-guide-diagnostic-utility/current/overview.html).
-
-## License
-
-Code samples are licensed under the MIT license. See
-[License.txt](License.txt) for details.
-
-Third party program Licenses can be found here: [third-party-programs.txt](third-party-programs.txt).
diff --git a/Libraries/oneMKL/computed_tomography/computed_tomography.cpp b/Libraries/oneMKL/computed_tomography/computed_tomography.cpp
deleted file mode 100644
index 9c20e3e26c..0000000000
--- a/Libraries/oneMKL/computed_tomography/computed_tomography.cpp
+++ /dev/null
@@ -1,944 +0,0 @@
-//=====================================================================
-// Copyright © 2020 Intel Corporation
-//
-// SPDX-License-Identifier: MIT
-// ====================================================================
-
-/*
-* Content:
-* Reconstruct the original image from the Computed Tomography (CT)
-* data using oneMKL DPC++ Discrete Fourier Transforms (DFTs).
-************************************************************************
-*/
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-
-#include
-#include "oneapi/mkl.hpp"
-
-#if !defined(M_PI)
-#define M_PI 3.14159265358979323846
-#endif
-
-namespace dft_ns = oneapi::mkl::dft;
-using real_descriptor_t =
- dft_ns::descriptor;
-using complex_t = std::complex;
-// This sample takes the side length of the input image's pixels as unit length
-constexpr double in_pix_len = 1.0;
-
-// A transparent matrix structure accounting for minimal padding as required for
-// - either a batch of h real 1D in-place DFTs of length w;
-// - or one real 2D in-place DFT of lengths {h, w}.
-// For such operations (real in-place DFTs), data padding is required to store
-// all the backward domain's elements.
-struct padded_matrix {
- sycl::queue queue;
- double *data;
- int h, w;
- padded_matrix(sycl::queue &main_queue) :
- queue{main_queue}, data{nullptr}, h(0), w(0) {}
- padded_matrix(const padded_matrix&) = delete;
- padded_matrix& operator=(const padded_matrix&) = delete;
- void deallocate() {
- if (data)
- sycl::free(data, queue);
- data = nullptr;
- h = w = 0;
- }
- inline int complex_padded_width() const {
- return (w / 2 + 1);
- }
- inline int real_padded_width() const {
- return 2 * complex_padded_width();
- }
- void allocate(int _h, int _w) {
- deallocate();
- h = _h;
- w = _w;
- data = sycl::malloc_shared(h * real_padded_width(), queue);
- }
- ~padded_matrix() {
- deallocate();
- }
-};
-
-// Routine terminating the application and reporting ad-hoc information.
-void die(const std::string& err) {
- std::cerr << "Fatal error: " << err << std::endl;
- std::exit(EXIT_FAILURE);
-}
-
-double
-bmp_read(padded_matrix&, const std::string&);
-
-void
-bmp_write(const std::string&, const padded_matrix&, const int*, const int*);
-
-sycl::event
-acquire_radon(padded_matrix&, double, const padded_matrix&);
-
-void
-reconstruction_from_radon(padded_matrix&, padded_matrix&, double, sycl::event&);
-
-double
-compute_errors(padded_matrix&, double, const padded_matrix&, const padded_matrix&);
-
-int main(int argc, char **argv) {
- constexpr int default_p = 400;
- constexpr int default_q = 400;
- constexpr double default_S_to_D = 1.0;
- constexpr std::string_view default_original_bmpname = "input.bmp";
- constexpr std::string_view default_radon_bmpname = "radon.bmp";
- constexpr std::string_view default_restored_bmpname = "restored.bmp";
- constexpr std::string_view default_errors_bmpname = "errors.bmp";
- constexpr int default_crop = 1;
- constexpr double arbitrary_error_threshold = 0.1;
- /*----------------------- USAGE INFO START --------------------------------*/
- const std::string usage_info =
-"\n\
- Usage:\n\
- ======\n\
- " + std::string(argv[0]) + " p q in radon_out restored_out S_to_D err_out crop\n\
- Inputs:\n\
- -------\n\
- p - number of projection directions considered for the Radon\n\
- transform (number of angles spanning a range of M_PI).\n\
- p must be a strictly positive integer (default value is " +
- std::to_string(default_p) + ").\n\
- q - number of samples of the Radon transform for every\n\
- projection direction.\n\
- q must be a strictly positive integer (default value is " +
- std::to_string(default_q) + ").\n\
- in - name of the input image used to generate Radon transform data.\n\
- The file must be a 24-bit uncompressed bitmap file.\n\
- \"" + std::string(default_original_bmpname) + "\" is considered by default.\n\
- S_to_D - ratio of the scanning width used for sampling the Radon\n\
- transform (for any projection direction) to the diagonal of\n\
- the input image.\n\
- S_to_D must be a floating-point value larger than or equal\n\
- to 1.0 (default value is " +
- std::to_string(default_S_to_D) + ").\n\
- crop - integer flag indicating whether to crop the generated bitmap\n\
- output images to their range of relevance or not. Images are\n\
- (resp. are not) cropped if the value is 1 (resp. 0).\n\
- The supported values are 0 and 1 (default value is "
- + std::to_string(default_crop) + ").\n\
- Outputs:\n\
- --------\n\
- radon_out - name of a 24-bit uncompressed bitmap image file storing a\n\
- gray-scaled image representing the generated Radon\n\
- transform data points.\n\
- \"" + std::string(default_radon_bmpname) + "\" is used by default.\n\
- restored_out - name of a 24-bit uncompressed bitmap image file storing a\n\
- gray-scaled image representing the image reconstructed\n\
- from the Radon transform data points.\n\
- \"" + std::string(default_restored_bmpname) + "\" is used by default.\n\
- err_out - name of a 24-bit uncompressed bitmap image file storing a\n\
- gray-scaled image representing the pixel-wise error in the\n\
- restored_out file. This file is created only if the mean\n\
- global error is found to exceed "
- + std::to_string(100.0*arbitrary_error_threshold) +
- "% of the maximum\n\
- gray-scale value in the original image.\n\
- \"" + std::string(default_errors_bmpname) + "\" is considered by default.\n\
-";
- /*------------------------ USAGE INFO END --------------------------------*/
- if (argc > 1 &&
- (std::strcmp(argv[1], "-h") == 0 || std::strcmp(argv[1], "-H") == 0)) {
- std::cout << usage_info << std::endl;
- return EXIT_SUCCESS;
- }
- const int p = argc > 1 ? std::atoi(argv[1]) :
- default_p;
- const int q = argc > 2 ? std::atoi(argv[2]) :
- default_q;
- const std::string original_bmpname = argc > 3 ? argv[3] :
- std::string(default_original_bmpname);
- const std::string radon_bmpname = argc > 4 ? argv[4] :
- std::string(default_radon_bmpname);
- const std::string restored_bmpname = argc > 5 ? argv[5] :
- std::string(default_restored_bmpname);
- const double S_to_D = argc > 6 ? std::atof(argv[6]) :
- default_S_to_D;
- const std::string errors_bmpname = argc > 7 ? argv[7] :
- std::string(default_errors_bmpname);
- const int crop = argc > 8 ? std::atoi(argv[8]) :
- default_crop;
- // validate numerical input arguments
- if (argc > 9 || p <= 0 || q <= 0 || S_to_D < 1.0 || crop < 0 || crop > 1) {
- die("invalid usage.\n" + usage_info);
- }
- // range of pixel indices to consider when exporting an image.
- int i_range[2] = {std::numeric_limits::lowest(),
- std::numeric_limits::max()};
- int j_range[2] = {std::numeric_limits::lowest(),
- std::numeric_limits::max()};
-
- // Create execution queue.
- sycl::queue main_queue;
- try {
- // This sample requires double-precision floating-point arithmetic:
- main_queue = sycl::queue(sycl::aspect_selector({sycl::aspect::fp64}));
- } catch (sycl::exception &e) {
- std::cerr << "Could not find any device with double precision support."
- << "Exiting." << std::endl;
- return 0;
- }
- // read input image and convert it to gray-scale values
- std::cout << "Reading original image from " << original_bmpname << std::endl;
- padded_matrix original(main_queue);
- const double max_input_value = bmp_read(original, original_bmpname);
- // diagonal D of original image
- const double ww = original.w*in_pix_len;
- const double hh = original.h*in_pix_len;
- const double D = std::hypot(hh, ww);
- // scanning width S
- const double S = S_to_D * D;
- // Compute samples of the radon transform
- padded_matrix radon_image(main_queue);
- radon_image.allocate(p, q);
- if (!radon_image.data)
- die("cannot allocate memory for Radon projection");
- std::cout << "Generating Radon transform data from "
- << original_bmpname << std::endl;
- auto radon_ev = acquire_radon(radon_image, S, original);
- if (crop == 1) {
- // values of radon_image.data[i*radon_image.real_padded_width() + j] are
- // expected to be 0.0 if |(-1.0 + (2.0*j + 1.0)/q)*S_to_D| > 1
- i_range[0] = 0;
- i_range[1] = radon_image.h;
- j_range[0] =
- static_cast(std::ceil(0.5*((1.0 - 1.0/S_to_D)*q - 1.0)));
- j_range[1] =
- static_cast(std::ceil(0.5*((1.0 + 1.0/S_to_D)*q - 1.0)));
- }
- std::cout << "Saving Radon transform data in "
- << radon_bmpname << std::endl;
- radon_ev.wait(); // make sure it completes before exporting data
- bmp_write(radon_bmpname, radon_image, i_range, j_range);
- // reconstruct image from its radon transform samples
- padded_matrix reconstruction(main_queue);
- reconstruction_from_radon(reconstruction, radon_image, S, radon_ev);
- if (crop == 1) {
- // values of reconstruction.data[i*reconstruction.real_padded_width() + j]
- // are out of the relevant range of comparison if
- // |(i - q/2)*S/q| - 0.5*S/q > 0.5*hh
- // or
- // |(j - q/2)*S/q| - 0.5*S/q > 0.5*ww
- i_range[0] = static_cast(std::ceil(-0.5*hh*q/S + q/2 - 0.5));
- i_range[1] = static_cast(std::ceil(+0.5*hh*q/S + q/2 + 0.5));
- j_range[0] = static_cast(std::ceil(-0.5*ww*q/S + q/2 - 0.5));
- j_range[1] = static_cast(std::ceil(+0.5*ww*q/S + q/2 + 0.5));
- }
- std::cout << "Saving restored image in " << restored_bmpname << std::endl;
- bmp_write(restored_bmpname, reconstruction, i_range, j_range);
- // evaluate the mean error, pixel by pixel in the reconstructed image
- padded_matrix errors(main_queue);
- const double mean_error = compute_errors(errors, S, original, reconstruction);
- std::cout << "The normalized mean difference between the reconstructed "
- << "image and the original image is " << 100*mean_error << "%."
- << std::endl;
- if (mean_error / max_input_value > arbitrary_error_threshold) {
- std::cerr << "The normalized mean difference exceeds the "
- << "(arbitrarily-chosen) threshold of "
- << 100.0*arbitrary_error_threshold
- << "% of the original image's maximum gray-scale value."
- << std::endl;
- if (std::fabs(p * S_to_D - q) > 0.2*std::max(p*S_to_D, double(q))) {
- std::cerr << "It is recommended to use values of p and q such that "
- << "p*S_to_D and q are commensurate." << std::endl;
- }
- else if (S / q > 2.0*in_pix_len) {
- std::cerr << "Consider increasing q (to "
- << std::ceil(S/(2.0*in_pix_len)) << " or more) "
- << "to alleviate blurring in the reconstructed image."
- << std::endl;
- }
- else {
- std::cerr << "Consider increasing S_to_D and q proportionally to "
- << "one another to reduce interpolation errors."
- << std::endl;
- }
- std::cerr << "Saving local errors in " << errors_bmpname << "."
- << std::endl;
- // same relevant pixel indices for errors as for reconstruction
- bmp_write(errors_bmpname, errors, i_range, j_range);
- return EXIT_FAILURE;
- }
-
- return EXIT_SUCCESS;
-}
-
-// Simplified BMP structure.
-// See http://msdn.microsoft.com/en-us/library/dd183392(v=vs.85).aspx
-#pragma pack(push, 1)
-struct bmp_header {
- char bf_type[2];
- unsigned int bf_size;
- unsigned int bf_reserved;
- unsigned int bf_off_bits;
-
- unsigned int bi_size;
- unsigned int bi_width;
- unsigned int bi_height;
- unsigned short bi_planes;
- unsigned short bi_bit_count;
- unsigned int bi_compression;
- unsigned int bi_size_image;
- unsigned int bi_x_pels_per_meter;
- unsigned int bi_y_pels_per_meter;
- unsigned int bi_clr_used;
- unsigned int bi_clr_important;
-};
-#pragma pack(pop)
-struct pixel {
- unsigned char b, g, r;
-};
-// Routine reading a 24-bit uncompressed bitmap image file and converting it to
-// a gray-scale padded_matrix (array of doubles in [0, 1], 0 is white, 1 is
-// black). The maximum such gray-scale value is returned.
-double bmp_read(padded_matrix& image, const std::string& fname) {
- std::fstream fp;
- fp.open(fname, std::fstream::in | std::fstream::binary);
- if (fp.fail())
- die("cannot open the file " + fname);
-
- bmp_header header;
-
- fp.read((char *)(&header), sizeof(header));
- if (header.bi_bit_count != 24) {
- fp.close();
- die("not a 24-bit image in " + fname);
- }
- if (header.bi_compression) {
- fp.close();
- die(fname + " is compressed bmp");
- }
- if (header.bi_height <= 0 || header.bi_width <= 0) {
- fp.close();
- die("image " + fname + " has zero size");
- }
- if (header.bi_height > 65536 || header.bi_width > 65536) {
- fp.close();
- die("image " + fname + " is too large");
- }
-
- image.allocate(header.bi_height, header.bi_width);
- if (!image.data)
- die("no memory to read " + fname);
-
- fp.seekg(sizeof(header), std::ios_base::beg);
- pixel pix;
- double max_gray_scale = std::numeric_limits::lowest();
- for (int i = 0; i < image.h; ++i) {
- for (int j = 0; j < image.w; ++j) {
- fp.read((char *)(&pix), 3);
- double gray_scale = (255.0 - (pix.r + pix.g + pix.b) / 3.0) / 255.0;
- image.data[i * image.real_padded_width() + j] = gray_scale;
- max_gray_scale = std::max(max_gray_scale, gray_scale);
- }
- // rows are rounded up to a multiple of 4 bytes in BMP format
- fp.seekg((4 - (3 * image.w) % 4) % 4, std::ios_base::cur);
- }
-
- if (!fp)
- die("error reading " + fname);
-
- fp.close();
- return max_gray_scale;
-}
-// Routine exporting the values image.data[i*image.real_padded_width() + j] of
-// a padded_matrix "image" for indices (i, j) such that
-// max(min_max_i[0], 0) <= i < min(min_max_i[1], image.h)
-// max(min_max_j[0], 0) <= j < min(min_max_j[1], image.w)
-// as a gray-scale 24-bit uncompressed bitmap image file.
-// For every such relevant entry v of the matrix, a gray scale value
-// proportional to max(v, 0.0) is calculated (maximizing contrast) and the
-// corresponding pixel's color code is generated. In other words, negative
-// values are ignored (considered white) by this routine.
-// Note: while negative values may be found in the reconstructed image, they
-// may be considered artifacts (e.g., due to Gibbs phenomenon) and/or local
-// errors of the reconstruction procedure (e.g., due to the rudimentary spectrum
-// interpolation).
-void bmp_write(const std::string& fname, const padded_matrix& image,
- const int min_max_i[2], const int min_max_j[2]) {
- const int min_i = std::max(min_max_i[0], 0);
- const int max_i = std::min(min_max_i[1], image.h);
- const int min_j = std::max(min_max_j[0], 0);
- const int max_j = std::min(min_max_j[1], image.w);
- if (max_i <= min_i || max_j <= min_j)
- die("invalid range of pixel indices for bmp_write to export");
-
- unsigned int sizeof_line = ((max_j - min_j) * 3 + 3) / 4 * 4;
- unsigned int sizeof_image = (max_i - min_i) * sizeof_line;
-
- bmp_header header = {{'B', 'M'},
- unsigned(sizeof(header) + sizeof_image),
- 0,
- sizeof(header),
- sizeof(header) - offsetof(bmp_header, bi_size),
- unsigned(max_j - min_j),
- unsigned(max_i - min_i),
- 1,
- 24,
- 0,
- sizeof_image,
- 6000,
- 6000,
- 0,
- 0};
-
- std::fstream fp;
- fp.open(fname, std::fstream::out | std::fstream::binary);
- if (fp.fail())
- die("failed to save the image, cannot open file " + fname);
-
- fp.write((char *)(&header), sizeof(header));
- double v_max = std::numeric_limits::lowest();
- for (int i = min_i; i < max_i; ++i)
- for (int j = min_j; j < max_j; ++j)
- v_max = std::max(image.data[i * image.real_padded_width() + j], v_max);
-
- if (v_max <= 0.0) {
- fp.close();
- die("inconsistent data range to consider for exporting " + fname);
- }
- pixel pix;
- for (int i = min_i; i < max_i; ++i) {
- for (int j = min_j; j < max_j; ++j) {
- const double gray =
- std::max(image.data[i * image.real_padded_width() + j], 0.0)/v_max;
- pix.b = pix.g = pix.r =
- static_cast(std::round(255.0*(1.0 - gray)));
- fp.write((char *)(&pix), 3);
- }
- // rows are rounded up to a multiple of 4 bytes in BMP format
- for (int j = 3 * (max_j - min_j); j % 4; ++j)
- fp.put(0);
- }
- fp.close();
-}
-
-// For a given 2D function f(y, x), the radon transform of f is defined as
-// radon[f](theta, v) := integral of f along line L
-// where L is the set of points (y, x) such that
-// x*cos(theta) + y*sin(theta) = v
-// in a given orthonormal frame.
-// Let p = radon_projection.h, q = radon_projection.w, and
-// radon_ldw = radon_projection.real_padded_width(). For all integers i in
-// [0, p-1] and j in [0, q-1], this routine sets
-// radon_projection.data[i*radon_ldw + j] = radon[f_input](theta(i), v(j))
-// where
-// theta(i) = -0.5*M_PI + i*M_PI/p,
-// v(j) = (-1.0 + (2.0*j + 1.0)/q)*0.5*scanning_width,
-// considering the function f_input defined as
-// f_input(y, x) = 0
-// if max(|y|/hh, |x|/ww) > 0.5, and
-// f_input(y, x) = input.data[ii*input.real_padded_width() + jj]
-// where integers ii and jj are such that
-// ii*in_pix_len <= y + 0.5*hh < (ii + 1)*in_pix_len,
-// jj*in_pix_len <= x + 0.5*ww < (jj + 1)*in_pix_len,
-// using hh = input.h*in_pix_len and ww = input.w*in_pix_len.
-//
-// Inputs:
-// -------
-// scanning_width: scanning width used for sampling the Radon transform
-// for every projection angle theta (see above);
-// input: padded_matrix defining the function f_input to consider
-// when computing Radon transform values (see above).
-// Output:
-// -------
-// radon_projection: padded_matrix containing the desired samples of the
-// radon transform described above.
-// The calculations are enqueued to the queue encapsulated
-// in this object.
-// Returns:
-// --------
-// a sycl::event object tracking the completion of the task.
-sycl::event acquire_radon(padded_matrix& radon_projection,
- double scanning_width, const padded_matrix& input) {
-
- const double hh = input.h*in_pix_len;
- const double ww = input.w*in_pix_len;
- if (scanning_width < std::hypot(hh, ww)) {
- die("invalid scanning width for acquire_radon");
- }
- // helper computing the distance from "origin" to the closest point on one
- // of the lines that define a rectangular box (determined by its "center"
- // and its "side_lengths") in the direction of vector "+dir_v".
- // std::numeric_limits::max() is returned if no intersection is
- // found.
- auto compute_distance_to_closest_edge =
- [=](const double origin[2], const double dir_v[2],
- const double center[2], const double side_lengths[2]) {
- double lambda = std::numeric_limits::max();
- const double abs_v = sycl::hypot(dir_v[0], dir_v[1]);
- for (int dim = 0; dim < 2; dim++) {
- if (dir_v[dim] == 0.0)
- continue;
- for (double bound : {center[dim] - 0.5*side_lengths[dim],
- center[dim] + 0.5*side_lengths[dim]}) {
- double candidate = abs_v * (bound - origin[dim]) / dir_v[dim];
- if (0.0 < candidate && candidate < lambda)
- lambda = candidate;
- }
- }
- return lambda;
- };
- const int input_ldw = input.real_padded_width();
- const double *input_data = input.data;
- auto integrate_along_line = [=](double theta, double v) {
- /*
- Let's consider an orthonormal reference frame centered at the center of
- the image (say O), using axes aligned with the edges of the image, as
- shown below.
- */
- double box_center[2] = {0.0, 0.0};
- double box_edges[2] = {hh, ww};
- /*
- line L (defined by theta and v) ^ (y-axis)
- \ |
- \ ww |
- _\_______________________________________________ |
- | \ | |
- | \ | |
- | \ | |
- | \ | |
- hh | \ O | - 0
- | \ | |
- | \ | |
- | \ | |
- |__________\______________________________________| |
- \ |
- \ 0 |
- --------------------------|------------------------------------>
- (x-axis)
-
- Using the following parameters,
- */
- const double cs = sycl::cos(theta), sn = sycl::sin(theta);
- const double unit_vector[2] = {+cs, -sn};
- const double half_chord =
- sycl::sqrt(0.25*scanning_width*scanning_width - v*v);
- /*
- the coordinates (y, x) of any point lying on the chord that L makes in
- the circle of center O and radius 0.5*scanning_width may be
- parameterized as
- y(alpha) = v*sn + (-half_chord + alpha)*unit_vector[0];
- x(alpha) = v*cs + (-half_chord + alpha)*unit_vector[1];
- where 0 <= alpha <= 2*half_chord is a curvilinear abscissa along L.
- The integral of the (piecewise constant) input signal for the range of
- alpha s.t. max(|y(alpha)/hh|, |x(alpha)/ww|) <= 0.5 is computed below
- */
- // cursor point on L (alpha = 0.0)
- double cursor[2] = {v * sn - half_chord * unit_vector[0],
- v * cs - half_chord * unit_vector[1]};
- // Move the cursor along L (alpha += dalpha, dalpha > 0.0) into the
- // first pixel crossed by L. When moving the cursor, "a little more" is
- // added to dalpha to place it _into_ the first/next pixel of the image
- // crossed by L (avoiding ambiguous cases of pixel corners lying exactly
- // on L).
- constexpr double a_little_more = in_pix_len*1.0e-4;
- double dalpha = 0.0;
- while (sycl::fabs(cursor[0]) > 0.5*hh ||
- sycl::fabs(cursor[1]) > 0.5*ww) {
- dalpha = compute_distance_to_closest_edge(cursor, unit_vector,
- box_center, box_edges);
- if (dalpha > 2.0*half_chord) {
- // no intersection between L and the image was found
- return 0.0;
- }
- for (int dim = 0; dim < 2; dim++)
- cursor[dim] += (dalpha + a_little_more)*unit_vector[dim];
- }
- // parse the image pixels of indices (ii, jj) visited by the cursor as
- // alpha increases, i.e., as the cursor moves along L within the image
- int ii = static_cast(sycl::floor((cursor[0] + 0.5*hh)/in_pix_len));
- int jj = static_cast(sycl::floor((cursor[1] + 0.5*ww)/in_pix_len));
- // reset the box_edges to the size of individual pixels
- box_edges[0] = box_edges[1] = in_pix_len;
- // set box_center to the pixel's center
- box_center[0] = -0.5*hh + (ii + 0.5)*in_pix_len;
- box_center[1] = -0.5*ww + (jj + 0.5)*in_pix_len;
- // compute integral
- double integral = 0.0;
- while (sycl::fabs(box_center[0]) < 0.5*hh &&
- sycl::fabs(box_center[1]) < 0.5*ww) {
- // find smallest value of dalpha > 0 that brings the cursor to the
- // closest edge of the current pixel crossed by L.
- // There is always one dalpha s.t.
- // 0 < dalpha <= sqrt(2)*in_pix_len
- // for any pixel inside the input image, crossed by L.
- dalpha = compute_distance_to_closest_edge(cursor, unit_vector,
- box_center, box_edges);
- // Note: cursor was moved "a little more" into the pixel, previously
- integral += input_data[ii * input_ldw + jj]*(dalpha + a_little_more);
- // move the cursor into the following pixel
- for (int dim = 0; dim < 2; dim++)
- cursor[dim] += (dalpha + a_little_more)*unit_vector[dim];
- // set the new pixel indices
- ii = static_cast(sycl::floor((cursor[0] + 0.5*hh)/in_pix_len));
- jj = static_cast(sycl::floor((cursor[1] + 0.5*ww)/in_pix_len));
- box_center[0] = -0.5*hh + (ii + 0.5)*in_pix_len;
- box_center[1] = -0.5*ww + (jj + 0.5)*in_pix_len;
- }
- return integral;
- };
-
- return radon_projection.queue.submit([&](sycl::handler &cgh) {
- const int p = radon_projection.h;
- const int q = radon_projection.w;
- const int radon_ldw = radon_projection.real_padded_width();
- double *radon_data = radon_projection.data;
- cgh.parallel_for(
- sycl::range<2>(p, q),
- [=](sycl::item<2> item) {
- const int i = item.get_id(0);
- const int j = item.get_id(1);
- // -0.5*M_PI <= theta < 0.5*M_PI
- const double theta = -0.5*M_PI + i * M_PI / p;
- // -0.5*scanning_width < v < 0.5*scanning_width
- const double v = (-1.0 + (2.0 * j + 1.0) / q)*0.5*scanning_width;
- radon_data[i * radon_ldw + j] = integrate_along_line(theta, v);
- }
- );
- });
-}
-
-// Routine reconstructing an S-by-S image of q x q pixels from p x q samples of
-// its Radon transform (q samples spanning a scanning width S for every of the p
-// projection directions).
-//
-// Inputs:
-// -------
-// R: padded_matrix of height p and width q storing the samples of the radon
-// transform. Note that R is modified by this routine;
-// S: scanning width used when sampling the Radon transform;
-// dep: sycl::event object capturing the dependency to be honored before
-// accessing elements of R.
-// Output:
-// -------
-// image: padded_matrix of height q and width q representing gray-scale pixel
-// values of the reconstructed image (square image of side length S).
-void reconstruction_from_radon(padded_matrix& image,
- padded_matrix& R, double S, sycl::event& dep) {
- if (S <= 0.0)
- die("invalid scanning width");
- const int p = R.h;
- const int q = R.w;
- image.allocate(q, q);
- if (!image.data)
- die("cannot allocate memory for reconstruction");
- std::cout << "Reconstructing image from the Radon projection data"
- << std::endl;
-/*
- Note: in the explanatory comments below, arithmetic operations are to be
- understood as similar C++ instructions would, i.e., "x/2" represents
- the integer division of x by 2 if x is an integer itself, which is
- different from the value of 0.5*x if x%2 == 1.
-
- The input R to this routine is interpreted as
- R.data[i * R.real_padded_width() + j] == radon[f](theta(i), v(j))
- := "R[i][j]"
- where
- theta(i) = -0.5*M_PI + i * M_PI / p;
- v(j) = (-1.0 + (2.0*j + 1.0) / q) * 0.5 * S;
- for 0 <= i < p and 0 <= j < q.
-
- For a given value of theta, let radon_hat(theta, ksi) be the (continuous)
- 1D Fourier transform of radon[f](theta, v), i.e., using "1i" := sqrt(-1),
- radon_hat(theta, ksi) :=
- integral (radon[f](theta, v)*exp(-1i*2*M_PI*v*ksi)) dv.
- v real
- By the Fourier slice theorem,
- radon_hat(theta, ksi) = f_hat(ksi*sin(theta), ksi*cos(theta))
- where f_hat is the (continuous) 2D Fourier transform of f, i.e.,
- f_hat(kappa_y, kappa_x) :=
- integral integral (f(y,x)*exp(-1i*2*M_PI*(kappa_y*y + kappa_x*x))) dx dy.
- y real x real
-
- Considering ksi = r / S for integers r in [0, q/2], one has
- radon_hat(theta(i), r / S)
- = integral (radon[f](theta(i), v)*exp(-1i*2*M_PI*(r/S)*v)) dv.
- |v| < S/2
- which may be approximated as (midpoint rule)
- radon_hat(theta(i), r / S)
- ~ \sum_j (R[i][j]*exp(-1i*2*M_PI*(r/S)*v(j))) * (S/q), for j=0,...,q-1
- = exp(1i*M_PI*r*(1.0 - 1.0/q)) * (S/q) * DFT(R[i][0:q[; r), (eq. 1a)
- where DFT(R[i][0:q[; r) represents the r-th value of the forward DFT of
- the i-th row of q discrete values in R.
- Note: radon_hat(theta(i) + M_PI, r / S) = conj(radon_hat(theta(i), r / S))
-*/
- std::cout << "\tStep 1 - Batch of " << p
- << " real 1D in-place forward DFTs of length " << q << std::endl;
- // Descriptor to compute the DFTs involved in the RHS of eq. 1a, scaled by
- // S/q
- real_descriptor_t radon_dft(q);
- // p values of theta
- radon_dft.set_value(dft_ns::config_param::NUMBER_OF_TRANSFORMS, p);
- // Distances must be set for batched transforms. For real in-place DFTs with
- // unit stride, the distance in forward domain (wherein elements are real)
- // must be twice the distance in backward domain (wherein elements are
- // complex). Therefore, padding is required in forward domain (as accounted
- // for by the padded_matrix structure)
- radon_dft.set_value(dft_ns::config_param::FWD_DISTANCE, R.real_padded_width());
- radon_dft.set_value(dft_ns::config_param::BWD_DISTANCE, R.complex_padded_width());
- // Scaling factor for forward DFT (see eq. 1a above)
- radon_dft.set_value(dft_ns::config_param::FORWARD_SCALE, S / q);
- // oneMKL DFT descriptor operate in-place by default
- radon_dft.commit(R.queue);
- auto compute_radon_hat = dft_ns::compute_forward(radon_dft, R.data, {dep});
-/*
- Using R_data_c = reinterpret_cast(R.data), one has
- f_hat((r/S)*sin(theta(i)), (r/S)*cos(theta(i))) (eq. 1b)
- ~ exp(1i*M_PI*r*(1.0 - 1.0/q)) * R_data_c[i * R.complex_padded_width() + r]
- for 0 <= i < p and 0 <= r <= q/2 (upon completion of compute_radon_hat).
- Note that values of i in [p, 2*p) are known too, as the complex conjugates
- of their (i-p) counterparts (albeit not stored explicitly).
-
- The reconstructed image approaches (an elementary cell of) the periodic
- replication of f of period S along y and x, i.e., of
- +\infty +\infty
- \psi(y, x) = \sum \sum f(y - n_y*S, x - n_x*S).
- n_y=-\infty n_x=-\infty
- Given its periodic nature, \psi(y, x) can be expressed as the Fourier series
- +\infty +\infty
- \sum \sum \psi_hat[k_y, k_x]*exp(1i*2*M_PI*(k_y*y+k_x*x)/S),
- k_y=-\infty k_x=-\infty
- wherein
- \psi_hat[k_y, k_x] = (1/S^2)*f_hat(k_y/S, k_x/S).
-
- Given that f_hat(k_y/S, k_x/S) is unknown for hypot(k_x, k_y) > q/2, the
- reconstruction function g approximates \psi as its truncated Fourier series,
- i.e.,
- (S^2)*g(y,x) = \sum f_hat(k_y/S, k_x/S)*exp(1i*2*M_PI*(k_y*y+k_x*x)/S).
- [k_y,k_x],
- hypot(k_y, k_x) <= q/2
-
- Sampling the values of g at points (i*S/q, j*S/q) (0 <= i < q and 0 <= j < q,
- i and j are integers), one has
- G[i,j] = (1/S^2)*iDFT(G_HAT; i,j) (eq. 2)
- where G_HAT is a set of qxq (complex) values G_HAT[m][n] (0 <= m < q and
- 0 <= n < q, m and n are integers) such that
- G_HAT[m][n] = 0.0, if hypot(mm, nn) > 0.5*q;
- G_HAT[m][n] = f_hat(mm/S, nn/S) if hypot(mm, nn) < 0.5*q
- or if (hypot(mm, nn) == 0.5*q
- && mm != 0 && nn != 0)
- G_HAT[m][n] = 2*real_part(f_hat(mm/S, nn/S)), if (hypot(mm, nn) == 0.5*q
- && (mm != 0 || nn != 0)).
- where the notation "xx" represents an integer such that
- 0 <= |xx| <= q/2 and mod(x, q) == mod(xx, q)
- ('x' being either 'm' or 'n' above).
-
- The required values of G_HAT[m][n] are interpolated below from the known
- values stored in R (using eq. 1b).
- Note that G_HAT[q - m][q - n] = conj(G_HAT[m][n]) by construction, given
- that f_hat(-ksi_y, -ksi_x) = conj(f_hat(ksi_y, ksi_x)). This is consistent
- with the requirements for a well-defined backward real 2D DFT. Therefore, the
- values of G_HAT[m][n] do not need to be set/stored explicitly for n > q/2.
-*/
- std::cout << "\tStep 2 - Interpolating spectrum from polar to "
- << "cartesian grid" << std::endl;
- auto interp_ev = image.queue.submit([&](sycl::handler &cgh) {
- cgh.depends_on(compute_radon_hat);
- const complex_t *R_data_c = reinterpret_cast(R.data);
- complex_t *G_HAT = reinterpret_cast(image.data);
- const int R_data_c_ldw = R.complex_padded_width();
- const int G_HAT_ldw = image.complex_padded_width();
- cgh.parallel_for(
- sycl::range<2>(q, q/2 + 1),
- [=](sycl::item<2> item) {
- const int m = item.get_id(0);
- const int n = item.get_id(1);
- const int mm = m - (2*m > q ? q : 0);
- const int nn = n; // nn(n) == n since n never exceeds q/2
- const double abs_k = sycl::hypot(double(mm), double(nn));
- const double theta = (mm == 0 && nn == 0) ?
- 0.0 : sycl::atan2(double(mm), double(nn));
- // theta in [-0.5*M_PI, +0.5*M_PI]
- complex_t G_HAT_mn = complex_t(0.0, 0.0);
- if (abs_k <= 0.5*q) {
- const int r = static_cast(sycl::round(abs_k));
- const int i =
- static_cast(sycl::round(((theta + 0.5*M_PI)/M_PI)*p));
- // if i < 0 or i >= p (e.g., theta = 0.5*M_PI corresponds to
- // i == p), the value is mapped to the complex conjugate of
- // R_data_c[(i%p) * R_data_c_ldw + r] (e.g.,
- // theta = -0.5*M_PI if i == p).
- // Approximated values of
- // f_hat((r/S)*sin(theta(i)), (r/S)*cos(theta(i))):
- complex_t f_hat_value =
- R_data_c[(i% p) * R_data_c_ldw + r]*
- complex_t(sycl::cos(M_PI*r*(1.0 - 1.0/q)),
- sycl::sin(M_PI*r*(1.0 - 1.0/q))); // see eq. 1b
- if (i%(2*p) >= p)
- f_hat_value = std::conj(f_hat_value);
-
- G_HAT_mn = f_hat_value;
- if (2*r == q && (nn == 0 || mm == 0)) {
- G_HAT_mn *= 2.0;
- G_HAT_mn.imag(0.0);
- }
- // For a more convenient representation of the reconstructed
- // image, shift the target reference frame so that the
- // center of the reconstructed image is located at pixel
- // of indices (q/2, q/2):
- G_HAT_mn *= complex_t(sycl::cos(-2.0*M_PI*m*(q/2)/q),
- sycl::sin(-2.0*M_PI*m*(q/2)/q));
- // RHS is ((-1)^m, 0) if q is even
- G_HAT_mn *= complex_t(sycl::cos(-2.0*M_PI*n*(q/2)/q),
- sycl::sin(-2.0*M_PI*n*(q/2)/q));
- // RHS is ((-1)^n, 0) if q is even
- }
- G_HAT[m * G_HAT_ldw + n] = G_HAT_mn;
- });
- });
- std::cout << "\tStep 3 - In-place backward real 2D DFT of size "
- << q << "x" << q << std::endl;
- real_descriptor_t q_by_q_real_dft({q, q});
- // Default strides are set by default for in-place DFTs (consistently with
- // the implementation of padded_matrix)
- // Scaling factor for backward DFT (see eq. 2)
- q_by_q_real_dft.set_value(dft_ns::config_param::BACKWARD_SCALE, 1.0 / (S*S));
- q_by_q_real_dft.commit(image.queue);
- auto compute_g_values =
- dft_ns::compute_backward(q_by_q_real_dft, image.data, {interp_ev});
- compute_g_values.wait();
-}
-
-// Routine computing the mean global error and pixel-wise mean local errors in
-// the reconstructed image, when compared to the (gray-scale-converted)
-// original image. The mean error over an area A is defined as
-// (1.0/area(A)) integral |f_reconstruction - f_original| dA
-// A
-// where f_reconstruction (resp. f_original) is the piecewise constant function
-// of the gray-scale intensity in the reconstructed (resp. original) image.
-// Note: f_reconstruction and f_original are considered equal to 0.0 outside
-// the support of the original image.
-//
-// Inputs:
-// -------
-// S: scanning width used when sampling the Radon transform;
-// original: padded_matrix containing the original input image's pixel
-// values converted to gray-scale values;
-// reconstruction: padded_matrix containing the reconstructed image's pixel
-// gray-scale values.
-// Output:
-// -------
-// errors: padded_matrix of the same size as reconstruction, containing
-// the pixel-wise mean local errors in the pixels of the
-// reconstructed image.
-// Returns:
-// --------
-// The mean global error.
-double compute_errors(padded_matrix& errors,
- double S,
- const padded_matrix& original,
- const padded_matrix& reconstruction) {
- const int q = reconstruction.h;
- if (q <= 0 || q != reconstruction.w)
- die("invalid reconstruction considered for evaluating mean local errors");
- errors.allocate(q, q);
- if (!errors.data)
- die("cannot allocate memory for mean local errors");
- // the reconstructed image is an S-by-S image of q x q pixels
- const double pixel_length = S/q;
- const double max_overlap = sycl::min(pixel_length, in_pix_len);
- // dimensions of the original image:
- const double hh = in_pix_len*original.h;
- const double ww = in_pix_len*original.w;
-
- // helper routines to compute the mean local error in pixel (i,j) of the
- // reconstructed image
- const int supremum_io = original.h - 1;
- const int supremum_jo = original.w - 1;
- auto get_original_index = [=](double y, double x) {
- int io = static_cast(sycl::floor((0.5*hh + y) / in_pix_len));
- int jo = static_cast(sycl::floor((0.5*ww + x) / in_pix_len));
- io = sycl::max(0, sycl::min(io, supremum_io));
- jo = sycl::max(0, sycl::min(jo, supremum_jo));
- return std::pair(io, jo);
- };
- const double* reconstruction_data = reconstruction.data;
- const double* original_data = original.data;
- const int reconstruction_ldw = reconstruction.real_padded_width();
- const int original_ldw = original.real_padded_width();
- auto compute_mean_error_in_pixel = [=](int i, int j) {
- // Notes:
- // - pixel of index (i,j) in the reconstructed image covers the area of
- // points (y, x) such that
- // |y - (i - q/2)*pixel_length| <= 0.5*pixel_length
- // |x - (j - q/2)*pixel_length| <= 0.5*pixel_length
- // - pixel of index (io,jo) in the original image covers the area of
- // points (y, x) such that
- // io*in_pix_len <= y + 0.5*hh <= (io+1)*in_pix_len
- // jo*in_pix_len <= x + 0.5*ww <= (jo+1)*in_pix_len
- // in a common orthonormal reference frame centered on either image
- const double y_min = (i - q/2 - 0.5)*pixel_length;
- const double x_min = (j - q/2 - 0.5)*pixel_length;
- const double y_max = (i - q/2 + 0.5)*pixel_length;
- const double x_max = (j - q/2 + 0.5)*pixel_length;
- if (y_min > 0.5*hh || y_max < -0.5*hh ||
- x_min > 0.5*ww || x_max < -0.5*ww) {
- // out of scope of relevance, no intersection with the original
- // image
- return 0.0;
- }
- // find corresponding range of pixels in original image
- const auto io_jo_min = get_original_index(y_min, x_min);
- const auto io_jo_max = get_original_index(y_max, x_max);
- const double got = reconstruction_data[i*reconstruction_ldw + j];
- double mean_local_error = 0.0;
- // parse original image's pixels (io, jo) having a non-empty
- // intersection with the reconstructed image's pixel (i, j)
- for (int io = io_jo_min.first; io <= io_jo_max.first; io++) {
- const double yo_min = -0.5*hh + io*in_pix_len;
- const double yo_max = -0.5*hh + (io + 1)*in_pix_len;
- double overlap_y =
- sycl::min(y_max, yo_max) - sycl::max(y_min, yo_min);
- overlap_y = sycl::max(0.0, sycl::min(overlap_y, max_overlap));
- for (int jo = io_jo_min.second; jo <= io_jo_max.second; jo++) {
- const double xo_min = -0.5*ww + jo*in_pix_len;
- const double xo_max = -0.5*ww + (jo + 1)*in_pix_len;
- double overlap_x =
- sycl::min(x_max, xo_max) - sycl::max(x_min, xo_min);
- overlap_x = sycl::max(0.0, sycl::min(overlap_x, max_overlap));
- const double exp = original_data[io*original_ldw + jo];
- mean_local_error +=
- sycl::fabs(exp - got)*overlap_y*overlap_x;
- }
- }
- mean_local_error /= (pixel_length*pixel_length);
- return mean_local_error;
- };
- // compute the mean local errors and the mean global error
- double mean_error = 0.0;
- double* L1_error = sycl::malloc_shared(1, errors.queue);
- if (!L1_error)
- die("cannot allocate memory for mean global error");
- L1_error[0] = 0.0;
- errors.queue.submit([&](sycl::handler &cgh) {
- auto global_integral = sycl::reduction(L1_error, sycl::plus<>());
- double *local_error_data = errors.data;
- const int local_error_ldw = errors.real_padded_width();
- cgh.parallel_for(
- sycl::range<2>(q, q), global_integral,
- [=](sycl::item<2> item, auto& sum) {
- const int i = item.get_id(0);
- const int j = item.get_id(1);
- const double mean_err_ij = compute_mean_error_in_pixel(i, j);
- local_error_data[i*local_error_ldw + j] = mean_err_ij;
- sum += mean_err_ij * pixel_length * pixel_length;
- }
- );
- }).wait();
- mean_error = L1_error[0]/(hh*ww);
- sycl::free(L1_error, errors.queue);
- return mean_error;
-}
diff --git a/Libraries/oneMKL/computed_tomography/input.bmp b/Libraries/oneMKL/computed_tomography/input.bmp
deleted file mode 100644
index 0eabf65f9073f3c738b14a0bb1476a657afb4292..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 480054
zcmeI5d$3(qo#(M6NTu4Q`9r6>N=Qw&P?~DQ2g;yrgCLJKBErlFm&OV<))hkx3PLx^
zD@C-DK&VU#F$0kd6`Mzy*hm@z)3*qXC=;QCL2c|&8%m&gNkX3BjW+XH`@8SD>+ZeJ
zKKndw9`}4xE2s9^XP@71t?%CJdw##)-gkYEJ^2Iw^-cSPe;?rgJNUo!4f_9vef~J?
z&i+04hx_ak{*V28-T#b$5ikNqzz7%tBVYuKfDtePM!*Od0V7}pjDQg^0!F|H7y%<-
z1dMW&>>eR
z@#4kz-g_^;+M-eJZIf@M9qVGd?38h_v(l7CU4XRJ!Ic(z*$IFEQt;ldx4Uct$yLF;gQJ*|)2B~=!yDePPm6ziwBLUF!C`P0v<7jtou`F9Fez~Kr>*}%i4A!M
zGHGq*Pft4OB(DF0_qK1juwiUC3W5?8ZPECnKl&pGZFqPX;$n2IT)^{%-tvpUS6Ut4
z`+iOh11UIVT%7Al}E!vciwp&{dh5>xdLnK!ZQu|3W}&96WE|5zQXCPx8BOPYHZeYn~z{}_yO{-Jh^lR
zW=k#L2+prOxGy{THQ@xM9@(Z3?60&BQ5O!ThhP5kmn#qM`%ZA{`Z_FhyZm-iaqc@5
zHdsc0>B)5qIn)PK|;qX=aSl!#MUVlvJ(q{N^K-Ns$bX)<3;#)+`a9ua_5
zs8ql(eVLwdMlcunL2nyn?P+`kZxiIiQS@a4Y%2>>qI`6m8mq*2Nj81BLXHp|OWs
zDy^)UuUaAF{kstX!U<+gf5}SI9LgeusE@MtD87O~2txV`1=hG_P)R`)!1<^^i8TeK
zUM`Z#WRUc~=Kjd;1xeCxSeaP3}DSy^bwb3FJSt+y9)s>S1#KA&d~Jw
zp_X3r3(lzb9KNC_lK}<6RSg0}wuKqT+nOA$yX%CZm6LrO;l0M-?&T{Ib1u&M#_vlx
zXoSS-zs0BZzo9jl_@mv30B4Q5N@2dFY{NEGMvaB2gByQbz@!!Yqnys1;-`wMrJn2f
zl&UgUNULG)A$$cCYT!4JM9fzDGcK%T5@NU^U*e5cx3mYKC8k=s*nn
zz|!g~UF_$470xnV@LTU?_wrSfVV3W)a*p6D(@_)j_PS&EdE(cZ9H84Jf
zT?6C84ekqDOPa{FPMBZ{et@{32#e2BFd_d)A*EQDu=u$@D4j}B=_bKd>`Z-#g*B?~@!)i0xAPU#mb|zyqf<0sbqalHpZmT|
zN=QJJI%T^rBncIh`V}lQB0RPoh54#2L_T1bAyCdi(yN+yqg4i1*+Z^>>eZ=*!Z!1<
zGDO+!d_}L|(n4?JTX+oK=pqxWM5)zI?3bU90x?QV;M2>$vROvNpBgn8k@>3C`SSi<
zk3c=WH2evU-DcJ^uj4c?Z&32B{7q*v?%uz5uKYul*njde0?|0k$=fJb#UU0#BUr1K
zf8{)v6VbNPu3?(5Chv6Ha;FHC(}Xxl+2HX)n54N)MF^>d!Zs7XGGN>7d_}HTLzv8N
z9`SY`69CIk9TYI^{Vg0=bFa40J@Zuo5Wn4x2$b(}r_+I}x-xyM>2TYpBe?#{
zU*GL~MX*tG-+}mqxRJ-MdjHq9eoi1)4u{f{()+e-J0v4
zl1{^`I`+SOc^B+MXz}2|qzX1G|M_zP
z!yex@dF(2lqw)!bulOM&L2mmGR-_`wc~
z4(Y`M55NfpQsRrmMVHudf}^rYsL<7@q