Web Analytics
Skip to content

Getting Started

This guide walks you through setting up the environment and running the SpliDT training framework.

SpliDT enables scalable and accurate model serving for decision tree–based inference in programmable data planes by partitioning decision trees into hardware-friendly subtrees.

βœ… Prerequisites

SpliDT is designed to be lightweight and portable. The system dependencies for the training framework are:

  • Conda (Miniconda or Anaconda)
  • Docker

πŸš€ Quick Start

πŸ“¦ Repository Setup

Clone the repository containing the training framework.

bash
git clone https://github.com/SpliDT-Decision-Trees/SpliDT-Artifact-NSDI26.git
cd SpliDT-Artifact-NSDI26
git submodule update --init --recursive

🏁 Installation

Create the Conda environment and install all dependencies.

bash
cd dse-and-training-framework
conda env create -f environment.yml
conda activate splidt

Ensure that the python version is Python 3.8.10 by running the following command:

bash
python --version

πŸ“Š Dataset Setup

Download the datasets used for training and evaluation.

bash
cd ~
# download the Datasets for training and testing
curl -L -H "User-Agent: Mozilla/5.0" -OJ "https://figshare.com/ndownloader/files/60593858"
Unzip the downloaded files.

bash
unzip splidt-dataset.zip

🧠 Model Training

Return to the folder SpliDT-Artifact-NSDI26/dse-and-training-framework. Modify the path field in each dataset configuration file under configs/ to reference the absolute path of the unzipped dataset directory (e.g., ~/splidt-dataset).

bash
path: "~/splidt-dataset"

Modify the script_path field in each dataset configuration file to reference the absolute path of the hypermapper.

bash
script_path: "../hypermapper/scripts/hypermapper.py"

Now, we are ready to train and test our datasets. Ensure that the conda environment splidt is activated.

Run the following command to launch the Grafana dashboards:

bash
make start-dashboards

Inside the dse-and-training-framework repository, run SpliDT training using the following command. You can change the configuration file argument to select the desired dataset provided under the configs/ folder.

bash
python src/train.py --config configs/iscxvpn-2016-c13-bo.yml

🧩 Next Steps with SpliDT

πŸ“š Learn More

πŸ› οΈ Optimizing Performance

  • Follow our Benchmarking Guide for in-depth performance evaluation
  • Comprehensively evaluate SpliDT against the baseline models

πŸ›Ÿ Getting Help

If you encounter issues:

  1. Check the documentation pages linked above
  2. Review existing GitHub issues
  3. Open a new issue with a minimal example

πŸ§‘β€πŸ’» Contributing

We welcome contributions to SpliDT! Whether it's improving documentation, fixing bugs, optimizing performance, or adding new features, your help is appreciated. Please check our Contributing Guide for guidelines on how to get started.

πŸ§‘β€πŸ’Ό Support

Need help? Here are your options: