Hi zifeng
Thank you so much for your suggestion, I will review it carefully and
consider applying it to my routing algorithm.

My goal is to implement an efficient routing algorithm in a ring topology,
but the limited number of virtual channels makes it easy to form circular
dependencies, congestion and deadlocks that prevent packets from reaching
their destinations. In the routing algorithm with clockwise and
counterclockwise rings, the two rings do not appear to cross.

I want to set up a bubble in Garnet 3.0 so that the counterclockwise and
clockwise rings can keep flowing. But I don't know how to set it up. When I
try to set up in the NetworkInterface.cc and SwitchAllocator.cc files in
Garnet 3.0 to check if at least 2 virtual channels are still available each
time a packet is injected and forwarded, Garnet 3.0 stops all packet
forwarding and I am not sure what is happening.

Regards,
Chunfeng



赵子丰 via gem5-users <gem5-users@gem5.org> 于2023年6月28日周三 15:16写道:

> Hi chunfeng,
>   Are the packets in your routing algorithm moving clockwise or
> counterclockwise? This type of routing algorithm can be prone to deadlock.
> To prevent deadlock from occurring, consider implementing deadlock-free
> algorithms such as XY routing.
> Alternatively, you can use deadlock-free schemes (static Bubble, BBR) to
> enable the use of custom routing algorithms that might cause deadlocks.
>
> References:
> *1. A. Ramrakhyani and T. Krishna, “Static bubble: A framework for 
> **deadlock-free
> irregular on-chip topologies,” *
> *in 2017 IEEE International **Symposium on High Performance Computer
> Architecture (HPCA), **pp. 253–264, 2017.*
>
> *2. M. Parasar, A. Sinha, and T. Krishna, “Brownian bubble router:
> Enabling **deadlock freedom via guaranteed forward progress,” *
>
> *in 2018 Twelfth **IEEE/ACM International Symposium on Networks-on-Chip
> (NOCS), **pp. 1–8, 2018.*
>
>
> ------------------ Original ------------------
> *From: * "Chunfeng Li via gem5-users"<gem5-users@gem5.org>;
> *Date: * Wed, Jun 28, 2023 02:54 PM
> *To: * "gem5-users"<gem5-users@gem5.org>;
> *Cc: * "Chunfeng Li"<lichunfeng....@gmail.com>;
> *Subject: * [gem5-users] Re: garnet3.0 simulation question - How How to
> set bubbles in the buffer to avoid deadlock when using Garnet 3.0 emulation.
>
> Hi  Gabriel,
>
> Thank you so much for helping me!
> I wanted to build a ring topology in Garnet 3.0, and while I was
> implementing the routing algorithm I found that packets would form ring
> dependencies as they were delivered, causing serious congestion problems.
> In the Standalone protocol, there will be three virtual networks, and the
> buffers I am referring to are the virtual networks.
>
> To avoid the congestion problem, I grouped the transmitted data into 3
> classes, each class of data is transmitted on its own separate virtual
> network, but due to the limited virtual channels in the virtual network,
> when the injection rate is particularly high, all virtual channels will be
> filled with packets and thus cannot be delivered forward.
>
> My goal is to set up a bubble (empty virtual channel) to ensure that at
> least one virtual channel is available in the virtual network, so that
> packets can keep passing forward and solve the congestion problem. But I
> don't know how to go about setting up this bubble? Do you know how is to
> set up a bubble?
>
> Regards,
> Chunfeng
>
>
> gabriel.busnot--- via gem5-users <gem5-users@gem5.org> 于2023年6月27日周二
> 16:50写道:
>
>> Hi Chunfeng,
>>
>> Can you be more specific about “the buffer” you are referring to?
>>
>> Also, “routing creating deadlock” sounds more like a routing and/or
>> topology issue than a micro-architecture issue.
>>
>> Introducing a bubble as a deadlock avoidance countermeasure sounds like a
>> slippery option. If you can assert that it is what you need, though, you
>> should have sufficient knowledge of Garnet to locate the offending buffer
>> and identify the condition that requires such a bubble to be inserted. Then
>> you can implement this change yourself in Garnet’s code. Do not hesitate to
>> ask for help if you are facing issue in the process.
>>
>> Regards,
>>
>> Gabriel
>> _______________________________________________
>> 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