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.

ATMI

Temperature has become a strong constraint when designing high-performance processors. This comes both from miniaturization and from the difficulty to continue decreasing supply voltage without severely impairing performance. Recent processors feature on-chip thermal sensors that trigger power throttling when the processor becomes too hot. It is important for researchers to take into account this constraint.

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).

cTuningCC (Collective Tuning Compiler Collection)

cTuning CC is a free, open source compiler collection that combines multiple tools and techniques including MILEPOST GCC, Interactive Compilation Interface (ICI), Continuous Collective Compilation framework (CCC), cTuning web-services and Collective Optimization Database and cBench to enable R&D toward self-tuning, adaptive computing systems based on industrial tools, empirical techniques, transparent collecti

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. The mandatory design constraints are (1) the throughput (the initiation interval), (2) the clock period and (3) the target technology. The optional design constraints are I/O timing diagram and the memory mapping.

HD-VideoBench: A benchmark for evaluating high definition video applications

HD-VideoBench is a benchmark devoted to High Definition (HD) digital video processing. It includes a set of video coders and decoders (Codecs) for the MPEG-2, MPEG-4 and H.264/AVC video coding standards. The applications were carefully selected taken into account the quality and portability of the code, the representativeness of the video application domain, the availability of high performance optimizations and the distribution under a free license.