From fc94f4d23abd4bc427b701f54ad85282e9ec7872 Mon Sep 17 00:00:00 2001 From: Michael Tyler Date: Tue, 4 Jun 2024 15:47:37 +0100 Subject: Update CPU kernels and add mixed sign GEMM support - Add support for mixed sign quantized convolution. - Add support for mixed sign dequantized GEMM. - Add SME FP16 GEMV kernel. - Change SME vector length function to use RDSVL instead of static variable. - Add GEMM dilation support internally (not exposed yet). - Remove unused "get_default_activation_values" functions. - Add SVE fixed format interleaved BF16 DOT kernel. - Updates and optimizations to assembly kernels. Resolves COMPMID-6926 Change-Id: I227f502502611d4cc4111c89e30c53ce94079544 Signed-off-by: Michael Tyler Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/11570 Tested-by: Arm Jenkins Reviewed-by: Gunes Bayir Comments-Addressed: Arm Jenkins Benchmark: Arm Jenkins --- src/core/NEON/kernels/arm_gemm/gemm_bf16bf16.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'src/core/NEON/kernels/arm_gemm/gemm_bf16bf16.cpp') diff --git a/src/core/NEON/kernels/arm_gemm/gemm_bf16bf16.cpp b/src/core/NEON/kernels/arm_gemm/gemm_bf16bf16.cpp index aa761b46e4..1e4de4a39e 100644 --- a/src/core/NEON/kernels/arm_gemm/gemm_bf16bf16.cpp +++ b/src/core/NEON/kernels/arm_gemm/gemm_bf16bf16.cpp @@ -32,12 +32,12 @@ namespace arm_gemm { -static const GemmImplementation gemm_bf16bf16_methods[] = +static const GemmImplementation gemm_bf16bf16_methods[] = { #ifdef __aarch64__ #ifdef ARM_COMPUTE_ENABLE_BF16 #ifdef ARM_COMPUTE_ENABLE_FIXED_FORMAT_KERNELS -GemmImplementation::with_estimate( +GemmImplementation::with_estimate( GemmMethod::GEMM_INTERLEAVED, "a64_ffinterleaved_bf16fp32_mmla_8x12", KernelWeightFormat::VL256_BL64, @@ -45,7 +45,7 @@ GemmImplementation::with_estimate( [](const GemmArgs &args) { return GemmInterleavedFixedFormat::estimate_cycles(args); }, [](const GemmArgs &args) { return new GemmInterleavedFixedFormat(args); } ), -GemmImplementation::with_estimate( +GemmImplementation::with_estimate( GemmMethod::GEMM_INTERLEAVED, "sve_ffinterleaved_bf16fp32_mmla_8x3VL", KernelWeightFormat::VL2VL_BL64, @@ -66,14 +66,14 @@ GemmImplementation::with_estimate( }; template<> -const GemmImplementation *gemm_implementation_list() { +const GemmImplementation *gemm_implementation_list() { return gemm_bf16bf16_methods; } /* Explicitly instantiate the external functions for these types. */ -template UniqueGemmCommon gemm(const GemmArgs &args, const Nothing &); -template bool has_opt_gemm(WeightFormat &weight_format, const GemmArgs &args, const Nothing &); -template KernelDescription get_gemm_method(const GemmArgs &args, const Nothing &); -template std::vector get_compatible_kernels(const GemmArgs &args, const Nothing &); +template UniqueGemmCommon gemm(const GemmArgs &args, const Nothing &); +template bool has_opt_gemm(WeightFormat &weight_format, const GemmArgs &args, const Nothing &); +template KernelDescription get_gemm_method(const GemmArgs &args, const Nothing &); +template std::vector get_compatible_kernels(const GemmArgs &args, const Nothing &); } // namespace arm_gemm -- cgit v1.2.1