| Santa Cruz, Calif. Scientists, engineers and software developers who know nothing about chip design can now compile high-performance computing applications into FPGAs, according to startup Mitrionics AB. |
Mitrionics (Lund, Sweden) is preparing a development platform based on a virtual processor and a software development kit. It lets users write concise programs in the proprietary Mitrion-c language, and then compile them into a massively parallel, reconfigurable processor. The development kit outputs VHDL code for the targeted FPGA.
"We're abstracting the program to such a high level that you don't have to be an EE anymore to program an FPGA," said Anders Dellson, Mitrionics' CEO. "We think this is what it will take for FPGAs to become an integral part of a computer."
Mitrionics was founded in 2000 by Pontus Borg and Stefan Mohl two "software guys," as Dellson puts it who realized that FPGAs are potentially small supercomputers, but are too difficult to program by users without hardware experience. They developed a product that attracted $2.8 million in venture funding this year. The 15-person company has a U.S. subsidiary based in Los Angeles.
Compared with other FPGA designs, Mitrionics is targeting a very specific marketplace. The company is aiming at data-intensive "supercomputer" applications in such fields as gene sequencing, image analysis, industrial automation, ray tracing and bioinformatics. It's a market served by providers like Silicon Graphics Inc. and Cray Research, both of which are working with Mitrionics, Dellson said.
The obstacle to getting such applications into FPGAs, Dellson said, has been the difficulty of programming them into hardware. "Traditional design flows are not applicable to people in the supercomputer field," he said. Even SystemC, Dellson said, still requires the user to know about hardware design.
Just 180 lines of code in the Mitrion-c programming language, the company said, can generate as much as 150,000 lines of VHDL code. The company claims to produce VHDL that can be taken unaltered into synthesis, placement and routing, and to offer a high-level simulation and debugging capability that doesn't require the user to work with VHDL at all.
There is, however, a trade-off designs are up to twice as large as those optimized in HDL code, Dellson acknowledged. The compiler, in fact, will just keep unrolling loops until it has filled the entire FPGA. To make maximum use of parallelism, users will therefore want to target large FPGAs, typically with gate equivalents of 6 million or more.
The big advantage is that algorithms that would otherwise run on general-purpose CPUs can be put into FPGAs. And that, said Dellson, translates not only into a 10x to 100x performance acceleration, but into an enormous power savings as well. "Compared to CPUs, an FPGA might take less than 1 percent of the power to do the same job," he said.
Another advantage is portability. If a new FPGA comes out, users can recompile the same program to run on it.
Rethinking the processor
The founders of Mitrionics realized that a fresh approach to processor design would be needed, Dellson said. The traditional solution, he said, is a von Neumann processor, a state machine that operates one instruction at a time. This architecture, said Dellson, does not provide an easy way to go from software to hardware.
The Mitrion Virtual Processor, in contrast, is a data-driven representation of the program mapped into programmable logic. It promises massive parallelism and high silicon utilization, and is aimed at the acceleration of data-intensive programs.
The processor performs thousands of operations simultaneously by allocating multiple computational units for each instruction. The fine-grained nature of the processing elements permits every individual operation in the program to run in parallel. To assure sufficient memory bandwidth, the processor uses multiple shared memories.
With the Virtual Processor, Mitrionics avoids a direct translation between Mitrion-c and VHDL. Instead, it inserts an abstract machine between the program and the hardware, compiles the Mitrion-c code into a configuration of the abstract machine and then instantiates that machine in an FPGA.
Mitrion-c, said Dellson, "is as different from ANSI C as Java is from ANSI C." While its syntax looks like C, semantically it's very different, he said. "It's really aimed at describing and using parallelism," Dellson said.
The Mitrion Software Development Kit includes a compiler, graphical debugger, code simulator and processor configurator. A C/C++ library is included for integration with the application running on a host CPU.
After compiling a program, the development kit estimates FPGA usage and total program run-time. It also outputs data-dependency graphs. These animated graphs allow users to view how data flows from operator to operator. Based on this information, users can refine their Mitrion-c programs and recompile.
The Mitrion platform will be available in October. A perpetual license to run the Mitrion Virtual Processor on a single FPGA is $7,000. The software development kit will be available for an annual support fee.