電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>MindSpore-GraphEngine基于C++的前端和昇騰處理器之間的連接模塊

MindSpore-GraphEngine基于C++的前端和昇騰處理器之間的連接模塊

2022-06-17 | zip | 4.74 MB | 次下載 | 2積分

資料介紹

授權(quán)協(xié)議 Apache-2.0
開發(fā)語言 C/C++
操作系統(tǒng) 跨平臺(tái)
軟件類型 開源軟件

軟件簡介

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

poYBAGKn-56ARRT3AABLObS7174976.png

  • GE API

    GE API是連接前端模塊ME/TF和GE Core的接口,負(fù)責(zé)GE Core中初始化、Session管理模塊的接口,支持運(yùn)行環(huán)境初始化,Session創(chuàng)建、銷毀,圖添加執(zhí)行。

  • GE Core

    GE Core是GE的核心模塊,負(fù)責(zé)整個(gè)訓(xùn)練過程中的圖管理。GE Core中的圖處理可細(xì)分為六大步驟,分別是圖準(zhǔn)備、圖拆分、圖優(yōu)化、圖編譯、圖加載和圖執(zhí)行,對于ME下發(fā)的每一張圖都會(huì)經(jīng)過這六個(gè)步驟的操作,最終得到可以直接在底層硬件上高效執(zhí)行的圖。

    • 圖準(zhǔn)備 & 整圖優(yōu)化

      完成整圖級(jí)別的數(shù)據(jù)準(zhǔn)備和優(yōu)化,涉及到IR庫及算子庫。使用IR庫中算子的InferShape函數(shù),完成整圖的Shape推導(dǎo),以便后續(xù)申請內(nèi)存;同時(shí)根據(jù)算子的聚合屬性,完成某些算子的聚合優(yōu)化,如allreduce算子,會(huì)按照聚合參數(shù),將若干各參數(shù)對應(yīng)梯度的allreduce算子聚合為一個(gè),以此減少通訊耗時(shí)。

    • 圖拆分

      昇騰AI處理器是一種異構(gòu)芯片,含有CPU(AICPU)和向量計(jì)算部件AICORE,圖中每個(gè)算子會(huì)按照開銷模型選擇執(zhí)行的核心,此階段會(huì)對算子進(jìn)行最優(yōu)的核心分配,每種核心對應(yīng)軟件上的一個(gè)抽象引擎;按照之前對各算子的引擎分配,以引擎為邊界,將整圖拆分為若干子圖,在圖邊界算子上插入相應(yīng)的Placeholder算子以做標(biāo)識(shí),之后的優(yōu)化、編譯、加載操作均會(huì)以子圖為單位進(jìn)行,這樣可以有效減少優(yōu)化過程的耗時(shí)。

    • 子圖優(yōu)化

      根據(jù)子圖所屬引擎,調(diào)用不同的優(yōu)化器接口執(zhí)行優(yōu)化。為了充分發(fā)揮昇騰AI處理器中AICORE模塊的算力,在AICORE內(nèi)CUBE單元進(jìn)行計(jì)算的算子會(huì)采用一種5D的數(shù)據(jù)格式,圖優(yōu)化階段會(huì)對相應(yīng)算子進(jìn)行4D/5D的類型轉(zhuǎn)換;為了進(jìn)一步發(fā)揮CUBE單元的算力,減少數(shù)據(jù)搬運(yùn)次數(shù),GE會(huì)對某種范式的算子連接進(jìn)行融合操作,此步驟也在圖優(yōu)化階段進(jìn)行;對所有子圖優(yōu)化之后,需進(jìn)行算子運(yùn)行屬性計(jì)算,以計(jì)算輸入輸出內(nèi)存大小。

    • 圖編譯 & 圖加載

      GE采用即時(shí)算子編譯技術(shù),即按照實(shí)際網(wǎng)絡(luò)結(jié)構(gòu)即時(shí)編譯生成算子可執(zhí)行程序,同時(shí)完成內(nèi)存復(fù)用與內(nèi)存分配、流分配、算子可執(zhí)行程序加載等。每個(gè)算子執(zhí)行任務(wù)綁定到特定的流上,同一個(gè)流的任務(wù)是串行執(zhí)行的,不同流上的任務(wù)可以并行執(zhí)行。圖加載階段按照引擎歸屬的runtime,將子圖加載到硬件上準(zhǔn)備執(zhí)行。

    • 圖執(zhí)行

      最終在硬件上執(zhí)行子圖,并返回相應(yīng)的輸出值。為了提高運(yùn)行效率,圖執(zhí)行階段提供了一種下沉模式,可以在底層硬件上連續(xù)運(yùn)行多輪再返回輸出值,以此減少從底層硬件拷貝數(shù)據(jù)的次數(shù)。

在訓(xùn)練/推理過程中,上述過程會(huì)自動(dòng)執(zhí)行,通過上述圖操作,GE可以將前端下發(fā)的圖轉(zhuǎn)換為一種可以在昇騰AI處理器上高效運(yùn)行的圖模式。

安裝說明

安裝GE

GE內(nèi)嵌在MindSpore/Ascend安裝包中,MindSpore/Ascend安裝完畢后,GE以動(dòng)態(tài)庫的方式被調(diào)用。

源碼安裝

GE也支持由源碼編譯,進(jìn)行源碼編譯前,首先確保你有昇騰910 AI處理器的環(huán)境(可通過昇騰開發(fā)者社區(qū)獲?。?,同時(shí)系統(tǒng)滿足以下要求:

  • GCC >= 7.3.0
  • CMake >= 3.14.0
  • Autoconf >= 2.64
  • Libtool >= 2.4.6
  • Automake >= 1.15.1

編譯完成后會(huì)生成幾個(gè)動(dòng)態(tài)庫,他們會(huì)鏈接到MindSpore/Ascend中執(zhí)行,無法單獨(dú)運(yùn)行。

  1. 下載GE源碼。

    GE源碼托管在碼云平臺(tái),可由此下載。

    git clone https://gitee.com/mindspore/graphengine.git
    cd graphengine
  2. 在GE根目錄下執(zhí)行下列命令即可進(jìn)行編譯。

    bash build.sh
    • 開始編譯之前,請確保正確設(shè)置相關(guān)的環(huán)境變量。
    • build.sh的腳本中,會(huì)進(jìn)行git clone操作,請確保網(wǎng)絡(luò)連接正常且git配置正確。
    • build.sh的腳本中,默認(rèn)會(huì)8線程編譯,如果機(jī)器性能較差,可能會(huì)編譯失敗。可以通過-j{線程數(shù)}來控制線程數(shù),如bash build.sh –j4
  3. 完成編譯后,相應(yīng)的動(dòng)態(tài)庫文件會(huì)生成在output文件夾中。

更多指令幫助,可以使用:

bash build.sh –h

如果想清除歷史編譯記錄,可以如下操作:

rm -rf build/ output/
bash build.sh

社區(qū)

貢獻(xiàn)

歡迎參與貢獻(xiàn),更多信息詳見Contributor Wiki

路標(biāo)

以下將展示graphengine近期的計(jì)劃,我們會(huì)根據(jù)用戶的反饋訴求,持續(xù)調(diào)整計(jì)劃的優(yōu)先級(jí)。

總體而言,我們會(huì)努力在以下幾個(gè)方面不斷改進(jìn)。

1、完備性:Cast/ConcatV2算子支持輸入數(shù)據(jù)類型為int64的常量折疊;

2、完備性:onnx parser支持一對多映射;

3、架構(gòu)優(yōu)化:ATC解耦并遷移至parser;

4、易用性:提供tensorflow訓(xùn)練的checkpoint文件轉(zhuǎn)pb文件的一鍵式轉(zhuǎn)化工具;

5、易用性:提供一鍵式本地編譯環(huán)境構(gòu)建工具;

6、可維測:ATC轉(zhuǎn)換生成的om模型包含框架信息、cann版本信息和芯片信息等;
?

下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評(píng)論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
  2. 1.06 MB  |  532次下載  |  免費(fèi)
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費(fèi)
  5. 3TC358743XBG評(píng)估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費(fèi)
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費(fèi)
  9. 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費(fèi)
  11. 6迪文DGUS開發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費(fèi)
  13. 7元宇宙底層硬件系列報(bào)告
  14. 13.42 MB  |  182次下載  |  免費(fèi)
  15. 8FP5207XR-G1中文應(yīng)用手冊
  16. 1.09 MB  |  178次下載  |  免費(fèi)

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費(fèi)
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費(fèi)
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費(fèi)
  7. 4開關(guān)電源設(shè)計(jì)實(shí)例指南
  8. 未知  |  21549次下載  |  免費(fèi)
  9. 5電氣工程師手冊免費(fèi)下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費(fèi)
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費(fèi)
  13. 7電子制作實(shí)例集錦 下載
  14. 未知  |  8113次下載  |  免費(fèi)
  15. 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費(fèi)
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537798次下載  |  免費(fèi)
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費(fèi)
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費(fèi)
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費(fèi)
  11. 6電路仿真軟件multisim 10.0免費(fèi)下載
  12. 340992  |  191187次下載  |  免費(fèi)
  13. 7十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費(fèi)
  15. 8proe5.0野火版下載(中文版免費(fèi)下載)
  16. 未知  |  138040次下載  |  免費(fèi)