Git Product home page Git Product logo

Comments (11)

aswaterman avatar aswaterman commented on June 19, 2024

The proxy kernel can do this for you with its -s flag (try spike pk -s
hello)

On Mon, Mar 23, 2015 at 1:23 AM, Channoh Kim [email protected]
wrote:

Hi,

I want to get dynamic instruction count via Spike, but the disassembly
codes from -d option (i.e., spike -d pk hello and :r) is weird.


Reply to this email directly or view it on GitHub
#14.

from riscv-isa-sim.

channoh avatar channoh commented on June 19, 2024

Good. Thanks!

from riscv-isa-sim.

AhmedSamara avatar AhmedSamara commented on June 19, 2024

Is there an updated and current way to get dynamic instruction count? This no longer works.

from riscv-isa-sim.

AhmedSamara avatar AhmedSamara commented on June 19, 2024

Is there a way to get a more detailed breakdown of types of instructions executed?
And if not, would there be an interest in me implementing this feature and upstreaming it?

from riscv-isa-sim.

anmolsahoo25 avatar anmolsahoo25 commented on June 19, 2024

Hi,
We are working on a Python tool which takes as input the log file generated from spike using the -l option and outputs different statistics based on the log file.

You can check out the implemented features and ongoing features at - https://bitbucket.org/anmol07/spikepost

from riscv-isa-sim.

AhmedSamara avatar AhmedSamara commented on June 19, 2024

Can that one differentiate between instructions in the user program vs instructions from pk?
My other concern is that for most benchmarks the log files quickly become huge (>30GB)

from riscv-isa-sim.

anmolsahoo25 avatar anmolsahoo25 commented on June 19, 2024

Currently we are processing log files using pure Python. These suffice for the common riscv benchmarks. I am looking at a numpy/spark backend for faster analytics.

As to the other part of your question, I am not sure if I understand correctly. Could you please elaborate a bit about what you mean instructions generated by pk?

from riscv-isa-sim.

AhmedSamara avatar AhmedSamara commented on June 19, 2024

What I mean is when you execute a program with spike pk <prog>, you aren't just running your program, you are also running pk. So not every instruction that is a part of the log is a part of the program.
But as I type this out I realized pk is only necessary for me because of the printf statements.

from riscv-isa-sim.

neelgala avatar neelgala commented on June 19, 2024

from riscv-isa-sim.

anmolsahoo25 avatar anmolsahoo25 commented on June 19, 2024

We already have a feature of selecting an address range where you want the profiling to happen. It can be extended to incorporate address blocks that have to be skipped. Will add that as an enhancement in the repo.

from riscv-isa-sim.

AhmedSamara avatar AhmedSamara commented on June 19, 2024

I think the problem with using a full log file is that for complicated programs, it becomes really huge. for the program I was trying to benchmark, it produced a 300GB log file and then crashed because it run out of HDD space. I could move it onto a larger system but at that point, parsing will also be ridiculous. It's possible I did something wrong.
I'm working on an instruction count modification on my fork and will submit a PR if I can get anything reasonable.

from riscv-isa-sim.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.