This is an automated email from the ASF dual-hosted git repository.

acassis pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx-apps.git

commit e769d5347100413b9db466e16fe8bccd241884c0
Author: Lucas Saavedra Vaz <[email protected]>
AuthorDate: Wed Jan 11 20:21:20 2023 -0300

    benchmarks: Add EEMBC's CoreMark
---
 benchmarks/coremark/.gitignore |   2 +
 benchmarks/coremark/Kconfig    |  53 +++++++++++++++++++++
 benchmarks/coremark/Make.defs  |  25 ++++++++++
 benchmarks/coremark/Makefile   | 106 +++++++++++++++++++++++++++++++++++++++++
 4 files changed, 186 insertions(+)

diff --git a/benchmarks/coremark/.gitignore b/benchmarks/coremark/.gitignore
new file mode 100644
index 000000000..f8968384b
--- /dev/null
+++ b/benchmarks/coremark/.gitignore
@@ -0,0 +1,2 @@
+/coremark
+/*.zip
diff --git a/benchmarks/coremark/Kconfig b/benchmarks/coremark/Kconfig
new file mode 100644
index 000000000..0d621444e
--- /dev/null
+++ b/benchmarks/coremark/Kconfig
@@ -0,0 +1,53 @@
+#
+# For a description of the syntax of this configuration file,
+# see the file kconfig-language.txt in the NuttX tools repository.
+#
+
+menuconfig BENCHMARK_COREMARK
+       bool "Coremark Benchmark"
+       default n
+       ---help---
+               Enable support for the EEMBC's Coremark benchmark application.
+
+if BENCHMARK_COREMARK
+
+config COREMARK_PROGNAME
+       string "Coremark program name"
+       default "coremark"
+       ---help---
+               This is the name of the program that will be used when the NSH 
ELF
+               program is installed.
+
+config COREMARK_PRIORITY
+       int "Coremark task priority"
+       default 100
+
+config COREMARK_STACKSIZE
+       int "Coremark task stack size"
+       default 4096
+
+config COREMARK_MULTITHREAD_OVERRIDE
+       bool "Override number of threads"
+       default n
+       ---help---
+               Override the default number of threads to be executed.
+               The default value is the same as the number of CPU cores.
+
+config COREMARK_MULTITHREAD_COUNT
+       depends on COREMARK_MULTITHREAD_OVERRIDE
+       int "Number of threads to be executed"
+       default 1
+
+config COREMARK_ITERATIONS_OVERRIDE
+       bool "Override number of iterations"
+       default n
+       ---help---
+               Override the default number of iterations for the benchmark.
+               The default value is defined by the application based on the 
system.
+
+config COREMARK_ITERATIONS_COUNT
+       depends on COREMARK_ITERATIONS_OVERRIDE
+       int "Number of iterations"
+       default 100
+
+endif # BENCHMARK_COREMARK
diff --git a/benchmarks/coremark/Make.defs b/benchmarks/coremark/Make.defs
new file mode 100644
index 000000000..aa7a92c56
--- /dev/null
+++ b/benchmarks/coremark/Make.defs
@@ -0,0 +1,25 @@
+############################################################################
+# apps/benchmarks/coremark/Make.defs
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.  The
+# ASF licenses this file to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance with the
+# License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+############################################################################
+
+ifneq ($(CONFIG_BENCHMARK_COREMARK),)
+CONFIGURED_APPS += $(APPDIR)/benchmarks/coremark
+CFLAGS += ${INCDIR_PREFIX}$(APPDIR)/benchmarks/coremark/coremark
+CFLAGS += ${INCDIR_PREFIX}$(APPDIR)/benchmarks/coremark/coremark/posix
+endif
diff --git a/benchmarks/coremark/Makefile b/benchmarks/coremark/Makefile
new file mode 100644
index 000000000..f27fe43f4
--- /dev/null
+++ b/benchmarks/coremark/Makefile
@@ -0,0 +1,106 @@
+############################################################################
+# apps/benchmarks/coremark/Makefile
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.  The
+# ASF licenses this file to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance with the
+# License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+############################################################################
+
+include $(APPDIR)/Make.defs
+
+# Coremark application
+
+############################################################################
+# Flags
+############################################################################
+
+COREMARK_URL ?= "https://github.com/eembc/coremark/archive";
+
+COREMARK_VERSION = main
+COREMARK_ZIP = $(COREMARK_VERSION).zip
+
+COREMARK_UNPACKNAME = coremark
+UNPACK ?= unzip -q -o
+
+VPATH += $(COREMARK_UNPACKNAME)
+VPATH += $(COREMARK_UNPACKNAME)$(DELIM)posix
+
+CFLAGS += -Wno-undef
+
+ifeq ($(CONFIG_COREMARK_MULTITHREAD_OVERRIDE),y)
+COREMARK_NTHREADS = $(CONFIG_COREMARK_MULTITHREAD_COUNT)
+else
+ifneq ($(CONFIG_SMP_NCPUS),)
+COREMARK_NTHREADS = $(CONFIG_SMP_NCPUS)
+else
+COREMARK_NTHREADS = 1
+endif
+endif
+
+CFLAGS += ${DEFINE_PREFIX}USE_PTHREAD ${DEFINE_PREFIX}PERFORMANCE_RUN=1
+CFLAGS += ${DEFINE_PREFIX}MULTITHREAD=$(COREMARK_NTHREADS)
+CFLAGS += ${DEFINE_PREFIX}FLAGS_STR="\"Using NuttX compilation options\""
+CFLAGS += ${DEFINE_PREFIX}MEM_LOCATION="\"Defined by the NuttX configuration\""
+
+ifeq ($(CONFIG_COREMARK_ITERATIONS_OVERRIDE),y)
+CFLAGS += ${DEFINE_PREFIX}ITERATIONS=$(CONFIG_COREMARK_ITERATIONS_COUNT)
+endif
+
+CSRCS =  core_list_join.c
+CSRCS += core_matrix.c
+CSRCS += core_state.c
+CSRCS += core_util.c
+CSRCS += core_portme.c
+
+############################################################################
+# Targets
+############################################################################
+
+$(COREMARK_ZIP):
+       @echo "Downloading: $(COREMARK_URL)/$(COREMARK_ZIP)"
+       $(Q) curl -O -L $(COREMARK_URL)/$(COREMARK_ZIP)
+
+$(COREMARK_UNPACKNAME): $(COREMARK_ZIP)
+       @echo "Unpacking: $(COREMARK_ZIP) -> $(COREMARK_UNPACKNAME)"
+       $(Q) $(UNPACK) $(COREMARK_ZIP)
+       $(Q) mv coremark-$(COREMARK_VERSION) $(COREMARK_UNPACKNAME)
+       $(Q) touch $(COREMARK_UNPACKNAME)
+
+clean::
+       $(call DELFILE, $(OBJS))
+
+# Download and unpack tarball if no git repo found
+
+ifeq ($(wildcard $(COREMARK_UNPACKNAME)/.git),)
+context:: $(COREMARK_UNPACKNAME)
+
+distclean::
+       $(call DELDIR, $(COREMARK_UNPACKNAME))
+       $(call DELFILE, $(COREMARK_ZIP))
+endif
+
+############################################################################
+# Applications Configuration
+############################################################################
+
+MODULE = $(CONFIG_BENCHMARK_COREMARK)
+
+PROGNAME  += $(CONFIG_COREMARK_PROGNAME)
+PRIORITY  += $(CONFIG_COREMARK_PRIORITY)
+STACKSIZE += $(CONFIG_COREMARK_STACKSIZE)
+
+MAINSRC += $(COREMARK_UNPACKNAME)/core_main.c
+
+include $(APPDIR)/Application.mk

Reply via email to