[PATCH] Add CoreMark Benchmark

Hesham Almatary hesham.almatary at cl.cam.ac.uk
Sat Feb 22 16:57:34 UTC 2020


On Fri, 21 Feb 2020 at 18:16, Joel Sherrill <joel at rtems.org> wrote:
>
> Is this being added to rtems-examples?
>
Yes

> Is it clear where this came from (URL) and what version it is per the origin?
>
The submodule has a link to our fork. It's clear it's forked from
eembc/coremark and it has all copyrights+license details in the
README.

> Do all of examples build for you with waf? I tried this week and they all build with make but not waf?
>
No, not all of them build for RISC-V. I can work on that later.

> How do the numbers look?
>
Looking fine. I ran in QEMU but that won't get sensible numbers. On HW
it depends. For example rv64imafdc it's about 213 iterations per
second on a 50MHz processor (Rocker Chip). I don't have a baseline
(HW+other OSes) for RISC-V to compare against yet.

> Except for origin statement, none of this is a reason not to merge.
>
> --joel
>
> On Fri, Feb 21, 2020, 11:00 AM Hesham Almatary <Hesham.Almatary at cl.cam.ac.uk> wrote:
>>
>> CoreMark's primary goals are simplicity and providing a method for testing only a processor's core features.
>> It is used primarily here as a performance benchmark
>>
>> Built and tested for RISC-V rv64imafdc_medany on QEMU and HW
>> ---
>>  .gitmodules                  |  3 +++
>>  benchmarks/coremark/coremark |  1 +
>>  benchmarks/coremark/wscript  | 48 ++++++++++++++++++++++++++++++++++++
>>  benchmarks/wscript           |  2 ++
>>  4 files changed, 54 insertions(+)
>>  create mode 160000 benchmarks/coremark/coremark
>>  create mode 100644 benchmarks/coremark/wscript
>>
>> diff --git a/.gitmodules b/.gitmodules
>> index ae86e49..2bcba90 100644
>> --- a/.gitmodules
>> +++ b/.gitmodules
>> @@ -1,3 +1,6 @@
>>  [submodule "rtems_waf"]
>>         path = rtems_waf
>>         url = git://git.rtems.org/rtems_waf.git
>> +[submodule "benchmarks/coremark/coremark"]
>> +       path = benchmarks/coremark/coremark
>> +       url = git at github.com:CTSRD-CHERI/coremark.git
>> diff --git a/benchmarks/coremark/coremark b/benchmarks/coremark/coremark
>> new file mode 160000
>> index 0000000..cdafe98
>> --- /dev/null
>> +++ b/benchmarks/coremark/coremark
>> @@ -0,0 +1 @@
>> +Subproject commit cdafe986865cf46a3222f7bf28be82fc8d96fa8f
>> diff --git a/benchmarks/coremark/wscript b/benchmarks/coremark/wscript
>> new file mode 100644
>> index 0000000..c2c225a
>> --- /dev/null
>> +++ b/benchmarks/coremark/wscript
>> @@ -0,0 +1,48 @@
>> +#-
>> +# SPDX-License-Identifier: BSD-2-Clause
>> +#
>> +# Copyright (c) 2020 Hesham Almatary
>> +#
>> +# This software was developed by SRI International and the University of
>> +# Cambridge Computer Laboratory (Department of Computer Science and
>> +# Technology) under DARPA contract HR0011-18-C-0016 ("ECATS"), as part of the
>> +# DARPA SSITH research programme.
>> +#
>> +# Redistribution and use in source and binary forms, with or without
>> +# modification, are permitted provided that the following conditions
>> +# are met:
>> +# 1. Redistributions of source code must retain the above copyright
>> +#    notice, this list of conditions and the following disclaimer.
>> +# 2. Redistributions in binary form must reproduce the above copyright
>> +#    notice, this list of conditions and the following disclaimer in the
>> +#    documentation and/or other materials provided with the distribution.
>> +#
>> +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
>> +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
>> +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
>> +# ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
>> +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
>> +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
>> +# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
>> +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
>> +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
>> +# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
>> +# SUCH DAMAGE.
>> +#
>> +
>> +import rtems_waf.rtems as rtems
>> +
>> +def build(bld):
>> +    rtems.build(bld)
>> +
>> +    bld(features = 'c cprogram',
>> +        target = 'coremark.bin',
>> +        includes = 'coremark/ coremark/rtems',
>> +        source = ['coremark/rtems/core_portme.c',
>> +                  'coremark/core_list_join.c', 'coremark/core_main.c', 'coremark/core_matrix.c', 'coremark/core_state.c', 'coremark/core_util.c'],
>> +
>> +        defines = [
>> +        # FLAGS_STR is used within CoreMark to print the compiler flags used
>> +        'FLAGS_STR="'+' '.join([str(flag) for flag in bld.env.CFLAGS])+'"'
>> +        ]
>> +    )
>> diff --git a/benchmarks/wscript b/benchmarks/wscript
>> index 12741e7..24db85b 100644
>> --- a/benchmarks/wscript
>> +++ b/benchmarks/wscript
>> @@ -1,3 +1,4 @@
>> +# Copyright 2020 Hesham Almatary (hesham.almatary at cl.cam.ac.uk)
>>  # Copyright 2013 Gedare Bloom (gedare at rtems.org)
>>  #
>>  # This file's license is 2-clause BSD as in this distribution's LICENSE.2 file.
>> @@ -7,4 +8,5 @@ import rtems_waf.rtems as rtems
>>
>>  def build(bld):
>>      bld.recurse('nbench')
>> +    bld.recurse('coremark')
>>
>> --
>> 2.17.1
>>
>> _______________________________________________
>> devel mailing list
>> devel at rtems.org
>> http://lists.rtems.org/mailman/listinfo/devel


More information about the devel mailing list