gem5-users@gem5.org

The gem5 Users mailing list

View all threads

Running Multithreaded Workload on O3CPU

AS
Abdelrahman S. Hussein
Thu, Sep 8, 2022 9:52 AM

Hello,

I am running a multithreaded workload on the O3 CPU in Full System Mode.
The workload is SPEC OMP. I am running from a checkpoint that was taken in
the middle of running the benchmark. I am using the following debugging
flags to monitor the system
Thread,Faults,Fetch,O3CPU

However, looking at the debugging file, I always see that the fetcher only
fetches from tid: 0, which means the CPU does not switch to any other
Thread at all. I am sure that my workload runs on 8 threads (cooperating
threads).

So, does this mean that gem5 does not support running multithreaded
workloads? Or, am I missing something or watching the wrong debug prints?

Thanks.

--

Best,Abdelrahman Hussein
MSc. Student -- Graduate RA/TA
School of Computing Sciences
Simon Fraser University, Canada

Hello, I am running a multithreaded workload on the O3 CPU in Full System Mode. The workload is SPEC OMP. I am running from a checkpoint that was taken in the middle of running the benchmark. I am using the following debugging flags to monitor the system Thread,Faults,Fetch,O3CPU However, looking at the debugging file, I always see that the fetcher only fetches from tid: 0, which means the CPU does not switch to any other Thread at all. I am sure that my workload runs on 8 threads (cooperating threads). So, does this mean that gem5 does not support running multithreaded workloads? Or, am I missing something or watching the wrong debug prints? Thanks. -- *Best,Abdelrahman Hussein* MSc. Student -- Graduate RA/TA School of Computing Sciences Simon Fraser University, Canada
JL
Jason Lowe-Power
Thu, Sep 8, 2022 2:44 PM

Hello,

In this case "Thread" means hardware context in the CPU (e.g., Intel
hyperthreads), not core.

Have you configured your O3CPU to have 8 hardware contexts?

I'll give a few short pointers:

  1. SPEC is single threaded (unless running SPEC rate), so there may not be
    other software threads executing on the system
  2. Multithreaded cores are not tested at all in gem5. They may work, or
    they may not.
  3. I have never seen anyone try to use more than two hardware contexts in a
    core in gem5. I wouldn't be surprised if 8 hardware contexts have never
    been tested.

To debug this, I would probably start by having multiple CPU cores and
making sure things work as expected. If so, then I would try 2 threads per
core to see if it works, then go to 4 or 8.

Cheers,
Jason

On Thu, Sep 8, 2022 at 2:55 AM Abdelrahman S. Hussein <
abdelrahman.sobeih@gmail.com> wrote:

Hello,

I am running a multithreaded workload on the O3 CPU in Full System Mode.
The workload is SPEC OMP. I am running from a checkpoint that was taken in
the middle of running the benchmark. I am using the following debugging
flags to monitor the system
Thread,Faults,Fetch,O3CPU

However, looking at the debugging file, I always see that the fetcher only
fetches from tid: 0, which means the CPU does not switch to any other
Thread at all. I am sure that my workload runs on 8 threads (cooperating
threads).

So, does this mean that gem5 does not support running multithreaded
workloads? Or, am I missing something or watching the wrong debug prints?

Thanks.

--

Best,Abdelrahman Hussein
MSc. Student -- Graduate RA/TA
School of Computing Sciences
Simon Fraser University, Canada


gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-leave@gem5.org

Hello, In this case "Thread" means hardware context in the CPU (e.g., Intel hyperthreads), not *core*. Have you configured your O3CPU to have 8 hardware contexts? I'll give a few short pointers: 1. SPEC is single threaded (unless running SPEC rate), so there may not be other software threads executing on the system 2. Multithreaded cores are not tested at all in gem5. They may work, or they may not. 3. I have never seen anyone try to use more than two hardware contexts in a core in gem5. I wouldn't be surprised if 8 hardware contexts have never been tested. To debug this, I would probably start by having multiple CPU cores and making sure things work as expected. If so, then I would try 2 threads per core to see if it works, then go to 4 or 8. Cheers, Jason On Thu, Sep 8, 2022 at 2:55 AM Abdelrahman S. Hussein < abdelrahman.sobeih@gmail.com> wrote: > Hello, > > I am running a multithreaded workload on the O3 CPU in Full System Mode. > The workload is SPEC OMP. I am running from a checkpoint that was taken in > the middle of running the benchmark. I am using the following debugging > flags to monitor the system > Thread,Faults,Fetch,O3CPU > > However, looking at the debugging file, I always see that the fetcher only > fetches from tid: 0, which means the CPU does not switch to any other > Thread at all. I am sure that my workload runs on 8 threads (cooperating > threads). > > So, does this mean that gem5 does not support running multithreaded > workloads? Or, am I missing something or watching the wrong debug prints? > > Thanks. > > -- > > *Best,Abdelrahman Hussein* > MSc. Student -- Graduate RA/TA > School of Computing Sciences > Simon Fraser University, Canada > _______________________________________________ > gem5-users mailing list -- gem5-users@gem5.org > To unsubscribe send an email to gem5-users-leave@gem5.org >
AS
Abdelrahman S. Hussein
Thu, Sep 8, 2022 7:58 PM

Hi Prof,

Thanks a lot for your response. Is there any update regarding this ticket?
https://gem5.atlassian.net/browse/GEM5-332

Correct me if I'm wrong, but I think your response implies that the
hyperthreading is implemented by maybe not tested. If so, this is confusing
me a bit, given the link I included above.

I forgot to mention that I am using x86.

Thanks.

--

Best,Abdelrahman Hussein
MSc. Student -- Graduate RA/TA
School of Computing Sciences
Simon Fraser University, Canada

On Thu, Sep 8, 2022 at 7:51 AM Jason Lowe-Power jason@lowepower.com wrote:

Hello,

In this case "Thread" means hardware context in the CPU (e.g., Intel
hyperthreads), not core.

Have you configured your O3CPU to have 8 hardware contexts?

I'll give a few short pointers:

  1. SPEC is single threaded (unless running SPEC rate), so there may not be
    other software threads executing on the system
  2. Multithreaded cores are not tested at all in gem5. They may work, or
    they may not.
  3. I have never seen anyone try to use more than two hardware contexts in
    a core in gem5. I wouldn't be surprised if 8 hardware contexts have never
    been tested.

To debug this, I would probably start by having multiple CPU cores and
making sure things work as expected. If so, then I would try 2 threads per
core to see if it works, then go to 4 or 8.

Cheers,
Jason

On Thu, Sep 8, 2022 at 2:55 AM Abdelrahman S. Hussein <
abdelrahman.sobeih@gmail.com> wrote:

Hello,

I am running a multithreaded workload on the O3 CPU in Full System Mode.
The workload is SPEC OMP. I am running from a checkpoint that was taken in
the middle of running the benchmark. I am using the following debugging
flags to monitor the system
Thread,Faults,Fetch,O3CPU

However, looking at the debugging file, I always see that the fetcher
only fetches from tid: 0, which means the CPU does not switch to any other
Thread at all. I am sure that my workload runs on 8 threads (cooperating
threads).

So, does this mean that gem5 does not support running multithreaded
workloads? Or, am I missing something or watching the wrong debug prints?

Thanks.

--

Best,Abdelrahman Hussein
MSc. Student -- Graduate RA/TA
School of Computing Sciences
Simon Fraser University, Canada


gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-leave@gem5.org


gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-leave@gem5.org

Hi Prof, Thanks a lot for your response. Is there any update regarding this ticket? https://gem5.atlassian.net/browse/GEM5-332 Correct me if I'm wrong, but I think your response implies that the hyperthreading is implemented by maybe not tested. If so, this is confusing me a bit, given the link I included above. I forgot to mention that I am using x86. Thanks. -- *Best,Abdelrahman Hussein* MSc. Student -- Graduate RA/TA School of Computing Sciences Simon Fraser University, Canada On Thu, Sep 8, 2022 at 7:51 AM Jason Lowe-Power <jason@lowepower.com> wrote: > Hello, > > In this case "Thread" means hardware context in the CPU (e.g., Intel > hyperthreads), not *core*. > > Have you configured your O3CPU to have 8 hardware contexts? > > I'll give a few short pointers: > 1. SPEC is single threaded (unless running SPEC rate), so there may not be > other software threads executing on the system > 2. Multithreaded cores are not tested at all in gem5. They may work, or > they may not. > 3. I have never seen anyone try to use more than two hardware contexts in > a core in gem5. I wouldn't be surprised if 8 hardware contexts have never > been tested. > > To debug this, I would probably start by having multiple CPU cores and > making sure things work as expected. If so, then I would try 2 threads per > core to see if it works, then go to 4 or 8. > > Cheers, > Jason > > On Thu, Sep 8, 2022 at 2:55 AM Abdelrahman S. Hussein < > abdelrahman.sobeih@gmail.com> wrote: > >> Hello, >> >> I am running a multithreaded workload on the O3 CPU in Full System Mode. >> The workload is SPEC OMP. I am running from a checkpoint that was taken in >> the middle of running the benchmark. I am using the following debugging >> flags to monitor the system >> Thread,Faults,Fetch,O3CPU >> >> However, looking at the debugging file, I always see that the fetcher >> only fetches from tid: 0, which means the CPU does not switch to any other >> Thread at all. I am sure that my workload runs on 8 threads (cooperating >> threads). >> >> So, does this mean that gem5 does not support running multithreaded >> workloads? Or, am I missing something or watching the wrong debug prints? >> >> Thanks. >> >> -- >> >> *Best,Abdelrahman Hussein* >> MSc. Student -- Graduate RA/TA >> School of Computing Sciences >> Simon Fraser University, Canada >> _______________________________________________ >> gem5-users mailing list -- gem5-users@gem5.org >> To unsubscribe send an email to gem5-users-leave@gem5.org >> > _______________________________________________ > gem5-users mailing list -- gem5-users@gem5.org > To unsubscribe send an email to gem5-users-leave@gem5.org >
JL
Jason Lowe-Power
Thu, Sep 8, 2022 9:57 PM

If you apply the relation chain on gerrit, it might work. See
https://gem5-review.googlesource.com/c/public/gem5/+/35836/

That relation chain has not been merged, unfortunately.

Cheers,
Jason

On Thu, Sep 8, 2022 at 1:02 PM Abdelrahman S. Hussein <
abdelrahman.sobeih@gmail.com> wrote:

Hi Prof,

Thanks a lot for your response. Is there any update regarding this ticket?
https://gem5.atlassian.net/browse/GEM5-332

Correct me if I'm wrong, but I think your response implies that the
hyperthreading is implemented by maybe not tested. If so, this is confusing
me a bit, given the link I included above.

I forgot to mention that I am using x86.

Thanks.

--

Best,Abdelrahman Hussein
MSc. Student -- Graduate RA/TA
School of Computing Sciences
Simon Fraser University, Canada

On Thu, Sep 8, 2022 at 7:51 AM Jason Lowe-Power jason@lowepower.com
wrote:

Hello,

In this case "Thread" means hardware context in the CPU (e.g., Intel
hyperthreads), not core.

Have you configured your O3CPU to have 8 hardware contexts?

I'll give a few short pointers:

  1. SPEC is single threaded (unless running SPEC rate), so there may not
    be other software threads executing on the system
  2. Multithreaded cores are not tested at all in gem5. They may work, or
    they may not.
  3. I have never seen anyone try to use more than two hardware contexts in
    a core in gem5. I wouldn't be surprised if 8 hardware contexts have never
    been tested.

To debug this, I would probably start by having multiple CPU cores and
making sure things work as expected. If so, then I would try 2 threads per
core to see if it works, then go to 4 or 8.

Cheers,
Jason

On Thu, Sep 8, 2022 at 2:55 AM Abdelrahman S. Hussein <
abdelrahman.sobeih@gmail.com> wrote:

Hello,

I am running a multithreaded workload on the O3 CPU in Full System Mode.
The workload is SPEC OMP. I am running from a checkpoint that was taken in
the middle of running the benchmark. I am using the following debugging
flags to monitor the system
Thread,Faults,Fetch,O3CPU

However, looking at the debugging file, I always see that the fetcher
only fetches from tid: 0, which means the CPU does not switch to any other
Thread at all. I am sure that my workload runs on 8 threads (cooperating
threads).

So, does this mean that gem5 does not support running multithreaded
workloads? Or, am I missing something or watching the wrong debug prints?

Thanks.

--

Best,Abdelrahman Hussein
MSc. Student -- Graduate RA/TA
School of Computing Sciences
Simon Fraser University, Canada


gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-leave@gem5.org


gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-leave@gem5.org


gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-leave@gem5.org

If you apply the relation chain on gerrit, it might work. See https://gem5-review.googlesource.com/c/public/gem5/+/35836/ That relation chain has not been merged, unfortunately. Cheers, Jason On Thu, Sep 8, 2022 at 1:02 PM Abdelrahman S. Hussein < abdelrahman.sobeih@gmail.com> wrote: > Hi Prof, > > Thanks a lot for your response. Is there any update regarding this ticket? > https://gem5.atlassian.net/browse/GEM5-332 > > Correct me if I'm wrong, but I think your response implies that the > hyperthreading is implemented by maybe not tested. If so, this is confusing > me a bit, given the link I included above. > > I forgot to mention that I am using x86. > > Thanks. > > -- > > *Best,Abdelrahman Hussein* > MSc. Student -- Graduate RA/TA > School of Computing Sciences > Simon Fraser University, Canada > > > On Thu, Sep 8, 2022 at 7:51 AM Jason Lowe-Power <jason@lowepower.com> > wrote: > >> Hello, >> >> In this case "Thread" means hardware context in the CPU (e.g., Intel >> hyperthreads), not *core*. >> >> Have you configured your O3CPU to have 8 hardware contexts? >> >> I'll give a few short pointers: >> 1. SPEC is single threaded (unless running SPEC rate), so there may not >> be other software threads executing on the system >> 2. Multithreaded cores are not tested at all in gem5. They may work, or >> they may not. >> 3. I have never seen anyone try to use more than two hardware contexts in >> a core in gem5. I wouldn't be surprised if 8 hardware contexts have never >> been tested. >> >> To debug this, I would probably start by having multiple CPU cores and >> making sure things work as expected. If so, then I would try 2 threads per >> core to see if it works, then go to 4 or 8. >> >> Cheers, >> Jason >> >> On Thu, Sep 8, 2022 at 2:55 AM Abdelrahman S. Hussein < >> abdelrahman.sobeih@gmail.com> wrote: >> >>> Hello, >>> >>> I am running a multithreaded workload on the O3 CPU in Full System Mode. >>> The workload is SPEC OMP. I am running from a checkpoint that was taken in >>> the middle of running the benchmark. I am using the following debugging >>> flags to monitor the system >>> Thread,Faults,Fetch,O3CPU >>> >>> However, looking at the debugging file, I always see that the fetcher >>> only fetches from tid: 0, which means the CPU does not switch to any other >>> Thread at all. I am sure that my workload runs on 8 threads (cooperating >>> threads). >>> >>> So, does this mean that gem5 does not support running multithreaded >>> workloads? Or, am I missing something or watching the wrong debug prints? >>> >>> Thanks. >>> >>> -- >>> >>> *Best,Abdelrahman Hussein* >>> MSc. Student -- Graduate RA/TA >>> School of Computing Sciences >>> Simon Fraser University, Canada >>> _______________________________________________ >>> gem5-users mailing list -- gem5-users@gem5.org >>> To unsubscribe send an email to gem5-users-leave@gem5.org >>> >> _______________________________________________ >> gem5-users mailing list -- gem5-users@gem5.org >> To unsubscribe send an email to gem5-users-leave@gem5.org >> > _______________________________________________ > gem5-users mailing list -- gem5-users@gem5.org > To unsubscribe send an email to gem5-users-leave@gem5.org >