blob: 7593f6cdb3b367e4bad99bef6c79ce62cfb92bf7 [file] [edit]
# 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_cxx_library",
"xnnpack_kleidiai_defines",
"xnnpack_test_deps_for_library",
"xnnpack_unit_test",
)
MICROKERNEL_TEST_DEPS = [
"//:buffer",
":next_prime",
":replicable_random_device",
"//:aligned_allocator",
"//:all_microkernels",
"//:allocator",
"//:common",
"//:datatype",
"//:fp16",
"//:hardware_config",
"//:isa_checks",
"//:math",
"//:memory",
"//:microkernels_h",
"//:microparams_init",
"//:microparams",
"//:packing",
"//:params",
"//:quantization",
"//:requantization",
"//:xnnpack_h",
]
############################## Testing utilities ###############################
xnnpack_cxx_library(
name = "replicable_random_device",
testonly = True,
hdrs = ["replicable_random_device.h"],
deps = xnnpack_test_deps_for_library() + ["//:common"],
)
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 micro-kernels #########################
[xnnpack_unit_test(
name = "%s_test" % kernel,
srcs = [
"%s.cc" % kernel.replace("_", "-"),
],
deps = MICROKERNEL_TEST_DEPS + [
":unary_ops",
":vunary_microkernel_tester",
],
) for kernel in [
"f16_f32_vcvt",
"f16_qs8_vcvt",
"f16_qu8_vcvt",
"f16_vabs",
"f16_vapproxgelu",
"f16_vclamp",
"f16_vcos",
"f16_velu",
"f16_vexp",
"f16_vgelu",
"f16_vhswish",
"f16_vlrelu",
"f16_vneg",
"f16_vrndd",
"f16_vrndne",
"f16_vrndu",
"f16_vrndz",
"f16_vrsqrt",
"f16_vsigmoid",
"f16_vsin",
"f16_vsqr",
"f16_vsqrt",
"f16_vtanh",
"f32_f16_vcvt",
"f32_qs8_vcvt",
"f32_qu8_vcvt",
"f32_vabs",
"f32_vapproxgelu",
"f32_vclamp",
"f32_vcos",
"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_vsin",
"f32_vsqr",
"f32_vsqrt",
"f32_vtanh",
"qs8_f16_vcvt",
"qs8_f32_vcvt",
"qs8_vcvt",
"qs8_vlrelu",
"qu8_f32_vcvt",
"qu8_vcvt",
"qu8_vlrelu",
"s8_vclamp",
"u8_vclamp",
]]
[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",
"qs8_vprelu",
"qs8_vpreluc",
"qs8_vrpreluc",
"qu8_vadd_minmax",
"qu8_vaddc_minmax",
"qu8_vmul_minmax_fp32",
"qu8_vmul_minmax_rndnu",
"qu8_vmulc_minmax_fp32",
"qu8_vmulc_minmax_rndnu",
"qu8_vprelu",
"qu8_vpreluc",
"qu8_vrpreluc",
]]
[xnnpack_unit_test(
name = "%s_test" % test,
srcs = ["%s.cc" % test.replace("_", "-")],
deps = MICROKERNEL_TEST_DEPS,
) for test in [
"rminmax",
"rsum",
"rdminmax",
"rdsum",
]]
[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", 5),
("f32_dwconv", 5),
("f32_dwconv_minmax", 5),
("qs8_qc8w_dwconv_minmax_fp32", 10),
("qs8_dwconv_minmax_fp32", 10),
("qs8_dwconv_minmax_rndnu", 1),
("qu8_dwconv_minmax_fp32", 5),
("qu8_dwconv_minmax_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 = "bf16_f32_gemm_minmax_test",
srcs = [
"bf16-f32-gemm-minmax.cc",
],
deps = MICROKERNEL_TEST_DEPS + [
":gemm_microkernel_tester",
],
)
xnnpack_unit_test(
name = "avgpool_minmax_test",
srcs = ["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 = "pf32_gemm_minmax_test",
srcs = [
"pf32-gemm-minmax.cc",
],
defines = xnnpack_kleidiai_defines(),
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 = "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",
],
shard_count = 5,
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",
],
shard_count = 10,
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 = "qp8_f32_qc8w_gemm_minmax_test",
timeout = "moderate",
srcs = [
"qp8-f32-qc8w-gemm-minmax.cc",
],
defines = xnnpack_kleidiai_defines(),
deps = MICROKERNEL_TEST_DEPS + [
":gemm_microkernel_tester",
],
)
xnnpack_unit_test(
name = "qs8_qc4w_gemm_minmax_fp32_test",
timeout = "moderate",
srcs = [
"qs8-qc4w-gemm-minmax-fp32.cc",
],
shard_count = 5,
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",
],
shard_count = 5,
deps = MICROKERNEL_TEST_DEPS + [
":gemm_microkernel_tester",
],
)
xnnpack_unit_test(
name = "pqs8_qc8w_gemm_minmax_test",
timeout = "moderate",
srcs = [
"pqs8-qc8w-gemm-minmax.cc",
],
shard_count = 1,
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",
],
shard_count = 5,
deps = MICROKERNEL_TEST_DEPS + [
":gemm_microkernel_tester",
],
)
xnnpack_unit_test(
name = "qs8_qc8w_igemm_minmax_fp32_test",
timeout = "long",
srcs = [
"qs8-qc8w-igemm-minmax-fp32.cc",
"qs8-qc8w-igemm-minmax-fp32-2.cc",
"qs8-qc8w-igemm-minmax-fp32-3.cc",
],
shard_count = 10,
deps = MICROKERNEL_TEST_DEPS + [
":gemm_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 = [
"u8-lut32norm.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_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",
"x16_x32_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 = "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,
)
############################### Misc unit tests ###############################
xnnpack_unit_test(
name = "buffer_test",
srcs = [
"buffer.cc",
],
deps = [
":replicable_random_device",
"//:buffer",
],
)
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 = "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",
],
)