You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@systemds.apache.org by ba...@apache.org on 2021/03/25 11:14:06 UTC

[systemds] 02/03: [MINOR] Fix native warning on sparse MM

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 <ba...@tugraz.at>
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