Skip to content

HydraZeng/liteflow

 
 

Repository files navigation

LiteFlow

logo

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.

Build Status

Clone the repo

  1. Clone from Github
git clone git@github.com:liteflow/liteflow.git

Install Dependencies

  1. Install using APT
apt install -y build-essential libnl-3-dev libnl-genl-3-dev pkg-config linux-headers-generic python3 python3-pip 
  1. Install using pip3
pip3 install -U pip
pip3 install -r nn-loader/requirements.txt

Building LiteFlow

  1. Build LiteFlow
make all
  1. Install kernel module
make module_install

to install LiteFlow general kernel.

  1. 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
  1. Install user space library
make lib_install
  1. Install python library
cd python
sudo python3 setup.py install
  1. Let's GO!!!

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 71.0%
  • Python 23.6%
  • Objective-C 2.8%
  • Makefile 1.7%
  • C++ 0.9%