Presentation is loading. Please wait.

Presentation is loading. Please wait.

OCR Introspection EDT Characterization & Profiling Infrastructure Intel TG Team.

Similar presentations


Presentation on theme: "OCR Introspection EDT Characterization & Profiling Infrastructure Intel TG Team."— Presentation transcript:

1 OCR Introspection EDT Characterization & Profiling Infrastructure Intel TG Team

2 Overview Background Approach Current Methodology Initial Results Implementation & Interfaces Next Steps

3 Background Can we benefit from any ‘predictable behavior’ of EDTs ? –Code or data placement choices based on EDTs’ resource requirements –Programmer productivity tool (datablock partitioning, EDT functionality) Characterizing EDT behavior Exploiting this information at runtime

4 Approach Express EDT metrics as a function of size of data operated upon by EDT Use the above function at runtime to quickly estimate EDT’s resource requirements

5 Current Methodology Several simplifying assumptions –EDT behavior is consistent –Metrics can be expressed as polynomials –Sum of sizes of datablocks used as a proxy for size of data operated upon by EDT OCR App Raw EDT Metrics -Instruction Count -Floating Point Ops -Reads & Writes - Datablock sizes EDT Metrics Represented as polynomial function on sum of sizes of all datablocks used by an EDT Profiling header “edt1”, {polynomial coeffs}, “edt2”, {polynomial coeffs}, “edt3”, {polynomial coeffs}, Runtime Can use the projections to inform its heuristics LLVM Pass, Statistics Summarize, Best-fit Generate header Rebuild #include struct _profileStruct gProfilingTable[] = { {"mainEdt", 1, 1, 1, 1, 0.0, 0.0, 0.0, 0.0, (double []){229,}, (double []){16,}, (double []){2068,}, (double []){2632,}, 0, }, {"node_110_body", 2, 2, 2, 2, 0.0, 0.0, 0.0, 0.0, (double []){77620,25,}, (double []){0,0,}, (double []){14052,0,}, (double []){13432,1,}, 0, }, {"node_210_body", 2, 2, 3, 2, 0.0, 0.0, 0.0, 0.0, (double []){63115,0,}, (double []){0,0,}, (double []){-12838.4,0.853455,-1.40977e-05,}, (double []){28000,7.27596e-12,}, 0, }, {"node_220_body", 3, 3, 4, 2, 0.0, 0.0, 0.0, 0.0, (double []){113716,-0.0242976,2.13737e-07,}, (double []){7004.25,-0.00177152,1.55834e-08,}, (double []){33.7103,0.993679,-4.52053e- 07,3.38311e-12,}, (double []){- 3109.02,0.547309,}, 0, }, }; OCR: LLVM Pass, Statistics credit: Romain Cledat FP Ops = y = 0.33x^2 + 1.5x + 8000, x = sum(size_of(DB[i]))

6 Initial Results OCR Apps credit: Chih-Chieh Yang, Adam Smith (NAS), Roger Golliver (LULESH), Jamie Arteaga (SCF) Two phases Three modes

7 Implementation & Interfaces Profiling –On x86, LLVM-pass + OCR statistics hooks added by Romain –On FSim, hardware counters Data analysis –Offline tools for summarizing & best fit –Making them online will add to runtime overhead (how much?) Projections –Optional “profile.h” #include’d by OCR app Lists function name corresponding to each EDT with the polynomial coefficients of its metrics –Runtime picks it up during template creation –Runtime can use them when EDT is ready to run

8 Next Steps Cleanup the post-processing tools & integrate with OCR Using the projections –Code/data placement decisions –Reacting to temperature, failures Better projections –Polynomial functions not always accurate –Datablock reads vs. writes & stack accesses –Quantifying other metrics


Download ppt "OCR Introspection EDT Characterization & Profiling Infrastructure Intel TG Team."

Similar presentations


Ads by Google