整圖下沉,MindSpore圖引擎詳解

4 月 26 日,機器之心聯合華為昇騰學院開設的線上公開課《輕鬆上手開源框架 MindSpore》第二課完成,GraphEngine 高級工程師王俊為大家帶來了主題分享《MindSpore 中 GraphEngine 淺析》。

第二課精選問答

在第二課的 QA 環節中,有一些問題被大家廣泛提到,王俊講師再次做了精選與編輯,供大家參考。

Q1:循環下沉是什麼?

循環下沉是在on-device執行的基礎上更進一步的一個技巧,意圖進一步建校host側和device側之間的交互次數。一般情況下,我們習慣於每個step都返回一個結果,循環下沉是控制每隔多少個step返回一次結果,缺省的配置是一個epoch返回一次結果,這樣每個epoch裡,host側和device側只需要進行一次數據交互即可。

Q2:FusionOP是定義在device上麼?

FusionOP對應的具體算子是有其算子實現的,存儲在算子信息庫中,融合出fusionOP的過程是在host側的CPU上完成,運行此FusionOP是在device上。

Q3:profiling只能在昇騰上用嗎?

只能在升騰上使用。

Q4:profiling有op的開始時間嗎?

profiling是記錄下op開始和結束的時間,以此計算算子耗時。

Q5:數據dump是能dump出來什麼數據呀

通過配置可以dump出任何存在在網絡中的數據,每一個算子的輸入輸出,每一個parameter的值和梯度都可以被dump下來。

Q6: 910支持推理嗎?支持多少op呢

910支持訓練及推理,310只支持推理。目前我們的算子信息庫已經相對完善,常用的op基本都已支持,如果有自定義算子的需求,我們提供了TBE工具來支持用戶自定義算子的開發。

Q7:算子在不同的加速器上的調度策略什麼?

在圖準備階段會根據代價函數進行算子引擎分配,在流分配階段也會充分考慮不同算子之間的並行計算可能,具體指定每個算子的執行引擎。

Q8: GE是mindspore中和硬件交互的

是的,GE專門負責和Ascend芯片交互。

Q9:310不能做訓練麼?

310只能做推理,MindSpore訓練好後的模型,將其固化為pb格式後,可以部署到310芯片上進行推理。

Q10:如何自定義升騰芯片支持的op呢?

提供了Tensor Boost Engine這個工具來支持自定義op。Ascend芯片的算子需要用一種cce格式的代碼編寫,需要顯式指定內存搬運操作,極為複雜,使用tbe工具,只需調用其python接口完成算子邏輯定義,即可生成可運行在Ascend上的自定義算子。

大家後續如有更多問題,歡迎關注 MindSpore 的gitee和github,隨時提 issue,官方人員將及時為大家解答:

  • Gitee:https://gitee.com/mindspore
  • GitHub:https://github.com/mindspore-ai

第二課PPT如下:

整圖下沉,MindSpore圖引擎詳解

整圖下沉,MindSpore圖引擎詳解

整圖下沉,MindSpore圖引擎詳解

整圖下沉,MindSpore圖引擎詳解

整圖下沉,MindSpore圖引擎詳解

整圖下沉,MindSpore圖引擎詳解

整圖下沉,MindSpore圖引擎詳解

整圖下沉,MindSpore圖引擎詳解

整圖下沉,MindSpore圖引擎詳解

整圖下沉,MindSpore圖引擎詳解

整圖下沉,MindSpore圖引擎詳解

整圖下沉,MindSpore圖引擎詳解

整圖下沉,MindSpore圖引擎詳解

整圖下沉,MindSpore圖引擎詳解

整圖下沉,MindSpore圖引擎詳解

整圖下沉,MindSpore圖引擎詳解

整圖下沉,MindSpore圖引擎詳解

整圖下沉,MindSpore圖引擎詳解

整圖下沉,MindSpore圖引擎詳解

整圖下沉,MindSpore圖引擎詳解

整圖下沉,MindSpore圖引擎詳解

整圖下沉,MindSpore圖引擎詳解

整圖下沉,MindSpore圖引擎詳解

整圖下沉,MindSpore圖引擎詳解

整圖下沉,MindSpore圖引擎詳解


分享到:


相關文章: