[Legup-bugs] [Bug 180] New: Memory loads are not predicated, which can cause unnecessary memory contention/stalls

bugzilla-daemon at legup.org bugzilla-daemon at legup.org
Fri Jan 22 11:05:46 EST 2016


http://legup.eecg.utoronto.ca/bugs/show_bug.cgi?id=180

           Summary: Memory loads are not predicated, which can cause
                    unnecessary memory contention/stalls
           Product: legup
           Version: unspecified
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: major
          Priority: P5
         Component: New Bugs
        AssignedTo: andrewcanis at gmail.com
        ReportedBy: jongsok.choi at gmail.com
                CC: legup-bugs at legup.org
   Estimated Hours: 0.0


Currently memory stores, FIFO read/writes are predicated, but memory loads are
not. This is still functionally correct since loads do not have side effects.
However, this basically wastes memory bandwidth. If we have the following:

If (cond)
  a = A[i];
else
  b = B[i];

We will always be loading from BOTH A and B, then using the predicate to select
from the two. However, since we should really be enabling one of the loads with
the predicate. If these memories were shared between different parallel
functions, always loading from both will unnecessarily increase memory
contention, and if A and B were in off-chip memory, this will really hurt
performance.

-- 
Configure bugmail: http://legup.eecg.utoronto.ca/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.


More information about the Legup-bugs mailing list