[gem5-users] MultiProgrammed Workload X86 O3CPU error using SMT

2020-02-05 Thread Abhishek Singh
Hello Everyone,

I am using X86 ISA, Out of order CPU. I wanted to run a multi-programmed
workload using SMT

My command line 1 is:

./build/X86/gem5.opt configs/example/se.py -c
tests/test-progs/hello/bin/x86/linux/hello;tests/test-progs/hello/bin/x86/linux/hello
--caches --l2cache --l1d_size=32kB --l1i_size=32kB --l2_size=2MB
--l1d_assoc=8 --l1i_assoc=8 --l2_assoc=16 --cacheline_size=64
--cpu-type=DerivO3CPU --mem-type=DDR4_2400_8x8 --mem-size=8GB
--sys-clock='2.6GHz' --cpu-clock='2.6GHz' --smt


I am using commit *82f6d6e90.*

When I run the command and check *m5out/config.ini, *the *system.cpu*
parameter is AtomicSimpleCPU instead of DerivO3CPU.

I tried the command without smt and using "-n" to run on different cores

My command line 2 is:
./build/X86/gem5.opt configs/example/se.py -c
tests/test-progs/hello/bin/x86/linux/hello;tests/test-progs/hello/bin/x86/linux/hello
--caches --l2cache --l1d_size=32kB --l1i_size=32kB --l2_size=2MB
--l1d_assoc=8 --l1i_assoc=8 --l2_assoc=16 --cacheline_size=64
--cpu-type=DerivO3CPU --mem-type=DDR4_2400_8x8 --mem-size=8GB
--sys-clock='2.6GHz' --cpu-clock='2.6GHz' -n 2

The cpu being used is AtomicSimpleCPU instead O3CPU indicated by
m5out/config.ini, is there any problem with my command or is there an error?

Best regards,

Abhishek
___
gem5-users mailing list
gem5-users@gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Re: [gem5-users] MultiProgrammed Workload X86 O3CPU error using SMT

2020-02-05 Thread Jason Lowe-Power
Hi Abhishek,

SMT is not something that is normally tested. I expect that this is a
problem with se.py (and the 10s of other python files that it uses...). I
suggest making a config script from scratch like in Learning gem5 so you
know exactly what configuration you're running. You should be able to
easily create your own config that has the parameters shown in your command
line.

PS: The interface to gem5 is *not* command line parameters. The interface
to gem5 is *python scripts*.

Cheers,
Jason

On Wed, Feb 5, 2020 at 8:14 AM Abhishek Singh <
abhishek.singh199...@gmail.com> wrote:

> Hello Everyone,
>
> I am using X86 ISA, Out of order CPU. I wanted to run a multi-programmed
> workload using SMT
>
> My command line 1 is:
>
> ./build/X86/gem5.opt configs/example/se.py -c
> tests/test-progs/hello/bin/x86/linux/hello;tests/test-progs/hello/bin/x86/linux/hello
> --caches --l2cache --l1d_size=32kB --l1i_size=32kB --l2_size=2MB
> --l1d_assoc=8 --l1i_assoc=8 --l2_assoc=16 --cacheline_size=64
> --cpu-type=DerivO3CPU --mem-type=DDR4_2400_8x8 --mem-size=8GB
> --sys-clock='2.6GHz' --cpu-clock='2.6GHz' --smt
>
>
> I am using commit *82f6d6e90.*
>
> When I run the command and check *m5out/config.ini, *the *system.cpu*
> parameter is AtomicSimpleCPU instead of DerivO3CPU.
>
> I tried the command without smt and using "-n" to run on different cores
>
> My command line 2 is:
> ./build/X86/gem5.opt configs/example/se.py -c
> tests/test-progs/hello/bin/x86/linux/hello;tests/test-progs/hello/bin/x86/linux/hello
> --caches --l2cache --l1d_size=32kB --l1i_size=32kB --l2_size=2MB
> --l1d_assoc=8 --l1i_assoc=8 --l2_assoc=16 --cacheline_size=64
> --cpu-type=DerivO3CPU --mem-type=DDR4_2400_8x8 --mem-size=8GB
> --sys-clock='2.6GHz' --cpu-clock='2.6GHz' -n 2
>
> The cpu being used is AtomicSimpleCPU instead O3CPU indicated by
> m5out/config.ini, is there any problem with my command or is there an error?
>
> Best regards,
>
> Abhishek
> ___
> 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] MultiProgrammed Workload X86 O3CPU error using SMT

2020-02-05 Thread Giacomo Travaglini
./build/X86/gem5.opt configs/example/se.py -c 
tests/test-progs/hello/bin/x86/linux/hello;tests/test-progs/hello/bin/x86/linux/hello
 --caches --l2cache --l1d_size=32kB --l1i_size=32kB --l2_size=2MB --l1d_assoc=8 
--l1i_assoc=8 --l2_assoc=16 --cacheline_size=64 --cpu-type=DerivO3CPU 
--mem-type=DDR4_2400_8x8 --mem-size=8GB --sys-clock='2.6GHz' 
--cpu-clock='2.6GHz' --smt

The bolded argument (more specifically the ";") is confusing the OptParser.
You should quote it

./build/X86/gem5.opt configs/example/se.py -c 
"tests/test-progs/hello/bin/x86/linux/hello;tests/test-progs/hello/bin/x86/linux/hello"
 --caches --l2cache --l1d_size=32kB --l1i_size=32kB --l2_size=2MB --l1d_assoc=8 
--l1i_assoc=8 --l2_assoc=16 --cacheline_size=64 --cpu-type=DerivO3CPU 
--mem-type=DDR4_2400_8x8 --mem-size=8GB --sys-clock='2.6GHz' 
--cpu-clock='2.6GHz' --smt

From: gem5-users  on behalf of Abhishek Singh 

Sent: 05 February 2020 16:14
To: gem5 users mailing list 
Subject: [gem5-users] MultiProgrammed Workload X86 O3CPU error using SMT

Hello Everyone,

I am using X86 ISA, Out of order CPU. I wanted to run a multi-programmed 
workload using SMT

My command line 1 is:

./build/X86/gem5.opt configs/example/se.py -c 
tests/test-progs/hello/bin/x86/linux/hello;tests/test-progs/hello/bin/x86/linux/hello
 --caches --l2cache --l1d_size=32kB --l1i_size=32kB --l2_size=2MB --l1d_assoc=8 
--l1i_assoc=8 --l2_assoc=16 --cacheline_size=64 --cpu-type=DerivO3CPU 
--mem-type=DDR4_2400_8x8 --mem-size=8GB --sys-clock='2.6GHz' 
--cpu-clock='2.6GHz' --smt


I am using commit 82f6d6e90.

When I run the command and check m5out/config.ini, the system.cpu parameter is 
AtomicSimpleCPU instead of DerivO3CPU.

I tried the command without smt and using "-n" to run on different cores

My command line 2 is:
./build/X86/gem5.opt configs/example/se.py -c 
tests/test-progs/hello/bin/x86/linux/hello;tests/test-progs/hello/bin/x86/linux/hello
 --caches --l2cache --l1d_size=32kB --l1i_size=32kB --l2_size=2MB --l1d_assoc=8 
--l1i_assoc=8 --l2_assoc=16 --cacheline_size=64 --cpu-type=DerivO3CPU 
--mem-type=DDR4_2400_8x8 --mem-size=8GB --sys-clock='2.6GHz' 
--cpu-clock='2.6GHz' -n 2

The cpu being used is AtomicSimpleCPU instead O3CPU indicated by 
m5out/config.ini, is there any problem with my command or is there an error?


Best regards,

Abhishek

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
gem5-users@gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Re: [gem5-users] MultiProgrammed Workload X86 O3CPU error using SMT

2020-02-05 Thread Giacomo Travaglini
This is a nasty thing:

get_processes(options) in se.py is manually parsing the workload list.

This shouldn't happen; we should explicitly enable argument lists without 
coming up with a custom made ";" separeted synthax.

Giacomo

From: gem5-users  on behalf of Giacomo Travaglini 

Sent: 05 February 2020 16:36
To: gem5 users mailing list 
Subject: Re: [gem5-users] MultiProgrammed Workload X86 O3CPU error using SMT

./build/X86/gem5.opt configs/example/se.py -c 
tests/test-progs/hello/bin/x86/linux/hello;tests/test-progs/hello/bin/x86/linux/hello
 --caches --l2cache --l1d_size=32kB --l1i_size=32kB --l2_size=2MB --l1d_assoc=8 
--l1i_assoc=8 --l2_assoc=16 --cacheline_size=64 --cpu-type=DerivO3CPU 
--mem-type=DDR4_2400_8x8 --mem-size=8GB --sys-clock='2.6GHz' 
--cpu-clock='2.6GHz' --smt

The bolded argument (more specifically the ";") is confusing the OptParser.
You should quote it

./build/X86/gem5.opt configs/example/se.py -c 
"tests/test-progs/hello/bin/x86/linux/hello;tests/test-progs/hello/bin/x86/linux/hello"
 --caches --l2cache --l1d_size=32kB --l1i_size=32kB --l2_size=2MB --l1d_assoc=8 
--l1i_assoc=8 --l2_assoc=16 --cacheline_size=64 --cpu-type=DerivO3CPU 
--mem-type=DDR4_2400_8x8 --mem-size=8GB --sys-clock='2.6GHz' 
--cpu-clock='2.6GHz' --smt

From: gem5-users  on behalf of Abhishek Singh 

Sent: 05 February 2020 16:14
To: gem5 users mailing list 
Subject: [gem5-users] MultiProgrammed Workload X86 O3CPU error using SMT

Hello Everyone,

I am using X86 ISA, Out of order CPU. I wanted to run a multi-programmed 
workload using SMT

My command line 1 is:

./build/X86/gem5.opt configs/example/se.py -c 
tests/test-progs/hello/bin/x86/linux/hello;tests/test-progs/hello/bin/x86/linux/hello
 --caches --l2cache --l1d_size=32kB --l1i_size=32kB --l2_size=2MB --l1d_assoc=8 
--l1i_assoc=8 --l2_assoc=16 --cacheline_size=64 --cpu-type=DerivO3CPU 
--mem-type=DDR4_2400_8x8 --mem-size=8GB --sys-clock='2.6GHz' 
--cpu-clock='2.6GHz' --smt


I am using commit 82f6d6e90.

When I run the command and check m5out/config.ini, the system.cpu parameter is 
AtomicSimpleCPU instead of DerivO3CPU.

I tried the command without smt and using "-n" to run on different cores

My command line 2 is:
./build/X86/gem5.opt configs/example/se.py -c 
tests/test-progs/hello/bin/x86/linux/hello;tests/test-progs/hello/bin/x86/linux/hello
 --caches --l2cache --l1d_size=32kB --l1i_size=32kB --l2_size=2MB --l1d_assoc=8 
--l1i_assoc=8 --l2_assoc=16 --cacheline_size=64 --cpu-type=DerivO3CPU 
--mem-type=DDR4_2400_8x8 --mem-size=8GB --sys-clock='2.6GHz' 
--cpu-clock='2.6GHz' -n 2

The cpu being used is AtomicSimpleCPU instead O3CPU indicated by 
m5out/config.ini, is there any problem with my command or is there an error?


Best regards,

Abhishek

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.
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
gem5-users@gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Re: [gem5-users] MultiProgrammed Workload X86 O3CPU error using SMT

2020-02-05 Thread Carlos Escuin

Hi Abhishek,


I think when you check *m5out/config.ini*, you should look at 
*switch.cpu* instead of *system.cpu*.


System.cpu is always initialized to AtomicSimpleCPU by se.py.

Switch.cpu is the one you indicate in options and the one whose stats 
you should be looking at.


System.cpu instructions executed should be 0 unless you specify a number 
of fast forward instructions.



All the best,

Carlos

On 5/2/20 17:14, Abhishek Singh wrote:

Hello Everyone,

I am using X86 ISA, Out of order CPU. I wanted to run a 
multi-programmed workload using SMT


My command line 1 is:

./build/X86/gem5.opt configs/example/se.py -c 
tests/test-progs/hello/bin/x86/linux/hello;tests/test-progs/hello/bin/x86/linux/hello 
--caches --l2cache --l1d_size=32kB --l1i_size=32kB --l2_size=2MB 
--l1d_assoc=8 --l1i_assoc=8 --l2_assoc=16 --cacheline_size=64 
--cpu-type=DerivO3CPU --mem-type=DDR4_2400_8x8 --mem-size=8GB 
--sys-clock='2.6GHz' --cpu-clock='2.6GHz' --smt



I am using commit *82f6d6e90.*

When I run the command and check *m5out/config.ini, *the *system.cpu* 
parameter is AtomicSimpleCPU instead of DerivO3CPU.


I tried the command without smt and using "-n" to run on different cores

My command line 2 is:
./build/X86/gem5.opt configs/example/se.py -c 
tests/test-progs/hello/bin/x86/linux/hello;tests/test-progs/hello/bin/x86/linux/hello 
--caches --l2cache --l1d_size=32kB --l1i_size=32kB --l2_size=2MB 
--l1d_assoc=8 --l1i_assoc=8 --l2_assoc=16 --cacheline_size=64 
--cpu-type=DerivO3CPU --mem-type=DDR4_2400_8x8 --mem-size=8GB 
--sys-clock='2.6GHz' --cpu-clock='2.6GHz' -n 2


The cpu being used is AtomicSimpleCPU instead O3CPU indicated by 
m5out/config.ini, is there any problem with my command or is there an 
error?


Best regards,

Abhishek


___
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] MultiProgrammed Workload X86 O3CPU error using SMT

2020-02-06 Thread Abhishek Singh
Hi Giacomo,

I tried your suggestion of using ( ";"), without SMT and trying
multi-programmed workload simulation.
I thought to test it using the hello world example, and I found some
problems with se.py file

My command line is
*./build/X86/gem5.fast configs/example/se.py -c
"tests/test-progs/hello/bin/x86/linux/hello;tests/test-progs/hello/bin/x86/linux/hello"
--caches --l2cache --l1d_size=32kB --l1i_size=32kB --l2_size=2MB
--l1d_assoc=8 --l1i_assoc=8 --l2_assoc=16 --cacheline_size=64
--cpu-type=DerivO3CPU --mem-type=DDR4_2400_8x8 --mem-size=8GB
--sys-clock='2.6GHz' --cpu-clock='2.6GHz' -n 2*

When I run this command the simulation prints "Hello World" twice but do
not exit simulation, the longest it ran was 59 minutes in fast mode and
there was no exit statement printed and no m5out file generated. Is there
anything else I am missing?


Jason, as you pointed this can be a problem with se.py file, can you
double-check it by testing, if that's the case then either a quick fix else
a comment line specifying limitation of se.py file should be included
within se.py file.
Carlos Escuin, there was no "Switch.cpu", thanks for your reply

Best regards,

Abhishek


On Wed, Feb 5, 2020 at 11:40 AM Giacomo Travaglini <
giacomo.travagl...@arm.com> wrote:

> This is a nasty thing:
>
> get_processes(options) in se.py is manually parsing the workload list.
>
> This shouldn't happen; we should explicitly enable argument lists without
> coming up with a custom made ";" separeted synthax.
>
> Giacomo
> --
> *From:* gem5-users  on behalf of Giacomo
> Travaglini 
> *Sent:* 05 February 2020 16:36
> *To:* gem5 users mailing list 
> *Subject:* Re: [gem5-users] MultiProgrammed Workload X86 O3CPU error
> using SMT
>
> ./build/X86/gem5.opt configs/example/se.py -c
> *tests/test-progs/hello/bin/x86/linux/hello;tests/test-progs/hello/bin/x86/linux/hello*
> --caches --l2cache --l1d_size=32kB --l1i_size=32kB --l2_size=2MB
> --l1d_assoc=8 --l1i_assoc=8 --l2_assoc=16 --cacheline_size=64
> --cpu-type=DerivO3CPU --mem-type=DDR4_2400_8x8 --mem-size=8GB
> --sys-clock='2.6GHz' --cpu-clock='2.6GHz' --smt
>
> The bolded argument (more specifically the ";") is confusing the OptParser.
> You should quote it
>
> ./build/X86/gem5.opt configs/example/se.py -c* "*
> tests/test-progs/hello/bin/x86/linux/hello;tests/test-progs/hello/bin/x86/linux/hello
> *"* --caches --l2cache --l1d_size=32kB --l1i_size=32kB --l2_size=2MB
> --l1d_assoc=8 --l1i_assoc=8 --l2_assoc=16 --cacheline_size=64
> --cpu-type=DerivO3CPU --mem-type=DDR4_2400_8x8 --mem-size=8GB
> --sys-clock='2.6GHz' --cpu-clock='2.6GHz' --smt
> --
> *From:* gem5-users  on behalf of Abhishek
> Singh 
> *Sent:* 05 February 2020 16:14
> *To:* gem5 users mailing list 
> *Subject:* [gem5-users] MultiProgrammed Workload X86 O3CPU error using SMT
>
> Hello Everyone,
>
> I am using X86 ISA, Out of order CPU. I wanted to run a multi-programmed
> workload using SMT
>
> My command line 1 is:
>
> ./build/X86/gem5.opt configs/example/se.py -c
> tests/test-progs/hello/bin/x86/linux/hello;tests/test-progs/hello/bin/x86/linux/hello
> --caches --l2cache --l1d_size=32kB --l1i_size=32kB --l2_size=2MB
> --l1d_assoc=8 --l1i_assoc=8 --l2_assoc=16 --cacheline_size=64
> --cpu-type=DerivO3CPU --mem-type=DDR4_2400_8x8 --mem-size=8GB
> --sys-clock='2.6GHz' --cpu-clock='2.6GHz' --smt
>
>
> I am using commit *82f6d6e90.*
>
> When I run the command and check *m5out/config.ini, *the *system.cpu*
> parameter is AtomicSimpleCPU instead of DerivO3CPU.
>
> I tried the command without smt and using "-n" to run on different cores
>
> My command line 2 is:
> ./build/X86/gem5.opt configs/example/se.py -c
> tests/test-progs/hello/bin/x86/linux/hello;tests/test-progs/hello/bin/x86/linux/hello
> --caches --l2cache --l1d_size=32kB --l1i_size=32kB --l2_size=2MB
> --l1d_assoc=8 --l1i_assoc=8 --l2_assoc=16 --cacheline_size=64
> --cpu-type=DerivO3CPU --mem-type=DDR4_2400_8x8 --mem-size=8GB
> --sys-clock='2.6GHz' --cpu-clock='2.6GHz' -n 2
>
> The cpu being used is AtomicSimpleCPU instead O3CPU indicated by
> m5out/config.ini, is there any problem with my command or is there an error?
>
> Best regards,
>
> Abhishek
> 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.
> IMPORTANT NO

Re: [gem5-users] MultiProgrammed Workload X86 O3CPU error using SMT

2020-02-06 Thread Abhishek Singh
Hello Everyone,

Just an update, I was able to avoid this problem by using gem5_amd (
https://gem5.googlesource.com/amd/gem5/), I tried using the same se.py file
used in gem5_amd but still, the master (https://github.com/gem5/gem5)
*O3CPU* is broken and multi-programmed workload simulation just goes in
never-ending phase.

Jason: I think there is a problem with O3CPU files because other CPUs work
correctly if there was se.py file problem, the gem5_amd's se.py file would
have solved the problem.
Whenever you get time please look into this issue. I did not see a
multi-programmed workload using SE as an agenda for the upcoming stable
gem5_19 version.
Is there a way that we can put this as "ToDo" for future release?
Due to someone's commit, the support for the muti-workload program is
broken. Or maybe I am using se.py not correctly.

Best regards,

Abhishek


On Thu, Feb 6, 2020 at 10:46 AM Abhishek Singh <
abhishek.singh199...@gmail.com> wrote:

> Hi Giacomo,
>
> I tried your suggestion of using ( ";"), without SMT and trying
> multi-programmed workload simulation.
> I thought to test it using the hello world example, and I found some
> problems with se.py file
>
> My command line is
> *./build/X86/gem5.fast configs/example/se.py -c
> "tests/test-progs/hello/bin/x86/linux/hello;tests/test-progs/hello/bin/x86/linux/hello"
> --caches --l2cache --l1d_size=32kB --l1i_size=32kB --l2_size=2MB
> --l1d_assoc=8 --l1i_assoc=8 --l2_assoc=16 --cacheline_size=64
> --cpu-type=DerivO3CPU --mem-type=DDR4_2400_8x8 --mem-size=8GB
> --sys-clock='2.6GHz' --cpu-clock='2.6GHz' -n 2*
>
> When I run this command the simulation prints "Hello World" twice but do
> not exit simulation, the longest it ran was 59 minutes in fast mode and
> there was no exit statement printed and no m5out file generated. Is there
> anything else I am missing?
>
>
> Jason, as you pointed this can be a problem with se.py file, can you
> double-check it by testing, if that's the case then either a quick fix else
> a comment line specifying limitation of se.py file should be included
> within se.py file.
> Carlos Escuin, there was no "Switch.cpu", thanks for your reply
>
> Best regards,
>
> Abhishek
>
>
> On Wed, Feb 5, 2020 at 11:40 AM Giacomo Travaglini <
> giacomo.travagl...@arm.com> wrote:
>
>> This is a nasty thing:
>>
>> get_processes(options) in se.py is manually parsing the workload list.
>>
>> This shouldn't happen; we should explicitly enable argument lists without
>> coming up with a custom made ";" separeted synthax.
>>
>> Giacomo
>> --
>> *From:* gem5-users  on behalf of Giacomo
>> Travaglini 
>> *Sent:* 05 February 2020 16:36
>> *To:* gem5 users mailing list 
>> *Subject:* Re: [gem5-users] MultiProgrammed Workload X86 O3CPU error
>> using SMT
>>
>> ./build/X86/gem5.opt configs/example/se.py -c
>> *tests/test-progs/hello/bin/x86/linux/hello;tests/test-progs/hello/bin/x86/linux/hello*
>> --caches --l2cache --l1d_size=32kB --l1i_size=32kB --l2_size=2MB
>> --l1d_assoc=8 --l1i_assoc=8 --l2_assoc=16 --cacheline_size=64
>> --cpu-type=DerivO3CPU --mem-type=DDR4_2400_8x8 --mem-size=8GB
>> --sys-clock='2.6GHz' --cpu-clock='2.6GHz' --smt
>>
>> The bolded argument (more specifically the ";") is confusing the
>> OptParser.
>> You should quote it
>>
>> ./build/X86/gem5.opt configs/example/se.py -c* "*
>> tests/test-progs/hello/bin/x86/linux/hello;tests/test-progs/hello/bin/x86/linux/hello
>> *"* --caches --l2cache --l1d_size=32kB --l1i_size=32kB --l2_size=2MB
>> --l1d_assoc=8 --l1i_assoc=8 --l2_assoc=16 --cacheline_size=64
>> --cpu-type=DerivO3CPU --mem-type=DDR4_2400_8x8 --mem-size=8GB
>> --sys-clock='2.6GHz' --cpu-clock='2.6GHz' --smt
>> --
>> *From:* gem5-users  on behalf of Abhishek
>> Singh 
>> *Sent:* 05 February 2020 16:14
>> *To:* gem5 users mailing list 
>> *Subject:* [gem5-users] MultiProgrammed Workload X86 O3CPU error using
>> SMT
>>
>> Hello Everyone,
>>
>> I am using X86 ISA, Out of order CPU. I wanted to run a multi-programmed
>> workload using SMT
>>
>> My command line 1 is:
>>
>> ./build/X86/gem5.opt configs/example/se.py -c
>> tests/test-progs/hello/bin/x86/linux/hello;tests/test-progs/hello/bin/x86/linux/hello
>> --caches --l2cache --l1d_size=32kB --l1i_size=32kB --l2_size=2MB
>> --l1d_assoc=8 --l1i_assoc=8 --l2_assoc=16 --cacheline_size=64
>> --cpu-type=DerivO3CPU --mem-type=DDR4_2400_8x8

Re: [gem5-users] MultiProgrammed Workload X86 O3CPU error using SMT

2020-02-10 Thread Kevin Loughlin
Hi all,

I believe there is indeed at least one bug in O3 CPU implementation when
using SMT in SE mode. Namely, the rename mapping for the zero register on
additional threads fails assert(prev_reg->isZeroReg()) in rename() in
/src/cpu/o3/rename_map.cc. This is because the processor logic does not
consider the mapping of the zero register for additional threads.

There are two ways to solve this. We could (a) change the isZeroReg()
function to reflect that the architectural zero register does not
necessarily need to be directly mapped, or (b) share a direct-mapped zero
register among threads. I've implemented both, and they both successfully
pass the assert. I'll try to push a patch for one soon.

Unfortunately, SMT in SE mode still fails for x86 despite this change, as
the processor attempts to read an unmapped address later during execution.
Still trying to debug that. I've only been able to get SMT working in SE
mode for ARMv7. I read somewhere that the x86 TLB implementation in gem5
might have limited support for TLB, but I have yet to confirm this. Any
help/advice is appreciated.

I second that SMT support in SE mode should be a priority.

Best,

Kevin Loughlin
___
gem5-users mailing list
gem5-users@gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Re: [gem5-users] MultiProgrammed Workload X86 O3CPU error using SMT

2020-02-10 Thread Abhishek Singh
With that said
For x86 O3CPU, the multi program workload simulation is also broken.
So basically one can not multi core simulation using x86 O3CPU with and
without SMT.

Also, to all developers who push commit to gem5, please do thorough testing
as both of this support was working in older commits!

On Mon, Feb 10, 2020 at 3:59 PM Kevin Loughlin  wrote:

> Hi all,
>
> I believe there is indeed at least one bug in O3 CPU implementation when
> using SMT in SE mode. Namely, the rename mapping for the zero register on
> additional threads fails assert(prev_reg->isZeroReg()) in rename() in
> /src/cpu/o3/rename_map.cc. This is because the processor logic does not
> consider the mapping of the zero register for additional threads.
>
> There are two ways to solve this. We could (a) change the isZeroReg()
> function to reflect that the architectural zero register does not
> necessarily need to be directly mapped, or (b) share a direct-mapped zero
> register among threads. I've implemented both, and they both successfully
> pass the assert. I'll try to push a patch for one soon.
>
> Unfortunately, SMT in SE mode still fails for x86 despite this change, as
> the processor attempts to read an unmapped address later during execution.
> Still trying to debug that. I've only been able to get SMT working in SE
> mode for ARMv7. I read somewhere that the x86 TLB implementation in gem5
> might have limited support for TLB, but I have yet to confirm this. Any
> help/advice is appreciated.
>
> I second that SMT support in SE mode should be a priority.
>
> Best,
>
> Kevin Loughlin
>
___
gem5-users mailing list
gem5-users@gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users