Skip to content

aserenate/gamma

 
 

Repository files navigation

GAMMA

This is the implementation of the paper GAMMA: Automating the HW Mapping of DNN Models on Accelerators via Genetic Algorithm. GAMMA is an autonomous framework for optimizing the HW mapping of DNN models on the DNN Accelerators. This repository includes GAMMA, a specialized GA-based algorithm, a HW cost evaluation environment with a HW cost model, MAESTRO or Timeloop, embedded, and the other conventional optimization methods supported by nevergrad.

GAMMA Framework

Gamma-Maestro

  • The native GAMMA algorithm utilizes MAESTRO as cost model, now named Gamma-Maestro, can be found in gamma_maestro_src directory. It searches through the design space of MAESTRO and proposes an optimized mapping.

Gamma-Timeloop

  • We add Timeloop support, named Gamma-Timeloop. It enables using GAMMA algorithm to search through the design space of Timeloop, a DNN cost model from NVIDIA.

Set-up

  • Create virtual env
conda create --name gammaEnv python=3.6
conda activate gammaEnv
  • Install requirement
pip install -r requirements.txt

Resources

  • Tutorial of GAMMA, in IEEE/ACM International Symposium on Microarchitecture (MICRO), 2020 [video]
  • Main paper presentation, in IEEE/ACM International Conference On Computer Aided Design (ICCAD), 2020 [video]
  • Main paper: GAMMA: Automating the HW Mapping of DNN Models on Accelerators via Genetic Algorithm, ICCAD, 2020 [paper]

Contributor

  • Sheng-Chun (Felix) Kao
  • Tushar Krishna

Citation

@inproceedings{gamma,
  author    = {Sheng{-}Chun Kao and
               Tushar Krishna},
  title     = {{GAMMA:} Automating the {HW} Mapping of {DNN} Models on Accelerators
               via Genetic Algorithm},
  booktitle = {{IEEE/ACM} International Conference On Computer Aided Design, {ICCAD}},
  pages     = {44:1--44:9},
  publisher = {{IEEE}},
  year      = {2020},
}

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 97.7%
  • Shell 2.2%
  • Limbo 0.1%