華為云計(jì)算 云知識 離線模型推理流程介紹
離線模型推理流程介紹

離線模型加載完成后,就可以實(shí)現(xiàn)模型的推理功能。在離線模型的生成和加載過程中,都沒有使用具體的待處理數(shù)據(jù),僅僅是通過軟件棧對模型中算子和計(jì)算流程實(shí)現(xiàn)了一種構(gòu)造、編排、優(yōu)化、封裝以及硬件適配操作。而在具體的推理執(zhí)行過程中,才會讀入具體的輸入數(shù)據(jù)來驅(qū)動完成執(zhí)行并輸出結(jié)果。

離線模型推理流程如圖所示:

離線模型推理流程圖

1、應(yīng)用程序?qū)π枰幚淼臄?shù)據(jù)產(chǎn)生需求時,準(zhǔn)備好待處理的數(shù)據(jù),流程編排器將調(diào)用模型管家的處理接口將數(shù)據(jù)灌入離線模型執(zhí)行器中。

2、接著離線模型執(zhí)行器調(diào)用運(yùn)行管理器的執(zhí)行流(rtModelExecute)接口,將執(zhí)行流中多個推理任務(wù)下發(fā)到任務(wù)調(diào)度器中。

3、任務(wù)調(diào)度器將任務(wù)再拆分成任務(wù)塊,下發(fā)到AI Core或AI CPU上進(jìn)行執(zhí)行,完成后將任務(wù)塊結(jié)果返回給任務(wù)調(diào)度器。

4、任務(wù)調(diào)度器遍歷執(zhí)行流中的任務(wù),循環(huán)發(fā)射任務(wù)塊并返回執(zhí)行結(jié)果直至所有任務(wù)全部完成后,將任務(wù)結(jié)果返回并存入運(yùn)行管理器的內(nèi)存中。

5、在完成多執(zhí)行流的任務(wù)計(jì)算時,需要通過運(yùn)行管理器中的事件記錄和事件等待接口進(jìn)行多執(zhí)行流間的算子同步,有序完成算子的計(jì)算。

6、在一個執(zhí)行流中所有算子調(diào)用完成后,離線模型執(zhí)行器通過運(yùn)行管理器的執(zhí)行流同步(rtStreamSychronize)接口來同步等待所有執(zhí)行流的執(zhí)行完成。

7、在所有相關(guān)執(zhí)行流任務(wù)完成后,整合所有結(jié)果生成模型的最終結(jié)果,此時離線模型執(zhí)行器則會通知AI模型管家執(zhí)行流已經(jīng)完成執(zhí)行。

8、最后模型管家會調(diào)用預(yù)設(shè)的輸出回調(diào)函數(shù),將整個離線模型推理執(zhí)行的結(jié)果返回到流程編排器,由流程編排器反饋給應(yīng)用程序。