Showing results for 
Search instead for 
Did you mean: 

Server Gurus Discussions

Adept I

AMD uProf feature request: timechart for "--config power"


I'd like to request feature which provides timechart raw data for "--config power".

Currently in 1.1 we can use "--config power" to get data how much power was consumed by some function per thread.

It's really cool, but it's really hard to say which action(and how much such actions) in application raises this power consumption.

My idea is if uProf provides raw data of timechart for --config power I can merge it with my application log for further analyze.

It will be OK if it will just raw data in SQLite database file.

7 Replies

We understand that you are expecting the raw data for "--config power" in some particular format. It would be great if you can elaborate in detail about the raw data format you are expecting which will help us to plan whether we can support your request in future releases of uProf. Also, it would be helpful if you can describe how you are going to utilize this raw data along with your application log analyzer.


1. raw data format

"Timestamp" - any format will be OK

"Process Name"

"Process Command line Arguments"

"Process ID"

"Thread ID"


"Function name"

"Energy (mJ)"

"CPU Time (s)"

As "Process Command line Arguments" looks like not very useful for other people, and may have impact on performance and file size, maybe provide ability to redefine format by user?

Think for performance reasons it will OK to have "Energy (mJ)" and "CPU Time" as sum of some count of measures, but then it should be an additional column with count of measures like "Measures Count".

Actually, i very like, if it possible, to have here low level hardware counters like "Core Energy" and threads "P-State" to have get all important in one test execution, right now I don't use "timechart" subcommand in uProf because I need to run test two times(for every test iteration) and it's take a lot of time for me.

So, with all of details,  raw data format version "B" can looks like:


"Type" - which can be for example "Hardware", "Software" or some thing another

"Core<N> Energy" - will be empty for "Type"="Software"

"Thread<N> P-State" - will be empty for "Type"="Software"

...some other hardware counters...

"Process Name" - will be empty for "Type"="Hardware"

...some other software counters...

"Measures Count" - will be empty for "Type"="Hardware"

2. How to utilize this raw data

I can create tool to match uProf data with my app logs by "Timestamp","Process ID" and "Thread ID" and create final log in Chrome's Trace Event Format which can be viewed in Chrome's about://tracing

With final log I can:

a. create diff with another log(of another workload)

b. manually check log parts with hottest functions


Also "Hardware" and "Software" data may be separated in two different SQlite tables.



This is really an interesting request. We will consider adding this is in future release of uProf.

A new table with columns {TS, CoreId, ProcessId, ThreadId, ModuleId, FunctionId, <event1>, <event2>...} can be added. There are existing tables that provides process name, function name, event description etc. For '--config power', currently the tool only collects energy metric. Are you interested in other metrics apart from energy and P-State?

I'll be really fine with data you have described.

What about more metrics, in my work I've use following metrics from separate solution:

- as "Hardware" counter: "Memory Energy"

- as "Software" counters per process(!): Memory Size, Context Switches (Count), Core Wakeups(Count), Timer Resolution Requests (Count), Timer Resolution Requests (duration in microseconds).

If uProf will provide all this metrics it will be great.


Currently we only support performance data collectors for HW based metrics. But certainly we will consider adding SW counters.

The other solution that you mentioned, is it based on Windows Event Tracing (ETW) ?


Yes, on ETW.

We've also using Windows Performance Analyzer, but I've found that most of predefined metrics views a not always useful and that it's impossible(or I've not understand how) to customize data exporting.

Windows Performance Analyzer is good when you know that there is a known performance issue, so you can take a trace and in UI found what can trigger this known issue.

But when there is no known performance issues, or you want to make application more energy efficient you need to check different scenarios, collect a lot of different data, analyze it in some way, create experimental build of application, run test again and compare new data with previous results.

So it's quite difficult to do all of this manually in UI 🙂