An SMT Based Method for Optimizing Arithmetic Computations ... · fixed-point linear arithmetic...
Transcript of An SMT Based Method for Optimizing Arithmetic Computations ... · fixed-point linear arithmetic...
![Page 1: An SMT Based Method for Optimizing Arithmetic Computations ... · fixed-point linear arithmetic computations in embedded software code –Effective in reducing the required bit-width](https://reader034.fdocuments.net/reader034/viewer/2022042405/5f1d4271d7168c75a16108ea/html5/thumbnails/1.jpg)
An SMT Based Method for
Optimizing Arithmetic Computations
in Embedded Software Code
Hassan Eldib and Chao Wang
FMCAD, October 22, 2013
![Page 2: An SMT Based Method for Optimizing Arithmetic Computations ... · fixed-point linear arithmetic computations in embedded software code –Effective in reducing the required bit-width](https://reader034.fdocuments.net/reader034/viewer/2022042405/5f1d4271d7168c75a16108ea/html5/thumbnails/2.jpg)
The Dream
• Having a tool that automatically synthesizes
the optimum version of a software program.
22-Oct-13 Hassan Eldib and Chao Wang 2/35
![Page 3: An SMT Based Method for Optimizing Arithmetic Computations ... · fixed-point linear arithmetic computations in embedded software code –Effective in reducing the required bit-width](https://reader034.fdocuments.net/reader034/viewer/2022042405/5f1d4271d7168c75a16108ea/html5/thumbnails/3.jpg)
Embedded Software
22-Oct-13 Hassan Eldib and Chao Wang 3/35
![Page 4: An SMT Based Method for Optimizing Arithmetic Computations ... · fixed-point linear arithmetic computations in embedded software code –Effective in reducing the required bit-width](https://reader034.fdocuments.net/reader034/viewer/2022042405/5f1d4271d7168c75a16108ea/html5/thumbnails/4.jpg)
Objective
• Synthesizing an optimal version of the C code
with fixed-point linear arithmetic computation
for embedded devices.
– Minimizing the bit-width.
– Maximizing the dynamic
range.
22-Oct-13 Hassan Eldib and Chao Wang 4/35
![Page 5: An SMT Based Method for Optimizing Arithmetic Computations ... · fixed-point linear arithmetic computations in embedded software code –Effective in reducing the required bit-width](https://reader034.fdocuments.net/reader034/viewer/2022042405/5f1d4271d7168c75a16108ea/html5/thumbnails/5.jpg)
Motivating Example
• Compute average of A and B on a microcontroller with signed 8-bit fixed-point
• Given: A, B ∈ [-20, 80].
•𝑨+𝑩
𝟐
•𝑨
𝟐+
𝑩
𝟐
• B + 𝑨−𝑩
𝟐 has neither overflow nor truncation errors.
22-Oct-13 Hassan Eldib and Chao Wang 5/35
may have overflow errors.
may have truncation errors.
![Page 6: An SMT Based Method for Optimizing Arithmetic Computations ... · fixed-point linear arithmetic computations in embedded software code –Effective in reducing the required bit-width](https://reader034.fdocuments.net/reader034/viewer/2022042405/5f1d4271d7168c75a16108ea/html5/thumbnails/6.jpg)
Bit-width versus Range
• Larger range requires a larger bit-width.
• Decreasing the bit-width, will reduce the range.
22-Oct-13 Hassan Eldib and Chao Wang 6/35
![Page 7: An SMT Based Method for Optimizing Arithmetic Computations ... · fixed-point linear arithmetic computations in embedded software code –Effective in reducing the required bit-width](https://reader034.fdocuments.net/reader034/viewer/2022042405/5f1d4271d7168c75a16108ea/html5/thumbnails/7.jpg)
Fixed-point Representation
• Range: -128 ↔ 127
• Resolution = 1
22-Oct-13 Hassan Eldib and Chao Wang 7/35
Representations for 8-bit fixed-point numbers
• Range : -16 ↔ 15.875
• Resolution = 1/8
Range ∝ Bit-width
Resolution ∝ Bit-width
![Page 8: An SMT Based Method for Optimizing Arithmetic Computations ... · fixed-point linear arithmetic computations in embedded software code –Effective in reducing the required bit-width](https://reader034.fdocuments.net/reader034/viewer/2022042405/5f1d4271d7168c75a16108ea/html5/thumbnails/8.jpg)
22-Oct-13 Hassan Eldib and Chao Wang 8/35
Problem Statement
Range & resolution of the input variables: A -1000 3000
res. 1/4
B -1000 3000
res. 1/4
…
Program:
Optimized program:
![Page 9: An SMT Based Method for Optimizing Arithmetic Computations ... · fixed-point linear arithmetic computations in embedded software code –Effective in reducing the required bit-width](https://reader034.fdocuments.net/reader034/viewer/2022042405/5f1d4271d7168c75a16108ea/html5/thumbnails/9.jpg)
Problem Statement
• Given
– The C code with fixed-point linear arithmetic computation
– The range and resolution of all input variables
• Synthesize the optimized C code with
– Reduced bit-width with same input range, or
– Larger input range with the same bit-width
22-Oct-13 Hassan Eldib and Chao Wang 9/35
![Page 10: An SMT Based Method for Optimizing Arithmetic Computations ... · fixed-point linear arithmetic computations in embedded software code –Effective in reducing the required bit-width](https://reader034.fdocuments.net/reader034/viewer/2022042405/5f1d4271d7168c75a16108ea/html5/thumbnails/10.jpg)
SMT-based Inductive Program Synthesis
22-Oct-13 Hassan Eldib and Chao Wang 10/35
![Page 11: An SMT Based Method for Optimizing Arithmetic Computations ... · fixed-point linear arithmetic computations in embedded software code –Effective in reducing the required bit-width](https://reader034.fdocuments.net/reader034/viewer/2022042405/5f1d4271d7168c75a16108ea/html5/thumbnails/11.jpg)
Some Related Work
• Jha, 2011 – Use an SMT solver to choose the best fixed-point representation in
order to reduce error. No new programs are synthesized.
• Majumdar, Saha, and Zamani, 2012 – Use a mixed integer linear programing (MILP) solver to minimize the
error bound by only changing the fixed-point representation.
• Schkufza, Sharma, and Aiken, 2013 – Use a compiler based method for optimization, which is an exhaustive
approach.
22-Oct-13 Hassan Eldib and Chao Wang 11/35
![Page 12: An SMT Based Method for Optimizing Arithmetic Computations ... · fixed-point linear arithmetic computations in embedded software code –Effective in reducing the required bit-width](https://reader034.fdocuments.net/reader034/viewer/2022042405/5f1d4271d7168c75a16108ea/html5/thumbnails/12.jpg)
SMT-based Inductive Program Synthesis
22-Oct-13 Hassan Eldib and Chao Wang 12/35
![Page 13: An SMT Based Method for Optimizing Arithmetic Computations ... · fixed-point linear arithmetic computations in embedded software code –Effective in reducing the required bit-width](https://reader034.fdocuments.net/reader034/viewer/2022042405/5f1d4271d7168c75a16108ea/html5/thumbnails/13.jpg)
Step 1: Finding a Candidate Program
• Create the most general AST that can represent any
arithmetic equation, with reduced bit-width.
• Use SMT solver to find a solution such that
– For some test inputs (samples),
– output of the AST is the same as the desired computation
22-Oct-13 Hassan Eldib and Chao Wang 13/35
![Page 14: An SMT Based Method for Optimizing Arithmetic Computations ... · fixed-point linear arithmetic computations in embedded software code –Effective in reducing the required bit-width](https://reader034.fdocuments.net/reader034/viewer/2022042405/5f1d4271d7168c75a16108ea/html5/thumbnails/14.jpg)
SMT-based Solution
• SMT encoding for the general equation AST structure
– Each Op node can any operation from *, +, -, >> or <<.
– Each L node can be an input variable or a constant value.
• SMT Solver finds a solution by equating the AST output to that
of the desired program
22-Oct-13 Hassan Eldib and Chao Wang 14/35
Fig. General Equation AST.
![Page 15: An SMT Based Method for Optimizing Arithmetic Computations ... · fixed-point linear arithmetic computations in embedded software code –Effective in reducing the required bit-width](https://reader034.fdocuments.net/reader034/viewer/2022042405/5f1d4271d7168c75a16108ea/html5/thumbnails/15.jpg)
• Ψ = Φ𝑝𝑟𝑜𝑔 ⋀ Φ𝐴𝑆𝑇 ⋀ Φ𝑠𝑎𝑚𝑒𝐼 ⋀ Φ𝑠𝑎𝑚𝑒𝑂 ⋀Φ𝑖𝑛 ⋀ Φ𝑏𝑙𝑜𝑐𝑘
– Φ𝑝𝑟𝑜𝑔 : Desired input program to be optimized.
– Φ𝐴𝑆𝑇 : General AST with reduced bit-width.
– Φ𝑠𝑎𝑚𝑒𝐼 : Same input values.
– Φ𝑠𝑎𝑚𝑒𝑂 Same output value.
– Φ𝑖𝑛 : Test cases (inputs).
– Φ𝑏𝑙𝑜𝑐𝑘 : Blocked solutions.
SMT Encoding
15/35 22-Oct-13 Hassan Eldib and Chao Wang
![Page 16: An SMT Based Method for Optimizing Arithmetic Computations ... · fixed-point linear arithmetic computations in embedded software code –Effective in reducing the required bit-width](https://reader034.fdocuments.net/reader034/viewer/2022042405/5f1d4271d7168c75a16108ea/html5/thumbnails/16.jpg)
SMT-based Solution (an example)
𝐴
2+
𝐵
2 ≡
22-Oct-13 Hassan Eldib and Chao Wang 16/35
![Page 17: An SMT Based Method for Optimizing Arithmetic Computations ... · fixed-point linear arithmetic computations in embedded software code –Effective in reducing the required bit-width](https://reader034.fdocuments.net/reader034/viewer/2022042405/5f1d4271d7168c75a16108ea/html5/thumbnails/17.jpg)
SMT-based Inductive Program Synthesis
22-Oct-13 Hassan Eldib and Chao Wang 17/35
![Page 18: An SMT Based Method for Optimizing Arithmetic Computations ... · fixed-point linear arithmetic computations in embedded software code –Effective in reducing the required bit-width](https://reader034.fdocuments.net/reader034/viewer/2022042405/5f1d4271d7168c75a16108ea/html5/thumbnails/18.jpg)
Step 2: Verifying the Solution
• Is the program good for all possible inputs?
– Yes, we found an optimized program
– No, block this (bad) solution, and try again
22-Oct-13 Hassan Eldib and Chao Wang 18/35
![Page 19: An SMT Based Method for Optimizing Arithmetic Computations ... · fixed-point linear arithmetic computations in embedded software code –Effective in reducing the required bit-width](https://reader034.fdocuments.net/reader034/viewer/2022042405/5f1d4271d7168c75a16108ea/html5/thumbnails/19.jpg)
• Φ = Φ𝑝𝑟𝑜𝑔 ⋀ Φ𝑠𝑜𝑙 ⋀ Φ𝑠𝑎𝑚𝑒𝐼 ⋀ Φ𝑑𝑖𝑓𝑓𝑂 ⋀Φ𝑟𝑎𝑛𝑔𝑒𝑠 ⋀ Φ𝑟𝑒𝑠
– Φ𝑝𝑟𝑜𝑔 : Desired input program to be optimized.
– 𝚽𝒔𝒐𝒍 : Found candidate solution.
– Φ𝑠𝑎𝑚𝑒𝐼 : Same input values.
– 𝚽𝒅𝒊𝒇𝒇𝐎 : Different output value.
– Φ𝑟𝑎𝑛𝑔𝑒𝑠 : Ranges of the input variables.
– Φ𝑟𝑒𝑠 : Resolution of the input variables.
SMT Encoding
19/35 22-Oct-13 Hassan Eldib and Chao Wang
![Page 20: An SMT Based Method for Optimizing Arithmetic Computations ... · fixed-point linear arithmetic computations in embedded software code –Effective in reducing the required bit-width](https://reader034.fdocuments.net/reader034/viewer/2022042405/5f1d4271d7168c75a16108ea/html5/thumbnails/20.jpg)
SMT-based Inductive Program Synthesis
22-Oct-13 Hassan Eldib and Chao Wang 20/35
![Page 21: An SMT Based Method for Optimizing Arithmetic Computations ... · fixed-point linear arithmetic computations in embedded software code –Effective in reducing the required bit-width](https://reader034.fdocuments.net/reader034/viewer/2022042405/5f1d4271d7168c75a16108ea/html5/thumbnails/21.jpg)
The Next Solution
B + 𝐴−𝐵
2 ≡
22-Oct-13 Hassan Eldib and Chao Wang 21/35
![Page 22: An SMT Based Method for Optimizing Arithmetic Computations ... · fixed-point linear arithmetic computations in embedded software code –Effective in reducing the required bit-width](https://reader034.fdocuments.net/reader034/viewer/2022042405/5f1d4271d7168c75a16108ea/html5/thumbnails/22.jpg)
SMT-based Inductive Program Synthesis
22-Oct-13 Hassan Eldib and Chao Wang 22/35
![Page 23: An SMT Based Method for Optimizing Arithmetic Computations ... · fixed-point linear arithmetic computations in embedded software code –Effective in reducing the required bit-width](https://reader034.fdocuments.net/reader034/viewer/2022042405/5f1d4271d7168c75a16108ea/html5/thumbnails/23.jpg)
Scalability Problem
• Advantage of the SMT-based approach
– Find optimal solution within an AST depth bound
• Disadvantage
– Cannot scale up to larger programs
• Sketch tool by Solar-Lezama & Bodik (5 nodes)
• Our own tool based on YICES (9 nodes)
22-Oct-13 Hassan Eldib and Chao Wang 23/35
![Page 24: An SMT Based Method for Optimizing Arithmetic Computations ... · fixed-point linear arithmetic computations in embedded software code –Effective in reducing the required bit-width](https://reader034.fdocuments.net/reader034/viewer/2022042405/5f1d4271d7168c75a16108ea/html5/thumbnails/24.jpg)
• Combine static analysis and SMT-based
inductive synthesis.
• Apply SMT solver only to small code regions – Identify an instruction that causes overflow/underflow.
– Extract a small code region for optimization.
– Compute redundant LSBs (allowable truncation error).
– Optimize the code region.
– Iterate until no more further optimization is possible.
Incremental Optimization
22-Oct-13 Hassan Eldib and Chao Wang 24/35
![Page 25: An SMT Based Method for Optimizing Arithmetic Computations ... · fixed-point linear arithmetic computations in embedded software code –Effective in reducing the required bit-width](https://reader034.fdocuments.net/reader034/viewer/2022042405/5f1d4271d7168c75a16108ea/html5/thumbnails/25.jpg)
Our Incremental Approach
22-Oct-13 Hassan Eldib and Chao Wang 25/35
![Page 26: An SMT Based Method for Optimizing Arithmetic Computations ... · fixed-point linear arithmetic computations in embedded software code –Effective in reducing the required bit-width](https://reader034.fdocuments.net/reader034/viewer/2022042405/5f1d4271d7168c75a16108ea/html5/thumbnails/26.jpg)
Example
Detecting Overflow Errors
• The addition of a and b may overflow
22-Oct-13 Hassan Eldib and Chao Wang 26/35
The parent nodes
Some sibling nodes
Some child nodes
![Page 27: An SMT Based Method for Optimizing Arithmetic Computations ... · fixed-point linear arithmetic computations in embedded software code –Effective in reducing the required bit-width](https://reader034.fdocuments.net/reader034/viewer/2022042405/5f1d4271d7168c75a16108ea/html5/thumbnails/27.jpg)
Example
Computing Redundant LSBs
• The redundant LSBs of a are computed as 4 bits
• The redundant LSBs of b are computed as 3 bits.
22-Oct-13 Hassan Eldib and Chao Wang 27/35
![Page 28: An SMT Based Method for Optimizing Arithmetic Computations ... · fixed-point linear arithmetic computations in embedded software code –Effective in reducing the required bit-width](https://reader034.fdocuments.net/reader034/viewer/2022042405/5f1d4271d7168c75a16108ea/html5/thumbnails/28.jpg)
Example
Extracting Code Region
• Extract the code surrounding the overflow operation.
• The new code requires a smaller bit-width.
22-Oct-13 Hassan Eldib and Chao Wang 28/35
![Page 29: An SMT Based Method for Optimizing Arithmetic Computations ... · fixed-point linear arithmetic computations in embedded software code –Effective in reducing the required bit-width](https://reader034.fdocuments.net/reader034/viewer/2022042405/5f1d4271d7168c75a16108ea/html5/thumbnails/29.jpg)
• Clang/LLVM + Yices SMT solver
• Bit-vector arithmetic theory
• Evaluated on a set of public benchmarks for
embedded control and DSP applications
Implementation
29/35 Hassan Eldib and Chao Wang 22-Oct-13
![Page 30: An SMT Based Method for Optimizing Arithmetic Computations ... · fixed-point linear arithmetic computations in embedded software code –Effective in reducing the required bit-width](https://reader034.fdocuments.net/reader034/viewer/2022042405/5f1d4271d7168c75a16108ea/html5/thumbnails/30.jpg)
Benchmarks (embedded control software)
22-Oct-13 Hassan Eldib and Chao Wang 30/35
Benchmark Bits LoC Arithmetic
Operations Citation
Sobel Image filter 32 42 28 Qureshi, 2005
Bicycle controller 32 37 27 Rupak, Saha & Zamani, 2012
Locomotive controller 64 42 38 Martinez, Majumdar, Saha &
Tabuada, 2010
IDCT (N=8) 32 131 114 Kim, Kum, & Sung, 1998
Controller impl. 32 21 8 Martinez, Majumdar, Saha
& Tabuada, 2010 Differ. image filter 32 131 77 Burger, & Burge, 2008
FFT (N=8) 32 112 82 Xiong, Johnson, & Padua,2001
IFFT (N=8) 32 112 90 Xiong, Johnson, & Padua,2001
All benchmark examples are public-domain examples
![Page 31: An SMT Based Method for Optimizing Arithmetic Computations ... · fixed-point linear arithmetic computations in embedded software code –Effective in reducing the required bit-width](https://reader034.fdocuments.net/reader034/viewer/2022042405/5f1d4271d7168c75a16108ea/html5/thumbnails/31.jpg)
Experiment (increase in range)
22-Oct-13 Hassan Eldib and Chao Wang 31/35
• Average increase in range is 307%
(602%, 194%, 5%, 40%, 32%, 1515%, 0% , 103%)
1
10
100
1000
10000
Sobel Image Bicycle Locomotive IDCT Controller Diff. Image FFT IFFT
Input/output range increase
Range increase
![Page 32: An SMT Based Method for Optimizing Arithmetic Computations ... · fixed-point linear arithmetic computations in embedded software code –Effective in reducing the required bit-width](https://reader034.fdocuments.net/reader034/viewer/2022042405/5f1d4271d7168c75a16108ea/html5/thumbnails/32.jpg)
Experiment (decrease in bit-width)
22-Oct-13 Hassan Eldib and Chao Wang 32/35
• Required bit-width: 32-bit 16-bit
64-bit 32-bit
![Page 33: An SMT Based Method for Optimizing Arithmetic Computations ... · fixed-point linear arithmetic computations in embedded software code –Effective in reducing the required bit-width](https://reader034.fdocuments.net/reader034/viewer/2022042405/5f1d4271d7168c75a16108ea/html5/thumbnails/33.jpg)
Experiment (scaling error)
22-Oct-13 Hassan Eldib and Chao Wang 33/35
If we reduce microcontroller’s bit-width, how much error will be introduced?
Original program New program
![Page 34: An SMT Based Method for Optimizing Arithmetic Computations ... · fixed-point linear arithmetic computations in embedded software code –Effective in reducing the required bit-width](https://reader034.fdocuments.net/reader034/viewer/2022042405/5f1d4271d7168c75a16108ea/html5/thumbnails/34.jpg)
Experiment (runtime statistics)
22-Oct-13 Hassan Eldib and Chao Wang 34/35
Benchmark
Optimized
Code Regions Time
Sobel image filter 22 2s Bicycle controller 2 5s Locomotive controller 1 5m 41s IDCT (N=8) 3 2.7s Controller impl. 1 46s
Differ. image filter 23 10s FFT (N=8) 14 1m 9s IFFT (N=8) 1 4s
64 bit
![Page 35: An SMT Based Method for Optimizing Arithmetic Computations ... · fixed-point linear arithmetic computations in embedded software code –Effective in reducing the required bit-width](https://reader034.fdocuments.net/reader034/viewer/2022042405/5f1d4271d7168c75a16108ea/html5/thumbnails/35.jpg)
Conclusions
• We presented a new SMT-based method for optimizing
fixed-point linear arithmetic computations in
embedded software code
– Effective in reducing the required bit-width
– Scalable for practice use
• Future work
– Other aspects of the performance optimization, such as
execution time, power consumption, etc.
22-Oct-13 Hassan Eldib and Chao Wang 35/35
![Page 36: An SMT Based Method for Optimizing Arithmetic Computations ... · fixed-point linear arithmetic computations in embedded software code –Effective in reducing the required bit-width](https://reader034.fdocuments.net/reader034/viewer/2022042405/5f1d4271d7168c75a16108ea/html5/thumbnails/36.jpg)
![Page 37: An SMT Based Method for Optimizing Arithmetic Computations ... · fixed-point linear arithmetic computations in embedded software code –Effective in reducing the required bit-width](https://reader034.fdocuments.net/reader034/viewer/2022042405/5f1d4271d7168c75a16108ea/html5/thumbnails/37.jpg)
More on Related Work
• Solar-Lezama et al. Programming by sketching for bit-streaming programs, ACM SIGPLAN’05. – General program synthesis. Does not scale beyond 3-4 LoC for our application.
• Gulwani et al. Synthesis of loop-free programs, ACM SIGPLAN’11. – Synthesizing bit-vector programs. Largest synthesized program has 16 LoC,
taking >45mins. Do not have incremental optimization.
• Jha. Towards automated system synthesis using sciduction, Ph.D. dissertation, UC Berkeley, 2011. – Computing the minimal required bit-width for fixed-point representation. Do
not change the code structure.
• Rupak et al. Synthesis of minimal-error control software, EMSOFT’12. – Synthesizing fixed-point computation from floating-point computation. Again,
only compute minimal required bit-widths, without changing code structure.
22-Oct-13 Hassan Eldib and Chao Wang