Quickstart

Even though Deeploy is a pure Python library, it uses system dependencies, including a LLVM cross-compiler, to test its code generation. Deeploy’s testing framework further uses picolibc for embedded libc implementations and CMake for its testing build flow.

Deeploy’s embedded platform targets support software emulators, in the case of ARM Cortex-M we use QEMU, for MemPool and the Snitch Cluster we use Banshee. For the PULP-Open, N-EUREKA, and Siracusa targets, we use GVSoC within the PULP-SDK.

To install these various dependencies, we prove instructions below, and a Makefile setup.

Library Installation

From a newly setup Ubuntu 20.04 installation, you may run the following sequence to install the necessary dependencies. For ARM64 machines, as of August 2024, gcc-multilib is only supported on Ubuntu 20.04. For x86_64, gcc-multilib should be available on most distributions.

Installing system dependencies

sudo apt install git git-lfs cmake build-essential ccache ninja-build pkg-config libglib2.0-dev libpixman-1-dev cargo python3 python-is-python3 curl protobuf-compiler libftdi-dev libftdi1 doxygen libsdl2-dev scons gtkwave libsndfile1-dev rsync autoconf automake texinfo libtool libsdl2-ttf-dev

In case you work on an x86_64 machine, please also install gcc-multilib:

sudo apt install gcc-multilib

In case you work on an ARM64 machine, please install gcc-multilib-arm-linux-gnueabi:

sudo apt install gcc-multilib-arm-linux-gnueabi
export $C_INCLUDE_PATH:/usr/include:/usr/include/aarch64-linux-gnu:$C_INCLUDE_PATH

Other ISA/OS combinations might work, but your mileage may vary.

Bootstrapping pip

curl "https://bootstrap.pypa.io/get-pip.py" -o "get-pip.py"
python get-pip.py
rm get-pip.py
export PATH=~/.local/bin:$PATH

Installing Deeploy

pip install -e .

Testing Framework Installation

Please make sure to use a Rust version that is compatible with LLVM 15, like 1.63.0:

sudo snap install rustup --classic
rustup install 1.63.0
rustup default 1.63.0

The Makefile expects the environemt variable CMAKE to be defined. In case you have no strong preferences, you may run

export CMAKE=$(which cmake)

to achieve this.

Finally, you should be able to run

make all

to build all Deeploy dependencies. Make sure to run

make echo-bash

to get instructions for setting up your environment.

Getting Started

To get started with Deeploy, you can run any of the regression tests in deeploytest. For example, you can run

cd DeeployTest
python testRunner_generic.py -t Tests/simpleRegression

to run the simpleRegression test on your workstation. Various other tests are available and compatibility between tests and platforms is tested in the .gitlab-ci.yml file.