CGPE: Code Generation for Polynomial Evaluation


Automated synthesis of fast and certified code for the evaluation of polynomials,

... and sum and dot-product expressions.

CGPE is a software tool whose initial purpose is to help in synthesizing fast and certified codes for the evaluation of univariate and bivariate polynomials, in fixed-point arithmetic, and optimized for a specific target architecture. So far it has been extended to handle sum and dot-product expressions.

CGPE is particularly optimized for the automatic implementation of bivariate polynomial evaluation for VLIW processors. Given the polynomial coefficients and some features of the target architecture (number of issues, number of multipliers, latency of operators), it writes and certifies automatically a C code for evaluating the considered polynomial optimized for the given target. CGPE has already been used for generating about 50 % of the codes of the FLIP library, optimized for the ST231 (4-issue VLIW embedded integer processor of the ST200 family from STMicroelectronics).

CGPE is developed by DALI project-team from Université de Perpignan Via Domitia and Laboratoire d'Informatique, de Robotique et de Microélectronique de Montpellier (CNRS: UMR 5506 and UM2). Previously it was developed by the AriC (formerly Arénaire) INRIA Grenoble - Rhône-Alpes project-team from LIP laboratory at ENS-Lyon.

It is written by Guillaume Revy, Christophe Mouilleron, Amine Najahi, and Hugues de Lassus Saint-Geniè.

Main features


Installation prerequisites

In order to compile CGPE, you will need the following packages installed: You will also need Gappa (>= 0.16.1) installed.

Documentation and examples

Related publications

[6] Toward the synthesis of fixed-point code for matrix inversion based on Cholesky decomposition. Matthieu Martel, Amine Najahin and Guillaume Revy. In 6th Conference on Design and Architectures for Signal and Image Processing (DASIP 2014), Madrid, Spain, 8-10 October 2014. [BibTeX][PDF]
[5] Automated Synthesis of Target-Dependent Programs for Polynomial Evaluation in Fixed-Point Arithmetic. Christophe Mouilleron, Amine Najahi, and Guillaume Revy. In 16th International Symposium on Symbolic and Numeric Algorithms for Scientific Computing (SYNASC 2014), Timisoara, Romania, 22-25 September 2014. [PDF][BibTeX][lirmm-00814338]
[4] Approach based on instruction selection for fast and certified code generation. Christophe Mouilleron, Amine Najahi, and Guillaume Revy. In 15th GAMM-IMACS International Symposium on Scientific Computing, Computer Arithmetic and Validated Numerics (SCAN'2012), Novosibirsk, Russia, 23-29 September 2012. [BibTeX][lirmm-00813055]
[3] Efficient computation with structured matrices and arithmetic expressions. Christophe Mouilleron. Ph.D. thesis, Université de Lyon - ENS de Lyon, France, 4 November 2011. [PDF]
[2] Automatic Generation of Fast and Certified Code for Polynomial Evaluation. Christophe Mouilleron and Guillaume Revy. In E. Antelo, D. Hough, and P. Ienne, editors, 20th IEEE Symposium on Computer Arithmetic (ARITH'20), pages 233-242, Tuebingen, Germany, 25-27 July 2011. [DOI][BibTex]
[1] Implementation of binary floating-point arithmetic on embedded integer processors - Polynomial evaluation-based algorithms and certified code generation. Guillaume Revy. Ph.D. thesis, Université de Lyon - ENS Lyon, France, 1 December 2009.[tel-00469661][PDF][BibTex]


Copyright © 2007-2013 by
CGPE is governed by the CeCILL v2 license under French law and abiding by the rules of distribution of free software. You can use, modify and/or redistribute the software under the terms of the CeCILL v2 license as circulated by CEA, CNRS and INRIA at the following URL (see also COPYING.CeCILL-V2-en or COPYING.CeCILL-V2-fr for details).
Guillaume Revy
Last updated: 11-18-2020 17:45:36 CET.