Metalibm is available under MIT Licence (see LICENSE file) from https://github.com/kalray/metalibm/
meta-function generation report (master branch): https://nibrunie.gitlab.io/metalibm/perfs/report.master.html
Documentation (for master branch) is available on gitlab's pages: https://nibrunie.gitlab.io/metalibm/doc/index.html
-
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/)
- 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):
-
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
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
-
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
- Metalibm Description Language documentation: doc/MDL.md
- User interface documentation: doc/USERGUIDE.md
- Custom Meta-function documentation: doc/METAFUNCTION.md
- Metalibm engine optimization pass documentation: doc/PASSES.md
- Metalibm unit testing framework: doc/UNITTESTS.md
- 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
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)