enhancing the role of inlining in effective interprocedural parallelization
Download
Skip this Video
Download Presentation
Enhancing the Role of Inlining in Effective Interprocedural Parallelization

Loading in 2 Seconds...

play fullscreen
1 / 40

Enhancing the Role of Inlining in Effective Interprocedural Parallelization - PowerPoint PPT Presentation


  • 100 Views
  • Uploaded on

Enhancing the Role of Inlining in Effective Interprocedural Parallelization. Jichi Guo, Mike Stiles Qing Yi, Kleanthis Psarris. Problem. Inter-procedural parallelization Parallel after inlining Gain more parallelizable loops Lost of parallelized loops

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Enhancing the Role of Inlining in Effective Interprocedural Parallelization' - irving


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
enhancing the role of inlining in effective interprocedural parallelization

Enhancing the Role of Inlining in Effective Interprocedural Parallelization

Jichi Guo, Mike Stiles

Qing Yi, KleanthisPsarris

problem
Problem
  • Inter-procedural parallelization
    • Parallel after inlining
      • Gain more parallelizable loops
      • Lost of parallelized loops
        • Inlining messes up caller / callee
      • Missed parallel opportunities
        • Inlining increases code complexity
slide3
Goal
  • Keep the gain parallelizable loops
  • Prevent the lost parallelism
  • Discover the missed opportunities
solution
Solution
  • Summarize the code using annotation
    • Express the underlying information
  • Inline the annotation before parallelization
    • Pass the summarized information to the compiler
  • Reverse-inline after parallelization
    • Revert inlining side effects
    • Maintain equivalence
outline
Outline
  • Innovations
  • Problems of parallel + inline strategy
  • Annotation language
  • Annotation-based inlining technique
  • Experiments
  • Summary
outline1
Outline
  • Innovations
  • Problems of parallel + inline strategy
  • Annotation language
  • Annotation-based inlining technique
  • Experiments
  • Summary
problems of parallel inlining
Problems of parallel + inlining
  • Parallel + inlining
    • Conventional inlining with heuristics and pre-transformations
      • Heuristics: code size
      • Transformations: linearization, forward substitution
    • Intra-procedural loop parallelization
      • Fortran do-all loop
  • Goal
    • Gain loops in caller
  • Problems
    • Lost loops in caller / callee
    • Missed loops in caller
problems of parallel inlining1
Problems of parallel + inlining
  • Lost of parallelizable loops in caller/callee
    • Transformations that cause the lost
      • Forward substitution
      • Linearization
  • Forward substitution of non-linear subscripts
    • Create indirect array references
  • Linearization of array dimensions
    • Mess up array shapes
problems of parallel inlining2
Problems of parallel + inlining
  • Forward substitution of non-linear subscripts
    • Create indirect array references

X2(I) ⇒ T(IX(7) + I)

Y2(I) ⇒ T(IX(8) + I)

Z2(I) ⇒ T(IX(9) + I)

problems of parallel inlining3
Problems of parallel + inlining
  • Linearization of array dimensions
    • Mess up array shapes

PP(i, j, k) ⇒ PP(i + j*4 + k*16)

problems of parallel inlining4
Problems of parallel + inlining
  • Missed parallelizable loops in caller
    • Coding styles that cause the lost
      • Opaque compositional subroutines
        • A calls B, B calls C, C calls D, …
      • Array access
        • When it is difficult to determine which part is killed
      • Debugging and Error Checking
        • Statement that breaks the dependency is never executed
          • I/O statements
      • Indirect array references
        • ID=IDX(I), X = A(ID)
problems of parallel inlining5
Problems of parallel + inlining
  • Opaque compositional subroutines
    • A calls B, B calls C, C calls D, …
problems of parallel inlining6
Problems of parallel + inlining
  • Array access
    • Difficult to determine

which part is killed

CTR computed at runtime

problems of parallel inlining7
Problems of parallel + inlining
  • Debugging and Error Checking
    • Statement that breaks the dependency is never executed
      • I/O statements
problems of parallel inlining8
Problems of parallel + inlining
  • Indirect array references

IN=>NODE

NODE=>IREL

IREL=>RHSB

outline2
Outline
  • Innovations
  • Problems of parallel + inline strategy
  • Annotation language
  • Annotation-based inlining technique
  • Experiments
  • Summary
the annotation language
The annotation language
  • Goal
    • Summarize information
    • Avoid ambiguity
the annotation language1
The annotation language
  • Restricted grammar
  • Special operators
  • Writing annotations
the annotation language2
The annotation language
  • Restricted grammar
    • Do-all loop only
    • No goto
the annotation language3
The annotation language
  • Special operators

y = operator(x1, x2, …, xn)

Purpose: abstract relation

    • Unknown operator
      • Relation is unknown
        • Generic functions
    • Unique operator
      • Relation is one-to-one, from X to Y
the annotation language4
The annotation language
  • Writing annotations
    • Eliminating adverse side effects
      • Preserve caller and callee if inlining breaks the dependency
    • Summarize opaque subroutines
      • Eliminate nested function calls
    • Array access
      • Specify exact range get read/modified
    • Debugging and error handling
      • Aggressive strategy: ignore checking statements
    • Indirect array references
      • Discover unique relation
the annotation language5
The annotation language
  • Summarize opaque subroutines
    • Eliminate nested function calls
the annotation language6
The annotation language
  • Array access
    • Specify exact range get read/modified
the annotation language7
The annotation language
  • Debugging and error handling
    • Aggressive strategy: ignore checking statements
the annotation language8
The annotation language
  • Indirect array references
    • Discover unique relation
outline3
Outline
  • Innovations
  • Problems of parallel + inline strategy
  • Annotation language
  • Annotation-based inlining technique
  • Experiments
  • Summary
annotation based inlining
Annotation-based inlining
  • Goal
    • Pass annotated information to the compiler
    • Eliminate inlining side effects
  • Flow
    • Inline before parallelization
    • Reverse-inlining after parallelization
    • Verify and evaluate at last
  • Implementation
    • POLARIS compiler for parallelization
    • ROSE compiler for parsing
    • POET transformer
    • PERFECT benchmark
annotation based inlining1
Annotation-based inlining
  • Workflow
    • Annotation inlining⇒ Parallelization ⇒ Reverse-inlining
annotation based inlining2
Annotation-based inlining
  • Inlining annotation
    • Steps
      • Annotation ⇒ source language
        • Translating special operators
      • Inlinining generated source language
        • Avoiding linearization
    • Translating special operators
      • Unknown: using uninitialized global arrays
      • Unique: using linear expression
    • Avoiding linearization
annotation based inlining3
Annotation-based inlining
  • Inlining annotation
annotation based inlining4
Annotation-based inlining
  • Parallelize do-all loops
annotation based inlining6
Annotation-based inlining
  • Reverse inlining is indispensible
    • Inlinining is restored to function call
      • Avoid lost of parallelism in caller / callee
      • Enable abstraction operators (unknown, unique)
annotation based inlining7
Annotation-based inlining
  • Verification and evaluation
    • Correctness, Efficiency, and Generality
outline4
Outline
  • Innovations
  • Problems of parallel + inline strategy
  • Annotation language
  • Annotation-based inlining technique
  • Experiments
  • Summary
experiment
Experiment
  • Purpose
    • What does conventional lining bring to parallelization
      • Gain?
      • Lost?
      • Missed?
    • How good is annotation-based inlining to avoid above issues
  • Design
    • PERFECT benchmarks (except SPEC77)
    • Two machines
      • 8 cores Intel Mac
      • 4 cores AMD Operon
    • End compiler
      • GFortran 4.2.1
      • IFort 11.1
  • Result
    • Count of Loops
    • Performance
experiment1
Experiment
  • Result: Loops
    • Conventional inlining
      • Having loss
    • Annotation-based inlining
      • No loss, more gain
experiment2
Experiment
  • Result: Performance
    • Average speedup

limited

    • Annot-based inlining

always better

summary
Summary
  • Inter-procedural parallelization
  • Summarize effects of conventional inlining
    • Gain
    • Lost
    • Missed
  • Propose annotation-based inlining
    • Annotation summary
    • Enhanced inlining strategy
    • Reverse inlining
thanks

Thanks!

Questions?

ad