Changes between Version 15 and Version 16 of DataParallel/Vectorisation
- Timestamp:
- 01/27/09 03:44:57 (4 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
DataParallel/Vectorisation
v15 v16 4 4 5 5 This 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].''' 6 8 7 9 … … 106 108 * Transformation schemata 107 109 * 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 :-> b119 = forall e.120 Cls { clsFun :: !(e -> a -> b)121 , clsAFun :: !(PArr e -> PArr a -> PArr b)122 , clsEnv :: e123 }124 }}}125 with basic closure construction and application as126 {{{127 lam :: (a -> b) -> (a :-> b)128 lam f = Cls (const f) (const (mapP f)) ()129 130 ($:) :: (a :-> b) -> a -> b131 (Cls f _ e) $: x = f e x132 }}}
