Repository: systemml Updated Branches: refs/heads/master 8e3c6f8b8 -> 269aef35f
[MINOR] Limit the size of intermediate im2col matrix to MAX_WORKSPACE_LIMIT_BYTES Project: http://git-wip-us.apache.org/repos/asf/systemml/repo Commit: http://git-wip-us.apache.org/repos/asf/systemml/commit/269aef35 Tree: http://git-wip-us.apache.org/repos/asf/systemml/tree/269aef35 Diff: http://git-wip-us.apache.org/repos/asf/systemml/diff/269aef35 Branch: refs/heads/master Commit: 269aef35f12273b6a82a7a0c24fc63c0a9c9e071 Parents: 8e3c6f8 Author: Niketan Pansare <[email protected]> Authored: Fri Jan 19 11:29:15 2018 -0800 Committer: Niketan Pansare <[email protected]> Committed: Fri Jan 19 11:29:15 2018 -0800 ---------------------------------------------------------------------- .../java/org/apache/sysml/runtime/matrix/data/LibMatrixCuDNN.java | 3 ++- .../runtime/matrix/data/LibMatrixCuDNNConvolutionAlgorithm.java | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/systemml/blob/269aef35/src/main/java/org/apache/sysml/runtime/matrix/data/LibMatrixCuDNN.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/runtime/matrix/data/LibMatrixCuDNN.java b/src/main/java/org/apache/sysml/runtime/matrix/data/LibMatrixCuDNN.java index d07c2b2..122304e 100644 --- a/src/main/java/org/apache/sysml/runtime/matrix/data/LibMatrixCuDNN.java +++ b/src/main/java/org/apache/sysml/runtime/matrix/data/LibMatrixCuDNN.java @@ -207,7 +207,8 @@ public class LibMatrixCuDNN extends LibMatrixCUDA { if(NCHW < maxNumElementsOfCuDNNTensor && NKPQ < maxNumElementsOfCuDNNTensor && KCRS < maxNumElementsOfCuDNNTensor) { if(isSparseFilter && - (OptimizerUtils.estimateSizeExactSparsity(CRS, NPQ, 1.0) + OptimizerUtils.estimateSizeExactSparsity(K, NPQ, 1.0)) < intermediateMemoryBudget) { + (OptimizerUtils.estimateSizeExactSparsity(CRS, NPQ, 1.0) + OptimizerUtils.estimateSizeExactSparsity(K, NPQ, 1.0)) < + Math.min(LibMatrixCuDNNConvolutionAlgorithm.MAX_WORKSPACE_LIMIT_BYTES, intermediateMemoryBudget)) { // Sparse filter conv2d // Perform dense im2col Pointer im2colPointer = denseIm2col(gCtx, instName, image, isSparseImage, http://git-wip-us.apache.org/repos/asf/systemml/blob/269aef35/src/main/java/org/apache/sysml/runtime/matrix/data/LibMatrixCuDNNConvolutionAlgorithm.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/runtime/matrix/data/LibMatrixCuDNNConvolutionAlgorithm.java b/src/main/java/org/apache/sysml/runtime/matrix/data/LibMatrixCuDNNConvolutionAlgorithm.java index 17cd610..6673e60 100644 --- a/src/main/java/org/apache/sysml/runtime/matrix/data/LibMatrixCuDNNConvolutionAlgorithm.java +++ b/src/main/java/org/apache/sysml/runtime/matrix/data/LibMatrixCuDNNConvolutionAlgorithm.java @@ -57,7 +57,7 @@ import static jcuda.jcudnn.cudnnTensorFormat.CUDNN_TENSOR_NCHW; */ public class LibMatrixCuDNNConvolutionAlgorithm implements java.lang.AutoCloseable { // Limit the workspace available to cudnn convolution operation to 1 GB - private static long MAX_WORKSPACE_LIMIT_BYTES = (long) 1e+9; + static long MAX_WORKSPACE_LIMIT_BYTES = (long) 1e+9; public int algo = -1; public Pointer workSpace = new Pointer();
