Details
-
Sub-task
-
Status: Closed
-
Major
-
Resolution: Done
-
None
-
None
Description
This task aims to add further codegen templates besides the existing SpoofCellwise, SpoofRowAggregate, SpoofOuterProduct, SpoofMultiAggregate.
Rowwise Templates: In addition to our row aggregate template (which supports rowwise column aggregations) we want to be able to fuse arbitrary rowwise operations with and 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. Similar to our existing SpoofCellwise template (which supports no aggregation, row aggregation, and full aggregation), this SpoofRowwise template should support no aggregation, row aggregation, and column aggregation.