CMake: Add configuration for ruy targets
This is required to build iree_tools_iree-run-module
Closes https://github.com/google/iree/pull/666
COPYBARA_INTEGRATE_REVIEW=https://github.com/google/iree/pull/666 from iml130:cmake-ruy ae58f87f2f91afbcada0844bb53bf2603ffb0648
PiperOrigin-RevId: 293196014
diff --git a/build_tools/third_party/ruy/CMakeLists.txt b/build_tools/third_party/ruy/CMakeLists.txt
index dd19f95..b405112 100644
--- a/build_tools/third_party/ruy/CMakeLists.txt
+++ b/build_tools/third_party/ruy/CMakeLists.txt
@@ -32,6 +32,8 @@
"-Wno-unused-local-typedef"
)
set(RUY_COPTS_AVX2)
+set(RUY_COPTS_AVX_VNNI)
+set(RUY_COPTS_SSE42)
set(RUY_COPTS_SKYLAKE)
external_cc_library(
@@ -180,6 +182,28 @@
PACKAGE
ruy
NAME
+ prepacked_cache
+ ROOT
+ ${RUY_SRC_ROOT}
+ SRCS
+ "prepacked_cache.cc"
+ HDRS
+ "prepacked_cache.h"
+ COPTS
+ ${RUY_COPTS_BASE}
+ DEPS
+ gemmlowp::profiler
+ ruy::allocator
+ ruy::matrix
+ ruy::opt_set
+ ruy::platform
+ ruy::time
+)
+
+external_cc_library(
+ PACKAGE
+ ruy
+ NAME
allocator
ROOT
${RUY_SRC_ROOT}
@@ -629,6 +653,128 @@
PACKAGE
ruy
NAME
+ kernel_sse42
+ ROOT
+ ${RUY_SRC_ROOT}
+ SRCS
+ "kernel_sse42.cc"
+ COPTS
+ ${RUY_COPTS_BASE}
+ ${RUY_COPTS_SSE42}
+ DEPS
+ gemmlowp::profiler
+ ruy::check_macros
+ ruy::kernel_common
+ ruy::opt_set
+ ruy::platform
+)
+
+external_cc_library(
+ PACKAGE
+ ruy
+ NAME
+ pack_sse42
+ ROOT
+ ${RUY_SRC_ROOT}
+ SRCS
+ "pack_sse42.cc"
+ COPTS
+ ${RUY_COPTS_BASE}
+ ${RUY_COPTS_SSE42}
+ DEPS
+ gemmlowp::profiler
+ ruy::check_macros
+ ruy::matrix
+ ruy::opt_set
+ ruy::pack_common
+ ruy::path
+ ruy::platform
+)
+
+external_cc_library(
+ PACKAGE
+ ruy
+ NAME
+ have_built_path_for_sse42
+ ROOT
+ ${RUY_SRC_ROOT}
+ SRCS
+ "have_built_path_for_sse42.cc"
+ HDRS
+ "have_built_path_for.h"
+ COPTS
+ ${RUY_COPTS_BASE}
+ ${RUY_COPTS_SSE42}
+ DEPS
+ ruy::opt_set
+ ruy::platform
+)
+
+external_cc_library(
+ PACKAGE
+ ruy
+ NAME
+ kernel_avxvnni
+ ROOT
+ ${RUY_SRC_ROOT}
+ SRCS
+ "kernel_avxvnni.cc"
+ COPTS
+ ${RUY_COPTS_BASE}
+ ${RUY_COPTS_SKYLAKE}
+ DEPS
+ gemmlowp::profiler
+ ruy::check_macros
+ ruy::kernel_common
+ ruy::opt_set
+ ruy::platform
+)
+
+external_cc_library(
+ PACKAGE
+ ruy
+ NAME
+ pack_avxvnni
+ ROOT
+ ${RUY_SRC_ROOT}
+ SRCS
+ "pack_avxvnni.cc"
+ COPTS
+ ${RUY_COPTS_BASE}
+ ${RUY_COPTS_AVX_VNNI}
+ DEPS
+ gemmlowp::profiler
+ ruy::check_macros
+ ruy::matrix
+ ruy::opt_set
+ ruy::pack_common
+ ruy::path
+ ruy::platform
+)
+
+external_cc_library(
+ PACKAGE
+ ruy
+ NAME
+ have_built_path_for_avxvnni
+ ROOT
+ ${RUY_SRC_ROOT}
+ SRCS
+ "have_built_path_for_avxvnni.cc"
+ HDRS
+ "have_built_path_for.h"
+ COPTS
+ ${RUY_COPTS_BASE}
+ ${RUY_COPTS_AVX_VNNI}
+ DEPS
+ ruy::opt_set
+ ruy::platform
+)
+
+external_cc_library(
+ PACKAGE
+ ruy
+ NAME
kernel
ROOT
${RUY_SRC_ROOT}
@@ -646,7 +792,9 @@
ruy::kernel_arm
ruy::kernel_avx2
ruy::kernel_avx512
+ ruy::kernel_avxvnni
ruy::kernel_common
+ ruy::kernel_sse42
ruy::matrix
ruy::opt_set
ruy::path
@@ -679,7 +827,9 @@
ruy::pack_arm # fixdeps: keep
ruy::pack_avx2 # fixdeps: keep
ruy::pack_avx512 # fixdeps: keep
+ ruy::pack_avxvnni
ruy::pack_common
+ ruy::pack_sse42
ruy::path
ruy::platform
ruy::tune
@@ -697,6 +847,8 @@
DEPS
ruy::have_built_path_for_avx2
ruy::have_built_path_for_avx512
+ ruy::have_built_path_for_avxvnni
+ ruy::have_built_path_for_sse42
ruy::platform
)
@@ -721,6 +873,7 @@
ruy::have_built_path_for
ruy::path
ruy::platform
+ ruy::prepacked_cache
ruy::thread_pool
ruy::trace
ruy::tune
@@ -802,6 +955,7 @@
ruy::opt_set
ruy::pack
ruy::path
+ ruy::prepacked_cache
ruy::side_pair
ruy::size_util
ruy::spec