linux-openrisc.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Stafford Horne <shorne@gmail.com>
To: Idzwan Nizam Jamal Abdul Nasir <idzwan.nizam@yahoo.com>
Cc: linux-openrisc@vger.kernel.org
Subject: Re: Performance improvements of Marocchino implementation
Date: Thu, 6 Mar 2025 15:38:37 +0000	[thread overview]
Message-ID: <Z8nBfbkXiNCcdtK5@antec> (raw)
In-Reply-To: <810295975.3514440.1740967866807@mail.yahoo.com>

On Mon, Mar 03, 2025 at 02:11:06AM +0000, Idzwan Nizam Jamal Abdul Nasir wrote:
> Hi,
> 
> I am interested in OpenRISC Benchmarking and Performance improvements task
> listed as one of the project ideas in Google Summer of Code. I am unable to
> participate in GSOC but I would like to contribute to the task gradually as I
> acquire skills in digital logic and computer architecture.
> 
> Is the task still open? I would be glad if you could point me to the right
> direction such as documentation I should read or tools I have to be familiar
> with. Any guidance is welcome and greatly appreciated. Thank you.

The task is still open.  There are other students interested so I will have to
end up having to choose the student with the best proposal and skill.

Please try to get started by reading up on what was done last year in this
space and see if you can follow some of the steps to get the development
environment setup.

Our previous GSoC participant, Leo, did a lot of ground work but never submitted
any formal GSoC progress report or documentation.

What he did produce were:

    Here's the embench-iot with fusesoc compatability changes applied:
    https://github.com/hhe07/embench-or-patched

    And here's some tools I made for working with instruction printouts on
posedge:
    https://codeberg.org/hhe07/or-analysis-utils

He started this blog with details of how to get OpenRISC simulations working
with Litex or FuseSoC.

    https://hhe07.codeberg.page/openrisc-work/

What we want to do is:

 *Getting started*
  1 Get openrisc mor1kx and maroccino working in embench-iot
    a. With SoC, either fusesoc or litex (fusesoc should be easier)
    b. With backend, either icarus or verilator (verilator seems to run faster)
    c. Serial output needs to work to be able to capture timing information or
      when tests start and stop.  In verilator this is a bit tricky but should
      work with the proper flags.
 *Recording Results*
  2 We next want to record reults in a format similar to embench-iot-results[0]
    a. Collect results for default maroccino, mor1kx
    b. Collect results with permutations of cpu and compiler config
      i.  Caches of difference sizes, enabled/disabled, different branch
          prediction algorithms, different ALU implementations, etc.
      ii. Certain instructions enabled/disabled by the compiler, -mror, -msfimm
          etc see `or1k-elf-gcc --target-help` (Note: the project aims to
          benchmark both CPU pipeline, compiler and instruction set efficiency)
 *Improving results*
  3 We next can look at where the cpus are lacking performance and how to
    improve things in the pipeline, LSU, caches etc.
  4 We can then go back to 2 (Record results again) and compare.

The 2024 GSoC project was only able to get done with steps in 1 and just started
with 2.a.  I think there is a lot of work left to be done, getting done with 2
for a GSoC project would be a great accomplishment.

[0] https://github.com/embench/embench-iot-results

  reply	other threads:[~2025-03-06 15:38 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <810295975.3514440.1740967866807.ref@mail.yahoo.com>
2025-03-03  2:11 ` Performance improvements of Marocchino implementation Idzwan Nizam Jamal Abdul Nasir
2025-03-06 15:38   ` Stafford Horne [this message]
     [not found]     ` <16047285.689010.1741349294786@mail.yahoo.com>
2025-03-07 16:07       ` Stafford Horne
2025-03-09 17:02   ` el 01
2025-03-10 10:09     ` Idzwan Nizam
2025-03-11 20:00       ` el 01
2025-03-11 22:17         ` Stafford Horne

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Z8nBfbkXiNCcdtK5@antec \
    --to=shorne@gmail.com \
    --cc=idzwan.nizam@yahoo.com \
    --cc=linux-openrisc@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).