[
https://issues.apache.org/jira/browse/SYSTEMML-1719?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Matthias Boehm updated SYSTEMML-1719:
-------------------------------------
Description:
There are a number of scenarios, where the code generator currently produces
suboptimal plans due to missing common subexpression elimination. This happens
commonly for multi-aggregates:
{code}
public final class TMP32 extends SpoofMultiAggregate {
public TMP32() {
super(AggOp.SUM,AggOp.SUM);
}
protected void genexec(double a, SideInput[] b, double[] scalars, double[] c,
int m, int n, int rowIndex, int colIndex) {
double TMP26 = getValue(b[1], rowIndex);
double TMP27 = getValue(b[0], rowIndex);
double TMP28 = TMP26 + scalars[0] * TMP27;
double TMP29 = TMP28 * TMP28;
double TMP30 = getValue(b[0], rowIndex);
double TMP31 = TMP30 * a;
c[0] += TMP29;
c[1] += TMP31;
}
}
{code}
Beside these scenarios, common subexpression elimination would also help to
achieve higher plan cache hit rates.
> Common subexpression elimination for codegen plans
> --------------------------------------------------
>
> Key: SYSTEMML-1719
> URL: https://issues.apache.org/jira/browse/SYSTEMML-1719
> Project: SystemML
> Issue Type: Sub-task
> Components: Compiler, Runtime
> Reporter: Matthias Boehm
> Fix For: SystemML 0.14
>
>
> There are a number of scenarios, where the code generator currently produces
> suboptimal plans due to missing common subexpression elimination. This
> happens commonly for multi-aggregates:
> {code}
> public final class TMP32 extends SpoofMultiAggregate {
> public TMP32() {
> super(AggOp.SUM,AggOp.SUM);
> }
> protected void genexec(double a, SideInput[] b, double[] scalars, double[]
> c, int m, int n, int rowIndex, int colIndex) {
> double TMP26 = getValue(b[1], rowIndex);
> double TMP27 = getValue(b[0], rowIndex);
> double TMP28 = TMP26 + scalars[0] * TMP27;
> double TMP29 = TMP28 * TMP28;
> double TMP30 = getValue(b[0], rowIndex);
> double TMP31 = TMP30 * a;
> c[0] += TMP29;
> c[1] += TMP31;
> }
> }
> {code}
> Beside these scenarios, common subexpression elimination would also help to
> achieve higher plan cache hit rates.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)