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

Matthias Boehm updated SYSTEMML-1288:
-------------------------------------
    Description: 
This task aims to add further codegen templates besides the existing 
SpoofCellwise, SpoofRowAggregate, and SpoofOuterProduct. 

1) SpoofMultiOutput: There are quite a number of scenarios where we have 
expressions like (a) sum(Y == check_min), sum(Y == check_max), or (b) 
overlapping expressions with large common subexpression, i.e., fusable 
operations over a shared input with multiple aggregation roots. Since 
SystemML's compiler/runtime only supports single-output operations (with very 
few exceptions), it would be beneficial to generate a single fused operator 
with a combined aggregate output, which is subsequently split via traditional 
right indexing operations. 

2) Row Templates: In addition to our row aggregate template we want to be able 
to fuse rowwise operations without aggregate in order to avoid unnecessary 
intermediates for expressions like B = (A <= rowMins(A)); C = B / rowSums (B), 
which should become a single operator instead of 4 scans and two matrix and two 
vector intermediates.

  was:
This task aims to add further codegen templates besides the existing 
SpoofCellwise, SpoofRowAggregate, and SpoofOuterProduct. 

1) SpoofMultiOutput: There are quite a number of scenarios where we have 
expressions like (a) sum(Y == check_min), sum(Y == check_max), or (b) 
overlapping expressions with large common subexpression, i.e., fusable 
operations over a shared input with multiple aggregation roots. Since 
SystemML's compiler/runtime only supports single-output operations (with very 
few exceptions), it would be beneficial to generate a single fused operator 
with a combined aggregate output, which is subsequently split via traditional 
right indexing operations. 


> Additional meta operator templates
> ----------------------------------
>
>                 Key: SYSTEMML-1288
>                 URL: https://issues.apache.org/jira/browse/SYSTEMML-1288
>             Project: SystemML
>          Issue Type: Sub-task
>          Components: Compiler, Runtime
>            Reporter: Matthias Boehm
>            Assignee: Matthias Boehm
>             Fix For: SystemML 1.0
>
>
> This task aims to add further codegen templates besides the existing 
> SpoofCellwise, SpoofRowAggregate, and SpoofOuterProduct. 
> 1) SpoofMultiOutput: There are quite a number of scenarios where we have 
> expressions like (a) sum(Y == check_min), sum(Y == check_max), or (b) 
> overlapping expressions with large common subexpression, i.e., fusable 
> operations over a shared input with multiple aggregation roots. Since 
> SystemML's compiler/runtime only supports single-output operations (with very 
> few exceptions), it would be beneficial to generate a single fused operator 
> with a combined aggregate output, which is subsequently split via traditional 
> right indexing operations. 
> 2) Row Templates: In addition to our row aggregate template we want to be 
> able to fuse rowwise operations without aggregate in order to avoid 
> unnecessary intermediates for expressions like B = (A <= rowMins(A)); C = B / 
> rowSums (B), which should become a single operator instead of 4 scans and two 
> matrix and two vector intermediates.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to