Dear gem5 Community,
I hope this email finds you well. I apologize in advance if my questions
seem basic, as I am still learning the ropes of gem5 and have encountered
some areas of confusion.
For my research, I am interested in configuring the depth of the input
buffers per router. I understand that the default buffer size is zero,
which signifies an infinite buffer.
I have reviewed the source code in
"src/mem/ruby/network/garnet/GarnetNetwork.py" and noticed that
buffers_per_data_vc is set to 4 by default, while buffers_per_ctrl_vc is
set to 1. If I modify the default value of buffers_per_data_vc to 8, would
this accurately configure the input buffer depth to 8?
Additionally, I would like to inquire about accessing the current number of
flits within the buffer. I reviewed the code in
"src/mem/ruby/network/garnet/InputUnit.cc" and
"src/mem/ruby/network/garnet/RoutingUnit.cc" but was unable to locate the
relevant functionality.
Thank you for your time and assistance.
Best Regards,
Eng. Karim Soliman
Teaching Assistant
Computer Engineering Department
Pharos University in Alexandria (P.U.A)
Hello,
My understanding is that, for a (Garnet) router, the VC buffer size is
marked by the (initial) credit value.
For example, the outport-East of Router 0 is connected to the inport-West
of Router 1. The outport-East of Router 0 keeps all the credit values,
corresponding to all VCs of Router 1's inport-West, in an "OutVcState"
vector. In the constructor of OutVcState
(src/mem/ruby/network/garnet/OutVcState.cc), the maximum credit values are
initialized to buffers_per_ctrl_vc (for vnet 0 and 1) or
buffers_per_data_vc (for vnet 2).
If you change those two values, you will see that an outport can push at
most buffers_per_ctrl_vc (or buffers_per_data_vc) flits into a VC buffer.
Because the credits will then run out. The behavior is the same as setting
the buffer depth. However, if you look at
src/mem/ruby/network/garnet/flitBuffer.cc, the class member "max_size"
seems indeed never set and the function isFull() is never called.
If you want to check the number of flits in a specific VC buffer,
you will have to check:
Best regards,
Chia
On Mon, Aug 12, 2024 at 12:42 PM Karim Soliman via gem5-users <
gem5-users@gem5.org> wrote:
Dear gem5 Community,
I hope this email finds you well. I apologize in advance if my questions
seem basic, as I am still learning the ropes of gem5 and have encountered
some areas of confusion.
For my research, I am interested in configuring the depth of the input
buffers per router. I understand that the default buffer size is zero,
which signifies an infinite buffer.
I have reviewed the source code in
"src/mem/ruby/network/garnet/GarnetNetwork.py" and noticed that
buffers_per_data_vc is set to 4 by default, while buffers_per_ctrl_vc is
set to 1. If I modify the default value of buffers_per_data_vc to 8,
would this accurately configure the input buffer depth to 8?
Additionally, I would like to inquire about accessing the current number
of flits within the buffer. I reviewed the code in
"src/mem/ruby/network/garnet/InputUnit.cc" and
"src/mem/ruby/network/garnet/RoutingUnit.cc" but was unable to locate the
relevant functionality.
Thank you for your time and assistance.
Best Regards,
Eng. Karim Soliman
Teaching Assistant
Computer Engineering Department
Pharos University in Alexandria (P.U.A)
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-leave@gem5.org
Thank you for taking the time to provide such a detailed and informative
answer.
I appreciate your kind attention to my inquiry. Your response has been very
helpful and will undoubtedly inform my next steps.
Karim Soliman
Teaching Assistant
Computer Engineering Department
Pharos University in Alexandria (P.U.A)
On Fri, Aug 30, 2024 at 1:25 AM C.-Y. Wu via gem5-users gem5-users@gem5.org
wrote:
Hello,
My understanding is that, for a (Garnet) router, the VC buffer size is
marked by the (initial) credit value.
For example, the outport-East of Router 0 is connected to the inport-West
of Router 1. The outport-East of Router 0 keeps all the credit values,
corresponding to all VCs of Router 1's inport-West, in an "OutVcState"
vector. In the constructor of OutVcState
(src/mem/ruby/network/garnet/OutVcState.cc), the maximum credit values are
initialized to buffers_per_ctrl_vc (for vnet 0 and 1) or
buffers_per_data_vc (for vnet 2).
If you change those two values, you will see that an outport can push at
most buffers_per_ctrl_vc (or buffers_per_data_vc) flits into a VC buffer.
Because the credits will then run out. The behavior is the same as setting
the buffer depth. However, if you look at
src/mem/ruby/network/garnet/flitBuffer.cc, the class member "max_size"
seems indeed never set and the function isFull() is never called.
If you want to check the number of flits in a specific VC buffer,
you will have to check:
Best regards,
Chia
On Mon, Aug 12, 2024 at 12:42 PM Karim Soliman via gem5-users <
gem5-users@gem5.org> wrote:
Dear gem5 Community,
I hope this email finds you well. I apologize in advance if my questions
seem basic, as I am still learning the ropes of gem5 and have encountered
some areas of confusion.
For my research, I am interested in configuring the depth of the input
buffers per router. I understand that the default buffer size is zero,
which signifies an infinite buffer.
I have reviewed the source code in
"src/mem/ruby/network/garnet/GarnetNetwork.py" and noticed that
buffers_per_data_vc is set to 4 by default, while buffers_per_ctrl_vc is
set to 1. If I modify the default value of buffers_per_data_vc to 8,
would this accurately configure the input buffer depth to 8?
Additionally, I would like to inquire about accessing the current number
of flits within the buffer. I reviewed the code in
"src/mem/ruby/network/garnet/InputUnit.cc" and
"src/mem/ruby/network/garnet/RoutingUnit.cc" but was unable to locate the
relevant functionality.
Thank you for your time and assistance.
Best Regards,
Eng. Karim Soliman
Teaching Assistant
Computer Engineering Department
Pharos University in Alexandria (P.U.A)
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