Hey Andreas,

Can you help me on this.

Thanks,
Bhaskar

On Wed, Jan 13, 2016 at 6:37 PM, Bhaskar Kalita <[email protected]>
wrote:

> Hi Andreas,
>
> I want the values for every specific distance. Can you tell me which files
> do I need to change to do so? I require the values in that format to input
> it in a scheduling simulator named SimSo in the form of the SDP file of a
> task. The simulator takes the values for ever particular distance rather
> than in a generalized form. So it will be better if I could get the values
> in this format using gem5.
>
>
> 0 .3946537296
> 1 .1320268926
> 2 .0680432691
> 3 .0526663317
> 4 .0700712422
> 5 .0308234477
> 6 .0356989232
> 7 .0200548268
> 8 .0118467264
> 9 .0195609635
> 10 .0122696827
> 11 .0052761524
> 12 .0032688299
> 13 .0091512174
> 14 .0038000460
> 15 .0030201249
> 16 .0012057944
> 17 .0034824725
> 18 .0047665379
>
> In earlier work I have read that this type of SDP was obtained by using
> gem5. So if you could tell me where I can make the changes ????
>
> Thanks,
> Bhaskar
>
> On Sat, Dec 19, 2015 at 3:49 PM, Andreas Hansson <[email protected]>
> wrote:
>
>> Hi Bhaskar,
>>
>> The values refer to stack distances, measures in accesses. Thus, you have
>> 6 requests/packets where the stack distance is between 0 and 127.
>>
>> I don’t understand why you want them in a separate file. gem5 relies on a
>> centralised stats.txt, you can change the name, but all the stats will end
>> up in the same file.
>>
>> If you want the stack distance for a specific address you will have to
>> change the source. The probe is intended to scale to large datasets and
>> long simulation runs, so it needs to handle hundreds of millions of
>> accesses. I honestly do not understand why you want it per line…but if you
>> do you will have to hack away.
>>
>> Andreas
>>
>> From: gem5-users <[email protected]> on behalf of Bhaskar
>> Kalita <[email protected]>
>> Reply-To: gem5 users mailing list <[email protected]>
>> Date: Friday, 18 December 2015 at 17:07
>>
>> To: gem5 users mailing list <[email protected]>
>> Subject: Re: [gem5-users] How to use stack distance calculator in gem5.
>>
>> Hi Andreas,
>>
>> Thanks for your help. I am able to obtain the sdp by adding the following
>> lines in CacheConfig.py:
>>
>>         system.monitor = CommMonitor()
>> system.monitor.trace = MemTraceProbe(trace_file = "monitor.ptrc.gz")
>> system.monitor.stackdist = StackDistProbe( disable_log_hists = True )
>> system.l2.cpu_side = system.monitor.master
>> system.monitor.slave = system.tol2bus.master
>>       #system.l2.cpu_side = system.tol2bus.master
>>         system.l2.mem_side = system.membus.slave
>>
>> The sdp is obtained in the stats,txt file. And the values are generalized
>> in a range like:
>>
>> system.monitor.stack_dist_calc.readLinearHist::0-127            6
>> 12.24%     12.24% # Reads linear distribution
>> system.monitor.stack_dist_calc.readLinearHist::128-255            8
>> 16.33%     28.57% # Reads linear distribution
>> system.monitor.stack_dist_calc.readLinearHist::256-383            4
>>  8.16%     36.73% # Reads linear distribution
>> system.monitor.stack_dist_calc.readLinearHist::384-511            0
>>  0.00%     36.73% # Reads linear distribution
>>
>> Do the numbers 0-127 refer to the cache lines???
>> Is their a way to print this value in a separate file???
>> How can I find the values for every distinct lines???
>>
>>
>>
>> On Fri, Nov 13, 2015 at 3:46 AM, Andreas Hansson <[email protected]
>> > wrote:
>>
>>> Hi Bhaskar,
>>>
>>> Have you sorted out your issues? I just tried adding these lines to the
>>> gem5 trunk (not the gem5-stable repo) and it does the job for the
>>> regression scripts. The se.py and fs.py scripts don’t call this function in
>>> BaseCPU (unfortunately we do things differently in different scripts), so
>>> for these you have to do the corresponding changes in
>>> configs/common/CacheConfig where the l2 is added.
>>>
>>> Also, be mindful of the indentation in Python files.
>>>
>>> Andreas
>>>
>>> From: gem5-users <[email protected]> on behalf of Bhaskar
>>> Kalita <[email protected]>
>>> Reply-To: gem5 users mailing list <[email protected]>
>>> Date: Wednesday, 11 November 2015 at 10:36
>>>
>>> To: gem5 users mailing list <[email protected]>
>>> Subject: Re: [gem5-users] How to use stack distance calculator in gem5.
>>>
>>> Hi Andreas;
>>>
>>> I installed pydot. Now am more clear with the topology. I want to put
>>> the monitor "before L2". So, tried changing BaseCPU.py as:
>>>
>>>        #self.toL2Bus.master = self.l2cache.cpu_side
>>> self.monitor = CommMonitor()
>>> self.monitor.StackDist = StackDistProbe(verify = True)
>>>         self.toL2Bus.master = self.monitor.slave
>>> self.monitor.master = self.l2cache.cpu_side
>>>         self._cached_ports = ['l2cache.mem_side']
>>>
>>> I recompiled and and trier to run an example and received error as:
>>>
>>> fatal: system.monitor.stackdist without default or user set value
>>>
>>> And I also cannot see the CommMonitor anywhere in the in the dot files.
>>>
>>> Do I also need to make change in se.py and CommMonitor.py??? I have
>>> attached the three files for reference.
>>>
>>> Thanks,
>>>
>>> Bhaskar
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> On Sun, Nov 8, 2015 at 10:34 PM, Andreas Hansson <
>>> [email protected]> wrote:
>>>
>>>> Hi Bhaskar,
>>>>
>>>> Something is not quite right in the topology you are expressing in
>>>> these lines. Have you looked at the graphical output (make sure you have
>>>> py-dot installed)?
>>>>
>>>> You want to trace _after_ the l2? If so, I would suggest to connect the
>>>> L2 cache as usual. Then instantiate and connect the monitor:
>>>>
>>>> self.monitor = CommMonitor()
>>>> self.monitor.slave = self.l2cache.mem_side
>>>> self._cached_ports = [‘monitor.master’]
>>>>
>>>> This will leave the CommMonitor as the “exposed” port being connected
>>>> downwards.
>>>>
>>>> Make sure this is all working before you start fiddling with the
>>>> probes. The graphical output is your friend…
>>>>
>>>> Once the above is working, it should just be a matter of adding a line:
>>>>
>>>> self.monitor.sdprobe = StackDistProbe()
>>>>
>>>> Andreas
>>>>
>>>> From: gem5-users <[email protected]> on behalf of Bhaskar
>>>> Kalita <[email protected]>
>>>> Reply-To: gem5 users mailing list <[email protected]>
>>>> Date: Sunday, 8 November 2015 at 12:16
>>>>
>>>> To: gem5 users mailing list <[email protected]>
>>>> Subject: Re: [gem5-users] How to use stack distance calculator in gem5.
>>>>
>>>> Hi Andreas,
>>>>
>>>> You did not respond to my previous mail, hope you reply to this. I went
>>>> through the mail archive regarding CommMonitor. I tried again changing
>>>> BaseCPU.py as:
>>>>
>>>> self.toL2Bus.master = self.l2cache.cpu_side
>>>>         self._cached_ports = ['l2cache.mem_side']
>>>> self.monitor = CommMonitor()
>>>> self.monitor.stackdist = StackDistProbe(verify = True)
>>>>         self.l2cache.cpu_side = self.monitor.master
>>>> self.monitor.slave = self.l2cache.mem_side
>>>>
>>>> I re-compiled and tried to run an example but received the following
>>>> error:
>>>>
>>>> fatal: system.monitor.stackdist without default or user set value
>>>>
>>>> For reference my command line was:
>>>>
>>>> build/X86/gem5.debug --debug-flag=StackDist --stats-file=hello.txt
>>>> --dump-config=hello.ini --json-config=hello.json configs/example/se.py
>>>> --num-cpus=1 --cpu-type=DerivO3CPU --caches --l1i_size=32kB --l1d_size=32kB
>>>> --l2cache --num-l2caches=1 --l2_size=256kB --l2_assoc=4 -c
>>>> 'tests/test-progs/hello/bin/x86/linux/hello;'
>>>>
>>>> Can you help me out where am making the mistake.
>>>>
>>>> Thanks,
>>>> Bhaskar
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> On Fri, Nov 6, 2015 at 5:03 AM, Bhaskar Kalita <[email protected]>
>>>> wrote:
>>>>
>>>>> Hi Andreas
>>>>>
>>>>> I want to measure the stack distance for l2 cache. So, tried to place
>>>>> the CommMonitor between toL2Bus.master and l2cache.cpu_side in BaseCPU.py
>>>>> as:
>>>>>
>>>>>        #self.toL2Bus.master = self.l2cache.cpu_side
>>>>>        #self._cached_ports = ['l2cache.mem_side']
>>>>>         self.l2MONITOR = CommMonitor()
>>>>> self.l2MONITOR.stackdist = StackDistProbe(verify = True)
>>>>> self.toL2Bus.master = self.l2MONITOR.slave
>>>>>         self.l2MONITOR.master = self.l2cache.cpu_side
>>>>>         self._cached_ports = ['l2cache.mem_side']
>>>>>
>>>>> I tried assigning a StackDistProbe to the comm monitor as:
>>>>>
>>>>>      stackdist = Param.StackDistProbe(NULL)
>>>>>
>>>>> I re-compiled as scons build/X86/gem5.debug. It worked fine. The error
>>>>> I got while trying to run an example was
>>>>>
>>>>>        Traceback (most recent call last):
>>>>>   File "<string>", line 1, in <module>
>>>>>   File
>>>>> "/home/bhaskar/Downloads/gem5-stable-a48faafdb3bf/src/python/m5/main.py",
>>>>> line 389, in main
>>>>>     exec filecode in scope
>>>>>   File "configs/example/se.py", line 286, in <module>
>>>>>     Simulation.run(options, root, system, FutureClass)
>>>>>   File
>>>>> "/home/bhaskar/Downloads/gem5-stable-a48faafdb3bf/configs/common/Simulation.py",
>>>>> line 583, in run
>>>>>     m5.instantiate(checkpoint_dir)
>>>>>   File
>>>>> "/home/bhaskar/Downloads/gem5-stable-a48faafdb3bf/src/python/m5/simulate.py",
>>>>> line 114, in instantiate
>>>>>     for obj in root.descendants(): obj.createCCObject()
>>>>>   File
>>>>> "/home/bhaskar/Downloads/gem5-stable-a48faafdb3bf/src/python/m5/SimObject.py",
>>>>> line 1453, in createCCObject
>>>>>     self.getCCParams()
>>>>>   File
>>>>> "/home/bhaskar/Downloads/gem5-stable-a48faafdb3bf/src/python/m5/SimObject.py",
>>>>> line 1400, in getCCParams
>>>>>     value = value.getValue()
>>>>>   File
>>>>> "/home/bhaskar/Downloads/gem5-stable-a48faafdb3bf/src/python/m5/SimObject.py",
>>>>> line 1457, in getValue
>>>>>     return self.getCCObject()
>>>>>   File
>>>>> "/home/bhaskar/Downloads/gem5-stable-a48faafdb3bf/src/python/m5/SimObject.py",
>>>>> line 1435, in getCCObject
>>>>>     params = self.getCCParams()
>>>>>   File
>>>>> "/home/bhaskar/Downloads/gem5-stable-a48faafdb3bf/src/python/m5/SimObject.py",
>>>>> line 1400, in getCCParams
>>>>>     value = value.getValue()
>>>>>   File
>>>>> "/home/bhaskar/Downloads/gem5-stable-a48faafdb3bf/src/python/m5/params.py",
>>>>> line 248, in getValue
>>>>>     return [ v.getValue() for v in self ]
>>>>>   File
>>>>> "/home/bhaskar/Downloads/gem5-stable-a48faafdb3bf/src/python/m5/SimObject.py",
>>>>> line 1457, in getValue
>>>>>     return self.getCCObject()
>>>>>   File
>>>>> "/home/bhaskar/Downloads/gem5-stable-a48faafdb3bf/src/python/m5/SimObject.py",
>>>>> line 1435, in getCCObject
>>>>>     params = self.getCCParams()
>>>>>   File
>>>>> "/home/bhaskar/Downloads/gem5-stable-a48faafdb3bf/src/python/m5/SimObject.py",
>>>>> line 1400, in getCCParams
>>>>>     value = value.getValue()
>>>>>   File
>>>>> "/home/bhaskar/Downloads/gem5-stable-a48faafdb3bf/src/python/m5/SimObject.py",
>>>>> line 1457, in getValue
>>>>>     return self.getCCObject()
>>>>>   File
>>>>> "/home/bhaskar/Downloads/gem5-stable-a48faafdb3bf/src/python/m5/SimObject.py",
>>>>> line 1439, in getCCObject
>>>>>     % self.path()
>>>>> RuntimeError: system.monitor.stackdist: Cycle found in configuration
>>>>> hierarchy.
>>>>>
>>>>>
>>>>> Can you please explain if I need to modify se.py for my purpose?
>>>>> Please help me out through this as I am very new to gem5.
>>>>>
>>>>>
>>>>> Thanks
>>>>>
>>>>> Bhaskar
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> On Thu, Nov 5, 2015 at 1:50 PM, Andreas Hansson <
>>>>> [email protected]> wrote:
>>>>>
>>>>>> Hi Bhaskar,
>>>>>>
>>>>>> Have a look at tests/config/tgen-simple-mem.py.
>>>>>>
>>>>>> The comm monitor has a master and a slave port, and you need to
>>>>>> connect it “between” two other modules. There are plenty examples on the
>>>>>> mailing list for adding it between the L1 and L2, for example by changing
>>>>>> BaseCpu.py (if you do, remember to recompile). Once you have instantiated
>>>>>> the comm monitor, and connected it, run an experiment and make sure you 
>>>>>> get
>>>>>> the stats in the stats.txt output. Also, if you install pydot, you can 
>>>>>> see
>>>>>> the system topology in m5out/config.dot.pdf or config.dot.svg (the latter
>>>>>> even has mouseover tooltips etc).
>>>>>>
>>>>>> When the things above are working, just assign a StackDistProbe to
>>>>>> the comm monitor, as done in tests/config/tgen-simple-mem.py.
>>>>>>
>>>>>> Good luck.
>>>>>>
>>>>>> Andreas
>>>>>>
>>>>>> From: gem5-users <[email protected]> on behalf of Bhaskar
>>>>>> Kalita <[email protected]>
>>>>>> Reply-To: gem5 users mailing list <[email protected]>
>>>>>> Date: Wednesday, 4 November 2015 at 20:23
>>>>>> To: gem5 users mailing list <[email protected]>
>>>>>> Subject: Re: [gem5-users] How to use stack distance calculator in
>>>>>> gem5.
>>>>>>
>>>>>> Hi Andreas,
>>>>>>
>>>>>> Thanks for your response. Can you please tell me how to instantiate
>>>>>> the probe. I tried modifying the se.py file as:
>>>>>>
>>>>>> # Create a separate clock domain for the CPUs
>>>>>> system.cpu_clk_domain = SrcClockDomain(clock = options.cpu_clock,
>>>>>>                                        voltage_domain =
>>>>>>                                        system.cpu_voltage_domain)
>>>>>>
>>>>>> # to calculate stack distance
>>>>>> system.monitor = CommMonitor()
>>>>>> system.monitor.stackdist = StackDistProbe(verify = True)
>>>>>>
>>>>>>
>>>>>> And also changed BaseCPU.py as:
>>>>>>
>>>>>> def addTwoLevelCacheHierarchy(self, ic, dc, l2c, iwc = None, dwc =
>>>>>> None):
>>>>>>         self.addPrivateSplitL1Caches(ic, dc, iwc, dwc)
>>>>>>         self.toL2Bus = L2XBar()
>>>>>>         self.connectCachedPorts(self.toL2Bus)
>>>>>>         self.l2cache = l2c
>>>>>>         self.toL2Bus.master = self.l2cache.cpu_side
>>>>>>         self._cached_ports = ['l2cache.mem_side']
>>>>>>
>>>>>>         # to calculate stack distance
>>>>>>         self.l2MONITOR = StackDistProbe(verify = True)
>>>>>>         self._cached_ports = self.l2MONITOR.slave
>>>>>>         self.l2MONITOR.master = l2cache.mem_side
>>>>>>
>>>>>> When I tried to run my program I got an error as "fatal:
>>>>>> Communication monitor is not connected on both sides."
>>>>>> Can you please tell me if I am approaching in the right direction and
>>>>>> what are the other things to be done.
>>>>>>
>>>>>> Thanks
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Mon, Nov 2, 2015 at 2:10 PM, Andreas Hansson <
>>>>>> [email protected]> wrote:
>>>>>>
>>>>>>> Hi Bhaskar,
>>>>>>>
>>>>>>> There are a few steps you need to take, and it involves a few
>>>>>>> widely-adopted gem5 concepts:
>>>>>>>
>>>>>>> - First, the stack distance calculator is a probe, and the output is
>>>>>>> in the shape of gem5 stats. Thus, you need to instantiate the probe, and
>>>>>>> attach it to a probe point.
>>>>>>>
>>>>>>> - Second, to be able to attach the probe in various locations in the
>>>>>>> memory system (core to L1, before the L2, in front of the system 
>>>>>>> memory),
>>>>>>> we use a module called a  CommMonitor, which has a bunch of generic 
>>>>>>> stats,
>>>>>>> but also suitable packet probe points.
>>>>>>>
>>>>>>> Consequently, you need to modify your script that assembles and
>>>>>>> configures the system, in your case se.py, and instantiate a 
>>>>>>> CommMonitor,
>>>>>>> connect it where you want to monitor the communication, then 
>>>>>>> instantiate a
>>>>>>> StackDistProbe and attach it to the monitor you just instantiated. The 
>>>>>>> bad
>>>>>>> news is that it involves quite a few steps. The good news is that these 
>>>>>>> are
>>>>>>> all things you will need to do as a gem5 user in any case, so better get
>>>>>>> used to it :-).
>>>>>>>
>>>>>>> For an example, have a look at one of the regression scripts,
>>>>>>> tests/config/tgen-simple-mem.py. This script includes both trace
>>>>>>> generation, and calculation of stack distance. Note that you don’t need 
>>>>>>> to
>>>>>>> set "verify = True" on the StackDistProbe. If you do you will calculate 
>>>>>>> the
>>>>>>> stack distance both using a clever algorithm, and a “naïve” stack which 
>>>>>>> is
>>>>>>> a lot slower.
>>>>>>>
>>>>>>> Andreas
>>>>>>>
>>>>>>>
>>>>>>> From: gem5-users <[email protected]> on behalf of Bhaskar
>>>>>>> Kalita <[email protected]>
>>>>>>> Reply-To: gem5 users mailing list <[email protected]>
>>>>>>> Date: Sunday, 1 November 2015 at 22:08
>>>>>>> To: "[email protected]" <[email protected]>
>>>>>>> Subject: [gem5-users] How to use stack distance calculator in gem5.
>>>>>>>
>>>>>>> Hi
>>>>>>> I am Bhaskar. I am a final year B.E student. For my final year
>>>>>>> project I am using the gem5 simulator. I need to collect the stack 
>>>>>>> distance
>>>>>>> of programs using gem5. I used the --debug-flag="StackDist", but it did 
>>>>>>> not
>>>>>>> print anything. I also tried setting the verifyStack flag in
>>>>>>> mem/stack_dist_calc.hh to true as:
>>>>>>> // Flag to enable verification of stack. (Slows down the simulation)
>>>>>>>     const bool verifyStack=true;
>>>>>>> but it did not work too. For reference this is the command line am
>>>>>>> usuing:
>>>>>>> build/X86/gem5.debug --debug-flag='StackDist'
>>>>>>> --debug-file='sdp.trc.gz' --stats-file=forij.txt --dump-config=for.ini
>>>>>>> --json-config=for.json configs/example/se.py --num-cpus=1
>>>>>>> --cpu-type=DerivO3CPU --caches --l1i_size=32kB --l1d_size=32kB --l2cache
>>>>>>> --num-l2caches=1 --l2_size=256kB --l2_assoc=4 -c "bench/x86/forij;"
>>>>>>>
>>>>>>> Can you please guide me through my problem and tell me to do the
>>>>>>> necessary steps.
>>>>>>>
>>>>>>> Thanks for your support
>>>>>>>
>>>>>>> -Bhaskar
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> ------------------------------
>>>>>>>
>>>>>>> -- IMPORTANT NOTICE: The contents of this email and any attachments
>>>>>>> are confidential and may also be privileged. If you are not the intended
>>>>>>> recipient, please notify the sender immediately and do not disclose the
>>>>>>> contents to any other person, use it for any purpose, or store or copy 
>>>>>>> the
>>>>>>> information in any medium. Thank you.
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> gem5-users mailing list
>>>>>>> [email protected]
>>>>>>> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
>>>>>>>
>>>>>>
>>>>>>
>>>>>> ------------------------------
>>>>>>
>>>>>> -- IMPORTANT NOTICE: The contents of this email and any attachments
>>>>>> are confidential and may also be privileged. If you are not the intended
>>>>>> recipient, please notify the sender immediately and do not disclose the
>>>>>> contents to any other person, use it for any purpose, or store or copy 
>>>>>> the
>>>>>> information in any medium. Thank you.
>>>>>>
>>>>>> _______________________________________________
>>>>>> gem5-users mailing list
>>>>>> [email protected]
>>>>>> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
>>>>>>
>>>>>
>>>>>
>>>>
>>>> ------------------------------
>>>>
>>>> -- IMPORTANT NOTICE: The contents of this email and any attachments are
>>>> confidential and may also be privileged. If you are not the intended
>>>> recipient, please notify the sender immediately and do not disclose the
>>>> contents to any other person, use it for any purpose, or store or copy the
>>>> information in any medium. Thank you.
>>>>
>>>> _______________________________________________
>>>> gem5-users mailing list
>>>> [email protected]
>>>> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
>>>>
>>>
>>>
>>> ------------------------------
>>>
>>> -- IMPORTANT NOTICE: The contents of this email and any attachments are
>>> confidential and may also be privileged. If you are not the intended
>>> recipient, please notify the sender immediately and do not disclose the
>>> contents to any other person, use it for any purpose, or store or copy the
>>> information in any medium. Thank you.
>>>
>>> _______________________________________________
>>> gem5-users mailing list
>>> [email protected]
>>> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
>>>
>>
>> IMPORTANT NOTICE: The contents of this email and any attachments are
>> confidential and may also be privileged. If you are not the intended
>> recipient, please notify the sender immediately and do not disclose the
>> contents to any other person, use it for any purpose, or store or copy the
>> information in any medium. Thank you.
>>
>> _______________________________________________
>> gem5-users mailing list
>> [email protected]
>> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
>>
>
>
_______________________________________________
gem5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Reply via email to