Giter Club home page Giter Club logo

uboostnas's Introduction

U-Boost NAS: Utilization-Boosted Differentiable Neural Architecture Search

This repo contains the source code for the U-Boost NAS method presented in this paper. It optimizes hardware resource utilization with task accuracy and latency to maximize inference performance. It estimates hardware utilization using a novel computational model for DNN accelerators.

Code structure/note

  • src/search: contains the code for microarchitecture and channel search stages
  • src/vanilla: contains the code for final training stage
  • src/data: contains the code for dataloaders and preprocessing for various datasets
  • src/hardware: contains the code for hardware model and cycle-accurate hardware simulations

NAS

This code implements the microarchitecture search as in DARTS-like methods and channel search using DMaskNAS method.

Hardware model

Computes the following runtime for convolutional cells:

with "matrixification" of the tensors, where:
  • B is the number of batches
  • h is the height of the input
  • w is the width of the input
  • c is the number of channels
  • f is the number of filters
  • k1 is one dimension of the kernel
  • k2 is the other dimension of the kernel
  • s1 is one dimension of the systolic array
  • s2 is the other dimension of the systolic array

However, the ceil function is not differentiable and can only be used as a collection of point estimates. This hinders the neural architecture seach and allows only for evolutionary or reinforcement learning methods, which require orders of magnitude more computational resources compared to differentiable methods. For this reason, the ceil function is replaced with a soft approximation, the smooth ceiling:

for wi intervals between zero and a fixed value. This model corresponds more with the realistic case.

TODO: explain a bit more the realistic case.

How to run

python main.py #--help for information about optional arguments

Citation

If you use this code, please cite our paper.

uboostnas's People

Contributors

yuezuegu avatar

Stargazers

Andrew Zhang avatar

Watchers

 avatar

Forkers

lilywan666 shism2

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.