Home

Awesome

Github repository for Gpu-let Prototype

To maximize the resource efficiency of inference servers, we proposed a key mechanism to exploit hardware support for spatial partitioning of GPU resources. With the partitioning mechanism, a new abstraction layer of GPU resources is created with configurable GPU resources. The scheduler assigns requests to virtual GPUs, called Gpu-lets, with the most effective amount of resources. The prototype framework auto-scales the required number of GPUs for a given workloads, minimizing the cost for cloud-based inference servers. The prototype framework also deploys a remedy for potential interference effects when two ML tasks are running concurrently in a GPU.

Evaluated Environment

OS/Software

Hardware

The prototype was evaluated with multi-GPU server with the following hardware:

Getting Started

Prerequisites

Install the following libraries and drivers to build the prototype

Step-by-step building instructions

  1. Download libtorch and extract all the content as 'libtorch' under the root directory of this repo. (example: 'glet/libtorch')

  2. Go to 'scripts/'

cd scripts

  1. Execute 'build_all.sh'

./build_all.sh

The script will use cmake to auto-configure build environments and build binaries.

Running Examples

More Example scripts will be added in the future

Below are step-by-step examples for running the server and standalone components

Executing inference on a single local GPU

Use 'execLocal.sh' to execute ML inference on local GPU. Useful for testing whether you have installed compatible SW stack and profiling latency.

  1. Make sure you have downloaded models you want to execute and store them under 'resource/models/'.

  2. Go to 'scripts/'

cd scripts

  1. Execute execLocal.sh with parameters: 1) name of model you want to execute, 2) number of executions 3) batch size 4) interval between executions 5) (optional) percentage of computing resource.

example) ./execLocal.sh resnet50 1000 1 0.1 50

(TBD) Executing offline scheduler

Highly recommended that you replace example profile files with profile info on the platform you wish to execute

(TBD) Multi servers for multi nodes

Future Plans (Updated 2022-12-12)

Below is a list of items/features that are planned to be added to this repo.

Contact

If you have any suggestions or questions feel free to send me an Email:

sbchoi@casys.kaist.ac.kr

Academic and Conference Papers

[ATC] "Serving Heterogeneous Machine Learning Models on Multi-GPU Servers with Spatio-Temporal Sharing", accepted for The 2022 USENIX Annual Technical Conference, July, 2022