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.
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.
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:
python --version
π Dataset Setup
Download the datasets used for training and evaluation.
cd ~
# download the Datasets for training and testing
curl -L -H "User-Agent: Mozilla/5.0" -OJ "https://figshare.com/ndownloader/files/60593858"
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).
path: "~/splidt-dataset"
Modify the script_path field in each dataset configuration file to reference the absolute path of the hypermapper.
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:
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.
python src/train.py --config configs/iscxvpn-2016-c13-bo.yml
π§© Next Steps with SpliDT
π Learn More
- Checkout the Benchmarking Guide for in-depth performance evaluation
- Read Technical Details to learn about SpliDT's architecture
π οΈ Optimizing Performance
- Follow our Benchmarking Guide for in-depth performance evaluation
- Comprehensively evaluate SpliDT against the baseline models
π Getting Help
If you encounter issues:
- Check the documentation pages linked above
- Review existing GitHub issues
- 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:
- Review all the documentation
- Open an issue
- Review installation guide for setup help