技術探索

系統整合設計軟體環境

工研院資通所 陳耀華 謝宛珊 許雅婷 陳緯峻

2012年所提出的AlexNet [1]演算法大幅提升了圖形辨識準確度,因而開啟了之後人工智慧的浪潮,接著VGG16 [2]、ResNet [3]、GoogleNet [4]等相關的演算法如雨後春筍冒出,以下就以圖1來比較不同DNN網路的TOP 1 準確度(Accuracy)、運算量(Operation)與參數量:

圖1 [5]為不同DNN網路的TOP 1 準確度(Accuracy)、運算量(Operation)與參數量之比較圖。圖1左下角為AlexNet網路,它的TOP 1 準確度為57.1%,所需要的參數量為60M。圖1右上角為NASNet-A-Large [6]網路,他的TOP 1 準確度可達到82.7%,所需要之參數量與運算量分別高達為88.9M與23.8 G-FLOPs。然而,天下沒白吃的午餐。NASNet-A-Large網路的TOP 1 準確度遠優於AlexNet網路並高達25.6%,是付出了大量的運算量與參數量才得到的。因此,為了提升需大量運算之DNN網路運算速度與效率,像TPU [6]這種人工智慧加速器便油然而生。然而,以往在設計硬體時通常有明確的規格與介面,但在這一波人工智慧的發展中,軟體系統應用與DNN網路的演進非常迅速。因此若想研發真正具高度AI運算效率的人工智慧加速器,必須由應用的角度來解決問題。另外,人工智慧之運用範疇非常廣泛,從計算量需求較小的物聯網 (Internet of Things, IoT)到計算量較大的自動駕駛,其運算量之差異非常大。因此設計不同應用需求之人工智慧加速處理器,並以高效能與低耗能為目標,便是非常挑戰的項目。

圖1  不同DNN網路的TOP 1 準確度(Accuracy)、運算量(Operation)與參數量之比較圖[5]圖1 不同DNN網路的TOP 1 準確度(Accuracy)、運算量(Operation)與參數量之比較圖[5]

精彩內容


1. 系統整合設計軟體環境

2. 模擬結果

3. 人工智慧加速器硬體設計者最佳工具

系統整合設計軟體環境

在設計人工智慧加速器時不僅要考慮電路面積、功耗等議題,亦要考慮人工智慧加速器如何針對不同DNN網路進行效能最佳化的問題。因此編譯器對人工智慧加速器之開發亦非常重要。圖2[7]為2019年8月在HotChip研討會上史丹佛大學團隊針對人工智慧加速器硬體設計所提出的相關開發流程,從圖中我們可以發現,史丹佛大學團隊亦將軟硬體協同開發,視為人工智慧加速器硬體開發流程中重要的一環。

圖2  人工智慧加速器硬體開發流程[7]圖2 人工智慧加速器硬體開發流程[7]

為了在設計人工智慧加速器硬體架構時,亦能同時考慮人工智慧應用之DNN網路,一個軟硬體協同設計的環境是必要的。而針對人工智慧加速器進行硬體架構探索設計時,系統整合設計軟體環境便是可以同時考慮人工智慧應用之DNN網路,並能針對效能、功耗與系統一起最佳化的軟硬體協同設計平台。類似於史丹佛大學團隊針對硬體設計開發流程,圖3是ITRI目前針對人工智慧加速器所提出之人工智慧運算架構系統整合設計軟體環境。該開發環境主要分為兩個部分: (1) 人工智慧硬體編譯器與(2)人工智慧加速器之虛擬平台。本文章就人工智慧加速器之虛擬平台進行探討。

圖3  人工智慧運算架構之系統整合設計軟體環境圖3 人工智慧運算架構之系統整合設計軟體環境

隨著系統單晶片複雜度日益提升,系統設計者必須尋找新的設計方法,不但要能夠應付日益漸增的設計複雜度,也要能夠加速產品上市的時程,而最明顯的解決方案就是提高產品的設計抽象層級,而電子系統層級(Electronic System-Level, ESL)設計技術即是一種提高抽象層級的系統設計開發方法,其採用SystemC語言的設計方法,SoC架構工程師可以搭配虛擬平台(Virtual Platform),來模擬系統晶片的行為(Behavior);另外,利用事務層級(Transaction-level)時序模型設計方法,可進一步模擬系統時序週期,此統稱為事務層級模型(Transaction Level Model;TLM)。為了在ESL虛擬平台上分析系統之功耗,各個IP模型上會有相對應之功率模型,而Virtual Platform Analyzer (VPA)則是會將ESL虛擬平台上各個IP的功率進行整合與分析。

圖4  人工智慧加速器之虛擬平台圖4 人工智慧加速器之虛擬平台

圖4所呈現的虛擬平台主要包含兩個部分,第一部分是圖4右半邊利用TLM/SystemC所建構之硬體模型,另一部分是圖4左半邊的QEMU [8]全系統模擬器。TLM/SystemC所建構之硬體模型包括Interconnect、DRAM、SRAM與人工智慧加速器硬體 (ML HW IP Model)。圖5為人工智慧加速器之硬體架構,其中包含:(1)微處理器RISC-V、(2)卷積運算引擎(Convolution Engine)、(3)激活運算引擎(Activation Engine)、(4)池化運算引擎(Pooling Engines)、(5)LRN運算引擎(Local Response Normalization Engines)、(6) Softmax運算引擎(Softmax Engines)與(7)直接記憶體存取(Direct Memory Access,DMA)等運算與控制單元。各運算與控制單元皆利用SystemC/TLM進行硬體之模型開發,其中包含的相關硬體之功能(Function)、時序(Timing)與功率(Power)等資訊。

圖5  人工智慧加速器之硬體架構圖5 人工智慧加速器之硬體架構

為了讓QEMU全系統模擬器能與利用TLM/SystemC所建構之硬體模型能一起在SystemC平台上模擬,我們設計了QEMU Wrapper。由於QEMU全系統模擬器僅提供處理器的功能性模型(Functional Model),因此我們在QEMU Wrapper上增加了處理器的時序與功率模型。QEMU Wrapper包含了一個指令集模擬器(ISS, Instruction Set Simulator)調度器、一個時序與功耗(TPM, Timing and Power Models)模組、一個同步(SYNC, Synchronization)模組以及其他SystemC程序控制。QEMU Wrapper以SystemC的語法建構,並以函式庫的形式呼叫QEMU。QEMU Wrapper利用callback函式來取得QEMU所模擬之CPU的記憶體、輸入與輸出之資料存取。QEMU內部之相關資料可以利用QEMU Wrapper傳到各個TLM/SystemC所建構之不同硬體模型。圖4中以紅色箭頭來描述資料傳輸之路徑。當QEMU上的處理器要將運算後之資料寫進DRAM記憶體時,亦或要讀取DRAM記憶體上的資料時,QEMU Wrapper會利用同步模組(SYNC Module)中的時序模型(Timing Model)與功率模型(Power Model),先更新QEMU上處理器的時序與功率資訊,然後再藉由TLM協定將資料傳送出去。另外,在QEMU中的QTracer Generator是用來獲取QEMU上處理器在執行程式下所產生之指令(Instruction)與資料之軌跡(Trace)。該軌跡(Trace)可用來計算QEMU上處理器在執行程式下所花費之時間與功率消耗。

模擬結果

利用編譯器工具鏈可以將人工智慧應用之DNN網路編譯成相對應之Loadable位元檔案,再利用使用者模式驅動程式(User-Mode Driver)、核心模式驅動程式(Kernel-Mode Driver)與微處理器RISC-V之韌體(Firmware)便可在人工智慧加速器之虛擬平台上執行人工智慧應用之DNN網路。圖6至圖8為在人工智慧加速器虛擬平台上執行AlexNet網路之各硬體模型的時序與能量消耗之模擬結果。

圖6  在人工智慧加速器之虛擬平台上執行AlexNet網路之各硬體模型之時序模擬結果圖6 在人工智慧加速器之虛擬平台上執行AlexNet網路之各硬體模型之時序模擬結果
圖7  在人工智慧加速器之虛擬平台上執行AlexNet網路之不同層之執行時間模擬結果圖7 在人工智慧加速器之虛擬平台上執行AlexNet網路之不同層之執行時間模擬結果
圖8  在人工智慧加速器之虛擬平台上執行AlexNet網路之不同層之能量消耗模擬結果圖8 在人工智慧加速器之虛擬平台上執行AlexNet網路之不同層之能量消耗模擬結果

人工智慧加速器硬體設計者最佳工具

系統整合設計軟體環境是一個針對人工智慧加速器在進行硬體架構探索設計時,亦可以同時考慮人工智慧應用之DNN網路,並能針對效能、功耗與系統一起最佳化的軟硬體協同設計平台。該平台提供人工智慧加速器硬體設計者在硬體架構設計時,亦可針對主要之人工智慧應用之DNN網路進行優化設計。

參考文獻

[1] KRIZHEVSKY, Alex; SUTSKEVER, Ilya; HINTON, Geoffrey E. Imagenet classification with deep convolutional neural networks. In: Advances in neural information processing systems. 2012. p. 1097-1105.

[2] SIMONYAN, Karen; ZISSERMAN, Andrew. Very deep convolutional networks for large-scale image recognition. arXiv preprint arXiv:1409.1556, 2014.

[3] HE, Kaiming, et al. Deep residual learning for image recognition. In: Proceedings of the IEEE conference on computer vision and pattern recognition. 2016. p. 770-778.

[4] SZEGEDY, Christian, et al. Going deeper with convolutions. In: Proceedings of the IEEE conference on computer vision and pattern recognition. 2015. p. 1-9.

[5] BIANCO, Simone, et al. Benchmark analysis of representative deep neural network architectures. IEEE Access, 2018, 6: 64270-64277.

[6] JOUPPI, Norman P., et al. In-datacenter performance analysis of a tensor processing unit. In: 2017 ACM/IEEE 44th Annual International Symposium on Computer Architecture (ISCA). IEEE, 2017. p. 1-12.

[7] Stanford AHA. Creating An Agile Hardware Flow. 2019 IEEE Hot Chips 31 Symposium.

[8] BELLARD, Fabrice. QEMU, a fast and portable dynamic translator. In: USENIX Annual Technical Conference, FREENIX Track. 2005. p. 46.