Skip to content
forked from metalibm/metalibm

Code generation tool to generate mathematical libraries

License

Notifications You must be signed in to change notification settings

kalray/metalibm

 
 

Repository files navigation

Metalibm

Metalibm is available under MIT Licence (see LICENSE file) from https://github.com/kalray/metalibm/

INTEGRATION STATUS

master branch: pipeline status

meta-function generation report (master branch): https://nibrunie.gitlab.io/metalibm/perfs/report.master.html

DOCUMENTATION

Documentation (for master branch) is available on gitlab's pages: https://nibrunie.gitlab.io/metalibm/doc/index.html

INSTALL

  • Dependencies:

    • metalibm depends on master branch of pythonsollya (python wrapper to Sollya library). this dependency will be install by metalibm's setup script or it can be installed manually install (if sollya is already installed): pip install git+https://gitlab.com/metalibm-dev/pythonsollya beware that sollya master branch is required for pythonsollya master
    • Some features of Metalibm require Gappa (http://gappa.gforge.inria.fr/)
  • Python version compatibility: as of version 1.0, metalibm works with python3 (tested with 3.4).

Quick install from git sources

pip install git+https://github.com/kalray/metalibm

USAGE

Example of metafunctions can be found under the metalibm_functions/ directory.

  • Example to generate a faithful (default) approximation of the exponential function for single precision on a x86 AVX2 target: python3 metalibm_functions/ml_exp.py --precision binary32 --target x86_avx2 --output x86_avx2_exp_fp32.c

  • Explore the other functions of this directory, e.g. : python3 metalibm_functions/ml_log.py --help

A more comprehensive user documentation can be found in doc/USERGUIDE.md

TEST

  • Unit-testing (software code generation): python3 valid/soft_unit_test.py

  • Unit-testing (hardware code generation): python3 valid/rtl_unit_test.py

  • Non-regression tests (software code generation): python3 valid/non_regression.py

  • Non-regression tests (hardware code generation): python3 valid/hw_non_regression.py

  • Functionnal coverage (generate a report on meta-functions' generation/build/valid status): python3 valid/soft_coverage_test.py --report-only --output report.html

DOCUMENTATION

Version History

  • Version 1.0.alpha: Released March 12th, 2018: First alpha for first official version
  • Version 1.0.beta: Released March 31th, 2018: First beta for first official version

AUTHOR(S)

Nicolas Brunie (nbrunie (AT) kalray.eu), Hugues de Lassus Saint-Geniès,
Marc Mezzarobba, Guillaume Gonnachon, Florent de Dinechin, Julien Le Maire,
Julien Villette, Guillaume Revy

This work has been supported by Kalray (kalrayinc.com) and other entities
(to be listed)

About

Code generation tool to generate mathematical libraries

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 98.0%
  • C 1.8%
  • Other 0.2%