This looks quite promising! Uploading a branch to gerrit is a good idea.

A couple of notes:
1. We are going to have to be very careful with when/how we merge this and
its effect on users. For instance, changing the CPU from "AtomicSimpleCPU"
to "ArmAtomicSimpleCPU" will break many users' use cases.
2. I just noticed that there's something wrong with the Arm hello
application: "Simulated exit code not 0! Exit code is 13" It looks like
current develop also has this problem, but it's a bit worrying. I can't
figure out why the hello application wouldn't exit with code 0...

Cheers,
Jason

On Sun, Nov 7, 2021 at 5:38 PM Gabe Black via gem5-dev <[email protected]>
wrote:

> Build performance improvements:
>
>
> Building all 6 ISAs separately.
>
> $ time scons build/ARM/gem5.opt build/MIPS/gem5.opt build/POWER/gem5.opt
> build/RISCV/gem5.opt build/SPARC/gem5.opt build/X86/gem5.opt
>
> real    37m0.210s
> user    764m20.963s
> sys     46m18.113s
>
> $ du -sh build
> 16G     build
>
>
> Building "ALL" which has all 6 ISAs enabled together.
>
> $ time scons build/ALL/gem5.opt
>
> real    10m28.289s
> user    194m31.505s
> sys     9m36.281s
>
> $ du -sh build
> 4.2G    build
>
>
> Which is a build time reduction of about 72% on my system, and a build
> directory size reduction of about 73%.
>
> Gabe
>
> On Sat, Nov 6, 2021 at 12:29 AM Gabe Black <[email protected]> wrote:
>
>> As mentioned in the other thread, I can upload this hash as a branch on
>> gerrit if people want to try it out.
>>
>> Gabe
>>
>> $ git log --oneline origin/develop..multiarch | wc -l
>> 203
>>
>> $ build/ALL/gem5.opt configs/example/se.py --cpu-type=ArmAtomicSimpleCPU
>> -c tests/test-progs/hello/bin/arm/linux/hello
>> build/ALL/base/statistics.hh:280: warn: One of the stats is a legacy
>> stat. Legacy stat is a stat that does not belong to any statistics::Group.
>> Legacy stat is deprecated.
>> gem5 Simulator System.  http://gem5.org
>> gem5 is copyrighted software; use the --copyright option for details.
>>
>> gem5 version [DEVELOP-FOR-V21.2]
>> gem5 compiled Nov  6 2021 00:23:55
>> gem5 started Nov  6 2021 00:25:58
>> gem5 executing on cake, pid 999191
>> command line: build/ALL/gem5.opt configs/example/se.py
>> --cpu-type=ArmAtomicSimpleCPU -c tests/test-progs/hello/bin/arm/linux/hello
>>
>> warn: membus.slave is deprecated. `slave` is now called `cpu_side_ports`
>> warn: membus.slave is deprecated. `slave` is now called `cpu_side_ports`
>> warn: membus.slave is deprecated. `slave` is now called `cpu_side_ports`
>> warn: membus.slave is deprecated. `slave` is now called `cpu_side_ports`
>> warn: membus.slave is deprecated. `slave` is now called `cpu_side_ports`
>> warn: membus.slave is deprecated. `slave` is now called `cpu_side_ports`
>> warn: membus.slave is deprecated. `slave` is now called `cpu_side_ports`
>> Global frequency set at 1000000000000 ticks per second
>> build/ALL/mem/mem_interface.cc:791: warn: DRAM device capacity (8192
>> Mbytes) does not match the address range assigned (512 Mbytes)
>> 0: system.remote_gdb: listening for remote gdb on port 7000
>> **** REAL SIMULATION ****
>> build/ALL/sim/simulate.cc:194: info: Entering event queue @ 0.  Starting
>> simulation...
>> Hello world!
>> Exiting @ tick 2916500 because exiting with last active thread context
>> Simulated exit code not 0! Exit code is 13
>>
>>
>>
>> [gblack@cake work]$ build/ALL/gem5.opt configs/example/se.py
>> --cpu-type=X86AtomicSimpleCPU -c tests/test-progs/hello/bin/x86/linux/hello
>> build/ALL/base/statistics.hh:280: warn: One of the stats is a legacy
>> stat. Legacy stat is a stat that does not belong to any statistics::Group.
>> Legacy stat is deprecated.
>> gem5 Simulator System.  http://gem5.org
>> gem5 is copyrighted software; use the --copyright option for details.
>>
>> gem5 version [DEVELOP-FOR-V21.2]
>> gem5 compiled Nov  6 2021 00:23:55
>> gem5 started Nov  6 2021 00:26:10
>> gem5 executing on cake, pid 999224
>> command line: build/ALL/gem5.opt configs/example/se.py
>> --cpu-type=X86AtomicSimpleCPU -c tests/test-progs/hello/bin/x86/linux/hello
>>
>> warn: membus.slave is deprecated. `slave` is now called `cpu_side_ports`
>> warn: membus.slave is deprecated. `slave` is now called `cpu_side_ports`
>> warn: membus.slave is deprecated. `slave` is now called `cpu_side_ports`
>> warn: membus.slave is deprecated. `slave` is now called `cpu_side_ports`
>> warn: membus.slave is deprecated. `slave` is now called `cpu_side_ports`
>> warn: membus.master is deprecated. `master` is now called `mem_side_ports`
>> warn: membus.master is deprecated. `master` is now called `mem_side_ports`
>> warn: membus.slave is deprecated. `slave` is now called `cpu_side_ports`
>> Global frequency set at 1000000000000 ticks per second
>> build/ALL/mem/mem_interface.cc:791: warn: DRAM device capacity (8192
>> Mbytes) does not match the address range assigned (512 Mbytes)
>> 0: system.remote_gdb: listening for remote gdb on port 7000
>> **** REAL SIMULATION ****
>> build/ALL/sim/simulate.cc:194: info: Entering event queue @ 0.  Starting
>> simulation...
>> Hello world!
>> Exiting @ tick 5943000 because exiting with last active thread context
>>
> _______________________________________________
> gem5-dev mailing list -- [email protected]
> To unsubscribe send an email to [email protected]
> %(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s
_______________________________________________
gem5-dev mailing list -- [email protected]
To unsubscribe send an email to [email protected]
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

Reply via email to