Check the documentation on m5sim.org.

I'm not sure whats in or why you are using your "run.py" script but why not
configs/example/se.py?

This should work:
build/ALPHA/SE configs/example/se.py

You'll see in the script there is a default command line that is giving.

If you want to change the binary then just:
build/ALPHA/SE configs/example/se.py --cmd=<binary_path>

All that is in the m5sim.org documentation, so check that out (specificially
pages on compiling/running M5) and then also the M5 Tutorial Slides too
posted on m5sim.org.

With those you should be able to get up and running.

On Fri, Apr 24, 2009 at 1:23 PM, Gianninos Zografakis <[email protected]>wrote:

> hi,
>
> i am a student trying to work with M5 and i am facing a couple of
> problems...
> i am trying to run a simple hello world in C program
> i compiled the program using the -static as i think i should
> i used a script i found in the internet (while trying to run splash
> benchmarks) and  i run using the command:
> build/ALPHA_SE/m5.debug run.py -n1 --rootdir="/home/giannis/Desktop"
> --benchmark=Giannis
> (i attach the script, i have changed it, hello is the executable)
> it starts running and then i get the error...
>
> Global frequency set at 1000000000000 ticks per second
> warn: Unknown architecture: 3
> fatal: Object file has a TLS section and single threaded TLS is not
>        currently supported for Alpha! Please recompile your executable with
>
>        a non-TLS toolchain.
>  @ cycle 0
> [create:build/ALPHA_SE/sim/process.cc, line 675]
> Memory Usage: 148020 KBytes
>
> i use Ubuntu on an HP Compaq8510p laptop
> If anyone could help or point a proper as simple as possible tutorial it
> would be very very very useful ...
> thanks in advance
> giannis zografakis
>
>
>
>
>
> ps.here is the script i use
>
> # Splash2 Run Script
> #
>
> import m5
> from m5.objects import *
> import os, optparse, sys
> m5.AddToPath('../common')
>
> # --------------------
> # Define Command Line Options
> # ====================
>
> parser = optparse.OptionParser()
>
> parser.add_option("-d", "--detailed", action="store_true")
> parser.add_option("-t", "--timing", action="store_true")
> parser.add_option("-m", "--maxtick", type="int")
> parser.add_option("-n", "--numcpus",
>                   help="Number of cpus in total", type="int")
> parser.add_option("-f", "--frequency",
>                   default = "1GHz",
>                   help="Frequency of each CPU")
> parser.add_option("--l1size",
>                   default = "32kB")
> parser.add_option("--l1latency",
>                   default = "1ns")
> parser.add_option("--l2size",
>                   default = "256kB")
> parser.add_option("--l2latency",
>                   default = "10ns")
> parser.add_option("--rootdir",
>                   help="Root directory of Splash2",
>                   default="/dist/splash2/codes")
> parser.add_option("-b", "--benchmark",
>                   help="Splash 2 benchmark to run")
>
> (options, args) = parser.parse_args()
>
> if args:
>     print "Error: script doesn't take any positional arguments"
>     sys.exit(1)
>
> if not options.numcpus:
>     print "Specify the number of cpus with -n"
>     sys.exit(1)
>
> # --------------------
> # Define Splash2 Benchmarks
> # ====================
>
> class Giannis(LiveProcess):
>     executable = options.rootdir + '/hello'
>     cmd = ['mlkia', '-p' +  str(options.numcpus)]
>
> class Cholesky(LiveProcess):
>     cwd = options.rootdir + '/kernels/cholesky'
>     executable = options.rootdir + '/kernels/cholesky/CHOLESKY'
>     cmd = ['CHOLESKY', '-p' +  str(options.numcpus),
>             options.rootdir + '/kernels/cholesky/inputs/tk23.O']
>
> class FFT(LiveProcess):
>     cwd = options.rootdir + '/kernels/fft'
>     executable = options.rootdir + '/kernels/fft/FFT'
>     cmd = ['FFT', '-p', str(options.numcpus), '-m18']
>
> class LU_contig(LiveProcess):
>     executable = options.rootdir + '/kernels/lu/contiguous_blocks/LU'
>     cmd = ['LU', '-p', str(options.numcpus)]
>     cwd = options.rootdir + '/kernels/lu/contiguous_blocks'
>
> class LU_noncontig(LiveProcess):
>     executable = options.rootdir + '/kernels/lu/non_contiguous_blocks/LU'
>     cmd = ['LU', '-p', str(options.numcpus)]
>     cwd = options.rootdir + '/kernels/lu/non_contiguous_blocks'
>
> class Radix(LiveProcess):
>     executable = options.rootdir + '/kernels/radix/RADIX'
>     cmd = ['RADIX', '-n524288', '-p', '10']
>     cwd = options.rootdir + '/kernels/radix'
>
> class Barnes(LiveProcess):
>     executable = options.rootdir + '/apps/barnes/BARNES'
>     cmd = ['BARNES']
>     input = options.rootdir + '/apps/barnes/input.p' + str(options.numcpus)
>     cwd = options.rootdir + '/apps/barnes'
>
> class FMM(LiveProcess):
>     executable = options.rootdir + '/apps/fmm/FMM'
>     cmd = ['FMM']
>     if str(options.numcpus) == '1':
>         input = options.rootdir + '/apps/fmm/inputs/input.2048'
>     else:
>         input = options.rootdir + '/apps/fmm/inputs/input.2048.p' +
> str(options.numcpus)
>     cwd = options.rootdir + '/apps/fmm'
>
> class Ocean_contig(LiveProcess):
>     executable = options.rootdir +
> '/apps/ocean/contiguous_partitions/OCEAN'
>     cmd = ['OCEAN', '-p', str(options.numcpus)]
>     cwd = options.rootdir + '/apps/ocean/contiguous_partitions'
>
> class Ocean_noncontig(LiveProcess):
>     executable = options.rootdir +
> '/apps/ocean/non_contiguous_partitions/OCEAN'
>     cmd = ['OCEAN', '-p', str(options.numcpus)]
>     cwd = options.rootdir + '/apps/ocean/non_contiguous_partitions'
>
> class Raytrace(LiveProcess):
>     executable = options.rootdir + '/apps/raytrace/RAYTRACE'
>     cmd = ['RAYTRACE', '-p' + str(options.numcpus),
>            options.rootdir + '/apps/raytrace/inputs/teapot.env']
>     cwd = options.rootdir + '/apps/raytrace'
>
> class Water_nsquared(LiveProcess):
>     executable = options.rootdir + '/apps/water-nsquared/WATER-NSQUARED'
>     cmd = ['WATER-NSQUARED']
>     if options.numcpus==1:
>         input = options.rootdir + '/apps/water-nsquared/input'
>     else:
>         input = options.rootdir + '/apps/water-nsquared/input.p' +
> str(options.numcpus)
>     cwd = options.rootdir + '/apps/water-nsquared'
>
> class Water_spatial(LiveProcess):
>     executable = options.rootdir + '/apps/water-spatial/WATER-SPATIAL'
>     cmd = ['WATER-SPATIAL']
>     if options.numcpus==1:
>         input = options.rootdir + '/apps/water-spatial/input'
>     else:
>         input = options.rootdir + '/apps/water-spatial/input.p' +
> str(options.numcpus)
>     cwd = options.rootdir + '/apps/water-spatial'
>
> # --------------------
> # Base L1 Cache Definition
> # ====================
>
> class L1(BaseCache):
>     latency = options.l1latency
>     block_size = 64
>     mshrs = 12
>     tgts_per_mshr = 8
>
>
> # ----------------------
> # Base L2 Cache Definition
> # ----------------------
>
> class L2(BaseCache):
>     block_size = 64
>     latency = options.l2latency
>     mshrs = 92
>     tgts_per_mshr = 16
>     write_buffers = 8
>
> # ----------------------
> # Define the cpus
> # ----------------------
>
> busFrequency = Frequency(options.frequency)
>
> if options.timing:
>     cpus = [TimingSimpleCPU(cpu_id = i,
>                             clock=options.frequency)
>             for i in xrange(options.numcpus)]
> elif options.detailed:
>     cpus = [DerivO3CPU(cpu_id = i,
>                        clock=options.frequency)
>             for i in xrange(options.numcpus)]
> else:
>     cpus = [AtomicSimpleCPU(cpu_id = i,
>                             clock=options.frequency)
>             for i in xrange(options.numcpus)]
>
> # ----------------------
> # Create a system, and add system wide objects
> # ----------------------
> system = System(cpu = cpus, physmem = PhysicalMemory(),
>                 membus = Bus(clock = busFrequency))
>
> system.toL2bus = Bus(clock = busFrequency)
> system.l2 = L2(size = options.l2size, assoc = 8)
>
> # ----------------------
> # Connect the L2 cache and memory together
> # ----------------------
>
> system.physmem.port = system.membus.port
> system.l2.cpu_side = system.toL2bus.port
> system.l2.mem_side = system.membus.port
>
> # ----------------------
> # Connect the L2 cache and clusters together
> # ----------------------
> for cpu in cpus:
>     cpu.addPrivateSplitL1Caches(L1(size = options.l1size, assoc = 1),
>                                 L1(size = options.l1size, assoc = 4))
>     cpu.mem = cpu.dcache
>     # connect cpu level-1 caches to shared level-2 cache
>     cpu.connectMemPorts(system.toL2bus)
>
>
> # ----------------------
> # Define the root
> # ----------------------
>
> root = Root(system = system)
>
> # --------------------
> # Pick the correct Splash2 Benchmarks
> # ====================
>
>
> if options.benchmark == 'Cholesky':
>     root.workload = Cholesky()
> elif options.benchmark == 'FFT':
>     root.workload = FFT()
> elif options.benchmark == 'LUContig':
>     root.workload = LU_contig()
> elif options.benchmark == 'LUNoncontig':
>     root.workload = LU_noncontig()
> elif options.benchmark == 'Radix':
>     root.workload = Radix()
> elif options.benchmark == 'Barnes':
>     root.workload = Barnes()
> elif options.benchmark == 'FMM':
>     root.workload = FMM()
> elif options.benchmark == 'OceanContig':
>     root.workload = Ocean_contig()
> elif options.benchmark == 'OceanNoncontig':
>     root.workload = Ocean_noncontig()
> elif options.benchmark == 'Raytrace':
>     root.workload = Raytrace()
> elif options.benchmark == 'WaterNSquared':
>     root.workload = Water_nsquared()
> elif options.benchmark == 'WaterSpatial':
>     root.workload = Water_spatial()
> elif options.benchmark == 'Giannis':
>     root.workload = Giannis()
> else:
>     print >> sys.stderr, """The --benchmark environment variable was set to
> something improper.
> Use Cholesky, FFT, LUContig, LUNoncontig, Radix, Barnes, FMM, OceanContig,
> OceanNoncontig, Raytrace, WaterNSquared, or WaterSpatial or Giannis"""
>     sys.exit(1)
>
> # --------------------
> # Assign the workload to the cpus
> # ====================
>
> for cpu in cpus:
>     cpu.workload = root.workload
>
> # ----------------------
> # Run the simulation
> # ----------------------
>
> if options.timing or options.detailed:
>     root.system.mem_mode = 'timing'
>
> # instantiate configuration
> m5.instantiate(root)
>
> # simulate until program terminates
> if options.maxtick:
>     exit_event = m5.simulate(options.maxtick)
> else:
>     exit_event = m5.simulate(m5.MaxTick)
>
> print 'Exiting @ tick', m5.curTick(), 'because', exit_event.getCause()
>
>
>
>
>
>
>
> _______________________________________________
> m5-users mailing list
> [email protected]
> http://m5sim.org/cgi-bin/mailman/listinfo/m5-users
>



-- 
----------
Korey L Sewell
Graduate Student - PhD Candidate
Computer Science & Engineering
University of Michigan
_______________________________________________
m5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/m5-users

Reply via email to