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