本書系統(tǒng)論述了基本達(dá)芬奇架構(gòu)的昇騰(Asccnd)AI處理器的原理、架構(gòu)與開發(fā)技術(shù)。全書共分6章,內(nèi)容涵蓋了神經(jīng)網(wǎng)絡(luò)理論基礎(chǔ)、計(jì)算芯片與開源框架、昇騰AI處理器軟硬件架構(gòu)、編程理論與方法,以及典型案例等。為便于讀者學(xué)習(xí),書中還給出了基本昇騰AI處理器的豐富的技術(shù)文檔、開發(fā)實(shí)例等線上資源。
本書可以作為普通高等學(xué)校人工智能、智能科學(xué)與技術(shù)、計(jì)算機(jī)科學(xué)與技術(shù)、電子信息工程、自動(dòng)化等專業(yè)的本科生及研究生教材,也適合作為從事人工智能系統(tǒng)設(shè)計(jì)的科研和工程技術(shù)人員的參考用書。
本書是華為公司官方出品!華為輪值董事長(zhǎng)徐直軍、中國(guó)工程院院士高文、中國(guó)科學(xué)院院士毛軍發(fā)作序!揭開達(dá)芬奇架構(gòu)AI處理器的神秘面紗、掌握強(qiáng)大算力的使用方法!昇騰Ascend AI處理器是業(yè)界領(lǐng)先的人工智能運(yùn)算芯片,可以應(yīng)用于未來的各類人工智能場(chǎng)景。本書由上海交大梁曉峣教授執(zhí)筆,華為公司一線技術(shù)支持,并提供了大量可以運(yùn)行的算例。本書可以作為廣大AI工程師的參考用書,也可以作為高等學(xué)校人工智能、計(jì)算機(jī)等專業(yè)微處理器/微控制器/人工智能芯片等相關(guān)課程教材。
視頻公開課: 愛課程或中國(guó)大學(xué)MOOC(慕課) 現(xiàn)代科學(xué)運(yùn)算MATLAB語(yǔ)言與應(yīng)用控制系統(tǒng)仿真與CAD(非嚴(yán)格配套本書視頻,僅供讀者參考)。
配書源代碼: 配書源代碼可以到清華大學(xué)出版社網(wǎng)站本書頁(yè)面下載。
薛定宇大講堂系列圖書將陸續(xù)出版:
薛定宇教授大講堂(卷Ⅰ):MATLAB程序設(shè)計(jì)
薛定宇教授大講堂(卷Ⅱ):MATLAB微積分運(yùn)算
薛定宇教授大講堂(卷Ⅲ):MATLAB線性代數(shù)運(yùn)算
薛定宇教授大講堂(卷Ⅳ):MATLAB*化計(jì)算
薛定宇教授大講堂(卷Ⅴ):MATLAB微分方程求解
薛定宇教授大講堂(卷Ⅵ):MATLAB/Simulink仿真
PREFACE
前言
日出東方,其道大光;鯤鵬展翅,旭日昇騰!
一款芯片的研發(fā),是一個(gè)漫長(zhǎng)的過程;一款芯片的研發(fā),也許就是一代人的心路歷程。
隨著深度學(xué)習(xí)在人工智能諸多領(lǐng)域的異軍突起,從CPU到GPU,再到各類專屬領(lǐng)域的定制芯片,我們迎來了計(jì)算機(jī)體系結(jié)構(gòu)的黃金時(shí)代!然而一款處理器芯片的研發(fā)周期,少則數(shù)年,多則數(shù)十年。在滾滾向前的時(shí)代大潮中,只有那一批最耐得住寂寞,經(jīng)得起誘惑的匠人,才能打造出計(jì)算機(jī)行業(yè)皇冠上最閃亮的明珠。
所以,當(dāng)華為邀請(qǐng)我為昇騰AI處理器寫一本教材時(shí),我毫不猶豫地答應(yīng)了。也許是出于對(duì)硬科技公司的高度認(rèn)同,也許是出于對(duì)同道中人的由衷尊敬,更可能是出于一種骨子里的使命感,我深深地覺得我們這個(gè)時(shí)代太需要一顆代表國(guó)內(nèi)科技最高水平的中國(guó)芯了!
華為推出面向人工智能計(jì)算場(chǎng)景的昇騰AI處理器,是希望通過更強(qiáng)的算力、更低的功耗,為深度學(xué)習(xí)的各類應(yīng)用場(chǎng)景鋪平道路。但是千里之行,始于足下,昇騰的使命任重道遠(yuǎn)。對(duì)于一款高端處理器來說,生態(tài)圈的培養(yǎng)和用戶編程習(xí)慣的養(yǎng)成可謂重中之重,也是決定該款產(chǎn)品生死存亡的關(guān)鍵。編寫本書的目的就是第一次向世人揭開昇騰AI處理器的神秘面紗,探索其內(nèi)在的設(shè)計(jì)理念,從軟硬件兩方面闡述其架構(gòu)特點(diǎn),教會(huì)讀者上手使用昇騰系列開發(fā)平臺(tái)。不積跬步,無以至千里,如果把打造昇騰生態(tài)圈當(dāng)作千里之行,那么本書便是嘗試邁出的第一步。
本書定位人工智能芯片領(lǐng)域選修教材,面向工程科技類普通讀者,盡可能刪減繁雜抽象的公式、定理和理論推導(dǎo)。讀者除需要具備基本的數(shù)學(xué)知識(shí)和編程能力外,無須預(yù)修任何課程。本書特別理想的受眾是人工智能、計(jì)算機(jī)科學(xué)、電子工程、生物醫(yī)藥、物理、化學(xué)、金融統(tǒng)計(jì)等領(lǐng)域需要用到大規(guī)模深度學(xué)習(xí)計(jì)算的研發(fā)人員; 本書也為AI處理器的設(shè)計(jì)公司和開發(fā)者提供了有價(jià)值的參考。
本書共分6章,內(nèi)容涵蓋了神經(jīng)網(wǎng)絡(luò)理論基礎(chǔ)、計(jì)算芯片與開源框架、昇騰AI處理器軟硬件架構(gòu)、編程理論與方法,以及典型案例等,希望能夠從理論到實(shí)踐,幫助讀者了解昇騰AI處理器所使用的達(dá)芬奇架構(gòu),并掌握其具體的編程和使用方法,助力讀者打造屬于自己的人工智能應(yīng)用。
空談?wù)`國(guó),實(shí)干興邦。愿與諸位讀者共勉。
感謝江子山和李興對(duì)本書撰寫工作做出的極大貢獻(xiàn),他們?cè)谫Y料整理與文字編排上注入了極大精力,并且編寫和校對(duì)了本書中所有的程序示例代碼。如果沒有他們的全心投入,本書將很難順利完成。
感謝陳子淵等對(duì)本書中的插圖進(jìn)行精心編輯和修改,使得本書的內(nèi)容更加清晰形象、概念的解釋更加具體明確。
感謝華為公司在本書寫作過程中提供的資源和支持。
感謝清華大學(xué)出版社盛東亮老師和鐘志芳老師等的大力支持,他們認(rèn)真細(xì)致的工作保證了本書的質(zhì)量。
由于編者水平有限,書中難免有疏漏和不足之處,懇請(qǐng)讀者批評(píng)指正!
作者
2019年8月
梁曉峣 上海交通大學(xué)計(jì)算機(jī)科學(xué)與工程系教授、博士生導(dǎo)師、學(xué)科帶頭人。畢業(yè)于美國(guó)哈佛大學(xué),獲得博士學(xué)位。研究方向包括計(jì)算機(jī)體系結(jié)構(gòu)、集成電路設(shè)計(jì)、通用圖形處理器和人工智能芯片架構(gòu)等。發(fā)表論文80余篇(包括國(guó)際頂級(jí)學(xué)術(shù)會(huì)議(ISCA、HPCA、MICRO、ISSCC、DAC、ICCAD等)論文),其中2篇入選計(jì)算機(jī)體系結(jié)構(gòu)年度最佳論文(IEEE MICRO TOP PICKS)。
CONTENTS
目錄
第1章基礎(chǔ)理論00
1.1人工智能簡(jiǎn)史00
1.2深度學(xué)習(xí)概論00
1.3神經(jīng)網(wǎng)絡(luò)理論0
1.3.1神經(jīng)元模型0
1.3.2感知機(jī)0
1.3.3多層感知機(jī)0
1.3.4卷積神經(jīng)網(wǎng)絡(luò)0
1.3.5應(yīng)用示例0
第2章行業(yè)背景0
2.1神經(jīng)網(wǎng)絡(luò)芯片現(xiàn)狀0
2.1.1CPU0
2.1.2GPU0
2.1.3TPU0
2.1.4FPGA0
2.1.5昇騰AI處理器0
2.2神經(jīng)網(wǎng)絡(luò)芯片加速理論0
2.2.1GPU加速理論0
2.2.2TPU加速理論0
2.3深度學(xué)習(xí)框架0
2.3.1MindSpore0
2.3.2Caffe0
2.3.3TensorFlow0
2.3.4PyTorch0
2.4深度學(xué)習(xí)編譯框架TVM0
第3章硬件架構(gòu)0
3.1昇騰AI處理器總覽0
3.2達(dá)芬奇架構(gòu)0
3.2.1計(jì)算單元0
3.2.2存儲(chǔ)系統(tǒng)0
3.2.3控制單元0
3.2.4指令集設(shè)計(jì)0
3.3卷積加速原理0
3.3.1卷積加速0
3.3.2架構(gòu)對(duì)比0
第4章軟件架構(gòu)0
4.1昇騰AI軟件?傆[0
4.2神經(jīng)網(wǎng)絡(luò)軟件流
4.2.1流程編排器
4.2.2數(shù)字視覺預(yù)處理模塊
4.2.3張量加速引擎(TBE)
4.2.4運(yùn)行管理器
4.2.5任務(wù)調(diào)度器
4.2.6框架管理器
4.2.7神經(jīng)網(wǎng)絡(luò)軟件流應(yīng)用
4.3開發(fā)工具鏈
4.3.1功能簡(jiǎn)介
4.3.2功能框架
4.3.3工具功能
第5章編程方法
5.1深度學(xué)習(xí)開發(fā)基礎(chǔ)
5.1.1深度學(xué)習(xí)編程理論
5.1.2深度學(xué)習(xí)推理優(yōu)化原理
5.1.3深度學(xué)習(xí)推理引擎
5.2昇騰AI軟件棧中的技術(shù)
5.2.1模型生成階段
5.2.2應(yīng)用編譯與部署階段
5.3自定義算子開發(fā)
5.3.1開發(fā)步驟
5.3.2AI CPU算子開發(fā)
5.3.3AI Core算子開發(fā)
5.4自定義應(yīng)用開發(fā)
第6章實(shí)戰(zhàn)案例
6.1評(píng)價(jià)標(biāo)準(zhǔn)
6.1.1精度
6.1.2交并比
6.1.3均值平均精度
6.1.4吞吐量和時(shí)延
6.1.5能效比
6.2圖像識(shí)別
6.2.1數(shù)據(jù)集:ImageNet
6.2.2算法:ResNet
6.2.3模型遷移實(shí)踐
6.3目標(biāo)檢測(cè)
6.3.1數(shù)據(jù)集:COCO
6.3.2算法:YoloV3
6.3.3自定義算子實(shí)踐
附錄A縮略詞列表
附錄BAscend開發(fā)者社區(qū)及資料下載
附錄C智能開發(fā)平臺(tái)ModelArts簡(jiǎn)介