systemml-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Nakul Jindal (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (SYSTEMML-1216) implement local svd function
Date Sat, 26 Aug 2017 19:16:02 GMT

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

Nakul Jindal commented on SYSTEMML-1216:
----------------------------------------

Absolutely!
Good work with the local svd implementation.
Please also consider opening a PR for documenting the {{svd}} function at http://apache.github.io/systemml/dml-language-reference#linear-algebra-built-in-functions
To do so, please update https://github.com/apache/systemml/blob/master/docs/dml-language-reference.md


Here are some resource to get you started:
SVD documentation from cusolver:
http://docs.nvidia.com/cuda/cusolver/index.html#svd_examples

Example of adding the solve function for GPU:
https://github.com/apache/systemml/pull/476
(Some stuff has been updated since that PR in the GPU infrastructure).

The basic steps to adding a GPU implementation are as follows:
1. Enable GPU implementation from the HOPS level
Pick the appropriate class for your function ({{svd}}) and enable it from the {{isGPUEnabled}}
function. 
https://github.com/apache/systemml/blob/master/src/main/java/org/apache/sysml/hops/UnaryOp.java#L109

2. Adjust the appropriate cost if applicable in CostEstimator.
https://github.com/apache/systemml/blob/master/src/main/java/org/apache/sysml/hops/cost/CostEstimatorStaticRuntime.java#L997

3. Change GPUInstructionParser to have svd
{{src/main/java/org/apache/sysml/runtime/instructions/GPUInstructionParser.java}}

4. Make a new class class or use one of the existing classes in the {{src/main/java/org/apache/sysml/runtime/instructions/gpu}}
package which most appropriately fits {{svd}}

5. Add a GPU implementation for {{svd}} in {{src/main/java/org/apache/sysml/runtime/matrix/data/LibMatrixCUDA.java}}

6. Add tests in the {{src/test/java/org/apache/sysml/test/gpu}} package. Either by adding
a new class or adding the test to an existing class.

7. Thoroughly document any and all functions you add. 




> implement local svd function
> ----------------------------
>
>                 Key: SYSTEMML-1216
>                 URL: https://issues.apache.org/jira/browse/SYSTEMML-1216
>             Project: SystemML
>          Issue Type: New Feature
>            Reporter: Imran Younus
>            Assignee: Janardhan
>         Attachments: svd.txt
>
>
> SystemML currently provides several local matrix decompositions (qr(), lu(), cholesky()).
But local version of svd is missing. This is also needed to scalable SVD implementation.
> Also, implement local {{svd()}} function with {{cusolver}}.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Mime
View raw message