Changes between Version 15 and Version 16 of DataParallel/Vectorisation


Ignore:
Timestamp:
Jan 27, 2009 11:44:57 AM (5 years ago)
Author:
chak
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • DataParallel/Vectorisation

    v15 v16  
    44 
    55This page describes our approach to implementing vectorisation by extending our earlier implementation of closure conversion.  A central aspect is the ability to mix modules compiled with vectorisation with modules compiled without vectorisation. 
     6 
     7  '''The following description is incomplete.  For a detailed account of vectorisation, see [http://www.cse.unsw.edu.au/~chak/papers/PLKC08.html].''' 
    68 
    79 
     
    106108 * Transformation schemata 
    107109 * Examples 
    108  
    109  
    110 ---- 
    111  
    112 === Old Material === 
    113  
    114 ==== Vectorised functions ==== 
    115  
    116 Vectorised functions use an explicit closure representation: 
    117 {{{ 
    118 data a :-> b  
    119   = forall e.  
    120       Cls { clsFun  :: !(e -> a -> b) 
    121           , clsAFun :: !(PArr e -> PArr a -> PArr b) 
    122           , clsEnv  :: e 
    123           } 
    124 }}} 
    125 with basic closure construction and application as 
    126 {{{ 
    127 lam :: (a -> b) -> (a :-> b) 
    128 lam f = Cls (const f) (const (mapP f)) () 
    129  
    130 ($:) :: (a :-> b) -> a -> b 
    131 (Cls f _ e) $: x = f e x 
    132 }}}