Hi Congwu,

Thank you for your valuable feedback.

Since I am still learning how to use HeteroGarnet with Gem5, I decided to
start with a simple topology that is the Mesh_XY.py

I am successfully able to run my application on multiple cores (4 in this
case) connected in a mesh topology using this command:

*build/X86/gem5.opt configs/deprecated/example/se.py --num-cpus=4
--num-dirs=4 --cpu-type=DerivO3CPU --cpu-clock=2.5GHz --caches
--l1d_size=64kB --l1d_assoc=8 --l1i_size=32kB --l1i_assoc=8 --l2cache
--num-l2caches=4 --l2_size=2MB --mem-size=8GB --ruby --network=garnet
--topology=Mesh_XY --mesh-rows=2 --cmd=/path/to/app/binary --options="<cmd
options>"*

But when I want to use m5ops to mark the ROI within my application (using
m5_dump_reset_stats(0,0)), I get the following error:

*src/mem/ruby/network/Network.hh:122: fatal: Functional read not
implemented.*

Does this mean that I cannot use m5ops with HeteroGarnet? Or should I use
some other m5ops instead?

I would really appreciate your advice.

Thank you. Sincerely,
Preet.






On Fri, Feb 23, 2024 at 8:37 PM zhangcon...@ict.ac.cn <zhangcon...@ict.ac.cn>
wrote:

> Hi Preet,
>
> I think it's ok to add these options to Options.py, such as defining a
> function like `addChipletOptions`.
> If you want to add these options in other files, you can add ruby related
> options in `configs/ruby/Ruby.py`.
> For convenience, you should add them in a file.
>
> Best,
> Congwu
> ------------------------------
> zhangcon...@ict.ac.cn
>
>
> *From:* Preet Derasari via gem5-users <gem5-users@gem5.org>
> *Date:* 2024-02-24 00:18
> *To:* The gem5 Users mailing list <gem5-users@gem5.org>
> *CC:* zhangcon...@ict.ac.cn; Preet Derasari <preetderas...@gmail.com>
> *Subject:* [gem5-users] Re: Chiplet Simulation with Gem5
> Hi Congwu Zhang,
>
> I was able to fix that error with this information, but now there are some
> other errors related to missing options that the KiteLarge_EWMC.py script
> requires.
> Some of these may be:
> concentration_factor
> num_chiplets
> num_mem_ctrls
> chiplet_width
> chiplet_clock
> top_vc
> tsv_width
> noi_width
> tsv_clock
> bottom_vc
> mem_clock
>
> This may not be an exhaustive list of all the options needed, but I
> figured this out from the KiteLarge_EWMC.py file. I just looked for options
> exclusively found in that file and nowhere else in Gem5.
> As far as I know, if I want these options enabled, I may need to add them
> to the Options.py file manually. Is that correct?
> Also, if possible, do you know how I can add those options otherwise?
>
> Thank you for your time and help. I really appreciate it.
>
> Sincerely,
> Preet.
>
>
> On Fri, Feb 23, 2024 at 2:46 AM zhangcongwu--- via gem5-users <
> gem5-users@gem5.org> wrote:
>
>> Hi Preet,
>>
>> There's a missing parameter in configs/ruby/Ruby.py:259 (maybe different,
>> search makeTopology), you should add a `full_system` param to this method.
>> The order of these parameters should be same as `makeTopology` in
>> `KiteLarge_EWMC.py`.
>>
>> Best,
>> Congwu Zhang
>>
>>
>> *From:* Preet Derasari via gem5-users <gem5-users@gem5.org>
>> *Date:* 2024-02-23 04:05
>> *To:* Srikant Bharadwaj <srikan...@gmail.com>
>> *CC:* The gem5 Users mailing list <gem5-users@gem5.org>; Krishna, Tushar
>> <tus...@ece.gatech.edu>; Preet Derasari <preetderas...@gmail.com>
>> *Subject:* [gem5-users] Re: Chiplet Simulation with Gem5
>> Hi Srikant,
>>
>> Thank you so much for answering my questions and providing the reference
>> file.
>>
>> Since I am new to NoC simulation and using Garnet 3.0 (HeteroGarnet), I
>> feel a little lost regarding running a SE or FS mode simulation.
>>
>> I checked the documentation on Gem5 posted (
>> https://www.gem5.org/documentation/general_docs/ruby/heterogarnet/) and
>> read the Kite paper (https://dl.acm.org/doi/abs/10.5555/3437539.3437683).
>>
>> Nevertheless I could not figure out how to run a simulation (specifically
>> in SE mode) where I can use the topology you provided.
>>
>> I am using the deprecated se.py file in the following manner:
>> build/X86/gem5.opt configs/deprecated/example/se.py --num-cpus=4
>> --num-dirs=4 --cpu-type=DerivO3CPU --cpu-clock=2.5GHz --caches
>> --l1d_size=64kB --l1d_assoc=8 --l1i_size=32kB --l1i_assoc=8
>> --mem-type=SimpleMemory --mem-size=8GB --ruby --network=garnet
>> --topology=KiteLarge_EWMC --mesh-rows=2 --cmd=</path/to/binary>
>> --options="<binary args>"
>>
>> When I run this command, I get the following message:
>> =======================================================================
>> gem5 Simulator System.  https://www.gem5.org
>> gem5 is copyrighted software; use the --copyright option for details.
>>
>> gem5 version 23.1.0.0
>> gem5 compiled Feb 19 2024 14:33:34
>> gem5 started Feb 22 2024 14:48:41
>> command line: build/X86/gem5.opt configs/deprecated/example/se.py
>> --num-cpus=4 --num-dirs=4 --cpu-type=DerivO3CPU --cpu-clock=2.5GHz --caches
>> --l1d_size=64kB --l1d_assoc=8 --l1i_size=32kB --l1i_assoc=8
>> --mem-type=SimpleMemory --mem-size=8GB --ruby --network=garnet
>> --topology=KiteLarge_EWMC --mesh-rows=2 --cmd=</path/to/binary>
>> '--options=<binary args>'
>>
>> warn: The se.py script is deprecated. It will be removed in future
>> releases of  gem5.
>> TypeError: makeTopology() missing 1 required positional argument: 'Router'
>>
>> At:
>>   gem5/configs/ruby/Ruby.py(262): create_system
>>   configs/deprecated/example/se.py(268): <module>
>>   src/python/m5/main.py(669): main
>> ========================================================================
>>
>> I understand that the se.py file may not be equipped to run a
>> HeteroGarnet simulation, but I could not find any other simulation files
>> that would help me.
>>
>> I would really appreciate it if you could help me find a simulation file
>> along with any modifications needed to Gem5 to support a simulation with
>> the Kite Large topology.
>>
>> Thank you again for your help.
>>
>> Sincerely,
>> Preet.
>>
>>
>> On Wed, Feb 21, 2024 at 8:08 PM Srikant Bharadwaj <srikan...@gmail.com>
>> wrote:
>>
>>> Hi Preet,
>>> 1. I am attaching a config file for Kite Large topology that you can use
>>> as a reference for building chiplet-based topologies. More info on Kite
>>> Large can be found in this paper:
>>> https://dl.acm.org/doi/abs/10.5555/3437539.3437683
>>> 2. HeteroGarnet only handles the network traffic. So HeteroGarnet is can
>>> handle any thread pinning that happens on the core levels as long as the
>>> cores are connected to each other using a topology and Heterogarnet is
>>> enabled.
>>> 3. Yes, you can perform SE mode simulations as well as Garnet standalone
>>> simulations with HeteroGarnet. Let me know if you have any questions.
>>>
>>> Thanks,
>>> Srikant
>>>
>>>
>>>
>>> On Wed, Feb 21, 2024 at 1:55 PM Preet Derasari via gem5-users <
>>> gem5-users@gem5.org> wrote:
>>>
>>>> Dear Dr. Krishna,
>>>>
>>>> Thank you so much for your response.
>>>>
>>>> I read the documentation you linked to in your email and have a few
>>>> questions.
>>>> 1. Are there any example config files that you are aware of that can
>>>> help me start with chiplet simulation (with some basic routing techniques
>>>> and topologies)? If so, could you point me to them?
>>>> 2. How does HeteroGarnet assign processing and other nodes to an
>>>> application? Can I use methods like CPUSET() in C++ to assign a simulated
>>>> core (node) to a thread (created using thread)?
>>>> 3. Can I perform SE mode simulations of my applications, or is
>>>> HeteroGarnet only applicable to FS (or the new gem5 v22 "boards")?
>>>>
>>>> I really appreciate your help.
>>>>
>>>> Thank you. Sincerely,
>>>> Preet.
>>>>
>>>>
>>>> On Wed, Feb 21, 2024 at 11:24 AM Krishna, Tushar <tus...@ece.gatech.edu>
>>>> wrote:
>>>>
>>>>> The latest version of garnet in the gem5 repo allows you to model
>>>>> multi-chiplet NoCs. *[The gem5_chips repo is deprecated - and was
>>>>> actually forked off an earlier version of HeteroGarnet].*
>>>>> Here is its documentation on the gem5 wiki:
>>>>> https://www.gem5.org/documentation/general_docs/ruby/heterogarnet/
>>>>>
>>>>> Best,
>>>>> Tushar
>>>>> On Feb 21, 2024 at 11:17 AM -0500, Preet Derasari via gem5-users <
>>>>> gem5-users@gem5.org>, wrote:
>>>>>
>>>>> Hi,
>>>>>
>>>>> Does anyone know how to do a chiplet based simulation on the latest
>>>>> Gem5 version with garnet?
>>>>>
>>>>> My basic requirements are: running distributed C++ applications (using
>>>>> multi-threading) on the Gem5 O3CPYU type, having the ability to control 
>>>>> the
>>>>> number of cores on individual chiplet dies (even one core per die is
>>>>> sufficient), control the D-to-D bandwidth, and getting various statistics
>>>>> including power consumption per die and in the interposer, overall latency
>>>>> of communication between dies.
>>>>>
>>>>> On the other hand these are optional: configuring a package with
>>>>> different topologies (mesh XY, butterfly, etc), possibly different
>>>>> packaging techniques (like 2D, 2.5D, 3D), simulate heterogenous components
>>>>> like GPU with CPU, and other NoC parameters like flit with, interposer
>>>>> width, etc.
>>>>>
>>>>> I tried an older version of Gem5 from Dr. Tushar Krishna's group
>>>>> called gem5_chips (https://github.com/GT-CHIPS/gem5_chips) but I had
>>>>> to use an older version of Python (2.7) and GCC (8) to even compile Gem5 
>>>>> on
>>>>> an Ubuntu 20.04 system. Despite that I was not able to run their benchmark
>>>>> beyond a certain instruction limit (using max-insts) since the simulator
>>>>> started throwing assertion errors in the garnet2.0/OutVcState.cc code.
>>>>>
>>>>> I would really appreciate it if someone can point me towards the right
>>>>> direction here.
>>>>>
>>>>> Thank you. Best regards,
>>>>> Preet.
>>>>>
>>>>> _______________________________________________
>>>> gem5-users mailing list -- gem5-users@gem5.org
>>>> To unsubscribe send an email to gem5-users-le...@gem5.org
>>>>
>>> _______________________________________________
>> gem5-users mailing list -- gem5-users@gem5.org
>> To unsubscribe send an email to gem5-users-le...@gem5.org
>>
>
_______________________________________________
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org

Reply via email to