Hi Eliot Moss,

        It really help me confirm if I'm doing the right operate.
        > The BBV file simply says how many times each block of code is 
executed within a given time window. 
        ---> Our views on this are the same, Generating BBV has nothing to do 
with multi-core (multi-thread)

        We encountered another problem when restoring the checkpoint: The 
stats.txt data of the other three cores are almost all 0 or nan
system.switch_cpus0.cpi                      0.831076                       # 
CPI: Cycles Per Instruction
system.switch_cpus1.cpi                           nan                       # 
CPI: Cycles Per Instruction
system.switch_cpus2.cpi                           nan                       # 
CPI: Cycles Per Instruction
system.switch_cpus3.cpi                           nan                       # 
CPI: Cycles Per Instruction

        The number of their submitted instructions, the number of I/DCache hits 
etc. are all 0/nan.
        It looks like the other three cpus are not working.
        Is this caused by the cpu multi-core scheduling strategy? For example, 
the CPU usage of the current program is relatively low, so the program only 
runs on cpu0

Thanks

-----邮件原件-----
发件人: Eliot Moss <m...@cs.umass.edu> 
发送时间: 2022年12月27日 22:34
收件人: 李南松 <linans...@vivo.com>; The gem5 Users mailing list <gem5-users@gem5.org>
抄送: 张文军-软件 <zhangwenjunr...@vivo.com>; 钟婷 <zhongt...@vivo.com>; 夏亚东 
<yadong....@vivo.com>
主题: Re: 答复: [gem5-users] Re: [Multi-core restore checkpoint failed]

[你通常不会收到来自 m...@cs.umass.edu 的电子邮件。请访问 
https://aka.ms/LearnAboutSenderIdentification,以了解这一点为什么很重要]

On 12/27/2022 2:48 AM, 李南松 wrote:
> Hi Eliot Moss,
>
>       Thanks for your reply.
>       I am generating Checkpoint for SPEC2017. Do I need to regenerate my BBV 
> file under N cpus system?
>      There is a condition here that the simpoint_profile (BBV) cannot be 
> generated when n > 1.
>       $vim ./configs/example/fs.py +210
> 205         # Sanity check
> 206         if options.simpoint_profile:
> 207             if not ObjectList.is_noncaching_cpu(TestCPUClass):
> 208                 fatal("SimPoint generation should be done with atomic 
> cpu")
> 209             if np > 1:
> 210                 fatal("SimPoint generation not supported with more than 
> one CPUs")
>
>       How should I generate my BBV file?

Clearly, with one cpu.  The BBV file simply says how many times each block of 
code is executed within a given time window.  I believe that if you take k 
simpoints, that implies k time windows.
So it's just gathering statistics.

Separately you run simulations that determine the amount of time the blocks 
take and the BBV is then used to extrapolate the total amount of time without 
running a detailed simulation of everything.

It is not clear to me that the methodology works with multiple CPUs, but it's 
not something I've used or have deep knowledge of.  (A quick glance on the web 
suggests that simpoints is a single-threaded technique.)

Apparently there are other methods people have researched for multi-threaded 
applications.  The hard thing there is that the different threads interact, 
even if only my their simultaneous impact on the memory system.  So performance 
is hard to determined.

Hope this helps -- EM
_______________________________________________
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org

Reply via email to