Giter VIP home page Giter VIP logo

Comments (7)

tom-wegener avatar tom-wegener commented on August 25, 2024 1

Hey, thank you a lot.
Sadly it does not work. I still get some errors bacause of some buggy parsing (I think parts of that are on my side). I decided to use pcm for the moment because I don't necessarily need all the information in that density. And from my point of view I would have to put a lot more work into it to make it work on at least one of the machines I have to test it.

For the cascade-lake integration: In the newest mapfile.csv from Intel they use GenuineIntel-6-55-[01234] for skylakex and GenuineIntel-6-55-[56789ABCDEF] for cascade-lake instead of the old GenuineIntel-6-55 only for skylakex which makes this a bit more complicated than I thought.

But since I started updating parts of this (rust-x86, rust-perfcnt etc), I'll try to maybe finish some work in my free time and I hope maybe you'll see one or two PRs.
(especially the db-update for rust-x86 is a thing I would like to finish)

from autoperf.

gz avatar gz commented on August 25, 2024

Hey, thanks for using the tool! Yes a PR to make it compile again would be most welcome!

regarding the fc_mask parser error
: it seems like you're missing a / at the end (when you run the command manually)? e.g., would this work:

perf stat -aA -I 250 -x ';' -o out/1_stat.csv \
-e uncore_iio_free_running_5/name=uncore_iio_free_running_5.UNC_IIO_TXN_REQ_BY_CPU.CFG_READ.PART1,event=0xc1,umask=0x40,fc_mask=0x7/
echo 2

Also I would be happy to learn how to mention your work/autoperf if I end up using it.

Feel free to cite this work: https://dl.acm.org/doi/10.1145/2967360.2967375

from autoperf.

tom-wegener avatar tom-wegener commented on August 25, 2024

Hey, the PR is #5 . I also changed two other things besides making it compile again, but they re not that important, only nice to have.

Sadly the / didn't help, I still have the same error:

perf stat -aA -I 250 -x ';' -o out/1_stat.csv \
-e uncore_iio_free_running_5/name=uncore_iio_free_running_5.UNC_IIO_TXN_REQ_BY_CPU.CFG_READ.PART1,event=0xc1,umask=0x40,fc_mask=0x7/
echo 2
event syntax error: '..umask=0x40,fc_mask=0x7/'
                                  \___ unknown term 'fc_mask' for pmu 'uncore_iio_free_running_5'

valid terms: event,umask,config,config1,config2,name,period,percore

Initial error:
event syntax error: '..umask=0x40,fc_mask=0x7/'
                                  \___ unknown term 'fc_mask' for pmu 'uncore_iio_free_running_5'

valid terms: event,umask,config,config1,config2,name,period,percore
Run 'perf list' for a list of valid events

 Usage: perf stat [<options>] [<command>]

    -e, --event <event>   event selector. use 'perf list' to list available events
2

Could it have something to do with the counters.toml? And how could I add my architecture to it?

from autoperf.

gz avatar gz commented on August 25, 2024

Hi, so it looks like perf does not support the fc_mask attribute for this perf event.

fc_mask is added here:

PerfEvent::push_arg(&mut ret, format!("fc_mask=0x{:x}", self.0.fc_mask));

and it's ultimately coming from the x86 crate which parses the official Intel CSVs to get this information:
e.g., the fc attribute here https://github.com/gz/rust-x86/blob/523296c4ecfad57ef26aabdde1446c788dbc668e/x86data/perfmon_data/CLX/cascadelakex_uncore_v1.04.json#L2679

I didn't actually end up finding the UNC_IIO_TXN_REQ_BY_CPU.CFG_READ.PART1 event in the cascade lake file, so not sure how this event is generated by the tool? Did you end up updating the performance counters info of the x86 crate?

from autoperf.

tom-wegener avatar tom-wegener commented on August 25, 2024

Hey,
I tried updating the files and still have some smaller problems with that. Mostly with the parsing because some values changed a lot or on a weird way (counter over 8, filter values missing etc) and I'm not that sure about safe defaults and safe value ranges but I'll try to make it work and I maybe have to change the parsing-part a bit.

from autoperf.

gz avatar gz commented on August 25, 2024

I see.. About the counters.toml, yes you'd probably need to add an entry for cascade lake, you can follow the same style as skylake: https://github.com/gz/autoperf/blob/master/src/counters.toml#L43

It should look something like this:

[cascadelake]
family = X # Model number taken from CPUID
models = Y # Model number taken from CPUID taken
# Finally these values can be found by counting the number of units in
#  /sys/bus/event_source/devices/
# e.g., based on your issue it looks like you'll have 5 IMC units so IMC = 5
fixed_counters = { CPU = A, UBO = B, IMC = C } # 
programmable_counters = { CPU = 4, UPI = 4, CHA = 4, IIO = 4, IMC = 4, IRP = 4, M2M = 4, M3UPI = 4, PCU = 4, UBO = 2, CBO = 4 }

It might be that there are some new units in cascade lake that aren't supported yet.
Then it would print a warning (

if !found {
), let me know if this is the case then we can work towards supporting them.

from autoperf.

gz avatar gz commented on August 25, 2024

btw. one simple fix to make progress for now is to just add this event to the ignore list here:
https://github.com/gz/autoperf/blob/master/src/profile.rs#L113

from autoperf.

Related Issues (4)

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.