From cTuning.org

Jump to: navigation, search
Navigation: cTuning.org > CTools > ICI

If you are interested in the current projects, would like to add new project or would like to help with the implementations, you are welcome to participate in the discussions below. You are also encouraged to send a summary email to the cTuning Discussions Mailing List (mail, web view/register) to keep cTuning community informed about your feedback. Finally, you can also select a Wiki option to watch the modifications of this page.


Contents

Extend basic plugin functionality

Discussion page for basic plugin functionality



Provide universal function cloning through ICI in GCC

Description: Add support for univeral function cloning through ICI to be able to optimize clones at fine-grain level using ICI.

Who is interested?: Grigori Fursin, Cupertino Miranda

Who may have time to help?:

How to proceed?: Discussion page for ICI function cloning. It may also need program instrumentation to link external libraries and add selection calls (Discussion page for ICI program instrumentation)...



Add support for fine-grain program optimizations (select/tune individual optimizations and their parameters) and develop representation scheme

Description:

Who is interested?: Grigori Fursin, Zbigniew Chamski, Chengyong Wu

Who may have time to help?:

How to proceed?:

Discussion page for fine-grain optimization support in ICI



Describe all available optimizations (fine-grain)

Description: Describe all fine-grain program optimizations and their dependencies

Who is interested?: Grigori Fursin

Who may have time to help?:

How to proceed?: Program optimization description





Port ICI to LLVM

Description: Port ICI to LLVM to enable fine-grain program optimizations, instrumentation and analysis.

Who is interested?: Grigori Fursin, Andy Nisbet?, ISP RAS guys?

Who may have time to help?:

How to proceed?: We need to discuss differences between LLVM and GCC internal structure ...



Port ICI to GCC4NET

Description: Port ICI to GCC4NET to enable fine-grain program optimizations, instrumentation and analysis for run-time systems.

Who is interested?: Grigori Fursin, Erven Rohou, Abdul Memon

Who may have time to help?:

How to proceed?: on-going



Provide ICI program instrumentation

Description: Add support to insert function clone selection mechanisms, link external libraries (such as hardware counters monitoring routines), insert calls at the beginning and end of the function (including main) through ICI. It is needed to finalize implementation of the technique described in (FCOP2005, FMPP2007, FT2010 and FT2009)

Who is interested?: Grigori Fursin, Zbigniew Chamski, Yuri Kashnikoff, Cosmin Oancea

Who may have time to help?: Yuri Kashnikoff, Zbigniew Chamski

How to proceed?: Discussion page for ICI program instrumentation. One of many usage examples can be function cloning (Discussion page for ICI function cloning).



Add support for multi-ISA generation in GCC

Description: Add multi-ISA code generation support in GCC to extend adaptive scheduling techniques for CPU/GPU or CELL systems (JGVP2009)

Who is interested?: Grigori Fursin, Cupertino Miranda?

Who may have time to help?:  ?

How to proceed?: It can be combined with ICI function cloning




Enable transparent collection of optimization data

Description: Move prototypes from FT2010, FT2009 into GCC, ICI, CCC and cDatabase

Who is interested?: Grigori Fursin

Who may have time to help?: Grigori Fursin?

How to proceed?: it is a long-term project and requires combination of ICI function cloning and ICI program instrumentation.




Add support for source-to-source compilation in GCC

Description: Convert multiple internal GCC representations back to the source code to be able to create various function clones and compile/optimize them for heterogeneous architectures with the explicit memory transfers, etc. It could be useful for many R&D projects.

Who is interested?: Grigori Fursin

Who may have time to help?:

How to proceed?: long-term project - any help is appreciated ... Can be useful for analysis tools, cross-compilation, code generation and optimization for CPU-GPU and other heterogeneous systems




Add code generation for NVIDIA GPU

Description: Add code generation for NVIDIA GPU (similar to CUDA) + combine with ICI function cloning and run-time adaptation techniques

Who is interested?: Grigori Fursin, Sean Halle?, Zbigniew Chamski?

Who may have time to help?:

How to proceed?: can enable research on an adaptive high-level abstraction layer and unified view of future heterogeneous architectures (data partitioning and adaptive code scheduling).



Provide a unified view of heterogeneous architectures (CPU/GPU, CELL-like, FPGA, accelerators), optimizations and data movement/partitioning with a high-level abstraction layer (architectures, compilers, run-time systems) to automate and simplify program development and optimization for heterogeneous multi-core systems

Description: Enable automatic run-time adaptation for heterogeneous systems (scheduling, code and data partitioning) and extend the framework described in JGVP2009. Take a look at recent OpenCL - it has similar framework and ideas and can become a standard.

Who is interested?: Grigori Fursin, Sean Halle?

Who may have time to help?:

How to proceed?: start discussion



Program phase detection based on hardware counters (to select statically pre-optimized code versions, reconfigure processor at run-time or for fault-tolerance)

Description: I would like to port my old framework based on PathScale compiler FCOP2005 to GCC and combine with ICI, function cloning and multi-ISA code generation.

Who is interested?: Grigori Fursin

Who may have time to help?:

How to proceed?:



Change machine description and customize machine instruction set using ICI without recompiling GCC

Description: Needed for to support research on optimizations for reconfigurable architectures, or simply support GCC retargeting for new architectures without GCC recompilation ... Combine with CCC Framework to automate architectural design space exploration.

Who is interested?: Grigori Fursin

Who may have time to help?:

How to proceed?:



Evaluating polyhedral transformations in GCC

Description: Add support for automatic polyhedral optimizations (GRAPHITE) within CCC Framework and evaluate iterative polyhedral transformations in combination with traditional transformations to automate program optimization and parallelization (thread partitioning).

Who is interested?: Grigori Fursin, Anna Beletska, Sebastian Pop?

Who may have time to help?:

How to proceed?: Discussion page for polyhedral optimizations in GCC



Program static feature extractor

Description: Extract program static features that can be used to predict good optimizations based on statistical and machine learning techniques.

Who is interested?: Mircea Namolaru, Grigori Fursin

Who may have time to help?: Mircea Namolaru

How to proceed?: on-going within MILEPOST project (porting to GCC 4.4)



GCC Thread Level Speculation Support

Description: Provide library and instrumentation support (memory access instructions)

Who is interested?: Cosmin Oancea, Grigori Fursin

Who may have time to help?: Cosmin Oancea

How to proceed?: on-going but help with instrumentation will be appreciated (Discussion page for ICI program instrumentation)



Program performance calculation/memory bound analyzer

Description: Provide library and instrumentation support (memory access instructions) based on FOTP2004, FUR2004 and old EOS Framework

Who is interested?: Grigori Fursin

Who may have time to help?:

How to proceed?: Discussion page for ICI program instrumentation



Dummy (add new project)

Description:

Who is interested?: <please, add yourself>

Who may have time to help?: <please, add yourself>

How to proceed?: start discussion

Locations of visitors to this page

Tweet