[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 ___ 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
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
./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
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
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
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
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
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
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