CoreRuntime¶
This document provides step-by-step instructions for setting up, building, and testing the DeliteAI coreruntime and the DeliteAI Python SDK.
Setup Instructions¶
1. Clone Repository¶
git clone git@https://github.com/NimbleEdge/deliteAI.git
2. Install build dependencies¶
./setup.sh --sdk python
3. Setup Virtual Environment and install requirements¶
python3 -m venv <path-to-virtual-env>
source <path-to-virtual-env>/bin/activate
cd $GIT_ROOT/coreruntime
pip3 install -r requirements.txt
Build Instructions¶
Build Coreruntime¶
Navigate to $GIT_ROOT/coreruntime
and run:
export GIT_ROOT="$(git rev-parse --show-toplevel)"
./build.py
This will compile an executable build/nimble_client/nimble_client
from main.cpp
.
Build python SDK¶
Pre-requisite:
python3 -m pip install "pybind11[global]"
Run:
cd $GIT_ROOT/coreruntime
./build.py --simulator
Testing and Coverage¶
Pre-requisite: Set up mockserver.
Run Coreruntime tests¶
cd $GIT_ROOT/coreruntime
rm -rf build
./build.py --testing
cd build
./nimbletest
Run python SDK tests¶
cd $GIT_ROOT/coreruntime
./build.py --simulator
cd ../nimblenet_py/simulation_tests/
python3 -m pytest
Get Coverage data¶
Pre-requisite: For Linux, since we are using Clang for compilation, appropriate gcov needs to be
used. First, identify the clang version being used, using clang --version
. Then pass this extra
argument in all the above gcov commands
--gcov-executable="/usr/lib/llvm-{clang version}/bin/llvm-cov gcov"
.
Run for nimbletest¶
cd $GIT_ROOT/coreruntime
rm -rf build
./build.py --testing --coverage
cd build
./nimbletest
cd ..
gcovr --html-nested coverage.html
open coverage.html
Run for simulator tests¶
cd $GIT_ROOT/coreruntime
./build.py --simulator --coverage
cd $GIT_ROOT/nimblenet_py/simulation_tests
python3 -m pytest
cd ../..
gcovr --html-nested coverage.html
open coverage.html
The above two will generate html files with directory structure.
To get merged data from the above two:
Instead of gcovr --html-nested coverage.html
do gcovr --json run-1.json
and
gcovr --json run-2.json
for nimbletest and simulation_tests respectively and then merge the two
files using gcovr --json-add-tracefile "run-*.json" --html-details coverage.html
.
This won’t generate nested directory structure.