From c2b64fc918b314ab1a7be17753d9e24266d6a569 Mon Sep 17 00:00:00 2001 From: Yifan Zhao <yifanz16@illinois.edu> Date: Mon, 15 Mar 2021 16:58:34 -0500 Subject: [PATCH] Updated documentation --- doc/getting_started.rst | 83 ++++++++++++++++++++++----------- doc/tuning_result.png | Bin 25922 -> 26895 bytes examples/tune_vgg16_cifar10.py | 2 +- 3 files changed, 58 insertions(+), 27 deletions(-) diff --git a/doc/getting_started.rst b/doc/getting_started.rst index 867707b..5d8472a 100644 --- a/doc/getting_started.rst +++ b/doc/getting_started.rst @@ -23,7 +23,7 @@ but it is optimized for tuning DNN applications defined in PyTorch. We will use models predefined in PredTuner for demonstration purposes. Download pretrained VGG16 model parameters and CIFAR10 dataset from `here <https://drive.google.com/file/d/1Z84z-nsv_nbrr8t9i28UoxSJg-Sd_Ddu/view?usp=sharing>`_. -After extraction, there should be a :code:`model_params/` folder in current directory. +After extraction, there should be a `model_params/` folder in current directory. Load the tuning and test subsets of CIFAR10 dataset, and create a pretrained VGG16 model: @@ -55,7 +55,7 @@ while the test dataset is used to evaluate configurations found in autotuning. This is similar to the split between training and validation set in machine learning tasks. In this case, both tuning and test datasets contain 5000 images. -Create an instance of :code:`TorchApp` for tuning PyTorch DNN: +Create an instance of `TorchApp` for tuning PyTorch DNN: .. code-block:: python @@ -69,17 +69,17 @@ Create an instance of :code:`TorchApp` for tuning PyTorch DNN: model_storage_folder="vgg16_cifar10/", ) -PredTuner provides :code:`TorchApp`, which is specialized for the use scenario of tuning PyTorch DNNs. +PredTuner provides `TorchApp`, which is specialized for the use scenario of tuning PyTorch DNNs. In addition, two more functions from PredTuner are used: -:code:`pt.accuracy` is the *classification accuracy* metric, +`pt.accuracy` is the *classification accuracy* metric, which receives the probability distribution output from the VGG16 model, compare it to the groundtruth in the dataset, and returns a scalar between 0 and 100 for the classification accuracy -:code:`pt.get_knobs_from_file()` returns a set of approximations preloaded in PredTuner, -which are applied to :code:`torch.nn.Conv2d` layers. -See ??? for these approximations and how to define your own approximations. +`pt.get_knobs_from_file()` returns a set of approximations preloaded in PredTuner, +which are applied to `torch.nn.Conv2d` layers. +See ??? for these approximations and how to define custom approximations. Now we can obtain a tuner object from the application and start tuning. We will keep configurations that don't exceed 3% loss of accuracy, @@ -89,21 +89,36 @@ but encourage the tuner to find configurations with loss of accuracy below 2.1%. tuner = app.get_tuner() tuner.tune( - max_iter=100, - qos_tuner_threshold=2.1, # QoS threshold to guide tuner into - qos_keep_threshold=3.0, # QoS threshold for which we actually keep the thresholds - is_threshold_relative=True, # Thresholds are relative to baseline -- baseline_acc - 2.1 - perf_model="perf_linear", # Use linear performance predictor + max_iter=500, + qos_tuner_threshold=2.1, # QoS threshold to guide tuner into + qos_keep_threshold=3.0, # QoS threshold for which we actually keep the configurations + is_threshold_relative=True, # Thresholds are relative to baseline -- baseline_acc - 2.1 + take_best_n=50, + cost_model="cost_linear", # Use linear cost predictor ) -:code:`max_iter` defines the number of iterations to use in autotuning. -100 iterations is for demonstration; in practice, +**QoS** (quality of service) is a general term for the quality of application after approximations are applied; +e.g., here it refers to the accuracy of DNN over given datasets. +We will be using the term QoS throughout the tutorials. + +`max_iter` defines the number of iterations to use in autotuning. +Within 500 iterations, PredTuner should find about 200 valid configurations. +PredTuner will also automatically mark out `Pareto-optimal +<https://en.wikipedia.org/wiki/Pareto_efficiency>`_ +configurations. +These are called "best" configurations (`tuner.best_configs`), +in contrast to "valid" configurations which are the configurations that satisfy our accuracy requirements +(`tuner.kept_configs`). +`take_best_n` allows taking some extra close-optimal configurations in addition to Pareto-optimal ones. + +500 iterations is for demonstration; in practice, at least 10000 iterations are necessary on VGG16-sized models to converge to a set of good configurations. +Depending on hardware performance, this tuning should take several minutes to several tens of minutes. Saving Tuning Results --------------------- -Now the :code:`tuner` object holds the tuning results, +Now the `tuner` object holds the tuning results, we can export it into a json file, and visualize all configurations in a figure: @@ -113,21 +128,37 @@ and visualize all configurations in a figure: fig = tuner.plot_configs(show_qos_loss=True) fig.savefig("vgg16_cifar10/configs.png") -PredTuner will also automatically mark out `Pareto-optimal -<https://en.wikipedia.org/wiki/Pareto_efficiency>`_ -configurations. -These are called "best" configurations (:code:`tuner.best_configs`), -in contrast to "valid" configurations which are the configurations that satisfy our accuracy requirements -(:code:`tuner.kept_configs`). - -Within 100 iterations, PredTuner should find 30~50 valid configurations. The generated figure should look like this: .. image:: tuning_result.png +where the blue points shows the QoS and speedup of all valid configurations, +and the "best" configurations are marked out in orange. + +Autotuning with a QoS Model +------------------------------------- + +The previous tuning session shown above is already slow, +and will be much slower with larger models, more iterations, and multiple tuning thresholds. +Instead, we can use a *QoS prediction model* which predicts the QoS, +with some inaccuracies, but much faster than running the application. +To do that, simply use the argument `qos_model` when calling `tuner.tune()`: -Loading Tuning Results ----------------------- +.. code-block:: python -TODO: TODO + tuner = app.get_tuner() + tuner.tune( + max_iter=500, + qos_tuner_threshold=2.1, # QoS threshold to guide tuner into + qos_keep_threshold=3.0, # QoS threshold for which we actually keep the configurations + is_threshold_relative=True, # Thresholds are relative to baseline -- baseline_acc - 2.1 + take_best_n=50, + cost_model="cost_linear", # Use linear cost predictor + qos_model="qos_p1" + ) +The QoS model will first undergo a initialization stage (takes a bit of time), +when it learns about the behavior of each knob on each operator (DNN layer). +Because the configurations will end up with predicted QoS values after tuning, +this will add a *validation* stage at the end of tuning where the QoS of best configurations are empirically measured, +and the bad ones are removed. diff --git a/doc/tuning_result.png b/doc/tuning_result.png index d3854041d97ab51be43aa08e563f1850bba19f48..6210102982aefa78a796a7a8593fe766e802dbf9 100644 GIT binary patch literal 26895 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 UtCH6jUrt2P0p#SCrg^}B0n8nh=Kufz literal 25922 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 B!(;#e diff --git a/examples/tune_vgg16_cifar10.py b/examples/tune_vgg16_cifar10.py index 1e6caa6..ce8e5a8 100644 --- a/examples/tune_vgg16_cifar10.py +++ b/examples/tune_vgg16_cifar10.py @@ -44,7 +44,7 @@ tuner = app.get_tuner() tuner.tune( max_iter=500, # TODO: In practice, use at least 5000, or 10000 qos_tuner_threshold=2.1, # QoS threshold to guide tuner into - qos_keep_threshold=3.0, # QoS threshold for which we actually keep the thresholds + qos_keep_threshold=3.0, # QoS threshold for which we actually keep the configurations is_threshold_relative=True, # Thresholds are relative to baseline -- baseline_acc - 2.1 cost_model="cost_linear", # Use linear performance predictor qos_model="qos_p1", # Use P1 QoS predictor -- GitLab