diff options
| author | Mahmoud <[email protected]> | 2020-05-23 20:06:25 -0400 |
|---|---|---|
| committer | Mahmoud <[email protected]> | 2020-05-23 20:06:25 -0400 |
| commit | d610fd81420979e956bf37100f7e1c7f1d153831 (patch) | |
| tree | 392a841f21fec5136339ff36ad9b5c7b1b4cb480 /src/gpgpu-sim/icnt_wrapper.cc | |
| parent | 6cedd3ef4973f3785757413db89a7c5d0ee2b58b (diff) | |
| parent | e9e9fcf5957530ecb927aecb5ea238e4b78a4f45 (diff) | |
Merge branch 'dev' of https://github.com/purdue-aalp/gpgpu-sim_distribution into dev-traces
Diffstat (limited to 'src/gpgpu-sim/icnt_wrapper.cc')
| -rw-r--r-- | src/gpgpu-sim/icnt_wrapper.cc | 259 |
1 files changed, 111 insertions, 148 deletions
diff --git a/src/gpgpu-sim/icnt_wrapper.cc b/src/gpgpu-sim/icnt_wrapper.cc index 6e3e596..4ae7aa8 100644 --- a/src/gpgpu-sim/icnt_wrapper.cc +++ b/src/gpgpu-sim/icnt_wrapper.cc @@ -7,23 +7,24 @@ // // Redistributions of source code must retain the above copyright notice, this // list of conditions and the following disclaimer. -// Redistributions in binary form must reproduce the above copyright notice, this -// list of conditions and the following disclaimer in the documentation and/or -// other materials provided with the distribution. -// Neither the name of The University of British Columbia nor the names of its -// contributors may be used to endorse or promote products derived from this -// software without specific prior written permission. +// Redistributions in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. Neither the name of +// The University of British Columbia nor the names of its contributors may be +// used to endorse or promote products derived from this software without +// specific prior written permission. // -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. #include "icnt_wrapper.h" #include <assert.h> @@ -31,154 +32,118 @@ #include "../intersim2/interconnect_interface.hpp" #include "local_interconnect.h" - -icnt_create_p icnt_create; -icnt_init_p icnt_init; -icnt_has_buffer_p icnt_has_buffer; -icnt_push_p icnt_push; -icnt_pop_p icnt_pop; -icnt_transfer_p icnt_transfer; -icnt_busy_p icnt_busy; -icnt_display_stats_p icnt_display_stats; +icnt_create_p icnt_create; +icnt_init_p icnt_init; +icnt_has_buffer_p icnt_has_buffer; +icnt_push_p icnt_push; +icnt_pop_p icnt_pop; +icnt_transfer_p icnt_transfer; +icnt_busy_p icnt_busy; +icnt_display_stats_p icnt_display_stats; icnt_display_overall_stats_p icnt_display_overall_stats; -icnt_display_state_p icnt_display_state; -icnt_get_flit_size_p icnt_get_flit_size; +icnt_display_state_p icnt_display_state; +icnt_get_flit_size_p icnt_get_flit_size; -unsigned g_network_mode; +unsigned g_network_mode; char* g_network_config_filename; - struct inct_config g_inct_config; -LocalInterconnect *g_localicnt_interface; +LocalInterconnect* g_localicnt_interface; #include "../option_parser.h" // Wrapper to intersim2 to accompany old icnt_wrapper // TODO: use delegate/boost/c++11<funtion> instead -static void intersim2_create(unsigned int n_shader, unsigned int n_mem) -{ - g_icnt_interface->CreateInterconnect(n_shader, n_mem); +static void intersim2_create(unsigned int n_shader, unsigned int n_mem) { + g_icnt_interface->CreateInterconnect(n_shader, n_mem); } -static void intersim2_init() -{ - g_icnt_interface->Init(); -} +static void intersim2_init() { g_icnt_interface->Init(); } -static bool intersim2_has_buffer(unsigned input, unsigned int size) -{ - return g_icnt_interface->HasBuffer(input, size); +static bool intersim2_has_buffer(unsigned input, unsigned int size) { + return g_icnt_interface->HasBuffer(input, size); } -static void intersim2_push(unsigned input, unsigned output, void* data, unsigned int size) -{ - g_icnt_interface->Push(input, output, data, size); +static void intersim2_push(unsigned input, unsigned output, void* data, + unsigned int size) { + g_icnt_interface->Push(input, output, data, size); } -static void* intersim2_pop(unsigned output) -{ - return g_icnt_interface->Pop(output); +static void* intersim2_pop(unsigned output) { + return g_icnt_interface->Pop(output); } -static void intersim2_transfer() -{ - g_icnt_interface->Advance(); -} +static void intersim2_transfer() { g_icnt_interface->Advance(); } -static bool intersim2_busy() -{ - return g_icnt_interface->Busy(); -} +static bool intersim2_busy() { return g_icnt_interface->Busy(); } -static void intersim2_display_stats() -{ - g_icnt_interface->DisplayStats(); -} +static void intersim2_display_stats() { g_icnt_interface->DisplayStats(); } -static void intersim2_display_overall_stats() -{ - g_icnt_interface->DisplayOverallStats(); +static void intersim2_display_overall_stats() { + g_icnt_interface->DisplayOverallStats(); } -static void intersim2_display_state(FILE *fp) -{ - g_icnt_interface->DisplayState(fp); +static void intersim2_display_state(FILE* fp) { + g_icnt_interface->DisplayState(fp); } -static unsigned intersim2_get_flit_size() -{ - return g_icnt_interface->GetFlitSize(); +static unsigned intersim2_get_flit_size() { + return g_icnt_interface->GetFlitSize(); } - ////////////////////////////////////////////////////// -static void LocalInterconnect_create(unsigned int n_shader, unsigned int n_mem) -{ - g_localicnt_interface->CreateInterconnect(n_shader, n_mem); +static void LocalInterconnect_create(unsigned int n_shader, + unsigned int n_mem) { + g_localicnt_interface->CreateInterconnect(n_shader, n_mem); } -static void LocalInterconnect_init() -{ - g_localicnt_interface->Init(); -} +static void LocalInterconnect_init() { g_localicnt_interface->Init(); } -static bool LocalInterconnect_has_buffer(unsigned input, unsigned int size) -{ - return g_localicnt_interface->HasBuffer(input, size); +static bool LocalInterconnect_has_buffer(unsigned input, unsigned int size) { + return g_localicnt_interface->HasBuffer(input, size); } -static void LocalInterconnect_push(unsigned input, unsigned output, void* data, unsigned int size) -{ - g_localicnt_interface->Push(input, output, data, size); +static void LocalInterconnect_push(unsigned input, unsigned output, void* data, + unsigned int size) { + g_localicnt_interface->Push(input, output, data, size); } -static void* LocalInterconnect_pop(unsigned output) -{ - return g_localicnt_interface->Pop(output); +static void* LocalInterconnect_pop(unsigned output) { + return g_localicnt_interface->Pop(output); } -static void LocalInterconnect_transfer() -{ - g_localicnt_interface->Advance(); -} +static void LocalInterconnect_transfer() { g_localicnt_interface->Advance(); } -static bool LocalInterconnect_busy() -{ - return g_localicnt_interface->Busy(); -} +static bool LocalInterconnect_busy() { return g_localicnt_interface->Busy(); } -static void LocalInterconnect_display_stats() -{ - g_localicnt_interface->DisplayStats(); +static void LocalInterconnect_display_stats() { + g_localicnt_interface->DisplayStats(); } -static void LocalInterconnect_display_overall_stats() -{ - g_localicnt_interface->DisplayOverallStats(); +static void LocalInterconnect_display_overall_stats() { + g_localicnt_interface->DisplayOverallStats(); } -static void LocalInterconnect_display_state(FILE *fp) -{ - g_localicnt_interface->DisplayState(fp); +static void LocalInterconnect_display_state(FILE* fp) { + g_localicnt_interface->DisplayState(fp); } -static unsigned LocalInterconnect_get_flit_size() -{ - return g_localicnt_interface->GetFlitSize(); +static unsigned LocalInterconnect_get_flit_size() { + return g_localicnt_interface->GetFlitSize(); } - /////////////////////////// -void icnt_reg_options( class OptionParser * opp ) -{ - option_parser_register(opp, "-network_mode", OPT_INT32, &g_network_mode, "Interconnection network mode", "1"); - option_parser_register(opp, "-inter_config_file", OPT_CSTR, &g_network_config_filename, "Interconnection network config file", "mesh"); - +void icnt_reg_options(class OptionParser* opp) { + option_parser_register(opp, "-network_mode", OPT_INT32, &g_network_mode, + "Interconnection network mode", "1"); + option_parser_register(opp, "-inter_config_file", OPT_CSTR, + &g_network_config_filename, + "Interconnection network config file", "mesh"); - //parameters for local xbar + // parameters for local xbar option_parser_register(opp, "-icnt_in_buffer_limit", OPT_UINT32, &g_inct_config.in_buffer_limit, "in_buffer_limit", "64"); option_parser_register(opp, "-icnt_out_buffer_limit", OPT_UINT32, &g_inct_config.out_buffer_limit, "out_buffer_limit", "64"); option_parser_register(opp, "-icnt_subnets", OPT_UINT32, &g_inct_config.subnets, "subnets", "2"); @@ -187,43 +152,41 @@ void icnt_reg_options( class OptionParser * opp ) option_parser_register(opp, "-icnt_grant_cycles", OPT_UINT32, &g_inct_config.grant_cycles, "grant_cycles", "1"); - } -void icnt_wrapper_init() -{ - switch (g_network_mode) { - case INTERSIM: - //FIXME: delete the object: may add icnt_done wrapper - g_icnt_interface = InterconnectInterface::New(g_network_config_filename); - icnt_create = intersim2_create; - icnt_init = intersim2_init; - icnt_has_buffer = intersim2_has_buffer; - icnt_push = intersim2_push; - icnt_pop = intersim2_pop; - icnt_transfer = intersim2_transfer; - icnt_busy = intersim2_busy; - icnt_display_stats = intersim2_display_stats; - icnt_display_overall_stats = intersim2_display_overall_stats; - icnt_display_state = intersim2_display_state; - icnt_get_flit_size = intersim2_get_flit_size; - break; - case LOCAL_XBAR: - g_localicnt_interface = LocalInterconnect::New(g_inct_config); - icnt_create = LocalInterconnect_create; - icnt_init = LocalInterconnect_init; - icnt_has_buffer = LocalInterconnect_has_buffer; - icnt_push = LocalInterconnect_push; - icnt_pop = LocalInterconnect_pop; - icnt_transfer = LocalInterconnect_transfer; - icnt_busy = LocalInterconnect_busy; - icnt_display_stats = LocalInterconnect_display_stats; - icnt_display_overall_stats = LocalInterconnect_display_overall_stats; - icnt_display_state = LocalInterconnect_display_state; - icnt_get_flit_size = LocalInterconnect_get_flit_size; - break; - default: - assert(0); - break; - } +void icnt_wrapper_init() { + switch (g_network_mode) { + case INTERSIM: + // FIXME: delete the object: may add icnt_done wrapper + g_icnt_interface = InterconnectInterface::New(g_network_config_filename); + icnt_create = intersim2_create; + icnt_init = intersim2_init; + icnt_has_buffer = intersim2_has_buffer; + icnt_push = intersim2_push; + icnt_pop = intersim2_pop; + icnt_transfer = intersim2_transfer; + icnt_busy = intersim2_busy; + icnt_display_stats = intersim2_display_stats; + icnt_display_overall_stats = intersim2_display_overall_stats; + icnt_display_state = intersim2_display_state; + icnt_get_flit_size = intersim2_get_flit_size; + break; + case LOCAL_XBAR: + g_localicnt_interface = LocalInterconnect::New(g_inct_config); + icnt_create = LocalInterconnect_create; + icnt_init = LocalInterconnect_init; + icnt_has_buffer = LocalInterconnect_has_buffer; + icnt_push = LocalInterconnect_push; + icnt_pop = LocalInterconnect_pop; + icnt_transfer = LocalInterconnect_transfer; + icnt_busy = LocalInterconnect_busy; + icnt_display_stats = LocalInterconnect_display_stats; + icnt_display_overall_stats = LocalInterconnect_display_overall_stats; + icnt_display_state = LocalInterconnect_display_state; + icnt_get_flit_size = LocalInterconnect_get_flit_size; + break; + default: + assert(0); + break; + } } |
