blob: 1cf7775ea853b64ca0e88614587f0e1a71fe31b6 [file] [log] [blame]
# Copyright 2023 The IREE Authors
#
# Licensed under the Apache License v2.0 with LLVM Exceptions.
# See https://llvm.org/LICENSE.txt for license information.
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
if(NOT IREE_BUILD_EXPERIMENTAL_CPU_UKERNEL_PLUGINS)
return()
endif()
add_subdirectory(test)
include(iree_experimental_system_plugin.cmake)
include(iree_experimental_standalone_plugin.cmake)
iree_experimental_system_plugin(
NAME
builtin_ukernel_system_plugin
SRCS
plugin.c
DEPS
iree::builtins::ukernel
)
set(IREE_UK_X86_64_AVX2_FMA_COPTS
"-mavx2"
"-mfma"
)
set(IREE_UK_X86_64_AVX512_BASE_COPTS
${IREE_UK_X86_64_AVX2_FMA_COPTS}
"-mavx512f"
"-mavx512vl"
"-mavx512cd"
"-mavx512bw"
"-mavx512dq"
)
set(IREE_UK_X86_64_AVX512_VNNI_COPTS
${IREE_UK_X86_64_AVX512_BASE_COPTS}
"-mavx512vnni"
)
set(IREE_UK_ARM_64_DOTPROD_COPTS
"-march=armv8.2-a+dotprod"
)
set(IREE_UK_ARM_64_I8MM_COPTS
"-march=armv8.2-a+i8mm"
)
iree_experimental_standalone_plugin(
NAME
builtin_ukernel_standalone_plugin
ARCHS
"x86_64"
"arm_64"
SRCS
plugin.c
# ukernel/arch/ file come before ukernel/ (non-arch) files because they
# contains symbols that should override weak symbols in ukernel/weak.c.
"x86_64:runtime/src/iree/builtins/ukernel/arch/x86_64/query_tile_sizes_x86_64.c"
"x86_64:runtime/src/iree/builtins/ukernel/arch/x86_64/unpack_x86_64.c"
"x86_64:runtime/src/iree/builtins/ukernel/arch/x86_64/pack_x86_64.c"
"x86_64:runtime/src/iree/builtins/ukernel/arch/x86_64/mmt4d_x86_64.c"
"x86_64:runtime/src/iree/builtins/ukernel/arch/x86_64/mmt4d_x86_64_avx2_fma.c:IREE_UK_X86_64_AVX2_FMA_COPTS"
"x86_64:runtime/src/iree/builtins/ukernel/arch/x86_64/pack_x86_64_avx2_fma.c:IREE_UK_X86_64_AVX2_FMA_COPTS"
"x86_64:runtime/src/iree/builtins/ukernel/arch/x86_64/unpack_x86_64_avx2_fma.c:IREE_UK_X86_64_AVX2_FMA_COPTS"
"x86_64:runtime/src/iree/builtins/ukernel/arch/x86_64/unpack_x86_64_avx512_base.c:IREE_UK_X86_64_AVX512_BASE_COPTS"
"x86_64:runtime/src/iree/builtins/ukernel/arch/x86_64/mmt4d_x86_64_avx512_base.c:IREE_UK_X86_64_AVX512_BASE_COPTS"
"x86_64:runtime/src/iree/builtins/ukernel/arch/x86_64/pack_x86_64_avx512_base.c:IREE_UK_X86_64_AVX512_BASE_COPTS"
"x86_64:runtime/src/iree/builtins/ukernel/arch/x86_64/mmt4d_x86_64_avx512_vnni.c:IREE_UK_X86_64_AVX512_VNNI_COPTS"
"arm_64:runtime/src/iree/builtins/ukernel/arch/arm_64/query_tile_sizes_arm_64.c"
"arm_64:runtime/src/iree/builtins/ukernel/arch/arm_64/mmt4d_arm_64.c"
"arm_64:runtime/src/iree/builtins/ukernel/arch/arm_64/pack_arm_64.c"
"arm_64:runtime/src/iree/builtins/ukernel/arch/arm_64/unpack_arm_64.c"
"arm_64:runtime/src/iree/builtins/ukernel/arch/arm_64/mmt4d_arm_64_dotprod.c:IREE_UK_ARM_64_DOTPROD_COPTS"
"arm_64:runtime/src/iree/builtins/ukernel/arch/arm_64/mmt4d_arm_64_i8mm.c:IREE_UK_ARM_64_I8MM_COPTS"
runtime/src/iree/builtins/ukernel/mmt4d.c
runtime/src/iree/builtins/ukernel/mmt4d_tile.c
runtime/src/iree/builtins/ukernel/unpack_tile.c
runtime/src/iree/builtins/ukernel/pack.c
runtime/src/iree/builtins/ukernel/query_tile_sizes.c
runtime/src/iree/builtins/ukernel/unpack.c
runtime/src/iree/builtins/ukernel/pack_tile.c
runtime/src/iree/builtins/ukernel/weak.c
)