資料介紹
軟件簡介
圖引擎模塊(GE)由C++實現,位于前端模塊MindSpore/Tensorflow和底層硬件之間,起到承接作用。圖引擎模塊以ME/TF下發(fā)的圖作為輸入,然后進行一系列的深度圖優(yōu)化操作,最后輸出一張可以在底層硬件上高效運行的圖。GE針對昇騰AI處理器的硬件結構特點,做了特定的優(yōu)化工作,以此來充分發(fā)揮出昇騰AI處理器的強大算力。在進行模型訓練/推理時,GE會被自動調用而用戶并不感知。GE主要由GE API和GE Core兩部分組成,詳細的架構圖如下所示。

-
GE API
GE API是連接前端模塊ME/TF和GE Core的接口,負責GE Core中初始化、Session管理模塊的接口,支持運行環(huán)境初始化,Session創(chuàng)建、銷毀,圖添加執(zhí)行。
-
GE Core
GE Core是GE的核心模塊,負責整個訓練過程中的圖管理。GE Core中的圖處理可細分為六大步驟,分別是圖準備、圖拆分、圖優(yōu)化、圖編譯、圖加載和圖執(zhí)行,對于ME下發(fā)的每一張圖都會經過這六個步驟的操作,最終得到可以直接在底層硬件上高效執(zhí)行的圖。
-
圖準備 & 整圖優(yōu)化
完成整圖級別的數據準備和優(yōu)化,涉及到IR庫及算子庫。使用IR庫中算子的InferShape函數,完成整圖的Shape推導,以便后續(xù)申請內存;同時根據算子的聚合屬性,完成某些算子的聚合優(yōu)化,如allreduce算子,會按照聚合參數,將若干各參數對應梯度的allreduce算子聚合為一個,以此減少通訊耗時。
-
圖拆分
昇騰AI處理器是一種異構芯片,含有CPU(AICPU)和向量計算部件AICORE,圖中每個算子會按照開銷模型選擇執(zhí)行的核心,此階段會對算子進行最優(yōu)的核心分配,每種核心對應軟件上的一個抽象引擎;按照之前對各算子的引擎分配,以引擎為邊界,將整圖拆分為若干子圖,在圖邊界算子上插入相應的Placeholder算子以做標識,之后的優(yōu)化、編譯、加載操作均會以子圖為單位進行,這樣可以有效減少優(yōu)化過程的耗時。
-
子圖優(yōu)化
根據子圖所屬引擎,調用不同的優(yōu)化器接口執(zhí)行優(yōu)化。為了充分發(fā)揮昇騰AI處理器中AICORE模塊的算力,在AICORE內CUBE單元進行計算的算子會采用一種5D的數據格式,圖優(yōu)化階段會對相應算子進行4D/5D的類型轉換;為了進一步發(fā)揮CUBE單元的算力,減少數據搬運次數,GE會對某種范式的算子連接進行融合操作,此步驟也在圖優(yōu)化階段進行;對所有子圖優(yōu)化之后,需進行算子運行屬性計算,以計算輸入輸出內存大小。
-
圖編譯 & 圖加載
GE采用即時算子編譯技術,即按照實際網絡結構即時編譯生成算子可執(zhí)行程序,同時完成內存復用與內存分配、流分配、算子可執(zhí)行程序加載等。每個算子執(zhí)行任務綁定到特定的流上,同一個流的任務是串行執(zhí)行的,不同流上的任務可以并行執(zhí)行。圖加載階段按照引擎歸屬的runtime,將子圖加載到硬件上準備執(zhí)行。
-
圖執(zhí)行
最終在硬件上執(zhí)行子圖,并返回相應的輸出值。為了提高運行效率,圖執(zhí)行階段提供了一種下沉模式,可以在底層硬件上連續(xù)運行多輪再返回輸出值,以此減少從底層硬件拷貝數據的次數。
-
在訓練/推理過程中,上述過程會自動執(zhí)行,通過上述圖操作,GE可以將前端下發(fā)的圖轉換為一種可以在昇騰AI處理器上高效運行的圖模式。
安裝說明
安裝GE
GE內嵌在MindSpore/Ascend安裝包中,MindSpore/Ascend安裝完畢后,GE以動態(tài)庫的方式被調用。
源碼安裝
GE也支持由源碼編譯,進行源碼編譯前,首先確保你有昇騰910 AI處理器的環(huán)境(可通過昇騰開發(fā)者社區(qū)獲取),同時系統(tǒng)滿足以下要求:
- GCC >= 7.3.0
- CMake >= 3.14.0
- Autoconf >= 2.64
- Libtool >= 2.4.6
- Automake >= 1.15.1
編譯完成后會生成幾個動態(tài)庫,他們會鏈接到MindSpore/Ascend中執(zhí)行,無法單獨運行。
-
下載GE源碼。
GE源碼托管在碼云平臺,可由此下載。
git clone https://gitee.com/mindspore/graphengine.git cd graphengine
-
在GE根目錄下執(zhí)行下列命令即可進行編譯。
bash build.sh
- 開始編譯之前,請確保正確設置相關的環(huán)境變量。
-
在
build.sh的腳本中,會進行git clone操作,請確保網絡連接正常且git配置正確。 -
在
build.sh的腳本中,默認會8線程編譯,如果機器性能較差,可能會編譯失敗。可以通過-j{線程數}來控制線程數,如bash build.sh –j4。
-
完成編譯后,相應的動態(tài)庫文件會生成在output文件夾中。
更多指令幫助,可以使用:
bash build.sh –h
如果想清除歷史編譯記錄,可以如下操作:
rm -rf build/ output/ bash build.sh
社區(qū)
- MindSpore Slack?- 可以提問和找答案。
貢獻
歡迎參與貢獻,更多信息詳見Contributor Wiki。
路標
以下將展示graphengine近期的計劃,我們會根據用戶的反饋訴求,持續(xù)調整計劃的優(yōu)先級。
總體而言,我們會努力在以下幾個方面不斷改進。
1、完備性:Cast/ConcatV2算子支持輸入數據類型為int64的常量折疊; 2、完備性:onnx parser支持一對多映射; 3、架構優(yōu)化:ATC解耦并遷移至parser; 4、易用性:提供tensorflow訓練的checkpoint文件轉pb文件的一鍵式轉化工具; 5、易用性:提供一鍵式本地編譯環(huán)境構建工具; 6、可維測:ATC轉換生成的om模型包含框架信息、cann版本信息和芯片信息等;
- C和C++實物精選《C專家編程》 0次下載
- C和C++經典著作《C和指針》 0次下載
- 適用于ADSP-219x處理器的VisualDSP++3.5 C/C++編譯器和庫手冊
- 適用于SHARC<sup>?</sup>處理器的VisualDSP++<sup>?</sup>5.0 C/C++編譯器手冊
- 用于SHARC<sup>?</sup>處理器的CrossCore<sup>?</sup>Embedded Studio 2.9.0 C/C++編譯器手冊
- 用于TigerSHARC處理器的VisualDSP++<sup>?</sup>5.0 C/C++編譯器和庫手冊
- 適用于Blackfin處理器的VisualDSP++<sup>?</sup>5.0 C/C++編譯器和庫手冊
- 用于Blackfin<sup>?</sup>處理器的CrossCore<sup>?</sup>Embedded Studio 2.9.0 C/C++編譯器和庫手冊
- Visual C++和MFC創(chuàng)建的應用程序基礎知識 0次下載
- TMS320C6474數字信號處理器硅修訂2.1, 1.2, 1.1, 1.0 勘誤表 4次下載
- OMAPL138B C6-Integra? DSP+ARM? 處理器 6次下載
- TMS320F28x 優(yōu)化C/C++編譯器用戶指南 26次下載
- LonWorks節(jié)點中主從處理器之間IC接口設計 18次下載
- Blackfin處理器與音視頻外設之間的連接
- 安騰處理器中多級分支預測機制
- 【HD200IS A2 DK 】青翼凌云科技基于昇騰 310B 高可靠智能計算開發(fā)套件 389次閱讀
- 【HD200I A2(8T)】青翼凌云科技基于昇騰 310B 的智能計算模組 535次閱讀
- 【 HD200I A2(20T)】基于昇騰 310B 的智能計算模組 578次閱讀
- DeepSeek V3昇思MindSpore版本上線開源社區(qū) 1.9k次閱讀
- 前端總線頻率的類型是什么? 1.1k次閱讀
- C++簡史:C++是如何開始的 1.5k次閱讀
- 昇騰AI框架全棧深度介紹 5.8k次閱讀
- CodeGeexX 功能使用 3.6k次閱讀
- 昇騰AI處理器:全面解密DaVinci架構 1.3w次閱讀
- C++程序異常處理機制是什么 1.6k次閱讀
- 昇思MindSpore全場景AI框架1.6版本的關鍵特性 3.2k次閱讀
- 手機處理器與電腦處理器的差異分析 1.1w次閱讀
- 華為推出昇騰910、昇騰310兩款AI芯片,昇騰910的半精度算力可達到256 TFLOPs 2.5w次閱讀
- c++和c語言之間有什么區(qū)別 3.5w次閱讀
- 基于FPGA處理器的C編譯指令 3.1k次閱讀
下載排行
本周
- 1新一代網絡可視化(NPB 2.0)
- 3.40 MB | 1次下載 | 免費
- 2冷柜-電氣控制系統(tǒng)講解
- 13.68 MB | 1次下載 | 10 積分
- 3MDD品牌三極管MMBT3906數據手冊
- 2.33 MB | 次下載 | 免費
- 4MDD品牌三極管S9012數據手冊
- 2.62 MB | 次下載 | 免費
- 5LAT1218 如何選擇和設置外部晶體適配 BlueNRG-X
- 0.60 MB | 次下載 | 3 積分
- 6LAT1216 Blue NRG-1/2 系列芯片 Flash 操作與 BLE 事件的互斥處理
- 0.89 MB | 次下載 | 3 積分
- 7收音環(huán)繞擴音機 AVR-1507手冊
- 2.50 MB | 次下載 | 免費
- 8MS1000TA 超聲波測量模擬前端芯片技術手冊
- 0.60 MB | 次下載 | 免費
本月
- 1愛華AIWA HS-J202維修手冊
- 3.34 MB | 37次下載 | 免費
- 2PC5502負載均流控制電路數據手冊
- 1.63 MB | 23次下載 | 免費
- 3NB-IoT芯片廠商的資料說明
- 0.31 MB | 22次下載 | 1 積分
- 4UWB653Pro USB口測距通信定位模塊規(guī)格書
- 838.47 KB | 5次下載 | 免費
- 5蘇泊爾DCL6907(即CHK-S007)單芯片電磁爐原理圖資料
- 0.04 MB | 4次下載 | 1 積分
- 6蘇泊爾DCL6909(即CHK-S009)單芯片電磁爐原理圖資料
- 0.08 MB | 2次下載 | 1 積分
- 7100W準諧振反激式恒流電源電路圖資料
- 0.09 MB | 2次下載 | 1 積分
- 8FS8025B USB的PD和OC快充協(xié)議電壓誘騙控制器IC技術手冊
- 1.81 MB | 1次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935137次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191439次下載 | 10 積分
- 5十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183353次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81602次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73822次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65991次下載 | 10 積分
電子發(fā)燒友App





創(chuàng)作
發(fā)文章
發(fā)帖
提問
發(fā)資料
發(fā)視頻
上傳資料賺積分
評論