mirror of
https://github.com/pytorch/pytorch.git
synced 2025-10-20 21:14:14 +08:00
Update XNNPACK dependency to revision fcbf55a. This is part of a larger, synchronized update of the dependency version for PyTorch, ExecuTorch, and FB internal targets. Pull Request resolved: https://github.com/pytorch/pytorch/pull/120583 Approved by: https://github.com/mcr229
2721 lines
80 KiB
Python
2721 lines
80 KiB
Python
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",
|
|
"JIT_SRCS",
|
|
"LOGGING_SRCS",
|
|
"OPERATOR_SRCS",
|
|
"SUBGRAPH_SRCS",
|
|
"TABLE_SRCS",
|
|
"XNNPACK_SRCS",
|
|
)
|
|
load(
|
|
":xnnpack_wrapper_defs.bzl",
|
|
"AARCH32_ASM_MICROKERNEL_SRCS",
|
|
"AARCH64_ASM_MICROKERNEL_SRCS",
|
|
"PROD_ARMSIMD32_MICROKERNEL_SRCS",
|
|
"PROD_AVX2_MICROKERNEL_SRCS",
|
|
"PROD_AVX512F_MICROKERNEL_SRCS",
|
|
"PROD_AVX512SKX_MICROKERNEL_SRCS",
|
|
"PROD_AVX512VBMI_MICROKERNEL_SRCS",
|
|
"PROD_AVX512VNNI_MICROKERNEL_SRCS",
|
|
"PROD_AVX512VNNIGFNI_MICROKERNEL_SRCS",
|
|
"PROD_AVXVNNI_MICROKERNEL_SRCS",
|
|
"PROD_AVX_MICROKERNEL_SRCS",
|
|
"PROD_F16C_MICROKERNEL_SRCS",
|
|
"PROD_FMA3_MICROKERNEL_SRCS",
|
|
"PROD_FP16ARITH_MICROKERNEL_SRCS",
|
|
"PROD_NEONDOTFP16ARITH_AARCH64_MICROKERNEL_SRCS",
|
|
"PROD_NEONDOTFP16ARITH_MICROKERNEL_SRCS",
|
|
"PROD_NEONDOT_AARCH64_MICROKERNEL_SRCS",
|
|
"PROD_NEONDOT_MICROKERNEL_SRCS",
|
|
"PROD_NEONFMA_MICROKERNEL_SRCS",
|
|
"PROD_NEONFP16ARITH_AARCH64_MICROKERNEL_SRCS",
|
|
"PROD_NEONFP16ARITH_MICROKERNEL_SRCS",
|
|
"PROD_NEONFP16_MICROKERNEL_SRCS",
|
|
"PROD_NEONI8MM_MICROKERNEL_SRCS",
|
|
"PROD_NEONV8_MICROKERNEL_SRCS",
|
|
"PROD_NEON_AARCH64_MICROKERNEL_SRCS",
|
|
"PROD_NEON_MICROKERNEL_SRCS",
|
|
"PROD_SCALAR_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 = "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",
|
|
"-DXNN_ENABLE_JIT=0",
|
|
"-DXNN_ENABLE_SPARSE=0",
|
|
"-DXNN_ENABLE_MEMOPT",
|
|
],
|
|
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_MICROKERNEL_SRCS,
|
|
headers = subdir_glob([
|
|
("XNNPACK/src", "**/*.c"),
|
|
("XNNPACK/src", "**/*.h"),
|
|
]),
|
|
header_namespace = "",
|
|
apple_sdks = (IOS, MACOSX, APPLETVOS),
|
|
compiler_flags = [
|
|
"-O2",
|
|
"-fno-fast-math",
|
|
"-fno-math-errno",
|
|
"-ffp-contract=off",
|
|
],
|
|
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 = 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 = 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 = 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 = 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 = 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",
|
|
] + select({
|
|
"DEFAULT": [],
|
|
"ovr_config//cpu:x86_32": [
|
|
"-mavx",
|
|
],
|
|
"ovr_config//cpu:x86_64": [
|
|
"-mavx",
|
|
],
|
|
}),
|
|
fbobjc_preprocessor_flags = [
|
|
"-DXNN_PRIVATE=",
|
|
"-DXNN_INTERNAL=",
|
|
],
|
|
labels = labels,
|
|
platform_compiler_flags = [
|
|
(
|
|
"x86|x86_64|platform009|platform010",
|
|
[
|
|
"-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_avx512vnnigfni",
|
|
srcs = PROD_AVX512VNNIGFNI_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",
|
|
] + select({
|
|
"DEFAULT": [],
|
|
"ovr_config//cpu:x86_32": [
|
|
"-mavx",
|
|
"-mgfni",
|
|
"-mavx512vl",
|
|
"-mavx512vnni",
|
|
"-mavx512bw",
|
|
"-mavx512dq",
|
|
],
|
|
"ovr_config//cpu:x86_64": [
|
|
"-mavx",
|
|
"-mgfni",
|
|
"-mavx512vl",
|
|
"-mavx512vnni",
|
|
"-mavx512bw",
|
|
"-mavx512dq",
|
|
],
|
|
}),
|
|
fbobjc_preprocessor_flags = [
|
|
"-DXNN_PRIVATE=",
|
|
"-DXNN_INTERNAL=",
|
|
],
|
|
labels = labels,
|
|
platform_compiler_flags = [
|
|
(
|
|
"x86|x86_64|platform009|platform010",
|
|
[
|
|
"-mavx512f",
|
|
"-mavx512cd",
|
|
"-mavx512bw",
|
|
"-mavx512dq",
|
|
"-mavx512vl",
|
|
"-mavx512vnni",
|
|
"-mgfni",
|
|
],
|
|
),
|
|
],
|
|
platform_srcs = ([
|
|
(
|
|
"x86|x86_64|platform009|platform010",
|
|
PROD_AVX512VNNIGFNI_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_avx512vnnigfni_ovr_win32",
|
|
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 = [
|
|
(
|
|
"x86|x86_64|platform009|platform010",
|
|
[
|
|
"-mavx512f",
|
|
"-mavx512cd",
|
|
"-mavx512bw",
|
|
"-mavx512dq",
|
|
"-mavx512vl",
|
|
"-mavx512vnni",
|
|
"-mgfni",
|
|
],
|
|
),
|
|
],
|
|
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_AVX512VNNIGFNI_MICROKERNEL_SRCS,
|
|
deps = [
|
|
":interface",
|
|
],
|
|
)
|
|
|
|
fb_xplat_cxx_library(
|
|
name = "ukernels_avx512vnni",
|
|
srcs = PROD_AVX512VNNI_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",
|
|
] + select({
|
|
"DEFAULT": [],
|
|
"ovr_config//cpu:x86_32": [
|
|
"-mavx",
|
|
],
|
|
"ovr_config//cpu:x86_64": [
|
|
"-mavx",
|
|
],
|
|
}),
|
|
fbobjc_preprocessor_flags = [
|
|
"-DXNN_PRIVATE=",
|
|
"-DXNN_INTERNAL=",
|
|
],
|
|
labels = labels,
|
|
platform_compiler_flags = [
|
|
(
|
|
"x86|x86_64|platform009|platform010",
|
|
[
|
|
"-mavx512f",
|
|
"-mavx512cd",
|
|
"-mavx512bw",
|
|
"-mavx512dq",
|
|
"-mavx512vl",
|
|
"-mavx512vnni",
|
|
],
|
|
),
|
|
],
|
|
platform_srcs = ([
|
|
(
|
|
"x86|x86_64|platform009|platform010",
|
|
PROD_AVX512VNNI_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_avx512vnni_ovr_win32",
|
|
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 = [
|
|
(
|
|
"x86|x86_64|platform009|platform010",
|
|
[
|
|
"-mavx512f",
|
|
"-mavx512cd",
|
|
"-mavx512bw",
|
|
"-mavx512dq",
|
|
"-mavx512vl",
|
|
"-mavx512vnni",
|
|
],
|
|
),
|
|
],
|
|
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_AVX512VNNI_MICROKERNEL_SRCS,
|
|
deps = [
|
|
":interface",
|
|
],
|
|
)
|
|
|
|
fb_xplat_cxx_library(
|
|
name = "ukernels_avxvnni",
|
|
srcs = PROD_AVXVNNI_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",
|
|
"-mavxvnni",
|
|
"-mf16c",
|
|
"-mfma",
|
|
],
|
|
fbobjc_preprocessor_flags = [
|
|
"-DXNN_PRIVATE=",
|
|
"-DXNN_INTERNAL=",
|
|
],
|
|
labels = labels,
|
|
platform_compiler_flags = [
|
|
(
|
|
"x86|x86_64|platform009|platform010",
|
|
[
|
|
"-mavx2",
|
|
"-mavxvnni",
|
|
"-mf16c",
|
|
"-mfma",
|
|
],
|
|
),
|
|
],
|
|
platform_srcs = ([
|
|
(
|
|
"x86|x86_64|platform009|platform010",
|
|
PROD_AVXVNNI_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_avxvnni_ovr_win32",
|
|
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 = [
|
|
(
|
|
"x86|x86_64|platform009|platform010",
|
|
[
|
|
"-mavx2",
|
|
"-mavxvnni",
|
|
],
|
|
),
|
|
],
|
|
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_AVXVNNI_MICROKERNEL_SRCS,
|
|
deps = [
|
|
":interface",
|
|
],
|
|
)
|
|
|
|
fb_xplat_cxx_library(
|
|
name = "ukernels_f16c",
|
|
srcs = 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",
|
|
] + select({
|
|
"DEFAULT": [],
|
|
"ovr_config//cpu:x86_32": [
|
|
"-mf16c",
|
|
],
|
|
"ovr_config//cpu:x86_64": [
|
|
"-mf16c",
|
|
],
|
|
}),
|
|
fbobjc_preprocessor_flags = [
|
|
"-DXNN_PRIVATE=",
|
|
"-DXNN_INTERNAL=",
|
|
],
|
|
labels = labels,
|
|
platform_compiler_flags = [
|
|
(
|
|
"x86|x86_64|platform009|platform010",
|
|
[
|
|
"-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 = 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",
|
|
] + select({
|
|
"DEFAULT": [],
|
|
"ovr_config//cpu:x86_32": [
|
|
"-mxop",
|
|
],
|
|
"ovr_config//cpu:x86_64": [
|
|
"-mxop",
|
|
],
|
|
}),
|
|
platform_compiler_flags = [
|
|
(
|
|
"x86|x86_64|platform009|platform010",
|
|
[
|
|
"-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 = 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",
|
|
] + select({
|
|
"DEFAULT": [],
|
|
"ovr_config//cpu:x86_32": [
|
|
"-mfma",
|
|
"-mf16c",
|
|
],
|
|
"ovr_config//cpu:x86_64": [
|
|
"-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 = 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",
|
|
] + select({
|
|
"DEFAULT": [],
|
|
"ovr_config//cpu:x86_32": [
|
|
"-mavx2",
|
|
"-mfma",
|
|
"-mf16c",
|
|
],
|
|
"ovr_config//cpu:x86_64": [
|
|
"-mavx2",
|
|
"-mfma",
|
|
"-mf16c",
|
|
],
|
|
}),
|
|
fbobjc_preprocessor_flags = [
|
|
"-DXNN_PRIVATE=",
|
|
"-DXNN_INTERNAL=",
|
|
],
|
|
labels = labels,
|
|
platform_compiler_flags = [
|
|
(
|
|
"x86|x86_64|platform009|platform010",
|
|
[
|
|
"-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 = 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",
|
|
] + select({
|
|
"DEFAULT": [],
|
|
"ovr_config//cpu:x86_32": [
|
|
"-mavx512f",
|
|
],
|
|
"ovr_config//cpu:x86_64": [
|
|
"-mavx512f",
|
|
],
|
|
}),
|
|
fbobjc_preprocessor_flags = [
|
|
"-DXNN_PRIVATE=",
|
|
"-DXNN_INTERNAL=",
|
|
],
|
|
labels = labels,
|
|
platform_compiler_flags = [
|
|
(
|
|
"x86|x86_64|platform009|platform010",
|
|
[
|
|
"-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_avx512vbmi",
|
|
srcs = PROD_AVX512VBMI_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",
|
|
] + select({
|
|
"DEFAULT": [],
|
|
"ovr_config//cpu:x86_32": [
|
|
"-mavx512f",
|
|
"-mavx512cd",
|
|
"-mavx512bw",
|
|
"-mavx512dq",
|
|
"-mavx512vl",
|
|
"-mavx512vbmi",
|
|
],
|
|
"ovr_config//cpu:x86_64": [
|
|
"-mavx512f",
|
|
"-mavx512cd",
|
|
"-mavx512bw",
|
|
"-mavx512dq",
|
|
"-mavx512vl",
|
|
"-mavx512vbmi",
|
|
],
|
|
}),
|
|
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",
|
|
"-mavx512vbmi",
|
|
],
|
|
),
|
|
],
|
|
platform_srcs = ([
|
|
(
|
|
"x86|x86_64|platform009|platform010",
|
|
PROD_AVX512VBMI_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",
|
|
"-mavx512vbmi",
|
|
],
|
|
windows_compiler_flags_override = WINDOWS_FLAGS + [
|
|
"-mavx512f",
|
|
"-mavx512cd",
|
|
"-mavx512bw",
|
|
"-mavx512dq",
|
|
"-mavx512vl",
|
|
"-mavx512vbmi",
|
|
],
|
|
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 = 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",
|
|
] + select({
|
|
"DEFAULT": [],
|
|
"ovr_config//cpu:x86_32": [
|
|
"-mavx512f",
|
|
"-mavx512cd",
|
|
"-mavx512bw",
|
|
"-mavx512dq",
|
|
"-mavx512vl",
|
|
],
|
|
"ovr_config//cpu:x86_64": [
|
|
"-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_armsimd32",
|
|
srcs = PROD_ARMSIMD32_MICROKERNEL_SRCS,
|
|
headers = subdir_glob([
|
|
("XNNPACK/src", "**/*.c"),
|
|
("XNNPACK/src", "**/*.h"),
|
|
]),
|
|
header_namespace = "",
|
|
apple_sdks = (IOS, MACOSX, APPLETVOS),
|
|
compiler_flags = [
|
|
"-O2",
|
|
"-fno-fast-math",
|
|
"-fno-math-errno",
|
|
],
|
|
fbobjc_preprocessor_flags = [
|
|
"-DXNN_PRIVATE=",
|
|
"-DXNN_INTERNAL=",
|
|
],
|
|
labels = labels,
|
|
platform_compiler_flags = [
|
|
(
|
|
"(arm32|aarch32|armv7)",
|
|
[
|
|
"-marm",
|
|
"-march=armv6",
|
|
"-mfpu=vfp",
|
|
"-munaligned-access",
|
|
],
|
|
),
|
|
],
|
|
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",
|
|
srcs = select({
|
|
"DEFAULT": [],
|
|
"ovr_config//cpu:arm32": PROD_NEON_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",
|
|
] + select({
|
|
"DEFAULT": [],
|
|
"ovr_config//cpu:arm32": [
|
|
"-marm",
|
|
"-march=armv7-a",
|
|
"-mfpu=neon",
|
|
],
|
|
}),
|
|
fbobjc_preprocessor_flags = [
|
|
"-DXNN_PRIVATE=",
|
|
"-DXNN_INTERNAL=",
|
|
],
|
|
labels = labels,
|
|
platform_compiler_flags = [
|
|
(
|
|
"(aarch32|arm32|armv7)",
|
|
[
|
|
"-marm",
|
|
"-march=armv7-a",
|
|
"-mfpu=neon",
|
|
],
|
|
),
|
|
],
|
|
platform_srcs = [
|
|
(
|
|
"(aarch32|arm32|armv7)",
|
|
PROD_NEON_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,
|
|
windows_compiler_flags_override = WINDOWS_FLAGS,
|
|
deps = [
|
|
":interface",
|
|
third_party("FP16"),
|
|
],
|
|
)
|
|
|
|
fb_xplat_cxx_library(
|
|
name = "ukernels_neon_aarch64",
|
|
srcs = select({
|
|
"DEFAULT": [],
|
|
"ovr_config//cpu:arm64": PROD_NEON_MICROKERNEL_SRCS + [PROD_NEON_AARCH64_MICROKERNEL_SRCS[0]],
|
|
}) 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=",
|
|
],
|
|
platform_srcs = [
|
|
(
|
|
"(aarch64|arm64)",
|
|
PROD_NEON_MICROKERNEL_SRCS + [PROD_NEON_AARCH64_MICROKERNEL_SRCS[0]],
|
|
),
|
|
] if not is_arvr_mode() else [],
|
|
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"),
|
|
],
|
|
)
|
|
|
|
fb_xplat_cxx_library(
|
|
name = "ukernels_neon_fma",
|
|
srcs = select({
|
|
"DEFAULT": [],
|
|
"ovr_config//cpu:arm32": PROD_NEONFMA_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",
|
|
] + select({
|
|
"DEFAULT": [],
|
|
"ovr_config//cpu:arm32": [
|
|
"-marm",
|
|
"-march=armv7-a",
|
|
"-mfpu=neon-vfpv4",
|
|
],
|
|
}),
|
|
fbobjc_preprocessor_flags = [
|
|
"-DXNN_PRIVATE=",
|
|
"-DXNN_INTERNAL=",
|
|
],
|
|
labels = labels,
|
|
platform_compiler_flags = [
|
|
(
|
|
"^iphoneos-armv7$",
|
|
[
|
|
"-mcpu=cyclone",
|
|
"-mtune=generic",
|
|
],
|
|
),
|
|
(
|
|
"(aarch32|arm32|armv7)",
|
|
[
|
|
"-marm",
|
|
"-march=armv7-a",
|
|
"-mfpu=neon-vfpv4",
|
|
],
|
|
),
|
|
],
|
|
platform_srcs = [
|
|
(
|
|
"(aarch32|arm32|armv7)",
|
|
PROD_NEONFMA_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,
|
|
windows_compiler_flags_override = WINDOWS_FLAGS,
|
|
deps = [
|
|
":interface",
|
|
third_party("FP16"),
|
|
],
|
|
)
|
|
|
|
fb_xplat_cxx_library(
|
|
name = "ukernels_neonfma_aarch64",
|
|
srcs = select({
|
|
"DEFAULT": [],
|
|
"ovr_config//cpu:arm64": PROD_NEONFMA_MICROKERNEL_SRCS + [PROD_NEON_AARCH64_MICROKERNEL_SRCS[1]],
|
|
}) if is_arvr_mode() else [],
|
|
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_srcs = [
|
|
(
|
|
"(arm64|aarch64)$",
|
|
PROD_NEONFMA_MICROKERNEL_SRCS + [PROD_NEON_AARCH64_MICROKERNEL_SRCS[1]],
|
|
),
|
|
] 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,
|
|
windows_compiler_flags_override = WINDOWS_FLAGS,
|
|
deps = [
|
|
":interface",
|
|
third_party("FP16"),
|
|
],
|
|
)
|
|
|
|
fb_xplat_cxx_library(
|
|
name = "ukernels_fp16arith",
|
|
srcs = PROD_FP16ARITH_MICROKERNEL_SRCS,
|
|
headers = subdir_glob([
|
|
("XNNPACK/src", "**/*.c"),
|
|
("XNNPACK/src", "**/*.h"),
|
|
]),
|
|
header_namespace = "",
|
|
apple_sdks = (IOS, MACOSX, APPLETVOS),
|
|
compiler_flags = [
|
|
"-O2",
|
|
"-Wno-error=missing-braces", # required since the SGX toolchain does not have this by default
|
|
"-fno-fast-math",
|
|
"-fno-math-errno",
|
|
] + select({
|
|
"DEFAULT": [],
|
|
"ovr_config//cpu:arm32": [
|
|
"-marm",
|
|
"-march=armv8.2-a+fp16",
|
|
# GCC emits wrong directives for assembler with -mfpu=fp-armv8
|
|
"-mfpu=neon-fp-armv8",
|
|
# For vsqrth_f16 polyfill using sqrtf
|
|
"-fno-math-errno",
|
|
# For vminh_f16/vmaxh_f16 polyfills using compare + select
|
|
"-ffinite-math-only",
|
|
],
|
|
}),
|
|
fbobjc_preprocessor_flags = [
|
|
"-DXNN_PRIVATE=",
|
|
"-DXNN_INTERNAL=",
|
|
],
|
|
labels = labels,
|
|
platform_compiler_flags = [
|
|
(
|
|
"(aarch32|arm32|armv7)",
|
|
[
|
|
"-marm",
|
|
"-march=armv8.2-a+fp16",
|
|
# GCC emits wrong directives for assembler with -mfpu=fp-armv8
|
|
"-mfpu=neon-fp-armv8",
|
|
# For vsqrth_f16 polyfill using sqrtf
|
|
"-fno-math-errno",
|
|
# For vminh_f16/vmaxh_f16 polyfills using compare + select
|
|
"-ffinite-math-only",
|
|
],
|
|
),
|
|
],
|
|
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_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",
|
|
] + select({
|
|
"DEFAULT": [],
|
|
"ovr_config//cpu:arm32": [
|
|
"-marm",
|
|
"-march=armv7-a",
|
|
"-mfpu=neon-fp16",
|
|
],
|
|
}),
|
|
fbobjc_preprocessor_flags = [
|
|
"-DXNN_PRIVATE=",
|
|
"-DXNN_INTERNAL=",
|
|
],
|
|
labels = labels,
|
|
platform_compiler_flags = [
|
|
(
|
|
"(aarch32|arm32|armv7)",
|
|
[
|
|
"-marm",
|
|
"-march=armv7-a",
|
|
"-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",
|
|
] + select({
|
|
"DEFAULT": [],
|
|
"ovr_config//cpu:arm64": ["-march=armv8-a"],
|
|
}),
|
|
fbobjc_preprocessor_flags = [
|
|
"-DXNN_PRIVATE=",
|
|
"-DXNN_INTERNAL=",
|
|
],
|
|
labels = labels,
|
|
platform_compiler_flags = [
|
|
(
|
|
"(aarch64|arm64)",
|
|
[
|
|
"-march=armv8-a",
|
|
],
|
|
),
|
|
(
|
|
"^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",
|
|
srcs = select({
|
|
"DEFAULT": [],
|
|
"ovr_config//cpu:arm32": PROD_NEONDOT_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",
|
|
] + select({
|
|
"DEFAULT": [],
|
|
"ovr_config//cpu:arm32": [
|
|
"-march=armv8.2-a+dotprod",
|
|
"-mfpu=neon-fp-armv8",
|
|
"-mfloat-abi=softfp",
|
|
],
|
|
}),
|
|
fbobjc_preprocessor_flags = [
|
|
"-DXNN_PRIVATE=",
|
|
"-DXNN_INTERNAL=",
|
|
],
|
|
labels = labels,
|
|
platform_compiler_flags = [
|
|
(
|
|
"(aarch32|arm32|armv7)",
|
|
[
|
|
"-march=armv8.2-a+dotprod",
|
|
"-mfpu=neon-fp-armv8",
|
|
"-mfloat-abi=softfp",
|
|
],
|
|
),
|
|
],
|
|
platform_srcs = [
|
|
(
|
|
"(aarch32|arm32|armv7)",
|
|
PROD_NEONDOT_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,
|
|
windows_compiler_flags_override = WINDOWS_FLAGS,
|
|
deps = [
|
|
":interface",
|
|
third_party("FP16"),
|
|
],
|
|
)
|
|
|
|
fb_xplat_cxx_library(
|
|
name = "ukernels_neon_dot_aarch64",
|
|
srcs = select({
|
|
"DEFAULT": [],
|
|
"ovr_config//cpu:arm64": PROD_NEONDOT_MICROKERNEL_SRCS + PROD_NEONDOT_AARCH64_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",
|
|
] + select({
|
|
"DEFAULT": [],
|
|
"ovr_config//cpu:arm64": ["-march=armv8.2-a+dotprod"],
|
|
}),
|
|
fbobjc_preprocessor_flags = [
|
|
"-DXNN_PRIVATE=",
|
|
"-DXNN_INTERNAL=",
|
|
],
|
|
labels = labels,
|
|
platform_compiler_flags = [
|
|
(
|
|
"(aarch64|arm64)",
|
|
[
|
|
"-march=armv8.2-a+dotprod",
|
|
],
|
|
),
|
|
],
|
|
platform_srcs = [
|
|
(
|
|
"(aarch64|arm64)",
|
|
PROD_NEONDOT_MICROKERNEL_SRCS + PROD_NEONDOT_AARCH64_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,
|
|
windows_compiler_flags_override = WINDOWS_FLAGS,
|
|
deps = [
|
|
":interface",
|
|
third_party("FP16"),
|
|
],
|
|
)
|
|
|
|
fb_xplat_cxx_library(
|
|
name = "ukernels_neon_dot_fp16arith",
|
|
srcs = select({
|
|
"DEFAULT": [],
|
|
"ovr_config//cpu:arm32": PROD_NEONDOTFP16ARITH_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",
|
|
] + select({
|
|
"DEFAULT": [],
|
|
"ovr_config//cpu:arm32": [
|
|
"-marm",
|
|
"-march=armv8.2-a+dotprod+fp16",
|
|
"-mfpu=neon-fp-armv8",
|
|
],
|
|
}),
|
|
platform_compiler_flags = [
|
|
(
|
|
"(aarch32|arm32|armv7)",
|
|
[
|
|
"-marm",
|
|
"-march=armv8.2-a+dotprod+fp16",
|
|
"-mfpu=neon-fp-armv8",
|
|
],
|
|
),
|
|
],
|
|
platform_srcs = [
|
|
(
|
|
"(aarch32|arm32|armv7)",
|
|
PROD_NEONDOTFP16ARITH_MICROKERNEL_SRCS,
|
|
),
|
|
] if not is_arvr_mode() else [],
|
|
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"),
|
|
],
|
|
)
|
|
|
|
fb_xplat_cxx_library(
|
|
name = "ukernels_neon_dot_fp16arith_aarch64",
|
|
srcs = select({
|
|
"DEFAULT": [],
|
|
"ovr_config//cpu:arm64": PROD_NEONDOTFP16ARITH_MICROKERNEL_SRCS + PROD_NEONDOTFP16ARITH_AARCH64_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",
|
|
] + select({
|
|
"DEFAULT": [],
|
|
"ovr_config//cpu:arm64": [
|
|
"-march=armv8.2-a+dotprod+fp16",
|
|
],
|
|
}),
|
|
fbobjc_preprocessor_flags = [
|
|
"-DXNN_PRIVATE=",
|
|
"-DXNN_INTERNAL=",
|
|
],
|
|
platform_compiler_flags = [
|
|
(
|
|
"(aarch64|arm64)",
|
|
[
|
|
"-march=armv8.2-a+dotprod+fp16",
|
|
],
|
|
),
|
|
],
|
|
platform_srcs = [
|
|
(
|
|
"(aarch64|arm64)",
|
|
PROD_NEONDOTFP16ARITH_MICROKERNEL_SRCS + PROD_NEONDOTFP16ARITH_AARCH64_MICROKERNEL_SRCS,
|
|
),
|
|
] if not is_arvr_mode() else [],
|
|
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"),
|
|
],
|
|
)
|
|
|
|
fb_xplat_cxx_library(
|
|
name = "ukernels_neon_fp16arith",
|
|
srcs = select({
|
|
"DEFAULT": [],
|
|
"ovr_config//cpu:arm32": PROD_NEONFP16ARITH_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",
|
|
] + select({
|
|
"DEFAULT": [],
|
|
"ovr_config//cpu:arm32": [
|
|
"-marm",
|
|
"-march=armv8.2-a+fp16",
|
|
"-mfpu=neon-fp-armv8",
|
|
],
|
|
}),
|
|
fbobjc_preprocessor_flags = [
|
|
"-DXNN_PRIVATE=",
|
|
"-DXNN_INTERNAL=",
|
|
],
|
|
labels = labels,
|
|
platform_compiler_flags = [
|
|
(
|
|
"(aarch32|arm32|armv7)",
|
|
[
|
|
"-marm",
|
|
"-march=armv8.2-a+fp16",
|
|
"-mfpu=neon-fp-armv8",
|
|
],
|
|
),
|
|
],
|
|
platform_srcs = [
|
|
(
|
|
"(aarch32|arm32|armv7)",
|
|
PROD_NEONFP16ARITH_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,
|
|
windows_compiler_flags_override = WINDOWS_FLAGS,
|
|
deps = [
|
|
":interface",
|
|
third_party("FP16"),
|
|
],
|
|
)
|
|
|
|
fb_xplat_cxx_library(
|
|
name = "ukernels_neon_fp16arith_aarch64",
|
|
srcs = select({
|
|
"DEFAULT": [],
|
|
"ovr_config//cpu:arm64": PROD_NEONFP16ARITH_MICROKERNEL_SRCS + PROD_NEONFP16ARITH_AARCH64_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",
|
|
] + select({
|
|
"DEFAULT": [],
|
|
"ovr_config//cpu:arm64": ["-march=armv8.2-a+fp16"],
|
|
}),
|
|
fbobjc_preprocessor_flags = [
|
|
"-DXNN_PRIVATE=",
|
|
"-DXNN_INTERNAL=",
|
|
],
|
|
labels = labels,
|
|
platform_compiler_flags = [
|
|
(
|
|
"(aarch64|arm64)",
|
|
[
|
|
"-march=armv8.2-a+fp16",
|
|
],
|
|
),
|
|
],
|
|
platform_srcs = [
|
|
(
|
|
"(aarch64|arm64)",
|
|
PROD_NEONFP16ARITH_MICROKERNEL_SRCS + PROD_NEONFP16ARITH_AARCH64_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,
|
|
windows_compiler_flags_override = WINDOWS_FLAGS,
|
|
deps = [
|
|
":interface",
|
|
third_party("FP16"),
|
|
],
|
|
)
|
|
|
|
fb_xplat_cxx_library(
|
|
name = "ukernels_neonfma_i8mm",
|
|
srcs = PROD_NEONI8MM_MICROKERNEL_SRCS,
|
|
headers = subdir_glob([
|
|
("XNNPACK/src", "**/*.h"),
|
|
("XNNPACK/src", "**/*.c"),
|
|
]),
|
|
header_namespace = "",
|
|
apple_sdks = (IOS, MACOSX, APPLETVOS),
|
|
compiler_flags = [
|
|
"-O2",
|
|
] + select({
|
|
"DEFAULT": [],
|
|
"ovr_config//cpu:arm32": [
|
|
"-marm",
|
|
"-march=armv8.2-a+i8mm+fp16",
|
|
"-mfpu=neon-fp-armv8",
|
|
],
|
|
"ovr_config//cpu:arm64": [
|
|
"-march=armv8.2-a+i8mm+fp16",
|
|
],
|
|
}),
|
|
fbobjc_preprocessor_flags = [
|
|
"-DXNN_PRIVATE=",
|
|
"-DXNN_INTERNAL=",
|
|
],
|
|
labels = labels,
|
|
platform_compiler_flags = [
|
|
(
|
|
"(aarch32|arm32|armv7)$",
|
|
[
|
|
"-marm",
|
|
"-march=armv8.2-a+i8mm+fp16",
|
|
"-mfpu=neon-fp-armv8",
|
|
],
|
|
),
|
|
(
|
|
"(arm64|aarch64)",
|
|
[
|
|
"-march=armv8.2-a+i8mm+fp16",
|
|
],
|
|
),
|
|
],
|
|
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",
|
|
] + select({
|
|
"DEFAULT": [],
|
|
"ovr_config//cpu:arm32": [
|
|
"-marm",
|
|
"-march=armv8.2-a+dotprod+fp16",
|
|
"-mfpu=neon-fp-armv8",
|
|
],
|
|
}),
|
|
fbobjc_preprocessor_flags = [
|
|
"-DXNN_PRIVATE=",
|
|
"-DXNN_INTERNAL=",
|
|
],
|
|
labels = labels,
|
|
platform_compiler_flags = [
|
|
(
|
|
"(aarch32|arm32|armv7)",
|
|
[
|
|
"-marm",
|
|
"-march=armv8.2-a+dotprod+fp16",
|
|
"-mfpu=neon-fp-armv8",
|
|
],
|
|
),
|
|
],
|
|
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",
|
|
] + select({
|
|
"DEFAULT": [],
|
|
"ovr_config//cpu:arm64": [
|
|
"-march=armv8.2-a+fp16+dotprod",
|
|
],
|
|
}),
|
|
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_fp16arith",
|
|
":ukernels_neon_dot_fp16arith_aarch64",
|
|
":ukernels_neon_dot",
|
|
":ukernels_neon_dot_aarch64",
|
|
":ukernels_neon_fma",
|
|
":ukernels_neon_fp16",
|
|
":ukernels_neon_fp16arith",
|
|
":ukernels_neon_fp16arith_aarch64",
|
|
":ukernels_neon_v8",
|
|
":ukernels_neonfma_aarch64",
|
|
":ukernels_neonfma_i8mm",
|
|
],
|
|
)
|
|
|
|
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",
|
|
":ukernels_avx512vbmi",
|
|
":ukernels_avx512vnni",
|
|
":ukernels_avx512vnnigfni",
|
|
# ":ukernels_avxvnni" Excluding avxvnni microkernels because they fail on older compilers
|
|
],
|
|
)
|
|
|
|
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",
|
|
":ukernels_avx512vbmi",
|
|
":ukernels_avx512vnni_ovr_win32",
|
|
":ukernels_avx512vnnigfni_ovr_win32",
|
|
# ":ukernels_avxvnni_ovr_win32" Excluding avxvnni microkernels because they fail on older compilers
|
|
],
|
|
)
|
|
|
|
fb_xplat_cxx_library(
|
|
name = "arm_lib",
|
|
apple_sdks = (IOS, MACOSX, APPLETVOS),
|
|
labels = labels,
|
|
preferred_linkage = "static",
|
|
visibility = ["PUBLIC"],
|
|
deps = [
|
|
":jit_memory",
|
|
":ukernels_armsimd32",
|
|
":ukernels_asm_aarch32",
|
|
":ukernels_asm_aarch64",
|
|
":ukernels_neon",
|
|
":ukernels_neon_aarch64",
|
|
":ukernels_neon_dot",
|
|
":ukernels_neon_dot_aarch64",
|
|
":ukernels_neon_dot_fp16arith",
|
|
":ukernels_neon_dot_fp16arith_aarch64",
|
|
":ukernels_neon_fma",
|
|
":ukernels_neon_fp16",
|
|
":ukernels_neon_fp16arith",
|
|
":ukernels_neon_fp16arith_aarch64",
|
|
":ukernels_neon_v8",
|
|
":ukernels_neonfma_aarch64",
|
|
":ukernels_neonfma_i8mm",
|
|
":ukernels_fp16arith",
|
|
],
|
|
)
|
|
|
|
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",
|
|
],
|
|
)
|
|
|
|
fb_xplat_cxx_library(
|
|
name = "prod_ukernels",
|
|
apple_sdks = (IOS, MACOSX, APPLETVOS),
|
|
labels = labels,
|
|
preferred_linkage = "static",
|
|
visibility = ["PUBLIC"],
|
|
deps = [
|
|
":ukernels_scalar",
|
|
] + 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:platform010": [":x86_and_x86_64_lib"],
|
|
}),
|
|
)
|
|
|
|
fb_xplat_cxx_library(
|
|
name = "XNNPACK",
|
|
apple_sdks = (IOS, MACOSX, APPLETVOS),
|
|
labels = labels,
|
|
deps = [
|
|
":subgraph",
|
|
":tables",
|
|
":prod_ukernels",
|
|
third_party("cpuinfo"),
|
|
third_party("pthreadpool"),
|
|
],
|
|
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_U8_OPERATORS",
|
|
"-DXNN_NO_X32_OPERATORS",
|
|
"-DXNN_NO_X8_OPERATORS",
|
|
"-DXNN_ENABLE_MEMOPT",
|
|
"-DXNN_ENABLE_SPARSE=0",
|
|
"-DXNN_ENABLE_JIT=0",
|
|
"-DXNN_ENABLE_ASSEMBLY",
|
|
"-DXNN_ENABLE_GEMM_M_SPECIALIZATION",
|
|
"-DXNN_ENABLE_ARM_DOTPROD",
|
|
"-DXNN_ENABLE_CPUINFO",
|
|
"-DXNN_ENABLE_ARM_I8MM=1",
|
|
"-DXNN_ENABLE_ARM_FP16_VECTOR=1",
|
|
"-DXNN_ENABLE_AVXVNNI=0",
|
|
],
|
|
srcs = XNNPACK_SRCS + LOGGING_SRCS + OPERATOR_SRCS + [
|
|
"XNNPACK/src/configs/hardware-config.c",
|
|
"XNNPACK/src/microkernel-utils.c",
|
|
"XNNPACK/src/operator-run.c",
|
|
"XNNPACK/src/packing.c",
|
|
"XNNPACK/src/cache.c",
|
|
"XNNPACK/src/indirection.c",
|
|
"XNNPACK/src/operator-utils.c",
|
|
"XNNPACK/src/normalization.c",
|
|
"XNNPACK/src/allocator.c",
|
|
"XNNPACK/src/memory.c",
|
|
"XNNPACK/src/mutex.c",
|
|
"XNNPACK/src/microparams-init.c",
|
|
"XNNPACK/src/operators/post-operation.c",
|
|
],
|
|
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 [],
|
|
)
|