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

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

aidge_core-0.6.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.0 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

aidge_core-0.6.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (4.1 MB view details)

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

aidge_core-0.6.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.1 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

aidge_core-0.6.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (4.2 MB view details)

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

aidge_core-0.6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.1 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

aidge_core-0.6.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (4.1 MB view details)

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

aidge_core-0.6.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.1 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

File details

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

File metadata

File hashes

Hashes for aidge_core-0.6.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 22a84fc627d68137f8527a36561a0b6eabee5b9af8d8d019b9bb09247c961d39
MD5 298ce135c981f61c2108bc62eaf010f2
BLAKE2b-256 18bc796ea1d16206192caed328d868f79c86ef926e1233369fe0c4935ad50b87

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aidge_core-0.6.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 bf5f804ee26b91ca2422d29d251e581effef15f935dc4aee05023dc73cd711f4
MD5 f40bf83bb7288d12ebfd2b3fac814eb0
BLAKE2b-256 40a6ba5cb6105c3bc4ad5b818438bbbf01064e288e0c753406b7218ca237ca34

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aidge_core-0.6.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ad4a1f83fb36b33cc8c986e3709270dc71b2c40e2e97c1b0557c3d12bc95462b
MD5 2a95f7320b9ca5d79ba6c6c6401e12a7
BLAKE2b-256 c42d4a500a64ecf406058f4fefc75ea0e1b67bf655b736797b30c3545da10b0a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aidge_core-0.6.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 eecde4cce4f15398aac3f9f3f64b6979751f5488c9d3ba119274b4a0c881fe08
MD5 5fbbebc57b105eb8c3c54caa3405b06c
BLAKE2b-256 e1ca14ce7a4bc0d596e97468ee1ab051701404468c419bd7597bc711a8b1e447

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aidge_core-0.6.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 41e87e2ceaabd5fda87e16ae6c80668232bda710c69a79b6580221148b117796
MD5 70d8a51500ace9dce4552224043c0a83
BLAKE2b-256 f5b85d0a8f9f82def09cba851fda84d1cdb1186a82039cd4066337f85f552985

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aidge_core-0.6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4c6d34faada4e4479c2692086d987f47f4eb5b06391a1a3f7d12b219e6e104db
MD5 0c2c62e6ff4412206385c179975d1ae9
BLAKE2b-256 a80ca5935f9cde2d52ce81bccc48a3868515cc6239c651c6d19829b576067de7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aidge_core-0.6.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 cdfe711d583c627f67003a6cc96e01a5ee8e617922dd80f39d4772767b49532b
MD5 0b2502a2d421c4e05dd8ede12659261c
BLAKE2b-256 abb49f94fa12e0efd4c6091d86ac8b469a9bded860a9aabb84f8deeb79ac28d9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aidge_core-0.6.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e10d3e207c62b7a37ced03ce24df496c7956801779b781f151b6d607a4cca56a
MD5 be1ce74bcede6bbe5de9f701067b9478
BLAKE2b-256 905b543f0225ae56f975ef8f6cb7212a7891a03025abbc1a821d33f54ab54a6b

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