A water bearer in China had two large pots, each hung on the ends of pole which he carried across his neck.. One of the pots had a crack in it, while the other pot was perfect and always delivered a full portion of water.

At the end of the long walk from the stream to the house, the cracked pot arrived only half full.

For a full two years this went on daily, with the bearer delivering only one and a half pots full of water to his house. Of course, the perfect pot was proud of its accomplishments, perfect for which it was made. But the poor cracked pot was ashamed of its own imperfection, and miserable that it was able to accomplish only half of what it had been made to do.

After 2 years of what it perceived to be a bitter failure, it spoke to the water bearer one day by the stream.
"I am ashamed of myself, and because this crack in my side causes water to leak out all the way back to your house."

The bearer said to the pot, "Did you notice that there were flowers only on your side of the path, but not on the other pot's side? That's because I have always known about your flaw, and I planted flower seeds on your side of the path, and every day while we walk back, you've watered them.

For two years I have been able to pick these beautiful flowers to  decorate the table. Without you being just the way you are, there would not be this beauty to grace the house"

Moral: Each of us has our own unique flaws. We're all cracked pots. But it's the cracks and flaws we each have that make our lives together so very interesting and rewarding. You've just got to take each person for what they are, and look for the good in them. Blessings to all my crackpot friends!!

 

Text Links


Dependence & High Level Synthesis PDF Print E-mail
Written by SVTechie   
Wednesday, 31 May 2006

In High Level Synthesis world, effectiveness of any tool depends on  its ability to extract parallelism, inherent in the application. Please read Limits of Instruction Level Parallelism for thorough discussion on parallelism related issues.

Degree of parallelism is directly dependent on Dependence in the code. Any high level synthesis tool should be able to understand, resolve and circumvent dependence to increase effective parallelism of the application. Thorough discussion on dependece can be read here @ Data Dependence Lecture Notes.

There are multiple types of dependencies, as shown below.

  • Algorithm Specific - It can not be resolved, change in algorithm required to increase performance.
  • Coding Style Specific - Depends on Code Writing Style and nuances of language. There may be unnecessary assignments or Pointer Aliasing in the code. Few can be resolved easily but some may require complex analysis of the system. However, High Level Synthesis tool must be able to handle this to achieve required effectiveness.

  • Somewhat related to coding style, these limitations are because of development plateform, for example output dependence. These are minor irritants but can be handled effectively.

 

Once dependeces are resolved effectively, next issue is effective distribution/partition of the resources. Any partitioning algorithm for high level synthesis should be able to handle following

  • Ability to look at resource cost from multiple perspective.
  • Ability to combine related resources so that effective sharing can be performed
  • Ability to pipeline a resource to meet timing requirements
  • Ability to combine two unrelated resources so that area of combined resource is less than sum of area of individual resources.
  • Ability to make tradeoff based on timing, latency and area.
As far as I know, none of the paper handles above criteria effectively. Anyway, please stay tuned for list of papers, dealing with partitioning of dependence graph.
Last Updated ( Wednesday, 31 May 2006 )
 
< Prev   Next >
Loans | Home Loan | Loans | Final Fantasy | Neopets Cheats, Games and Neopoints
© 2008 SVTechie :: Online Resources For Techies BY Techies
Joomla! is Free Software released under the GNU/GPL License.