Hi Karim,

To put it simply, virtual networks are logically independent transport 
networks: messages traveling on a given vnet shall not be blocked by messages 
on a different vnet.

Garnet is a transport model. As such, it does not decide on the required number 
of vnets. The Ruby protocol used in conjunction with garnet does decide on the 
number of vnets required. This parameter is then passed to the network model by 
the protocol configuration script. The part you overrode was not meant as a 
user configuration point.

To know more about the requirements of your protocol of choice, the best way is 
to visit the .sm files that define the protocol. At the very beginning, after 
machine():, you will fine a bunch of MessageBuffer members with attributes such 
as virtual_network=, vnet_type=, etc. This is where the output you reported 
comes from.

Regarding the buffer size inside each virtual channel, here again, you don’t 
get to chose. The size is based on functional requirements of virtual channels 
which basically say that, once allocated, a virtual channel must not back 
pressure, i.e., the underlying buffer must not get full until the tail flit.

Finally, I suspect you are using the MI protocol (the only one with 5 vnets). 
In that protocol, vnets 0 and 1 are for the dmas and 2, 3, 4 are for caches. If 
you don’t have a DMA in your simulation, then don’t expect a vnet 0 or 1 to 
show up ;)

And just a few recommendations about “asking for help”: When you encounter a 
bug/crash, always provide us with the build command you used and the command 
that crashed. If you modified the code, provide us with the diff or, if 
impossible, a description of the modifications of interest. Do not send 
screenshots of text. Provide full simulation output if not too long, else strip 
off the middle part.

Regards,\
Gabriel
_______________________________________________
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org

Reply via email to