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