gem5-users@gem5.org

The gem5 Users mailing list

View all threads

How to use the KVM CPU take simpoint

KH
kong han
Sun, Apr 4, 2021 9:43 AM

Hi all,
I am trying to take the simpoint while runing benchmark to get the bbv file, but I can’t use the KVM CPU to generate the Simpoint. only the NonCachingSimpleCPU is OK, but it will be to slow. How could I solve this problem?
I use the gem5 version 20.0.0.3,
My cmd is :
./build/ARM/gem5.opt
-d ./m5out/take-simpoint-2/401/ 
./configs/example/fs.py 
--cpu-type=ArmV8KvmCPU 
--simpoint-profile 
--simpoint-interval 100000000 
The fatal is :
fatal: SimPoint generation should be done with atomic cpu.
Thanks.

Hi all, I am trying to take the simpoint while runing benchmark to get the bbv file, but I can’t use the KVM CPU to generate the Simpoint. only the NonCachingSimpleCPU is OK, but it will be to slow. How could I solve this problem? I use the gem5 version 20.0.0.3, My cmd is : ./build/ARM/gem5.opt \ -d ./m5out/take-simpoint-2/401/ \ ./configs/example/fs.py \ --cpu-type=ArmV8KvmCPU \ --simpoint-profile \ --simpoint-interval 100000000 \ The fatal is : fatal: SimPoint generation should be done with atomic cpu. Thanks.
AP
Arthur Perais
Sun, Apr 4, 2021 12:17 PM

KVM runs on the underlying processor (it's running the benchmark
instructions 1:1 on the host CPU). As a result, there is no
instrumentation going on, and so KVM CPU cannot capture basic block
vector information. That's why you have to do it with atomic CPU, or any
other functional simulator (you could do it with Qemu for instance,
which is faster than Atomic, but it's unclear to me that qemu and gem5
atomic would be profiling the exact same instructions as OS activity may
not be exactly the same).

Also, even if you use something else than gem5 to generate bbv files,
you'll still need atomic CPU to reach the correct number of instructions
and dump the checkpoint so that will be slow. Lapidary may be an
alternative but I have not used it
(https://medium.com/@iangneal/lapidary-crafting-more-beautiful-gem5-simulations-4bc6f6aad717).

Good luck,

Arthur

On 4/4/21 11:43 AM, kong han via gem5-users wrote:

Hi all,

I am trying to take the simpoint while runing benchmark to get the bbv
file, but I can’t use the KVM CPU to generate the Simpoint. only the
NonCachingSimpleCPU is OK, but it will be to slow. How could I solve
this problem?

I use the gem5 version 20.0.0.3,

My cmd is :

./build/ARM/gem5.opt \

-d ./m5out/take-simpoint-2/401/  \

./configs/example/fs.py  \

--cpu-type=ArmV8KvmCPU  \

--simpoint-profile  \

--simpoint-interval 100000000   \

The fatal is :

fatal: SimPoint generation should be done with atomic cpu.

Thanks.


gem5-users mailing list -- gem5-users(a)gem5.org
To unsubscribe send an email to gem5-users-leave(a)gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

KVM runs on the underlying processor (it's running the benchmark instructions 1:1 on the host CPU). As a result, there is no instrumentation going on, and so KVM CPU cannot capture basic block vector information. That's why you have to do it with atomic CPU, or any other functional simulator (you could do it with Qemu for instance, which is faster than Atomic, but it's unclear to me that qemu and gem5 atomic would be profiling the exact same instructions as OS activity may not be exactly the same). Also, even if you use something else than gem5 to generate bbv files, you'll still need atomic CPU to reach the correct number of instructions and dump the checkpoint so that will be slow. Lapidary may be an alternative but I have not used it (https://medium.com/@iangneal/lapidary-crafting-more-beautiful-gem5-simulations-4bc6f6aad717). Good luck, Arthur On 4/4/21 11:43 AM, kong han via gem5-users wrote: > > Hi all, > > I am trying to take the simpoint while runing benchmark to get the bbv > file, but I can’t use the KVM CPU to generate the Simpoint. only the > NonCachingSimpleCPU is OK, but it will be to slow. How could I solve > this problem? > > I use the gem5 version 20.0.0.3, > > My cmd is : > > ./build/ARM/gem5.opt \ > > -d ./m5out/take-simpoint-2/401/  \ > > ./configs/example/fs.py  \ > > --cpu-type=ArmV8KvmCPU  \ > > --simpoint-profile  \ > > --simpoint-interval 100000000   \ > > The fatal is : > > fatal: SimPoint generation should be done with atomic cpu. > > Thanks. > > > _______________________________________________ > gem5-users mailing list -- gem5-users(a)gem5.org > To unsubscribe send an email to gem5-users-leave(a)gem5.org > %(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s
KH
kong han
Tue, Apr 6, 2021 2:28 PM

Thanks for your help, now I know the characteristic of the KVM , and thank you recommended the way of Lapidary.
Now I find a new way to generate the bbv file, using the valgrind tools. But another problem is, I get the instructions infos on my host and generate the simpoint file(.sp and .wt), and if I want to use it run the fs, I think it may not be suitable. Because there will be a lot insts when the fs start the linux image and kernel,  but my simpoint file don’t include these insts. So how could I skip these insts in my fs script, or the other ways to solve it.

发件人: Arthur Perais via gem5-usersmailto:gem5-users(a)gem5.org
发送时间: 2021年4月4日 20:18
收件人: gem5-users(a)gem5.orgmailto:gem5-users(a)gem5.org
抄送: Arthur Peraismailto:Arthur.Perais(a)univ-grenoble-alpes.fr
主题: [gem5-users] Re: How to use the KVM CPU take simpoint

KVM runs on the underlying processor (it's running the benchmark instructions 1:1 on the host CPU). As a result, there is no instrumentation going on, and so KVM CPU cannot capture basic block vector information. That's why you have to do it with atomic CPU, or any other functional simulator (you could do it with Qemu for instance, which is faster than Atomic, but it's unclear to me that qemu and gem5 atomic would be profiling the exact same instructions as OS activity may not be exactly the same).

Also, even if you use something else than gem5 to generate bbv files, you'll still need atomic CPU to reach the correct number of instructions and dump the checkpoint so that will be slow. Lapidary may be an alternative but I have not used it (https://medium.com/@iangneal/lapidary-crafting-more-beautiful-gem5-simulations-4bc6f6aad717).

Good luck,

Arthur
On 4/4/21 11:43 AM, kong han via gem5-users wrote:
Hi all,
I am trying to take the simpoint while runing benchmark to get the bbv file, but I can’t use the KVM CPU to generate the Simpoint. only the NonCachingSimpleCPU is OK, but it will be to slow. How could I solve this problem?
I use the gem5 version 20.0.0.3,
My cmd is :
./build/ARM/gem5.opt
-d ./m5out/take-simpoint-2/401/ 
./configs/example/fs.py 
--cpu-type=ArmV8KvmCPU 
--simpoint-profile 
--simpoint-interval 100000000 
The fatal is :
fatal: SimPoint generation should be done with atomic cpu.
Thanks.


gem5-users mailing list -- gem5-users(a)gem5.orgmailto:gem5-users(a)gem5.org

To unsubscribe send an email to gem5-users-leave(a)gem5.orgmailto:gem5-users-leave(a)gem5.org

%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

Thanks for your help, now I know the characteristic of the KVM , and thank you recommended the way of Lapidary. Now I find a new way to generate the bbv file, using the valgrind tools. But another problem is, I get the instructions infos on my host and generate the simpoint file(.sp and .wt), and if I want to use it run the fs, I think it may not be suitable. Because there will be a lot insts when the fs start the linux image and kernel, but my simpoint file don’t include these insts. So how could I skip these insts in my fs script, or the other ways to solve it. 发件人: Arthur Perais via gem5-users<mailto:gem5-users(a)gem5.org> 发送时间: 2021年4月4日 20:18 收件人: gem5-users(a)gem5.org<mailto:gem5-users(a)gem5.org> 抄送: Arthur Perais<mailto:Arthur.Perais(a)univ-grenoble-alpes.fr> 主题: [gem5-users] Re: How to use the KVM CPU take simpoint KVM runs on the underlying processor (it's running the benchmark instructions 1:1 on the host CPU). As a result, there is no instrumentation going on, and so KVM CPU cannot capture basic block vector information. That's why you have to do it with atomic CPU, or any other functional simulator (you could do it with Qemu for instance, which is faster than Atomic, but it's unclear to me that qemu and gem5 atomic would be profiling the exact same instructions as OS activity may not be exactly the same). Also, even if you use something else than gem5 to generate bbv files, you'll still need atomic CPU to reach the correct number of instructions and dump the checkpoint so that will be slow. Lapidary may be an alternative but I have not used it (https://medium.com/@iangneal/lapidary-crafting-more-beautiful-gem5-simulations-4bc6f6aad717). Good luck, Arthur On 4/4/21 11:43 AM, kong han via gem5-users wrote: Hi all, I am trying to take the simpoint while runing benchmark to get the bbv file, but I can’t use the KVM CPU to generate the Simpoint. only the NonCachingSimpleCPU is OK, but it will be to slow. How could I solve this problem? I use the gem5 version 20.0.0.3, My cmd is : ./build/ARM/gem5.opt \ -d ./m5out/take-simpoint-2/401/ \ ./configs/example/fs.py \ --cpu-type=ArmV8KvmCPU \ --simpoint-profile \ --simpoint-interval 100000000 \ The fatal is : fatal: SimPoint generation should be done with atomic cpu. Thanks. _______________________________________________ gem5-users mailing list -- gem5-users(a)gem5.org<mailto:gem5-users(a)gem5.org> To unsubscribe send an email to gem5-users-leave(a)gem5.org<mailto:gem5-users-leave(a)gem5.org> %(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s