Hello all,
I'm trying to get the credits information in next router's input buffer
to implement adaptive routing based on the minimum path routing table. I
know such information is stored in upstream router's corresponding
output unit in OutVcState_d. But when I log that information in RC
stage, it seems the virtual channels never get full. In most cases, vc
credits are 4 for data channel and 1 for control, which means the buffer
is empty. Sometimes the credits will reduce to 3, but in that case there
still exists empty buffers. So that I still cannot get congestion in the
network. The sim_insts in my adaptive even reduced compare to the
original XY routing under the same sim_ticks , but total flits injected
into garnet increases a little bit.
sim_insts total flits injected
XY 3074601 313005
adaptive 3062158 313066
The adaptive routing chooses the out port with more credits.
Interestingly, if I choose the out port with less credits. It performs
better than the other one, although it's sim_insts still decrease
compare to XY
sim_insts total flits injected
adaptive 3068503 313522
less credits
I ran four FFT kernel in 2*2 mesh, removed l2 cache, and reduced the
number of vcs per vnet to 1. I tired other workloads, they get basically
the same.
The results don't make sense to me. I have considered many
possibilities, but still don't know whether it's my method's problem,
the workloads' problem, or something else. Anyone could give me some ideas?
Thanks,
Yuhang
_______________________________________________
gem5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users