systemml-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Matthias Boehm (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (SYSTEMML-2131) Add support for bias_add and bias_mult
Date Sun, 04 Mar 2018 02:11:00 GMT

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

Matthias Boehm commented on SYSTEMML-2131:
------------------------------------------

SystemML supports multiple execution types per operation - CP (control program, i.e., singlenode),
SPARK (distributed spark operations), and MR (distributed map reduce operations). By default,
we use a hybrid execution mode which selects these execution types automatically based on
the data size. However, in order to get good test coverage with moderate data size many of
our tests force all operations into singlenode and distributed operations.

> Add support for bias_add and bias_mult
> --------------------------------------
>
>                 Key: SYSTEMML-2131
>                 URL: https://issues.apache.org/jira/browse/SYSTEMML-2131
>             Project: SystemML
>          Issue Type: Sub-task
>            Reporter: Matthias Boehm
>            Priority: Major
>
> The functions bias_add and bias_mult (see http://apache.github.io/systemml/dml-language-reference
for the semantics) are language constructs and operators that aim to improve performance by
fusing element-wise operations with the replication of bias terms. For example, bias_add is
defined as follows:
> {code}
> ones = matrix(1, rows=1, cols=height*width);
> output = input + matrix(bias %*% ones, rows=1, cols=numChannels*height*width)
> {code}
> The code generation frameworks will makes such custom operators obsolete. However, because
bias_add and bias_mult are mapped to specific {{ConvolutionOp}} instances they are not yet
supported by the codegen framework.
> In detail this task entails:
> 1) Create new cell template tests in {{functions.codegen.CellwiseTmplTest}} for both
functions.
> 2) Modify the open/merge/close conditions for cell templates in {{codegen.template.TemplateCell}}

> 3) Create a new codegen primitive for a mapped index lookups (for each cell in input
we want to access a specific cell in the bias vector)
> 4) Modify the CPlan construction in {{codegen.template.TemplateCell}} to create binary
plus or multiply and the mapped index lookup for all ConvolutionOp instances of type {{BIAS_ADD}}
or {{BIAS_MULTIPLY}}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Mime
View raw message