Repository: systemml Updated Branches: refs/heads/master f46279a17 -> 2c1fb20ec
[MINOR] Performance update-in-place (nnz maintenance, evictions) Incl fix for GPU-related compiler warnings (missing imports). Project: http://git-wip-us.apache.org/repos/asf/systemml/repo Commit: http://git-wip-us.apache.org/repos/asf/systemml/commit/2c1fb20e Tree: http://git-wip-us.apache.org/repos/asf/systemml/tree/2c1fb20e Diff: http://git-wip-us.apache.org/repos/asf/systemml/diff/2c1fb20e Branch: refs/heads/master Commit: 2c1fb20ecba73417e313172c34bfdde2b9a30b3e Parents: f46279a Author: Matthias Boehm <mboe...@gmail.com> Authored: Sun Sep 23 21:48:58 2018 +0200 Committer: Matthias Boehm <mboe...@gmail.com> Committed: Sun Sep 23 21:52:51 2018 +0200 ---------------------------------------------------------------------- .../org/apache/sysml/runtime/controlprogram/ProgramBlock.java | 4 ++-- .../sysml/runtime/instructions/gpu/context/GPUObject.java | 1 - .../java/org/apache/sysml/runtime/matrix/data/MatrixBlock.java | 2 +- .../matrix/data/SinglePrecisionCudaSupportFunctions.java | 5 ----- 4 files changed, 3 insertions(+), 9 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/systemml/blob/2c1fb20e/src/main/java/org/apache/sysml/runtime/controlprogram/ProgramBlock.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/runtime/controlprogram/ProgramBlock.java b/src/main/java/org/apache/sysml/runtime/controlprogram/ProgramBlock.java index 9e049f1..feb1234 100644 --- a/src/main/java/org/apache/sysml/runtime/controlprogram/ProgramBlock.java +++ b/src/main/java/org/apache/sysml/runtime/controlprogram/ProgramBlock.java @@ -310,11 +310,11 @@ public class ProgramBlock implements ParseInfo new MatrixBlock(mbVar, MatrixBlock.DEFAULT_INPLACE_SPARSEBLOCK, true) ); moNew.setFileName(mo.getFileName()+Lop.UPDATE_INPLACE_PREFIX+tid); mo.release(); - moNew.release(); - moNew.setUpdateType(UpdateType.INPLACE); //cleanup old variable (e.g., remove from buffer pool) if( ec.removeVariable(varname) != null ) ec.cleanupCacheableData(mo); + moNew.release(); //after old removal to avoid unnecessary evictions + moNew.setUpdateType(UpdateType.INPLACE); ec.setVariable(varname, moNew); } } http://git-wip-us.apache.org/repos/asf/systemml/blob/2c1fb20e/src/main/java/org/apache/sysml/runtime/instructions/gpu/context/GPUObject.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/runtime/instructions/gpu/context/GPUObject.java b/src/main/java/org/apache/sysml/runtime/instructions/gpu/context/GPUObject.java index 72d3170..552ee3b 100644 --- a/src/main/java/org/apache/sysml/runtime/instructions/gpu/context/GPUObject.java +++ b/src/main/java/org/apache/sysml/runtime/instructions/gpu/context/GPUObject.java @@ -24,7 +24,6 @@ import static jcuda.runtime.JCuda.cudaMemset; import static jcuda.runtime.cudaMemcpyKind.cudaMemcpyDeviceToDevice; import static jcuda.runtime.cudaMemcpyKind.cudaMemcpyDeviceToHost; -import java.io.IOException; import java.util.concurrent.atomic.AtomicLong; import java.util.concurrent.atomic.LongAdder; http://git-wip-us.apache.org/repos/asf/systemml/blob/2c1fb20e/src/main/java/org/apache/sysml/runtime/matrix/data/MatrixBlock.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/runtime/matrix/data/MatrixBlock.java b/src/main/java/org/apache/sysml/runtime/matrix/data/MatrixBlock.java index 25423c1..4e2a148 100644 --- a/src/main/java/org/apache/sysml/runtime/matrix/data/MatrixBlock.java +++ b/src/main/java/org/apache/sysml/runtime/matrix/data/MatrixBlock.java @@ -1564,7 +1564,7 @@ public class MatrixBlock extends MatrixValue implements CacheBlock, Externalizab //no need to clear for awareDestNZ since overwritten allocateDenseBlock(false); - if( awareDestNZ ) + if( awareDestNZ && (nonZeros!=getLength() || src.nonZeros!=src.getLength()) ) nonZeros = nonZeros - recomputeNonZeros(rl, ru, cl, cu) + src.nonZeros; //copy values http://git-wip-us.apache.org/repos/asf/systemml/blob/2c1fb20e/src/main/java/org/apache/sysml/runtime/matrix/data/SinglePrecisionCudaSupportFunctions.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/runtime/matrix/data/SinglePrecisionCudaSupportFunctions.java b/src/main/java/org/apache/sysml/runtime/matrix/data/SinglePrecisionCudaSupportFunctions.java index dd23871..ee2b664 100644 --- a/src/main/java/org/apache/sysml/runtime/matrix/data/SinglePrecisionCudaSupportFunctions.java +++ b/src/main/java/org/apache/sysml/runtime/matrix/data/SinglePrecisionCudaSupportFunctions.java @@ -22,11 +22,6 @@ import static jcuda.runtime.JCuda.cudaMemcpy; import static jcuda.runtime.cudaMemcpyKind.cudaMemcpyDeviceToHost; import static jcuda.runtime.cudaMemcpyKind.cudaMemcpyHostToDevice; -import java.nio.ByteBuffer; -import java.nio.ByteOrder; -import java.nio.FloatBuffer; -import java.util.stream.IntStream; - import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.sysml.conf.ConfigurationManager;