blob: 41f6e2e7c8150c9ed484b37f4998ef31dfae7e49 [file] [log] [blame]
load("//tools/build_defs:fb_xplat_cxx_library.bzl", "fb_xplat_cxx_library")
load("//tools/build_defs:fbsource_utils.bzl", "is_arvr_mode")
load("//tools/build_defs:glob_defs.bzl", "subdir_glob")
load("//tools/build_defs:platform_defs.bzl", "ANDROID", "APPLE", "APPLETVOS", "CXX", "IOS", "MACOSX", "WINDOWS")
load(
":xnnpack_src_defs.bzl",
"HOT_SRCS",
"JIT_SRCS",
"LOGGING_SRCS",
"OPERATOR_SRCS",
"SUBGRAPH_SRCS",
"TABLE_SRCS",
)
load(
":xnnpack_wrapper_defs.bzl",
"AARCH32_ASM_MICROKERNEL_SRCS",
"AARCH64_ASM_MICROKERNEL_SRCS",
"PROD_AARCH64_NEONFP16ARITH_MICROKERNEL_SRCS",
"PROD_AARCH64_NEON_MICROKERNEL_SRCS",
"PROD_AVX2_MICROKERNEL_SRCS",
"PROD_AVX512F_MICROKERNEL_SRCS",
"PROD_AVX512SKX_MICROKERNEL_SRCS",
"PROD_AVX_MICROKERNEL_SRCS",
"PROD_F16C_MICROKERNEL_SRCS",
"PROD_FMA3_MICROKERNEL_SRCS",
"PROD_NEONDOT_MICROKERNEL_SRCS",
"PROD_NEONFMA_MICROKERNEL_SRCS",
"PROD_NEONFP16_MICROKERNEL_SRCS",
"PROD_NEONV8_MICROKERNEL_SRCS",
"PROD_NEON_MICROKERNEL_SRCS",
"PROD_SCALAR_AARCH32_MICROKERNEL_SRCS",
"PROD_SCALAR_PORTABLE_MICROKERNEL_SRCS",
"PROD_SSE2_MICROKERNEL_SRCS",
"PROD_SSE41_MICROKERNEL_SRCS",
"PROD_SSE_MICROKERNEL_SRCS",
"PROD_SSSE3_MICROKERNEL_SRCS",
"PROD_XOP_MICROKERNEL_SRCS",
)
# This defines XNNPACK targets for both fbsource BUCK and OSS BUCK
# Note that the file path is relative to the BUCK file that called from, not to this bzl file.
# So for fbsource build it points to xplat/third-party/XNNPACK/XNNPACK,
# and for OSS it points to pytorch/third_party/XNNPACK
def define_xnnpack(third_party, labels = [], XNNPACK_WINDOWS_AVX512F_ENABLED = False):
WINDOWS_FLAGS = [
"/D__x86_64__",
"/EHsc",
"/wd4090", # 'function': different 'const' qualifiers
"/wd4146", # unary minus operator applied to unsigned type, result still unsigned
] + ([
"/D__AVX512F__", # needed to avoid linkage errors
"-mavx2",
"/D__builtin_clz=__lzcnt", # Intrinsics are spelled differently in MSVC
"/Drestrict=", # MSVC doesn't understand [restrict XNN_NUM_ELEMENTS(N)] syntax
] if XNNPACK_WINDOWS_AVX512F_ENABLED else [])
WINDOWS_CLANG_COMPILER_FLAGS = [
"-Wno-error",
"-Wno-error=undef",
"-Wno-error=incompatible-pointer-types",
"-Wno-error=incompatible-pointer-types-discards-qualifiers",
]
fb_xplat_cxx_library(
name = "interface",
header_namespace = "",
exported_headers = {
"xnnpack.h": "XNNPACK/include/xnnpack.h",
},
apple_sdks = (IOS, MACOSX, APPLETVOS),
labels = labels,
preprocessor_flags = [
"-DXNN_LOG_LEVEL=0",
],
visibility = ["PUBLIC"],
exported_deps = [
# Dependency only on pthreadpool interface
third_party("pthreadpool_header"),
],
)
fb_xplat_cxx_library(
name = "operators",
# srcs have to include HOT_SRCS to be able to build on ARVR
srcs = OPERATOR_SRCS + HOT_SRCS,
headers = subdir_glob([
("XNNPACK/src", "**/*.h"),
]),
header_namespace = "",
apple_sdks = (IOS, MACOSX, APPLETVOS),
compiler_flags = [
"-Oz",
],
fbobjc_preprocessor_flags = [
"-DXNN_PRIVATE=",
"-DXNN_INTERNAL=",
],
labels = labels,
preferred_linkage = "static",
preprocessor_flags = [
"-DXNN_LOG_LEVEL=0",
],
visibility = ["PUBLIC"],
windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS,
windows_compiler_flags_override = WINDOWS_FLAGS,
deps = [
":interface",
third_party("cpuinfo"),
third_party("FP16"),
third_party("FXdiv"),
third_party("clog"),
],
)
fb_xplat_cxx_library(
name = "subgraph",
srcs = SUBGRAPH_SRCS,
headers = subdir_glob([
("XNNPACK/src", "**/*.h"),
]),
header_namespace = "",
apple_sdks = (IOS, MACOSX, APPLETVOS),
compiler_flags = [
"-O2",
],
fbobjc_preprocessor_flags = [
"-DXNN_PRIVATE=",
"-DXNN_INTERNAL=",
],
labels = labels,
preferred_linkage = "static",
preprocessor_flags = [
"-DXNN_LOG_LEVEL=0",
],
visibility = ["PUBLIC"],
windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS,
windows_compiler_flags_override = WINDOWS_FLAGS,
deps = [
":interface",
third_party("FP16"),
third_party("FXdiv"),
third_party("clog"),
],
)
fb_xplat_cxx_library(
name = "tables",
srcs = TABLE_SRCS,
headers = subdir_glob([
("XNNPACK/src", "**/*.h"),
]),
header_namespace = "",
apple_sdks = (IOS, MACOSX, APPLETVOS),
compiler_flags = [
"-O2",
],
fbobjc_preprocessor_flags = [
"-DXNN_PRIVATE=",
"-DXNN_INTERNAL=",
],
labels = labels,
preferred_linkage = "static",
preprocessor_flags = [
"-DXNN_LOG_LEVEL=0",
],
visibility = ["PUBLIC"],
windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS,
windows_compiler_flags_override = WINDOWS_FLAGS,
deps = [
":interface",
third_party("FP16"),
third_party("FXdiv"),
third_party("clog"),
],
)
fb_xplat_cxx_library(
name = "jit_memory",
# srcs have to include HOT_SRCS to be able to build on ARVR
srcs = JIT_SRCS,
headers = subdir_glob([
("XNNPACK/src", "**/*.h"),
]),
header_namespace = "",
apple_sdks = (IOS, MACOSX, APPLETVOS),
compiler_flags = [
"-Oz",
],
fbobjc_preprocessor_flags = [
"-DXNN_PRIVATE=",
"-DXNN_INTERNAL=",
],
labels = labels,
platforms = (APPLE, ANDROID, CXX, WINDOWS),
preferred_linkage = "static",
preprocessor_flags = [
"-DXNN_LOG_LEVEL=0",
],
visibility = ["PUBLIC"],
windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS,
windows_compiler_flags_override = WINDOWS_FLAGS,
deps = [
":interface",
third_party("clog"),
],
)
fb_xplat_cxx_library(
name = "ukernels_scalar",
srcs = PROD_SCALAR_PORTABLE_MICROKERNEL_SRCS,
headers = subdir_glob([
("XNNPACK/src", "**/*.c"),
("XNNPACK/src", "**/*.h"),
]),
header_namespace = "",
apple_sdks = (IOS, MACOSX, APPLETVOS),
compiler_flags = [
"-O2",
],
fbobjc_preprocessor_flags = [
"-DXNN_PRIVATE=",
"-DXNN_INTERNAL=",
],
labels = labels,
preferred_linkage = "static",
preprocessor_flags = [
"-DXNN_LOG_LEVEL=0",
],
visibility = ["PUBLIC"],
windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS,
windows_compiler_flags_override = WINDOWS_FLAGS,
deps = [
":interface",
third_party("FP16"),
third_party("FXdiv"),
],
)
fb_xplat_cxx_library(
name = "ukernels_sse",
srcs = (select({
"DEFAULT": [],
"ovr_config//os:macos-x86_64": PROD_SSE_MICROKERNEL_SRCS,
}) if is_arvr_mode() else []),
headers = subdir_glob([
("XNNPACK/src", "**/*.c"),
("XNNPACK/src", "**/*.h"),
]),
header_namespace = "",
apple_sdks = (IOS, MACOSX, APPLETVOS),
compiler_flags = [
"-O2",
],
fbobjc_preprocessor_flags = [
"-DXNN_PRIVATE=",
"-DXNN_INTERNAL=",
],
labels = labels,
platform_compiler_flags = [
(
"x86",
[
"-msse",
],
),
],
platform_srcs = ([
(
"x86|x86_64|platform009|platform010",
PROD_SSE_MICROKERNEL_SRCS,
),
] if not is_arvr_mode() else []),
preferred_linkage = "static",
preprocessor_flags = [
"-DXNN_LOG_LEVEL=0",
],
visibility = ["PUBLIC"],
windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS + ["-msse"],
windows_compiler_flags_override = WINDOWS_FLAGS + ["-msse"],
deps = [
":interface",
],
)
fb_xplat_cxx_library(
name = "ukernels_sse_ovr_win32",
headers = subdir_glob([
("XNNPACK/src", "**/*.c"),
("XNNPACK/src", "**/*.h"),
]),
header_namespace = "",
apple_sdks = (IOS, MACOSX, APPLETVOS),
compiler_flags = [
"-O2",
],
fbobjc_preprocessor_flags = [
"-DXNN_PRIVATE=",
"-DXNN_INTERNAL=",
],
labels = labels,
platform_compiler_flags = [
(
"x86",
[
"-msse",
],
),
],
preferred_linkage = "static",
preprocessor_flags = [
"-DXNN_LOG_LEVEL=0",
],
visibility = ["PUBLIC"],
windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS + ["-msse"],
windows_compiler_flags_override = WINDOWS_FLAGS + ["-msse"],
windows_srcs = PROD_SSE_MICROKERNEL_SRCS,
deps = [
":interface",
],
)
fb_xplat_cxx_library(
name = "ukernels_sse2",
srcs = (select({
"DEFAULT": [],
"ovr_config//os:macos-x86_64": PROD_SSE2_MICROKERNEL_SRCS,
}) if is_arvr_mode() else []),
headers = subdir_glob([
("XNNPACK/src", "**/*.c"),
("XNNPACK/src", "**/*.h"),
]),
header_namespace = "",
apple_sdks = (IOS, MACOSX, APPLETVOS),
compiler_flags = [
"-O2",
],
fbobjc_preprocessor_flags = [
"-DXNN_PRIVATE=",
"-DXNN_INTERNAL=",
],
labels = labels,
platform_compiler_flags = [
(
"x86",
[
"-msse2",
],
),
],
platform_srcs = ([
(
"x86|x86_64|platform009|platform010",
PROD_SSE2_MICROKERNEL_SRCS,
),
] if not is_arvr_mode() else []),
preferred_linkage = "static",
preprocessor_flags = [
"-DXNN_LOG_LEVEL=0",
],
visibility = ["PUBLIC"],
windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS + ["-msse2"],
windows_compiler_flags_override = WINDOWS_FLAGS + ["-msse2"],
deps = [
":interface",
third_party("FP16"),
],
)
fb_xplat_cxx_library(
name = "ukernels_sse2_ovr_win32",
headers = subdir_glob([
("XNNPACK/src", "**/*.c"),
("XNNPACK/src", "**/*.h"),
]),
header_namespace = "",
apple_sdks = (IOS, MACOSX, APPLETVOS),
compiler_flags = [
"-O2",
],
fbobjc_preprocessor_flags = [
"-DXNN_PRIVATE=",
"-DXNN_INTERNAL=",
],
labels = labels,
platform_compiler_flags = [
(
"x86",
[
"-msse2",
],
),
],
preferred_linkage = "static",
preprocessor_flags = [
"-DXNN_LOG_LEVEL=0",
],
visibility = ["PUBLIC"],
windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS + ["-msse2"],
windows_compiler_flags_override = WINDOWS_FLAGS + ["-msse2"],
windows_srcs = PROD_SSE2_MICROKERNEL_SRCS,
deps = [
":interface",
third_party("FP16"),
],
)
fb_xplat_cxx_library(
name = "ukernels_ssse3",
srcs = (select({
"DEFAULT": [],
"ovr_config//os:macos-x86_64": PROD_SSSE3_MICROKERNEL_SRCS,
}) if is_arvr_mode() else []),
headers = subdir_glob([
("XNNPACK/src", "**/*.c"),
("XNNPACK/src", "**/*.h"),
]),
header_namespace = "",
apple_sdks = (IOS, MACOSX, APPLETVOS),
compiler_flags = [
"-O2",
],
fbobjc_preprocessor_flags = [
"-DXNN_PRIVATE=",
"-DXNN_INTERNAL=",
],
labels = labels,
platform_compiler_flags = [
(
"x86",
[
"-mssse3",
],
),
],
platform_srcs = ([
(
"x86|x86_64|platform009|platform010",
PROD_SSSE3_MICROKERNEL_SRCS,
),
] if not is_arvr_mode() else []),
preferred_linkage = "static",
preprocessor_flags = [
"-DXNN_LOG_LEVEL=0",
],
visibility = ["PUBLIC"],
windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS + ["-mssse3"],
windows_compiler_flags_override = WINDOWS_FLAGS + ["-mssse3"],
deps = [
":interface",
third_party("FP16"),
],
)
fb_xplat_cxx_library(
name = "ukernels_ssse3_ovr_win32",
headers = subdir_glob([
("XNNPACK/src", "**/*.c"),
("XNNPACK/src", "**/*.h"),
]),
header_namespace = "",
apple_sdks = (IOS, MACOSX, APPLETVOS),
compiler_flags = [
"-O2",
],
fbobjc_preprocessor_flags = [
"-DXNN_PRIVATE=",
"-DXNN_INTERNAL=",
],
labels = labels,
platform_compiler_flags = [
(
"x86",
[
"-mssse3",
],
),
],
preferred_linkage = "static",
preprocessor_flags = [
"-DXNN_LOG_LEVEL=0",
],
visibility = ["PUBLIC"],
windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS + ["-mssse3"],
windows_compiler_flags_override = WINDOWS_FLAGS + ["-mssse3"],
windows_srcs = PROD_SSSE3_MICROKERNEL_SRCS,
deps = [
":interface",
third_party("FP16"),
],
)
fb_xplat_cxx_library(
name = "ukernels_sse41",
srcs = (select({
"DEFAULT": [],
"ovr_config//os:macos-x86_64": PROD_SSE41_MICROKERNEL_SRCS,
}) if is_arvr_mode() else []),
headers = subdir_glob([
("XNNPACK/src", "**/*.c"),
("XNNPACK/src", "**/*.h"),
]),
header_namespace = "",
apple_sdks = (IOS, MACOSX, APPLETVOS),
compiler_flags = [
"-O2",
],
fbobjc_preprocessor_flags = [
"-DXNN_PRIVATE=",
"-DXNN_INTERNAL=",
],
labels = labels,
platform_compiler_flags = [
(
"x86",
[
"-msse4.1",
],
),
],
platform_srcs = ([
(
"x86|x86_64|platform009|platform010",
PROD_SSE41_MICROKERNEL_SRCS,
),
] if not is_arvr_mode() else []),
preferred_linkage = "static",
preprocessor_flags = [
"-DXNN_LOG_LEVEL=0",
],
visibility = ["PUBLIC"],
windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS + ["-msse4.1"],
windows_compiler_flags_override = WINDOWS_FLAGS + ["-msse4.1"],
deps = [
":interface",
third_party("FP16"),
],
)
fb_xplat_cxx_library(
name = "ukernels_sse41_ovr_win32",
headers = subdir_glob([
("XNNPACK/src", "**/*.c"),
("XNNPACK/src", "**/*.h"),
]),
header_namespace = "",
apple_sdks = (IOS, MACOSX, APPLETVOS),
compiler_flags = [
"-O2",
],
fbobjc_preprocessor_flags = [
"-DXNN_PRIVATE=",
"-DXNN_INTERNAL=",
],
labels = labels,
platform_compiler_flags = [
(
"x86",
[
"-msse4.1",
],
),
],
preferred_linkage = "static",
preprocessor_flags = [
"-DXNN_LOG_LEVEL=0",
],
visibility = ["PUBLIC"],
windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS + ["-msse4.1"],
windows_compiler_flags_override = WINDOWS_FLAGS + ["-msse4.1"],
windows_srcs = PROD_SSE41_MICROKERNEL_SRCS,
deps = [
":interface",
third_party("FP16"),
],
)
fb_xplat_cxx_library(
name = "ukernels_avx",
srcs = (select({
"DEFAULT": [],
"ovr_config//os:macos-x86_64": PROD_AVX_MICROKERNEL_SRCS,
}) if is_arvr_mode() else []),
headers = subdir_glob([
("XNNPACK/src", "**/*.h"),
("XNNPACK/src", "**/*.c"),
]),
header_namespace = "",
apple_sdks = (IOS, MACOSX, APPLETVOS),
compiler_flags = [
"-O2",
"-mavx",
],
fbobjc_preprocessor_flags = [
"-DXNN_PRIVATE=",
"-DXNN_INTERNAL=",
],
labels = labels,
platform_compiler_flags = [
(
"x86",
[
"-mavx",
],
),
],
platform_srcs = ([
(
"x86|x86_64|platform009|platform010",
PROD_AVX_MICROKERNEL_SRCS,
),
] if not is_arvr_mode() else []),
preferred_linkage = "static",
preprocessor_flags = [
"-DXNN_LOG_LEVEL=0",
],
visibility = ["PUBLIC"],
windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS + ["-mavx"],
windows_compiler_flags_override = WINDOWS_FLAGS + ["-mavx"],
deps = [
":interface",
],
)
fb_xplat_cxx_library(
name = "ukernels_avx_ovr_win32",
headers = subdir_glob([
("XNNPACK/src", "**/*.h"),
("XNNPACK/src", "**/*.c"),
]),
header_namespace = "",
apple_sdks = (IOS, MACOSX, APPLETVOS),
compiler_flags = [
"-O2",
"-mavx",
],
fbobjc_preprocessor_flags = [
"-DXNN_PRIVATE=",
"-DXNN_INTERNAL=",
],
labels = labels,
platform_compiler_flags = [
(
"x86",
[
"-mavx",
],
),
],
preferred_linkage = "static",
preprocessor_flags = [
"-DXNN_LOG_LEVEL=0",
],
visibility = ["PUBLIC"],
windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS + ["-mavx"],
windows_compiler_flags_override = WINDOWS_FLAGS + ["-mavx"],
windows_srcs = PROD_AVX_MICROKERNEL_SRCS,
deps = [
":interface",
],
)
fb_xplat_cxx_library(
name = "ukernels_f16c",
srcs = (select({
"DEFAULT": [],
"ovr_config//os:macos-x86_64": PROD_F16C_MICROKERNEL_SRCS,
}) if is_arvr_mode() else []),
headers = subdir_glob([
("XNNPACK/src", "**/*.h"),
("XNNPACK/src", "**/*.c"),
]),
header_namespace = "",
apple_sdks = (IOS, MACOSX, APPLETVOS),
compiler_flags = [
"-O2",
"-mf16c",
],
fbobjc_preprocessor_flags = [
"-DXNN_PRIVATE=",
"-DXNN_INTERNAL=",
],
labels = labels,
platform_compiler_flags = [
(
"x86",
[
"-mf16c",
],
),
],
platform_srcs = ([
(
"x86|x86_64|platform009|platform010",
PROD_F16C_MICROKERNEL_SRCS,
),
] if not is_arvr_mode() else []),
platforms = (APPLE, ANDROID, CXX, WINDOWS),
preferred_linkage = "static",
preprocessor_flags = [
"-DXNN_LOG_LEVEL=0",
],
visibility = ["PUBLIC"],
windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS + ["-mf16c"],
windows_compiler_flags_override = WINDOWS_FLAGS + ["-mf16c"],
deps = [
":interface",
],
)
fb_xplat_cxx_library(
name = "ukernels_f16c_ovr_win32",
headers = subdir_glob([
("XNNPACK/src", "**/*.h"),
("XNNPACK/src", "**/*.c"),
]),
header_namespace = "",
apple_sdks = (IOS, MACOSX, APPLETVOS),
compiler_flags = [
"-O2",
"-mf16c",
],
fbobjc_preprocessor_flags = [
"-DXNN_PRIVATE=",
"-DXNN_INTERNAL=",
],
labels = labels,
platform_compiler_flags = [
(
"x86",
[
"-mf16c",
],
),
],
platforms = (APPLE, ANDROID, CXX, WINDOWS),
preferred_linkage = "static",
preprocessor_flags = [
"-DXNN_LOG_LEVEL=0",
],
visibility = ["PUBLIC"],
windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS + ["-mf16c"],
windows_compiler_flags_override = WINDOWS_FLAGS + ["-mf16c"],
windows_srcs = PROD_F16C_MICROKERNEL_SRCS,
deps = [
":interface",
],
)
fb_xplat_cxx_library(
name = "ukernels_xop",
srcs = (select({
"DEFAULT": [],
"ovr_config//os:macos-x86_64": PROD_XOP_MICROKERNEL_SRCS,
}) if is_arvr_mode() else []),
headers = subdir_glob([
("XNNPACK/src", "**/*.h"),
("XNNPACK/src", "**/*.c"),
]),
header_namespace = "",
apple_sdks = (IOS, MACOSX, APPLETVOS),
compiler_flags = [
"-O2",
"-mxop",
],
fbobjc_preprocessor_flags = [
"-DXNN_PRIVATE=",
"-DXNN_INTERNAL=",
],
labels = labels,
platform_preprocessor_flags = [
(
"windows-x86_64",
[
"-Drestrict=",
],
),
],
platform_srcs = ([
(
"x86|x86_64|platform009|platform010",
PROD_XOP_MICROKERNEL_SRCS,
),
] if not is_arvr_mode() else []),
preferred_linkage = "static",
preprocessor_flags = [
"-DXNN_LOG_LEVEL=0",
],
visibility = ["PUBLIC"],
windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS + ["-mxop"],
windows_compiler_flags_override = WINDOWS_FLAGS + ["-mxop"],
deps = [
":interface",
],
)
fb_xplat_cxx_library(
name = "ukernels_xop_ovr_win32",
headers = subdir_glob([
("XNNPACK/src", "**/*.h"),
("XNNPACK/src", "**/*.c"),
]),
header_namespace = "",
apple_sdks = (IOS, MACOSX, APPLETVOS),
compiler_flags = [
"-O2",
"-mxop",
],
fbobjc_preprocessor_flags = [
"-DXNN_PRIVATE=",
"-DXNN_INTERNAL=",
],
labels = labels,
platform_preprocessor_flags = [
(
"windows-x86_64",
[
"-Drestrict=",
],
),
],
preferred_linkage = "static",
preprocessor_flags = [
"-DXNN_LOG_LEVEL=0",
],
visibility = ["PUBLIC"],
windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS + ["-mxop"],
windows_compiler_flags_override = WINDOWS_FLAGS + ["-mxop"],
windows_srcs = PROD_XOP_MICROKERNEL_SRCS,
deps = [
":interface",
],
)
fb_xplat_cxx_library(
name = "ukernels_fma3",
srcs = (select({
"DEFAULT": [],
"ovr_config//os:macos-x86_64": PROD_FMA3_MICROKERNEL_SRCS,
}) if is_arvr_mode() else []),
headers = subdir_glob([
("XNNPACK/src", "**/*.h"),
("XNNPACK/src", "**/*.c"),
]),
header_namespace = "",
apple_sdks = (IOS, MACOSX, APPLETVOS),
compiler_flags = [
"-O2",
"-mfma",
"-mf16c",
],
fbobjc_preprocessor_flags = [
"-DXNN_PRIVATE=",
"-DXNN_INTERNAL=",
],
labels = labels,
platform_compiler_flags = [
(
"^(i[3-6]86|x86|x86_64|AMD64)$",
[
"-mfma",
"-mf16c",
],
),
],
platform_srcs = ([
(
"x86|x86_64|platform009|platform010",
PROD_FMA3_MICROKERNEL_SRCS,
),
] if not is_arvr_mode() else []),
preferred_linkage = "static",
preprocessor_flags = [
"-DXNN_LOG_LEVEL=0",
],
visibility = ["PUBLIC"],
windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS + [
"-mfma",
"-mf16c",
],
windows_compiler_flags_override = WINDOWS_FLAGS + [
"-mfma",
"-mf16c",
],
deps = [
":interface",
],
)
fb_xplat_cxx_library(
name = "ukernels_fma3_ovr_win32",
headers = subdir_glob([
("XNNPACK/src", "**/*.h"),
("XNNPACK/src", "**/*.c"),
]),
header_namespace = "",
apple_sdks = (IOS, MACOSX, APPLETVOS),
compiler_flags = [
"-O2",
"-mfma",
"-mf16c",
],
fbobjc_preprocessor_flags = [
"-DXNN_PRIVATE=",
"-DXNN_INTERNAL=",
],
labels = labels,
platform_compiler_flags = [
(
"^(i[3-6]86|x86|x86_64|AMD64)$",
[
"-mfma",
"-mf16c",
],
),
],
preferred_linkage = "static",
preprocessor_flags = [
"-DXNN_LOG_LEVEL=0",
],
visibility = ["PUBLIC"],
windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS + [
"-mfma",
"-mf16c",
],
windows_compiler_flags_override = WINDOWS_FLAGS + [
"-mfma",
"-mf16c",
],
windows_srcs = PROD_FMA3_MICROKERNEL_SRCS,
deps = [
":interface",
],
)
fb_xplat_cxx_library(
name = "ukernels_avx2",
srcs = (select({
"DEFAULT": [],
"ovr_config//os:macos-x86_64": PROD_AVX2_MICROKERNEL_SRCS,
}) if is_arvr_mode() else []),
headers = subdir_glob([
("XNNPACK/src", "**/*.c"),
("XNNPACK/src", "**/*.h"),
]),
header_namespace = "",
apple_sdks = (IOS, MACOSX, APPLETVOS),
compiler_flags = [
"-O2",
"-mavx2",
"-mfma",
"-mf16c",
],
fbobjc_preprocessor_flags = [
"-DXNN_PRIVATE=",
"-DXNN_INTERNAL=",
],
labels = labels,
platform_compiler_flags = [
(
"x86",
[
"-mavx2",
"-mfma",
"-mf16c",
],
),
],
platform_srcs = ([
(
"x86|x86_64|platform009|platform010",
PROD_AVX2_MICROKERNEL_SRCS,
),
] if not is_arvr_mode() else []),
preferred_linkage = "static",
preprocessor_flags = [
"-DXNN_LOG_LEVEL=0",
],
visibility = ["PUBLIC"],
windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS + [
"-mavx2",
"-mfma",
"-mf16c",
],
windows_compiler_flags_override = WINDOWS_FLAGS + [
"-mavx2",
"-mfma",
"-mf16c",
],
deps = [
":interface",
],
)
fb_xplat_cxx_library(
name = "ukernels_avx2_ovr_win32",
headers = subdir_glob([
("XNNPACK/src", "**/*.c"),
("XNNPACK/src", "**/*.h"),
]),
header_namespace = "",
apple_sdks = (IOS, MACOSX, APPLETVOS),
compiler_flags = [
"-O2",
"-mavx2",
"-mfma",
"-mf16c",
],
fbobjc_preprocessor_flags = [
"-DXNN_PRIVATE=",
"-DXNN_INTERNAL=",
],
labels = labels,
platform_compiler_flags = [
(
"x86",
[
"-mavx2",
"-mfma",
"-mf16c",
],
),
],
preferred_linkage = "static",
preprocessor_flags = [
"-DXNN_LOG_LEVEL=0",
],
visibility = ["PUBLIC"],
windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS + [
"-mavx2",
"-mfma",
"-mf16c",
],
windows_compiler_flags_override = WINDOWS_FLAGS + [
"-mavx2",
"-mfma",
"-mf16c",
],
windows_srcs = PROD_AVX2_MICROKERNEL_SRCS,
deps = [
":interface",
],
)
fb_xplat_cxx_library(
name = "ukernels_avx512",
srcs = (select({
"DEFAULT": [],
"ovr_config//os:macos-x86_64": PROD_AVX512F_MICROKERNEL_SRCS,
}) if is_arvr_mode() else []),
headers = subdir_glob([
("XNNPACK/src", "**/*.c"),
("XNNPACK/src", "**/*.h"),
]),
header_namespace = "",
apple_sdks = (IOS, MACOSX, APPLETVOS),
compiler_flags = [
"-O2",
"-mavx512f",
],
fbobjc_preprocessor_flags = [
"-DXNN_PRIVATE=",
"-DXNN_INTERNAL=",
],
labels = labels,
platform_compiler_flags = [
(
"x86",
[
"-mavx512f",
],
),
],
platform_srcs = ([
(
"x86|x86_64|platform009|platform010",
PROD_AVX512F_MICROKERNEL_SRCS,
),
] if not is_arvr_mode() else []),
preferred_linkage = "static",
preprocessor_flags = [
"-DXNN_LOG_LEVEL=0",
],
visibility = ["PUBLIC"],
windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS + ["-mavx512f"],
windows_compiler_flags_override = WINDOWS_FLAGS + ["-mavx512f"],
deps = [
":interface",
],
)
fb_xplat_cxx_library(
name = "ukernels_avx512_ovr_win32",
headers = subdir_glob([
("XNNPACK/src", "**/*.c"),
("XNNPACK/src", "**/*.h"),
]),
header_namespace = "",
apple_sdks = (IOS, MACOSX, APPLETVOS),
compiler_flags = [
"-O2",
"-mavx512f",
],
fbobjc_preprocessor_flags = [
"-DXNN_PRIVATE=",
"-DXNN_INTERNAL=",
],
labels = labels,
platform_compiler_flags = [
(
"x86",
[
"-mavx512f",
],
),
],
preferred_linkage = "static",
preprocessor_flags = [
"-DXNN_LOG_LEVEL=0",
],
visibility = ["PUBLIC"],
windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS + ["-mavx512f"],
windows_compiler_flags_override = WINDOWS_FLAGS + ["-mavx512f"],
windows_srcs = PROD_AVX512F_MICROKERNEL_SRCS,
deps = [
":interface",
],
)
fb_xplat_cxx_library(
name = "ukernels_avx512skx",
srcs = (select({
"DEFAULT": [],
"ovr_config//os:macos-x86_64": PROD_AVX512SKX_MICROKERNEL_SRCS,
}) if is_arvr_mode() else []),
headers = subdir_glob([
("XNNPACK/src", "**/*.c"),
("XNNPACK/src", "**/*.h"),
]),
header_namespace = "",
apple_sdks = (IOS, MACOSX, APPLETVOS),
compiler_flags = [
"-O2",
"-mavx512f",
"-mavx512cd",
"-mavx512bw",
"-mavx512dq",
"-mavx512vl",
],
fbobjc_preprocessor_flags = [
"-DXNN_PRIVATE=",
"-DXNN_INTERNAL=",
],
labels = labels,
platform_compiler_flags = [
(
"^(i[3-6]86|x86|x86_64|AMD64)$",
[
"-mavx512f",
"-mavx512cd",
"-mavx512bw",
"-mavx512dq",
"-mavx512vl",
],
),
],
platform_srcs = ([
(
"x86|x86_64|platform009|platform010",
PROD_AVX512SKX_MICROKERNEL_SRCS,
),
] if not is_arvr_mode() else []),
preferred_linkage = "static",
preprocessor_flags = [
"-DXNN_LOG_LEVEL=0",
],
visibility = ["PUBLIC"],
windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS + [
"-mavx512f",
"-mavx512cd",
"-mavx512bw",
"-mavx512dq",
"-mavx512vl",
],
windows_compiler_flags_override = WINDOWS_FLAGS + [
"-mavx512f",
"-mavx512cd",
"-mavx512bw",
"-mavx512dq",
"-mavx512vl",
],
deps = [
":interface",
],
)
fb_xplat_cxx_library(
name = "ukernels_avx512skx_ovr_win32",
headers = subdir_glob([
("XNNPACK/src", "**/*.c"),
("XNNPACK/src", "**/*.h"),
]),
header_namespace = "",
apple_sdks = (IOS, MACOSX, APPLETVOS),
compiler_flags = [
"-O2",
"-mavx512f",
"-mavx512cd",
"-mavx512bw",
"-mavx512dq",
"-mavx512vl",
],
fbobjc_preprocessor_flags = [
"-DXNN_PRIVATE=",
"-DXNN_INTERNAL=",
],
labels = labels,
platform_compiler_flags = [
(
"^(i[3-6]86|x86|x86_64|AMD64)$",
[
"-mavx512f",
"-mavx512cd",
"-mavx512bw",
"-mavx512dq",
"-mavx512vl",
],
),
],
preferred_linkage = "static",
preprocessor_flags = [
"-DXNN_LOG_LEVEL=0",
],
visibility = ["PUBLIC"],
windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS + [
"-mavx512f",
"-mavx512cd",
"-mavx512bw",
"-mavx512dq",
"-mavx512vl",
],
windows_compiler_flags_override = WINDOWS_FLAGS + [
"-mavx512f",
"-mavx512cd",
"-mavx512bw",
"-mavx512dq",
"-mavx512vl",
],
windows_srcs = PROD_AVX512SKX_MICROKERNEL_SRCS,
deps = [
":interface",
],
)
fb_xplat_cxx_library(
name = "ukernels_neon",
srcs = PROD_NEON_MICROKERNEL_SRCS,
headers = subdir_glob([
("XNNPACK/src", "**/*.c"),
("XNNPACK/src", "**/*.h"),
]),
header_namespace = "",
apple_sdks = (IOS, MACOSX, APPLETVOS),
compiler_flags = [
"-O2",
],
fbobjc_preprocessor_flags = [
"-DXNN_PRIVATE=",
"-DXNN_INTERNAL=",
],
labels = labels,
platform_compiler_flags = [
(
"^(android-armv7|iphoneos-armv7)$",
[
"-march=armv7-a",
"-mfpu=neon",
"-mfloat-abi=softfp",
],
),
],
preferred_linkage = "static",
preprocessor_flags = [
"-DXNN_LOG_LEVEL=0",
],
visibility = ["PUBLIC"],
windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS,
windows_compiler_flags_override = WINDOWS_FLAGS,
deps = [
":interface",
third_party("FP16"),
],
)
fb_xplat_cxx_library(
name = "ukernels_neon_fma",
srcs = PROD_NEONFMA_MICROKERNEL_SRCS,
headers = subdir_glob([
("XNNPACK/src", "**/*.c"),
("XNNPACK/src", "**/*.h"),
]),
header_namespace = "",
apple_sdks = (IOS, MACOSX, APPLETVOS),
compiler_flags = [
"-O2",
],
fbobjc_preprocessor_flags = [
"-DXNN_PRIVATE=",
"-DXNN_INTERNAL=",
],
labels = labels,
platform_compiler_flags = [
(
"arm",
[
"-mfpu=neon-vfpv4",
],
),
],
preferred_linkage = "static",
preprocessor_flags = [
"-DXNN_LOG_LEVEL=0",
],
visibility = ["PUBLIC"],
windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS,
windows_compiler_flags_override = WINDOWS_FLAGS,
deps = [
":interface",
third_party("FP16"),
],
)
fb_xplat_cxx_library(
name = "ukernels_neon_fp16",
srcs = PROD_NEONFP16_MICROKERNEL_SRCS,
headers = subdir_glob([
("XNNPACK/src", "**/*.c"),
("XNNPACK/src", "**/*.h"),
]),
header_namespace = "",
apple_sdks = (IOS, MACOSX, APPLETVOS),
compiler_flags = [
"-O2",
],
fbobjc_preprocessor_flags = [
"-DXNN_PRIVATE=",
"-DXNN_INTERNAL=",
],
labels = labels,
platform_compiler_flags = [
(
"arm",
[
"-mfpu=neon-fp16",
],
),
],
preferred_linkage = "static",
preprocessor_flags = [
"-DXNN_LOG_LEVEL=0",
],
visibility = ["PUBLIC"],
windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS,
windows_compiler_flags_override = WINDOWS_FLAGS,
deps = [
":interface",
],
)
fb_xplat_cxx_library(
name = "ukernels_neon_v8",
srcs = PROD_NEONV8_MICROKERNEL_SRCS,
headers = subdir_glob([
("XNNPACK/src", "**/*.c"),
("XNNPACK/src", "**/*.h"),
]),
header_namespace = "",
apple_sdks = (IOS, MACOSX, APPLETVOS),
compiler_flags = [
"-O2",
],
fbobjc_preprocessor_flags = [
"-DXNN_PRIVATE=",
"-DXNN_INTERNAL=",
],
labels = labels,
platform_compiler_flags = [
(
"(aarch64|arm64)",
[
"-march=armv8-a",
"-mfpu=neon-fp-armv8",
],
),
(
"^android-armv7$",
[
"-march=armv8-a",
"-mfpu=neon-fp-armv8",
"-mfloat-abi=softfp",
],
),
(
"^iphoneos-armv7$",
[
"-mcpu=cyclone",
"-mtune=generic",
],
),
],
preferred_linkage = "static",
preprocessor_flags = [
"-DXNN_LOG_LEVEL=0",
],
visibility = ["PUBLIC"],
windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS,
windows_compiler_flags_override = WINDOWS_FLAGS,
deps = [
":interface",
third_party("FP16"),
],
)
fb_xplat_cxx_library(
name = "ukernels_neon_dot",
headers = subdir_glob([
("XNNPACK/src", "**/*.c"),
("XNNPACK/src", "**/*.h"),
]),
header_namespace = "",
apple_sdks = (IOS, MACOSX, APPLETVOS),
compiler_flags = [
"-O2",
],
fbobjc_preprocessor_flags = [
"-DXNN_PRIVATE=",
"-DXNN_INTERNAL=",
],
labels = labels,
platform_compiler_flags = [
(
"(aarch64|arm64)",
[
"-march=armv8.2-a+dotprod",
],
),
(
"^android-armv7$",
[
"-march=armv8.2-a+dotprod",
"-mfpu=neon-fp-armv8",
"-mfloat-abi=softfp",
],
),
],
platform_srcs = [
# excluding iphoneos-armv7, matching everything else
(
"^((?!iphoneos-armv7).)*$",
PROD_NEONDOT_MICROKERNEL_SRCS,
),
],
preferred_linkage = "static",
preprocessor_flags = [
"-DXNN_LOG_LEVEL=0",
],
visibility = ["PUBLIC"],
windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS,
windows_compiler_flags_override = WINDOWS_FLAGS,
deps = [
":interface",
third_party("FP16"),
],
)
fb_xplat_cxx_library(
name = "ukernels_neon_aarch64",
srcs = PROD_AARCH64_NEON_MICROKERNEL_SRCS,
headers = subdir_glob([
("XNNPACK/src", "**/*.c"),
("XNNPACK/src", "**/*.h"),
]),
header_namespace = "",
apple_sdks = (IOS, MACOSX, APPLETVOS),
compiler_flags = [
"-O2",
],
fbobjc_preprocessor_flags = [
"-DXNN_PRIVATE=",
"-DXNN_INTERNAL=",
],
labels = labels,
platform_compiler_flags = [
(
"(aarch64|arm64)",
[
"-mfpu=neon-vfpv4",
],
),
],
preferred_linkage = "static",
preprocessor_flags = [
"-DXNN_LOG_LEVEL=0",
],
visibility = ["PUBLIC"],
windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS,
windows_compiler_flags_override = WINDOWS_FLAGS,
deps = [
":interface",
third_party("FP16"),
],
)
fb_xplat_cxx_library(
name = "ukernels_neon_fp16arith_aarch64",
srcs = PROD_AARCH64_NEONFP16ARITH_MICROKERNEL_SRCS,
headers = subdir_glob([
("XNNPACK/src", "**/*.c"),
("XNNPACK/src", "**/*.h"),
]),
header_namespace = "",
apple_sdks = (IOS, MACOSX, APPLETVOS),
compiler_flags = [
"-O2",
],
fbobjc_preprocessor_flags = [
"-DXNN_PRIVATE=",
"-DXNN_INTERNAL=",
],
labels = labels,
platform_compiler_flags = [
(
"(aarch64|arm64)",
[
"-march=armv8.2-a+fp16",
],
),
],
preferred_linkage = "static",
preprocessor_flags = [
"-DXNN_LOG_LEVEL=0",
],
visibility = ["PUBLIC"],
windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS,
windows_compiler_flags_override = WINDOWS_FLAGS,
deps = [
":interface",
third_party("FP16"),
],
)
fb_xplat_cxx_library(
name = "ukernels_scalar_aarch32",
srcs = PROD_SCALAR_AARCH32_MICROKERNEL_SRCS,
headers = subdir_glob([
("XNNPACK/src", "**/*.h"),
("XNNPACK/src", "**/*.c"),
]),
header_namespace = "",
apple_sdks = (IOS, MACOSX, APPLETVOS),
compiler_flags = [
"-O2",
],
fbobjc_preprocessor_flags = [
"-DXNN_PRIVATE=",
"-DXNN_INTERNAL=",
],
labels = labels,
platform_compiler_flags = [
(
"^(android-armv7|iphoneos-armv7)$",
[
"-march=armv7-a",
"-mfpu=neon",
"-mfloat-abi=softfp",
],
),
],
platforms = (APPLE, ANDROID, CXX, WINDOWS),
preferred_linkage = "static",
preprocessor_flags = [
"-DXNN_LOG_LEVEL=0",
],
visibility = ["PUBLIC"],
windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS,
windows_compiler_flags_override = WINDOWS_FLAGS,
deps = [
":interface",
third_party("FP16"),
],
)
fb_xplat_cxx_library(
name = "ukernels_asm_aarch32",
srcs = AARCH32_ASM_MICROKERNEL_SRCS,
headers = subdir_glob([
("XNNPACK/src", "xnnpack/assembly.h"),
("XNNPACK/src", "**/*.S"),
]),
header_namespace = "",
apple_sdks = (IOS, MACOSX, APPLETVOS),
compiler_flags = [
"-O2",
],
fbobjc_preprocessor_flags = [
"-DXNN_PRIVATE=",
"-DXNN_INTERNAL=",
],
labels = labels,
platform_compiler_flags = [
(
"^android-armv7$",
[
"-march=armv8.2-a+dotprod",
"-mfpu=neon-fp-armv8",
"-mfloat-abi=softfp",
],
),
],
platforms = (APPLE, ANDROID, CXX, WINDOWS),
preferred_linkage = "static",
preprocessor_flags = [
"-DXNN_LOG_LEVEL=0",
],
visibility = ["PUBLIC"],
windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS,
windows_compiler_flags_override = WINDOWS_FLAGS,
deps = [
":interface",
":jit_memory",
third_party("FP16"),
],
)
fb_xplat_cxx_library(
name = "ukernels_asm_aarch64",
srcs = AARCH64_ASM_MICROKERNEL_SRCS,
headers = subdir_glob([
("XNNPACK/src", "xnnpack/assembly.h"),
("XNNPACK/src", "**/*.S"),
]),
header_namespace = "",
apple_sdks = (IOS, MACOSX, APPLETVOS),
compiler_flags = [
"-O2",
],
fbobjc_preprocessor_flags = [
"-DXNN_PRIVATE=",
"-DXNN_INTERNAL=",
],
labels = labels,
platform_compiler_flags = [
(
"(aarch64|arm64)",
[
"-march=armv8.2-a+fp16+dotprod",
],
),
],
preferred_linkage = "static",
preprocessor_flags = [
"-DXNN_LOG_LEVEL=0",
],
visibility = ["PUBLIC"],
windows_clang_compiler_flags_override = WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS,
windows_compiler_flags_override = WINDOWS_FLAGS,
deps = [
":interface",
":jit_memory",
third_party("FP16"),
],
)
fb_xplat_cxx_library(
name = "arm64_lib",
apple_sdks = (IOS, MACOSX, APPLETVOS),
labels = labels,
preferred_linkage = "static",
visibility = ["PUBLIC"],
deps = [
":jit_memory",
":ukernels_asm_aarch64",
":ukernels_neon",
":ukernels_neon_aarch64",
":ukernels_neon_dot",
":ukernels_neon_fma",
":ukernels_neon_fp16",
":ukernels_neon_fp16arith_aarch64",
":ukernels_neon_v8",
],
)
fb_xplat_cxx_library(
name = "x86_and_x86_64_lib",
apple_sdks = (IOS, MACOSX, APPLETVOS),
labels = labels,
preferred_linkage = "static",
visibility = ["PUBLIC"],
deps = [
":ukernels_avx",
":ukernels_avx2",
":ukernels_avx512",
":ukernels_avx512skx",
":ukernels_f16c",
":ukernels_fma3",
":ukernels_sse",
":ukernels_sse2",
":ukernels_sse41",
":ukernels_ssse3",
":ukernels_xop",
],
)
fb_xplat_cxx_library(
name = "x86_and_x86_64_lib_ovr_win32",
apple_sdks = (IOS, MACOSX, APPLETVOS),
labels = labels,
preferred_linkage = "static",
visibility = ["PUBLIC"],
deps = [
":ukernels_avx2_ovr_win32",
":ukernels_avx512_ovr_win32",
":ukernels_avx512skx_ovr_win32",
":ukernels_avx_ovr_win32",
":ukernels_f16c_ovr_win32",
":ukernels_fma3_ovr_win32",
":ukernels_sse2_ovr_win32",
":ukernels_sse41_ovr_win32",
":ukernels_sse_ovr_win32",
":ukernels_ssse3_ovr_win32",
":ukernels_xop_ovr_win32",
],
)
fb_xplat_cxx_library(
name = "arm_lib",
apple_sdks = (IOS, MACOSX, APPLETVOS),
labels = labels,
preferred_linkage = "static",
visibility = ["PUBLIC"],
deps = [
":jit_memory",
":ukernels_asm_aarch32",
":ukernels_asm_aarch64",
":ukernels_neon",
":ukernels_neon_aarch64",
":ukernels_neon_dot",
":ukernels_neon_fma",
":ukernels_neon_fp16",
":ukernels_neon_fp16arith_aarch64",
":ukernels_neon_v8",
":ukernels_scalar_aarch32",
],
)
fb_xplat_cxx_library(
name = "armv7_lib",
apple_sdks = (IOS, MACOSX, APPLETVOS),
labels = labels,
preferred_linkage = "static",
visibility = ["PUBLIC"],
deps = [
":jit_memory",
":ukernels_asm_aarch32",
":ukernels_neon",
":ukernels_neon_dot",
":ukernels_neon_fma",
":ukernels_neon_v8",
":ukernels_scalar_aarch32",
],
)
fb_xplat_cxx_library(
name = "XNNPACK",
apple_sdks = (IOS, MACOSX, APPLETVOS),
labels = labels,
deps = [
":operators",
":subgraph",
":tables",
":ukernels_scalar",
third_party("cpuinfo"),
third_party("pthreadpool"),
] + select({
"DEFAULT": [
":arm_lib",
":x86_and_x86_64_lib",
],
"ovr_config//os:windows": [":x86_and_x86_64_lib_ovr_win32"] if XNNPACK_WINDOWS_AVX512F_ENABLED else [
":arm_lib",
":x86_and_x86_64_lib",
],
# doesn't cover iphonesimulator-x86_64
"ovr_config//runtime:arm64-linux-ubuntu-neon": [":arm64_lib"],
"ovr_config//runtime:platform009": [":x86_and_x86_64_lib"],
"ovr_config//runtime:platform010": [":x86_and_x86_64_lib"],
}),
exported_headers = {
"xnnpack.h": "XNNPACK/include/xnnpack.h",
},
fbobjc_preprocessor_flags = [
"-DXNN_PRIVATE=",
"-DXNN_INTERNAL=",
],
header_namespace = "",
headers = subdir_glob([
("XNNPACK/src", "**/*.h"),
("XNNPACK/include", "**/*.h"),
]),
platforms = (APPLE, ANDROID, CXX, WINDOWS),
preferred_linkage = "static",
preprocessor_flags = [
"-DXNN_LOG_LEVEL=0",
"-DXNN_NO_Q8_OPERATORS",
"-DXNN_NO_F16_OPERATORS",
"-DXNN_NO_NCHW_OPERATORS",
"-DXNN_NO_QU8_OPERATORS",
"-DXNN_NO_S8_OPERATORS",
"-DXNN_NO_U8_OPERATORS",
"-DXNN_NO_VCVT_OPERATORS",
"-DXNN_NO_X32_OPERATORS",
"-DXNN_NO_X8_OPERATORS",
"-DXNN_NO_XX_OPERATORS",
],
srcs = [
"XNNPACK/src/allocator.c",
"XNNPACK/src/init.c",
"XNNPACK/src/memory-planner.c",
"XNNPACK/src/operator-delete.c",
"XNNPACK/src/runtime.c",
"XNNPACK/src/subgraph.c",
"XNNPACK/src/tensor.c",
] + LOGGING_SRCS,
visibility = ["PUBLIC"],
windows_clang_compiler_flags_override = (WINDOWS_FLAGS + WINDOWS_CLANG_COMPILER_FLAGS) if XNNPACK_WINDOWS_AVX512F_ENABLED else WINDOWS_FLAGS,
windows_compiler_flags_override = WINDOWS_FLAGS if XNNPACK_WINDOWS_AVX512F_ENABLED else [],
)