I don't follow.  Can you explain what the problem is?  Can you give
error output and what you expect to happen.

  Nate

> I just used m5 latest beta. I run a  simple script with 8 cores and radix 
> benchmark (multiple threads). When I use the --trace-flags="Bus,Cache" 
> option, it gives statistics and (possibly) run only one cpu. Attached is the 
> script.
>
> # Simple test script
>  #
>  # "m5 test.py"
>
>  import m5
>  from m5.objects import *
>  import os, optparse, sys
>  m5.AddToPath('../common')
>  import Simulation
>  from Caches import *
>  from cpu2000 import *
>
>  # Get paths we might need.  It's expected this file is in m5/configs/example.
>  config_path = os.path.dirname(os.path.abspath(__file__))
>  config_root = os.path.dirname(config_path)
>  m5_root = os.path.dirname(config_root)
>
>  parser = optparse.OptionParser()
>
>  # Benchmark options
>  parser.add_option("-c", "--cmd",
>                 default=os.path.join(m5_root, 
> "tests/test-progs/radix/bin/radix"),
>                   help="The binary to run in syscall emulation mode.")
>  parser.add_option("-o", "--options", default="",
>                   help="The options to pass to the binary, use \" \" around 
> the entire\
>                         string.")
>  parser.add_option("-i", "--input", default="",
>                   help="A file of input to give to the binary.")
>  parser.add_option("--bench", action="store", type="string", default=None,
>                   help="base names for --take-checkpoint and 
> --checkpoint-restore")
>  parser.add_option("-S", "--simpoint", action="store_true", default=False,
>                    help="""Use workload simpoints as an instruction offset for
>  --checkpoint-restore or --take-checkpoint.""")
>
>
>  execfile(os.path.join(config_root, "common", "Options.py"))
>
>  (options, args) = parser.parse_args()
>
>  if args:
>     print "Error: script doesn't take any positional arguments"
>     sys.exit(1)
>
>  if options.bench:
>     try:
>         if m5.build_env['TARGET_ISA'] != 'alpha':
>             print >>sys.stderr, "Simpoints code only works for Alpha ISA at 
> this time"
>             sys.exit(1)
>         exec("workload = %s('alpha', 'tru64', 'ref')" % options.bench)
>         process = workload.makeLiveProcess()
>     except:
>         print >>sys.stderr, "Unable to find workload for %s" % options.bench
>         sys.exit(1)
>  else:
>     process = LiveProcess()
>     process.executable = options.cmd
>     process.cmd = [options.cmd] + options.options.split()
>
>  if options.input != "":
>     process.input = options.input
>
>  if options.detailed:
>     #check for SMT workload
>     workloads = options.cmd.split(';')
>     if len(workloads) > 1:
>         process = []
>         smt_idx = 0
>         inputs = []
>
>         if options.input != "":
>             inputs = options.input.split(';')
>
>         for wrkld in workloads:
>             smt_process = LiveProcess()
>             smt_process.executable = wrkld
>             smt_process.cmd = wrkld + " " + options.options
>             if inputs and inputs[smt_idx]:
>                 smt_process.input = inputs[smt_idx]
>             process += [smt_process, ]
>             smt_idx += 1
>
>  (CPUClass, test_mem_mode, FutureClass) = Simulation.setCPUClass(options)
>
>  CPUClass.clock = '2GHz'
>
>  options.num_cpus = 8
>  np = options.num_cpus
>
>  # 4 cpu, 2 clusters
>  #system = System(cpu = [CPUClass(cpu_id=i) for i in xrange(np)],
>  #                physmem = PhysicalMemory(range=AddrRange("512MB")),
>  #                                        mem2membus = Bus(),
>  #                membus = [Bus(bus_id=i) for i in xrange(2)],
>  #                mem_mode = test_mem_mode,
>  #                l2 = [L2Cache(size='2MB') for i in xrange(np)],
>  #                tol2bus = [Bus() for i in xrange(np)],
>  #                bridge = Bridge())
>  #
>  #system.bridge.side_a = system.membus[0].port
>  #system.bridge.side_b = system.membus[1].port
>  #
>  ##system.physmem.port = system.mem2membus
>  #system.physmem.port = system.membus[0].port
>  #system.physmem.port = system.membus[1].port
>  #
>  #for i in xrange(np):
>  #    system.l2[i].cpu_side = system.tol2bus[i].port
>  #    if i < np / 2:
>  #        system.l2[i].mem_side = system.membus[0].port
>  #    else:
>  #        system.l2[i].mem_side = system.membus[1].port
>  #    system.cpu[i].connectMemPorts(system.tol2bus[i])
>  #    system.cpu[i].workload = process
>
>  # 2 cpu, 1 cluster
>
>  system = System(cpu = [CPUClass(cpu_id=i) for i in xrange(np)],
>                 physmem = PhysicalMemory(range=AddrRange("512MB")),
>                 membus = Bus(),
>                 mem_mode = test_mem_mode
>                                          )
>
>  system.physmem.port = system.membus.port
>
>  for i in xrange(np):
>     
> system.cpu[i].addPrivateSplitL1Caches(L1Cache(size='32kB'),L1Cache(size='64kB'))
>     #system.cpu[i].l2=L2Cache(size='2MB')
>     #system.cpu[i].tol2bus=Bus()
>     #system.cpu[i].l2.cpu_side = system.cpu[i].tol2bus.port
>     #system.cpu[i].l2.mem_side = system.membus.port
>     #system.cpu[i].connectMemPorts(system.cpu[i].tol2bus)
>     system.cpu[i].connectMemPorts(system.membus)
>  for i in xrange(np):
>     system.cpu[i].workload = process
>
>
>  ## without cache
>  #options.num_cpus = 8
>  #np = options.num_cpus
>  #system = System(cpu = [CPUClass(cpu_id=i) for i in xrange(np)],
>  #                physmem = PhysicalMemory(range=AddrRange("512MB")),
>  #                membus = Bus(),
>  #                mem_mode = test_mem_mode,
>  #                                        )
>  #
>  #system.physmem.port = system.membus.port
>  #
>  #for i in xrange(np):
>  #    system.cpu[i].connectMemPorts(system.membus)
>  #    system.cpu[i].workload = process
>
>  root = Root(system = system)
>
>  Simulation.run(options, root, system, FutureClass)
>
>
> _______________________________________________
>  m5-users mailing list
>  [email protected]
>  http://m5sim.org/cgi-bin/mailman/listinfo/m5-users
>
_______________________________________________
m5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/m5-users

Reply via email to