LithOS: An Operating System for Efficient Machine Learning on GPUs — Detailed Summary

Patrick H. Coppock, Brian Zhang, Eliot H. Solomon, Vasilis Kypriotis, Leon Yang†, Bikash Sharma†, Dan Schatzberg†, Todd C. Mowry, Dimitrios Skarlatos | Carnegie Mellon University / †Meta | SOSP '25 (31st ACM Symposium on Operating Systems Principles), Seoul, Oct 13–16 2025 | DOI: 10.1145/3731569.3764818

Per-section summary organized by the paper's heading structure. Each section includes paragraph-level bullet points and exact quantitative results where the paper provides them. All named components, equations, the Prelude algorithm, and the full experimental setup are preserved.


Abstract


1. Introduction

1.1 Our Approach: An Operating System for GPUs


2.1 A Brief Background on GPUs


3. Motivation

3.1 Understanding GPU Utilization in Datacenters


4. Abstractions, Interfaces, and Principles for a GPU Operating System

4.1 Resources and Isolation

4.2 Closing the Gap


5. LithOS Design

5.1 Architecture Overview

5.2 Interface with Userspace

5.3 TPC Scheduler

5.4 Kernel Atomizer

5.5 Right-Sizing Hardware Resources

5.6 Transparent Power Management

5.7 Online Latency Prediction


6. Implementation


7. Experimental Setup and Methodology

Table 1 — Training model parameters:

Model Mem. (GiB) Batch Size Latency (ms)
VGG-19 17.4 120 291
ResNet-50 18.4 184 281
MobileNetV2 18.4 216 254
DLRM 6.7 32768 74
BERT-Large 17.3 20 159
Llama 3 Finetuning 32.0 4 690

Table 2 — Inference services (inference-only multitenancy):

Model Framework Load (rps) Constraint (ms)
ResNet TensorRT 1000 15
RetinaNet ONNX Runtime 9 100
Llama 3 TensorRT-LLM 0.5 2000
GPT-J TensorRT-LLM 0.5 2000
BERT TensorRT 30 130

8. Evaluation

8.1 Performance in Multitenant Environments

8.2 Kernel-SM Right-Sizing

8.3 Kernel-Dependent DVFS

8.4 Ablation and Case Studies


9. Discussion


10. Conclusion


System Architecture (block-diagram description)

+-----------------------------------------------------------------------+
| Unmodified Apps / Frameworks                                          |
|  TensorRT (HP A)   JAX (HP B)   PyTorch (BE)                          |
+-----------------------------------------------------------------------+
|                       LibLithOS  (mimics native CUDA)                 |
+-----------------------------------------------------------------------+
| LithOS core                                                          |
|  +-------------+  +-----------------+  +--------------+  +----------+ |
|  | TPC         |  | Kernel Atomizer |  | Hardware     |  | Power    | |
|  | Scheduler   |  | (atoms/Prelude) |  | Right-sizing |  | Mgmt/DVFS| |
|  | + Stealing  |  |                 |  | l=m/t+b      |  | f_final  | |
|  +-------------+  +-----------------+  +--------------+  +----------+ |
|        \_______________ Online Latency Prediction _______________/   |
+-----------------------------------------------------------------------+
|                       GPU Device Driver                              |
+-----------------------------------------------------------------------+
|        GPU Hardware:  [TPC0][TPC1][TPC2]...[TPCn] + Memory            |
+-----------------------------------------------------------------------+

Flow (Fig. 9):  app -> (1) launch queue buffer -> (2) TPC quota check ->
(3) kernel atomization -> (4) dispatch to TPC-mapped device queues ->
(5) sync-queue/Tracker throttle (100us) ; (6) right-sizing & (7) DVFS
consult the latency predictor.

Limitations and Future Work (author-stated)


Named Components, Equations, and Algorithm (reference)


Note on Collective Communication