Hello Tushar,

Could you tell me which results in stats.txt and ruby.stats file should I check in order to verify the OE routing and adaptive routing? I traced the flit flow with printing information, it does go to the output with more credits in adaptive routing, and the OE turn model also runs well. But the results in those two files don't make sense. For example, I ran 16 FFT in splash 2 (one in each core) in 4*4 mesh, the "sim_ticks" is set to 10000000000. The "sim_insts" with adaptive routing is even slightly lower than that without adaptive routing, but the "Total flits injected" in ruby.stats is a little bit higher than that without adaptive routing. And the same problem for OE turn model, the "Average latency" only decreased 0.1% with OE implemented. For my adaptive routing, After it determine the candidate outputs, I added up all the ten VCs' credit info in each output, and compare between candidate output using m_output_unit[CandidateOutport[i]]->get_credit_cnt(vcs);
then choose the one with more credits. Did I write the codes wrong?

Thanks,
Yuhang

On 08/03/2013 10:51 PM, tus...@csail.mit.edu wrote:
inNetLink->get_id() will give you the id of the link between the cache controller and NIC, it need not be same as the source id. From a network point of view, source id should be the source router id (or source NIC id). You can use the m_id from the NIC for NIC id, or when the NIC is created you can make it store the id of the router it is connected to and use that as the source id.

- Tushar


Quoting yuhang <yuh...@engr.colostate.edu>:

Hello Tushar,

Thanks for your help, now I can get the router id, router coordinates, destination node id and output directions in RoutingUnit_d::routeCompute function. However, in order to implement Odd Even model, I still need the source id. In the original algorithm of Odd Even model. The source id only used once: if (c0 is odd or c0 = s0).

I tired to get inNetLink id (I suppose this is the source node id )in NetworkInterface_d::wakeup after "if (inNetLink->isReady(m_net_ptr->curCycle()))" , using "inNetLinkID = inNetLink->get_id();" and store the value in the flit_d in NetworkInterface_d::flitisizeMessage after "flit_d *fl = new flit_d(i, vc, vnet, num_flits, new_msg_ptr, m_net_ptr->curCycle());" using "fl->store_innet_link(inNetLinkID);" (this is the function I added in flit_d.hh) However, the inNetLink id I get in RoutingUnit_d::routeCompute ( innet_link = t_flit->get_innet_link();
) doesn't make sense.


Did I do something wrong? How could I get the source node id in RoutingUnit_d::routeCompute?

Thanks,
Yuhang



_______________________________________________
gem5-users mailing list
gem5-users@gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

_______________________________________________
gem5-users mailing list
gem5-users@gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Reply via email to