《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 電子元件 > 業(yè)界動(dòng)態(tài) > 看華為卷積運(yùn)算芯片如何提高AI資源利用率

看華為卷積運(yùn)算芯片如何提高AI資源利用率

2020-11-11
來(lái)源:愛(ài)集微APP
關(guān)鍵詞: 華為 芯片 AI 人工智能

目前,深度神經(jīng)網(wǎng)絡(luò)技術(shù)已經(jīng)成為人工智能領(lǐng)域的代表性算法,基于深度神經(jīng)網(wǎng)絡(luò)技術(shù)的字符識(shí)別、圖像分類(lèi)或語(yǔ)音識(shí)別等關(guān)鍵技術(shù),已經(jīng)廣泛應(yīng)用于搜索引擎和智能手機(jī)等產(chǎn)品中。

其中,當(dāng)前最為有效且應(yīng)用最為廣泛的神經(jīng)網(wǎng)絡(luò)算法是卷積神經(jīng)網(wǎng)絡(luò)算法,簡(jiǎn)稱“卷積運(yùn)算”。在現(xiàn)有技術(shù)中,CNN算法的核心計(jì)算單元是乘加運(yùn)算,乘法累加器陣列常用于矩陣乘法運(yùn)算,而卷積運(yùn)算可以轉(zhuǎn)換為矩陣乘法運(yùn)算。

因此業(yè)界廣泛采用MAC(乘累加器)陣列為計(jì)算核心的專用加速硬件,例如:現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)、專用集成電路(ASIC)等,以加速卷積運(yùn)算的運(yùn)算速度。

但是目前卷積計(jì)算也存在著一些問(wèn)題,一方面,當(dāng)MAC陣列中存在多個(gè)卷積窗口同時(shí)進(jìn)行卷積運(yùn)算時(shí),這些卷積窗口分布在MAC陣列中的不同位置,使得MAC陣列的利用率非常低。另一方面,存在大量重復(fù)數(shù)據(jù)被從RAM輸入到MAC陣列,這樣會(huì)增加RAM的訪問(wèn)次數(shù)。

為了解決這樣的問(wèn)題,華為發(fā)明了將CPU、RAM和卷積運(yùn)算芯片集成在同一數(shù)據(jù)總線上的AI芯片,2016年12月29日,華為發(fā)明了一項(xiàng)名為“卷積運(yùn)算芯片和通信設(shè)備”的發(fā)明專利(申請(qǐng)?zhí)枺?01611243272.X),申請(qǐng)人為華為機(jī)器有限公司。

根據(jù)該專利目前公開(kāi)的資料,讓我們一起來(lái)看看華為的這項(xiàng)新架構(gòu)AI芯片吧。

41.jpg

如上圖,為該專利中發(fā)明的硬件設(shè)備的示意性框架圖,硬件架構(gòu)中包括中央處理器100、雙倍速率同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器(DDR SDRAM)200以及卷積運(yùn)算芯片300。CPU用來(lái)控制卷積運(yùn)算芯片啟動(dòng)卷積運(yùn)算,DDR SDRAM用于向卷積運(yùn)算芯片的數(shù)據(jù)緩存模塊輸入多個(gè)卷積數(shù)據(jù)和多個(gè)卷積參數(shù),然后卷積運(yùn)算芯片根據(jù)這些數(shù)據(jù)來(lái)完成卷積運(yùn)算。

當(dāng)?shù)玫竭\(yùn)算結(jié)果后,就會(huì)將運(yùn)算結(jié)果寫(xiě)回到DDR SDRAM事先設(shè)定好的內(nèi)存地址中,并同時(shí)通知CPU完成運(yùn)算,以從內(nèi)存地址中提取結(jié)果數(shù)據(jù)。

42.jpg

如上圖,為上面框架中的卷積運(yùn)算芯片的結(jié)構(gòu)示意圖,這種卷積運(yùn)算芯片包括數(shù)據(jù)緩存模塊310、M*N乘法累加器陣列320、輸出控制模塊330和陣列控制模塊340。

數(shù)據(jù)緩存模塊用于向乘法累加器中的第一乘法累加窗口傳輸用于卷積運(yùn)算的多個(gè)卷積數(shù)據(jù)和卷積參數(shù),卷積參數(shù)由數(shù)據(jù)緩存模塊根據(jù)第一卷積參數(shù)矩陣確定,而該控制器也是通過(guò)在運(yùn)算器內(nèi)集成這樣的數(shù)據(jù)緩存器,從而減少了RAM的訪問(wèn)次數(shù),進(jìn)而減少了RAM的訪問(wèn)壓力。

其中M*N乘法累加器是該運(yùn)算芯片的核心運(yùn)算部件,而這種M*N的結(jié)構(gòu)設(shè)計(jì)方式也是為了進(jìn)行卷積運(yùn)算而特意設(shè)計(jì)的,其具體結(jié)構(gòu)如下圖所示。

43.jpg

可以看到,這種乘法累加器包括M*N個(gè)處理單元,并且每?jī)尚械奶幚韱卧g還存在斜向的數(shù)據(jù)傳輸通道,這相比于傳統(tǒng)的矩陣式數(shù)據(jù)傳輸通道,具有更加靈活的數(shù)據(jù)傳輸方式,可以更好的適用于AI芯片進(jìn)行多種類(lèi)型的運(yùn)算。

第一乘法累加窗口可以將數(shù)據(jù)進(jìn)行乘法運(yùn)算,并接著進(jìn)行加法運(yùn)算以獲得卷積結(jié)果,最后由輸出控制模塊輸出卷積神經(jīng)網(wǎng)絡(luò)的運(yùn)算結(jié)果,進(jìn)而完成AI芯片中的任務(wù)。

在該專利中,為了盡可能地提高M(jìn)AC陣列的利用率以及卷積運(yùn)算效率,陣列控制模塊會(huì)根據(jù)第一卷積參數(shù)矩陣的行數(shù)和第一卷積數(shù)據(jù)陣列的行數(shù)來(lái)確定第一乘法累加窗口的列數(shù)。

華為發(fā)明的卷積運(yùn)算芯片,這種卷積運(yùn)算芯片能夠在提高陣列資源利用率的同時(shí)降低RAM訪問(wèn)次數(shù),進(jìn)而減小RAM的訪問(wèn)壓力。例如華為發(fā)明的昇騰AI芯片也正是基于這樣的技術(shù)之上,才能實(shí)現(xiàn)極高的算力,不管多么復(fù)雜的模型都可以輕松訓(xùn)練,且實(shí)現(xiàn)極低的功耗。


本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。