Uploaded image for project: 'SystemDS'
  1. SystemDS
  2. SYSTEMDS-2065 Code generation for operator fusion v3
  3. SYSTEMDS-2120

Improve codegen optimizer (pruning effectiveness)

    XMLWordPrintableJSON

Details

    • Sub-task
    • Status: Closed
    • Major
    • Resolution: Done
    • None
    • SystemML 1.1
    • None
    • None

    Description

      The codegen optimizer applies various techniques to prune the search space, including the partitioning into independent problems, the restriction to interesting points, as well as cost-based and structural pruning. These techniques work very well for most use case rendering the codegen overhead negligible. However, there are still exceptions where the additional compilation overhead leads to a slowdown. One of these examples is lenet, the below codegen statistics are obtained from 1000 iterations over mnist60k.

      HOP DAGs recompiled (PRED, SB): 0/1154.
      HOP DAGs recompile time:        237.579 sec.
      Codegen compile (DAG,CP,JC):    1176/17450/36.
      Codegen enum (ALLt/p,EVALt/p):  1064354993445/16387318/11342971/11331811.
      Codegen compile times (DAG,JC): 234.174/0.835 sec.
      Codegen plan cache hits:        17408/17444.
      

      Pruning reduced the number of plans from > 1 trillion to 11 million, which is still too high causing an overhead of 234s for a total execution time of 425s.

      Attachments

        Activity

          People

            mboehm7 Matthias Boehm
            mboehm7 Matthias Boehm
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: