From patchwork Wed Nov 11 22:41:02 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chris Packham X-Patchwork-Id: 1398581 Return-Path: X-Original-To: incoming-buildroot@patchwork.ozlabs.org Delivered-To: patchwork-incoming-buildroot@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=busybox.net (client-ip=140.211.166.137; helo=fraxinus.osuosl.org; envelope-from=buildroot-bounces@busybox.net; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=fcPKeA3C; dkim-atps=neutral Received: from fraxinus.osuosl.org (smtp4.osuosl.org [140.211.166.137]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4CWfpj5t6Jz9sRR for ; Thu, 12 Nov 2020 09:41:17 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by fraxinus.osuosl.org (Postfix) with ESMTP id BA5B486D42; Wed, 11 Nov 2020 22:41:15 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from fraxinus.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id n6umxIosln9R; Wed, 11 Nov 2020 22:41:14 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by fraxinus.osuosl.org (Postfix) with ESMTP id ABEDB86D20; Wed, 11 Nov 2020 22:41:14 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from whitealder.osuosl.org (smtp1.osuosl.org [140.211.166.138]) by ash.osuosl.org (Postfix) with ESMTP id 6C8B61BF471 for ; Wed, 11 Nov 2020 22:41:13 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by whitealder.osuosl.org (Postfix) with ESMTP id 695EE86C8C for ; Wed, 11 Nov 2020 22:41:13 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from whitealder.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id E3Tf3yW6+PpB for ; Wed, 11 Nov 2020 22:41:12 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mail-pf1-f170.google.com (mail-pf1-f170.google.com [209.85.210.170]) by whitealder.osuosl.org (Postfix) with ESMTPS id 767BC86C8B for ; Wed, 11 Nov 2020 22:41:12 +0000 (UTC) Received: by mail-pf1-f170.google.com with SMTP id c66so2660350pfa.4 for ; Wed, 11 Nov 2020 14:41:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=hI3YsYlv0jYWh8BN2OE+mcRm7suwaPFQTQWIZ/aqqhE=; b=fcPKeA3CBuclI5x4y9QCpErPdKKT3OYlXY40MoB4FUuDyq0W9sWw7LUKWS0NuLoXrE po7SgCnZXp3NDIyOq1UIrcy6D7j3DxS/RkKTSbEHDqMQ9REF8VCjYsn4gOGjLpqfUkql AWqW6QPdT2aVv2rPg7heFvb20aXFsQ66iEDl8TW5IglSO3jSv5sS4X0peh2RcaSg1YrU PsB2O9p+kS0NdwNfsb95N/IoEA48yNe/mKEnre/bihDHFlt1X/KS96U8GSG7YjyOuQP7 42+IFHogAxsWBzea/9gvQOgoeB4WLh2rLDzlq4tQtIx5ywrC6NeG3RUbWvHCle8F6ldq IGXQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=hI3YsYlv0jYWh8BN2OE+mcRm7suwaPFQTQWIZ/aqqhE=; b=amTNqz3LtKbICSIqaBp3MfLRYLFivzZyqr5bJE2xZrMBHPHaCX0qiM2VKsAqc7V61z L9KGnh08El5+qyHqql7VaXWOsM4QYO9orWvamVScVKN++DAG6256btyOVEtB9Sbel2DK PJqAfN0drzbNVW9QBX5JG20rABHVqOqna5HXBcXivSsOutt1v3dt55BcfrOVDJv7aqYq cIRP9fGNsqOde7OexA8wDwTNorlBktM82y3GF+gZzhB1ylgz+X0uI7L+c+H9/QVHa8bB QkuVfGHae8D0GH92MFJo+e8YXCs0byrzpDv0q0pWwjuB4fIw19X6BcjScN/eJDXDKsAL /VNQ== X-Gm-Message-State: AOAM531annddnaWoTQWmWVG+BmHcF5D4bfshLcxeV6Sh1ZjYopue0Ids BWtM8smbeXezOAkl0tJ3O8C7AVE8p86p1g== X-Google-Smtp-Source: ABdhPJwvTLqnkesuB11uW6WhRCX4Cijf6REzpFs3pQpc3WRE95J4vy5CzizOZzYYY8LjT2pJreCX8Q== X-Received: by 2002:a63:db18:: with SMTP id e24mr23279379pgg.155.1605134471402; Wed, 11 Nov 2020 14:41:11 -0800 (PST) Received: from chrisp-dl.atlnz.lc ([2001:df5:b000:22:5188:5cbd:be85:e2fa]) by smtp.gmail.com with ESMTPSA id g17sm199397pjv.11.2020.11.11.14.41.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 11 Nov 2020 14:41:10 -0800 (PST) From: Chris Packham To: buildroot@buildroot.org Date: Thu, 12 Nov 2020 11:41:02 +1300 Message-Id: <20201111224102.28799-2-judge.packham@gmail.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20201111224102.28799-1-judge.packham@gmail.com> References: <20201111224102.28799-1-judge.packham@gmail.com> MIME-Version: 1.0 Subject: [Buildroot] [PATCH v2 2/2] package/coremark-pro: new package X-BeenThere: buildroot@busybox.net X-Mailman-Version: 2.1.29 Precedence: list List-Id: Discussion and development of buildroot List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Chris Packham Errors-To: buildroot-bounces@busybox.net Sender: "buildroot" CoreMark-Pro is a comprehensive, advanced processor benchmark that works with and enhances the market-proven industry-standard EEMBC CoreMark benchmark. https://www.eembc.org/coremark-pro/ Signed-off-by: Chris Packham Reviewed-by: Matt Weber --- Changes in v2: - Add depends on BR2_USE_MMU (thanks Matt) DEVELOPERS | 1 + package/Config.in | 1 + package/coremark-pro/Config.in | 8 +++++ package/coremark-pro/coremark-pro.hash | 3 ++ package/coremark-pro/coremark-pro.mk | 42 ++++++++++++++++++++++++++ package/coremark-pro/coremark-pro.sh | 36 ++++++++++++++++++++++ 6 files changed, 91 insertions(+) create mode 100644 package/coremark-pro/Config.in create mode 100644 package/coremark-pro/coremark-pro.hash create mode 100644 package/coremark-pro/coremark-pro.mk create mode 100755 package/coremark-pro/coremark-pro.sh diff --git a/DEVELOPERS b/DEVELOPERS index ff823a2e3d..291dd41286 100644 --- a/DEVELOPERS +++ b/DEVELOPERS @@ -491,6 +491,7 @@ F: configs/orangepi_plus_defconfig N: Chris Packham F: package/coremark/ +F: package/coremark-pro/ F: package/gstreamer1/gst1-shark/ F: package/micropython/ F: package/micropython-lib/ diff --git a/package/Config.in b/package/Config.in index 16fd95fe38..0011ccd684 100644 --- a/package/Config.in +++ b/package/Config.in @@ -88,6 +88,7 @@ menu "Debugging, profiling and benchmark" source "package/cache-calibrator/Config.in" source "package/clinfo/Config.in" source "package/coremark/Config.in" + source "package/coremark-pro/Config.in" source "package/dacapo/Config.in" source "package/dhrystone/Config.in" source "package/dieharder/Config.in" diff --git a/package/coremark-pro/Config.in b/package/coremark-pro/Config.in new file mode 100644 index 0000000000..dd6821056c --- /dev/null +++ b/package/coremark-pro/Config.in @@ -0,0 +1,8 @@ +config BR2_PACKAGE_COREMARK_PRO + bool "coremark-pro" + depends on BR2_USE_MMU # perl uses fork() + select BR2_PACKAGE_PERL + help + CoreMark-PRO is a comprehensive, advanced processor benchmark. + + https://www.eembc.org/coremark-pro/ diff --git a/package/coremark-pro/coremark-pro.hash b/package/coremark-pro/coremark-pro.hash new file mode 100644 index 0000000000..16b121edb3 --- /dev/null +++ b/package/coremark-pro/coremark-pro.hash @@ -0,0 +1,3 @@ +#locally computed +sha256 440223554134832efec4ad220795611769ded3869fbc3ce3c59b05b7ddeb9f6d coremark-pro-1.1.2743.tar.gz +sha256 0d7775bd793ea71fef3594c18164a08ed2f5f66c898958d0644f7a236a536f2b LICENSE.md diff --git a/package/coremark-pro/coremark-pro.mk b/package/coremark-pro/coremark-pro.mk new file mode 100644 index 0000000000..d3e99fcdfd --- /dev/null +++ b/package/coremark-pro/coremark-pro.mk @@ -0,0 +1,42 @@ +################################################################################ +# +# CoreMark-PRO +# +################################################################################ + +COREMARK_PRO_VERSION = 1.1.2743 +COREMARK_PRO_SITE = $(call github,eembc,coremark-pro,v$(COREMARK_PRO_VERSION)) +COREMARK_PRO_LICENSE = Apache-2.0 +COREMARK_PRO_LICENSE_FILES = LICENSE.md +COREMARK_PRO_DEPENDENCIES = perl + +ifeq ($(BR2_ENDIAN),"BIG") +COREMARK_PRO_MAKE_OPTS += PLATFORM_DEFINES='EE_BIG_ENDIAN=1 EE_LITTLE_ENDIAN=0' +else +COREMARK_PRO_MAKE_OPTS += PLATFORM_DEFINES='EE_BIG_ENDIAN=0 EE_LITTLE_ENDIAN=1' +endif + +COREMARK_PRO_MAKE_OPTS += \ + TARGET=linux$(if $(BR2_ARCH_IS_64),64) \ + EXE= + +define COREMARK_PRO_BUILD_CMDS + $(TARGET_MAKE_ENV) $(MAKE) CC="$(TARGET_CC)" LD="$(TARGET_CC)" -C $(@D) \ + $(COREMARK_PRO_MAKE_OPTS) build +endef + +COREMARK_PRO_MARKS = cjpeg-rose7-preset core linear_alg-mid-100x100-sp loops-all-mid-10k-sp nnet_test parser-125k radix2-big-64k sha-test zip-test +COREMARK_PRO_SCRIPTS = results_parser.pl cert_median.pl cert_mark.pl headings.txt + +define COREMARK_PRO_INSTALL_TARGET_CMDS + mkdir -p $(TARGET_DIR)/usr/share/coremark-pro/logs + $(foreach m,$(COREMARK_PRO_MARKS),\ + $(INSTALL) -D $(@D)/builds/linux$(if $(BR2_ARCH_IS_64),64)/gcc$(if $(BR2_ARCH_IS_64),64)/bin/$(m) $(TARGET_DIR)/usr/bin/$(m)$(sep) \ + size $(TARGET_DIR)/usr/bin/$(m) > $(TARGET_DIR)/usr/share/coremark-pro/logs/$(m).size.log$(sep)) + $(INSTALL) -D $(@D)/builds/linux$(if $(BR2_ARCH_IS_64),64)/gcc$(if $(BR2_ARCH_IS_64),64)/data/libbmp/Rose256.bmp $(TARGET_DIR)/usr/share/coremark-pro/Rose256.bmp + $(foreach s,$(COREMARK_PRO_SCRIPTS),\ + $(INSTALL) -D $(@D)/util/perl/$(s) $(TARGET_DIR)/usr/share/coremark-pro/util/perl/$(s)$(sep)) + $(Q)cp package/coremark-pro/coremark-pro.sh $(TARGET_DIR)/usr/bin/ +endef + +$(eval $(generic-package)) diff --git a/package/coremark-pro/coremark-pro.sh b/package/coremark-pro/coremark-pro.sh new file mode 100755 index 0000000000..65ad9df645 --- /dev/null +++ b/package/coremark-pro/coremark-pro.sh @@ -0,0 +1,36 @@ +#!/bin/sh +# SPDX-License-Identifier: Apache-2.0 + +workloads="cjpeg-rose7-preset core linear_alg-mid-100x100-sp \ + loops-all-mid-10k-sp nnet_test parser-125k radix2-big-64k sha-test zip-test" + +rm -rf /tmp/coremark-pro +mkdir -p /tmp/coremark-pro +cp /usr/share/coremark-pro/Rose256.bmp /tmp/coremark-pro +cp /usr/share/coremark-pro/logs/*.size.log /tmp/coremark-pro + +cd /tmp/coremark-pro + +for contype in single best; do + cat /usr/share/coremark-pro/util/perl/headings.txt >>result.log + for wld in $workloads; do + [ "$contype" = "single" ] && XCMD="-c1 -w1" + [ "$contype" = "best" ] && XCMD="-c$(nproc) -w$(nproc)" + echo "#Results for verification run started at $(date +%y%j:%H:%M:%S) XCMD=$XCMD" >$wld-$contype-result.log + echo "Verification run for $wld" + $wld $XCMD -v1 > $wld.run.log + LC_ALL=C perl /usr/share/coremark-pro/util/perl/results_parser.pl $wld-$contype-result.log $wld.run.log + echo "#Results for performance runs started at $(date +%y%j:%H:%M:%S) XCMD=$XCMD" >>$wld-$contype-result.log + echo "Performance run for $wld" + for i in 1 2 3; do + $wld $XCMD -v0 > $wld.run.log + LC_ALL=C perl /usr/share/coremark-pro/util/perl/results_parser.pl $wld-$contype-result.log $wld.run.log + done + echo "#Median for final result $wld" >>$wld-$contype-result.log + LC_ALL=C perl /usr/share/coremark-pro/util/perl/cert_median.pl $wld-$contype-result.log $contype >>$wld-$contype-result.log + cat $wld-$contype-result.log >>result.log + done +done +LC_ALL=C perl /usr/share/coremark-pro/util/perl/cert_mark.pl -i result.log -s coremarkpro > result.mark +cat result.mark +cd - >/dev/null