From a28a234069a0c38bb75ba051ef82e7b4400f133a Mon Sep 17 00:00:00 2001 From: John Kalamatianos Date: Thu, 18 Feb 2016 10:42:03 -0500 Subject: gpu: fix bugs with MemFence, Flat Instrs and Resource utilization Both Memory Fence is now flagged as Global Memory only to avoid resource oversubscribing. Flat instructions now check for Shared Memory resource busy to avoid oversubscribing resources. All WaitClass resources now use cycles (not ticks) to register the number of pipe stages between Scoreboard and Execute to be consistent with instruction scheduling logic which always used clock cycles. --- src/gpu-compute/wavefront.cc | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'src/gpu-compute/wavefront.cc') diff --git a/src/gpu-compute/wavefront.cc b/src/gpu-compute/wavefront.cc index 0aa033db1..ed13b22c7 100644 --- a/src/gpu-compute/wavefront.cc +++ b/src/gpu-compute/wavefront.cc @@ -162,7 +162,6 @@ Wavefront::isGmInstruction(GPUDynInstPtr ii) if (IS_OT_READ_GM(ii->opType()) || IS_OT_WRITE_GM(ii->opType()) || IS_OT_ATOMIC_GM(ii->opType())) { - return true; } @@ -349,7 +348,7 @@ Wavefront::ready(itype_e type) } bool locMemBusRdy = false; bool locMemIssueRdy = false; - if (type == I_SHARED) { + if (type == I_SHARED || type == I_FLAT) { for (int j=0; j < computeUnit->numLocMemUnits; ++j) { if (computeUnit->vrfToLocalMemPipeBus[j].prerdy()) locMemBusRdy = true; @@ -598,7 +597,6 @@ Wavefront::ready(itype_e type) DPRINTF(GPUExec, "CU%d: WF[%d][%d]: Ready Inst : %s\n", computeUnit->cu_id, simdId, wfSlotId, ii->disassemble()); - return 1; } -- cgit v1.2.3