From patchwork Fri Apr 29 06:50:27 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Siddhesh Poyarekar X-Patchwork-Id: 1623995 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=pass (1024-bit key; secure) header.d=sourceware.org header.i=@sourceware.org header.a=rsa-sha256 header.s=default header.b=wYGcinzI; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=sourceware.org (client-ip=2620:52:3:1:0:246e:9693:128c; helo=sourceware.org; envelope-from=libc-alpha-bounces+incoming=patchwork.ozlabs.org@sourceware.org; receiver=) Received: from sourceware.org (server2.sourceware.org [IPv6:2620:52:3:1:0:246e:9693:128c]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4KqNSd2ZbVz9sBF for ; Fri, 29 Apr 2022 16:51:45 +1000 (AEST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id BBBCB3857836 for ; Fri, 29 Apr 2022 06:51:39 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org BBBCB3857836 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1651215099; bh=/Vnv1fsUlZxfL+paTc6ZKXVLLP5BHsnQ0xzQ2A3nzSI=; h=To:Subject:Date:In-Reply-To:References:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To: From; b=wYGcinzIJE/bpIkr3WfdVxWuZg8kfMfWcCZV1/xUpUKJJTFMlmy+4rz26nMGXqaPm l25h/LYUAxcHA/r6B7ZKBJwP7yRuStTERl0RklHF0h+wC5y+zcUi+BCE5noXVWsnXw oZbvxUo5jbip90N1wRvo5BXnkELBt0kxUyGu5Yh4= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from dog.elm.relay.mailchannels.net (dog.elm.relay.mailchannels.net [23.83.212.48]) by sourceware.org (Postfix) with ESMTPS id CFB413858D28 for ; Fri, 29 Apr 2022 06:50:43 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org CFB413858D28 X-Sender-Id: dreamhost|x-authsender|siddhesh@gotplt.org Received: from relay.mailchannels.net (localhost [127.0.0.1]) by relay.mailchannels.net (Postfix) with ESMTP id A48D6121DBA for ; Fri, 29 Apr 2022 06:50:42 +0000 (UTC) Received: from pdx1-sub0-mail-a306.dreamhost.com (unknown [127.0.0.6]) (Authenticated sender: dreamhost) by relay.mailchannels.net (Postfix) with ESMTPA id 469BD121D01 for ; Fri, 29 Apr 2022 06:50:42 +0000 (UTC) ARC-Seal: i=1; s=arc-2022; d=mailchannels.net; t=1651215042; a=rsa-sha256; cv=none; b=wxzgCvUSkCEH1VKNatlBSIDosfdvmFOxHetHO/dpZ8senlNcRlHQi7NWEhvssrz0jKAZZB aCyAy58OmY0cdQEPQiHdgyC5nACaDULNvpecziivvDU+iZEstjPOFaTSTwp2qQetqWDhSs Cj7Y2A4ikYMoWehd8nslcOy4cmHDNWti/iJm5hGoKL6ZwodMFmKQT6RhKLZUIBnupLVdzv azUt/OrQzxcwJ3DvvU9hGb6DsAXlfFJ3UpZDkRBDUzGlEguA0/8I2bXizgMsqNOQTwFsuf YG7XqfGRysShd9k0TqlXVJ4BbbOum5S4+l5TV9NzxMm9wnNXdAlDuqG31s1wdA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=mailchannels.net; s=arc-2022; t=1651215042; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=/Vnv1fsUlZxfL+paTc6ZKXVLLP5BHsnQ0xzQ2A3nzSI=; b=N2tnpM20jpyue6KraCt1Nn2pd5VW0oMCdiYhgcaOQFBcMSsePJM/ZcfDak5J387Zril4mS gaslb3yt5GIS/R9Lp9zp1NIZhPQA97O9H8GRJGRRYhAoYV/9Gcu9AX8BDb73TBYw6Mi7Rs RdUi18kNC6d5T6aM8c09yNyvhWbWaDoz6P37mSPVDDdV14eR+l6K1RwOO7iCoKhdcPcQvQ SLDOMj5UeN+NW7iztox7oKEONR5TwA1bslybvcMit61qoE5I+QpvO+vnJ6U6eptcAsVVYL lKIsTqzWK9q882g9Ju7ENM9SHuMnQ9NlaGis+agfVbpTdlEMQRmb4/e4wo8WIg== ARC-Authentication-Results: i=1; rspamd-fdd564cbf-77fsh; auth=pass smtp.auth=dreamhost smtp.mailfrom=siddhesh@sourceware.org X-Sender-Id: dreamhost|x-authsender|siddhesh@gotplt.org Received: from pdx1-sub0-mail-a306.dreamhost.com (pop.dreamhost.com [64.90.62.162]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384) by 100.124.238.121 (trex/6.7.1); Fri, 29 Apr 2022 06:50:42 +0000 X-MC-Relay: Neutral X-MailChannels-SenderId: dreamhost|x-authsender|siddhesh@gotplt.org X-MailChannels-Auth-Id: dreamhost X-Arch-Illegal: 07424a293741d59c_1651215042505_1222670585 X-MC-Loop-Signature: 1651215042505:1086469364 X-MC-Ingress-Time: 1651215042505 Received: from rhbox.redhat.com (unknown [1.186.123.234]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: siddhesh@gotplt.org) by pdx1-sub0-mail-a306.dreamhost.com (Postfix) with ESMTPSA id 4KqNRN6hrnzLF for ; Thu, 28 Apr 2022 23:50:40 -0700 (PDT) To: libc-alpha@sourceware.org Subject: [committed 1/2] benchtests: Add UNSUPPORTED benchmark status Date: Fri, 29 Apr 2022 12:20:27 +0530 Message-Id: <20220429065028.2868756-2-siddhesh@sourceware.org> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20220429065028.2868756-1-siddhesh@sourceware.org> References: <20220429065028.2868756-1-siddhesh@sourceware.org> MIME-Version: 1.0 X-Spam-Status: No, score=-3495.8 required=5.0 tests=BAYES_00, GIT_PATCH_0, JMQ_SPF_NEUTRAL, KAM_DMARC_NONE, KAM_DMARC_STATUS, RCVD_IN_DNSWL_NONE, RCVD_IN_SBL, SPF_HELO_NONE, SPF_NEUTRAL, TXREP autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Siddhesh Poyarekar via Libc-alpha From: Siddhesh Poyarekar Reply-To: Siddhesh Poyarekar Errors-To: libc-alpha-bounces+incoming=patchwork.ozlabs.org@sourceware.org Sender: "Libc-alpha" The libmvec benchmarks print a message indicating that a certain CPU feature is unsupported and exit prematurelyi, which breaks the JSON in bench.out. Handle this more elegantly in the bench makefile target by adding support for an UNSUPPORTED exit status (77) so that bench.out continues to have output for valid tests. Signed-off-by: Siddhesh Poyarekar --- benchtests/Makefile | 23 ++++++++++++++++----- sysdeps/x86_64/fpu/bench-libmvec-skeleton.c | 12 +++++------ 2 files changed, 24 insertions(+), 11 deletions(-) diff --git a/benchtests/Makefile b/benchtests/Makefile index b477042e6c..7943d1c58a 100644 --- a/benchtests/Makefile +++ b/benchtests/Makefile @@ -1,4 +1,5 @@ # Copyright (C) 2013-2022 Free Software Foundation, Inc. +# Copyright The GNU Toolchain Authors. # This file is part of the GNU C Library. # The GNU C Library is free software; you can redistribute it and/or @@ -417,11 +418,23 @@ bench-func: $(binaries-bench) echo "{\"timing_type\": \"$${timing_type}\","; \ echo " \"functions\": {"; \ for run in $^; do \ - if ! [ "x$${run}" = "x$<" ]; then \ - echo ","; \ - fi; \ - echo "Running $${run}" >&2; \ - $(run-bench) $(DETAILED_OPT); \ + op=$$($(run-bench) $(DETAILED_OPT)); \ + ret=$$?; \ + case "$${ret}" in \ + 77) \ + echo "UNSUPPORTED $${run}: $${op}" >&2; \ + ;; \ + 0) \ + echo "Running $${run}" >&2; \ + if [ "$${run}" != "$<" ]; then \ + echo ","; \ + fi; \ + echo "$${op}"; \ + ;; \ + *) \ + echo "FAILED $${run}" >&2; \ + ;; \ + esac; \ done; \ echo; \ echo " }"; \ diff --git a/sysdeps/x86_64/fpu/bench-libmvec-skeleton.c b/sysdeps/x86_64/fpu/bench-libmvec-skeleton.c index 8954abe8b8..e28249df91 100644 --- a/sysdeps/x86_64/fpu/bench-libmvec-skeleton.c +++ b/sysdeps/x86_64/fpu/bench-libmvec-skeleton.c @@ -40,20 +40,20 @@ main (int argc, char **argv) #if defined REQUIRE_AVX if (!CPU_FEATURE_ACTIVE (AVX)) { - printf ("AVX not supported.\n"); - return 0; + printf ("AVX not supported."); + return 77; } #elif defined REQUIRE_AVX2 if (!CPU_FEATURE_ACTIVE (AVX2)) { - printf ("AVX2 not supported.\n"); - return 0; + printf ("AVX2 not supported."); + return 77; } #elif defined REQUIRE_AVX512F if (!CPU_FEATURE_ACTIVE (AVX512F)) { - printf ("AVX512F not supported.\n"); - return 0; + printf ("AVX512F not supported."); + return 77; } #endif From patchwork Fri Apr 29 06:50:28 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Siddhesh Poyarekar X-Patchwork-Id: 1623996 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=pass (1024-bit key; secure) header.d=sourceware.org header.i=@sourceware.org header.a=rsa-sha256 header.s=default header.b=ZEWWo2kF; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=sourceware.org (client-ip=8.43.85.97; helo=sourceware.org; envelope-from=libc-alpha-bounces+incoming=patchwork.ozlabs.org@sourceware.org; receiver=) Received: from sourceware.org (ip-8-43-85-97.sourceware.org [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4KqNTN1dXFz9sBF for ; Fri, 29 Apr 2022 16:52:24 +1000 (AEST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 5739F385734C for ; Fri, 29 Apr 2022 06:52:22 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 5739F385734C DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1651215142; bh=a98Xpn3ey1woLhfEsLWOojjWcZpoyXdvxg3yj8HleCU=; h=To:Subject:Date:In-Reply-To:References:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To: From; b=ZEWWo2kFQ2kozN0KKyT1Tz7uqbpL+rBWjYLPidyUT532CQcWZozcO7mE8SyggbU4j HPPkPQG0OafM4V9E2iOpuu+7wINRO1Rl1QcVWkNGxN2VTtcRfeHCDsZQuHW74KES97 QuJ6xTCDwlKIzjcNQKZeXegd13ryMn2Sxx+N19qQ= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from dragonfly.birch.relay.mailchannels.net (dragonfly.birch.relay.mailchannels.net [23.83.209.51]) by sourceware.org (Postfix) with ESMTPS id C92BA385741A for ; Fri, 29 Apr 2022 06:50:46 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org C92BA385741A X-Sender-Id: dreamhost|x-authsender|siddhesh@gotplt.org Received: from relay.mailchannels.net (localhost [127.0.0.1]) by relay.mailchannels.net (Postfix) with ESMTP id 1874A121333 for ; Fri, 29 Apr 2022 06:50:45 +0000 (UTC) Received: from pdx1-sub0-mail-a306.dreamhost.com (unknown [127.0.0.6]) (Authenticated sender: dreamhost) by relay.mailchannels.net (Postfix) with ESMTPA id 503E6121472 for ; Fri, 29 Apr 2022 06:50:44 +0000 (UTC) ARC-Seal: i=1; s=arc-2022; d=mailchannels.net; t=1651215044; a=rsa-sha256; cv=none; b=Eu2enSb6hv8CSHCfo1ovImCT9AOE9NnZJzMlUMnkOOvy/3xDDNmasdLpFKtv3BB5vxswWB KtMmxf1pjA2vehSPIuLMwo8AZ5MD7lccYy18vj8VZg/OoE30K30zxaGZKzo2yOsUj/2gp+ Cj6jsVranEq6q4ZItLwNZbg/Eyp0qlcebnIBCYzwIGenE28aEZe0rD8Usk6Qz17lBFZt6e 60QE6m+yhne4h35yfNstyh7H1n4ki3mrbEVdMI+1NTNfNPlg3Z06NOVaFkFXgZttpj852p A0JeJwf6JilAuQKL/1V7gcordswix74CPYWhiCfxzbXyNC/Z+7UscIOzoUX8sQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=mailchannels.net; s=arc-2022; t=1651215044; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=a98Xpn3ey1woLhfEsLWOojjWcZpoyXdvxg3yj8HleCU=; b=bDGnuaXIt5YT8ovGzdiSYhB6UL5zDQgL5PlF2cMyQKW9IPjhwZuYJd0Knn0zpRy0azxcxP TMOU6xcCPg8JKif39EvduhZTSP6PitF7BkOS2owpMCYzU2SOYY3MF9MIX3kZalGdy2fcJU CogQ2LsKuxGOu+/pWz4EDXJNN+2n+QHB4VPXaAvK2KiZhh1iSc+BJWdZZX6tcUf/UnANiF RvyHR4khQd1O6YpIUpW039WRR70NwbaTetMqS6Ku/s5+Rs7LVRoyyAvRx5W7ShNDmbqq3/ rLAwE9WyajRkY9Ao8qZeG1SVaPWKXo5+ZSlRKZPs1c5ZlOD/lj8Zlfka12zupw== ARC-Authentication-Results: i=1; rspamd-fdd564cbf-8dx2t; auth=pass smtp.auth=dreamhost smtp.mailfrom=siddhesh@sourceware.org X-Sender-Id: dreamhost|x-authsender|siddhesh@gotplt.org Received: from pdx1-sub0-mail-a306.dreamhost.com (pop.dreamhost.com [64.90.62.162]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384) by 100.121.210.147 (trex/6.7.1); Fri, 29 Apr 2022 06:50:45 +0000 X-MC-Relay: Neutral X-MailChannels-SenderId: dreamhost|x-authsender|siddhesh@gotplt.org X-MailChannels-Auth-Id: dreamhost X-Interest-Invention: 2bc30d366246d1ee_1651215044977_2778521047 X-MC-Loop-Signature: 1651215044977:1415752143 X-MC-Ingress-Time: 1651215044977 Received: from rhbox.redhat.com (unknown [1.186.123.234]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: siddhesh@gotplt.org) by pdx1-sub0-mail-a306.dreamhost.com (Postfix) with ESMTPSA id 4KqNRQ5YwszLF for ; Thu, 28 Apr 2022 23:50:42 -0700 (PDT) To: libc-alpha@sourceware.org Subject: [committed 2/2] benchtests: Better libmvec integration Date: Fri, 29 Apr 2022 12:20:28 +0530 Message-Id: <20220429065028.2868756-3-siddhesh@sourceware.org> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20220429065028.2868756-1-siddhesh@sourceware.org> References: <20220429065028.2868756-1-siddhesh@sourceware.org> MIME-Version: 1.0 X-Spam-Status: No, score=-3495.8 required=5.0 tests=BAYES_00, GIT_PATCH_0, JMQ_SPF_NEUTRAL, KAM_DMARC_NONE, KAM_DMARC_STATUS, RCVD_IN_DNSWL_NONE, RCVD_IN_SBL, SPF_HELO_NONE, SPF_NEUTRAL, TXREP autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Siddhesh Poyarekar via Libc-alpha From: Siddhesh Poyarekar Reply-To: Siddhesh Poyarekar Errors-To: libc-alpha-bounces+incoming=patchwork.ozlabs.org@sourceware.org Sender: "Libc-alpha" Improve libmvec benchmark integration so that in future other architectures may be able to run their libmvec benchmarks as well. This now allows libmvec benchmarks to be run with `make BENCHSET=bench-math`. Signed-off-by: Siddhesh Poyarekar --- benchtests/Makefile | 32 +++++++++++++++++--------------- sysdeps/x86_64/fpu/Makefile | 4 ---- 2 files changed, 17 insertions(+), 19 deletions(-) diff --git a/benchtests/Makefile b/benchtests/Makefile index 7943d1c58a..149d87e22e 100644 --- a/benchtests/Makefile +++ b/benchtests/Makefile @@ -113,12 +113,6 @@ bench-string := \ ffsll \ # bench-string -ifeq (${BENCHSET},) -bench := $(bench-math) $(bench-pthread) $(bench-string) -else -bench := $(foreach B,$(filter bench-%,${BENCHSET}), ${${B}}) -endif - # String function benchmarks. string-benchset := \ bzero \ @@ -299,15 +293,6 @@ bench-extra-objs = json-lib.o extra-objs += $(bench-extra-objs) others-extras = $(bench-extra-objs) -# NB: Use "=" instead of ":=" since sysdeps Makefiles may add more -# benches. -binaries-bench = $(addprefix $(objpfx)bench-,$(bench)) -extra-objs += $(addsuffix .o,$(addprefix bench-,$(bench))) -binaries-benchset = $(addprefix $(objpfx)bench-,$(benchset)) -extra-objs += $(addsuffix .o,$(addprefix bench-,$(benchset))) -binaries-bench-malloc := $(addprefix $(objpfx)bench-,$(bench-malloc)) -extra-objs += $(addsuffix .o,$(addprefix bench-,$(bench-malloc))) - # The default duration: 1 seconds. ifndef BENCH_DURATION BENCH_DURATION := 1 @@ -344,6 +329,23 @@ extra-objs += bench-timing-type.o include ../Rules +bench-math += $(bench-libmvec) + +ifeq (${BENCHSET},) +bench := $(bench-math) $(bench-pthread) $(bench-string) +else +bench := $(foreach B,$(filter bench-%,${BENCHSET}), ${${B}}) +endif + +# NB: Use "=" instead of ":=" since sysdeps Makefiles may add more +# benches. +binaries-bench = $(addprefix $(objpfx)bench-,$(bench)) +extra-objs += $(addsuffix .o,$(addprefix bench-,$(bench))) +binaries-benchset = $(addprefix $(objpfx)bench-,$(benchset)) +extra-objs += $(addsuffix .o,$(addprefix bench-,$(benchset))) +binaries-bench-malloc := $(addprefix $(objpfx)bench-,$(bench-malloc)) +extra-objs += $(addsuffix .o,$(addprefix bench-,$(bench-malloc))) + # This makes sure CPPFLAGS-nonlib and CFLAGS-nonlib are passed # for all these modules. cpp-srcs-left := $(binaries-benchset:=.c) $(binaries-bench:=.c) \ diff --git a/sysdeps/x86_64/fpu/Makefile b/sysdeps/x86_64/fpu/Makefile index 24af49e068..7233174ede 100644 --- a/sysdeps/x86_64/fpu/Makefile +++ b/sysdeps/x86_64/fpu/Makefile @@ -86,10 +86,6 @@ float-vlen16-arch-ext-cflags = -mavx512f bench-libmvec := $(bench-libmvec-double) $(bench-libmvec-float) -ifeq (${BENCHSET},) -bench += $(bench-libmvec) -endif - ifeq (${STATIC-BENCHTESTS},yes) libmvec-benchtests = $(common-objpfx)mathvec/libmvec.a $(common-objpfx)math/libm.a else