When running multithread program, there is a general problem of non determinism. IE depending on the stalling a core will execute a loop different numbers of times because of locks being shared between threads. Example:
Thread 1 executes a spin lock for 1000 loop iterations because it is waiting for a lock from Thread 2. Now if Thread 1 were to stall a little bit, and lets say that Thread 2 unlocks the lock before Thread 1 spins, then Thread 1 should not execute 1000 loop iterations, but rather only 0 loop iterations. In order to remove the non determinism in the simulation, probably we need to stall some thread. Is there a way to stall one thread in gem5? ________________________________________ From: [email protected] [[email protected]] on behalf of [email protected] [[email protected]] Sent: Thursday, April 04, 2013 12:00 PM To: [email protected] Subject: gem5-dev Digest, Vol 72, Issue 6 Send gem5-dev mailing list submissions to [email protected] To subscribe or unsubscribe via the World Wide Web, visit http://m5sim.org/mailman/listinfo/gem5-dev or, via email, send a message with subject or body 'help' to [email protected] You can reach the person managing the list at [email protected] When replying, please edit your Subject line so it is more specific than "Re: Contents of gem5-dev digest..." Today's Topics: 1. Cron <m5test@zizzer> /z/m5/regression/do-regression quick (Cron Daemon) 2. Re: Integrating DSENT, a NoC power/area/delay model into gem5's GARNET (Chia-Hsin Owen Chen) ---------------------------------------------------------------------- Message: 1 Date: Thu, 04 Apr 2013 03:06:36 -0400 From: [email protected] (Cron Daemon) To: [email protected] Subject: [gem5-dev] Cron <m5test@zizzer> /z/m5/regression/do-regression quick Message-ID: <E1UNeFo-00046s-9z@zizzer> Content-Type: text/plain; charset=ANSI_X3.4-1968 scons: `build/ALPHA/gem5.debug' is up to date. scons: `build/ALPHA_MOESI_hammer/gem5.debug' is up to date. scons: `build/ALPHA_MESI_CMP_directory/gem5.debug' is up to date. scons: `build/ALPHA_MOESI_CMP_directory/gem5.debug' is up to date. scons: `build/ALPHA_MOESI_CMP_token/gem5.debug' is up to date. scons: `build/MIPS/gem5.debug' is up to date. scons: `build/POWER/gem5.debug' is up to date. scons: `build/SPARC/gem5.debug' is up to date. scons: `build/X86/gem5.debug' is up to date. scons: `build/X86_MESI_CMP_directory/gem5.debug' is up to date. scons: `build/ARM/gem5.debug' is up to date. scons: `build/ALPHA/gem5.fast' is up to date. scons: `build/ALPHA_MOESI_hammer/gem5.fast' is up to date. scons: `build/ALPHA_MESI_CMP_directory/gem5.fast' is up to date. scons: `build/ALPHA_MOESI_CMP_directory/gem5.fast' is up to date. scons: `build/ALPHA_MOESI_CMP_token/gem5.fast' is up to date. scons: `build/MIPS/gem5.fast' is up to date. scons: `build/POWER/gem5.fast' is up to date. scons: `build/SPARC/gem5.fast' is up to date. scons: `build/X86/gem5.fast' is up to date. scons: `build/X86_MESI_CMP_directory/gem5.fast' is up to date. scons: `build/ARM/gem5.fast' is up to date. scons: `build/ALPHA_MOESI_hammer/tests/opt/quick/fs' is up to date. scons: `build/ALPHA_MESI_CMP_directory/tests/opt/quick/fs' is up to date. scons: `build/ALPHA_MOESI_CMP_directory/tests/opt/quick/fs' is up to date. scons: `build/ALPHA_MOESI_CMP_token/tests/opt/quick/fs' is up to date. scons: `build/MIPS/tests/opt/quick/fs' is up to date. scons: `build/POWER/tests/opt/quick/fs' is up to date. scons: `build/X86_MESI_CMP_directory/tests/opt/quick/se' is up to date. scons: `build/X86_MESI_CMP_directory/tests/opt/quick/fs' is up to date. ***** build/ALPHA/tests/opt/quick/se/00.hello/alpha/linux/inorder-timing passed. ***** build/ALPHA/tests/opt/quick/se/00.hello/alpha/linux/o3-timing passed. ***** build/ALPHA/tests/opt/quick/se/00.hello/alpha/linux/simple-atomic passed. ***** build/ALPHA/tests/opt/quick/se/00.hello/alpha/linux/simple-timing passed. ***** build/ALPHA/tests/opt/quick/se/00.hello/alpha/linux/simple-timing-ruby passed. ***** build/ALPHA/tests/opt/quick/se/20.eio-short/alpha/eio/simple-atomic passed. ***** build/ALPHA/tests/opt/quick/se/00.hello/alpha/tru64/o3-timing passed. ***** build/ALPHA/tests/opt/quick/se/20.eio-short/alpha/eio/simple-timing passed. ***** build/ALPHA/tests/opt/quick/se/01.hello-2T-smt/alpha/linux/o3-timing passed.***** build/ALPHA/tests/opt/quick/se/00.hello/alpha/tru64/simple-timing passed. ***** build/ALPHA/tests/opt/quick/se/30.eio-mp/alpha/eio/simple-timing-mp passed. ***** build/ALPHA/tests/opt/quick/se/50.memtest/alpha/linux/memtest-ruby passed. ***** build/ALPHA/tests/opt/quick/se/50.memtest/alpha/linux/memtest passed. ***** build/ALPHA/tests/opt/quick/se/00.hello/alpha/tru64/simple-atomic passed. ***** build/ALPHA/tests/opt/quick/se/30.eio-mp/alpha/eio/simple-atomic-mp passed.***** build/ALPHA/tests/opt/quick/se/00.hello/alpha/tru64/simple-timing-ruby passed.***** build/ALPHA/tests/opt/quick/fs/10.linux-boot/alpha/linux/tsunami-simple-atomic passed. ***** build/ALPHA/tests/opt/quick/se/60.rubytest/alpha/linux/rubytest-ruby passed.***** build/ALPHA/tests/opt/quick/fs/10.linux-boot/alpha/linux/tsunami-simple-atomic-dual passed. ***** build/ALPHA/tests/opt/quick/fs/10.linux-boot/alpha/linux/tsunami-simple-timing passed. ***** build/ALPHA/tests/opt/quick/fs/10.linux-boot/alpha/linux/tsunami-simple-timing-dual passed. ***** build/ALPHA/tests/opt/quick/fs/80.netperf-stream/alpha/linux/twosys-tsunami-simple-atomic passed. ***** build/ALPHA_MOESI_hammer/tests/opt/quick/se/00.hello/alpha/linux/simple-timing-ruby-MOESI_hammer passed. ***** build/ALPHA_MOESI_hammer/tests/opt/quick/se/00.hello/alpha/tru64/simple-timing-ruby-MOESI_hammer passed. ***** build/ALPHA_MOESI_hammer/tests/opt/quick/se/60.rubytest/alpha/linux/rubytest-ruby-MOESI_hammer passed. ***** build/ALPHA_MOESI_hammer/tests/opt/quick/se/50.memtest/alpha/linux/memtest-ruby-MOESI_hammer passed. ***** build/ALPHA_MESI_CMP_directory/tests/opt/quick/se/00.hello/alpha/linux/simple-timing-ruby-MESI_CMP_directory passed. ***** build/ALPHA_MESI_CMP_directory/tests/opt/quick/se/00.hello/alpha/tru64/simple-timing-ruby-MESI_CMP_directory passed. ***** build/ALPHA_MESI_CMP_directory/tests/opt/quick/se/50.memtest/alpha/linux/memtest-ruby-MESI_CMP_directory passed. ***** build/ALPHA_MESI_CMP_directory/tests/opt/quick/se/60.rubytest/alpha/linux/rubytest-ruby-MESI_CMP_directory passed. ***** build/ALPHA_MOESI_CMP_directory/tests/opt/quick/se/00.hello/alpha/linux/simple-timing-ruby-MOESI_CMP_directory passed. ***** build/ALPHA_MOESI_CMP_directory/tests/opt/quick/se/00.hello/alpha/tru64/simple-timing-ruby-MOESI_CMP_directory passed. ***** build/ALPHA_MOESI_CMP_directory/tests/opt/quick/se/50.memtest/alpha/linux/memtest-ruby-MOESI_CMP_directory passed. ***** build/ALPHA_MOESI_CMP_directory/tests/opt/quick/se/60.rubytest/alpha/linux/rubytest-ruby-MOESI_CMP_directory passed. ***** build/ALPHA_MOESI_CMP_token/tests/opt/quick/se/00.hello/alpha/linux/simple-timing-ruby-MOESI_CMP_token passed. ***** build/ALPHA_MOESI_CMP_token/tests/opt/quick/se/00.hello/alpha/tru64/simple-timing-ruby-MOESI_CMP_token passed. ***** build/ALPHA_MOESI_CMP_token/tests/opt/quick/se/50.memtest/alpha/linux/memtest-ruby-MOESI_CMP_token passed. ***** build/ALPHA_MOESI_CMP_token/tests/opt/quick/se/60.rubytest/alpha/linux/rubytest-ruby-MOESI_CMP_token passed. ***** build/MIPS/tests/opt/quick/se/00.hello/mips/linux/inorder-timing passed. ***** build/MIPS/tests/opt/quick/se/00.hello/mips/linux/o3-timing passed. ***** build/MIPS/tests/opt/quick/se/00.hello/mips/linux/simple-atomic passed. ***** build/MIPS/tests/opt/quick/se/00.hello/mips/linux/simple-timing passed. ***** build/MIPS/tests/opt/quick/se/00.hello/mips/linux/simple-timing-ruby passed. ***** build/POWER/tests/opt/quick/se/00.hello/power/linux/o3-timing passed. ***** build/POWER/tests/opt/quick/se/00.hello/power/linux/simple-atomic passed. ***** build/SPARC/tests/opt/quick/se/00.hello/sparc/linux/inorder-timing passed. ***** build/SPARC/tests/opt/quick/se/00.hello/sparc/linux/simple-atomic passed. ***** build/SPARC/tests/opt/quick/se/00.hello/sparc/linux/simple-timing passed. ***** build/SPARC/tests/opt/quick/se/00.hello/sparc/linux/simple-timing-ruby passed. ***** build/SPARC/tests/opt/quick/se/02.insttest/sparc/linux/inorder-timing passed. ***** build/SPARC/tests/opt/quick/se/02.insttest/sparc/linux/o3-timing passed. ***** build/SPARC/tests/opt/quick/se/02.insttest/sparc/linux/simple-atomic passed. ***** build/SPARC/tests/opt/quick/se/02.insttest/sparc/linux/simple-timing passed. ***** build/SPARC/tests/opt/quick/se/40.m5threads-test-atomic/sparc/linux/o3-timing-mp passed. ***** build/SPARC/tests/opt/quick/se/40.m5threads-test-atomic/sparc/linux/simple-timing-mp passed. ***** build/SPARC/tests/opt/quick/se/40.m5threads-test-atomic/sparc/linux/simple-atomic-mp passed. ***** build/X86/tests/opt/quick/se/00.hello/x86/linux/o3-timing passed. ***** build/X86/tests/opt/quick/se/00.hello/x86/linux/simple-atomic passed. ***** build/X86/tests/opt/quick/se/00.hello/x86/linux/simple-timing-ruby passed. ***** build/X86/tests/opt/quick/se/00.hello/x86/linux/simple-timing passed. ***** build/X86/tests/opt/quick/fs/10.linux-boot/x86/linux/pc-simple-timing passed. ***** build/X86/tests/opt/quick/fs/10.linux-boot/x86/linux/pc-simple-atomic passed. ***** build/ARM/tests/opt/quick/se/00.hello/arm/linux/o3-timing passed. ***** build/ARM/tests/opt/quick/se/00.hello/arm/linux/o3-timing-checker passed. ***** build/ARM/tests/opt/quick/se/00.hello/arm/linux/simple-timing passed. ***** build/ARM/tests/opt/quick/se/00.hello/arm/linux/simple-atomic-dummychecker passed. ***** build/ARM/tests/opt/quick/se/00.hello/arm/linux/simple-atomic passed. ***** build/ARM/tests/opt/quick/se/70.tgen/arm/linux/tgen-simple-dram passed. ***** build/ARM/tests/opt/quick/se/70.tgen/arm/linux/tgen-simple-mem passed. ***** build/ARM/tests/opt/quick/fs/10.linux-boot/arm/linux/realview-simple-atomic passed. ***** build/ARM/tests/opt/quick/fs/10.linux-boot/arm/linux/realview-simple-timing-dual passed. ***** build/ARM/tests/opt/quick/fs/10.linux-boot/arm/linux/realview-simple-atomic-dual passed. ***** build/ARM/tests/opt/quick/fs/10.linux-boot/arm/linux/realview-simple-timing passed. ***** build/ARM/tests/opt/quick/fs/10.linux-boot/arm/linux/realview-switcheroo-atomic passed. See /z/m5/regression/regress-2013-04-04-03:00:01 for details. ------------------------------ Message: 2 Date: Thu, 4 Apr 2013 11:28:52 -0400 From: Chia-Hsin Owen Chen <[email protected]> To: [email protected] Subject: Re: [gem5-dev] Integrating DSENT, a NoC power/area/delay model into gem5's GARNET Message-ID: <CAMoNwFLUN2YDVYiucoMf2W3O5mg0Gp=+ecuvsbp2hzcqcpf...@mail.gmail.com> Content-Type: text/plain; charset=ISO-8859-1 Hi all, I am trying to convert my code to match the gem5 coding style. Does anyone know if there is any code beautifier that can be configured to match the gem5 required coding style? I tried astyle but it still can't fulfill the requirement. Thanks, -Owen On Wed, Dec 5, 2012 at 1:27 AM, Chia-Hsin Owen Chen <[email protected]>wrote: > Hi all, > > I am a graduate student at MIT, advised by Li-Shiuan Peh. We have recently > developed a power/area/delay model for NoCs and incorporate into gem5. This > tool is added to replace the current NoC power/area model, Orion 2.0. > > We validated Orion 2.0 and saw substantial errors compared against > fabricated chip data and SPICE simulation because many technology > parameters and scaling factors in Orion 2.0 are way off. > > We then developed a completely new NoC power/area/delay model called DSENT > [NOCS'12] that uses an ASIC-based methodology for modeling. DSENT uses very > few technology parameters that can be readily estimated, builds a standard > cell library and sizes these cells subject to timing constraints. It has > been validated against SPICE and measurements, and we currently provide > 45nm, 32nm, 22nm, 11nm (Trigate), as well as photonic NoCs. > > The integrated DSENT takes router configurations from GARNET. The link > length between two nodes are calculated in the topology scripts using a > user-specified tile dimension. The frequency and technology can also be > specified through python scripts. Currently only the technology parameter > files still remain as text files. > > This work is jointly developed by our group, Prof. Vladimir Stojanovic > (MIT), and Chen Sun (his student). For more detail of DSENT, please visit > our website (https://sites.google.com/site/mitdsent/home). > > I am going to publish a review request and looking forward to your > comments! > > Thanks, > -Owen > ------------------------------ _______________________________________________ gem5-dev mailing list [email protected] http://m5sim.org/mailman/listinfo/gem5-dev End of gem5-dev Digest, Vol 72, Issue 6 *************************************** _______________________________________________ gem5-dev mailing list [email protected] http://m5sim.org/mailman/listinfo/gem5-dev
