blob: d668d9afc9a861a84fc8efc2e0eaa6c1bbb06e4d [file] [log] [blame]
load("@bazel_skylib//:bzl_library.bzl", "bzl_library")
exports_files(["LICENSE"])
cc_library(
name = "include",
hdrs = glob([
"include/**/*.h",
"include/**/*.hpp",
]),
includes = ["include"],
strip_include_prefix = "include",
)
_COMPUTE_LIBRARY_DEFINES = [
"ARM_COMPUTE_CPP_SCHEDULER",
"ARM_COMPUTE_CPU_ENABLED",
"ENABLE_NEON",
"ARM_COMPUTE_ENABLE_NEON",
"ENABLE_SVE",
"ARM_COMPUTE_ENABLE_SVE",
"ARM_COMPUTE_ENABLE_BF16",
"ARM_COMPUTE_ENABLE_I8MM",
"ARM_COMPUTE_ENABLE_SVEF32MM",
"ENABLE_FP32_KERNELS",
"ENABLE_QASYMM8_KERNELS",
"ENABLE_QASYMM8_SIGNED_KERNELS",
"ENABLE_QSYMM16_KERNELS",
"ENABLE_INTEGER_KERNELS",
"ENABLE_NHWC_KERNELS",
"ENABLE_NCHW_KERNELS",
]
cc_library(
name = "arm_compute_sve2",
srcs = glob(
[
"src/cpu/kernels/**/sve2/*.cpp",
"**/*.h",
"**/*.hpp",
"**/*.inl",
],
),
copts = ["-march=armv8.6-a+sve2"],
defines = _COMPUTE_LIBRARY_DEFINES + ["ARM_COMPUTE_ENABLE_SVE2"],
includes = [
"src/core/NEON/kernels/arm_conv",
"src/core/NEON/kernels/arm_gemm",
"src/core/NEON/kernels/assembly",
"src/core/cpu/kernels/assembly",
"src/cpu/kernels/assembly",
],
linkopts = ["-lpthread"],
deps = ["include"],
)
cc_library(
name = "arm_compute_sve",
srcs = glob(
[
"src/core/NEON/kernels/arm_gemm/kernels/sve_*/*.cpp",
"src/core/NEON/kernels/arm_conv/**/kernels/sve_*/*.cpp",
"src/core/NEON/kernels/arm_conv/depthwise/interleaves/sve_*.cpp",
"src/core/NEON/kernels/batchnormalization/impl/SVE/*.cpp",
"src/cpu/kernels/**/sve/*.cpp",
"**/*.h",
"**/*.hpp",
"**/*.inl",
],
) + [
"src/core/NEON/kernels/arm_gemm/transform-sve.cpp",
"src/core/NEON/kernels/arm_gemm/mergeresults-sve.cpp",
],
copts = ["-march=armv8.2-a+sve"],
defines = _COMPUTE_LIBRARY_DEFINES,
includes = [
"src/core/NEON/kernels/arm_conv",
"src/core/NEON/kernels/arm_gemm",
"src/core/NEON/kernels/assembly",
"src/core/cpu/kernels/assembly",
"src/cpu/kernels/assembly",
],
linkopts = ["-lpthread"],
deps = ["include"],
)
cc_library(
name = "arm_compute",
srcs = glob(
[
"src/common/**/*.cpp",
"src/core/*.cpp",
"src/core/CPP/kernels/*.cpp",
"src/core/helpers/*.cpp",
"src/core/utils/**/*.cpp",
"src/runtime/**/*.cpp",
"src/c/*.cpp",
"src/core/NEON/kernels/*.cpp",
"src/core/NEON/kernels/convolution/**/*.cpp",
"src/core/NEON/kernels/arm_gemm/kernels/a64_*/*.cpp",
"src/core/NEON/kernels/arm_conv/pooling/*.cpp",
"src/core/NEON/kernels/arm_conv/**/kernels/a64_*/*.cpp",
"src/core/NEON/kernels/arm_conv/depthwise/*.cpp",
"src/core/NEON/kernels/arm_conv/depthwise/interleaves/a64_*.cpp",
"src/core/NEON/kernels/arm_conv/depthwise/interleaves/generic*.cpp",
"src/core/NEON/kernels/batchnormalization/impl/NEON/*.cpp",
"src/cpu/*.cpp",
"src/cpu/kernels/*.cpp",
"src/cpu/kernels/*/generic/*.cpp",
"src/cpu/operators/**/*.cpp",
"src/cpu/utils/*.cpp",
"src/cpu/kernels/internal/*.cpp",
"src/cpu/kernels/**/neon/*.cpp",
"src/cpu/kernels/**/nchw/*.cpp",
"src/core/NEON/kernels/arm_gemm/*.cpp",
"**/*.h",
"**/*.hpp",
"**/*.inl",
],
exclude = [
"src/core/utils/logging/**",
"src/core/TracePoint.cpp",
"src/core/NEON/kernels/arm_gemm/mergeresults-sve.cpp",
"src/core/NEON/kernels/arm_gemm/transform-sve.cpp",
"src/runtime/CL/**",
"src/gpu/**",
],
) + [
"src/core/CPP/CPPTypes.cpp",
"src/c/operators/AclActivation.cpp",
"src/core/NEON/kernels/arm_conv/pooling/kernels/cpp_nhwc_1x1_stride_any_depthfirst/generic.cpp",
"src/core/NEON/kernels/arm_conv/depthwise/interleaves/8b_mla.cpp",
"src/core/NEON/kernels/arm_conv/addressing.cpp",
],
hdrs = glob([
"src/core/NEON/kernels/**/*.h",
"src/core/NEON/kernels/**/*.hpp",
"arm_compute/runtime/**/*.h",
"arm_compute/runtime/*.h",
"arm_compute/core/**/*.h",
"**/*.inl",
]) + [
"arm_compute_version.embed",
],
copts = ["-march=armv8-a"],
defines = _COMPUTE_LIBRARY_DEFINES,
includes = [
"arm_compute/runtime",
"src/core/NEON/kernels/assembly",
"src/core/NEON/kernels/convolution/common",
"src/core/NEON/kernels/convolution/winograd",
"src/core/cpu/kernels/assembly",
"src/cpu/kernels/assembly",
],
linkopts = ["-lpthread"],
visibility = ["//visibility:public"],
deps = [
"arm_compute_sve",
"arm_compute_sve2",
"include",
],
)
config_setting(
name = "build_with_acl",
define_values = {
"build_with_acl": "true",
},
visibility = ["//visibility:public"],
)
bzl_library(
name = "build_defs_bzl",
srcs = ["build_defs.bzl"],
visibility = ["//visibility:public"],
)