Xcell Journal Online
  Xcell Journal Archives
   
  Writing for Xcell
  Advertising in Xcell
  FREE Subscription
   
  Partner Yellow Pages
  Reference Pages
  Contact Us

    

Home : Xcell Publications : Xcell Journal Online : Article
Programming FPGAs for High-Performance Computing Acceleration



by Anders Dellson, President and CEO, Mitrionics Inc.
anders.dellson@mitrionics.com (12/1/05)


You can make your applications run faster by using FPGAs as co-processors.
article link to PDF
Article PDF 295 KB


An entirely new and exciting market and technology segment is emerging with the growth of FPGA-based highperformance computing (HPC). To date, technical obstacles have made practical success in this area more of a challenge than an opportunity. This year, the FPGA-based HPC market takes off, with system vendors (such as Cray and Silicon Graphics) and FPGA board suppliers (such as Nallatech) spearheading the hardware side of the equation. Now Mitrionics is providing its Mitrion Platform for fast and easy software programming of FPGAs.

FPGAs have the potential to be great application accelerators by working as co-processors, off-loading computationally intensive tasks from conventional CPUs. The promise of achieving orders of magnitude acceleration in processing has fueled a number of projects and enterprise ventures over the last decade. Some were proven very successful, while others were not. Until now, the critical component of converting applications to run on FPGAs has depended on the services of highly skilled hardware designers. This has put the benefits of FPGA performance boosts out of reach for the majority of software developers, who do not have the ability nor inclination to go into the extensive details of designing hardware.

At least that was the case until now. With the Mitrion Platform, software developers have the ability to convert applications to be accelerated on an FPGA without knowing the first thing about the complexities of hardware design. The Mitrion Platform allows FPGA-based HPC applications to be written in days or weeks with just a few hundred lines of code – versus taking months or years and tens of thousands of lines of code to write with other

Putting FPGAs to Work
FPGAs are potentially small supercomputers. One of the main reasons FPGAs have not been prevalent in supercomputing is their lack of programmability. The users and application developers for supercomputers do not know hardware design, and have no wish to learn it. These users are often researchers with their own complex field of work.

The Mitrion Platform gives these users access to the performance of FPGAs, while still allowing them to write their algorithms in software. It is applicable to fields such as gene sequencing, weather prediction, image analyses, industrial automation, and geosciences. You will find FPGA-based application acceleration highly attractive in two main areas: from a raw processing performance perspective and because of the significant reduction of power consumption compared to clusters of regular microprocessors. Many problems within these areas have been difficult to address with traditional FPGA design methods, mainly because of their complexity.

The Mitrion Virtual Processor
Compiling software into a hardware design is not a trivial task. The program code that makes up the software and the transistors, wires, and gates that make up the hardware are very different things. We say that the best solution is simply not to do it.

Traditional processors solve this problem by using the von Neumann architecture, a machine (designed in hardware) that reads the program code in sequence and executes the instructions. The problem with the von Neumann architecture is that it really does not lend itself to the high level of parallelism that is required to extract the performance benefits that you can get from an FPGA.

Pontus Borg and Stefan Möhl, two “software guys” and the founders of Mitrionics, realized that the concept of an abstract machine that executes the software is the key to bridging the software-to-hardware gap. Software developed for the Mitrion Platform is compiled into instructions for the Mitrion Virtual Processor, which is then adapted accordingly and instantiated in programmable logic. It delivers massive parallelism and high silicon utilization, and is aimed at the acceleration of calculation-intensive programs.

The Mitrion Virtual Processor performs thousands of operations simultaneously by allocating computational units for each instruction. The finegrained nature of the processing elements permits every individual operation of the program to run in parallel.

To assure sufficient memory bandwidth, the Mitrion processor operates with simultaneous access to multiple shared external memories as well as all internal memory banks in the FPGA. Using heavy pipelining, data is communicated directly between the thousands of processing units, and we reduce the number of memory accesses and I/O performance bottlenecks. With the Mitrion Virtual Processor, we are able to eliminate the direct translation of software to hardware.

The Mitrion-C Programming Language
To exploit the parallel processing capabilities of the Mitrion Virtual Processor, traditional, sequential programming languages are not sufficient. For that reason we have developed Mitrion-C, an implicitly parallel C-family programming language. Mitrion-C helps you (as a programmer) reveal and utilize the parallelism inherent in your algorithm. It gives you access to implicit parallelism. This means that parallelism is found automatically, without you having to manually specify which parts of the algorithm are to be executed simultaneously. With Mitrion-C, many hundreds of dissimilar parallel interacting operations are created without the risk of deadlocks or race conditions. Mitrion-C is a C-family language, which is easy to learn and has a syntax familiar to C programmers.

Developing Software for the Mitrion Virtual Processor
For the great majority of applications, only a small amount of code limits the performance. Typically, when you develop an application to be run on the Mitrion Virtual Processor, you would identify the critical code and write that in Mitrion-C. You would then write the rest of the application in the language of your choice to execute on a host CPU, calling the critical code to be run on the Mitrion processor.

The Mitrion Software Development Kit comprises the Mitrion-C compiler, a graphical debugger, a code simulator, and a processor configurator. A C/C++ library is included that gives easy access to the Mitrion processor from the host application. Several integration modules interface the Mitrion Virtual Processor to a number of system platforms.

The graphical debugger and code simulator give you a hierarchical overview of all the parallel operations and data dependencies in the program. Figure 1 illustrates the results from running the debugger and simulator on the sample Mitrion-C code shown in Figure 2; Figure 3 shows a nontrivial example. Through the debugger, you will find it easy to locate programming errors and identify performance bottlenecks and inefficient code. This lets you efficiently refine your Mitrion-C program and then recompile.

The final output from the Mitrion Software Development Kit is a hardware design in VHDL for a Mitrion Virtual Processor, programmed and optimized to execute the software algorithm. You will then use third-party tools to complete synthesis and place and route. Because the algorithm you are developing can be tested and simulated inside the Mitrion Software Development Kit, there is no need for tedious and time-consuming iterations through the synthesis and place and route steps to confirm the functionality of your finished Mitrion Virtual Processor.

Conclusion
The Mitrion Platform allows rapid software development for FPGA-based systems to be completed by regular programmers who have no hardware design experience. The resulting applications are typically accelerated 10x to 30x compared to execution on a sequential CPU, with a fraction of the power consumption.

The development of FPGA technology is set to outpace the performance of traditional CPUs. Solutions created on the Mitrion Platform leverage this through the platform’s portability. When a new, more powerful FPGA is available, all you have to do is reconfigure the Mitrion Virtual Processor to take advantage of the capabilities of the new device.

For more information, contact Mitrionics Inc. at (310) 558-9495, visit www.mitrionics.com, or e-mail info@mitrionics.com.

Printable PDF version of this article with graphics. PDF logo (12/1/05) 295 KB

 
Jobs Events Webcasts News Investors Feedback Legal Privacy Trademarks Sitemap
© 1994-2008 Xilinx, Inc. All Rights Reserved.