[jira] [Created] (SYSTEMML-824) Improve the performance of binary cell-wise operations

2016-07-20 Thread Niketan Pansare (JIRA)
Niketan Pansare created SYSTEMML-824:


 Summary: Improve the performance of binary cell-wise operations
 Key: SYSTEMML-824
 URL: https://issues.apache.org/jira/browse/SYSTEMML-824
 Project: SystemML
  Issue Type: Task
Reporter: Niketan Pansare


The cellwise (matrix-matrix as well as matrix-scalar) operations take 
significant amount of time while training Lenet. Here are few ways to improve 
the performance of cell-wise operations:
1. Inject in-place updates [1] (saving on zero-ing out the matrix).
2. Fused cell-wise operations (as an example, recently added axpy operations). 
3. Parallelize cellwise operations (initial investigation need to be conducted 
before proceeding in this direction especially in sparse case: 
https://github.com/apache/incubator-systemml/blob/master/src/main/java/org/apache/sysml/runtime/matrix/data/LibMatrixBincell.java#L274).

[~nakul02] [~mwdus...@us.ibm.com] [~prithvi_r_s] [~mboehm7] [~reinwald]

Reference:
[1] http://www.diku.dk/hjemmesider/ansatte/torbenm/ICD/Register.pdf



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (SYSTEMML-824) Improve the performance of binary cell-wise operations

2016-07-20 Thread Niketan Pansare (JIRA)

 [ 
https://issues.apache.org/jira/browse/SYSTEMML-824?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Niketan Pansare updated SYSTEMML-824:
-
Description: 
The cellwise (matrix-matrix as well as matrix-scalar) operations take 
significant amount of time while training Lenet. Here are few ways to improve 
the performance of cell-wise operations:
1. Inject in-place updates [1] (saving on zero-ing out the matrix).
2. Fused cell-wise operations (as an example, recently added axpy operations: 
https://github.com/apache/incubator-systemml/commit/b584aecf6b3a1eb96ff83b78cc3ad7c7c6d15baa).
 
3. Parallelize cellwise operations (initial investigation need to be conducted 
before proceeding in this direction especially in sparse case: 
https://github.com/apache/incubator-systemml/blob/master/src/main/java/org/apache/sysml/runtime/matrix/data/LibMatrixBincell.java#L274).

[~nakul02] [~mwdus...@us.ibm.com] [~prithvi_r_s] [~mboehm7] [~reinwald]

Reference:
[1] http://www.diku.dk/hjemmesider/ansatte/torbenm/ICD/Register.pdf

  was:
The cellwise (matrix-matrix as well as matrix-scalar) operations take 
significant amount of time while training Lenet. Here are few ways to improve 
the performance of cell-wise operations:
1. Inject in-place updates [1] (saving on zero-ing out the matrix).
2. Fused cell-wise operations (as an example, recently added axpy operations). 
3. Parallelize cellwise operations (initial investigation need to be conducted 
before proceeding in this direction especially in sparse case: 
https://github.com/apache/incubator-systemml/blob/master/src/main/java/org/apache/sysml/runtime/matrix/data/LibMatrixBincell.java#L274).

[~nakul02] [~mwdus...@us.ibm.com] [~prithvi_r_s] [~mboehm7] [~reinwald]

Reference:
[1] http://www.diku.dk/hjemmesider/ansatte/torbenm/ICD/Register.pdf


> Improve the performance of binary cell-wise operations
> --
>
> Key: SYSTEMML-824
> URL: https://issues.apache.org/jira/browse/SYSTEMML-824
> Project: SystemML
>  Issue Type: Task
>Reporter: Niketan Pansare
>
> The cellwise (matrix-matrix as well as matrix-scalar) operations take 
> significant amount of time while training Lenet. Here are few ways to improve 
> the performance of cell-wise operations:
> 1. Inject in-place updates [1] (saving on zero-ing out the matrix).
> 2. Fused cell-wise operations (as an example, recently added axpy operations: 
> https://github.com/apache/incubator-systemml/commit/b584aecf6b3a1eb96ff83b78cc3ad7c7c6d15baa).
>  
> 3. Parallelize cellwise operations (initial investigation need to be 
> conducted before proceeding in this direction especially in sparse case: 
> https://github.com/apache/incubator-systemml/blob/master/src/main/java/org/apache/sysml/runtime/matrix/data/LibMatrixBincell.java#L274).
> [~nakul02] [~mwdus...@us.ibm.com] [~prithvi_r_s] [~mboehm7] [~reinwald]
> Reference:
> [1] http://www.diku.dk/hjemmesider/ansatte/torbenm/ICD/Register.pdf



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (SYSTEMML-824) Improve the performance of binary cell-wise operations

2016-07-20 Thread Matthias Boehm (JIRA)

[ 
https://issues.apache.org/jira/browse/SYSTEMML-824?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15386580#comment-15386580
 ] 

Matthias Boehm commented on SYSTEMML-824:
-

just as a reminder: (1) and (3) have limited potential due to unchanged memory 
bandwidth requirements and output allocation. So a first step would be to 
re-evaluate the potential via experiments.  

> Improve the performance of binary cell-wise operations
> --
>
> Key: SYSTEMML-824
> URL: https://issues.apache.org/jira/browse/SYSTEMML-824
> Project: SystemML
>  Issue Type: Task
>Reporter: Niketan Pansare
>
> The cellwise (matrix-matrix as well as matrix-scalar) operations take 
> significant amount of time while training Lenet. Here are few ways to improve 
> the performance of cell-wise operations:
> 1. Inject in-place updates [1] (saving on zero-ing out the matrix).
> 2. Fused cell-wise operations (as an example, recently added axpy operations: 
> https://github.com/apache/incubator-systemml/commit/b584aecf6b3a1eb96ff83b78cc3ad7c7c6d15baa).
>  
> 3. Parallelize cellwise operations (initial investigation need to be 
> conducted before proceeding in this direction especially in sparse case: 
> https://github.com/apache/incubator-systemml/blob/master/src/main/java/org/apache/sysml/runtime/matrix/data/LibMatrixBincell.java#L274).
> [~nakul02] [~mwdus...@us.ibm.com] [~prithvi_r_s] [~mboehm7] [~reinwald]
> Reference:
> [1] http://www.diku.dk/hjemmesider/ansatte/torbenm/ICD/Register.pdf



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Resolved] (SYSTEMML-774) No check from LibMatrixDataGen for thread safe SparseBlock

2016-07-20 Thread Nakul Jindal (JIRA)

 [ 
https://issues.apache.org/jira/browse/SYSTEMML-774?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Nakul Jindal resolved SYSTEMML-774.
---
   Resolution: Fixed
 Assignee: Nakul Jindal
Fix Version/s: SystemML 0.11

Fixed by [PR 186|https://github.com/apache/incubator-systemml/pull/186]

> No check from LibMatrixDataGen for thread safe SparseBlock
> --
>
> Key: SYSTEMML-774
> URL: https://issues.apache.org/jira/browse/SYSTEMML-774
> Project: SystemML
>  Issue Type: Bug
>  Components: Runtime
>Reporter: Nakul Jindal
>Assignee: Nakul Jindal
> Fix For: SystemML 0.11
>
>
> The SparseBlock implementations {{SparseBlockCSR}} and {{SparseBlockCOO}} are 
> not thread safe.
> When {{MatrixBlock.DEFAULT_SPARSEBLOCK}} is set to {{SparseBlock.Type.CSR}}, 
> and a {{rand()}} method from DML is used to create a sparse matrix, like so:
> {{X = rand(rows=200, cols=1, min=0, max=4, pdf="uniform", sparsity=0.3)}}
> It crashes because {{LibMatrixDatagen.generateRandomMatrix(MatrixBlock, 
> RandomMatrixGenerator, long[], Well1024a, long, int )}} does not check if the 
> underlying SparseBlock implementation {{isThreadSafe}}.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (SYSTEMML-825) Fragile code in LibMatrixMult.matrixMultPermute

2016-07-20 Thread Nakul Jindal (JIRA)
Nakul Jindal created SYSTEMML-825:
-

 Summary: Fragile code in LibMatrixMult.matrixMultPermute
 Key: SYSTEMML-825
 URL: https://issues.apache.org/jira/browse/SYSTEMML-825
 Project: SystemML
  Issue Type: Bug
  Components: Runtime
Affects Versions: SystemML 0.10
Reporter: Nakul Jindal


The code in LibMatrixMult.matrixMultPermute (parallel version) is fragile. The 
output MatrixBlock type is set to being dense, yet in some code path it is 
assumed to be set to be sparse. 
[Comment on PR 
186|https://github.com/apache/incubator-systemml/pull/186#issuecomment-231011669]
 descibe the issue.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (SYSTEMML-825) Fragile code in LibMatrixMult.matrixMultPermute

2016-07-20 Thread Nakul Jindal (JIRA)

 [ 
https://issues.apache.org/jira/browse/SYSTEMML-825?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Nakul Jindal updated SYSTEMML-825:
--
Description: 
The code in LibMatrixMult.matrixMultPermute (parallel version) is fragile. The 
output MatrixBlock type is set to being dense, yet in some code path it is 
assumed to be set to be sparse. 
[Comment on PR 
186|https://github.com/apache/incubator-systemml/pull/186#issuecomment-231011669]
 descibes the issue.

  was:
The code in LibMatrixMult.matrixMultPermute (parallel version) is fragile. The 
output MatrixBlock type is set to being dense, yet in some code path it is 
assumed to be set to be sparse. 
[Comment on PR 
186|https://github.com/apache/incubator-systemml/pull/186#issuecomment-231011669]
 descibe the issue.


> Fragile code in LibMatrixMult.matrixMultPermute
> ---
>
> Key: SYSTEMML-825
> URL: https://issues.apache.org/jira/browse/SYSTEMML-825
> Project: SystemML
>  Issue Type: Bug
>  Components: Runtime
>Affects Versions: SystemML 0.10
>Reporter: Nakul Jindal
>
> The code in LibMatrixMult.matrixMultPermute (parallel version) is fragile. 
> The output MatrixBlock type is set to being dense, yet in some code path it 
> is assumed to be set to be sparse. 
> [Comment on PR 
> 186|https://github.com/apache/incubator-systemml/pull/186#issuecomment-231011669]
>  descibes the issue.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)