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