This is the Open Transprecision Computing project, a joint venture between IBM, ETH, CEA, UNIPG, UNIBO, CINECA, UJI, QUB, GWT, and TUKL.
OPRECOMP is a 4-year research project funded under the EU Framework Horizon 2020 – Re Program Future and Emerging Technologies (FET) Proactive Initiative: emerging themes and communities.
This is the main repository of the OPRECOMP project. Individual deliverables and development is performed in separate repositories, as follows:
- oprecomp/micro-benchmarks: A collection of benchmarks used throughout the project to assess the impact of transprecision techniques on a broad range of application fields.
- oprecomp/FloatX: Header-only C++ library for low precision floating point type emulation.
- oprecomp/flexfloat and oprecomp/flexfloat-benchmarks: C library for the emulation of reduced-precision floating point types
- oprecomp/HLS_BLSTM: The community version of HLS_BLSTM (A BLSTM FPGA accelerator of an OCR appilcation, using CAPI/SNAP)
- oprecomp/DRAMSpec: A DRAM Current and Timing Generator
- oprecomp/RRAMSpec: An RRAM Area, Energy and Timing Generator
- oprecomp/fp-soft: Floating point implementation of multiplication and addition for processor with variable mantissa adaptation.
- oprecomp/StaticFPTuner: A python module for statically tuning the precision of floating point variables.
- oprecomp/kwpilot-doc: Documentation and tutorials for OPRECOMP kwpilot demonstrator.
- oprecomp/oc-accel-tp: OpenCAPI Acceleration Framework: develop an accelerator with OpenCAPI technology.
- oprecomp/DDR4_controller: A DDR4 memory controller.
- pulp-platform/fpnew: Configurable Floating-Point Unit with Transprecision Capabilities
- DRAMSys 4.0: a flexible DRAM subsystem design space exploration framework based on SystemC TLM-2.0
Guaranteed numerical precision of each elementary step in a complex computation has been the mainstay of traditional computing systems for many years. This era, fueled by Moore's law and the constant exponential improvement in computing efficiency, is at its twilight: from tiny nodes of the Internet-of-Things, to large HPC computing centers, sub-picoJoule/operation energy efficiency is essential for practical realizations. To overcome the “power wall”, a shift from traditional computing paradigms is now mandatory.
OPRECOMP aims at demolishing the ultra-conservative “precise” computing abstraction and replacing it with a more flexible and efficient one, namely transprecision computing. OPRECOMP will investigate the theoretical and practical understanding of the energy efficiency boost obtainable when accuracy requirements on data being processed, stored and communicated can be lifted for intermediate calculations. While approximate computing approaches have been used before, in OPRECOMP for the first time ever, a complete framework for transprecision computing, covering devices, circuits, software tools, and algorithms, along with the mathematical theory and physical foundations of the ideas will be developed that not only will provide error bounds with respect to full precision results, but also will enable major energy efficiency improvements even when there is no freedom to relax end-to-end application quality-of-results.
The mission of OPRECOMP is to demonstrate using physical demonstrators that this idea holds in a huge range of application scenarios in the domains of IoT, Big Data Analytics, Deep Learning, and HPC simulations: from the sub-milliWatt to the MegaWatt range, spanning nine orders of magnitude. In view of industrial exploitation, we will prove the quality and reliability and demonstrate that transprecision computing is the way to think about future systems.
Cristiano Malossi
IBM Research - Zurich
Research Staff Member
[email protected]
+41(0)44 724 8616
Sara Pittaluga
IBM Research – Zurich
Business Development & Relations
European Projects Specialist
[email protected]
+41(0)44 724 8567
Fabian Schuiki
ETH Zurich
[email protected]
Florian Scheidegger
IBM Research - Zurich
[email protected]
The source code in this repository is licensed under the terms of the Apache License (Version 2.0), unless otherwise specified. See LICENSE for details.