Re: [gem5-users] Failed to find stat 'system.bigCluster.clk_domain.clock' and others
Hi Yara, I'm not very familiar with the power modeling in gem5, but this seems like you found and then fixed a bug! We would really appreciate it if you contributed this change to the mainline. You can find a description of how to do this in the CONTRIBUTING document ( https://gem5.googlesource.com/public/gem5/+/master/CONTRIBUTING.md). If you have any questions, don't hesitate to ask! Jason On Fri, Jun 1, 2018 at 4:42 AM Yara Gowayed wrote: > I think I found a solution to this problem. It required changing something > in the src file gem5/src/sim/power/mathexpr_powermodel.cc. > > In the startup function the stats are being recorded from the statsList to > the stats_map which will be used by the power model to find the > corresponding value to each element in the power expressions. > The problem with the current implementation that it was taking a substring > from the name removing the basename which is the name of the object. So > when I try to access it from outside all objects it gives me an error. > > for (auto & i: Stats::statsList()) { >if (i->name.find(basename) == 0) { > // Add stats for this sim object and its child objects > stats_map[i->name.substr(basename.size())] = i; >} else if (i->name.find(".") == std::string::npos) { > // Add global stats (sim_seconds, for example) > stats_map[i->name] = i; >} > } > What I did and was compatible with what I need to achieve was replacing > the whole part with simply this > for (auto & i: Stats::statsList()) { > > stats_map[i->name] = i; > >} > > > On 23 May 2018 at 17:47, Yara Gowayed wrote: > >> Hi all >> >> I am currently working on power modeling using gem5 for arm bigLITTLE >> architecture. I am using the fs_power.py script already found in the gem5 >> repo but I wanted to change the dummy equations for static and dynamic >> power to more meaningful equations. >> The stats I need to do so are all found in stats.txt but when I try to >> formulate the equations it gives me "failed to find stat" error. >> >> I already can use some stats like dcache.overall_misses , >> dcache.overall_accesses, >> numCycles,voltage, dtb_walker_cache.overall_misses, icache.overall_misses >> , icache.overall_accesses. >> But when it comes to : >> system.clk_domain.clock,system.bigCluster.cpus0.iew.iewExecutedInsts,system.bigCluster.cpus2.iq.FU_type_0::IntAlu >> or any other instructions(MULT,DIV) it fails. >> >> I kind of have an intuition where the problem is, I went through the >> documentation of doxygen and all the stats that failed needs to be accessed >> from a certain object that I dont know. >> >> For example the stats::overall_misses should be accessed from BaseCache >> class and I did so in dcache.overall_misses but for the others I tried to >> do the same and it failed. >> >> Any clue how to be able to access the given stats? It doesn't have to be >> per core a sum of them will do the same job. >> >> Also I tried to do the calculations after the simulation ends using >> scripts that process data from the stats.txt and that worked, I just want >> it now to be online during the simulation. >> >> Thanks alot! >> Yara >> >> > ___ > gem5-users mailing list > gem5-users@gem5.org > http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users ___ gem5-users mailing list gem5-users@gem5.org http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
Re: [gem5-users] Failed to find stat 'system.bigCluster.clk_domain.clock' and others
I think I found a solution to this problem. It required changing something in the src file gem5/src/sim/power/mathexpr_powermodel.cc. In the startup function the stats are being recorded from the statsList to the stats_map which will be used by the power model to find the corresponding value to each element in the power expressions. The problem with the current implementation that it was taking a substring from the name removing the basename which is the name of the object. So when I try to access it from outside all objects it gives me an error. for (auto & i: Stats::statsList()) { if (i->name.find(basename) == 0) { // Add stats for this sim object and its child objects stats_map[i->name.substr(basename.size())] = i; } else if (i->name.find(".") == std::string::npos) { // Add global stats (sim_seconds, for example) stats_map[i->name] = i; } } What I did and was compatible with what I need to achieve was replacing the whole part with simply this for (auto & i: Stats::statsList()) { stats_map[i->name] = i; } On 23 May 2018 at 17:47, Yara Gowayed wrote: > Hi all > > I am currently working on power modeling using gem5 for arm bigLITTLE > architecture. I am using the fs_power.py script already found in the gem5 > repo but I wanted to change the dummy equations for static and dynamic > power to more meaningful equations. > The stats I need to do so are all found in stats.txt but when I try to > formulate the equations it gives me "failed to find stat" error. > > I already can use some stats like dcache.overall_misses , > dcache.overall_accesses, > numCycles,voltage, dtb_walker_cache.overall_misses, icache.overall_misses > , icache.overall_accesses. > But when it comes to : > system.clk_domain.clock,system.bigCluster.cpus0.iew.iewExecu > tedInsts,system.bigCluster.cpus2.iq.FU_type_0::IntAlu or any other > instructions(MULT,DIV) it fails. > > I kind of have an intuition where the problem is, I went through the > documentation of doxygen and all the stats that failed needs to be accessed > from a certain object that I dont know. > > For example the stats::overall_misses should be accessed from BaseCache > class and I did so in dcache.overall_misses but for the others I tried to > do the same and it failed. > > Any clue how to be able to access the given stats? It doesn't have to be > per core a sum of them will do the same job. > > Also I tried to do the calculations after the simulation ends using > scripts that process data from the stats.txt and that worked, I just want > it now to be online during the simulation. > > Thanks alot! > Yara > > ___ gem5-users mailing list gem5-users@gem5.org http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
[gem5-users] Failed to find stat 'system.bigCluster.clk_domain.clock' and others
Hi all I am currently working on power modeling using gem5 for arm bigLITTLE architecture. I am using the fs_power.py script already found in the gem5 repo but I wanted to change the dummy equations for static and dynamic power to more meaningful equations. The stats I need to do so are all found in stats.txt but when I try to formulate the equations it gives me "failed to find stat" error. I already can use some stats like dcache.overall_misses , dcache.overall_accesses, numCycles,voltage, dtb_walker_cache.overall_misses, icache.overall_misses , icache.overall_accesses. But when it comes to : system.clk_domain.clock,system.bigCluster.cpus0.iew.iewExecutedInsts,system. bigCluster.cpus2.iq.FU_type_0::IntAlu or any other instructions(MULT,DIV) it fails. I kind of have an intuition where the problem is, I went through the documentation of doxygen and all the stats that failed needs to be accessed from a certain object that I dont know. For example the stats::overall_misses should be accessed from BaseCache class and I did so in dcache.overall_misses but for the others I tried to do the same and it failed. Any clue how to be able to access the given stats? It doesn't have to be per core a sum of them will do the same job. Also I tried to do the calculations after the simulation ends using scripts that process data from the stats.txt and that worked, I just want it now to be online during the simulation. Thanks alot! Yara ___ gem5-users mailing list gem5-users@gem5.org http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users