The decision for virtual network is made here: <https://www.gem5.org/documentation/general_docs/ruby/garnet_synthetic_traffic/> Garnet Synthetic Traffic<https://www.gem5.org/documentation/general_docs/ruby/garnet_synthetic_traffic/> gem5.org<https://www.gem5.org/documentation/general_docs/ruby/garnet_synthetic_traffic/> [apple-touch-icon.png]<https://www.gem5.org/documentation/general_docs/ruby/garnet_synthetic_traffic/> And depends on the coherence protocol. For eg the garnet stand-alone protocol has three vnets. <https://www.gem5.org/documentation/general_docs/ruby/Garnet_standalone/> Garnet standalone<https://www.gem5.org/documentation/general_docs/ruby/Garnet_standalone/> gem5.org<https://www.gem5.org/documentation/general_docs/ruby/Garnet_standalone/> [apple-touch-icon.png]<https://www.gem5.org/documentation/general_docs/ruby/Garnet_standalone/>
By default req, fwd and resp Go to vnets 0, 1 and 2. For garnet synthetic the words req, fwd and resp are meaningless as it’s not simulating actual coherence .. just that req and fwd are 1 flit while resp is 5 flit. You could either make changes at this level (might be harder) OR you can maybe hack into NetworkInterface.cc in the garnet folder .. see the wakeup function and how it gets packets from protocol and injects them into the vnets and make changes there .. Cheers, Tushar On Sep 11, 2023, at 12:11 AM, Karim Soliman via gem5-users <gem5-users@gem5.org> wrote: Hey everyone, hope you all are doing well. For my research purposes, which is about Network-on-Chip routing algorithms and the effects of using different virtual networks and virtual channels. I have successfully run the PARSEC benchmark suite with the 2D-Mesh topology and it's working well, I have used the following: * Gem5 - version 23 [X86.opt] * Linux kernel: x86-linux-kernel-4.19.83 * PARSEC disk image: downloaded from https://resources.gem5.org/resources/x86-parsec/versions?database=gem5-resources&version=1.0.0 * Used operating system is Ubuntu 18.04. What I'm trying to do is set specific criteria for deciding which virtual network a packet will belong to when it's being injected. I implemented such a method when I used a synthetic traffic generator and it worked, my modifications were in the file ==> src/cpu/testers/garnet_synthetic_traffic/GarnetSyntheticTraffic.cc I tried to std::cout the used virtual network and virtual channels, in ==> src/mem/ruby/network/garnet/InputUnit.cc, and I found that the default configurations being used in the simulation are 3 virtual networks [0, 1, 2] and each virtual network has 4 virtual channels. I'm inquiring about where I can locate the function that handles the injection of packets into the network. [https://upload.wikimedia.org/wikipedia/en/thumb/6/64/Pharos_University.jpg/220px-Pharos_University.jpg] 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-le...@gem5.org
_______________________________________________ gem5-users mailing list -- gem5-users@gem5.org To unsubscribe send an email to gem5-users-le...@gem5.org