本發明涉及人工智能領域,尤其涉及基于tensorflow的npu模型優化方法、裝置及存儲介質。
背景技術:
1、隨著深度學習技術的快速發展,tensorflow?作為主流的深度學習框架,廣泛應用于圖像處理、自然語言處理等領域。然而,將tensorflow?模型部署到npu?上時,將tensorflow模型轉換為npu?支持的格式時,模型轉換效率低;轉換后的模型在npu?上的性能優化不足;而且tensorflow?模型與npu?硬件之間的兼容性較差,導致部署困難。
2、現有技術方案需要開發者手動將tensorflow模型轉換為npu?支持的格式,這樣處理效率低下,耗時較長,而且容易出錯,兼容性差;此外使用通用模型轉換工具(如?onnx、tvm)將tensorflow模型轉換為中間表示(ir),再進一步轉換為npu?支持的格式,這樣處理轉換過程復雜,性能優化有限,對npu?硬件的支持不足,兼容性較差;另外還可以通過使用硬件廠商提供的工具鏈(如華為的?mindspore、寒武紀的?cambricon)進行模型轉換和優化,但是工具鏈通常針對特定硬件設計,通用性較差,對tensorflow模型的支持有限,優化效果不理想。
技術實現思路
1、本發明提供基于tensorflow的npu模型優化方法、裝置及存儲介質,旨在至少解決現有技術中存在的技術問題之一。
2、本發明的技術方案為基于tensorflow的npu模型優化方法,所述的基于tensorflow的npu模型優化方法應用在基于tensorflow的npu模型優化裝置上,所述的基于tensorflow的npu模型優化裝置包括:模型解析模塊、模型轉換模塊、模型優化模塊、npu執行模塊和性能監控模塊,所述的基于tensorflow的npu模型優化方法包括以下步驟:
3、s100、所述模型解析模塊讀取并提取tensorflow模型的結構和參數;
4、s200、所述模型轉換模塊將tensorflow模型轉換為npu支持的中間表示ir;
5、s300、通過算子融合、內存優化和量化,所述模型優化模塊優化轉換后的tensorflow模型,將優化完成后tensorflow模型部署到npu執行模塊;
6、s400、所述性能監控模塊監控tensorflow模型在npu上的運行性能,并輸出性能數據。
7、進一步,步驟s100包括:
8、s110、所述模型解析模塊從存儲中讀取tensorflow模型,得到tensorflow模型的結構和參數;
9、s120、解析tensorflow模型的結構,提取計算圖graph和操作operation;
10、s130、基于自定義映射規則,將tensorflow模型映射為npu兼容的硬件操作。
11、進一步,步驟s130包括:
12、s131、對tensorflow優化計算圖graph,包括合并操作和刪除冗余操作;
13、s132、將計算圖graph劃分為在npu上執行的部分和需要在cpu上執行的部分;
14、s133、將npu上執行的部分的計算圖graph編譯為npu指令集;
15、s134、在npu上執行編譯后的指令集。
16、進一步,步驟s200包括:
17、s210、根據將tensorflow模型映射為npu兼容的硬件映射的結果,生成npu支持的中間表示ir;
18、s220、將生成的中間表示保存到預設的位置,準備進行tensorflow模型優化。
19、進一步,步驟s210包括:
20、s211、通過注冊npu專用算子、創建npu優化的grappler配置、使用npu優化后的會話運行模型和構建包含npu算子的計算圖,執行自定義算子注冊與圖優化;
21、s212、通過動態中間表示ir轉換、ai驅動的優化策略ai-optimized?ir、混合精度自動遷移auto?mixed?precision?for?npu和npu?ir轉換底層實現,執行動態ir轉換與ai驅動優化。
22、進一步,步驟s210中,所述中間表示ir包括計算圖graph、操作operation和參數。
23、進一步,步驟s300包括:
24、s310、從存儲中讀取npu?支持的中間表示ir;
25、s320、將多個小算子融合為大算子,減少計算開銷;
26、s330、通過內存復用和數據預取,提升內存效率,優化tensorflow模型的內存訪問模式,減少內存帶寬占用;
27、s340、基于量化感知訓練qat和/或后訓練量化ptq,將浮點模型轉換為低精度模型,提升計算效率;
28、s350、驗證優化后的tensorflow模型是否滿足精度和性能要求,若驗證失敗,返回步驟s320至步驟s340;
29、s360、若驗證成功,將優化后的tensorflow模型保存到預設的位置。
30、進一步,本發明還提出一種基于tensorflow的npu模型優化裝置,用于執行所述基于tensorflow的npu模型優化方法,所述的基于tensorflow的npu模型優化裝置包括:
31、模型解析模塊,用于利用tensorflow?的tf.graph和tf.session工具解析輸入的tensorflow?模型,提取tensorflow模型的結構和參數;
32、模型轉換模塊,用于將tensorflow模型轉換為npu?支持的中間表示ir,通過自定義轉換工具將tensorflow模型操作映射為npu操作,所述模型轉換模塊與所述模型解析模塊連接;
33、模型優化模塊,用于優化轉換后的tensorflow模型,包括算子融合、內存優化和量化,通過使用npu?低精度計算的硬件特性,提升模型性能;
34、npu執行模塊,用于在npu上執行優化后的tensorflow模型;
35、性能監控模塊,用于監控tensorflow模型在npu上的運行性能,輸出計算單元利用率、內存帶寬、功耗等性能數據。
36、進一步,所述npu執行模塊包括用于加載優化后的tensorflow模型的模型加載子模塊和用于執行模型推理的推理引擎子模塊。
37、進一步,本發明還提出一種計算機可讀存儲介質,其上存儲有程序指令,所述程序指令被處理器執行時實施所述的基于tensorflow的npu模型優化方法。
38、本發明的有益效果是:
39、所述的基于tensorflow的npu模型優化方法、裝置及存儲介質,提供高效的模型轉換工具,快速將tensorflow模型轉換為npu?支持的格式,提高模型轉換效率;充分利用npu的低精度計算、并行計算等硬件特性,提升計算效率,通過算子融合、內存優化和量化等手段,減少轉換時間和開發成本;提高對主流tensorflow模型的全面支持,提升模型與npu?硬件的兼容性;提供從模型轉換到性能優化的完整工具鏈,實現端到端的模型優化和部署;減少開發者的手動操作,簡化模型部署流程,降低部署難度;支持大規模模型部署,滿足實際應用需求。