This is an automated email from the ASF dual-hosted git repository. baunsgaard pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/systemds.git
commit 8ba9016dcc5aee402861617f94b069cbc7992257 Author: baunsgaard <[email protected]> AuthorDate: Wed Mar 24 19:55:01 2021 +0100 [MINOR] Fix native warning on sparse MM --- .../sysds/runtime/matrix/data/LibMatrixNative.java | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/src/main/java/org/apache/sysds/runtime/matrix/data/LibMatrixNative.java b/src/main/java/org/apache/sysds/runtime/matrix/data/LibMatrixNative.java index ce7fbba..f6f24c4 100644 --- a/src/main/java/org/apache/sysds/runtime/matrix/data/LibMatrixNative.java +++ b/src/main/java/org/apache/sysds/runtime/matrix/data/LibMatrixNative.java @@ -79,11 +79,12 @@ public class LibMatrixNative return; } - if( NativeHelper.isNativeLibraryLoaded() - && !isMatMultMemoryBound(m1.rlen, m1.clen, m2.clen) + boolean isValidForNative = !isMatMultMemoryBound(m1.rlen, m1.clen, m2.clen) && !m1.isInSparseFormat() && !m2.isInSparseFormat() - && m1.getDenseBlock().isContiguous() && m2.getDenseBlock().isContiguous() - && 8L * ret.getLength() < Integer.MAX_VALUE ) //contiguous but not allocated + && m1.getDenseBlock().isContiguous() && m2.getDenseBlock().isContiguous() //contiguous but not allocated + && 8L * ret.getLength() < Integer.MAX_VALUE; + + if( NativeHelper.isNativeLibraryLoaded() && isValidForNative ) { ret.sparse = false; ret.allocateDenseBlock(); @@ -114,11 +115,14 @@ public class LibMatrixNative } //else record failure and fallback to java Statistics.incrementNativeFailuresCounter(); + LOG.warn("matrixMult: Native mat mult failed. Falling back to java version (" + + "loaded=" + NativeHelper.isNativeLibraryLoaded() + + ", sparse=" + (m1.isInSparseFormat() | m2.isInSparseFormat()) + ")"); } - //fallback to default java implementation - LOG.warn("matrixMult: Native mat mult failed. Falling back to java version (" - + "loaded=" + NativeHelper.isNativeLibraryLoaded() - + ", sparse=" + (m1.isInSparseFormat() | m2.isInSparseFormat()) + ")"); + + if(isValidForNative) + LOG.debug("Was valid for native MM but native lib was not loaded"); + if (k == 1) LibMatrixMult.matrixMult(m1, m2, ret, !examSparsity); else
