Closed whitneywhtsang closed 1 year ago
Thanks for the fix! @lorenzo-carpentieri Wasn't this code already fixed? Did you forget to commit? Can you please take care?
@whitneywhtsang Thanks again, please let us know if you find any other bugs in the code.
Excellent, thank you
For
gramschmidt
, without the change in this PR, thenA
is actually not initialized, as the loop nest is never entered. It happens that elements ofA
are all zeros. In the kernels, when we do multiplication, reductions, etc on zeros, they will give us zeros. In the cpu codegramschmidt()
, again loop nests are not entered, and elements ofA
continue to be zeros. End up we always verify even if we do nothing at all in the kernels.For
mvt
, in the kernelsx1
andx2
are calculated asx1[i] += a[{i, j}] * y1[j];
andx2[k] += a[{k, l}] * y2[l];
, if elements ofy1
andy2
are always zeros, then elements ofx1
andx2
are always zeros too. Given that elements ofx1
andx2
are initialized to zeros, it always verify even if we do nothing at all in the kernels. It is also missing the writeback trigger before verification.Signed-off-by: Tsang, Whitney whitney.tsang@intel.com