[
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)