Skip to content
Snippets Groups Projects
Commit f6e3cf2f authored by Yifan Zhao's avatar Yifan Zhao
Browse files

Removed API developer note -- will be in readme

parent d260f0a6
No related branches found
No related tags found
No related merge requests found
## 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.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment