You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@systemml.apache.org by "Matthias Boehm (JIRA)" <ji...@apache.org> on 2018/02/28 21:42:00 UTC

[jira] [Updated] (SYSTEMML-2131) Add support for bias_add and bias_mult

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

Matthias Boehm updated SYSTEMML-2131:
-------------------------------------
    Description: 
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}}


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