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

Reply via email to