changeset 76f7c2858c5c in /z/repo/m5 details: http://repo.m5sim.org/m5?cmd=changeset;node=76f7c2858c5c description: garnet: rename and rearrange config parameters.
Renamed (message) class to vnet for consistency with rest of ruby. Moved some parameters specific to fixed/flexible garnet networks into their corresponding py files. diffstat: src/mem/ruby/network/garnet/BaseGarnetNetwork.cc | 5 +--- src/mem/ruby/network/garnet/BaseGarnetNetwork.hh | 10 +------ src/mem/ruby/network/garnet/BaseGarnetNetwork.py | 5 +--- src/mem/ruby/network/garnet/fixed-pipeline/GarnetLink_d.py | 4 +- src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc | 13 ++++++--- src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.hh | 10 ++++++- src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.py | 3 +- src/mem/ruby/network/garnet/fixed-pipeline/GarnetRouter_d.py | 4 +- src/mem/ruby/network/garnet/fixed-pipeline/NetworkInterface_d.cc | 2 +- src/mem/ruby/network/garnet/fixed-pipeline/NetworkLink_d.cc | 4 +- src/mem/ruby/network/garnet/fixed-pipeline/Router_d.cc | 2 +- src/mem/ruby/network/garnet/flexible-pipeline/GarnetLink.py | 4 +- src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.cc | 11 ++++--- src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.hh | 2 + src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.py | 2 +- src/mem/ruby/network/garnet/flexible-pipeline/GarnetRouter.py | 4 +- src/mem/ruby/network/garnet/flexible-pipeline/NetworkInterface.cc | 2 +- src/mem/ruby/network/garnet/flexible-pipeline/NetworkLink.cc | 2 +- src/mem/ruby/network/garnet/flexible-pipeline/Router.cc | 2 +- 19 files changed, 46 insertions(+), 45 deletions(-) diffs (truncated from 347 to 300 lines): diff -r fb0e525008c5 -r 76f7c2858c5c src/mem/ruby/network/garnet/BaseGarnetNetwork.cc --- a/src/mem/ruby/network/garnet/BaseGarnetNetwork.cc Fri May 13 17:29:27 2011 -0500 +++ b/src/mem/ruby/network/garnet/BaseGarnetNetwork.cc Wed May 18 03:04:14 2011 -0400 @@ -37,10 +37,7 @@ : Network(p) { m_ni_flit_size = p->ni_flit_size; - m_number_of_pipe_stages = p->number_of_pipe_stages; - m_vcs_per_class = p->vcs_per_class; - m_buffers_per_data_vc = p->buffers_per_data_vc; - m_buffers_per_ctrl_vc = p->buffers_per_ctrl_vc; + m_vcs_per_vnet = p->vcs_per_vnet; m_ruby_start = 0; m_flits_received = 0; diff -r fb0e525008c5 -r 76f7c2858c5c src/mem/ruby/network/garnet/BaseGarnetNetwork.hh --- a/src/mem/ruby/network/garnet/BaseGarnetNetwork.hh Fri May 13 17:29:27 2011 -0500 +++ b/src/mem/ruby/network/garnet/BaseGarnetNetwork.hh Wed May 18 03:04:14 2011 -0400 @@ -49,17 +49,11 @@ void init(); int getNiFlitSize() {return m_ni_flit_size; } - int getNumPipeStages() {return m_number_of_pipe_stages; } - int getVCsPerClass() {return m_vcs_per_class; } - int getBuffersPerDataVC() {return m_buffers_per_data_vc; } - int getBuffersPerCtrlVC() {return m_buffers_per_ctrl_vc; } + int getVCsPerVnet() {return m_vcs_per_vnet; } protected: int m_ni_flit_size; - int m_number_of_pipe_stages; - int m_vcs_per_class; - int m_buffers_per_data_vc; - int m_buffers_per_ctrl_vc; + int m_vcs_per_vnet; int m_flits_received; int m_flits_injected; diff -r fb0e525008c5 -r 76f7c2858c5c src/mem/ruby/network/garnet/BaseGarnetNetwork.py --- a/src/mem/ruby/network/garnet/BaseGarnetNetwork.py Fri May 13 17:29:27 2011 -0500 +++ b/src/mem/ruby/network/garnet/BaseGarnetNetwork.py Wed May 18 03:04:14 2011 -0400 @@ -35,7 +35,4 @@ type = 'BaseGarnetNetwork' abstract = True ni_flit_size = Param.Int(16, "network interface flit size in bytes") - number_of_pipe_stages = Param.Int(4, "router pipeline stages"); - vcs_per_class = Param.Int(4, "virtual channels per message class"); - buffers_per_data_vc = Param.Int(4, "buffers per data virtual channel"); - buffers_per_ctrl_vc = Param.Int(1, "buffers per ctrl virtual channel"); + vcs_per_vnet = Param.Int(4, "virtual channels per virtual network"); diff -r fb0e525008c5 -r 76f7c2858c5c src/mem/ruby/network/garnet/fixed-pipeline/GarnetLink_d.py --- a/src/mem/ruby/network/garnet/fixed-pipeline/GarnetLink_d.py Fri May 13 17:29:27 2011 -0500 +++ b/src/mem/ruby/network/garnet/fixed-pipeline/GarnetLink_d.py Wed May 18 03:04:14 2011 -0400 @@ -37,8 +37,8 @@ type = 'NetworkLink_d' link_id = Param.Int(Parent.link_id, "link id") link_latency = Param.Int(Parent.latency, "link latency") - vcs_per_class = Param.Int(Parent.vcs_per_class, - "virtual channels per message class") + vcs_per_vnet = Param.Int(Parent.vcs_per_vnet, + "virtual channels per virtual network") virt_nets = Param.Int(Parent.number_of_virtual_networks, "number of virtual networks") channel_width = Param.Int(Parent.bandwidth_factor, diff -r fb0e525008c5 -r 76f7c2858c5c src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc --- a/src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc Fri May 13 17:29:27 2011 -0500 +++ b/src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc Wed May 18 03:04:14 2011 -0400 @@ -49,6 +49,9 @@ GarnetNetwork_d::GarnetNetwork_d(const Params *p) : BaseGarnetNetwork(p) { + m_buffers_per_data_vc = p->buffers_per_data_vc; + m_buffers_per_ctrl_vc = p->buffers_per_ctrl_vc; + // record the routers for (vector<BasicRouter*>::const_iterator i = m_topology_ptr->params()->routers.begin(); @@ -254,9 +257,9 @@ { double average_link_utilization = 0; vector<double> average_vc_load; - average_vc_load.resize(m_virtual_networks*m_vcs_per_class); + average_vc_load.resize(m_virtual_networks*m_vcs_per_vnet); - for (int i = 0; i < m_virtual_networks*m_vcs_per_class; i++) + for (int i = 0; i < m_virtual_networks*m_vcs_per_vnet; i++) { average_vc_load[i] = 0; } @@ -272,7 +275,7 @@ vector<int> vc_load = m_link_ptr_vector[i]->getVcLoad(); for (int j = 0; j < vc_load.size(); j++) { - assert(vc_load.size() == m_vcs_per_class*m_virtual_networks); + assert(vc_load.size() == m_vcs_per_vnet*m_virtual_networks); average_vc_load[j] += vc_load[j]; } } @@ -282,8 +285,8 @@ << " flits/cycle" << endl; out << "-------------" << endl; - for (int i = 0; i < m_vcs_per_class*m_virtual_networks; i++) { - if (!m_in_use[i/m_vcs_per_class]) + for (int i = 0; i < m_vcs_per_vnet*m_virtual_networks; i++) { + if (!m_in_use[i/m_vcs_per_vnet]) continue; average_vc_load[i] = (double(average_vc_load[i]) / diff -r fb0e525008c5 -r 76f7c2858c5c src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.hh --- a/src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.hh Fri May 13 17:29:27 2011 -0500 +++ b/src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.hh Wed May 18 03:04:14 2011 -0400 @@ -59,6 +59,9 @@ int getNumNodes() { return m_nodes; } + int getBuffersPerDataVC() {return m_buffers_per_data_vc; } + int getBuffersPerCtrlVC() {return m_buffers_per_ctrl_vc; } + // returns the queue requested for the given component MessageBuffer* getToNetQueue(NodeID id, bool ordered, int network_num); MessageBuffer* getFromNetQueue(NodeID id, bool ordered, int network_num); @@ -71,14 +74,14 @@ void set_vnet_type(int vc, VNET_type vnet_type) { - int vnet = vc/getVCsPerClass(); + int vnet = vc/getVCsPerVnet(); m_vnet_type[vnet] = vnet_type; } VNET_type get_vnet_type(int vc) { - int vnet = vc/getVCsPerClass(); + int vnet = vc/getVCsPerVnet(); return m_vnet_type[vnet]; } @@ -130,6 +133,9 @@ std::vector<NetworkLink_d *> m_link_ptr_vector; // All links in the network std::vector<CreditLink_d *> m_creditlink_ptr_vector; // All links in net std::vector<NetworkInterface_d *> m_ni_ptr_vector; // All NI's in Network + + int m_buffers_per_data_vc; + int m_buffers_per_ctrl_vc; }; inline std::ostream& diff -r fb0e525008c5 -r 76f7c2858c5c src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.py --- a/src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.py Fri May 13 17:29:27 2011 -0500 +++ b/src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.py Wed May 18 03:04:14 2011 -0400 @@ -33,4 +33,5 @@ class GarnetNetwork_d(BaseGarnetNetwork): type = 'GarnetNetwork_d' - + buffers_per_data_vc = Param.Int(4, "buffers per data virtual channel"); + buffers_per_ctrl_vc = Param.Int(1, "buffers per ctrl virtual channel"); diff -r fb0e525008c5 -r 76f7c2858c5c src/mem/ruby/network/garnet/fixed-pipeline/GarnetRouter_d.py --- a/src/mem/ruby/network/garnet/fixed-pipeline/GarnetRouter_d.py Fri May 13 17:29:27 2011 -0500 +++ b/src/mem/ruby/network/garnet/fixed-pipeline/GarnetRouter_d.py Wed May 18 03:04:14 2011 -0400 @@ -35,8 +35,8 @@ class GarnetRouter_d(BasicRouter): type = 'GarnetRouter_d' cxx_class = 'Router_d' - vcs_per_class = Param.Int(Parent.vcs_per_class, - "virtual channels per message class") + vcs_per_vnet = Param.Int(Parent.vcs_per_vnet, + "virtual channels per virtual network") virt_nets = Param.Int(Parent.number_of_virtual_networks, "number of virtual networks") diff -r fb0e525008c5 -r 76f7c2858c5c src/mem/ruby/network/garnet/fixed-pipeline/NetworkInterface_d.cc --- a/src/mem/ruby/network/garnet/fixed-pipeline/NetworkInterface_d.cc Fri May 13 17:29:27 2011 -0500 +++ b/src/mem/ruby/network/garnet/fixed-pipeline/NetworkInterface_d.cc Wed May 18 03:04:14 2011 -0400 @@ -47,7 +47,7 @@ m_id = id; m_net_ptr = network_ptr; m_virtual_networks = virtual_networks; - m_vc_per_vnet = m_net_ptr->getVCsPerClass(); + m_vc_per_vnet = m_net_ptr->getVCsPerVnet(); m_num_vcs = m_vc_per_vnet*m_virtual_networks; m_vc_round_robin = 0; diff -r fb0e525008c5 -r 76f7c2858c5c src/mem/ruby/network/garnet/fixed-pipeline/NetworkLink_d.cc --- a/src/mem/ruby/network/garnet/fixed-pipeline/NetworkLink_d.cc Fri May 13 17:29:27 2011 -0500 +++ b/src/mem/ruby/network/garnet/fixed-pipeline/NetworkLink_d.cc Wed May 18 03:04:14 2011 -0400 @@ -39,9 +39,9 @@ m_id = p->link_id; linkBuffer = new flitBuffer_d(); m_link_utilized = 0; - m_vc_load.resize(p->vcs_per_class * p->virt_nets); + m_vc_load.resize(p->vcs_per_vnet * p->virt_nets); - for (int i = 0; i < (p->vcs_per_class * p->virt_nets); i++) { + for (int i = 0; i < (p->vcs_per_vnet * p->virt_nets); i++) { m_vc_load[i] = 0; } } diff -r fb0e525008c5 -r 76f7c2858c5c src/mem/ruby/network/garnet/fixed-pipeline/Router_d.cc --- a/src/mem/ruby/network/garnet/fixed-pipeline/Router_d.cc Fri May 13 17:29:27 2011 -0500 +++ b/src/mem/ruby/network/garnet/fixed-pipeline/Router_d.cc Wed May 18 03:04:14 2011 -0400 @@ -47,7 +47,7 @@ : BasicRouter(p) { m_virtual_networks = p->virt_nets; - m_vc_per_vnet = p->vcs_per_class; + m_vc_per_vnet = p->vcs_per_vnet; m_num_vcs = m_virtual_networks * m_vc_per_vnet; m_routing_unit = new RoutingUnit_d(this); diff -r fb0e525008c5 -r 76f7c2858c5c src/mem/ruby/network/garnet/flexible-pipeline/GarnetLink.py --- a/src/mem/ruby/network/garnet/flexible-pipeline/GarnetLink.py Fri May 13 17:29:27 2011 -0500 +++ b/src/mem/ruby/network/garnet/flexible-pipeline/GarnetLink.py Wed May 18 03:04:14 2011 -0400 @@ -37,8 +37,8 @@ type = 'NetworkLink' link_id = Param.Int(Parent.link_id, "link id") link_latency = Param.Int(Parent.latency, "link latency") - vcs_per_class = Param.Int(Parent.vcs_per_class, - "virtual channels per message class") + vcs_per_vnet = Param.Int(Parent.vcs_per_vnet, + "virtual channels per virtual network") virt_nets = Param.Int(Parent.number_of_virtual_networks, "number of virtual networks") channel_width = Param.Int(Parent.bandwidth_factor, diff -r fb0e525008c5 -r 76f7c2858c5c src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.cc --- a/src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.cc Fri May 13 17:29:27 2011 -0500 +++ b/src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.cc Wed May 18 03:04:14 2011 -0400 @@ -49,6 +49,7 @@ : BaseGarnetNetwork(p) { m_buffer_size = p->buffer_size; + m_number_of_pipe_stages = p->number_of_pipe_stages; // record the routers for (vector<BasicRouter*>::const_iterator i = @@ -221,9 +222,9 @@ { double average_link_utilization = 0; vector<double> average_vc_load; - average_vc_load.resize(m_virtual_networks*m_vcs_per_class); + average_vc_load.resize(m_virtual_networks*m_vcs_per_vnet); - for (int i = 0; i < m_virtual_networks*m_vcs_per_class; i++) { + for (int i = 0; i < m_virtual_networks*m_vcs_per_vnet; i++) { average_vc_load[i] = 0; } @@ -236,7 +237,7 @@ m_link_ptr_vector[i]->getLinkUtilization(); vector<int> vc_load = m_link_ptr_vector[i]->getVcLoad(); for (int j = 0; j < vc_load.size(); j++) { - assert(vc_load.size() == m_vcs_per_class*m_virtual_networks); + assert(vc_load.size() == m_vcs_per_vnet*m_virtual_networks); average_vc_load[j] += vc_load[j]; } } @@ -246,8 +247,8 @@ " flits/cycle" <<endl; out << "-------------" << endl; - for (int i = 0; i < m_vcs_per_class*m_virtual_networks; i++) { - if (!m_in_use[i/m_vcs_per_class]) + for (int i = 0; i < m_vcs_per_vnet*m_virtual_networks; i++) { + if (!m_in_use[i/m_vcs_per_vnet]) continue; average_vc_load[i] = (double(average_vc_load[i]) / diff -r fb0e525008c5 -r 76f7c2858c5c src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.hh --- a/src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.hh Fri May 13 17:29:27 2011 -0500 +++ b/src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.hh Wed May 18 03:04:14 2011 -0400 @@ -57,6 +57,7 @@ void init(); int getBufferSize() { return m_buffer_size; } + int getNumPipeStages() {return m_number_of_pipe_stages; } // returns the queue requested for the given component MessageBuffer* getToNetQueue(NodeID id, bool ordered, int network_num); @@ -115,6 +116,7 @@ std::vector<NetworkInterface *> m_ni_ptr_vector; // All NI's in Network int m_buffer_size; + int m_number_of_pipe_stages; }; inline std::ostream& diff -r fb0e525008c5 -r 76f7c2858c5c src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.py --- a/src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.py Fri May 13 17:29:27 2011 -0500 +++ b/src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.py Wed May 18 03:04:14 2011 -0400 @@ -35,4 +35,4 @@ type = 'GarnetNetwork' buffer_size = Param.Int(0, "default buffer size; 0 indicates infinite buffering"); - + number_of_pipe_stages = Param.Int(4, "router pipeline stages"); diff -r fb0e525008c5 -r 76f7c2858c5c src/mem/ruby/network/garnet/flexible-pipeline/GarnetRouter.py --- a/src/mem/ruby/network/garnet/flexible-pipeline/GarnetRouter.py Fri May 13 17:29:27 2011 -0500 +++ b/src/mem/ruby/network/garnet/flexible-pipeline/GarnetRouter.py Wed May 18 03:04:14 2011 -0400 _______________________________________________ gem5-dev mailing list gem5-dev@m5sim.org http://m5sim.org/mailman/listinfo/gem5-dev