1 Introduction  
2 Background  
2.1 Hardware-aware Neural Architecture Search  
2.2 Automatic Code Optimization  
3 Motivation  
4 Taxonomy  
4.1 Two-stage Search  
4.2 One-stage Search  
5 Search Strategies and Evaluation  
6 Challenges & Limitations  
6.1 Hardware heterogeneity  
6.2 Generalization  
6.3 Large search space exploration  
6.4 Lack of benchmarks  
7 Conclusion