LiteFlow is a framework to embed a trained neural network into Linux kernel datapath with predictable performance. It provides API to automatically deploy and compress if needed a neural network trained with TensorFlow (We are supporting more!) in user space to Linux kernel. LiteFlow also provides standard API to make the deployed neural networks to interact with Linux kernel datapath, such as TCP congestion control (We are supporting more). LiteFlow also exposes standard API to user space for collecting data used in online learning.
The key of LiteFlow is to provide predictable performance neural network for Linux kernel datapath without the ease to train and re-train model in user space. LiteFlow uses performance centric model compression techniques to make the trained neural network suitable for Linux kernel, and dynamically load the model into the kernel. LiteFlow also provides model rollback functions to ensure the correctness of datapath.
- Clone from Github
git clone git@github.com:liteflow/liteflow.git
- Install using APT
apt install -y build-essential libnl-3-dev libnl-genl-3-dev pkg-config linux-headers-generic python3 python3-pip
- Install using pip3
pip3 install -U pip
pip3 install -r nn-loader/requirements.txt
- Build LiteFlow
make all
- Install kernel module
make module_install
to install LiteFlow general kernel.
- Install LiteFlow extensions.
1). If you would like to use LiteFlow with TCP congestion control, you should also install LiteFlow TCP kernel.
make tcp_kernel_install
2). If you would like to use LiteFlow with packet filtering (netfilter), you should also install LiteFlow Netfilter kernel.
make tcp_netfilter_install
- Install user space library
make lib_install
- Install python library
cd python
sudo python3 setup.py install
- Let's GO!!!