Changes between Version 15 and Version 16 of DataParallel/Vectorisation


Ignore:
Timestamp:
Jan 27, 2009 11:44:57 AM (7 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 }}}