1load("@bazel_skylib//:bzl_library.bzl", "bzl_library") 2 3exports_files(["LICENSE"]) 4 5cc_library( 6 name = "include", 7 hdrs = glob([ 8 "include/**/*.h", 9 "include/**/*.hpp", 10 ]), 11 includes = ["include"], 12 strip_include_prefix = "include", 13) 14 15_COMPUTE_LIBRARY_DEFINES = [ 16 "ARM_COMPUTE_CPP_SCHEDULER", 17 "ARM_COMPUTE_CPU_ENABLED", 18 "ENABLE_NEON", 19 "ARM_COMPUTE_ENABLE_NEON", 20 "ENABLE_SVE", 21 "ARM_COMPUTE_ENABLE_SVE", 22 "ARM_COMPUTE_ENABLE_BF16", 23 "ARM_COMPUTE_ENABLE_I8MM", 24 "ARM_COMPUTE_ENABLE_SVEF32MM", 25 "ENABLE_FP32_KERNELS", 26 "ENABLE_QASYMM8_KERNELS", 27 "ENABLE_QASYMM8_SIGNED_KERNELS", 28 "ENABLE_QSYMM16_KERNELS", 29 "ENABLE_INTEGER_KERNELS", 30 "ENABLE_NHWC_KERNELS", 31 "ENABLE_NCHW_KERNELS", 32] 33 34cc_library( 35 name = "arm_compute_sve2", 36 srcs = glob( 37 [ 38 "src/cpu/kernels/**/sve2/*.cpp", 39 "**/*.h", 40 "**/*.hpp", 41 "**/*.inl", 42 ], 43 ), 44 copts = ["-march=armv8.6-a+sve2"], 45 defines = _COMPUTE_LIBRARY_DEFINES + ["ARM_COMPUTE_ENABLE_SVE2"], 46 includes = [ 47 "src/core/NEON/kernels/arm_conv", 48 "src/core/NEON/kernels/arm_gemm", 49 "src/core/NEON/kernels/assembly", 50 "src/core/cpu/kernels/assembly", 51 "src/cpu/kernels/assembly", 52 ], 53 linkopts = ["-lpthread"], 54 deps = ["include"], 55) 56 57cc_library( 58 name = "arm_compute_sve", 59 srcs = glob( 60 [ 61 "src/core/NEON/kernels/arm_gemm/kernels/sve_*/*.cpp", 62 "src/core/NEON/kernels/arm_conv/**/kernels/sve_*/*.cpp", 63 "src/core/NEON/kernels/arm_conv/depthwise/interleaves/sve_*.cpp", 64 "src/core/NEON/kernels/batchnormalization/impl/SVE/*.cpp", 65 "src/cpu/kernels/**/sve/*.cpp", 66 "**/*.h", 67 "**/*.hpp", 68 "**/*.inl", 69 ], 70 ) + [ 71 "src/core/NEON/kernels/arm_gemm/transform-sve.cpp", 72 "src/core/NEON/kernels/arm_gemm/mergeresults-sve.cpp", 73 ], 74 copts = ["-march=armv8.2-a+sve"], 75 defines = _COMPUTE_LIBRARY_DEFINES, 76 includes = [ 77 "src/core/NEON/kernels/arm_conv", 78 "src/core/NEON/kernels/arm_gemm", 79 "src/core/NEON/kernels/assembly", 80 "src/core/cpu/kernels/assembly", 81 "src/cpu/kernels/assembly", 82 ], 83 linkopts = ["-lpthread"], 84 deps = ["include"], 85) 86 87cc_library( 88 name = "arm_compute", 89 srcs = glob( 90 [ 91 "src/common/**/*.cpp", 92 "src/core/*.cpp", 93 "src/core/CPP/kernels/*.cpp", 94 "src/core/helpers/*.cpp", 95 "src/core/utils/**/*.cpp", 96 "src/runtime/**/*.cpp", 97 "src/c/*.cpp", 98 "src/core/NEON/kernels/*.cpp", 99 "src/core/NEON/kernels/convolution/**/*.cpp", 100 "src/core/NEON/kernels/arm_gemm/kernels/a64_*/*.cpp", 101 "src/core/NEON/kernels/arm_conv/pooling/*.cpp", 102 "src/core/NEON/kernels/arm_conv/**/kernels/a64_*/*.cpp", 103 "src/core/NEON/kernels/arm_conv/depthwise/*.cpp", 104 "src/core/NEON/kernels/arm_conv/depthwise/interleaves/a64_*.cpp", 105 "src/core/NEON/kernels/arm_conv/depthwise/interleaves/generic*.cpp", 106 "src/core/NEON/kernels/batchnormalization/impl/NEON/*.cpp", 107 "src/cpu/*.cpp", 108 "src/cpu/kernels/*.cpp", 109 "src/cpu/kernels/*/generic/*.cpp", 110 "src/cpu/operators/**/*.cpp", 111 "src/cpu/utils/*.cpp", 112 "src/cpu/kernels/internal/*.cpp", 113 "src/cpu/kernels/**/neon/*.cpp", 114 "src/cpu/kernels/**/nchw/*.cpp", 115 "src/core/NEON/kernels/arm_gemm/*.cpp", 116 "**/*.h", 117 "**/*.hpp", 118 "**/*.inl", 119 ], 120 exclude = [ 121 "src/core/utils/logging/**", 122 "src/core/TracePoint.cpp", 123 "src/core/NEON/kernels/arm_gemm/mergeresults-sve.cpp", 124 "src/core/NEON/kernels/arm_gemm/transform-sve.cpp", 125 "src/runtime/CL/**", 126 "src/gpu/**", 127 ], 128 ) + [ 129 "src/core/CPP/CPPTypes.cpp", 130 "src/c/operators/AclActivation.cpp", 131 "src/core/NEON/kernels/arm_conv/pooling/kernels/cpp_nhwc_1x1_stride_any_depthfirst/generic.cpp", 132 "src/core/NEON/kernels/arm_conv/depthwise/interleaves/8b_mla.cpp", 133 "src/core/NEON/kernels/arm_conv/addressing.cpp", 134 ], 135 hdrs = glob([ 136 "src/core/NEON/kernels/**/*.h", 137 "src/core/NEON/kernels/**/*.hpp", 138 "arm_compute/runtime/**/*.h", 139 "arm_compute/runtime/*.h", 140 "arm_compute/core/**/*.h", 141 "**/*.inl", 142 ]) + [ 143 "arm_compute_version.embed", 144 ], 145 copts = ["-march=armv8-a"], 146 defines = _COMPUTE_LIBRARY_DEFINES, 147 includes = [ 148 "arm_compute/runtime", 149 "src/core/NEON/kernels/assembly", 150 "src/core/NEON/kernels/convolution/common", 151 "src/core/NEON/kernels/convolution/winograd", 152 "src/core/cpu/kernels/assembly", 153 "src/cpu/kernels/assembly", 154 ], 155 linkopts = ["-lpthread"], 156 visibility = ["//visibility:public"], 157 deps = [ 158 "arm_compute_sve", 159 "arm_compute_sve2", 160 "include", 161 ], 162) 163 164config_setting( 165 name = "build_with_acl", 166 define_values = { 167 "build_with_acl": "true", 168 }, 169 visibility = ["//visibility:public"], 170) 171 172bzl_library( 173 name = "build_defs_bzl", 174 srcs = ["build_defs.bzl"], 175 visibility = ["//visibility:public"], 176) 177