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.7.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (4.7 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

aidge_core-0.7.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (4.7 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

aidge_core-0.7.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (4.7 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

aidge_core-0.7.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (4.7 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

File details

Details for the file aidge_core-0.7.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for aidge_core-0.7.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3b4a3654612a0eca3c8c7db64f35c2477803a620927ab74569f08474d5015eea
MD5 e5486fd810d7d4c53db3cf11120115b8
BLAKE2b-256 294915a5d19c91f273cc0fc0cd676dcca58c92c853e6577c686375d8901571f8

See more details on using hashes here.

File details

Details for the file aidge_core-0.7.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for aidge_core-0.7.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 496bd3dc7380e6ecf7d9e20984a0b4accb894975cc1589a0d2c87f7738d906ab
MD5 dad03d87ccff398cc5906841b27934ec
BLAKE2b-256 dc7e3b1095342e01b09ecf4726f79622336e87fe3ef536ddec913cc13a164ff5

See more details on using hashes here.

File details

Details for the file aidge_core-0.7.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for aidge_core-0.7.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 48ab0abd18b160e3faf43965bbe63a9d4d4e8965b9efbb608ecf91f57ebd710f
MD5 a06ff41b6273c21978f371c53a52626d
BLAKE2b-256 678a396a17709fa0a7596ce47649703a983b71c87bfcf58137604aa98698a229

See more details on using hashes here.

File details

Details for the file aidge_core-0.7.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for aidge_core-0.7.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 fcad1b460e1b8be5f80459b8c2d3c8dab99b35be2678ea41f7e3487e20bcd516
MD5 2eb22452f718d55487a3b925b32d4296
BLAKE2b-256 4626eb460c65414e5fa8c8b0f2a3dd606fc60f7355615a868f84da69d97c1835

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