☝️ Please refer to the top-left corner of the README for the table of contents.
Daily Status Check (Build + Test) | Documentation |
---|---|
|
|
Thank you so much for your interest in the
project. The key objective of DietCode is to deliver high-performance programs
for dynamic-shape tensor programs. Please kindly go through the documentation
below that guides you on how to build and use the DietCode auto-scheduler
framework.
We are actively working on the RFC for upstreaming the codebase to TVM, and will post the latest updates here.
-
Minimum Requirement: A machine with a modern NVIDIA GPU and GPU driver version >= 465.19.01 (for CUDA 11.3 in the Dockerfile) [1].
-
Docker & Docker-Compose [2, 3]:
# Docker curl https://get.docker.com | sh && sudo systemctl --now enable docker
# Docker Post-Installation sudo groupadd docker sudo usermod -aG docker $USER newgrp docker
# NVIDIA Docker ./scripts/0-install_nvidia_docker.sh
# Docker-Compose sudo -H pip3 install docker-compose
-
tests
: Contains tutorial examples (as well as test cases) for testing key features (i.e., local padding, auto-scheduling, and decision-tree dispatching) in terms of correctness and runtime performance. Please click on the folder for more details. -
tvm
:that is built on top of TVM. Please refer to this page for the changes made at this branch.
-
tvm_base
: A clean TVM branch (denoted as Base) that has only a few changes (for performance benchmarking only). Please refer to this page for the changes made at this branch. -
environ
: Script files that can be activated to select different TVM branches (DietCode or Base). Note that at least one of the scripts MUST be activated before running the tests (some require the DietCode branch while others require Base):# DietCode source environ/activate_dietcode.sh
# Base source environ/activate_base.sh
-
Build and Run the Docker image:
docker-compose run --rm tvm-dev
-
Build DietCode and Base:
# DietCode ./scripts/1-build.sh tvm
# Base ./scripts/1-build.sh tvm_base
-
- Please refer to the
tests
folder that contains examples demonstrating the code generation optimizations and the auto-scheduler frontend interface of DietCode.
- Please refer to the
- [1] CUDA Compatibility. https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html#cuda-major-component-versions
- [2] Docker Post-Installation Steps. https://docs.docker.com/engine/install/linux-postinstall/#manage-docker-as-a-non-root-user
- [3] NVIDIA Docker Installation Steps. https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#installing-on-ubuntu-and-debian