本申請屬于向機載嵌入式平臺移植智能算法設計技術領域,具體涉及一種向機載嵌入式平臺移植智能算法的方法及智能計算平臺。
背景技術:
當前,智能算法的開發、運行平臺多為基于x86平臺的服務器,為降低智能算法開發的難度、壓縮其開發周期,智能算法大量使用開源框架進行開發,例如google的tensorflow框架。
智能算法大量應用大量的卷積神經網絡、強化學習神經網絡,可在不確定條件下實現完美的智能決策。隨著技術水平的發展,對飛機智能化程度的要求大幅提高,迫切需要將相關的智能算法向機載平臺上進行移植,但由于機載嵌入式平臺與x86平臺存在較大差異,難以將基于x86平臺開發、運行的智能算法直接移植到機載嵌入式平臺上。
鑒于現有技術的上述缺陷提出本申請。
技術實現要素:
本申請的目的是提供一種向機載嵌入式平臺移植智能算法的方法及智能計算平臺,以克服或減輕現有技術至少一方面的缺陷。
本申請的技術方案是:
一方面提供一種向機載嵌入式平臺移植智能算法的方法,包括以下步驟:
步驟一、對基于tensorflow框架開發的智能算法進行算法結構并行分析、計算復雜度分析、資源需求分析,據此為機載核心處理平臺增加智能計算平臺;智能計算平臺包括:
通用處理模塊,負責智能運算平臺的運算管理,以及用于與機內設備進行數據交互;
智能處理模塊,用于搭載智能算法;
步驟二、對智能計算平臺進行集成開發,對智能計算平臺芯片及智能算法進行進行機載環境下的適配。
根據本申請的至少一個實施例,步驟二具體為:
對tensorflow框架的依賴關系進行分析,據此完成智能計算平臺芯片驅動、智能計算平臺運行時庫、神經網絡算法算子、tensorflow框架、tensorflow框架依賴庫移植;
對智能算法框架及依賴進行分析,據此完成智能算法模型框架、特定算子、依賴庫相關算法、不同版本編譯器特性的智能算法特殊數據結構、函數調用的開發、移植、適配。
另一方面提供一種智能計算平臺,該智能計算平臺設置于機載核心處理平臺,用以實現如任一上述的向機載嵌入式平臺移植智能算法的方法,包括:
通用處理模塊,負責智能運算平臺的運算管理,以及用于與機內設備進行數據交互;
智能處理模塊,用于搭載智能算法。
根據本申請的至少一個實施例,通用處理模塊選用powerpc系列處理器,采用嵌入式多核操作系統,以及采用嵌入式數據庫extremedb實現規則類算法開發。
根據本申請的至少一個實施例,通用處理模塊的算法設計采用框架式、模塊化設計。
根據本申請的至少一個實施例,通用處理模塊中分別設計:
規則庫模塊,采用數據庫的形式組織、管理;
推理模型模塊,以c語言實現,執行推理過程中所需的規則,通過數據庫提供的接口進行調用。
根據本申請的至少一個實施例,通用處理模塊的數據庫特性對規則進行組織、描述,提供可解析的、可寫入數據庫的規則集合文件及描述,利用mysql數據庫實現規則的組織、管理。
根據本申請的至少一個實施例,智能處理模塊選用powerpc系列處理器,采用嵌入式多核操作系統,以及其芯片采用高性能fpga。
根據本申請的至少一個實施例,其架構包括:
硬件加速單元,將神經模型中算子模塊化,形成對算子的硬件加速單元pe,根據性能需求、硬件資源形成算子加速單元陣列配置;
控制邏輯單元,根據神經網絡算法模型的任務特征在算子加速單元陣列調度分配任務;
存儲單元,根據算法模型神經元對參數和中間結果的數據存儲需求進行優化。
根據本申請的至少一個實施例,存儲單元將神經元參數存在在片內bram中,將中間結果存儲在片外dram中。
附圖說明
圖1是本申請實施例提供的向機載嵌入式平臺移植智能算法的方法的流程圖。
具體實施方式
下面結合附圖和實施例對本申請作進一步的詳細說明。可以理解的是,此處所描述的具體實施例僅僅用于解釋相關申請,而非對該申請的限定。另外還需要說明的是,為了便于描述,附圖中僅示出了與本申請相關的部分。
需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。下面將參考附圖并結合實施例來詳細說明本申請。
需要說明的是,在本申請的描述中,術語“中心”、“上”、“下”、“左”、“右”、“豎直”、“水平”、“內”、“外”等指示的方向或位置關系的術語是基于附圖所示的方向或位置關系,這僅僅是為了便于描述,而不是指示或暗示裝置或元件必須具有特定的方位、以特定的方位構造和操作,因此不能理解為對本申請的限制。此外,術語“第一”、“第二”、“第三”僅用于描述目的,而不能理解為指示或暗示相對重要性。
此外,還需要說明的是,在本申請的描述中,除非另有明確的規定和限定,術語“安裝”、“相連”、“連接”應做廣義理解,例如,可以是固定連接,也可以是可拆卸連接,或一體地連接;可以是機械連接,也可以是電連接;可以是直接相連,也可以通過中間媒介間接相連,可以是兩個元件內部的連通。對于本領域技術人員而言,可根據具體情況理解上述術語在本申請中的具體含義。
下面結合附圖1對本申請做進一步詳細說明。
一方面提供一種向機載嵌入式平臺移植智能算法的方法,包括以下步驟:
步驟一、對基于tensorflow框架開發的智能算法進行算法結構并行分析、計算復雜度分析、資源需求分析,據此為機載核心處理平臺增加智能計算平臺;智能計算平臺包括:
通用處理模塊,負責智能運算平臺的運算管理,以及用于與機內設備進行數據交互;
智能處理模塊,用于搭載智能算法;
步驟二、對智能計算平臺進行集成開發,對智能計算平臺芯片及智能算法進行進行機載環境下的適配。
對于上述實施例公開的向機載嵌入式平臺移植智能算法的方法,本領域技術人員可以理解的是,其通過設計智能計算平臺,兼容現有機載硬件平臺架構、通信網絡,將大量面向x86服務器開發的智能算法向機載進行移植,具有較高的移植效率。
在一些可選的實施例中,步驟二具體為:
對tensorflow框架的依賴關系進行分析,據此完成智能計算平臺芯片驅動、智能計算平臺運行時庫、神經網絡算法算子、tensorflow框架、tensorflow框架依賴庫移植;
對智能算法框架及依賴進行分析,據此完成智能算法模型框架、特定算子、依賴庫相關算法、不同版本編譯器特性的智能算法特殊數據結構、函數調用的開發、移植、適配。
另一方面提供一種智能計算平臺,該智能計算平臺設置于機載核心處理平臺,用以實現如任一上述的向機載嵌入式平臺移植智能算法的方法,包括:
通用處理模塊,負責智能運算平臺的運算管理,以及用于與機內設備進行數據交互;
智能處理模塊,用于搭載智能算法。
在一些可選的實施例中,通用處理模塊通過設備間總線(即光纖總線或gjb289a總線或hb6096總線或rs422總線或rs232總線)、離散量或模擬量與機內設備進行數據交互。
在一些可選的實施例中,通用處理模塊選用powerpc系列處理器,采用嵌入式多核操作系統,以及采用嵌入式數據庫extremedb實現規則類算法開發。
在一些可選的實施例中,通用處理模塊的算法設計采用框架式、模塊化設計。
在一些可選的實施例中,通用處理模塊中分別設計:
規則庫模塊,采用數據庫的形式組織、管理;
推理模型模塊,以c語言實現,執行推理過程中所需的規則,通過數據庫提供的接口進行調用。
在一些可選的實施例中,通用處理模塊的數據庫特性對規則進行組織、描述,提供可解析的、可寫入數據庫的規則集合文件及描述,利用mysql數據庫實現規則的組織、管理。
在一些可選的實施例中,智能處理模塊選用powerpc系列處理器,采用嵌入式多核操作系統,以及其芯片采用高性能fpga,基于高性能fpga開發工具采用深鑒科技的sdk開發平臺,能夠提供對卷積神經網絡cnn的設計支撐,但是循環神經網絡rnn與其存在較大差異,不能直接基于深鑒sdk進行開發;不同于前饋神經網絡,rnn中數據雙向傳播,對控制邏輯設計要求更高且包含sigmoid、tanh等復雜算子,需要對智能處理模塊硬件電路開展進一步的優化設計,在采用基于模型壓縮工具,實現算法模型的剪枝壓縮和數據量化處理,實現rnn在嵌入式環境的實現算法移植。
在一些可選的實施例中,其架構包括:
硬件加速單元,將神經模型中算子模塊化,包括矩陣乘加運算、sigmoid、tanh等,形成對算子的硬件加速單元pe,根據性能需求、硬件資源形成算子加速單元陣列配置;
控制邏輯單元,根據神經網絡算法模型的任務特征在算子加速單元陣列調度分配任務,提高硬件資源運行效率;
存儲單元,根據算法模型神經元對參數和中間結果的數據存儲需求進行優化。
在一些可選的實施例中,存儲單元將神經元參數存在在片內bram中,將中間結果存儲在片外dram中,進一步的可優化bram中參數存取機制,實現神經元間的參數共享,提高bram存儲空間利用率。
在一些可選的實施例中,針對加速單元陣列中數據通信關系,構建最優的互連網絡拓撲結構,設計高帶寬低延時的數據傳輸機制,實現神經網絡算法模型的高效運行。
至此,已經結合附圖所示的優選實施方式描述了本申請的技術方案,但是,本領域技術人員容易理解的是,本申請的保護范圍顯然不局限于這些具體實施方式。在不偏離本申請的原理的前提下,本領域技術人員可以對相關技術特征作出等同的更改或替換,這些更改或替換之后的技術方案都將落入本申請的保護范圍之內。