昇騰AI處理器對網(wǎng)絡(luò)執(zhí)行層次進行劃分,將特定功能的執(zhí)行操作看做基本執(zhí)行單位——計算引擎(Engine)。每個計算引擎在流程編排過程中對數(shù)據(jù)完成基本操作功能,如對圖片進行分類處理、輸入圖片預(yù)處理及輸出圖片數(shù)據(jù)的標(biāo)識等。計算引擎由開發(fā)者進行自定義來完成所需要的具體功能。
通過流程編排器的統(tǒng)一調(diào)用,整個深度神經(jīng)網(wǎng)絡(luò)應(yīng)用一般包括四個引擎:數(shù)據(jù)引擎,預(yù)處理引擎,模型推理引擎以及后處理引擎。
1、數(shù)據(jù)引擎主要準(zhǔn)備神經(jīng)網(wǎng)絡(luò)需要的 數(shù)據(jù)集 (如MNIST數(shù)據(jù)集)和進行相應(yīng)數(shù)據(jù)的處理(如圖片過濾等),作為后續(xù)計算引擎的數(shù)據(jù)來源。
2、一般輸入媒體數(shù)據(jù)需要進行格式預(yù)處理來滿足昇騰AI處理器的計算要求,而預(yù)處理引擎主要進行媒體數(shù)據(jù)的預(yù)處理,完成圖像和視頻編解碼以及格式轉(zhuǎn)換等操作,并且數(shù)字視覺預(yù)處理各功能模塊都需要統(tǒng)一通過流程編排器進行調(diào)用。
3、數(shù)據(jù)流進行神經(jīng)網(wǎng)絡(luò)推理時,需要用到模型推理引擎。模型推理引擎主要利用加載好的模型和輸入的數(shù)據(jù)流完成神經(jīng)網(wǎng)絡(luò)的前向計算。
4、在模型推理引擎輸出結(jié)果后,后處理引擎再對模型推理引擎輸出的數(shù)據(jù)進行后續(xù)處理,如 圖像識別 的加框和加標(biāo)識等處理操作。
計算引擎流程圖中每一個具體數(shù)據(jù)處理的節(jié)點就是計算引擎,數(shù)據(jù)流按照編排好的路徑流過每個引擎時,分別進行相關(guān)處理和計算,最終輸出需要的結(jié)果,而整個流程圖最后輸出的結(jié)果就是對應(yīng)神經(jīng)網(wǎng)絡(luò)計算輸出的結(jié)果。相鄰兩個計算引擎節(jié)點通過計算引擎流程圖中的配置文件建立連接關(guān)系,節(jié)點間實際數(shù)據(jù)流會根據(jù)具體網(wǎng)絡(luò)模型按節(jié)點連接方式進行流動。在配置完成節(jié)點屬性后,向計算引擎流程圖的開始節(jié)點灌入數(shù)據(jù)就會啟動整個計算引擎的運行流程。
流程編排器,運行于L1芯片使能層之上,L3應(yīng)用使能層之下,為多種操作系統(tǒng)(Linux、Android等)提供統(tǒng)一的標(biāo)準(zhǔn)化中間接口,并且負(fù)責(zé)完成整個計算引擎流程圖的建立、銷毀和計算資源的回收。
在計算引擎流程圖建立過程中,流程編排器根據(jù)計算引擎的配置文件完成計算引擎流程圖的建立。在執(zhí)行之前,流程編排器提供輸入數(shù)據(jù)。如果輸入數(shù)據(jù)是視頻圖像等格式未能滿足處理需要的形式,則可以通過相應(yīng)的編程接口來調(diào)用數(shù)字視覺預(yù)處理模塊進行數(shù)據(jù)預(yù)處理。如果數(shù)據(jù)滿足處理要求,則直接通過接口調(diào)用離線模型執(zhí)行器來進行推理計算。在執(zhí)行過程中,流程編排器具有多節(jié)點調(diào)度和多進程管理功能,負(fù)責(zé)計算進程在設(shè)備端的運行,并守護計算進程,以及進行相關(guān)執(zhí)行信息的統(tǒng)計匯總等。在模型執(zhí)行結(jié)束后,為主機上的應(yīng)用提供獲取輸出結(jié)果的功能。