From 4139a34b1f113cd2227f972cd3504a1ce9fca2a0 Mon Sep 17 00:00:00 2001 From: Alexandr-Solovev Date: Thu, 25 Apr 2024 07:12:00 -0700 Subject: [PATCH 1/4] init build for bazel --- BUILD | 20 +++++++++---------- cpp/oneapi/dal/BUILD | 3 +++ .../toolchains/cc_toolchain_config_lnx.bzl | 1 + 3 files changed, 14 insertions(+), 10 deletions(-) diff --git a/BUILD b/BUILD index 1e40ec7a410..2d38c991ecd 100644 --- a/BUILD +++ b/BUILD @@ -14,6 +14,11 @@ release( hdrs = [ "@onedal//cpp/daal:kernel_defines" ], add_prefix = "services/internal", ), + //Necessary to avoid externals headers usage issue + release_include( + hdrs = [ "@micromkl_dpc//:headers" ], + skip_prefix = "external/micromkl_dpc/include/", + ), release_include( hdrs = [ "@onedal//cpp/oneapi/dal:public_includes" ], skip_prefix = "cpp", @@ -28,14 +33,9 @@ release( "@onedal//cpp/oneapi/dal:dynamic", "@onedal//cpp/oneapi/dal:static_parameters", "@onedal//cpp/oneapi/dal:dynamic_parameters", - ] + select({ - "@config//:release_dpc_enabled": [ - "@onedal//cpp/oneapi/dal:static_dpc", - "@onedal//cpp/oneapi/dal:dynamic_dpc", - "@onedal//cpp/oneapi/dal:static_parameters_dpc", - "@onedal//cpp/oneapi/dal:dynamic_parameters_dpc", - # TODO: Add onedal_sycl - ], - "//conditions:default": [], - }), + "@onedal//cpp/oneapi/dal:static_dpc", + "@onedal//cpp/oneapi/dal:dynamic_dpc", + "@onedal//cpp/oneapi/dal:static_parameters_dpc", + "@onedal//cpp/oneapi/dal:dynamic_parameters_dpc", + ] ) diff --git a/cpp/oneapi/dal/BUILD b/cpp/oneapi/dal/BUILD index 0bd5a48269d..64a47617b0e 100644 --- a/cpp/oneapi/dal/BUILD +++ b/cpp/oneapi/dal/BUILD @@ -67,6 +67,9 @@ dal_public_includes( "@onedal//cpp/oneapi/dal/detail/ccl", "@onedal//cpp/oneapi/dal/algo:parameters", ], + dpc_deps = [ + "@micromkl_dpc//:headers", + ], ) dal_static_lib( diff --git a/dev/bazel/toolchains/cc_toolchain_config_lnx.bzl b/dev/bazel/toolchains/cc_toolchain_config_lnx.bzl index 8df1a194adc..576a9efbafd 100644 --- a/dev/bazel/toolchains/cc_toolchain_config_lnx.bzl +++ b/dev/bazel/toolchains/cc_toolchain_config_lnx.bzl @@ -1159,6 +1159,7 @@ def _impl(ctx): ctx = ctx, features = features, action_configs = action_configs, + #add absolut path for compiler cxx_builtin_include_directories = ctx.attr.cxx_builtin_include_directories, toolchain_identifier = ctx.attr.toolchain_identifier, host_system_name = ctx.attr.host_system_name, From cb41259c3a4c41802f8a0819c6941b4cd7a7d706 Mon Sep 17 00:00:00 2001 From: Alexandr-Solovev Date: Fri, 26 Apr 2024 03:03:05 -0700 Subject: [PATCH 2/4] fixes --- .bazelrc | 3 +++ BUILD | 15 +++++++++------ cpp/oneapi/dal/BUILD | 3 --- dev/bazel/toolchains/cc_toolchain_config_lnx.bzl | 1 - 4 files changed, 12 insertions(+), 10 deletions(-) diff --git a/.bazelrc b/.bazelrc index 444bbe4b947..9b94844cf8c 100644 --- a/.bazelrc +++ b/.bazelrc @@ -16,6 +16,9 @@ build --flag_alias=device=@config//:device build --flag_alias=cpu=@config//:cpu build --flag_alias=enable_assert=@config//:enable_assert +#Build oneDAL via bazel +build --release_dpc + # Always pass this env variable to test rules, because SYCL # OpenCL backend uses it to determine available devices test --test_env=OCL_ICD_FILENAMES \ diff --git a/BUILD b/BUILD index 2d38c991ecd..43966270e59 100644 --- a/BUILD +++ b/BUILD @@ -14,7 +14,6 @@ release( hdrs = [ "@onedal//cpp/daal:kernel_defines" ], add_prefix = "services/internal", ), - //Necessary to avoid externals headers usage issue release_include( hdrs = [ "@micromkl_dpc//:headers" ], skip_prefix = "external/micromkl_dpc/include/", @@ -33,9 +32,13 @@ release( "@onedal//cpp/oneapi/dal:dynamic", "@onedal//cpp/oneapi/dal:static_parameters", "@onedal//cpp/oneapi/dal:dynamic_parameters", - "@onedal//cpp/oneapi/dal:static_dpc", - "@onedal//cpp/oneapi/dal:dynamic_dpc", - "@onedal//cpp/oneapi/dal:static_parameters_dpc", - "@onedal//cpp/oneapi/dal:dynamic_parameters_dpc", - ] + ] + select({ + "@config//:release_dpc_enabled": [ + "@onedal//cpp/oneapi/dal:static_dpc", + "@onedal//cpp/oneapi/dal:dynamic_dpc", + "@onedal//cpp/oneapi/dal:static_parameters_dpc", + "@onedal//cpp/oneapi/dal:dynamic_parameters_dpc", + ], + "//conditions:default": [], + }), ) diff --git a/cpp/oneapi/dal/BUILD b/cpp/oneapi/dal/BUILD index 64a47617b0e..0bd5a48269d 100644 --- a/cpp/oneapi/dal/BUILD +++ b/cpp/oneapi/dal/BUILD @@ -67,9 +67,6 @@ dal_public_includes( "@onedal//cpp/oneapi/dal/detail/ccl", "@onedal//cpp/oneapi/dal/algo:parameters", ], - dpc_deps = [ - "@micromkl_dpc//:headers", - ], ) dal_static_lib( diff --git a/dev/bazel/toolchains/cc_toolchain_config_lnx.bzl b/dev/bazel/toolchains/cc_toolchain_config_lnx.bzl index 576a9efbafd..8df1a194adc 100644 --- a/dev/bazel/toolchains/cc_toolchain_config_lnx.bzl +++ b/dev/bazel/toolchains/cc_toolchain_config_lnx.bzl @@ -1159,7 +1159,6 @@ def _impl(ctx): ctx = ctx, features = features, action_configs = action_configs, - #add absolut path for compiler cxx_builtin_include_directories = ctx.attr.cxx_builtin_include_directories, toolchain_identifier = ctx.attr.toolchain_identifier, host_system_name = ctx.attr.host_system_name, From 87eb178abf4f61b0c1f3d1503e2107220a3f4b08 Mon Sep 17 00:00:00 2001 From: Alexandr-Solovev Date: Fri, 26 Apr 2024 04:01:33 -0700 Subject: [PATCH 3/4] vars sh adding draft --- dev/bazel/release.bzl | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/dev/bazel/release.bzl b/dev/bazel/release.bzl index 9d785b20f12..8d11439dac8 100644 --- a/dev/bazel/release.bzl +++ b/dev/bazel/release.bzl @@ -82,12 +82,28 @@ def _copy_lib(ctx, prefix): dst_files.append(dst_file) return dst_files +#draft version for env script, its necessary to do it autogenerated +def _demo_rule_impl(ctx): + out = ctx.actions.declare_file("vars.sh") + ctx.actions.write( + output=out, + content="""\ + export CMAKE_PREFIX_PATH="`pwd`/daal/latest":$CMAKE_PREFIX_PATH + export CPATH="`pwd`/daal/latest/include":$CPATH + export DALROOT="`pwd`/daal/latest" + export LD_LIBRARY_PATH="`pwd`/daal/latest/lib/intel64":$LD_LIBRARY_PATH + export LIBRARY_PATH="`pwd`/daal/latest/lib/intel64":$LIBRARY_PATH + """, + ) + return [out] + def _copy_to_release_impl(ctx): extra_toolchain = ctx.toolchains["@onedal//dev/bazel/toolchains:extra"] prefix = ctx.attr.name + "/daal/latest" files = [] files += _copy_include(ctx, prefix) files += _copy_lib(ctx, prefix) + files += _demo_rule_impl(ctx) return [DefaultInfo(files=depset(files))] _release = rule( From 9a46017a6877abab09a0620579213f7bb568ac06 Mon Sep 17 00:00:00 2001 From: Alexandr-Solovev Date: Fri, 26 Apr 2024 05:07:23 -0700 Subject: [PATCH 4/4] fix for env --- BUILD | 2 ++ dev/bazel/release.bzl | 31 +++++++++++++++++++++++-------- 2 files changed, 25 insertions(+), 8 deletions(-) diff --git a/BUILD b/BUILD index 43966270e59..6a9f62c54fd 100644 --- a/BUILD +++ b/BUILD @@ -1,6 +1,7 @@ load("@onedal//dev/bazel:release.bzl", "release", "release_include", + "release_env" ) release( @@ -41,4 +42,5 @@ release( ], "//conditions:default": [], }), + env = release_env() ) diff --git a/dev/bazel/release.bzl b/dev/bazel/release.bzl index 8d11439dac8..592ae81211d 100644 --- a/dev/bazel/release.bzl +++ b/dev/bazel/release.bzl @@ -82,17 +82,27 @@ def _copy_lib(ctx, prefix): dst_files.append(dst_file) return dst_files +def _copy_env(ctx, prefix): + lib_prefix = paths.join(prefix, "env") + env_files = env_scripts_generator(ctx) + dst_files = [] + for lib in env_files: + dst_path = paths.join(lib_prefix, lib.basename) + dst_file = _copy(ctx, lib, dst_path) + dst_files.append(dst_file) + return dst_files + #draft version for env script, its necessary to do it autogenerated -def _demo_rule_impl(ctx): +def env_scripts_generator(ctx): out = ctx.actions.declare_file("vars.sh") ctx.actions.write( output=out, content="""\ - export CMAKE_PREFIX_PATH="`pwd`/daal/latest":$CMAKE_PREFIX_PATH - export CPATH="`pwd`/daal/latest/include":$CPATH - export DALROOT="`pwd`/daal/latest" - export LD_LIBRARY_PATH="`pwd`/daal/latest/lib/intel64":$LD_LIBRARY_PATH - export LIBRARY_PATH="`pwd`/daal/latest/lib/intel64":$LIBRARY_PATH + export CMAKE_PREFIX_PATH="`pwd`/bazel-bin/release/daal/latest":$CMAKE_PREFIX_PATH + export CPATH="`pwd`/bazel-bin/release/daal/latest/include":$CPATH + export DALROOT="`pwd`/bazel-bin/release/daal/latest" + export LD_LIBRARY_PATH="`pwd`/bazel-bin/release/daal/latest/lib/intel64":$LD_LIBRARY_PATH + export LIBRARY_PATH="`pwd`/bazel-bin/release/daal/latest/lib/intel64":$LIBRARY_PATH """, ) return [out] @@ -103,7 +113,7 @@ def _copy_to_release_impl(ctx): files = [] files += _copy_include(ctx, prefix) files += _copy_lib(ctx, prefix) - files += _demo_rule_impl(ctx) + files += _copy_env(ctx, prefix) return [DefaultInfo(files=depset(files))] _release = rule( @@ -113,6 +123,7 @@ _release = rule( "include_prefix": attr.string_list(), "include_skip_prefix": attr.string_list(), "lib": attr.label_list(allow_files=True), + "env": attr.label_list(allow_files=True), }, toolchains = [ "@onedal//dev/bazel/toolchains:extra" @@ -146,7 +157,10 @@ headers_filter = rule( def release_include(hdrs, skip_prefix="", add_prefix=""): return (hdrs, add_prefix, skip_prefix) -def release(name, include, lib): +def release_env(): + return () + +def release(name, include, lib, env): rule_include = [] rule_include_prefix = [] rule_include_skip_prefix = [] @@ -161,4 +175,5 @@ def release(name, include, lib): include_prefix = rule_include_prefix, include_skip_prefix = rule_include_skip_prefix, lib = lib, + env = env, )