From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.ffmpeg.org (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTPS id C8BF44C9C7 for ; Sat, 12 Jul 2025 09:22:56 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTP id 3509968EFC5; Sat, 12 Jul 2025 12:22:52 +0300 (EEST) Received: from haasn.dev (haasn.dev [78.46.187.166]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTP id 06C8F68EEBD for ; Sat, 12 Jul 2025 12:22:45 +0300 (EEST) Received: from haasn.dev (unknown [10.30.1.1]) by haasn.dev (Postfix) with UTF8SMTP id A113541E71; Sat, 12 Jul 2025 11:22:44 +0200 (CEST) From: Niklas Haas To: ffmpeg-devel@ffmpeg.org Date: Sat, 12 Jul 2025 11:22:42 +0200 Message-ID: <20250712092243.29138-3-ffmpeg@haasn.xyz> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250712092243.29138-1-ffmpeg@haasn.xyz> References: <20250712092243.29138-1-ffmpeg@haasn.xyz> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 3/4] avfilter/x86/scene_sad: add AVX512 implementation X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Niklas Haas Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: From: Niklas Haas Trivial to add, but a lot faster (on my machine). scene_sad8_c: 114476.4 ( 1.00x) scene_sad8_sse2: 8644.3 (13.24x) scene_sad8_avx2: 4520.1 (25.33x) scene_sad8_avx512: 3153.0 (36.31x) --- libavfilter/x86/scene_sad.asm | 7 +++++++ libavfilter/x86/scene_sad_init.c | 7 +++++++ 2 files changed, 14 insertions(+) diff --git a/libavfilter/x86/scene_sad.asm b/libavfilter/x86/scene_sad.asm index bf7236b3a3..2cd9dddb5c 100644 --- a/libavfilter/x86/scene_sad.asm +++ b/libavfilter/x86/scene_sad.asm @@ -72,3 +72,10 @@ INIT_YMM avx2 SAD_FRAMES %endif + +%if HAVE_AVX512_EXTERNAL + +INIT_ZMM avx512 +SAD_FRAMES + +%endif diff --git a/libavfilter/x86/scene_sad_init.c b/libavfilter/x86/scene_sad_init.c index 4a4c40195f..2d631b376a 100644 --- a/libavfilter/x86/scene_sad_init.c +++ b/libavfilter/x86/scene_sad_init.c @@ -41,6 +41,9 @@ SCENE_SAD_FUNC(scene_sad_sse2, ff_scene_sad_sse2, 16) #if HAVE_AVX2_EXTERNAL SCENE_SAD_FUNC(scene_sad_avx2, ff_scene_sad_avx2, 32) #endif +#if HAVE_AVX512_EXTERNAL +SCENE_SAD_FUNC(scene_sad_avx512, ff_scene_sad_avx512, 64) +#endif #endif ff_scene_sad_fn ff_scene_sad_get_fn_x86(int depth) @@ -48,6 +51,10 @@ ff_scene_sad_fn ff_scene_sad_get_fn_x86(int depth) #if HAVE_X86ASM int cpu_flags = av_get_cpu_flags(); if (depth <= 8) { +#if HAVE_AVX512_EXTERNAL + if (EXTERNAL_AVX512(cpu_flags)) + return scene_sad_avx512; +#endif #if HAVE_AVX2_EXTERNAL if (EXTERNAL_AVX2_FAST(cpu_flags)) return scene_sad_avx2; -- 2.49.0 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".