Skip to main content

Core algorithms for operators and graph of the AIDGE framework

Project description

Pipeline status C++ coverage Python coverage

Aidge Core library

You can find here the C++ code of the Core library of Aidge.

[TOC]

Pip installation

To install aidge_core using pip, run the following command in your python environment :

pip install . -v

TIPS : Use environment variables to change compilation options:

  • AIDGE_INSTALL : to set the installation folder. Defaults to <python_prefix>/lib/libAidge
  • AIDGE_PYTHON_BUILD_TYPE : to set the compilation mode to Debug or Release or "" (for default flags). Defaults to Release.
  • AIDGE_BUILD_GEN : to set the build backend (for development mode) or "" for the cmake default. Default to "".
  • AIDGE_BUILD_TEST : to build the C++ unit tests. Set to "ON" or "OFF". Default to "OFF".

Pip installation for development

To setup aidge_core using pip in development (or editable mode), use the --no-build-isolation -e options to pip.

For instance run the following command in your python environment for a typical setup :

export AIDGE_BUILD_TEST=ON              # enable C++ unit tests
export AIDGE_PYTHON_BUILD_TYPE=         # default flags (no debug info but fastest build time)
export AIDGE_PYTHON_BUILD_TYPE=Debug    # or if one really need to debug the C++ code
pip install -U pip setuptools setuptools_scm[toml] cmake   # Pre-install build requirements (refer to the pyproject.toml [build-system] section)
pip install -v --no-build-isolation -e .

In this configuration python files can be modified directly without re-installation.

The C++ build dir will be created in build/ and recompilation and install of python bindings can be done directly with:

make -C build install -j $(nproc)
# or with cmake
cmake --build build -j $(nproc) && cmake --install build

One can also use an alternate cmake build backend such as ninja which can be installed easily though pip, for instance :

pip install -U ninja
export AIDGE_BUILD_GEN=Ninja
pip install -v --no-build-isolation -e .

In this case ninja is used instead of make as build backend, and recompilation when needed is done with:

ninja -C build install  # note that by default ninja use available parallelism, no need for -j option
# or with cmake
cmake --build build && cmake --install build

Note that python development (or editable mode) is not always robust to changes in the python package setup, or when changing the build backend with AIDGE_BUILD_GEN. In order to re-install when the build breaks, re-execute the commands:

rm -rf *-egg-info build/
pip install -v --no-build-isolation -e .

Standard C++ Compilation

Create two directories build and ìnstall.

Then inside build :

cmake -DCMAKE_INSTALL_PREFIX:PATH=$(path_to_install_folder) $(CMAKE PARAMETERS) $(projet_root)

make all install

Compilation options

Option Value type Description
-DCMAKE_INSTALL_PREFIX:PATH str Path to the install folder
-DCMAKE_BUILD_TYPE str If Debug, compile in debug mode, Release compile with highest optimizations or "" (empty) , default= Release
-DWERROR bool If ON show warning as error during compilation phase, default=OFF
-DTEST bool If ON build C++ unit tests, default=ON
-DPYBIND bool If ON activate python binding, default=OFF
-DPYBIND_INSTALL_PREFIX:PATH str Path to the python module install folder when -DPYBIND=ON, defaults to $CMAKE_INSTALL_PREFIX/python_packages/<module>

If one compiles with -DPYBIND=ON, -DPYBIND_INSTALL_PREFIX:PATH can be used to install the python module directly in the python sources tree (for instance $PWD/aidge_core). setup.py takes care of this and installs the module at the right place.

Run tests

CPP

Inside of the build file run:

ctest --output-on-failure

Python

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

aidge_core-0.5.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.2 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

aidge_core-0.5.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.2 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

aidge_core-0.5.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.3 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

aidge_core-0.5.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.3 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

aidge_core-0.5.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.3 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

aidge_core-0.5.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.3 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

File details

Details for the file aidge_core-0.5.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for aidge_core-0.5.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 55ecb791669a2c8d4d711eb3ed743f3c1bbbe3a43b4369d88e1d229fde292f34
MD5 104bdd40bd5d44a9979f0e604713f469
BLAKE2b-256 5c018a46c1fe96632ba64b804b06a0c40a02e55b17a627205c1b72c43b13708d

See more details on using hashes here.

File details

Details for the file aidge_core-0.5.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for aidge_core-0.5.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5a532025e4c06e36e4adbc38411057f1a5316075d29b7f812ba67f876646c24e
MD5 bef459cfef47774cd03b2bcea8142d9e
BLAKE2b-256 f19e66331960f086a1e5cedae3f31e691bae1a221f0e05380a6f804c4f654ec9

See more details on using hashes here.

File details

Details for the file aidge_core-0.5.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for aidge_core-0.5.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4486576258159ac8351055107cc7113489c76f4690e827b3801e40c2aa6689b4
MD5 aacf2b516de71deb83dc86e09d900f7e
BLAKE2b-256 2fcf85ea61ff04e3d29ec2c91d5640c92cb13184a0b66951ed468914444310ab

See more details on using hashes here.

File details

Details for the file aidge_core-0.5.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for aidge_core-0.5.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d894c296da9421a97f99c28f62bc4a36730eebd1a44dae7d0d67fed19e9b075e
MD5 a8d46546e03a80a2d53e91333def6de2
BLAKE2b-256 88e480117e3790267266389295d661b2325a6ddda650e51fddd6f8ef28945ade

See more details on using hashes here.

File details

Details for the file aidge_core-0.5.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for aidge_core-0.5.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 015bd513e25e16e63c7db2fa35529535c17bf0cf120ff8a40a5bf7979dc06574
MD5 579f82d4bf16d70c85d768ce8e9ae006
BLAKE2b-256 2af74ddc446e15838cf5e1855cf66d8241ab010042d816097a967bd1a75f052e

See more details on using hashes here.

File details

Details for the file aidge_core-0.5.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for aidge_core-0.5.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e015d46749ed359b747658b8b3706a39875430a665ff493e1155d1ed42e6172a
MD5 5da07634e079854be22df1330f836a03
BLAKE2b-256 6555a7efe74baef065c91e1c0cd558a81e154926582d7c288243dac9786b0ec7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page