EVEREST proposed an integrated design environment, called EVEREST System Development Kit (SDK), which aims at
- supporting data-driven policies to ensure efficient data allocation, computation, communication, and protection. All these techniques are abstracted from the designers and described in domain-specific languages or derived from the application descriptions. Data information is automatically inferred from the data sets (e.g. data ranges) whenever possible.
- simplifying the programming of FPGA-based computing systems for Big Data applications through domain-specific abstractions (based on the novel MLIR compiler infrastructure), compiler optimizations, high-level synthesis, hardware memory generation, automated system-level integration, and virtualized runtime extensions. These technologies are interoperable with existing solutions thanks to a modular framework.
The EVEREST SDK was released as open-source and includes tools for compilation, virtualization, run-time management, and data security of big data and AI applications. The compilation flow leverages domain-specific languages and the open-source MLIR infrastructure to support multiple popular programming models (incl. Python, Rust, TensorFlow, and PyTorch) or to modernize traditional HPC codes. The runtime environment allows for dynamic adaptivity.
Other achievements include the
- use of the SDK to develop end-to-end implementations of the three use cases with accelerated kernels,
- definition, building, and operation of the EVEREST FPGA-based target system for bus-attached and network-attached FPGAs,
- definition of data-oriented policies for efficient allocation, computation, communication, and data protection and their implementation in the EVEREST tools,
- implementation of an MLIR-based compilation flow to converge multiple input languages and unify the hardware generation for multiple target devices,
- definition of a virtualized runtime environment for dynamic autotuning,
- release of eight open data sets through Zenodo,
- dissemination of the project results through the organization of workshops, tutorials, webinars and conferences, scientific publications (6 journal papers, 25 conference papers, and two book chapters), creation of the project website, social media presence, and an identity package (e.g. logo, templates, stickers).