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

Reply via email to