2211 lines
45 KiB
Python
2211 lines
45 KiB
Python
# Copyright 2023 Google LLC
|
|
#
|
|
# This source code is licensed under the BSD-style license found in the
|
|
# LICENSE file in the root directory of this source tree.
|
|
|
|
load(
|
|
"//:build_defs.bzl",
|
|
"xnnpack_binary",
|
|
"xnnpack_cxx_library",
|
|
"xnnpack_kleidiai_defines",
|
|
"xnnpack_test_deps_for_library",
|
|
"xnnpack_unit_test",
|
|
)
|
|
load(
|
|
"//:build_params.bzl",
|
|
# "xnnpack_select_if",
|
|
"xnnpack_simd_copts_for_arch",
|
|
"xnnpack_simd_f16_archs",
|
|
"xnnpack_simd_f32_archs",
|
|
"xnnpack_simd_s16_archs",
|
|
"xnnpack_simd_s32_archs",
|
|
"xnnpack_simd_s8_archs",
|
|
)
|
|
|
|
MICROKERNEL_TEST_DEPS = [
|
|
"//:buffer",
|
|
":next_prime",
|
|
":replicable_random_device",
|
|
"//:aligned_allocator",
|
|
"//:all_microkernels",
|
|
"//:allocator",
|
|
"//:common",
|
|
"//:datatype",
|
|
"//:fp16",
|
|
"//:isa_checks",
|
|
"//:math",
|
|
"//:memory",
|
|
"//:microkernels_h",
|
|
"//:microparams_init",
|
|
"//:microparams",
|
|
"//:packing",
|
|
"//:params",
|
|
"//:quantization",
|
|
"//:requantization",
|
|
"//:xnnpack_h",
|
|
]
|
|
|
|
OPERATOR_TEST_DEPS = [
|
|
"//:buffer",
|
|
":replicable_random_device",
|
|
"@pthreadpool",
|
|
"//:aligned_allocator",
|
|
"//:allocator",
|
|
"//:cache",
|
|
"//:common",
|
|
"//:datatype",
|
|
"//:fp16",
|
|
"//:internal",
|
|
"//:math",
|
|
"//:microkernel_configs",
|
|
"//:microparams",
|
|
"//:normalization",
|
|
"//:params",
|
|
"//:quantization",
|
|
"//:XNNPACK",
|
|
]
|
|
|
|
############################## Testing utilities ###############################
|
|
|
|
xnnpack_cxx_library(
|
|
name = "replicable_random_device",
|
|
testonly = True,
|
|
hdrs = ["replicable_random_device.h"],
|
|
deps = xnnpack_test_deps_for_library(),
|
|
)
|
|
|
|
xnnpack_cxx_library(
|
|
name = "operator_test_utils",
|
|
testonly = True,
|
|
hdrs = ["operator-test-utils.h"],
|
|
deps = [":replicable_random_device"],
|
|
)
|
|
|
|
xnnpack_cxx_library(
|
|
name = "next_prime",
|
|
testonly = True,
|
|
srcs = ["next_prime.cc"],
|
|
hdrs = ["next_prime.h"],
|
|
)
|
|
|
|
xnnpack_cxx_library(
|
|
name = "gemm_microkernel_tester",
|
|
testonly = True,
|
|
srcs = ["gemm-microkernel-tester.cc"],
|
|
hdrs = ["gemm-microkernel-tester.h"],
|
|
deps = MICROKERNEL_TEST_DEPS + xnnpack_test_deps_for_library() + [
|
|
"//:XNNPACK",
|
|
"//:config_hdrs",
|
|
],
|
|
)
|
|
|
|
xnnpack_cxx_library(
|
|
name = "unary_ops",
|
|
testonly = True,
|
|
srcs = ["unary-ops.cc"],
|
|
hdrs = ["unary-ops.h"],
|
|
deps = MICROKERNEL_TEST_DEPS + ["//:reference_ukernels"] + xnnpack_test_deps_for_library(),
|
|
)
|
|
|
|
xnnpack_cxx_library(
|
|
name = "vunary_microkernel_tester",
|
|
testonly = True,
|
|
hdrs = ["vunary-microkernel-tester.h"],
|
|
deps = MICROKERNEL_TEST_DEPS + xnnpack_test_deps_for_library() + [":unary_ops"],
|
|
)
|
|
|
|
xnnpack_cxx_library(
|
|
name = "vbinary_microkernel_tester",
|
|
testonly = True,
|
|
srcs = ["vbinary-microkernel-tester.cc"],
|
|
hdrs = ["vbinary-microkernel-tester.h"],
|
|
deps = MICROKERNEL_TEST_DEPS + xnnpack_test_deps_for_library(),
|
|
)
|
|
|
|
xnnpack_cxx_library(
|
|
name = "dwconv_microkernel_tester",
|
|
testonly = True,
|
|
srcs = ["dwconv-microkernel-tester.cc"],
|
|
hdrs = ["dwconv-microkernel-tester.h"],
|
|
deps = MICROKERNEL_TEST_DEPS + xnnpack_test_deps_for_library() + [
|
|
"//:microkernel_utils",
|
|
],
|
|
)
|
|
|
|
xnnpack_cxx_library(
|
|
name = "rdsum_microkernel_tester",
|
|
testonly = True,
|
|
hdrs = ["rdsum-microkernel-tester.h"],
|
|
deps = MICROKERNEL_TEST_DEPS + xnnpack_test_deps_for_library(),
|
|
)
|
|
|
|
xnnpack_cxx_library(
|
|
name = "packq_microkernel_tester",
|
|
testonly = True,
|
|
srcs = ["packq-microkernel-tester.cc"],
|
|
hdrs = ["packq-microkernel-tester.h"],
|
|
deps = MICROKERNEL_TEST_DEPS + xnnpack_test_deps_for_library(),
|
|
)
|
|
|
|
####################### Unit tests for microkernel lists #######################
|
|
# TODO: b/381390736 - Reenable once fixed.
|
|
#sh_test(
|
|
# name = "microkernel_lists_test",
|
|
# size = "small",
|
|
# srcs = ["microkernel_lists_test.sh"],
|
|
# data = [
|
|
# "//:cmake_microkernel_lists",
|
|
# "//:generated_microkernel_lists",
|
|
# "//gen:bzl_microkernel_lists",
|
|
# ],
|
|
# target_compatible_with = xnnpack_select_if(
|
|
# "//build_config:linux",
|
|
# [],
|
|
# ["@platforms//:incompatible"],
|
|
# ),
|
|
#)
|
|
|
|
######################### Unit tests for simd wrappers #########################
|
|
[xnnpack_unit_test(
|
|
name = "f32_simd_" + arch + "_test",
|
|
srcs = [
|
|
"f32-simd-" + arch + ".cc",
|
|
],
|
|
copts = xnnpack_simd_copts_for_arch(arch),
|
|
deps = [
|
|
":replicable_random_device",
|
|
"//:buffer",
|
|
"//:common",
|
|
"//:isa_checks",
|
|
"//:microkernels_h",
|
|
],
|
|
) for arch in xnnpack_simd_f32_archs()]
|
|
|
|
[xnnpack_unit_test(
|
|
name = "f16_simd_" + arch + "_test",
|
|
srcs = [
|
|
"f16-simd-" + arch + ".cc",
|
|
],
|
|
copts = xnnpack_simd_copts_for_arch(arch),
|
|
deps = [
|
|
":replicable_random_device",
|
|
"//:buffer",
|
|
"//:common",
|
|
"//:fp16",
|
|
"//:isa_checks",
|
|
"//:microkernels_h",
|
|
],
|
|
) for arch in xnnpack_simd_f16_archs()]
|
|
|
|
[xnnpack_unit_test(
|
|
name = "s16_simd_" + arch + "_test",
|
|
srcs = [
|
|
"s16-simd-" + arch + ".cc",
|
|
],
|
|
copts = xnnpack_simd_copts_for_arch(arch),
|
|
deps = [
|
|
":replicable_random_device",
|
|
"//:buffer",
|
|
"//:common",
|
|
"//:isa_checks",
|
|
"//:microkernels_h",
|
|
],
|
|
) for arch in xnnpack_simd_s16_archs()]
|
|
|
|
[xnnpack_unit_test(
|
|
name = "s32_simd_" + arch + "_test",
|
|
srcs = [
|
|
"s32-simd-" + arch + ".cc",
|
|
],
|
|
copts = xnnpack_simd_copts_for_arch(arch),
|
|
deps = [
|
|
":replicable_random_device",
|
|
"//:buffer",
|
|
"//:common",
|
|
"//:isa_checks",
|
|
"//:microkernels_h",
|
|
],
|
|
) for arch in xnnpack_simd_s32_archs()]
|
|
|
|
[xnnpack_unit_test(
|
|
name = "s8_simd_" + arch + "_test",
|
|
srcs = [
|
|
"s8-simd-" + arch + ".cc",
|
|
],
|
|
copts = xnnpack_simd_copts_for_arch(arch),
|
|
deps = [
|
|
":replicable_random_device",
|
|
"//:buffer",
|
|
"//:common",
|
|
"//:isa_checks",
|
|
"//:microkernels_h",
|
|
],
|
|
) for arch in xnnpack_simd_s8_archs()]
|
|
|
|
######################### Unit tests for micro-kernels #########################
|
|
|
|
[xnnpack_unit_test(
|
|
name = "%s_test" % kernel,
|
|
srcs = [
|
|
"%s.cc" % kernel.replace("_", "-"),
|
|
],
|
|
deps = MICROKERNEL_TEST_DEPS + [":vunary_microkernel_tester"],
|
|
) for kernel in [
|
|
"f16_vabs",
|
|
"f16_vclamp",
|
|
"f16_velu",
|
|
"f16_vhswish",
|
|
"f16_vlrelu",
|
|
"f16_vneg",
|
|
"f16_vrndd",
|
|
"f16_vrndne",
|
|
"f16_vrndu",
|
|
"f16_vrndz",
|
|
"f16_vrsqrt",
|
|
"f16_vsigmoid",
|
|
"f16_vsqr",
|
|
"f16_vsqrt",
|
|
"f16_vtanh",
|
|
"f32_vabs",
|
|
"f32_vclamp",
|
|
"f32_velu",
|
|
"f32_vexp",
|
|
"f32_vgelu",
|
|
"f32_vhswish",
|
|
"f32_vlog",
|
|
"f32_vlrelu",
|
|
"f32_vneg",
|
|
"f32_vrelu",
|
|
"f32_vrndd",
|
|
"f32_vrndne",
|
|
"f32_vrndu",
|
|
"f32_vrndz",
|
|
"f32_vrsqrt",
|
|
"f32_vsigmoid",
|
|
"f32_vsqr",
|
|
"f32_vsqrt",
|
|
"f32_vtanh",
|
|
"s8_vclamp",
|
|
"u8_vclamp",
|
|
"qs8_vlrelu",
|
|
"qu8_vlrelu",
|
|
"f16_f32_vcvt",
|
|
"f16_qs8_vcvt",
|
|
"f16_qu8_vcvt",
|
|
"f32_f16_vcvt",
|
|
"f32_qs8_vcvt",
|
|
"f32_qu8_vcvt",
|
|
"s32_f32_vcvt",
|
|
"qs8_f16_vcvt",
|
|
"qs8_f32_vcvt",
|
|
"qs8_vcvt",
|
|
"qu8_vcvt",
|
|
"qu8_f32_vcvt",
|
|
]]
|
|
|
|
[xnnpack_unit_test(
|
|
name = "%s_test" % kernel,
|
|
srcs = [
|
|
"%s.cc" % kernel.replace("_", "-"),
|
|
],
|
|
deps = MICROKERNEL_TEST_DEPS + [":vbinary_microkernel_tester"],
|
|
) for kernel in [
|
|
"f16_vadd",
|
|
"f16_vaddc",
|
|
"f16_vdiv",
|
|
"f16_vdivc",
|
|
"f16_vmax",
|
|
"f16_vmaxc",
|
|
"f16_vmin",
|
|
"f16_vminc",
|
|
"f16_vmul",
|
|
"f16_vmulc",
|
|
"f16_vprelu",
|
|
"f16_vpreluc",
|
|
"f16_vrpreluc",
|
|
"f16_vrdivc",
|
|
"f16_vrsubc",
|
|
"f16_vsqrdiff",
|
|
"f16_vsqrdiffc",
|
|
"f16_vsub",
|
|
"f32_vadd",
|
|
"f32_vaddc",
|
|
"f32_vcopysign",
|
|
"f32_vcopysignc",
|
|
"f32_vdiv",
|
|
"f32_vdivc",
|
|
"f32_vmax",
|
|
"f32_vmaxc",
|
|
"f32_vmin",
|
|
"f32_vminc",
|
|
"f32_vmul",
|
|
"f32_vmulc",
|
|
"f32_vprelu",
|
|
"f32_vpreluc",
|
|
"f32_vrpreluc",
|
|
"f32_vrcopysignc",
|
|
"f32_vrdivc",
|
|
"f32_vrsubc",
|
|
"f32_vsqrdiff",
|
|
"f32_vsqrdiffc",
|
|
"f32_vsub",
|
|
"f32_vsubc",
|
|
"qs8_vadd_minmax",
|
|
"qs8_vaddc_minmax",
|
|
"qs8_vmul_minmax_fp32",
|
|
"qs8_vmul_minmax_rndnu",
|
|
"qs8_vmulc_minmax_fp32",
|
|
"qs8_vmulc_minmax_rndnu",
|
|
"qu8_vadd_minmax",
|
|
"qu8_vaddc_minmax",
|
|
"qu8_vmul_minmax_fp32",
|
|
"qu8_vmul_minmax_rndnu",
|
|
"qu8_vmulc_minmax_fp32",
|
|
"qu8_vmulc_minmax_rndnu",
|
|
]]
|
|
|
|
[xnnpack_unit_test(
|
|
name = "%s_test" % kernel,
|
|
srcs = [
|
|
"%s.cc" % kernel.replace("_", "-"),
|
|
"reduce-microkernel-tester.h",
|
|
],
|
|
deps = MICROKERNEL_TEST_DEPS,
|
|
) for kernel in [
|
|
"f16_rmax",
|
|
"f16_rmin",
|
|
"f16_rminmax",
|
|
"f32_rmax",
|
|
"f32_rmin",
|
|
"f32_rminmax",
|
|
]]
|
|
|
|
[xnnpack_unit_test(
|
|
name = "%s_test" % kernel,
|
|
srcs = [
|
|
"%s.cc" % kernel.replace("_", "-"),
|
|
"rsum-microkernel-tester.h",
|
|
],
|
|
deps = MICROKERNEL_TEST_DEPS,
|
|
) for kernel in [
|
|
"f16_rsum",
|
|
"f16_f32acc_rsum",
|
|
"f32_rsum",
|
|
"qs8_rsum",
|
|
"qu8_rsum",
|
|
]]
|
|
|
|
[xnnpack_unit_test(
|
|
name = "%s_test" % kernel,
|
|
srcs = [
|
|
"%s.cc" % kernel.replace("_", "-"),
|
|
"ibilinear-microkernel-tester.h",
|
|
],
|
|
deps = MICROKERNEL_TEST_DEPS,
|
|
) for kernel in [
|
|
"f32_ibilinear",
|
|
"f32_ibilinear_chw",
|
|
"f16_ibilinear",
|
|
"f16_ibilinear_chw",
|
|
"s8_ibilinear",
|
|
"u8_ibilinear",
|
|
]]
|
|
|
|
[xnnpack_unit_test(
|
|
name = "%s_test" % kernel,
|
|
timeout = "moderate",
|
|
srcs = [
|
|
"%s.cc" % kernel.replace("_", "-"),
|
|
],
|
|
shard_count = shard_count,
|
|
deps = MICROKERNEL_TEST_DEPS + [
|
|
":dwconv_microkernel_tester",
|
|
],
|
|
) for (kernel, shard_count) in [
|
|
("f16_dwconv_minmax_multipass", 5),
|
|
("f16_dwconv_minmax_unipass", 5),
|
|
("f32_dwconv_unipass", 1),
|
|
("f32_dwconv_multipass", 5),
|
|
("f32_dwconv_minmax_unipass", 5),
|
|
("f32_dwconv_minmax_multipass", 5),
|
|
("qs8_qc8w_dwconv_minmax_multipass_fp32", 10),
|
|
("qs8_qc8w_dwconv_minmax_unipass_fp32", 10),
|
|
("qs8_dwconv_minmax_multipass_fp32", 10),
|
|
("qs8_dwconv_minmax_multipass_rndnu", 10),
|
|
("qs8_dwconv_minmax_unipass_fp32", 10),
|
|
("qs8_dwconv_minmax_unipass_rndnu", 1),
|
|
("qu8_dwconv_minmax_multipass_fp32", 10),
|
|
("qu8_dwconv_minmax_multipass_rndnu", 10),
|
|
("qu8_dwconv_minmax_unipass_fp32", 5),
|
|
("qu8_dwconv_minmax_unipass_rndnu", 1),
|
|
]]
|
|
|
|
xnnpack_unit_test(
|
|
name = "maxpool_minmax_test",
|
|
srcs = [
|
|
"maxpool-microkernel-tester.h",
|
|
"maxpool-minmax.cc",
|
|
],
|
|
shard_count = 5,
|
|
deps = MICROKERNEL_TEST_DEPS,
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "bf16_gemm_minmax_test",
|
|
srcs = [
|
|
"bf16-gemm-minmax.cc",
|
|
],
|
|
deps = MICROKERNEL_TEST_DEPS + [
|
|
":gemm_microkernel_tester",
|
|
],
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "avgpool_minmax_test",
|
|
srcs = [
|
|
"avgpool-microkernel-tester.h",
|
|
"avgpool-minmax.cc",
|
|
],
|
|
shard_count = 5,
|
|
deps = MICROKERNEL_TEST_DEPS,
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "f16_f32acc_gemm_minmax_test",
|
|
srcs = [
|
|
"f16-f32acc-gemm-minmax.cc",
|
|
],
|
|
deps = MICROKERNEL_TEST_DEPS + [
|
|
":gemm_microkernel_tester",
|
|
],
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "f16_gemm_minmax_test",
|
|
srcs = [
|
|
"f16-gemm-minmax.cc",
|
|
],
|
|
deps = MICROKERNEL_TEST_DEPS + [
|
|
":gemm_microkernel_tester",
|
|
],
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "f16_f32acc_igemm_minmax_test",
|
|
srcs = [
|
|
"f16-f32acc-igemm-minmax.cc",
|
|
],
|
|
deps = MICROKERNEL_TEST_DEPS + [
|
|
":gemm_microkernel_tester",
|
|
],
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "f16_igemm_minmax_test",
|
|
srcs = [
|
|
"f16-igemm-minmax.cc",
|
|
],
|
|
deps = MICROKERNEL_TEST_DEPS + [
|
|
":gemm_microkernel_tester",
|
|
],
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "f16_spmm_minmax_test",
|
|
srcs = [
|
|
"f16-spmm-minmax.cc",
|
|
"spmm-microkernel-tester.h",
|
|
],
|
|
deps = MICROKERNEL_TEST_DEPS,
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "f16_vmulcaddc_minmax_test",
|
|
srcs = [
|
|
"f16-vmulcaddc-minmax.cc",
|
|
"vmulcaddc-microkernel-tester.h",
|
|
],
|
|
deps = MICROKERNEL_TEST_DEPS,
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "f16_raddstoreexpminusmax_test",
|
|
srcs = [
|
|
"f16-raddstoreexpminusmax.cc",
|
|
"raddstoreexpminusmax-microkernel-tester.h",
|
|
],
|
|
deps = MICROKERNEL_TEST_DEPS,
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "f32_argmaxpool_test",
|
|
srcs = [
|
|
"argmaxpool-microkernel-tester.h",
|
|
"f32-argmaxpool.cc",
|
|
],
|
|
deps = MICROKERNEL_TEST_DEPS,
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "f32_igemm_test",
|
|
srcs = [
|
|
"f32-igemm.cc",
|
|
"f32-igemm-2.cc",
|
|
],
|
|
deps = MICROKERNEL_TEST_DEPS + [
|
|
":gemm_microkernel_tester",
|
|
],
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "f32_igemm_relu_test",
|
|
srcs = [
|
|
"f32-igemm-relu.cc",
|
|
"f32-igemm-relu-2.cc",
|
|
],
|
|
deps = MICROKERNEL_TEST_DEPS + [
|
|
":gemm_microkernel_tester",
|
|
],
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "f32_igemm_minmax_test",
|
|
srcs = [
|
|
"f32-igemm-minmax.cc",
|
|
"f32-igemm-minmax-2.cc",
|
|
],
|
|
deps = MICROKERNEL_TEST_DEPS + [
|
|
":gemm_microkernel_tester",
|
|
],
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "f32_conv_hwc_test",
|
|
srcs = [
|
|
"conv-hwc-microkernel-tester.h",
|
|
"f32-conv-hwc.cc",
|
|
],
|
|
deps = MICROKERNEL_TEST_DEPS,
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "f16_conv_hwc2chw_test",
|
|
srcs = [
|
|
"conv-hwc2chw-microkernel-tester.h",
|
|
"f16-conv-hwc2chw.cc",
|
|
],
|
|
deps = MICROKERNEL_TEST_DEPS,
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "f32_conv_hwc2chw_test",
|
|
srcs = [
|
|
"conv-hwc2chw-microkernel-tester.h",
|
|
"f32-conv-hwc2chw.cc",
|
|
],
|
|
deps = MICROKERNEL_TEST_DEPS,
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "f16_dwconv2d_chw_test",
|
|
srcs = [
|
|
"dwconv2d-microkernel-tester.h",
|
|
"f16-dwconv2d-chw.cc",
|
|
],
|
|
deps = MICROKERNEL_TEST_DEPS,
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "f32_dwconv2d_chw_test",
|
|
srcs = [
|
|
"dwconv2d-microkernel-tester.h",
|
|
"f32-dwconv2d-chw.cc",
|
|
],
|
|
deps = MICROKERNEL_TEST_DEPS,
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "f32_gemm_test",
|
|
srcs = [
|
|
"f32-gemm.cc",
|
|
"f32-gemm-2.cc",
|
|
],
|
|
deps = MICROKERNEL_TEST_DEPS + [
|
|
":gemm_microkernel_tester",
|
|
],
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "f32_gemm_relu_test",
|
|
srcs = [
|
|
"f32-gemm-relu.cc",
|
|
"f32-gemm-relu-2.cc",
|
|
],
|
|
deps = MICROKERNEL_TEST_DEPS + [
|
|
":gemm_microkernel_tester",
|
|
],
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "f32_gemm_minmax_test",
|
|
srcs = [
|
|
"f32-gemm-minmax.cc",
|
|
"f32-gemm-minmax-2.cc",
|
|
],
|
|
deps = MICROKERNEL_TEST_DEPS + [
|
|
":gemm_microkernel_tester",
|
|
],
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "f32_gemm_goi_minmax_test",
|
|
srcs = [
|
|
"f32-gemm-goi-minmax.cc",
|
|
],
|
|
deps = MICROKERNEL_TEST_DEPS + [
|
|
":gemm_microkernel_tester",
|
|
],
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "f32_qc8w_gemm_test",
|
|
srcs = [
|
|
"f32-qc8w-gemm.cc",
|
|
],
|
|
deps = MICROKERNEL_TEST_DEPS + [
|
|
":gemm_microkernel_tester",
|
|
],
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "f32_qc8w_gemm_relu_test",
|
|
srcs = [
|
|
"f32-qc8w-gemm-relu.cc",
|
|
],
|
|
deps = MICROKERNEL_TEST_DEPS + [
|
|
":gemm_microkernel_tester",
|
|
],
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "f32_qc4w_gemm_minmax_test",
|
|
srcs = [
|
|
"f32-qc4w-gemm-minmax.cc",
|
|
],
|
|
deps = MICROKERNEL_TEST_DEPS + [
|
|
":gemm_microkernel_tester",
|
|
],
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "f32_qc8w_gemm_minmax_test",
|
|
srcs = [
|
|
"f32-qc8w-gemm-minmax.cc",
|
|
],
|
|
deps = MICROKERNEL_TEST_DEPS + [
|
|
":gemm_microkernel_tester",
|
|
],
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "f32_gemminc_minmax_test",
|
|
srcs = [
|
|
"f32-gemminc-minmax.cc",
|
|
"f32-gemminc-minmax-2.cc",
|
|
],
|
|
deps = MICROKERNEL_TEST_DEPS + [
|
|
":gemm_microkernel_tester",
|
|
],
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "f32_ppmm_minmax_test",
|
|
srcs = [
|
|
"f32-ppmm-minmax.cc",
|
|
],
|
|
deps = MICROKERNEL_TEST_DEPS + [
|
|
":gemm_microkernel_tester",
|
|
],
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "f32_raddexpminusmax_test",
|
|
srcs = [
|
|
"f32-raddexpminusmax.cc",
|
|
"raddexpminusmax-microkernel-tester.h",
|
|
],
|
|
deps = MICROKERNEL_TEST_DEPS,
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "f32_raddextexp_test",
|
|
srcs = [
|
|
"f32-raddextexp.cc",
|
|
],
|
|
deps = MICROKERNEL_TEST_DEPS,
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "f32_raddstoreexpminusmax_test",
|
|
srcs = [
|
|
"f32-raddstoreexpminusmax.cc",
|
|
"raddstoreexpminusmax-microkernel-tester.h",
|
|
],
|
|
deps = MICROKERNEL_TEST_DEPS,
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "f16_f32acc_rdsum_test",
|
|
srcs = [
|
|
"f16-f32acc-rdsum.cc",
|
|
],
|
|
deps = MICROKERNEL_TEST_DEPS + [":rdsum_microkernel_tester"],
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "f32_rdsum_test",
|
|
srcs = [
|
|
"f32-rdsum.cc",
|
|
],
|
|
deps = MICROKERNEL_TEST_DEPS + [":rdsum_microkernel_tester"],
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "f32_spmm_minmax_test",
|
|
srcs = [
|
|
"f32-spmm-minmax.cc",
|
|
"f32-spmm-minmax-2.cc",
|
|
"f32-spmm-minmax-3.cc",
|
|
"f32-spmm-minmax-4.cc",
|
|
"spmm-microkernel-tester.h",
|
|
],
|
|
deps = MICROKERNEL_TEST_DEPS,
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "f16_vcmul_test",
|
|
srcs = [
|
|
"f16-vcmul.cc",
|
|
"vcmul-microkernel-tester.h",
|
|
],
|
|
deps = MICROKERNEL_TEST_DEPS,
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "f32_vcmul_test",
|
|
srcs = [
|
|
"f32-vcmul.cc",
|
|
"vcmul-microkernel-tester.h",
|
|
],
|
|
deps = MICROKERNEL_TEST_DEPS,
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "f32_vmulcaddc_minmax_test",
|
|
srcs = [
|
|
"f32-vmulcaddc-minmax.cc",
|
|
"vmulcaddc-microkernel-tester.h",
|
|
],
|
|
deps = MICROKERNEL_TEST_DEPS,
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "f32_vscaleexpminusmax_test",
|
|
srcs = [
|
|
"f32-vscaleexpminusmax.cc",
|
|
],
|
|
deps = MICROKERNEL_TEST_DEPS,
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "f32_vscaleextexp_test",
|
|
srcs = [
|
|
"f32-vscaleextexp.cc",
|
|
],
|
|
deps = MICROKERNEL_TEST_DEPS,
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "qd8_f16_qc8w_gemm_minmax_test",
|
|
timeout = "moderate",
|
|
srcs = [
|
|
"qd8-f16-qc8w-gemm-minmax.cc",
|
|
"qd8-f16-qc8w-gemm-minmax-2.cc",
|
|
"qd8-f16-qc8w-gemm-minmax-3.cc",
|
|
"qd8-f16-qc8w-gemm-minmax-4.cc",
|
|
],
|
|
deps = MICROKERNEL_TEST_DEPS + [
|
|
":gemm_microkernel_tester",
|
|
],
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "qd8_f32_qc8w_gemm_minmax_test",
|
|
timeout = "moderate",
|
|
srcs = [
|
|
"qd8-f32-qc8w-gemm-minmax.cc",
|
|
"qd8-f32-qc8w-gemm-minmax-2.cc",
|
|
"qd8-f32-qc8w-gemm-minmax-3.cc",
|
|
"qd8-f32-qc8w-gemm-minmax-4.cc",
|
|
],
|
|
deps = MICROKERNEL_TEST_DEPS + [
|
|
":gemm_microkernel_tester",
|
|
],
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "qd8_f16_qc4w_gemm_minmax_test",
|
|
timeout = "moderate",
|
|
srcs = [
|
|
"qd8-f16-qc4w-gemm-minmax.cc",
|
|
"qd8-f16-qc4w-gemm-minmax-2.cc",
|
|
"qd8-f16-qc4w-gemm-minmax-3.cc",
|
|
"qd8-f16-qc4w-gemm-minmax-4.cc",
|
|
],
|
|
deps = MICROKERNEL_TEST_DEPS + [
|
|
":gemm_microkernel_tester",
|
|
],
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "qd8_f32_qc4w_gemm_minmax_test",
|
|
timeout = "moderate",
|
|
srcs = [
|
|
"qd8-f32-qc4w-gemm-minmax.cc",
|
|
"qd8-f32-qc4w-gemm-minmax-2.cc",
|
|
"qd8-f32-qc4w-gemm-minmax-3.cc",
|
|
"qd8-f32-qc4w-gemm-minmax-4.cc",
|
|
],
|
|
shard_count = 5,
|
|
deps = MICROKERNEL_TEST_DEPS + [
|
|
":gemm_microkernel_tester",
|
|
],
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "qd8_f16_qb4w_gemm_minmax_test",
|
|
timeout = "moderate",
|
|
srcs = [
|
|
"qd8-f16-qb4w-gemm-minmax.cc",
|
|
],
|
|
deps = MICROKERNEL_TEST_DEPS + [
|
|
":gemm_microkernel_tester",
|
|
],
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "qd8_f32_qb4w_gemm_minmax_test",
|
|
timeout = "moderate",
|
|
srcs = [
|
|
"qd8-f32-qb4w-gemm-minmax.cc",
|
|
],
|
|
deps = MICROKERNEL_TEST_DEPS + [
|
|
":gemm_microkernel_tester",
|
|
],
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "qp8_f32_qc4w_gemm_minmax_test",
|
|
timeout = "moderate",
|
|
srcs = [
|
|
"qp8-f32-qc4w-gemm-minmax.cc",
|
|
],
|
|
defines = xnnpack_kleidiai_defines(),
|
|
deps = MICROKERNEL_TEST_DEPS + [
|
|
":gemm_microkernel_tester",
|
|
],
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "qs8_qc8w_gemm_minmax_fp32_test",
|
|
timeout = "moderate",
|
|
srcs = [
|
|
"qs8-qc8w-gemm-minmax-fp32.cc",
|
|
"qs8-qc8w-gemm-minmax-fp32-2.cc",
|
|
"qs8-qc8w-gemm-minmax-fp32-3.cc",
|
|
],
|
|
deps = MICROKERNEL_TEST_DEPS + [
|
|
":gemm_microkernel_tester",
|
|
],
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "qd8_f16_qc8w_igemm_minmax_test",
|
|
timeout = "moderate",
|
|
srcs = [
|
|
"qd8-f16-qc8w-igemm-minmax.cc",
|
|
"qd8-f16-qc8w-igemm-minmax-2.cc",
|
|
"qd8-f16-qc8w-igemm-minmax-3.cc",
|
|
"qd8-f16-qc8w-igemm-minmax-4.cc",
|
|
],
|
|
deps = MICROKERNEL_TEST_DEPS + [
|
|
":gemm_microkernel_tester",
|
|
],
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "qd8_f32_qc8w_igemm_minmax_test",
|
|
srcs = [
|
|
"qd8-f32-qc8w-igemm-minmax.cc",
|
|
"qd8-f32-qc8w-igemm-minmax-2.cc",
|
|
"qd8-f32-qc8w-igemm-minmax-3.cc",
|
|
],
|
|
deps = MICROKERNEL_TEST_DEPS + [
|
|
":gemm_microkernel_tester",
|
|
],
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "qs8_qc8w_igemm_minmax_fp32_test",
|
|
timeout = "moderate",
|
|
srcs = [
|
|
"qs8-qc8w-igemm-minmax-fp32.cc",
|
|
"qs8-qc8w-igemm-minmax-fp32-2.cc",
|
|
"qs8-qc8w-igemm-minmax-fp32-3.cc",
|
|
],
|
|
deps = MICROKERNEL_TEST_DEPS + [
|
|
":gemm_microkernel_tester",
|
|
],
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "qs8_rdsum_minmax_fp32_test",
|
|
srcs = [
|
|
"qs8-rdsum-minmax-fp32.cc",
|
|
],
|
|
deps = MICROKERNEL_TEST_DEPS + [":rdsum_microkernel_tester"],
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "qu8_rdsum_test",
|
|
srcs = [
|
|
"qu8-rdsum.cc",
|
|
],
|
|
deps = MICROKERNEL_TEST_DEPS + [":rdsum_microkernel_tester"],
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "qu8_gemm_minmax_fp32_test",
|
|
srcs = [
|
|
"qu8-gemm-minmax-fp32.cc",
|
|
"qu8-gemm-minmax-fp32-2.cc",
|
|
],
|
|
deps = MICROKERNEL_TEST_DEPS + [
|
|
":gemm_microkernel_tester",
|
|
],
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "qu8_gemm_minmax_rndnu_test",
|
|
srcs = [
|
|
"qu8-gemm-minmax-rndnu.cc",
|
|
"qu8-gemm-minmax-rndnu-2.cc",
|
|
],
|
|
deps = MICROKERNEL_TEST_DEPS + [
|
|
":gemm_microkernel_tester",
|
|
],
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "qu8_igemm_minmax_fp32_test",
|
|
srcs = [
|
|
"qu8-igemm-minmax-fp32.cc",
|
|
"qu8-igemm-minmax-fp32-2.cc",
|
|
],
|
|
deps = MICROKERNEL_TEST_DEPS + [
|
|
":gemm_microkernel_tester",
|
|
],
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "qu8_gemm_minmax_rndnu16_test",
|
|
srcs = [
|
|
"qu8-gemm-minmax-rndnu16.cc",
|
|
],
|
|
deps = MICROKERNEL_TEST_DEPS + [
|
|
":gemm_microkernel_tester",
|
|
],
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "qu8_igemm_minmax_rndnu_test",
|
|
srcs = [
|
|
"qu8-igemm-minmax-rndnu.cc",
|
|
"qu8-igemm-minmax-rndnu-2.cc",
|
|
],
|
|
deps = MICROKERNEL_TEST_DEPS + [
|
|
":gemm_microkernel_tester",
|
|
],
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "u8_lut32norm_test",
|
|
srcs = [
|
|
"lut-norm-microkernel-tester.h",
|
|
"u8-lut32norm.cc",
|
|
],
|
|
deps = MICROKERNEL_TEST_DEPS,
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "u8_rmax_test",
|
|
srcs = [
|
|
"reduce-microkernel-tester.h",
|
|
"u8-rmax.cc",
|
|
],
|
|
deps = MICROKERNEL_TEST_DEPS,
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "x8_lut_test",
|
|
srcs = [
|
|
"lut-microkernel-tester.h",
|
|
"x8-lut.cc",
|
|
],
|
|
deps = MICROKERNEL_TEST_DEPS,
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "x8_zip_test",
|
|
srcs = [
|
|
"x8-zip.cc",
|
|
"zip-microkernel-tester.h",
|
|
],
|
|
deps = MICROKERNEL_TEST_DEPS,
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "x32_packb_test",
|
|
srcs = [
|
|
"packb-microkernel-tester.h",
|
|
"x32-packb.cc",
|
|
],
|
|
deps = MICROKERNEL_TEST_DEPS,
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "x8_packq_test",
|
|
srcs = [
|
|
"x8-packq.cc",
|
|
],
|
|
deps = MICROKERNEL_TEST_DEPS + [
|
|
":packq_microkernel_tester",
|
|
],
|
|
)
|
|
|
|
[xnnpack_unit_test(
|
|
name = "%s_test" % kernel,
|
|
srcs = [
|
|
"packw-microkernel-tester.h",
|
|
"%s.cc" % kernel.replace("_", "-"),
|
|
],
|
|
deps = MICROKERNEL_TEST_DEPS,
|
|
) for kernel in [
|
|
"x8_packw",
|
|
"qs8_packw",
|
|
"qs8_qc4w_packw",
|
|
"x16_packw",
|
|
"x32_packw",
|
|
]]
|
|
|
|
xnnpack_unit_test(
|
|
name = "x32_packx_test",
|
|
srcs = [
|
|
"pack-microkernel-tester.h",
|
|
"x32-packx.cc",
|
|
],
|
|
deps = MICROKERNEL_TEST_DEPS,
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "xN_transpose_test",
|
|
srcs = ["xN-transpose.cc"],
|
|
deps = MICROKERNEL_TEST_DEPS,
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "x32_unpool_test",
|
|
srcs = [
|
|
"unpool-microkernel-tester.h",
|
|
"x32-unpool.cc",
|
|
],
|
|
deps = MICROKERNEL_TEST_DEPS,
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "x32_zip_test",
|
|
srcs = [
|
|
"x32-zip.cc",
|
|
"zip-microkernel-tester.h",
|
|
],
|
|
deps = MICROKERNEL_TEST_DEPS,
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "xx_fill_test",
|
|
srcs = ["xx-fill.cc"],
|
|
deps = MICROKERNEL_TEST_DEPS,
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "xx_pad_test",
|
|
srcs = ["xx-pad.cc"],
|
|
deps = MICROKERNEL_TEST_DEPS,
|
|
)
|
|
|
|
########################## Size tests for the library #########################
|
|
|
|
xnnpack_binary(
|
|
name = "subgraph_size_test",
|
|
srcs = ["subgraph-size.c"],
|
|
deps = ["//:XNNPACK"],
|
|
)
|
|
|
|
########################### Unit tests for operators ##########################
|
|
|
|
xnnpack_unit_test(
|
|
name = "unary_elementwise_nc_test",
|
|
timeout = "long",
|
|
srcs = ["unary-elementwise-nc.cc"],
|
|
deps = OPERATOR_TEST_DEPS + [
|
|
":unary_ops",
|
|
"//:logging",
|
|
"//:operator_h",
|
|
"//:operator_utils",
|
|
],
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "binary_elementwise_nd_test",
|
|
timeout = "long",
|
|
srcs = ["binary-elementwise-nd.cc"],
|
|
shard_count = 10,
|
|
deps = OPERATOR_TEST_DEPS + [
|
|
":operator_test_utils",
|
|
"//:logging",
|
|
"//:operator_utils",
|
|
"//:reference_ukernels",
|
|
],
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "argmax_pooling_nhwc_test",
|
|
srcs = [
|
|
"argmax-pooling-nhwc.cc",
|
|
"argmax-pooling-operator-tester.h",
|
|
],
|
|
deps = OPERATOR_TEST_DEPS,
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "average_pooling_nhwc_test",
|
|
srcs = [
|
|
"average-pooling-nhwc.cc",
|
|
"average-pooling-operator-tester.h",
|
|
],
|
|
shard_count = 5,
|
|
deps = OPERATOR_TEST_DEPS,
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "batch_matrix_multiply_nc_test",
|
|
timeout = "long",
|
|
srcs = [
|
|
"batch-matrix-multiply-nc.cc",
|
|
"batch-matrix-multiply-operator-tester.h",
|
|
],
|
|
shard_count = 2,
|
|
deps = OPERATOR_TEST_DEPS,
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "channel_shuffle_nc_test",
|
|
srcs = [
|
|
"channel-shuffle-nc.cc",
|
|
"channel-shuffle-operator-tester.h",
|
|
],
|
|
deps = OPERATOR_TEST_DEPS,
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "constant_pad_nd_test",
|
|
srcs = [
|
|
"constant-pad-nd.cc",
|
|
"constant-pad-operator-tester.h",
|
|
],
|
|
shard_count = 5,
|
|
deps = OPERATOR_TEST_DEPS,
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "constant_pad_nd_eager_test",
|
|
srcs = [
|
|
"constant-pad-nd-eager.cc",
|
|
"constant-pad-operator-tester.h",
|
|
],
|
|
shard_count = 5,
|
|
deps = OPERATOR_TEST_DEPS,
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "convert_nc_test",
|
|
srcs = [
|
|
"convert-nc.cc",
|
|
],
|
|
deps = OPERATOR_TEST_DEPS + ["//:microkernels_h"],
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "convolution_nhwc_test",
|
|
timeout = "moderate",
|
|
srcs = [
|
|
"convolution-nhwc.cc",
|
|
"convolution-operator-tester.h",
|
|
],
|
|
shard_count = 10,
|
|
deps = OPERATOR_TEST_DEPS + [
|
|
":convolution_test_helpers",
|
|
],
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "convolution_nchw_test",
|
|
timeout = "moderate",
|
|
srcs = [
|
|
"convolution-nchw.cc",
|
|
"convolution-operator-tester.h",
|
|
],
|
|
deps = OPERATOR_TEST_DEPS + [
|
|
":convolution_test_helpers",
|
|
],
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "copy_nc_test",
|
|
srcs = [
|
|
"copy-nc.cc",
|
|
"copy-operator-tester.h",
|
|
],
|
|
deps = OPERATOR_TEST_DEPS,
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "copy_nc_eager_test",
|
|
srcs = [
|
|
"copy-nc-eager.cc",
|
|
"copy-operator-tester.h",
|
|
],
|
|
deps = OPERATOR_TEST_DEPS,
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "deconvolution_nhwc_test",
|
|
timeout = "moderate",
|
|
srcs = [
|
|
"deconvolution-nhwc.cc",
|
|
"deconvolution-nhwc-qd8-f32-qc8w.cc",
|
|
"deconvolution-operator-tester.h",
|
|
],
|
|
shard_count = 10,
|
|
deps = OPERATOR_TEST_DEPS + [
|
|
":convolution_test_helpers",
|
|
],
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "depth_to_space_nchw2nhwc_test",
|
|
srcs = [
|
|
"depth-to-space-nchw2nhwc.cc",
|
|
"depth-to-space-operator-tester.h",
|
|
],
|
|
deps = OPERATOR_TEST_DEPS,
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "depth_to_space_nhwc_test",
|
|
srcs = [
|
|
"depth-to-space-nhwc.cc",
|
|
"depth-to-space-operator-tester.h",
|
|
],
|
|
deps = OPERATOR_TEST_DEPS,
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "dynamic_fully_connected_nc_test",
|
|
srcs = [
|
|
"dynamic-fully-connected-nc.cc",
|
|
"dynamic-fully-connected-operator-tester.h",
|
|
],
|
|
deps = OPERATOR_TEST_DEPS,
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "fully_connected_nc_test",
|
|
srcs = [
|
|
"fully-connected-nc.cc",
|
|
"fully-connected-operator-tester.h",
|
|
],
|
|
deps = OPERATOR_TEST_DEPS + [
|
|
"//:microkernels_h",
|
|
],
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "max_pooling_nhwc_test",
|
|
timeout = "moderate",
|
|
srcs = [
|
|
"max-pooling-nhwc.cc",
|
|
"max-pooling-operator-tester.h",
|
|
],
|
|
shard_count = 10,
|
|
deps = OPERATOR_TEST_DEPS,
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "reduce_nd_test",
|
|
timeout = "moderate",
|
|
srcs = [
|
|
"reduce-nd.cc",
|
|
],
|
|
deps = OPERATOR_TEST_DEPS + [
|
|
"//:logging",
|
|
"//:requantization",
|
|
],
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "slice_normalization_test",
|
|
srcs = [
|
|
"slice-normalization.cc",
|
|
"slice-normalization-tester.h",
|
|
],
|
|
deps = OPERATOR_TEST_DEPS,
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "reduce_normalization_test",
|
|
srcs = [
|
|
"reduce-normalization.cc",
|
|
"reduce-normalization-tester.h",
|
|
],
|
|
deps = OPERATOR_TEST_DEPS,
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "transpose_normalization_test",
|
|
srcs = [
|
|
"transpose-normalization.cc",
|
|
"transpose-normalization-tester.h",
|
|
],
|
|
deps = OPERATOR_TEST_DEPS,
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "resize_bilinear_nhwc_test",
|
|
srcs = [
|
|
"resize-bilinear-nhwc.cc",
|
|
"resize-bilinear-operator-tester.h",
|
|
],
|
|
deps = OPERATOR_TEST_DEPS,
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "resize_bilinear_nchw_test",
|
|
srcs = [
|
|
"resize-bilinear-nchw.cc",
|
|
"resize-bilinear-operator-tester.h",
|
|
],
|
|
deps = OPERATOR_TEST_DEPS,
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "rope_nthc_test",
|
|
srcs = [
|
|
"rope-nthc.cc",
|
|
"rope-operator-tester.h",
|
|
],
|
|
deps = OPERATOR_TEST_DEPS,
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "scaled_dot_product_attention_nhtc_test",
|
|
timeout = "moderate",
|
|
srcs = [
|
|
"scaled-dot-product-attention-nhtc.cc",
|
|
"scaled-dot-product-attention-operator-tester.h",
|
|
],
|
|
deps = OPERATOR_TEST_DEPS,
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "slice_nd_test",
|
|
timeout = "moderate",
|
|
srcs = [
|
|
"slice-nd.cc",
|
|
"slice-operator-tester.h",
|
|
],
|
|
shard_count = 5,
|
|
deps = OPERATOR_TEST_DEPS,
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "slice_nd_eager_test",
|
|
timeout = "moderate",
|
|
srcs = [
|
|
"slice-nd-eager.cc",
|
|
"slice-operator-tester.h",
|
|
],
|
|
deps = OPERATOR_TEST_DEPS,
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "softmax_nc_test",
|
|
srcs = [
|
|
"softmax-nc.cc",
|
|
"softmax-operator-tester.h",
|
|
],
|
|
deps = OPERATOR_TEST_DEPS,
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "space_to_depth_nhwc_test",
|
|
srcs = [
|
|
"space-to-depth-nhwc.cc",
|
|
"space-to-depth-operator-tester.h",
|
|
],
|
|
deps = OPERATOR_TEST_DEPS,
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "transpose_nd_test",
|
|
srcs = [
|
|
"transpose-nd.cc",
|
|
"transpose-operator-tester.h",
|
|
],
|
|
shard_count = 10,
|
|
deps = OPERATOR_TEST_DEPS,
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "transpose_nd_eager_test",
|
|
srcs = [
|
|
"transpose-nd-eager.cc",
|
|
"transpose-operator-tester.h",
|
|
],
|
|
shard_count = 5,
|
|
deps = OPERATOR_TEST_DEPS,
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "unpooling_nhwc_test",
|
|
srcs = [
|
|
"unpooling-nhwc.cc",
|
|
"unpooling-operator-tester.h",
|
|
],
|
|
deps = OPERATOR_TEST_DEPS,
|
|
)
|
|
|
|
########################### Unit tests for subgraph ###########################
|
|
|
|
xnnpack_cxx_library(
|
|
name = "convolution_test_helpers",
|
|
testonly = True,
|
|
srcs = [
|
|
"convolution-test-helpers.cc",
|
|
],
|
|
hdrs = [
|
|
"convolution-test-helpers.h",
|
|
],
|
|
deps = [
|
|
"//:buffer",
|
|
"//:microparams",
|
|
"//:quantization",
|
|
],
|
|
)
|
|
|
|
xnnpack_cxx_library(
|
|
name = "subgraph_unary_tester",
|
|
testonly = True,
|
|
hdrs = [
|
|
"subgraph-unary-tester.h",
|
|
],
|
|
deps = xnnpack_test_deps_for_library() + [
|
|
":replicable_random_device",
|
|
"//:buffer",
|
|
"//:node_type",
|
|
"//:operators",
|
|
"//:requantization",
|
|
"//:subgraph",
|
|
"//:xnnpack_h",
|
|
],
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "unary_test",
|
|
srcs = [
|
|
"unary.cc",
|
|
],
|
|
deps = [
|
|
":replicable_random_device",
|
|
":unary_ops",
|
|
"//:XNNPACK",
|
|
"//:buffer",
|
|
"//:datatype",
|
|
"//:logging",
|
|
"//:operator_utils",
|
|
"//:operators",
|
|
"//:subgraph",
|
|
],
|
|
)
|
|
|
|
[xnnpack_unit_test(
|
|
name = "%s_test" % operator,
|
|
srcs = [
|
|
"%s.cc" % operator.replace("_", "-"),
|
|
],
|
|
deps = [
|
|
":replicable_random_device",
|
|
":subgraph_unary_tester",
|
|
"//:XNNPACK",
|
|
"//:buffer",
|
|
"//:math",
|
|
"//:node_type",
|
|
"//:operators",
|
|
"//:requantization",
|
|
"//:subgraph",
|
|
],
|
|
) for operator in [
|
|
"copy",
|
|
"softmax",
|
|
"space_to_depth_2d",
|
|
"static_constant_pad",
|
|
"static_expand_dims",
|
|
"static_reshape",
|
|
"static_slice",
|
|
"static_transpose",
|
|
]]
|
|
|
|
xnnpack_cxx_library(
|
|
name = "subgraph_binary_tester",
|
|
testonly = True,
|
|
hdrs = [
|
|
"subgraph-binary-tester.h",
|
|
],
|
|
deps = xnnpack_test_deps_for_library() + [
|
|
":replicable_random_device",
|
|
"//:buffer",
|
|
"//:node_type",
|
|
"//:operators",
|
|
"//:requantization",
|
|
"//:subgraph",
|
|
"//:xnnpack_h",
|
|
],
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "workspace_test",
|
|
srcs = [
|
|
"workspace.cc",
|
|
],
|
|
deps = [
|
|
":replicable_random_device",
|
|
"//:XNNPACK",
|
|
"//:allocation_type",
|
|
"//:buffer",
|
|
"//:math",
|
|
"//:subgraph",
|
|
],
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "binary_test",
|
|
srcs = ["binary.cc"],
|
|
deps = [
|
|
":operator_test_utils",
|
|
":replicable_random_device",
|
|
"//:XNNPACK",
|
|
"//:buffer",
|
|
"//:datatype",
|
|
"//:logging",
|
|
"//:math",
|
|
"//:operator_utils",
|
|
"//:operators",
|
|
"//:subgraph",
|
|
],
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "argmax_pooling_2d_test",
|
|
srcs = [
|
|
"argmax-pooling-2d.cc",
|
|
],
|
|
deps = [
|
|
":replicable_random_device",
|
|
"//:XNNPACK",
|
|
"//:buffer",
|
|
"//:common",
|
|
"//:node_type",
|
|
"//:operators",
|
|
"//:subgraph",
|
|
],
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "average_pooling_2d_test",
|
|
srcs = [
|
|
"average-pooling-2d.cc",
|
|
],
|
|
deps = [
|
|
":replicable_random_device",
|
|
"//:XNNPACK",
|
|
"//:buffer",
|
|
"//:common",
|
|
"//:math",
|
|
"//:node_type",
|
|
"//:operator_utils",
|
|
"//:operators",
|
|
"//:subgraph",
|
|
],
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "average_pooling_2d_reshape_test",
|
|
srcs = [
|
|
"average-pooling-2d-reshape.cc",
|
|
],
|
|
deps = [
|
|
"//:XNNPACK",
|
|
"//:node_type",
|
|
"//:subgraph",
|
|
],
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "batch_matrix_multiply_test",
|
|
srcs = [
|
|
"batch-matrix-multiply.cc",
|
|
],
|
|
deps = [
|
|
":replicable_random_device",
|
|
"//:XNNPACK",
|
|
"//:buffer",
|
|
"//:common",
|
|
"//:math",
|
|
"//:node_type",
|
|
"//:operators",
|
|
"//:subgraph",
|
|
],
|
|
)
|
|
|
|
[xnnpack_unit_test(
|
|
name = "concatenate%d_test" % n,
|
|
srcs = [
|
|
"concatenate%d.cc" % n,
|
|
],
|
|
deps = [
|
|
":replicable_random_device",
|
|
"//:XNNPACK",
|
|
"//:buffer",
|
|
"//:math",
|
|
"//:node_type",
|
|
"//:operators",
|
|
"//:subgraph",
|
|
],
|
|
) for n in [
|
|
2,
|
|
3,
|
|
4,
|
|
5,
|
|
]]
|
|
|
|
xnnpack_unit_test(
|
|
name = "convolution_2d_test",
|
|
srcs = [
|
|
"convolution-2d.cc",
|
|
],
|
|
deps = [
|
|
":convolution_test_helpers",
|
|
":replicable_random_device",
|
|
"//:XNNPACK",
|
|
"//:buffer",
|
|
"//:common",
|
|
"//:math",
|
|
"//:node_type",
|
|
"//:operator_utils",
|
|
"//:operators",
|
|
"//:requantization",
|
|
"//:subgraph",
|
|
],
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "deconvolution_2d_test",
|
|
timeout = "moderate",
|
|
srcs = [
|
|
"deconvolution-2d.cc",
|
|
],
|
|
shard_count = 5,
|
|
deps = [
|
|
":replicable_random_device",
|
|
"//:XNNPACK",
|
|
"//:buffer",
|
|
"//:internal",
|
|
"//:math",
|
|
"//:node_type",
|
|
"//:operator_utils",
|
|
"//:operators",
|
|
"//:requantization",
|
|
"//:subgraph",
|
|
],
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "depth_to_space_2d_test",
|
|
srcs = [
|
|
"depth-to-space-2d.cc",
|
|
],
|
|
deps = [
|
|
":replicable_random_device",
|
|
"//:XNNPACK",
|
|
"//:buffer",
|
|
"//:math",
|
|
"//:node_type",
|
|
"//:operators",
|
|
"//:subgraph",
|
|
],
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "depthwise_convolution_2d_test",
|
|
srcs = [
|
|
"depthwise-convolution-2d.cc",
|
|
],
|
|
deps = [
|
|
":convolution_test_helpers",
|
|
":replicable_random_device",
|
|
"//:XNNPACK",
|
|
"//:buffer",
|
|
"//:common",
|
|
"//:math",
|
|
"//:node_type",
|
|
"//:operator_utils",
|
|
"//:operators",
|
|
"//:requantization",
|
|
"//:subgraph",
|
|
],
|
|
)
|
|
|
|
[xnnpack_unit_test(
|
|
name = "even_split%d_test" % n,
|
|
srcs = [
|
|
"even-split%s.cc" % n,
|
|
],
|
|
deps = [
|
|
":replicable_random_device",
|
|
"//:XNNPACK",
|
|
"//:buffer",
|
|
"//:math",
|
|
"//:node_type",
|
|
"//:operators",
|
|
"//:subgraph",
|
|
],
|
|
) for n in [
|
|
2,
|
|
3,
|
|
4,
|
|
]]
|
|
|
|
xnnpack_unit_test(
|
|
name = "fully_connected_test",
|
|
timeout = "moderate",
|
|
srcs = [
|
|
"fully-connected.cc",
|
|
],
|
|
deps = [
|
|
":replicable_random_device",
|
|
"//:XNNPACK",
|
|
"//:buffer",
|
|
"//:common",
|
|
"//:config_hdrs",
|
|
"//:internal",
|
|
"//:math",
|
|
"//:microkernels_h",
|
|
"//:node_type",
|
|
"//:operators",
|
|
"//:requantization",
|
|
"//:subgraph",
|
|
],
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "global_average_pooling_1d_test",
|
|
srcs = [
|
|
"global-average-pooling-1d.cc",
|
|
],
|
|
deps = [
|
|
":replicable_random_device",
|
|
"//:XNNPACK",
|
|
"//:aligned_allocator",
|
|
"//:common",
|
|
"//:math",
|
|
"//:node_type",
|
|
"//:operators",
|
|
"//:requantization",
|
|
"//:subgraph",
|
|
],
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "global_average_pooling_2d_test",
|
|
srcs = [
|
|
"global-average-pooling-2d.cc",
|
|
],
|
|
deps = [
|
|
":replicable_random_device",
|
|
"//:XNNPACK",
|
|
"//:aligned_allocator",
|
|
"//:common",
|
|
"//:math",
|
|
"//:node_type",
|
|
"//:operators",
|
|
"//:requantization",
|
|
"//:subgraph",
|
|
],
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "global_sum_pooling_1d_test",
|
|
srcs = [
|
|
"global-sum-pooling-1d.cc",
|
|
],
|
|
deps = [
|
|
":replicable_random_device",
|
|
"//:XNNPACK",
|
|
"//:aligned_allocator",
|
|
"//:common",
|
|
"//:math",
|
|
"//:node_type",
|
|
"//:operators",
|
|
"//:subgraph",
|
|
],
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "global_sum_pooling_2d_test",
|
|
srcs = [
|
|
"global-sum-pooling-2d.cc",
|
|
],
|
|
deps = [
|
|
":replicable_random_device",
|
|
"//:XNNPACK",
|
|
"//:aligned_allocator",
|
|
"//:common",
|
|
"//:math",
|
|
"//:node_type",
|
|
"//:operators",
|
|
"//:subgraph",
|
|
],
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "max_pooling_2d_test",
|
|
srcs = [
|
|
"max-pooling-2d.cc",
|
|
],
|
|
deps = [
|
|
":replicable_random_device",
|
|
"//:XNNPACK",
|
|
"//:buffer",
|
|
"//:math",
|
|
"//:node_type",
|
|
"//:operator_utils",
|
|
"//:operators",
|
|
"//:requantization",
|
|
"//:subgraph",
|
|
],
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "rope_test",
|
|
srcs = [
|
|
"rope.cc",
|
|
],
|
|
deps = [
|
|
":replicable_random_device",
|
|
"//:XNNPACK",
|
|
"//:buffer",
|
|
"//:math",
|
|
"//:node_type",
|
|
"//:operators",
|
|
"//:subgraph",
|
|
],
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "scaled_dot_product_attention_test",
|
|
srcs = [
|
|
"scaled-dot-product-attention.cc",
|
|
],
|
|
deps = [
|
|
":replicable_random_device",
|
|
"//:XNNPACK",
|
|
"//:aligned_allocator",
|
|
"//:common",
|
|
"//:math",
|
|
"//:node_type",
|
|
"//:subgraph",
|
|
],
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "static_reduce_test",
|
|
srcs = [
|
|
"static-reduce.cc",
|
|
],
|
|
deps = [
|
|
":replicable_random_device",
|
|
"//:XNNPACK",
|
|
"//:buffer",
|
|
"//:common",
|
|
"//:datatype",
|
|
"//:logging",
|
|
"//:math",
|
|
"//:operators",
|
|
"//:subgraph",
|
|
],
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "reshape_helpers_test",
|
|
srcs = [
|
|
"reshape-helpers.cc",
|
|
],
|
|
deps = [
|
|
":replicable_random_device",
|
|
"//:XNNPACK",
|
|
"//:buffer",
|
|
"//:subgraph",
|
|
],
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "static_resize_bilinear_2d_test",
|
|
srcs = [
|
|
"static-resize-bilinear-2d.cc",
|
|
],
|
|
deps = [
|
|
":replicable_random_device",
|
|
"//:XNNPACK",
|
|
"//:buffer",
|
|
"//:math",
|
|
"//:node_type",
|
|
"//:operators",
|
|
"//:subgraph",
|
|
],
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "transpose_reshape_test",
|
|
srcs = [
|
|
"transpose-reshape.cc",
|
|
],
|
|
deps = [
|
|
"//:XNNPACK",
|
|
"//:node_type",
|
|
"//:subgraph",
|
|
],
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "unpooling_2d_test",
|
|
srcs = [
|
|
"unpooling-2d.cc",
|
|
],
|
|
deps = [
|
|
":replicable_random_device",
|
|
"//:XNNPACK",
|
|
"//:buffer",
|
|
"//:node_type",
|
|
"//:operator_utils",
|
|
"//:operators",
|
|
"//:subgraph",
|
|
],
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "fusion_test",
|
|
srcs = [
|
|
"fusion.cc",
|
|
"runtime-tester.h",
|
|
"subgraph-tester.h",
|
|
],
|
|
deps = [
|
|
":replicable_random_device",
|
|
"//:XNNPACK",
|
|
"//:buffer",
|
|
"//:node_type",
|
|
"//:subgraph",
|
|
],
|
|
)
|
|
|
|
############################### Misc unit tests ###############################
|
|
|
|
xnnpack_unit_test(
|
|
name = "runtime_test",
|
|
srcs = [
|
|
"runtime.cc",
|
|
"runtime-tester.h",
|
|
"subgraph-tester.h",
|
|
],
|
|
deps = [
|
|
":replicable_random_device",
|
|
"//:XNNPACK",
|
|
"//:buffer",
|
|
"//:subgraph",
|
|
],
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "subgraph_test",
|
|
srcs = [
|
|
"runtime-tester.h",
|
|
"subgraph.cc",
|
|
"subgraph-tester.h",
|
|
],
|
|
deps = [
|
|
":replicable_random_device",
|
|
"//:XNNPACK",
|
|
"//:buffer",
|
|
"//:subgraph",
|
|
],
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "memory_planner_test",
|
|
srcs = [
|
|
"memory-planner.cc",
|
|
"runtime-tester.h",
|
|
"subgraph-tester.h",
|
|
],
|
|
deps = [
|
|
":replicable_random_device",
|
|
"//:XNNPACK",
|
|
"//:buffer",
|
|
"//:node_type",
|
|
"//:subgraph",
|
|
],
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "subgraph_nchw_test",
|
|
srcs = [
|
|
"subgraph-nchw.cc",
|
|
"subgraph-tester.h",
|
|
],
|
|
deps = [
|
|
":replicable_random_device",
|
|
"//:XNNPACK",
|
|
"//:buffer",
|
|
"//:subgraph",
|
|
],
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "subgraph_fp16_test",
|
|
srcs = [
|
|
"mock-allocator.h",
|
|
"runtime-tester.h",
|
|
"subgraph-fp16.cc",
|
|
"subgraph-tester.h",
|
|
],
|
|
deps = [
|
|
":replicable_random_device",
|
|
"//:XNNPACK",
|
|
"//:allocation_type",
|
|
"//:allocator",
|
|
"//:buffer",
|
|
"//:math",
|
|
"//:node_type",
|
|
"//:params",
|
|
"//:subgraph",
|
|
],
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "weights_cache_test",
|
|
srcs = ["weights-cache.cc"],
|
|
deps = [
|
|
"//:XNNPACK",
|
|
"//:cache",
|
|
"//:common",
|
|
"//:memory",
|
|
],
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "mutex_test",
|
|
srcs = ["mutex.cc"],
|
|
deps = [
|
|
":replicable_random_device",
|
|
"//:common",
|
|
"//:mutex",
|
|
"//:xnnpack_h",
|
|
],
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "microkernel_utils_test",
|
|
srcs = ["microkernel-utils.cc"],
|
|
deps = [
|
|
":replicable_random_device",
|
|
"//:math",
|
|
"//:microkernel_utils",
|
|
"//:params",
|
|
],
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "operator_utils_test",
|
|
srcs = ["operator-utils.cc"],
|
|
deps = [
|
|
"//:microkernel_configs",
|
|
"//:operator_utils",
|
|
],
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "packing_test",
|
|
srcs = [
|
|
"packing.cc",
|
|
],
|
|
deps = MICROKERNEL_TEST_DEPS + [
|
|
"//:microkernel_utils",
|
|
"//:operator_utils",
|
|
],
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "indirection_test",
|
|
srcs = [
|
|
"indirection.cc",
|
|
],
|
|
deps = [
|
|
"//:buffer",
|
|
"//:indirection",
|
|
"//:math",
|
|
"//:operator_utils",
|
|
"//:operators",
|
|
"//:xnnpack_h",
|
|
],
|
|
)
|
|
|
|
xnnpack_unit_test(
|
|
name = "build_identifier_test",
|
|
srcs = [
|
|
"build-identifier.cc",
|
|
],
|
|
deps = [
|
|
"//:XNNPACK",
|
|
],
|
|
)
|