diff --git a/dev/bazel/dal.bzl b/dev/bazel/dal.bzl index 3d5e016410a..7e45a431dd5 100644 --- a/dev/bazel/dal.bzl +++ b/dev/bazel/dal.bzl @@ -159,7 +159,8 @@ def dal_test(name, hdrs=[], srcs=[], dal_deps=[], dal_test_deps=[], extra_deps=[], host_hdrs=[], host_srcs=[], host_deps=[], dpc_hdrs=[], dpc_srcs=[], dpc_deps=[], compile_as=[ "c++", "dpc++" ], framework="catch2", data=[], tags=[], private=False, - mpi=False, ccl=False, mpi_ranks=0, args=[], **kwargs): + mpi=False, ccl=False, mpi_ranks=0, args=[], + use_onedal_release_libs=True, **kwargs): # TODO: Check `compile_as` parameter # TODO: Refactor this rule once decision on the tests structure is made if not framework in ["catch2", "none"]: @@ -179,7 +180,7 @@ def dal_test(name, hdrs=[], srcs=[], dal_deps=[], dal_test_deps=[], compile_as = compile_as, dal_deps = ( dal_test_deps + - _test_link_mode_deps(dal_deps) + _test_link_mode_deps(dal_deps, use_onedal_release_libs) ) + ([ "@onedal//cpp/oneapi/dal/test/engine:common", "@onedal//cpp/oneapi/dal/test/engine:catch2_main", @@ -289,24 +290,26 @@ def dal_collect_parameters(name, root, modules=[], target="parameters", dal_deps **kwargs, ) -def dal_example(name, dal_deps=[], **kwargs): +def dal_example(name, dal_deps=[], use_onedal_release_libs=True, is_daal=False, **kwargs): dal_test( name = name, dal_deps = [ "@onedal//cpp/oneapi/dal:core", "@onedal//cpp/oneapi/dal/io", - ] + dal_deps, + ] + dal_deps if not is_daal else dal_deps, + use_onedal_release_libs = use_onedal_release_libs, framework = "none", **kwargs, ) -def dal_example_suite(name, srcs, **kwargs): +def dal_example_suite(name, srcs, is_daal=False, **kwargs): suite_deps = [] for src in srcs: _, alg_name, src_file = src.rsplit('/', 2) example_name, _ = paths.split_extension(src_file) dal_example( name = example_name, + is_daal = is_daal, srcs = [ src ], **kwargs, ) @@ -316,10 +319,11 @@ def dal_example_suite(name, srcs, **kwargs): tests = suite_deps, ) -def dal_algo_example_suite(algos, dal_deps=[], **kwargs): +def dal_algo_example_suite(algos, dal_deps=[], is_daal=False, **kwargs): for algo in algos: dal_example_suite( name = algo, + is_daal = is_daal, srcs = native.glob(["source/{}/*.cpp".format(algo)]), dal_deps = dal_deps + [ "@onedal//cpp/oneapi/dal/algo:{}".format(algo), @@ -327,15 +331,15 @@ def dal_algo_example_suite(algos, dal_deps=[], **kwargs): **kwargs, ) -def _test_link_mode_deps(dal_deps): +def _test_link_mode_deps(dal_deps, use_onedal_release_libs=True): return _select({ "@config//:test_link_mode_dev": dal_deps, "@config//:test_link_mode_release_static": [ "@onedal_release//:onedal_static", - ], + ] if use_onedal_release_libs else [], "@config//:test_link_mode_release_dynamic": [ "@onedal_release//:onedal_dynamic", - ], + ] if use_onedal_release_libs else [], }) def _test_deps_on_daal(): @@ -594,3 +598,21 @@ def _expand_select(deps): else: expanded += [dep] return expanded + +def daal_example_suite(name, srcs, **kwargs): + dal_example_suite( + name = name, + srcs = srcs, + use_onedal_release_libs = False, + is_daal = True, + **kwargs, + ) + +def daal_algo_example_suite(algos, dal_deps=[], **kwargs): + dal_algo_example_suite( + algos = algos, + dal_deps = dal_deps, + use_onedal_release_libs = False, + is_daal = True, + **kwargs, + ) diff --git a/dev/bazel/deps/onedal.bzl b/dev/bazel/deps/onedal.bzl index 807ee94b5d5..ff75399c74a 100644 --- a/dev/bazel/deps/onedal.bzl +++ b/dev/bazel/deps/onedal.bzl @@ -31,11 +31,23 @@ onedal_repo = repos.prebuilt_libs_repo_rule( # Dynamic "lib/intel64/libonedal_core.so", + "lib/intel64/libonedal_core.so.3", + "lib/intel64/libonedal_core.so.3.0", "lib/intel64/libonedal_thread.so", + "lib/intel64/libonedal_thread.so.3", + "lib/intel64/libonedal_thread.so.3.0", "lib/intel64/libonedal.so", + "lib/intel64/libonedal.so.3", + "lib/intel64/libonedal.so.3.0", "lib/intel64/libonedal_dpc.so", + "lib/intel64/libonedal_dpc.so.3", + "lib/intel64/libonedal_dpc.so.3.0", "lib/intel64/libonedal_parameters.so", + "lib/intel64/libonedal_parameters.so.3", + "lib/intel64/libonedal_parameters.so.3.0", "lib/intel64/libonedal_parameters_dpc.so", + "lib/intel64/libonedal_parameters_dpc.so.3", + "lib/intel64/libonedal_parameters_dpc.so.3.0", ], build_template = "@onedal//dev/bazel/deps:onedal.tpl.BUILD", ) diff --git a/dev/bazel/deps/onedal.tpl.BUILD b/dev/bazel/deps/onedal.tpl.BUILD index 12ebfa094bf..d190d0cd20a 100644 --- a/dev/bazel/deps/onedal.tpl.BUILD +++ b/dev/bazel/deps/onedal.tpl.BUILD @@ -59,9 +59,9 @@ cc_library( cc_library( name = "core_dynamic", - srcs = [ - "lib/intel64/libonedal_core.so", - ], + srcs = glob([ + "lib/intel64/libonedal_core.so*", + ]), deps = [ ":headers", # TODO: Currently vml_ipp lib depends on TBB, but it shouldn't @@ -72,9 +72,9 @@ cc_library( cc_library( name = "thread_dynamic", - srcs = [ - "lib/intel64/libonedal_thread.so", - ], + srcs = glob([ + "lib/intel64/libonedal_thread.so*", + ]), deps = [ ":headers", "@tbb//:tbb_binary", @@ -84,10 +84,10 @@ cc_library( cc_library( name = "onedal_dynamic", - srcs = [ - "lib/intel64/libonedal.so", - "lib/intel64/libonedal_parameters.so", - ], + srcs = glob([ + "lib/intel64/libonedal.so*", + "lib/intel64/libonedal_parameters.so*", + ]), deps = [ ":headers", ], @@ -95,10 +95,10 @@ cc_library( cc_library( name = "onedal_dynamic_dpc", - srcs = [ - "lib/intel64/libonedal_dpc.so", - "lib/intel64/libonedal_parameters_dpc.so", - ], + srcs = glob([ + "lib/intel64/libonedal_dpc.so*", + "lib/intel64/libonedal_parameters_dpc.so*", + ]), deps = [ ":headers", "@mkl//:mkl_dpc", diff --git a/examples/daal/cpp/BUILD b/examples/daal/cpp/BUILD index a34583fc9e4..0f494c8c1ea 100644 --- a/examples/daal/cpp/BUILD +++ b/examples/daal/cpp/BUILD @@ -1,7 +1,7 @@ load("@onedal//dev/bazel:dal.bzl", "dal_module", - "dal_example_suite", - "dal_algo_example_suite", + "daal_example_suite", + "daal_algo_example_suite", ) dal_module( @@ -18,7 +18,7 @@ _DATA_DEPS = [ "@onedal//examples/daal:data", ] -dal_example_suite( +daal_example_suite( name = "association_rules", compile_as = [ "c++" ], srcs = glob(["source/association_rules/*.cpp"]), @@ -29,7 +29,7 @@ dal_example_suite( extra_deps = _TEST_DEPS ) -dal_example_suite( +daal_example_suite( name = "boosting", compile_as = [ "c++" ], srcs = glob(["source/boosting/*.cpp"]), @@ -42,7 +42,7 @@ dal_example_suite( extra_deps = _TEST_DEPS ) -dal_example_suite( +daal_example_suite( name = "cholesky", compile_as = [ "c++" ], srcs = glob(["source/cholesky/*.cpp"]), @@ -53,7 +53,7 @@ dal_example_suite( extra_deps = _TEST_DEPS ) -dal_example_suite( +daal_example_suite( name = "datasource", compile_as = [ "c++" ], srcs = glob(["source/datasource/*.cpp"]), @@ -65,7 +65,7 @@ dal_example_suite( ) # TODO: investigate the issue with excluded example -dal_example_suite( +daal_example_suite( name = "decision_forest", compile_as = [ "c++" ], srcs = glob(["source/decision_forest/*.cpp"], @@ -82,7 +82,7 @@ dal_example_suite( ) # TODO: investigate the issue with excluded example -dal_example_suite( +daal_example_suite( name = "decision_tree", compile_as = [ "c++" ], srcs = glob(["source/decision_tree/*.cpp"], @@ -99,7 +99,7 @@ dal_example_suite( extra_deps = _TEST_DEPS ) -dal_example_suite( +daal_example_suite( name = "distance", compile_as = [ "c++" ], srcs = glob(["source/distance/*.cpp"]), @@ -111,7 +111,7 @@ dal_example_suite( extra_deps = _TEST_DEPS ) -dal_example_suite( +daal_example_suite( name = "distributions", compile_as = [ "c++" ], srcs = glob(["source/distributions/*.cpp"]), @@ -122,7 +122,7 @@ dal_example_suite( extra_deps = _TEST_DEPS ) -dal_example_suite( +daal_example_suite( name = "elastic_net", compile_as = [ "c++" ], srcs = glob(["source/elastic_net/*.cpp"]), @@ -135,7 +135,7 @@ dal_example_suite( extra_deps = _TEST_DEPS ) -dal_example_suite( +daal_example_suite( name = "em", compile_as = [ "c++" ], srcs = glob(["source/em/*.cpp"]), @@ -147,7 +147,7 @@ dal_example_suite( extra_deps = _TEST_DEPS ) -dal_example_suite( +daal_example_suite( name = "enable_thread_pinning_example", compile_as = [ "c++" ], srcs = glob(["source/enable_thread_pinning/*.cpp"]), @@ -158,7 +158,7 @@ dal_example_suite( extra_deps = _TEST_DEPS ) -dal_example_suite( +daal_example_suite( name = "gradient_boosted_trees", compile_as = [ "c++" ], srcs = glob(["source/gradient_boosted_trees/*.cpp"]), @@ -171,7 +171,7 @@ dal_example_suite( extra_deps = _TEST_DEPS ) -dal_example_suite( +daal_example_suite( name = "implicit_als", compile_as = [ "c++" ], srcs = glob(["source/implicit_als/*.cpp"]), @@ -182,7 +182,7 @@ dal_example_suite( extra_deps = _TEST_DEPS ) -dal_example_suite( +daal_example_suite( name = "k_nearest_neighbors", compile_as = [ "c++" ], srcs = glob(["source/k_nearest_neighbors/*.cpp"]), @@ -193,7 +193,7 @@ dal_example_suite( extra_deps = _TEST_DEPS ) -dal_example_suite( +daal_example_suite( name = "kernel_function", compile_as = [ "c++" ], srcs = glob(["source/kernel_function/*.cpp"]), @@ -204,7 +204,7 @@ dal_example_suite( extra_deps = _TEST_DEPS ) -dal_example_suite( +daal_example_suite( name = "lasso_regression", compile_as = [ "c++" ], srcs = glob(["source/lasso_regression/*.cpp"]), @@ -217,7 +217,7 @@ dal_example_suite( extra_deps = _TEST_DEPS ) -dal_example_suite( +daal_example_suite( name = "logistic_regression", compile_as = [ "c++" ], srcs = glob(["source/logistic_regression/*.cpp"]), @@ -229,7 +229,7 @@ dal_example_suite( extra_deps = _TEST_DEPS ) -dal_example_suite( +daal_example_suite( name = "moments", compile_as = [ "c++" ], srcs = glob(["source/moments/*.cpp"]), @@ -241,7 +241,7 @@ dal_example_suite( ) # TODO: investigate the issue with excluded example -dal_example_suite( +daal_example_suite( name = "naive_bayes", compile_as = [ "c++" ], srcs = glob(["source/naive_bayes/*.cpp"], @@ -255,7 +255,7 @@ dal_example_suite( # TODO: investigate the issue with excluded example # Both examples are failing, its the reason of disabling this test -# dal_example_suite( +# daal_example_suite( # name = "normalization", # compile_as = [ "c++" ], # srcs = glob(["source/normalization/*.cpp"], @@ -271,7 +271,7 @@ dal_example_suite( # ) # TODO: investigate the issue with excluded example -dal_example_suite( +daal_example_suite( name = "optimization_solvers", compile_as = [ "c++" ], hdrs = glob(["source/optimization_solvers/*.h"]), @@ -293,7 +293,7 @@ dal_example_suite( ) # TODO: investigate the issue with excluded example -dal_example_suite( +daal_example_suite( name = "outlier_detection", compile_as = [ "c++" ], srcs = glob(["source/outlier_detection/*.cpp"]), @@ -306,7 +306,7 @@ dal_example_suite( extra_deps = _TEST_DEPS ) -dal_example_suite( +daal_example_suite( name = "pca_transform", compile_as = [ "c++" ], srcs = glob(["source/pca_transform/*.cpp"]), @@ -318,7 +318,7 @@ dal_example_suite( extra_deps = _TEST_DEPS ) -dal_example_suite( +daal_example_suite( name = "pivoted_qr", compile_as = [ "c++" ], srcs = glob(["source/pivoted_qr/*.cpp"]), @@ -329,7 +329,7 @@ dal_example_suite( extra_deps = _TEST_DEPS ) -dal_example_suite( +daal_example_suite( name = "qr", compile_as = [ "c++" ], srcs = glob(["source/qr/*.cpp"]), @@ -340,7 +340,7 @@ dal_example_suite( extra_deps = _TEST_DEPS ) -dal_example_suite( +daal_example_suite( name = "quantiles", compile_as = [ "c++" ], srcs = glob(["source/quantiles/*.cpp"]), @@ -351,7 +351,7 @@ dal_example_suite( extra_deps = _TEST_DEPS ) -dal_example_suite( +daal_example_suite( name = "ridge_regression", compile_as = [ "c++" ], srcs = glob(["source/ridge_regression/*.cpp"]), @@ -362,7 +362,7 @@ dal_example_suite( extra_deps = _TEST_DEPS ) -dal_example_suite( +daal_example_suite( name = "serialization_example", compile_as = [ "c++" ], srcs = glob(["source/serialization/*.cpp"]), @@ -370,7 +370,7 @@ dal_example_suite( extra_deps = _TEST_DEPS ) -dal_example_suite( +daal_example_suite( name = "services_examples", compile_as = [ "c++" ], srcs = glob(["source/services/*.cpp"]), @@ -378,7 +378,7 @@ dal_example_suite( extra_deps = _TEST_DEPS ) -dal_example_suite( +daal_example_suite( name = "set_number_of_threads_example", compile_as = [ "c++" ], srcs = glob(["source/set_number_of_threads/*.cpp"]), @@ -389,7 +389,7 @@ dal_example_suite( extra_deps = _TEST_DEPS ) -dal_example_suite( +daal_example_suite( name = "sorting", compile_as = [ "c++" ], srcs = glob(["source/sorting/*.cpp"]), @@ -400,7 +400,7 @@ dal_example_suite( extra_deps = _TEST_DEPS ) -dal_example_suite( +daal_example_suite( name = "stump", compile_as = [ "c++" ], srcs = glob(["source/stump/*.cpp"]), @@ -411,7 +411,7 @@ dal_example_suite( extra_deps = _TEST_DEPS ) -dal_example_suite( +daal_example_suite( name = "svd", compile_as = [ "c++" ], srcs = glob(["source/svd/*.cpp"]), @@ -423,7 +423,7 @@ dal_example_suite( ) # TODO: investigate the issue with excluded example -dal_example_suite( +daal_example_suite( name = "svm", compile_as = [ "c++" ], srcs = glob(["source/svm/*.cpp"], @@ -437,7 +437,7 @@ dal_example_suite( extra_deps = _TEST_DEPS ) -dal_algo_example_suite( +daal_algo_example_suite( algos = [ "covariance", "dbscan",