diff --git a/pom.xml b/pom.xml index 5762dc2289e..0f69d5ae01c 100644 --- a/pom.xml +++ b/pom.xml @@ -1588,5 +1588,19 @@ fastdoubleparser 0.9.0 + + + org.openjdk.jmh + jmh-core + 1.37 + test + + + org.openjdk.jmh + jmh-generator-annprocess + 1.37 + test + + diff --git a/src/main/java/org/apache/sysds/runtime/matrix/data/LibMatrixMult.java b/src/main/java/org/apache/sysds/runtime/matrix/data/LibMatrixMult.java index 9763e4ea57d..282a1db9c58 100644 --- a/src/main/java/org/apache/sysds/runtime/matrix/data/LibMatrixMult.java +++ b/src/main/java/org/apache/sysds/runtime/matrix/data/LibMatrixMult.java @@ -2051,7 +2051,7 @@ private static void matrixMultSparseSparseVM(SparseBlock a, SparseBlock b, Dense int blen = b.size(aix[k]); int[] bix = b.indexes(aix[k]); double[] bvals = b.values(aix[k]); - vectMultiplyAdd(avals[k], bvals, cvals, bix, bpos, 0, blen); + vectMultiplyAddScatter(avals[k], bvals, cvals, bix, bpos, 0, blen); } } @@ -2069,7 +2069,7 @@ private static long matrixMultSparseSparseSparseMM(SparseBlock a, SparseBlock b, for(int k = apos; k < apos+alen; k++) { int aixk = aix[k]; if( b.isEmpty(aixk) ) continue; - vectMultiplyAdd(avals[k], b.values(aixk), tmp, + vectMultiplyAddScatter(avals[k], b.values(aixk), tmp, b.indexes(aixk), b.pos(aixk), 0, b.size(aixk)); hitNonEmpty = true; } @@ -2100,7 +2100,7 @@ private static void matrixMultSparseSparseMMSmallRHS(SparseBlock a, SparseBlock for(int k = apos; k < apos+alen; k++) { int aixk = aix[k]; if( b.isEmpty(aixk) ) continue; - vectMultiplyAdd(avals[k], b.values(aixk), cvals, + vectMultiplyAddScatter(avals[k], b.values(aixk), cvals, b.indexes(aixk), b.pos(aixk), cix, b.size(aixk)); } } @@ -2132,7 +2132,7 @@ private static void matrixMultSparseSparseMM(SparseBlock a, SparseBlock b, Dense int k = curk[i-bi] + apos; for(; k < apos+alen && aix[k]