隨著Arm生態系統的發展壯大,各種各樣的應用場景層出不窮。為了更好地在特定場景下得到更好的性能,能耗比等指標,針對特定應用場景的加速器市場也在蓬勃發展,近年來火熱的人工智能加速器(Artificial Intelligence Accelerator)就是一個典型例子。
一個高效的加速器,需要精心設計的硬件以及與之搭配的軟件,兩者缺一不可,否則用戶體驗會大打折扣,這也是為什么我們常常看到某些指標非常驚艷的加速器,在實際使用中體驗卻不盡如人意的原因。以人工智能加速器為例,其中基本的硬件加速單元就是乘加器的組合,但如何讓這些乘加器高效地進行并行計算,涉及到上層數據的打包、調度,需要大量的驅動軟件工作,而且大部分軟件開發者都是基于某種框架進行應用開發,具體見圖 1,所以驅動到框架的適配也很重要,甚至有一些框架不能滿足應用的需求,需要專門開辟通道進行優化。
圖1:ArmNPU軟硬件框架
開發一款高性能加速器,需要投入大量人力物力,如果不能大規模使用,那么投入回報比會大大降低,甚至虧本。如果加速器能和不同Arm系統輕松組合,拓展Arm系統的應用范圍,那么應用場景將會大大增加,生命周期也會延長。讓加速器適配不同的Arm系統,這對軟硬件接口和驅動提出了非常大的挑戰,因為今天的Arm產品非常豐富,從低功耗的微處理器,主流的移動平臺,到高端的服務器,高性能計算處理器都有相應產品。對于一個加速器團隊來說,針對盡可能多的Arm配置組合進行開發驗證成本將非常高昂,這里面不單單涉及IP/EDA的采購,還有系統的搭建維護,但如果沒有這些IP又無法將整個業務流程完整驗證,甚至影響軟硬件接口的設計優化。
有沒有方法高效地解決加速器配套驅動,框架,應用軟件開發的問題呢?Fast Model!
圖2:使用DS-5調試運行在Fast Model中的系統軟件
在Fast Model的例子系統中,Arm給出了一系列Arm核,相關IP組合的子系統模型,以及相應OS,開發工具DS-5,方便客戶快速搭建軟件開發平臺,調整軟硬件接口,進行驅動以及上層軟件的開發,具體參考圖3。
整個開發流程如下:
1.在Fast Model的例子系統中找到你需要的平臺,和對應的Bootloader, Firmware,OS軟件,并將他們順利運行
2.將Fast Model的子系統導出生成SystemC的模型子系統模塊
3.編寫加速器的功能模型,通過AMBA PV總線和Fast Model導出的子系統模塊進行連接
4.編寫驅動在目標OS中操作加速器
5.在模型平臺上進行軟件框架,應用匹配移植
Arm提供了絕大部分市面可見設計的類似子系統,無論是基于Arm v7/v8單核,多核,多cluster系統,還是包含最新架構特性的CPU系統,加速器開發團隊都可以在Fast Model的例子程序里面找對類似子系統范例進行適配,在設計之初就可以解決不同系統的適配性問題。Fast Model也提供工具讓開發者對例子系統進行修改,生成新的子系統以滿足需要。在加速器設計之初,軟件硬件人員就可以一起利用豐富多樣的例子系統進行架構的探索,對穩定軟硬件接口非常有幫助,而穩定的接口定義對長期的產品演進至關重要。
圖3:基于Fast Model的加速器軟件開發
至此開發者已經完成了大部軟硬件接口,驅動以及框架軟件開發工作,但驅動中的時序問題還沒有完全解決,因為Fast Model是一款功能型模型,它為了提高運行速度(50-200MHz),犧牲了時序信息。對于時序信息,開發者可以最后去仿真平臺甚至最終芯片上去調節,而此時軟件測試用例和框架都已經完成,這將大大節省占用仿真平臺(MHz)進行調試排錯的時間,從而降低成本。
-
加速器
+關注
關注
2文章
799瀏覽量
37881 -
人工智能
+關注
關注
1791文章
47294瀏覽量
238578 -
生態系統
+關注
關注
0文章
702瀏覽量
20727
發布評論請先 登錄
相關推薦
評論