Changes between Version 15 and Version 16 of DataParallel/WorkPlan


Ignore:
Timestamp:
Mar 10, 2009 6:36:36 AM (5 years ago)
Author:
chak
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • DataParallel/WorkPlan

    v15 v16  
    99 
    1010 * '''More expressive rewrite rules:''' Roman has some concrete ideas, which we need to discuss. 
     11 
     12 * What the status of using TH for generating library boilerplate? 
    1113 
    1214=== Milestones === 
     
    5456 * '''Desugaring comprehensions:''' The current desugaring of array comprehensions produces very inefficient code.  This needs to be improved.  In particular, the `map/crossMap` base case in `dotP` for `x<-xs` and use `zipWith` instead of `map/zip`. 
    5557 
    56  * '''Unlifted functions:''' For some scalar functions (especially numeric functions and functions operating on enumerations), it is easier to not lift them at all; rather than to lift them and then attempt to recover the original form with fusion and other optimisations.  An example is the `SumSq` benchmark, where we have `sumP (mapP (\x -> x * x) [:1..n:]`.  Here, we would rather not lift `\x -> x * x` at all.  Roman implemented a very simple form of this idea (which works for `SumSq`).  However, we would like this in a more general form, where named functions that remain unlifted are marked suitably, as clients of a function can only be unlifted if all functions it calls are already unlifted. 
     58 * '''Unlifted functions:''' For some scalar functions (especially numeric functions and functions operating on enumerations), it is easier to not lift them at all; rather than to lift them and then attempt to recover the original form with fusion and other optimisations.  An example is the `SumSq` benchmark, where we have `sumP (mapP (\x -> x * x) [:1..n:]`.  Here, we would rather not lift `\x -> x * x` at all.  Roman implemented a very simple form of this idea (which works for `SumSq`).  However, we would like this in a more general form, where named functions that remain unlifted are marked suitably, as clients of a function can only be unlifted if all functions it calls are already unlifted.  How much does that tie in with '''Selective vectorisation'''? 
    5759 
    5860Category:  ''Compile time'' (improve compile times): 
     
    8082Category: ''Infrastructure'' (fiddling with GHC's build system and similar infrastructure): 
    8183 
    82  * '''Template Haskell:''' Arrange for package DPH to be build in stage2, so that we can use TH to generate library boilerplate & rewrite the library to generate the boilerplate that's currently hardcoded. 
     84 * '''Template Haskell:''' Rewrite the library to generate the boilerplate that's currently hardcoded. 
    8385 
    8486---- 
     
    9294 * '''Benchmark status:''' Update and complete [wiki:DataParallel/BenchmarkStatus]; at the same time clean up the benchmark portion of the repo.  [Completed a first sweep through this with updated benchmark results for !SumSq, DotP, and SMVM, cleaned up code, and a much better idea of what the most important work items from now on are.] 
    9395 
     96 * '''Template Haskell:''' Arrange for package DPH to be build in stage2, so that we can use TH to generate library boilerplate. 
     97 
    9498 * '''New build system:''' Evaluate whether the preview of the new build system looks like it is what we want.  [The new build system seems fine and we should have no problem building package dph in stage2 either.] 
    9599