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)