Tools



ArchExplorer

Computer architects agree that reproducing experimental results of architectural ideas is currently a daunting task as simulators are not systematically disseminated. ArchExplorer is a new web infrastructure that aims at facilitating a fair quantitative comparison of architectural ideas by providing a repository of research implementations and permanently exploring the design space as to tune the available mechanisms.

Collective Benchmark

Collective Benchmark is a collection of open-source programs with multiple datasets assembled by the community to enable realistic benchmarking, performance evaluation and research on program and architecture optimization. This benchmark can work directly with the Continuous Collective Compilation Framework and Collective Optimization Database to automate iterative feedback-directed compilation, DSE and enable statistical collective optimization.

Collective Optimization Database

Collective Optimization Database (cDatabase) is a collaborative repository with open API to share, reuse and reference useful/profitable optimization cases from the community including compiler optimizations and architecture configurations to improve code execution time, code and architecture size, compilation time, power consumption among others. Special web-services, plugins and cTools are provided/being developed to automate/predict program optimization, compiler tuning and architecture design using empirical iterative compilation, statistical analysis and machine learning techniques. cDatabase is intended to improve the quality of academic research by avoiding costly duplicate experiments and providing reproducible referable results.

Continuous Collective Compilation Framework

Continuous Collective Compilation Framework (CCC) is a collaborative modular plugin-enabled R&D infrastructure to automate program and architecture optimizations using empirical, iterative, statistical and machine learning techniques and simplify performance evaluation and gathering of optimization statistics in the Collective Optimization Database.

CPPC

CPPC (ComPiler for Portable Checkpointing) is a checkpointing tool focused on the insertion of fault tolerance into long-running message-passing applications. It is designed to allow for execution restart on different architectures and/or operating systems, also supporting checkpointing over heterogeneous systems, such as the Grid. It uses portable code and protocols, and generates portable checkpoint files while avoiding traditional solutions which add an unscalable overhead (such as runtime coordination or message-logging).

Diablo

Diablo is a retargetable link-time binary rewriting framework. While our focus has been mostly on program compaction, binary rewriting has a much broader range of applications: speed optimizations, power consumption optimizations, size optimizations, program obfuscation and watermarking, instrumentation, etc. A binary rewriting framework is also very useful for program analysis and understanding. For instance, Diablo can print out the control flow graph for all functions in a program, annotated with for example liveness information.

GAUT: From C to RTL

GAUT is an academic and open source High-Level Synthesis (HLS) tool dedicated to Digital Signal Processing DSP applications. Starting from a pure C/C++ function GAUT extracts the potential parallelism before selecting/allocating operators, scheduling and binding operations.

MAMPS

Designing and programming multi-processor systems prove to be a major challenge. Most of the current design methodologies rely on creating the design by hand, and are therefore error-prone and time-consuming. MAMPS - Multi-Application Multi-Processor Synthesis is a tool that allows you to generate and program multi-processor designs targeting Xilinx FPGAs in seconds. The design flow supports multiple use-cases of multiple applications.

MILEPOST GCC with Interactive Compilation Interface

MILEPOST GCC is an open collaborative plugin infrastructure intended to transform popular, stable, production-quality GCC into a powerful R&D tool. MILEPOST GCC is composed of the Interactive Compilation Interface and a static program feature extractor.The Interactive Compilation Interface (or 'ICI' for short) is a plugin system with a high-level compiler-independent and low-level compiler-dependent API to transform current compilers into collaborative open modular interactive toolsets.