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 2017/04/10 04:26:41 UTC

[jira] [Updated] (SYSTEMML-1288) Additional meta operator template: MultiAggregate

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

Spoof MultiAggregate: 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. 

  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. 

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.

        Summary: Additional meta operator template: MultiAggregate  (was: Additional meta operator templates)

> Additional meta operator template: MultiAggregate
> -------------------------------------------------
>
>                 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. 
> Spoof MultiAggregate: 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. 



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