summaryrefslogtreecommitdiff
path: root/src/intersim2
diff options
context:
space:
mode:
authorTor Aamodt <[email protected]>2020-07-04 16:26:52 -0700
committerGitHub <[email protected]>2020-07-04 16:26:52 -0700
commit673f8a9f0056b456871642f4d25be5c598fcba6e (patch)
treea9f379ae6ff144e8f3eccd3d510a36c2c0983edd /src/intersim2
parentc9cc4281bf84ad6cff77d20389b59d14a534ad6b (diff)
parent9d3caa1cb2c70a3be186d4704ecab0fe13277516 (diff)
Merge pull request #1 from gpgpu-sim/dev
Dev
Diffstat (limited to 'src/intersim2')
-rw-r--r--src/intersim2/Makefile3
-rw-r--r--src/intersim2/flit.hpp4
-rw-r--r--src/intersim2/gputrafficmanager.cpp6
-rw-r--r--src/intersim2/interconnect_interface.cpp9
-rw-r--r--src/intersim2/routers/iq_router.cpp2
-rw-r--r--src/intersim2/stats.hpp3
-rw-r--r--src/intersim2/trafficmanager.cpp8
-rw-r--r--src/intersim2/trafficmanager.hpp14
8 files changed, 30 insertions, 19 deletions
diff --git a/src/intersim2/Makefile b/src/intersim2/Makefile
index bd42000..3eeeb70 100644
--- a/src/intersim2/Makefile
+++ b/src/intersim2/Makefile
@@ -36,7 +36,7 @@ DEBUG ?= 0
LEX = flex
YACC = bison -y
DEFINE = #-DTRACK_STALLS -DTRACK_BUFFERS -DTRACK_FLOWS -DTRACK_CREDITS
-INCPATH = -I. -Iarbiters -Iallocators -Irouters -Inetworks -Ipower
+INCPATH = -I. -Iarbiters -Iallocators -Irouters -Inetworks -Ipower -I$(GPGPUSIM_ROOT)/src
ifeq ($(CREATE_LIBRARY),1)
INCPATH += -I$(GPGPUSIM_ROOT)/src/gpgpu-sim/
@@ -48,6 +48,7 @@ CPPFLAGS += -O3
endif
CPPFLAGS += -g
CPPFLAGS += -fPIC
+CPPFLAGS += -I$(CUDA_INSTALL_PATH)/include
LFLAGS +=
diff --git a/src/intersim2/flit.hpp b/src/intersim2/flit.hpp
index fd48306..1c58c68 100644
--- a/src/intersim2/flit.hpp
+++ b/src/intersim2/flit.hpp
@@ -57,8 +57,8 @@ public:
int itime;
int atime;
- int id;
- int pid;
+ unsigned long long id;
+ unsigned long long pid;
bool record;
diff --git a/src/intersim2/gputrafficmanager.cpp b/src/intersim2/gputrafficmanager.cpp
index bf422d6..6897a22 100644
--- a/src/intersim2/gputrafficmanager.cpp
+++ b/src/intersim2/gputrafficmanager.cpp
@@ -105,7 +105,7 @@ void GPUTrafficManager::_RetireFlit( Flit *f, int dest )
if(f->head) {
head = f;
} else {
- map<int, Flit *>::iterator iter = _retired_packets[f->cl].find(f->pid);
+ map<unsigned long long, Flit *>::iterator iter = _retired_packets[f->cl].find(f->pid);
assert(iter != _retired_packets[f->cl].end());
head = iter->second;
_retired_packets[f->cl].erase(iter);
@@ -195,8 +195,8 @@ void GPUTrafficManager::_GeneratePacket(int source, int stype, int cl, int time,
// Flit::FlitType packet_type = Flit::ANY_TYPE;
int size = packet_size; //input size
- int pid = _cur_pid++;
- assert(_cur_pid);
+ unsigned long long pid = _cur_pid++;
+ assert(_cur_pid > 0);
int packet_destination = dest;
bool record = false;
bool watch = gWatchOut && (_packets_to_watch.count(pid) > 0);
diff --git a/src/intersim2/interconnect_interface.cpp b/src/intersim2/interconnect_interface.cpp
index 4386821..1e1a2d7 100644
--- a/src/intersim2/interconnect_interface.cpp
+++ b/src/intersim2/interconnect_interface.cpp
@@ -44,6 +44,7 @@
#include "booksim.hpp"
#include "intersim_config.hpp"
#include "network.hpp"
+#include "trace.h"
InterconnectInterface* InterconnectInterface::New(const char* const config_file)
{
@@ -147,6 +148,8 @@ void InterconnectInterface::Push(unsigned input_deviceID, unsigned output_device
{
// it should have free buffer
assert(HasBuffer(input_deviceID, size));
+
+ DPRINTF(INTERCONNECT, "Sent %d bytes from %d to %d", size, input_deviceID, output_deviceID);
int output_icntID = _node_map[output_deviceID];
int input_icntID = _node_map[input_deviceID];
@@ -178,7 +181,11 @@ void InterconnectInterface::Push(unsigned input_deviceID, unsigned output_device
case WRITE_REQUEST: packet_type = Flit::WRITE_REQUEST ;break;
case READ_REPLY: packet_type = Flit::READ_REPLY ;break;
case WRITE_ACK: packet_type = Flit::WRITE_REPLY ;break;
- default: assert (0);
+ default:
+ {
+ cout<<"Type "<<mf->get_type()<<" is undefined!"<<endl;
+ assert (0 && "Type is undefined");
+ }
}
//TODO: _include_queuing ?
diff --git a/src/intersim2/routers/iq_router.cpp b/src/intersim2/routers/iq_router.cpp
index d97f485..7dffb3a 100644
--- a/src/intersim2/routers/iq_router.cpp
+++ b/src/intersim2/routers/iq_router.cpp
@@ -306,7 +306,7 @@ bool IQRouter::_ReceiveFlits( )
if(f->watch) {
*gWatchOut << GetSimTime() << " | " << FullName() << " | "
- << "Received flit " << f->id
+ << "Received flit " << (unsigned) f->id
<< " from channel at input " << input
<< "." << endl;
}
diff --git a/src/intersim2/stats.hpp b/src/intersim2/stats.hpp
index 1aaf013..e186f4d 100644
--- a/src/intersim2/stats.hpp
+++ b/src/intersim2/stats.hpp
@@ -62,6 +62,9 @@ public:
inline void AddSample( int val ) {
AddSample( (double)val );
}
+ inline void AddSample( unsigned long long val ) {
+ AddSample( (double)val );
+ }
int GetBin(int b){ return _hist[b];}
diff --git a/src/intersim2/trafficmanager.cpp b/src/intersim2/trafficmanager.cpp
index 8a015bb..7a20d07 100644
--- a/src/intersim2/trafficmanager.cpp
+++ b/src/intersim2/trafficmanager.cpp
@@ -679,7 +679,7 @@ void TrafficManager::_RetireFlit( Flit *f, int dest )
if(f->head) {
head = f;
} else {
- map<int, Flit *>::iterator iter = _retired_packets[f->cl].find(f->pid);
+ map<unsigned long long, Flit *>::iterator iter = _retired_packets[f->cl].find(f->pid);
assert(iter != _retired_packets[f->cl].end());
head = iter->second;
_retired_packets[f->cl].erase(iter);
@@ -1380,7 +1380,7 @@ void TrafficManager::_DisplayRemaining( ostream & os ) const
{
for(int c = 0; c < _classes; ++c) {
- map<int, Flit *>::const_iterator iter;
+ map<unsigned long long, Flit *>::const_iterator iter;
int i;
os << "Class " << c << ":" << endl;
@@ -1463,7 +1463,7 @@ bool TrafficManager::_SingleSim( )
double latency = (double)_plat_stats[c]->Sum();
double count = (double)_plat_stats[c]->NumSamples();
- map<int, Flit *>::const_iterator iter;
+ map<unsigned long long, Flit *>::const_iterator iter;
for(iter = _total_in_flight_flits[c].begin();
iter != _total_in_flight_flits[c].end();
iter++) {
@@ -1568,7 +1568,7 @@ bool TrafficManager::_SingleSim( )
double acc_latency = _plat_stats[c]->Sum();
double acc_count = (double)_plat_stats[c]->NumSamples();
- map<int, Flit *>::const_iterator iter;
+ map<unsigned long long, Flit *>::const_iterator iter;
for(iter = _total_in_flight_flits[c].begin();
iter != _total_in_flight_flits[c].end();
iter++) {
diff --git a/src/intersim2/trafficmanager.hpp b/src/intersim2/trafficmanager.hpp
index 9694df4..97564ea 100644
--- a/src/intersim2/trafficmanager.hpp
+++ b/src/intersim2/trafficmanager.hpp
@@ -113,9 +113,9 @@ protected:
vector<vector<bool> > _qdrained;
vector<vector<list<Flit *> > > _partial_packets;
- vector<map<int, Flit *> > _total_in_flight_flits;
- vector<map<int, Flit *> > _measured_in_flight_flits;
- vector<map<int, Flit *> > _retired_packets;
+ vector<map<unsigned long long, Flit *> > _total_in_flight_flits;
+ vector<map<unsigned long long, Flit *> > _measured_in_flight_flits;
+ vector<map<unsigned long long, Flit *> > _retired_packets;
bool _empty_network;
bool _hold_switch_for_packet;
@@ -229,12 +229,12 @@ protected:
vector<double> _warmup_threshold;
vector<double> _acc_warmup_threshold;
- int _cur_id;
- int _cur_pid;
+ unsigned long long _cur_id;
+ unsigned long long _cur_pid;
int _time;
- set<int> _flits_to_watch;
- set<int> _packets_to_watch;
+ set<unsigned long long> _flits_to_watch;
+ set<unsigned long long> _packets_to_watch;
bool _print_csv_results;