吳林陽 杜偉健 陳小兵 莊毅敏
(*中國科學院計算技術研究所計算機體系結構國家重點實驗室 北京 100190) (**中國科學院大學 北京 100049) (***上海寒武紀信息科技有限公司 上海 201308)
隨著大數據時代到來,深度學習算法已被廣泛應用于安防、教育、醫療、貿易、交通、家居等各個領域。然而,深度學習應用對硬件計算能力要求極高,通用處理器已經無法滿足應用的實時性需求。在此背景下,深度學習處理器蓬勃發展,逐漸成為處理深度學習應用的主要載體。
深度學習算法和硬件的快速發展給編譯器設計帶來了巨大的挑戰,主要體現在2個方面:
(1) 通用性。如何設計統一的編譯框架,支持不同的硬件平臺后端(GPU、TPU、CPU、加速器)。
(2) 性能。針對特定的硬件平臺后端,如何把性能(延時、吞吐率)優化到最好。
目前已有一些相關工作針對以上2個問題提出了解決方案。比如,Chen等人[1]提出了一種自動化、端到端的編譯優化框架TVM。為了優化程序的性能,TVM設計了面向算法的高級優化和面向硬件的低級優化兩層優化架構,并采用了操作融合、訪存延遲隱藏等關鍵技術。TVM通過中間表示來支持不同的硬件后端,同時在語言層面支持用戶自定義硬件優化原語,從而解決通用性問題。又比如,Vasilache等人[2]提出了一種領域專用語言和編譯框架TC(tensor comprehensions)。為了優化程序性能,TC在總體設計上采用了多面體編譯框架(優化循環結構),并在其中集成了如存儲層次提升、映射到寄存器、向量化、并行化等面向硬件結構的優化技術。……