Maxeler high-performance dataflow computing systems are fully programmable using the general-purpose MaxCompiler programming tool suite.
Any accelerated application runs on a Maxeler node as a standard Linux executable. Programmers can write new applications using existing dataflow engine configurations by linking the dataflow library file into their code and then calling simple function interfaces.
To create applications exploiting new dataflow engine configurations, MaxCompiler allows an application to be split into three parts:
- Kernel(s), which implement the computational components of the application in hardware.
- Manager configuration, which connects Kernels to the CPU, engine RAM, other Kernels and other dataflow engines via MaxRing.
- CPU application, which interacts with the dataflow engines to read and write data to the Kernels and engine RAM.
MaxCompiler includes tools to support all three steps: the Kernel Compiler, the Manager Compiler and a software library (accessible from C or Fortran) for bridging between hardware and software.
Programmers develop kernels by writing programs in Java. However, using the tools requires only minimal familiarity with Java. Maxeler provides MaxIDE, an Eclipse-based development environment to maximize programmer productivity.
Once written, MaxCompiler transforms user kernels into low-level hardware and generates a hardware dataflow implementation (the .max file) which the developer can link into their CPU application using the standard GNU development tool chain.
MaxCompiler provides complete support for debugging during the development cycle, including a high-speed simulator for verifying code correctness before generating a hardware implementation and the MaxDebug tool for examining the state of running chips.