Comments (11)
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.
Good. Thanks!
from riscv-isa-sim.
Is there an updated and current way to get dynamic instruction count? This no longer works.
from riscv-isa-sim.
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.
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.
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.
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.
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.
from riscv-isa-sim.
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.
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)
- reading mtinst gives illegal instruction exception HOT 1
- Spike setting VTYPE to 0x8000000000000000 for e16 mf8 HOT 1
- How can I read content from a file and use it as input for an ELF file HOT 4
- misa is not printed by the instruction csrrci HOT 1
- satp written with an unsupported MODE should have no effect HOT 7
- mstatus.fs cannot be written as initial HOT 2
- spike doesn't update sepc and stval in virtual address mode HOT 5
- Why misaligned store will raise store/amo access fault at the function store_slow_path? HOT 3
- Zfa extension instruction fcvtmod_w_d behavior conflict with sail model on too large/ too small boundary HOT 2
- Parse Zve/Zvl to determine RVV settings, instead of --varch HOT 1
- Build fails with "error: 'L_tmpnam' was not declared in this scope" HOT 4
- for vl=0 does vfredsum need to make vd[0]=vs1[0]? HOT 1
- Facing Issue running Zvbb RVV Cryptography Instructions HOT 3
- vmv1r.v instruction's behavior HOT 1
- Vector Widening Integer Multiply-Add Instructions - not working HOT 2
- fatal error: config.h: No such file or directory HOT 8
- assert failed in vectorUnit.cc from 71line. T&vectorUnit_t::elt(reg_t,reg_t,bool)[with T=long unsigned int; reg_t=long unsigned int]: Assertion '(VLEN>>3)/sizeof(T)>0' failed. HOT 3
- issue in counting numbers of instructions HOT 1
- Dynamic CSR read/write mask
- What time the spike will support the zjpm extension?
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from riscv-isa-sim.