|
- 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 [],
- )
|