From f6e3cf2f01e78640bb9894567e16ab2f45038941 Mon Sep 17 00:00:00 2001 From: Yifan Zhao <yifanz16@illinois.edu> Date: Sat, 23 Jan 2021 21:56:45 -0600 Subject: [PATCH] Removed API developer note -- will be in readme --- notes.md | 54 ------------------------------------------------------ 1 file changed, 54 deletions(-) delete mode 100644 notes.md diff --git a/notes.md b/notes.md deleted file mode 100644 index 1f1fa5d..0000000 --- a/notes.md +++ /dev/null @@ -1,54 +0,0 @@ -## General API (Level 1) - -- Knob: - - A name -- constant - - kwargs (for knob parameter, for example: 25% in 25% perforation) -- constant - - Whether coexist with another knob or not -- method - - Useful when we want to support multiple knobs in an op - -- Application: - - List of knobs for each operator -- constant - - (We provide a knob value for "baseline" and sneak that in each layer) - - Argparser extra arguments -- static method - - How to measure QoS & performance given a configuration -- method - - Input? Don't care - - Empirical or modeled? Don't care - - This is a minimal interface to interact with `opentuner`, nothing ApproxTuner yet. - -## Predictive Tuning (Level 2) - -Performance model + QoS model (P1, P2) - -- Performance model (linear combination of operator cost * speedup of knob) - - Requires list of operator cost - - Requires table of knob speedup on layer - -- QoS P1 (linear in tensor output) - - Requires tensor output of each single knob - -- QoS P2 (linear in QoS) - - Requires QoS of each single knob - -- Predict-tunable application - - User should inherit from a number of interfaces. Inherit P1Interface -> can use P1, etc. - - Detect self capability using `isinstance(self, ...)` and offers argparser extra arguments - (or config file entries). - -## Predictive Tuning for PyTorch Modules (Level 3) - -Automate some definitions using inspection on module - -- PyTorch application - - *Provides list of operators and cost in FLOPs - - *Provides function for running inference on module and combining output - - *Implements P2 - - *Implements P1 if output is tensor - - Require a PyTorch module - - Require an input dataset - -## API usage - -- User defines classes for knobs - - Perforation, sampling... -- User defines application - - Most general: just `Application`. Useful for tuning a binary, for example. -- GitLab