Hi Majid,

To answer your question: I'm not sure. I've never tried to use the SMT
support.

Some things I would do to try to solve the problem:
1) Feel free to modify the config scripts to suit your needs! There is no
reason for you to keep that if statement as it is if it isn't doing what
you need it to do.
2) Read the code for how workloads get initialized in the file src/
cpu/o3/deriv.cc (probably starting around line 48) since this is where the
error is occuring.

Hopefully this helps.

Jason

On Mon, Nov 21, 2016 at 3:12 AM Majid Namaki Shoushtari <[email protected]>
wrote:

> Sorry, somehow the formatting got messed up. I'm sending my last message
> again...
>
> ================================================================
>
> Thanks Jason​.​
>
> I think I should have been more specific in my question:
> I understand how "LiveProcess" objects are created for each application
> and how each single threaded workload is assigned to a CPU. The loop in
> se.py that does the workload to CPU assignments either expects the ​number
> of specified applications to be equal to the number of cores, or expects
> only one application. In case of only one application and if #CPUs > 1 , it
> assigns the same app to all cores (line 237)​.
>
> To be clear this is the code excerpt I'm referring to:
> ​​
> ===============================
>    233 for i in xrange(np):
>    234     if options.smt:
>    235         system.cpu[i].workload = multiprocesses
>    236     elif len(multiprocesses) == 1:
>    237         system.cpu[i].workload = multiprocesses[0]
>    238     else:
>    239         system.cpu[i].workload = multiprocesses[i]
> ​===============================
>
> First of all, how is line 237 not causing that np copies of
> multiprocesses[0] to run​ but instead just 1 runs ?
>
> I'm trying to understand how I can create enough hardware context without
> assigning a workload to all of them. I modified the loop to run just for
> the number of given applications  by replacing "for i in xrange(np):" with
> "for i in xrange(len(multiprocesses)):", but it throws an error which I
> believe means I should somehow assign a workload to all CPUs​ :
> ​
> ===============================
> fatal: Must specify at least one workload!
>  @ tick 0
> [create:build/ARM/cpu/o3/deriv.cc, line 48]
> ===============================
>
> Hope my question is clear.
>
> Thank you for your time.
> Majid
>
> On Mon, Nov 21, 2016 at 12:26 AM, Majid Namaki Shoushtari <
> [email protected]> wrote:
>
> ​
> Thanks Jason
> ​.​
>
>
> I think I should have been more specific in my question:
> I understand how "LiveProcess" objects are created for each application
> and how each single threaded workload is assigned to a
> ​
> CPU. The loop in se.py that does the workload to
> ​
> CPU assignments either expects the
> ​number​
> of specified applications to be equal to the number of cores, or expects
> only one application. In case of only one
> ​
> application and if #CPUs
> ​
> > 1
> ​,
> it assigns the same app
> ​​
>  to all cores
> ​ (line 237)​
> .
>
> To be clear this is the code excerpt I'm referring to:
>
> ​​
> ===============================
>    233 for i in xrange(np):
>    234     if options.smt:
>    235         system.cpu[i].workload = multiprocesses
>    236     elif len(multiprocesses) == 1:
>    237         system.cpu[i].workload = multiprocesses[0]
>    238     else:
>    239         system.cpu[i].workload = multiprocesses[i]
> ​
> ===============================
>
> First of all, how is line 237 not causing that np copies of
> multiprocesses[0]
> ​ to run​ but instead just 1 runs
> ?
>
> I'm trying to understand how I can create enough hardware context without
> assigning a workload to all of them. I modified the loop to run just for
> the number of given applications  by replacing "for i in xrange(np):" with
> "for i in xrange(len(multiprocesses)):", but it throws an error
> ​ which I believe means I should somehow assign a workload to all CPUs​
> :
>
> ​
> ===============================
> fatal: Must specify at least one workload!
>  @ tick 0
> [create:build/ARM/cpu/o3/deriv.cc, line 48]
> ​
> ===============================
>
> Hope my question is clear.
>
> Thank
> ​
> you
> ​
> for your time.
> Majid
>
> On Sun, Nov 20, 2016 at 12:21 PM, Jason Lowe-Power <[email protected]>
> wrote:
>
> Hi Majid,
>
> Yes. This is possible. To run multiple different processes, you can create
> multiple CPUs with multiple "LiveProcess" objects. For multi-threaded
> applications, I believe you need to have enough CPUs create (enough
> hardware contexts) and then link to m5threads instead of the pthreads
> library.
>
> Hopefully this will get your started down the right path.
>
> Jason
>
> On Fri, Nov 18, 2016 at 1:48 AM Majid Namaki Shoushtari <[email protected]>
> wrote:
>
> I was wondering if there is a way to simulate
> multiprogrammed/multithreaded workloads in SE mode?
> Just to clarify: I mean running for example two programs that spawn 4
> threads each.
>
> As I understand this is not possible with the current se.py script, but is
> it theoretically possible to run such simulations in SE mode?
> If yes, could you please give some hints on how to modify se.py
> accordingly?
>
> Thanks,
> Majid
> _______________________________________________
> gem5-users mailing list
> [email protected]
> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
>
>
> _______________________________________________
> gem5-users mailing list
> [email protected]
> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
>
>
>
>
> --
> Majid Namaki Shoushtari
> PhD Candidate
> Department of Computer Science
> University of California, Irvine
> Irvine, CA 92697
> [email protected]
> http://www.ics.uci.edu/~anamakis
>
>
>
>
> --
> Majid Namaki Shoushtari
> PhD Candidate
> Department of Computer Science
> University of California, Irvine
> Irvine, CA 92697
> [email protected]
> http://www.ics.uci.edu/~anamakis
> _______________________________________________
> gem5-users mailing list
> [email protected]
> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
_______________________________________________
gem5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Reply via email to