diff options
| author | JRPan <[email protected]> | 2025-09-03 16:01:54 -0400 |
|---|---|---|
| committer | GitHub <[email protected]> | 2025-09-03 13:01:54 -0700 |
| commit | 987a23f84f8705c0566a47aeda2132fa33a82618 (patch) | |
| tree | 67cc731de018ab6573a1dd1926cc005b3e5980db /src/gpgpu-sim/local_interconnect.cc | |
| parent | 21b18be3832b80b00d4890f041818bac431866e7 (diff) | |
Fix correlation on A100 CUTLASS GEMM Kernels (#127)
* 1. Add a queue to promote fairness CTA scheduling
2. Add a Perfect xbar interconnect option
* remove merge queue
* Should not change this
* rename pending cta to allocated_ctas
* run formatter
Diffstat (limited to 'src/gpgpu-sim/local_interconnect.cc')
| -rw-r--r-- | src/gpgpu-sim/local_interconnect.cc | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/gpgpu-sim/local_interconnect.cc b/src/gpgpu-sim/local_interconnect.cc index ce4415c..93689c7 100644 --- a/src/gpgpu-sim/local_interconnect.cc +++ b/src/gpgpu-sim/local_interconnect.cc @@ -116,10 +116,24 @@ void xbar_router::Advance() { RR_Advance(); else if (arbit_type == iSLIP) iSLIP_Advance(); + else if (arbit_type == PERFECT) + Perfect_Advance(); else assert(0); } +void xbar_router::Perfect_Advance() { + for (unsigned node_id = 0; node_id < total_nodes; node_id++) { + if (!in_buffers[node_id].empty()) { + Packet _packet = in_buffers[node_id].front(); + if (Has_Buffer_Out(_packet.output_deviceID, 1)) { + out_buffers[_packet.output_deviceID].push(_packet); + in_buffers[node_id].pop(); + } + } + } +}; + void xbar_router::RR_Advance() { bool active = false; vector<bool> issued(total_nodes, false); @@ -433,4 +447,4 @@ unsigned LocalInterconnect::GetFlitSize() const { return LOCAL_INCT_FLIT_SIZE; } void LocalInterconnect::DisplayState(FILE* fp) const { fprintf(fp, "GPGPU-Sim uArch: ICNT:Display State: Under implementation\n"); -} +}
\ No newline at end of file |
