Update cpuinfo and ruy to the latest revision

This includes recent improvements to the CMake build. Furthermore, since
the latest revisions of cpuinfo contains Bazel build support, we no
longer need the custom build files.
This commit is contained in:
Petr Hosek 2022-06-13 11:35:41 -07:00
parent 28c2d9a08b
commit 7ae85f871a
13 changed files with 22 additions and 508 deletions

View File

@ -520,7 +520,7 @@ target_link_libraries(tensorflow-lite
fft2d_fftsg2d
flatbuffers
gemmlowp
ruy
ruy::ruy
${CMAKE_DL_LIBS}
${TFLITE_TARGET_DEPENDENCIES}
)

View File

@ -23,7 +23,7 @@ OverridableFetchContent_Declare(
clog
GIT_REPOSITORY https://github.com/pytorch/cpuinfo
# Sync with tensorflow/third_party/clog/workspace.bzl
GIT_TAG d5e37adf1406cf899d7d9ec1d317c47506ccb970
GIT_TAG 082deffc80ce517f81dc2f3aebe6ba671fcd09c9
GIT_PROGRESS TRUE
SOURCE_DIR "${CMAKE_BINARY_DIR}/clog"
)

View File

@ -23,7 +23,7 @@ OverridableFetchContent_Declare(
cpuinfo
GIT_REPOSITORY https://github.com/pytorch/cpuinfo
# Sync with tensorflow/third_party/cpuinfo/workspace.bzl
GIT_TAG 5916273f79a21551890fd3d56fc5375a78d1598d
GIT_TAG 082deffc80ce517f81dc2f3aebe6ba671fcd09c9
GIT_PROGRESS TRUE
SOURCE_DIR "${CMAKE_BINARY_DIR}/cpuinfo"
)

View File

@ -23,7 +23,7 @@ OverridableFetchContent_Declare(
ruy
GIT_REPOSITORY https://github.com/google/ruy
# Sync with tensorflow/third_party/ruy/workspace.bzl
GIT_TAG e6c1b8dc8a8b00ee74e7268aac8b18d7260ab1ce
GIT_TAG 841ea4172ba904fe3536789497f9565f2ef64129
GIT_PROGRESS TRUE
SOURCE_DIR "${CMAKE_BINARY_DIR}/ruy"
)

View File

@ -194,11 +194,11 @@ filegroup(
"@arm_neon_2_x86_sse//:LICENSE",
"@astunparse_archive//:LICENSE",
"@boringssl//:LICENSE",
"@clog//:LICENSE",
"@com_google_absl//:LICENSE",
"@com_google_protobuf//:LICENSE",
"@com_googlesource_code_re2//:LICENSE",
"@cpuinfo//:LICENSE",
"@cpuinfo//deps/clog:LICENSE",
"@curl//:COPYING",
"@dill_archive//:LICENSE",
"@dlpack//:LICENSE",

View File

@ -20,8 +20,6 @@ load("//third_party/llvm:setup.bzl", "llvm_setup")
load("//third_party/FP16:workspace.bzl", FP16 = "repo")
load("//third_party/absl:workspace.bzl", absl = "repo")
load("//third_party/benchmark:workspace.bzl", benchmark = "repo")
load("//third_party/clog:workspace.bzl", clog = "repo")
load("//third_party/cpuinfo:workspace.bzl", cpuinfo = "repo")
load("//third_party/dlpack:workspace.bzl", dlpack = "repo")
load("//third_party/eigen3:workspace.bzl", eigen3 = "repo")
load("//third_party/farmhash:workspace.bzl", farmhash = "repo")
@ -57,8 +55,6 @@ def _initialize_third_party():
FP16()
absl()
benchmark()
clog() # Note: needed only by XNNPACK, at some point it should be removed
cpuinfo()
dlpack()
eigen3()
farmhash()
@ -154,6 +150,20 @@ def _tf_repositories():
urls = tf_mirror_urls("https://github.com/Maratyszcza/pthreadpool/archive/b8374f80e42010941bda6c85b0e3f1a1bd77a1e0.zip"),
)
tf_http_archive(
name = "clog",
strip_prefix = "cpuinfo-082deffc80ce517f81dc2f3aebe6ba671fcd09c9",
sha256 = "4379348ec3127b37e854a0a66f85ea1d3c606e5f3a6dce235dc9c69ce663c026",
urls = tf_mirror_urls("https://github.com/pytorch/cpuinfo/archive/082deffc80ce517f81dc2f3aebe6ba671fcd09c9.tar.gz"),
)
tf_http_archive(
name = "cpuinfo",
strip_prefix = "cpuinfo-082deffc80ce517f81dc2f3aebe6ba671fcd09c9",
sha256 = "4379348ec3127b37e854a0a66f85ea1d3c606e5f3a6dce235dc9c69ce663c026",
urls = tf_mirror_urls("https://github.com/pytorch/cpuinfo/archive/082deffc80ce517f81dc2f3aebe6ba671fcd09c9.tar.gz"),
)
tf_http_archive(
name = "cudnn_frontend_archive",
build_file = "//third_party:cudnn_frontend.BUILD",

View File

@ -1 +0,0 @@
# This empty BUILD file is required to make Bazel treat this directory as a package.

View File

@ -1,55 +0,0 @@
# Description:
# C-style (a-la printf) logging library
package(default_visibility = ["//visibility:public"])
licenses(["notice"])
exports_files(["LICENSE"])
cc_library(
name = "clog",
srcs = [
"deps/clog/src/clog.c",
],
hdrs = [
"deps/clog/include/clog.h",
],
copts = select({
":windows": [],
"//conditions:default": ["-Wno-unused-result"],
}),
defines = select({
# When linkstatic=False, we need default visibility
":macos_x86_64": ["CLOG_VISIBILITY="],
"//conditions:default": [],
}),
linkopts = select({
":android": ["-llog"],
"//conditions:default": [],
}),
linkstatic = select({
# https://github.com/bazelbuild/bazel/issues/11552
":macos_x86_64": False,
"//conditions:default": True,
}),
strip_include_prefix = "deps/clog/include",
)
config_setting(
name = "android",
values = {"crosstool_top": "//external:android/crosstool"},
)
config_setting(
name = "windows",
values = {"cpu": "x64_windows"},
)
config_setting(
name = "macos_x86_64",
values = {
"apple_platform_type": "macos",
"cpu": "darwin",
},
)

View File

@ -1,12 +0,0 @@
"""Loads the clog library, used by cpuinfo and XNNPACK."""
load("//third_party:repo.bzl", "tf_http_archive", "tf_mirror_urls")
def repo():
tf_http_archive(
name = "clog",
strip_prefix = "cpuinfo-d5e37adf1406cf899d7d9ec1d317c47506ccb970",
sha256 = "3f2dc1970f397a0e59db72f9fca6ff144b216895c1d606f6c94a507c1e53a025",
urls = tf_mirror_urls("https://github.com/pytorch/cpuinfo/archive/d5e37adf1406cf899d7d9ec1d317c47506ccb970.tar.gz"),
build_file = "//third_party/clog:clog.BUILD",
)

View File

@ -1 +0,0 @@
# This empty BUILD file is required to make Bazel treat this directory as a package.

View File

@ -1,415 +0,0 @@
# cpuinfo, a library to detect information about the host CPU
package(default_visibility = ["//visibility:public"])
licenses(["notice"])
exports_files(["LICENSE"])
C99OPTS = [
"-std=gnu99", # gnu99, not c99, because dprintf is used
"-Wno-vla",
"-D_GNU_SOURCE=1", # to use CPU_SETSIZE
"-DCPUINFO_INTERNAL=",
"-DCPUINFO_PRIVATE=",
]
# Source code common to all platforms.
COMMON_SRCS = [
"src/api.c",
"src/init.c",
"src/cache.c",
]
# Architecture-specific sources and headers.
X86_SRCS = [
"src/x86/cache/descriptor.c",
"src/x86/cache/deterministic.c",
"src/x86/cache/init.c",
"src/x86/info.c",
"src/x86/init.c",
"src/x86/isa.c",
"src/x86/name.c",
"src/x86/topology.c",
"src/x86/uarch.c",
"src/x86/vendor.c",
]
ARM_SRCS = [
"src/arm/cache.c",
"src/arm/uarch.c",
]
# Platform-specific sources and headers
LINUX_SRCS = [
"src/linux/cpulist.c",
"src/linux/multiline.c",
"src/linux/processors.c",
"src/linux/smallfile.c",
]
MOCK_LINUX_SRCS = [
"src/linux/mockfile.c",
]
MACH_SRCS = [
"src/mach/topology.c",
]
EMSCRIPTEN_SRCS = [
"src/emscripten/init.c",
]
LINUX_X86_SRCS = [
"src/x86/linux/cpuinfo.c",
"src/x86/linux/init.c",
]
LINUX_ARM_SRCS = [
"src/arm/linux/chipset.c",
"src/arm/linux/clusters.c",
"src/arm/linux/cpuinfo.c",
"src/arm/linux/hwcap.c",
"src/arm/linux/init.c",
"src/arm/linux/midr.c",
]
LINUX_ARM32_SRCS = LINUX_ARM_SRCS + ["src/arm/linux/aarch32-isa.c"]
LINUX_ARM64_SRCS = LINUX_ARM_SRCS + ["src/arm/linux/aarch64-isa.c"]
ANDROID_ARM_SRCS = [
"src/arm/android/properties.c",
]
WINDOWS_X86_SRCS = [
"src/x86/windows/init.c",
]
MACH_X86_SRCS = [
"src/x86/mach/init.c",
]
MACH_ARM_SRCS = [
"src/arm/mach/init.c",
]
EMSCRIPTEN_SRCS = [
"src/emscripten/init.c",
]
cc_library(
name = "cpuinfo_impl",
srcs = select({
":linux_x86_64": COMMON_SRCS + X86_SRCS + LINUX_SRCS + LINUX_X86_SRCS,
":linux_arm": COMMON_SRCS + ARM_SRCS + LINUX_SRCS + LINUX_ARM32_SRCS,
":linux_armhf": COMMON_SRCS + ARM_SRCS + LINUX_SRCS + LINUX_ARM32_SRCS,
":linux_armv7a": COMMON_SRCS + ARM_SRCS + LINUX_SRCS + LINUX_ARM32_SRCS,
":linux_armeabi": COMMON_SRCS + ARM_SRCS + LINUX_SRCS + LINUX_ARM32_SRCS,
":linux_aarch64": COMMON_SRCS + ARM_SRCS + LINUX_SRCS + LINUX_ARM64_SRCS,
":linux_mips64": COMMON_SRCS + LINUX_SRCS,
":linux_riscv64": COMMON_SRCS + LINUX_SRCS,
":linux_s390x": COMMON_SRCS + LINUX_SRCS,
":linux_ppc64le": COMMON_SRCS + LINUX_SRCS,
":macos_x86_64": COMMON_SRCS + X86_SRCS + MACH_SRCS + MACH_X86_SRCS,
":macos_arm64": COMMON_SRCS + MACH_SRCS + MACH_ARM_SRCS,
":windows_x86_64": COMMON_SRCS + X86_SRCS + WINDOWS_X86_SRCS,
":android_armv7": COMMON_SRCS + ARM_SRCS + LINUX_SRCS + LINUX_ARM32_SRCS + ANDROID_ARM_SRCS,
":android_arm64": COMMON_SRCS + ARM_SRCS + LINUX_SRCS + LINUX_ARM64_SRCS + ANDROID_ARM_SRCS,
":android_x86": COMMON_SRCS + X86_SRCS + LINUX_SRCS + LINUX_X86_SRCS,
":android_x86_64": COMMON_SRCS + X86_SRCS + LINUX_SRCS + LINUX_X86_SRCS,
":ios_x86_64": COMMON_SRCS + X86_SRCS + MACH_SRCS + MACH_X86_SRCS,
":ios_x86": COMMON_SRCS + X86_SRCS + MACH_SRCS + MACH_X86_SRCS,
":ios_armv7": COMMON_SRCS + MACH_SRCS + MACH_ARM_SRCS,
":ios_arm64": COMMON_SRCS + MACH_SRCS + MACH_ARM_SRCS,
":ios_arm64e": COMMON_SRCS + MACH_SRCS + MACH_ARM_SRCS,
":ios_sim_arm64": COMMON_SRCS + MACH_SRCS + MACH_ARM_SRCS,
":watchos_x86_64": COMMON_SRCS + X86_SRCS + MACH_SRCS + MACH_X86_SRCS,
":watchos_x86": COMMON_SRCS + X86_SRCS + MACH_SRCS + MACH_X86_SRCS,
":watchos_armv7k": COMMON_SRCS + MACH_SRCS + MACH_ARM_SRCS,
":watchos_arm64_32": COMMON_SRCS + MACH_SRCS + MACH_ARM_SRCS,
":tvos_x86_64": COMMON_SRCS + X86_SRCS + MACH_SRCS + MACH_X86_SRCS,
":tvos_arm64": COMMON_SRCS + MACH_SRCS + MACH_ARM_SRCS,
":emscripten_wasm": COMMON_SRCS + EMSCRIPTEN_SRCS,
}),
copts = select({
":windows_x86_64": [],
"//conditions:default": C99OPTS,
}) + [
"-Iexternal/cpuinfo/include",
"-Iexternal/cpuinfo/src",
],
linkstatic = select({
# https://github.com/bazelbuild/bazel/issues/11552
":macos_x86_64": False,
"//conditions:default": True,
}),
# Headers must be in textual_hdrs to allow us to set the standard to C99
textual_hdrs = [
"include/cpuinfo.h",
"src/linux/api.h",
"src/mach/api.h",
"src/cpuinfo/common.h",
"src/cpuinfo/internal-api.h",
"src/cpuinfo/log.h",
"src/cpuinfo/utils.h",
"src/x86/api.h",
"src/x86/cpuid.h",
"src/x86/linux/api.h",
"src/arm/android/api.h",
"src/arm/linux/api.h",
"src/arm/linux/cp.h",
"src/arm/api.h",
"src/arm/midr.h",
],
deps = [
"@clog",
],
)
cc_library(
name = "cpuinfo",
hdrs = [
"include/cpuinfo.h",
],
strip_include_prefix = "include",
deps = [
":cpuinfo_impl",
],
)
cc_library(
name = "cpuinfo_with_unstripped_include_path",
hdrs = [
"include/cpuinfo.h",
],
deps = [
":cpuinfo_impl",
],
)
############################# Build configurations #############################
config_setting(
name = "linux_x86_64",
values = {"cpu": "k8"},
)
config_setting(
name = "linux_arm",
values = {"cpu": "arm"},
)
config_setting(
name = "linux_armhf",
values = {"cpu": "armhf"},
)
config_setting(
name = "linux_armv7a",
values = {"cpu": "armv7a"},
)
config_setting(
name = "linux_armeabi",
values = {"cpu": "armeabi"},
)
config_setting(
name = "linux_aarch64",
values = {"cpu": "aarch64"},
)
config_setting(
name = "linux_mips64",
values = {"cpu": "mips64"},
)
config_setting(
name = "linux_riscv64",
values = {"cpu": "riscv64"},
)
config_setting(
name = "linux_s390x",
values = {"cpu": "s390x"},
)
config_setting(
name = "linux_ppc64le",
values = {"cpu": "ppc"},
)
config_setting(
name = "macos_x86_64",
values = {
"apple_platform_type": "macos",
"cpu": "darwin",
},
)
config_setting(
name = "windows_x86_64",
values = {"cpu": "x64_windows"},
)
config_setting(
name = "android_armv7",
values = {
"crosstool_top": "//external:android/crosstool",
"cpu": "armeabi-v7a",
},
visibility = ["//visibility:public"],
)
config_setting(
name = "android_arm64",
values = {
"crosstool_top": "//external:android/crosstool",
"cpu": "arm64-v8a",
},
visibility = ["//visibility:public"],
)
config_setting(
name = "android_x86",
values = {
"crosstool_top": "//external:android/crosstool",
"cpu": "x86",
},
visibility = ["//visibility:public"],
)
config_setting(
name = "android_x86_64",
values = {
"crosstool_top": "//external:android/crosstool",
"cpu": "x86_64",
},
visibility = ["//visibility:public"],
)
config_setting(
name = "ios_armv7",
values = {
"apple_platform_type": "ios",
"cpu": "ios_armv7",
},
)
config_setting(
name = "ios_arm64",
values = {
"apple_platform_type": "ios",
"cpu": "ios_arm64",
},
)
config_setting(
name = "ios_sim_arm64",
values = {
"apple_platform_type": "ios",
"cpu": "ios_sim_arm64",
},
)
config_setting(
name = "ios_arm64e",
values = {
"apple_platform_type": "ios",
"cpu": "ios_arm64e",
},
)
config_setting(
name = "macos_arm64",
values = {
"apple_platform_type": "macos",
"cpu": "darwin_arm64",
},
)
config_setting(
name = "ios_x86",
values = {
"apple_platform_type": "ios",
"cpu": "ios_i386",
},
)
config_setting(
name = "ios_x86_64",
values = {
"apple_platform_type": "ios",
"cpu": "ios_x86_64",
},
)
config_setting(
name = "watchos_armv7k",
values = {
"apple_platform_type": "watchos",
"cpu": "watchos_armv7k",
},
)
config_setting(
name = "watchos_arm64_32",
values = {
"apple_platform_type": "watchos",
"cpu": "watchos_arm64_32",
},
)
config_setting(
name = "watchos_x86",
values = {
"apple_platform_type": "watchos",
"cpu": "watchos_i386",
},
)
config_setting(
name = "watchos_x86_64",
values = {
"apple_platform_type": "watchos",
"cpu": "watchos_x86_64",
},
)
config_setting(
name = "tvos_arm64",
values = {
"apple_platform_type": "tvos",
"cpu": "tvos_arm64",
},
)
config_setting(
name = "tvos_x86_64",
values = {
"apple_platform_type": "tvos",
"cpu": "tvos_x86_64",
},
)
config_setting(
name = "emscripten_wasm",
values = {
"cpu": "wasm",
},
)
config_setting(
name = "emscripten_wasmsimd",
values = {
"cpu": "wasm",
"features": "wasm_simd",
},
)
config_setting(
name = "emscripten_asmjs",
values = {
"cpu": "asmjs",
},
)

View File

@ -1,12 +0,0 @@
"""Loads the cpuinfo library, used by XNNPACK."""
load("//third_party:repo.bzl", "tf_http_archive", "tf_mirror_urls")
def repo():
tf_http_archive(
name = "cpuinfo",
strip_prefix = "cpuinfo-9fa621933fc6080b96fa0f037cdc7cd2c69ab272",
sha256 = "810708948128be2da882a5a3ca61eb6db40186bac9180d205a7ece43597b5fc3",
urls = tf_mirror_urls("https://github.com/pytorch/cpuinfo/archive/9fa621933fc6080b96fa0f037cdc7cd2c69ab272.tar.gz"),
build_file = "//third_party/cpuinfo:cpuinfo.BUILD",
)

View File

@ -6,9 +6,9 @@ def repo():
tf_http_archive(
name = "ruy",
# LINT.IfChange
sha256 = "fa9a0b9041095817bc3533f7b125c3b4044570c0b3ee6c436d2d29dae001c06b",
strip_prefix = "ruy-e6c1b8dc8a8b00ee74e7268aac8b18d7260ab1ce",
urls = tf_mirror_urls("https://github.com/google/ruy/archive/e6c1b8dc8a8b00ee74e7268aac8b18d7260ab1ce.zip"),
sha256 = "dd6bf40322303cf8982f340e4139397c8fa350ff691d5254599cb21e0138fc65",
strip_prefix = "ruy-841ea4172ba904fe3536789497f9565f2ef64129",
urls = tf_mirror_urls("https://github.com/google/ruy/archive/841ea4172ba904fe3536789497f9565f2ef64129.zip"),
# LINT.ThenChange(//tensorflow/lite/tools/cmake/modules/ruy.cmake)
build_file = "//third_party/ruy:BUILD",
)