Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide


  1. 1. Adaptive Computing - A Novel SoC Design Methodology Combining Adaptive Software and Reconfigurable Hardware - D ynamic R econfigurability in E mbedded S ystems D esign
  2. 2. Outline <ul><li>Motivation </li></ul><ul><li>Goals </li></ul><ul><li>Project Description </li></ul><ul><ul><li>HW/SW Codesign </li></ul></ul><ul><li>SW Adaptive Computing </li></ul><ul><ul><li>Adaptive Metrics </li></ul></ul><ul><li>Case study: Digital Image Processing </li></ul><ul><ul><li>Results </li></ul></ul><ul><li>Conclusion and Future Work </li></ul>
  3. 3. Motivations <ul><li>SoC are more and more complex </li></ul><ul><li>Users demand even more complex applications </li></ul><ul><li>HW is very powerful, and can perform intensive computation vary fast </li></ul><ul><li>SW is very flexible, but it’s pretty slow wrt the HW </li></ul><ul><li>We need: </li></ul><ul><ul><li>Flexible HW  Reconfigurable HW </li></ul></ul><ul><ul><li>Faster SW  Adaptive Computing </li></ul></ul>
  4. 4. Goals <ul><li>Identify the best trade-off between: </li></ul><ul><ul><li>Intensively tasks (kernel) to be put on HW </li></ul></ul><ul><ul><li>Easily adaptable tasks to be put on SW </li></ul></ul><ul><li>Exploit the self-adjusting property of adaptive computing </li></ul><ul><li>Develop a new performance model with specific metrics to determine the task separation </li></ul><ul><li>Basically reduce the gap between the HW and the SW worlds </li></ul>
  5. 5. Project Description <ul><li>Reconfiguration makes the HW more flexible </li></ul><ul><li>Need of a faster software </li></ul><ul><li>The main innovation is: </li></ul><ul><ul><li>Characterize the tasks depending on the relationship between HW and SW </li></ul></ul><ul><li>Adaptive computation defines a relationship between input and output of an application wrt the input changes </li></ul><ul><ul><li>particularly advantageous when input changes lead to relatively small changes in the output. </li></ul></ul>
  6. 6. The model <ul><li>The extended model based approach </li></ul>System Spec System Model Description Partitioning HW Description SW Description Synthesis + Integration Physical Implementation SML = functional language MLTon = framework MLTon  description in C Find initial set of candidate tasks Use Adaptive Metrics to find the best partitioning b/w HW and SW Adaptive Computing Techniques Augmented Dependency Graph Module Based Partial Reconfiguration Constraints on HW Bitstream generation Download on FPGA
  7. 7. Adaptive Computing (1/2) <ul><li>Given an high level specification the application is translated to an adaptive one. </li></ul><ul><li>The result is a ADG (Augmented Dependencies Graph) </li></ul>Recognize modifiable operations that must be efficiently updated after an input change. Main idea:
  8. 8. Adaptive Computing (2/2) <ul><li>An example of the propagation of the changes: </li></ul><ul><ul><li>After a small change in the input there is a small change in the output </li></ul></ul><ul><ul><li>The software is adapting to the input changes </li></ul></ul><ul><li>Crucial issue is to support change propagation </li></ul>
  9. 9. Adaptive Metrics (1/2) <ul><li>This approach aims at: </li></ul><ul><ul><li>moving the software domain into the hardware domain whenever beneficial, </li></ul></ul><ul><ul><li>accelerate the software as much as possible </li></ul></ul><ul><li>Once an adaptive description is obtained, it can be analyzed using specific metrics </li></ul><ul><li>An edge in the ADG is: </li></ul><ul><ul><li>Invalidated: if its value changes </li></ul></ul><ul><ul><li>Obsolete: if it depends upon an invalidated edge </li></ul></ul>
  10. 10. Adaptive Metrics (2/2) <ul><li>Given the ADG for each functionality f j , m is the number of nodes affected by the propagation, and |n j | is the total number of nodes for f j , and ts is the total number of tests </li></ul><ul><li>The adaptability value is: </li></ul><ul><li>The Partitioning Intensity Ordering Value is: </li></ul><ul><li>According to the PIOV it is possible to identify those candidate functions that would benefit from a re-allocation </li></ul>0 – better in sw 1 – better in hw
  11. 11. Total performance metrics <ul><li>It is then possible to estimate the dimension δ , and the time τ (computation + reconfiguration) </li></ul><ul><li>The adaptive programming is very useful when, given constraints on the dimension, the total time (computation + reconfiguration) on the hw is greater than the execution time on the sw </li></ul><ul><li>Therefore the Throughput TP j for each functionality is: </li></ul>
  12. 12. Case Study: Digital Image Processing <ul><li>The canny edge detector is an algorithm that detects the edges in a given input image </li></ul><ul><ul><li>Image smoothing  remove the noise </li></ul></ul><ul><ul><li>Gradient operator  highlight regions with high spatial derivative </li></ul></ul><ul><ul><li>Non-maximum suppression  reveals the edges </li></ul></ul><ul><ul><li>Hysteresis  remove false edges </li></ul></ul>
  13. 13. Analysis <ul><li>The graph shows that the most computationally expensive part is the image smoothing filter (FIR) </li></ul><ul><li>But using the adaptive programming we can leave it on SW </li></ul>Result of the edge detection computed on sequential frames , in order to exploit the adaptive computing (small input changes)
  14. 14. Results <ul><li>After the initialization time needed to make the application adaptive, the software computation is a lot faster than the hardware computation of the same task </li></ul><ul><ul><li>Hypothesis of a small propagation of the same task </li></ul></ul>A i Benchmark SC i Computation t AC i init Initialization t AC i Adaptive t Speedup of Ac i on SC i
  15. 15. Conclusion <ul><li>The gap between hardware and software is reduced </li></ul><ul><li>In fact, adaptive computing can be used together with dynamic reconfiguration to improve the computation in a reconfigurable SoC </li></ul><ul><li>To validate the results, specific metrics and framework have been used </li></ul>
  16. 16. Future Work <ul><li>Create a specific software environment and a simulation framework </li></ul><ul><li>Analysis of the communication between interface and infrastructure </li></ul><ul><li>Overcome to the limits of SML functional description, that is not flexible enough, and not suitable for cross-compiling </li></ul><ul><li>Determine at run time the allocation of a task on the HW or on the SW, according to the stimulation from the input. </li></ul><ul><ul><li>E.g. Smart Camera: setup HW  adaptive SW </li></ul></ul><ul><ul><li>Bring Adaptive Computing to the HW </li></ul></ul>
  17. 17. Questions? ??