high performance embedded high performance embedded
play

High-Performance Embedded High-Performance Embedded - PowerPoint PPT Presentation

High-Performance Embedded High-Performance Embedded Systems-on-a-Chip Systems-on-a-Chip Sanjay Rajopadhye Sanjay Rajopadhye Computer Science, Colorado State Computer Science, Colorado State University University Lecture 10: Alpha Lecture


  1. High-Performance Embedded High-Performance Embedded Systems-on-a-Chip Systems-on-a-Chip Sanjay Rajopadhye Sanjay Rajopadhye Computer Science, Colorado State Computer Science, Colorado State University University Lecture 10: Alpha Lecture 10: Alpha

  2. 2 Outline • Introduction • A LPHA Syntax • (Denotational) Semantics • Substitution, Normalization, & . . . • Change of Basis

  3. 3 Introduction • Functional (equational, single-assignment, . . . ) • Declarative • Polyhedral Domains • Systems of Affine Recurrences • Reductions • Data-Parallel

  4. 4 The Essence of Data Parallelism • Collections of elementary data objects • Pointwise Operations • Alignment of different collections • Conditional operations on (parts of) collections • Reductions/Scans of associative and commutative operators

  5. 5 A LPHA Syntax (BNF) system � Name � : � Domain � ( [ � Var �∗ : � Domain � of � Type � ] ∗ ) returns ( [ � Var �∗ : � Domain � of � Type � ] ∗ ) var [ � Var �∗ : � Domain � of � Type � ] ∗ let [ � Var � = � Expression � ] ∗ tel

  6. 6 Alpha Domains • Dual Representation of polyhedra: finite number of inequalities (constraints), or finite number of generators • Alpha (external) syntax: {� Idx �∗ | [ � IdExpr � >= � IdExpr � ] ∗ } • Internally, both representations are maintained

  7. 7 Alpha Expression Syntax • � Var �| � Const � Atomic • � Expression � op � Expression � Pointwise Ops • � Domain � : � Expression � Restriction • case [ � Expression � ] ∗ esac Case • � Expression � . � Dep � Affine Dependency ( � Idx � ∗ -> � IdExpr � ∗ ) where � Dep � is • reduce (op, � Dep � , � Expression � ) Reduction

  8. 8 Example (Fibonacci) system FibSys : { N| 1<=N } () returns(F : integer ); var Fib : { i | 1 <= i <= N } of integer let Fib = case { i| i<=2 } : 1.(i -> ) ; { i| i>=3 } : Fib.(i -> i-1) + Fib.(i -> i-2) ; esac ; F = Fib.( ->N) ; tel ;

  9. 9 Outline • Introduction • A LPHA Syntax • (Denotational) Semantics • Substitution, Normalization, & . . . • Change of Basis

  10. 10 Semantics of A LPHA Expressions • Each expression denotes a function from a domain, D to a � Type � (real, integer or boolean) • The Semantic function is compositional, and straightforward (eg, A + B denotes the sum of A and B ) . . . • Domains too are straightforward • . . . except for affine dependency and reductions

  11. 11 Domains of A LPHA Expressions D ( c ) = Z 0 • consts, vars D ( V ) = Dom ( V ) • ops D ( e 1 op e 2 ) = D ( e 1 ) ∩ D ( e 2 ) • restriction D ( D : e ) = D ∩ D ( e ) D ( case e 1 ; .. ; e n ; esac ) = � n • case i =1 D ( e i )

  12. 12 Affine Dependency • Q: What does the expression e. ( z → f ( z )) mean? • A: An expression whose value at z is the same as the value of e at f ( z ) , for example: Y = X.(i,j -> i) or Y[i,j] = X[i] • Where is it defined? D ( e. ( z → f ( z ))) = f − 1 ( D ( e ))

  13. 13 Reductions • Q: What does reduce ( ⊕ , ( z → f ( z )) , e ) mean (and where is it defined)? • A1: Its domain is the projection of D ( e ) , the domain of e , by f : D [ reduce ( ⊕ , ( z → f ( z ) , e ))] = f ( D ( e )) • A2: Its value at some z ′ in this domain is the result of applying ⊕ to the vlaues of e at all points that are mapped to z ′ by f

  14. 14 Outline • Introduction • A LPHA Syntax • (Denotational) Semantics • Substitution, Normalization, & . . . • Change of Basis

  15. 15 Substitution substituteInDef[Fib, Fib, 1]; show[] system FibSys : { N| 1<=N } () returns(F : integer ); var Fib : { i | 1 <= i <= N } of integer let Fib = case { i| i<=2 } : 1.(i -> ) ; { i| i>=3 } : case { i | i<=2 } :1.(i->); { i | 3<=i } :Fib.(i->i-1) + Fib.(i->i-2); esac .(i -> i-1) +Fib.(i -> i-2) ; esac ; F = Fib.( ->N) ; tel ;

  16. 16 Normalization: syntax of a normal expression • � BasicExpr � ::= � Var �| � Const �| � Var � . � Dep � | � Const � . � Dep � • � InnerExpr � ::= � BasicExpr �| � BasicExpr � op � InnerExpr � • � NormalExpr � ::= – � InnerExpr �| � Domain � : � InnerExpr �| – case [ � InnerExpr � ] ∗ esac – case [ � Domain � : � InnerExpr � ] ∗ esac

  17. 17 Normalization Rules (subset) No. Replace By Comments if f ( z ) = z e.f e 1 ( e 1 ⊕ e 2 ) .f ( e 1 .f ) ⊕ ( e 2 .f ) 2 e ⊕ 3 case case e 1 ; e ⊕ e 1 ; . . . . . . e n ; e ⊕ e n ; esac esac

  18. 18 Some More Rules (subset) No. Replace By Comments ( D : e 1 ) ⊕ e 2 D : ( e 1 ⊕ e 2 ) 4 e 1 ⊕ ( D : e 2 ) D : ( e 1 ⊕ e 2 ) 5 ( e.f 1 ) .f 2 f = f 1 ◦ f 2 e.f 6 D 1 : ( D 2 : e ) D : E D = D 1 ∩ D 2 7 D ′ : ( e.f ) D ′ = f − 1 ( D ) ( D : e ) .f 8

  19. 19 Normalization, example normalize[]; show[] system FibSys : { N| 1<=N } () returns(F : integer ); var Fib : { i | 1 <= i <= N } of integer let Fib = case { i| i<=2 } : 1.(i -> ) ; { i| i=3 } : 1.(i ->) + Fib.(i -> i-2) ; { i| i>=4 } : Fib.(i -> i-2) + Fib.(i -> i-3) + Fib.(i -> i-2) ; esac ; F = Fib.( ->N) ; tel ;

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend