High-level synthesis for FPGAs,
the Swiss army knife for high-performance computing
Erik D'Hollander (Ghent university)
Field programmable gate arrays or FPGAs are the Swiss army knife of the compute accelerators. They are highly flexible, have many capabilities, operate at low power and yet have their limitations and are sometimes not easy to handle.
In this talk we address the FPGA as an algorithm in hardware and discuss the techniques and tools for efficient hardware-software codesign. After more than two decades of research to raise the abstraction level, high-level synthesis tools now have reached the maturity to be used by the knowledgeable programmer. The architectural views include the OpenCL as well as the C-language with directives oriented paradigms.
We will describe the characteristics, parameters and metrics of the logic fabric which are essential to obtain good performance. Next the multiple facets of the design exploration are illustrated with respect to balancing the resources, optimizing the interface and adapting the algorithm for execution on an FPGA. From this discussion we will be able to draw conclusions about the challenges and opportunities for this Swiss army knife accelerator in the arena of high-performance computing.
Programming in Space towards Exascale Computational Densities
Georgi Gaydadjiev (Maxeler Technologies)
For a long time all atomic arithmetic and data storage structures of computing systems were designed as two-dimensional (2D) structures on silicon. Currently processor vendors offer chips with steadily growing numbers of cores and recent circuits started to grow in the third dimension by integrating silicon dies on the top of each other. All of this results in severe increase of the programming complexity. To date, predominately the one-dimensional (sequential) view of computing systems organization and behaviour is used for programmer's convenience. This forms a severe obstacle in exploiting all of the available advantages the spatial organization at the Silicon surface enables. To address this, a more natural, at least 2D view of computer systems is required to closely represent the physical reality in both space and time. This calls for radically novel approaches towards programming methods.
Computing in space allows scientists to express complex mathematical operations in a more natural, space (area) aware way and map them on the underlying hardware resources. OpenSPL is one such approach that can be used to partition, lay out and optimize programs at all levels from high-level algorithmic transformations down to individual custom bit manipulations. In addition, the OpenSPL execution model enables highly efficient scheduling (or better called choreography) of all basic computational actions with the guarantee of no side effects. It is clear that this approach requires a new generation of design tools and methods and a novel way to measure (or rate) performance as compared to all traditional practices. In this talk we will address many of the topics relevant to spatial computing and show its enormous capabilities to design power efficient computing systems. Examples and results based on real commercial systems will be used to emphasize the advantages of this novel approach. We will also discuss the difficulties along the road ahead Exascale.