Reduced-Precision Floa1ng-Point Analysis via Binary - - PowerPoint PPT Presentation

reduced precision floa1ng point analysis via binary
SMART_READER_LITE
LIVE PREVIEW

Reduced-Precision Floa1ng-Point Analysis via Binary - - PowerPoint PPT Presentation

Reduced-Precision Floa1ng-Point Analysis via Binary Modifica1on Mike Lam, UMD Jeff Hollingsworth, UMD Context Floa1ng-point arithme1c represents real


slide-1
SLIDE 1

Reduced-­‑Precision ¡ Floa1ng-­‑Point ¡Analysis ¡via ¡ Binary ¡Modifica1on ¡

Mike ¡Lam, ¡UMD ¡ Jeff ¡Hollingsworth, ¡UMD ¡

slide-2
SLIDE 2

Context ¡

2 ¡

Floa1ng-­‑point ¡arithme1c ¡represents ¡real ¡numbers ¡as ¡ ¡ (± ¡1.frac ¡× ¡2exp) ¡

– Sign ¡bit ¡ – Exponent ¡ – Significand ¡(“man1ssa” ¡or ¡“frac1on”) ¡

¡ ¡ ¡

¡

32 16 8 4

Significand ¡(23 ¡bits) ¡ Exponent ¡(8 ¡bits) ¡

Single ¡Precision ¡

32 64 16 8 4

Significand ¡(52 ¡bits) ¡ Exponent ¡(11 ¡bits) ¡

Double ¡Precision ¡

slide-3
SLIDE 3

Context ¡

3 ¡

  • Floa1ng-­‑point ¡is ¡ubiquitous ¡but ¡problema4c ¡

– Rounding ¡error ¡

  • Accumulates ¡aXer ¡many ¡opera1ons ¡
  • Not ¡always ¡intui1ve ¡(e.g., ¡non-­‑associa1ve) ¡
  • Naïve ¡approach: ¡higher ¡precision ¡

– Lower ¡precision ¡is ¡preferable ¡

  • Tesla ¡K20X ¡is ¡2.3X ¡faster ¡in ¡single ¡precision ¡
  • Xeon ¡Phi ¡is ¡2.0X ¡faster ¡in ¡single ¡precision ¡
  • Single ¡precision ¡uses ¡50% ¡of ¡the ¡memory ¡bandwidth ¡
slide-4
SLIDE 4

Research ¡Contribu1ons ¡

4 ¡

  • SoXware ¡framework ¡(CRAFT) ¡
  • Previous ¡work ¡

– Cancella1on ¡detec1on ¡[PARCO2012] ¡ – Mixed-­‑precision ¡configura1on ¡[ICS’13] ¡

  • Recent ¡work ¡

– Reduced-­‑precision ¡analysis ¡

  • Future ¡work ¡

2.7182818 284590452 353603... ¡

slide-5
SLIDE 5

Framework ¡

5 ¡

CRAFT: ¡Configurable ¡Run1me ¡Analysis ¡for ¡Floa1ng-­‑point ¡Tuning ¡

2.7182818 284590452 353603... ¡

slide-6
SLIDE 6

Framework ¡

6 ¡

  • Dyninst: ¡a ¡binary ¡analysis ¡library ¡

– Parses ¡executable ¡files ¡ ¡(Instruc1onAPI ¡& ¡ParseAPI) ¡ – Inserts ¡instrumenta1on ¡ ¡(DyninstAPI) ¡ – Supports ¡full ¡binary ¡modifica1on ¡ ¡(PatchAPI) ¡ – Rewrites ¡binary ¡executable ¡files ¡ ¡(SymtabAPI) ¡

  • XED ¡instruc1on ¡decoder ¡(from ¡Intel’s ¡Pin) ¡
slide-7
SLIDE 7

Framework ¡

7 ¡

  • CRAFT ¡framework ¡

– Dyninst-­‑based ¡binary ¡mutator ¡(C/C++) ¡ – Swing-­‑based ¡GUI ¡viewers ¡(Java) ¡ – Automated ¡search ¡scripts ¡(Ruby) ¡ – Over ¡30K ¡LOC ¡total ¡ – LGPL ¡on ¡Sourceforge: ¡ ¡ ¡sf.net/p/crafthpc ¡

slide-8
SLIDE 8

Cancella1on ¡Detec1on ¡

8 ¡

  • Loss ¡of ¡significant ¡digits ¡due ¡to ¡subtrac1on ¡
  • Cancella1on ¡detec1on ¡

– Instrument ¡every ¡addi1on ¡and ¡subtrac1on ¡ – Report ¡cancella1on ¡events ¡

2.491264 (7) 1.613647 (7) 2.491264 (7) 1.613647 (7)

  • 2.491252 (7) - 1.613647 (7)
  • 2.491252 (7) - 1.613647 (7)

0.000012 (2) 0.000000 (0) 0.000012 (2) 0.000000 (0) ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡(5 ¡digits ¡cancelled) ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡(all ¡digits ¡cancelled) ¡

slide-9
SLIDE 9

Mixed ¡Precision ¡

9 ¡

  • Frequent ¡opera1ons ¡use ¡single ¡precision ¡
  • Crucial ¡opera1ons ¡use ¡double ¡precision ¡

1: ¡ ¡LU ¡← ¡PA ¡ 2: ¡ ¡solve ¡Ly ¡= ¡Pb ¡ 3: ¡ ¡solve ¡Ux0 ¡= ¡y ¡ 4: ¡ ¡for ¡k ¡= ¡1, ¡2, ¡... ¡do ¡ 5: ¡rk ¡← ¡b ¡– ¡Axk-­‑1 ¡ 6: ¡solve ¡Ly ¡= ¡Prk ¡ 7: ¡solve ¡Uzk ¡= ¡y ¡ 8: ¡xk ¡← ¡xk-­‑1 ¡+ ¡zk ¡ 9: ¡check ¡for ¡convergence ¡ 10: ¡ ¡end ¡for ¡ Red ¡text ¡indicates ¡ double-­‑precision ¡ (all ¡other ¡steps ¡are ¡ single-­‑precision) ¡ Mixed-­‑precision ¡ linear ¡solver ¡

[Buqari ¡2008] ¡

50% ¡speedup ¡on ¡average ¡ (12X ¡in ¡special ¡cases) ¡

slide-10
SLIDE 10

Automated ¡Search ¡

10 ¡

slide-11
SLIDE 11

Automated ¡Search ¡

11 ¡

slide-12
SLIDE 12

Mixed ¡Precision: ¡Results ¡

12 ¡

Benchmark ¡

(name.CLASS) ¡

Candidate ¡ Instruc4ons ¡ % ¡Dynamic ¡ Replaced ¡

bt.A ¡ 6,262 ¡ 78.6 ¡ cg.A ¡ 956 ¡ ¡ ¡5.6 ¡ ep.A ¡ 423 ¡ 45.5 ¡ X.A ¡ 426 ¡ ¡ ¡0.2 ¡ lu.A ¡ 6,014 ¡ 57.4 ¡ mg.A ¡ 1,393 ¡ 36.6 ¡ sp.A ¡ 4,507 ¡ 30.5 ¡

slide-13
SLIDE 13

Mixed ¡Precision: ¡Conclusions ¡

13 ¡

  • Automated ¡analysis ¡can ¡illuminate ¡cancella1on ¡

behavior ¡

  • Automated ¡search ¡can ¡provide ¡precision-­‑level ¡

replacement ¡insights ¡

– S1ll ¡very ¡coarse-­‑grained ¡w/ ¡binary ¡decision-­‑making ¡

slide-14
SLIDE 14

Reduced ¡Precision ¡

14 ¡

  • Simulate ¡reduced ¡precision ¡with ¡trunca1on ¡

– Truncate ¡result ¡aXer ¡every ¡opera1on ¡ – Allows ¡zero ¡up ¡to ¡double ¡(64-­‑bit) ¡precision ¡ – Less ¡overhead ¡(fewer ¡added ¡opera1ons) ¡

  • Search ¡rou1ne ¡

– Iden1fies ¡component-­‑level ¡precision ¡requirements ¡

0 ¡ Single ¡ Double ¡ Single ¡ Double ¡

  • vs. ¡
slide-15
SLIDE 15

Reduced ¡Precision ¡

15 ¡

  • Faster ¡search ¡convergence ¡compared ¡to ¡

mixed-­‑precision ¡analysis ¡

Benchmark ¡ Original ¡ Wall ¡4me ¡(s) ¡ Speedup ¡ cg.A ¡ 1,305 ¡ 59.2% ¡ ep.A ¡ 978 ¡ 42.5% ¡ X.A ¡ 825 ¡ 50.2% ¡ lu.A ¡ 514,332 ¡ 86.7% ¡ mg.A ¡ 2,898 ¡ 66.0% ¡ sp.A ¡ 422,371 ¡ 44.1% ¡

slide-16
SLIDE 16

Reduced ¡Precision ¡

16 ¡

  • General ¡precision ¡requirement ¡profiles ¡

Low ¡sensi1vity ¡ High ¡sensi1vity ¡

slide-17
SLIDE 17

Reduced ¡Precision: ¡Results ¡ NAS ¡(top) ¡& ¡LAMMPS ¡(boqom) ¡

17 ¡

bt.A ¡ ¡(78.6%) ¡ chute ¡ mg.A ¡ ¡(36.6%) ¡ X.A ¡ ¡(0.2%) ¡ lj ¡ rhodo ¡

slide-18
SLIDE 18

Reduced ¡Precision: ¡Results ¡ NAS ¡mg.W ¡(incremental) ¡

18 ¡

>5.0% ¡-­‑ ¡4:66 ¡ >0.1% ¡-­‑ ¡15:45 ¡ >1.0% ¡-­‑ ¡5:93 ¡ >0.5% ¡-­‑ ¡9:45 ¡ >0.05% ¡-­‑ ¡23:60 ¡ Full ¡– ¡28:71 ¡

slide-19
SLIDE 19

CLAMR ¡

19 ¡

  • Cell-­‑based ¡Adap1ve ¡Mesh ¡Refinement ¡

– Los ¡Alamos ¡Na1onal ¡Lab ¡

slide-20
SLIDE 20

CLAMR ¡

20 ¡

  • Original ¡program ¡

– Mass ¡preserved ¡to ¡twelve ¡digits ¡ – Average ¡CPU ¡1me: ¡89.7s ¡

  • AXer ¡CRAFT-­‑assisted ¡conversion ¡

– Mass ¡preserved ¡to ¡seven ¡digits ¡ – CPU ¡1me ¡speedup ¡(7.3%) ¡ – Memory ¡usage ¡reduced ¡(~7%) ¡

  • AXer ¡GPU ¡mixed-­‑precision ¡rewrite ¡

– Up ¡to ¡4X ¡speed ¡improvement ¡in ¡certain ¡ subrou1nes ¡

slide-21
SLIDE 21

Reduced ¡Precision: ¡Conclusions ¡

21 ¡

  • Automated ¡analysis ¡can ¡iden1fy ¡fine-­‑grained ¡

precision ¡level ¡requirements ¡

  • Reduced-­‑precision ¡analysis ¡provides ¡results ¡more ¡

quickly ¡than ¡mixed-­‑precision ¡analysis ¡

slide-22
SLIDE 22

Future ¡Work ¡

22 ¡

  • Short ¡term ¡projects ¡+ ¡planned ¡collabora1ons ¡

– Visualiza1on/graphics ¡studies ¡(JMU) ¡ – Development ¡cycle ¡integra1on ¡

  • Mixed-­‑precision ¡feedback ¡in ¡IDE ¡
  • Correctness/accuracy ¡integra1on ¡tes1ng ¡

– Machine ¡learning ¡techniques ¡(UMD) ¡

  • Can ¡we ¡predict ¡low-­‑sensi1vity ¡por1ons ¡of ¡code? ¡

– Energy-­‑aware ¡analysis ¡(LLNL) ¡

  • Min-­‑maxing ¡energy/performance ¡with ¡a ¡hard ¡bound ¡
  • n ¡accuracy ¡

– Further ¡case ¡studies ¡(LANL, ¡JMU) ¡

slide-23
SLIDE 23

Future ¡Work ¡

23 ¡

  • Long ¡term ¡

– Direct ¡GPU ¡support ¡and/or ¡CUDA ¡implementa1on ¡ – Full ¡shadow ¡value ¡analysis ¡ – Compiler-­‑based ¡implementa1on ¡

  • Probably ¡LLVM ¡(see ¡Precimonious ¡for ¡similar ¡work) ¡

– Automa1c ¡program ¡transforma1ons ¡ – Program ¡modeling ¡and ¡verifica1on ¡

  • Guarantees ¡for ¡ALL ¡inputs ¡
  • Can ¡concolic ¡execu1on ¡help ¡here? ¡

– Probabilis1c ¡arithme1c ¡

slide-24
SLIDE 24

“Grand ¡Vision” ¡

24 ¡

  • A ¡suite ¡of ¡tools ¡and ¡analysis ¡techniques ¡

– Understand ¡floa1ng-­‑point ¡behavior ¡and ¡ precision-­‑level ¡profiles ¡ – Recommend ¡or ¡build ¡mixed-­‑precision ¡variants ¡

  • Preserve ¡accuracy ¡
  • Improve ¡performance ¡and ¡reduce ¡energy ¡use ¡

– Encourage ¡best ¡prac1ces ¡in ¡floa1ng-­‑point ¡code ¡

slide-25
SLIDE 25

Contact ¡Info ¡

25 ¡

  • ­‑ ¡Collaborators ¡-­‑ ¡

Jeff ¡Hollingsworth ¡(advisor) ¡and ¡Pete ¡Stewart ¡ ¡(UMD) ¡ Bronis ¡de ¡Supinski, ¡Maq ¡Legendre, ¡et ¡al. ¡ ¡(LLNL) ¡ Bob ¡Robey ¡and ¡Nathan ¡DeBardeleben ¡(LANL) ¡

¡

Email: ¡ ¡lam2mo ¡(at) ¡jmu.edu ¡ Personal ¡website: ¡ ¡blog.freearrow.com/about ¡

¡

CRAFT ¡website: ¡ ¡sf.net/p/crafthpc ¡

Intel ¡ XED2 ¡