Home

Awesome

Auto-NBA: Efficient and Effective Search Over the Joint Space of Networks, Bitwidths, and Accelerators

Yonggan Fu, Yongan Zhang, Yang Zhang, David Cox, Yingyan Lin

Accepted at ICML 2021 [Paper Link].

Overview

<p align="center"> <img src="images/overview.png" width="1000"> </p>

Method

Problem Formulation

<p align="center"> <img src="images/formulation.png" width="500"> </p>

Heterogeneous Sampling for Bit-wise Search

<p align="center"> <img src="images/hetero.png" width="500"> </p>

Differentiable Accelerator Search Engine

<p align="center"> <img src="images/das.png" width="500"> </p>

Overall Joint Search Framework

<p align="center"> <img src="images/joint-search.png" width="500"> </p>

Results

<p align="center"> <img src="images/results.png" width="600"> </p>

Code Usage

Prerequisites

conda env create -f env.yml
conda activate pytorch

The Search Stage

  1. Specify the search setting in config_search.py:
C.dataset_path = "path-to-dataset"
C.latency_weight = 1e-10
  1. Run train_search.py:
python train_search.py

The Training Stage

  1. Specify the training setting in config_train.py:
C.dataset_path = "path-to-dataset"
C.load_path = "path-to-searched-arch"
  1. Run train.py on each of your nodes:
python train.py

Citation

@article{fu2021auto,
  title={Auto-NBA: Efficient and Effective Search Over the Joint Space of Networks, Bitwidths, and Accelerators},
  author={Fu, Yonggan and Zhang, Yongan and Zhang, Yang and Cox, David and Lin, Yingyan},
  journal={arXiv preprint arXiv:2106.06575},
  year={2021}
}