在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

面向低功耗AI芯片上的神經網絡設計介紹

電子設計 ? 來源:電子設計 ? 作者:電子設計 ? 2020-12-14 23:40 ? 次閱讀

首發:GiantPandaCV
作者:ybai62868

【GiantPandaCV導語】

這篇文章為大家介紹了一下面向低功耗AI芯片上的神經網絡設計,隨著這幾年神經網絡和硬件(CPU,GPU,FPGA,ASIC)的迅猛發展,深度學習在包括互聯網,自動駕駛,金融,安防等很多行業都得到了廣泛的應用。然而當我們真正在實際部署深度學習應用的時候,許多場景例如無人駕駛對設備在功耗,成本,散熱性等方面都有額外的限制,導致了無法大規模應用深度學習解決方案。感興趣的同學可以了解一下有關如何面向AI芯片來設計神經網絡。

一、目前算法和硬件co-design的一個大背景

從硬件方面來看,我們都知道,深度神經網絡中的計算都是大量的稠密型運算。那么,當前的硬件發展其實已經很難滿足這些稠密型的運算需求了。那么,設計低功耗,低成本,高性能的硬件計算部署平臺就成為了當務之急。

對于算法來說,其實在某些公開的數據集上,已經有很多非常不錯的算法了,但是這些算法僅僅是針對特定數據集(瘋狂刷點...)而在真實的業務場景下,這些算法有時候就并不一定能表現的非常出色。這個時候,我們就要去設計那些不僅是針對一些public數據集能夠表現的比較comparable的,同時在一些特定的業務場景下,也要能夠表現令人滿意的算法。

二、當前AI芯片的發展狀況

總的來說,目前的硬件家族可以被分為兩個大類。

一大類是以通用需求為主的:CPU, GPU

另一大類以特殊用途為主的:FPGA, ASIC

先有一個大體的宏觀概念。然后在看看看算法和這些硬件是怎么結合的。

早期的代碼都是跑在CPU上的,比如說,我們知道的LeNet,那會GPU并不像現在這么盛行。直到ImageNet的冠軍Alex把網絡跑到了GPU上。這個時候,大家都開始使用GPU作為自己的訓練平臺。其實,CPU并不能非常高效的去運行我們需要的神經網絡。因為CPU的運行方式是以串行為主,并且CPU上有很多操作都是為了優化多級緩存,更加偏向的是對于數據IO處理的的能力。而這些方面的設計對于神經網絡來說都是多余的。

那么,什么樣的硬件結構設計才能更加滿足神經網絡的特性呢?

其實,這個問題上,超哥講的很好。究竟什么樣的硬件結構更加適合神經網絡,還得從神經網絡自身的特性來分析。

就拿我們熟悉的全連接層來講,比如說,現在第i層的神經元和第i+1層的神經元之間是以全連接的方式溝通的,那么溝通每個神經元的運算實際上是非常簡單的乘法和加法。那么在網絡進行一次前向運算的過程中,硬件上能夠支持乘法和加法的運算單元越多,那么此時就能夠承載下更深的網絡。

對于同一層上的不同神經元來說,我們需要他們能夠相互獨立的完成各自的運算,從這點來看,神經網絡具有大規模的并行性。

不論是在網絡進行前向計算還是反向計算的過程中,都會產生很多的中間計算結果。而這些中間結果并不是每個都會被復用,要能放下在網絡運算過程中產生的中間結果,就需要我們的硬件有足夠的帶寬。對于一個理想的設備來說,它應該有比較大的片上存儲,并且帶寬也要足夠。這個時候,對于屬于的圖片信息(以視覺任務為主)和網絡的權重才能有足夠的空間來做存儲。就是說要它充分的利用片上資源,減少片外的訪存。

其實,在我們對一個網絡進行train和inference的過程中,網絡本身對于計算精度并沒有我們想象的那么敏感。那么,為了能夠存下更多的權重(deep的網絡),我們可以使用那些比較簡單的數據類型,比如說,int8,fp16。因此,這些年來,大家對于CPU+(GPU, FPGA, TPU, ASIC)這些硬件所組成的異構計算平臺。

第一種組合:CPU+GPU

其實,在我們平時做實驗,訓練模型的過程中,用的最多的就是CPU+GPU這樣的組合。

借助現有的非常成熟的深度學習框架(mxnet,pytorch,tensorflow等),我們就能非常方便和容易的完成開發。

優點:編程容易,運算力和吞吐量大。

缺點:GPU的功耗高,延遲大,部署實際的AI產品,沒人會用服務器級別的GPU。

第二種組合:CPU+FPGA

這種組合方式的功耗相比CPU+GPU就要低很多。但是,對于FPGA的開發難度則會大很多。

優點:功耗低,方便落地

缺點:編程開發難度大,需要學習專用的硬件語言來支持相應的設備

第三種組合:CPU+ASIC

ASIC指的的是按照產品需求不同而定制化的特殊規格集成電路,由特定使用者要求和特定電子系統的需要而設計,制造。也就是說,ASIC在特定功能上進行了專項強化,可以根據需要進行復雜的設計,從而實現更高的處理速度和更低的功耗。那么,ASIC的生產成本就會更高!

那么其實,可以對上面講的這些硬件進行一個歸類,CPU,GPU叫做通用性芯片。ASIC叫做定制化芯片,而FPGA叫做半定制化芯片。

Google的TPU就是采用了定制化芯片的設計。

其中TPUv1采用了大量的乘法單元,有256x256個8位乘法器。片上有28MB的緩存,能夠存儲網絡的參數和輸入。同時,TPU上的數據和指令

說白了,就是將訓練好的model拿來定點化做inference。

TPUv2支持了train的功能,并且也能夠使用fp進行訓練。

講了這三種組合,其實如果就拿inference來說,FPGA才是合適的硬件。


各種硬件用于前向推理的優缺點

現在來看,要想設計一款適合深度神經網絡的芯片,我們需要其具備什么特性呢?

支持主流的視覺任務(inference),不僅僅要支持int8,還要支持fp。

high performance,low engergy,low cost

方便開發和支持主流的DL框架

這里要提的就是地平線自己設計的BPU,它也屬于ASIC的范疇。并且支持主流的CV任務。

BPU最大的特點就是設計了彈性的Tensor Core,它能夠將那些對于image來說所需要的op硬件化,這些op包括CNN中常見的(卷積,池化等),從而非常高效的去執行這些操作。中間通過一個叫做數據路由橋(Data Routing Bridge)的結構從片上來讀取數據,負責數據的傳輸和調度。同時,整個數據存儲資源和計算資源都可以通過編輯器輸出的指令來執行調度,從而方便實現各種算法,各種model的結構,和各種不同的任務。

三,如何從算法層面設計高效的神經網絡

從AI的解決方案來看存在兩種方式:

云端 AI

前端 AI

云端 AI 說的就是把我們的計算放在遠程服務器上去執行,然后把最終的計算結果傳回本地,這就要求我們的設備時時刻刻聯網,并且存在很大的安全問題和計算傳輸延遲問題,也就是我們通常所說的通信代價。

前端 AI 說的就是設備本身就能進行運算,不需要聯網。那么在安全性,實時性,適用性方面都要勝過云端 AI 。但是,他們在功耗,計算,內存存儲等方面有很多受限。

其實關于AI 產品落地,還是回到上面硬件部分講過的內容,如何去尋求一套 低功耗,高性能,低成本的解決方案。

這里拿IPC和TX2進行比較來說明這個問題。

IPC通過網線來供電,功耗非常低,只有12.5w,TX2的功耗是10-15w。TX2雖然在算力和計算成本方面都要勝過IPC,但是TX2的價位對于嵌入式的方案是不能接受的。。。

那么,要想做好前端AI方案(針對embedd AI)設備來說,我們就要在給定功耗(12.5w)和算力(IPC最大能力)的情況下,去優化我們的算法和神經網絡模型,來達到符合場景落地的需要。

那么,說白了,我們最終加速網絡的目的就是,在網絡保持不錯性能的的前提下,盡量去降低計算代價和帶寬的需求。

關于網絡加速方面看songhan的,補。我在cs231n上學到的東西。

網絡量化,網絡剪枝,參數共享,蒸餾以及模型結構優化。

工業界,用的最多的就是網絡量化和模型結構化的方法。

下面重點來講講這些方法:

3.1 量化

量化其實說的就是離散化。將我們原先連續變化的量通過近似從而達到離散的目的。

神經網絡的量化,值得就是將原先用浮點數表示的情況改成用更低的bit,從而繼續完成原先浮點數能夠完成的訓練和測試。

前面再將神經網絡特性的時候,我們也提到了網絡本身對于計算精度并沒有我們想象的那么敏感。所以,比較常用的方法,就是用fp16代替fp32來做train和inference。

其實,使用fp16去訓練,有時候還能得到比fp32更好的精度。從ML的角度來看,量化網絡本身就是對數據集正則化的一種方式,可以增強模型的泛化能力,從而提高精度

其實還可以進一步的用int8來取代fp16,這樣操作后,帶寬只有fp32的四分之一。

當然,如果你不擔心精度的損失,那么也可以使用4bit, 2bit, 1bit去代替int8。

神經網絡的量化其實可以分為:網絡權重的量化和網絡特征的量化。

網絡權重的量化對于最終的結果輸出損失比較小,而特征量化對最終的結果輸出損失就比較大。大模型和小模型對量化的敏感程度也不一樣,一般小模型會更加敏感。

關于量化想更深入的了解可以看一下下面的這些講解:

深度學習量化技術科普

Pytorch實現卷積神經網絡訓練量化(QAT)

MXNet實現卷積神經網絡訓練量化

深入了解NNIE量化技術

ICCV2019 高通Data-Free Quantization論文解讀

EasyQuant 后量化算法論文解讀

3.2 模型剪枝和參數共享

可以參考下面的講解:

如何讓你的YOLOV3模型更小更快?

YOLOV3剪枝方法匯總

深度學習算法優化系列八 | VGG,ResNet,DenseNe模型剪枝代碼實戰

3.3 知識蒸餾

蒸餾的思想非常簡單,其實就是用一個小模型來取代一個大模型,從而使得小模型能夠實現大模型的效果。大模型在這里一般叫做Teacher Net, 小模型叫做Student Net。從小模型到大模型的學習目標,包括最終的輸出層,網絡中間的特征結果,以及網絡的連接方案。

其實,知識蒸餾本質是一種transfer learning,比直接用小數據從頭開始訓練一個model要得到更好的效果。

3.4 低秩近似

可以參考:https://blog.csdn.net/kathrynlala/article/details/82943291

3.5 二值化/三值化網絡

可以參考下面的講解:

基于Pytorch構建一個可訓練的BNN

基于Pytorch構建三值化網絡TWN

低比特量化之XNOR-Net

低比特量化之DoreFa-Net理論與實踐

3.6 Winograd 變化

可以參考下面的講解:

詳解Winograd變換矩陣生成原理

詳解卷積中的Winograd加速算法

3.7 模型結構化

模型結構化其實是對模型加速最有效的一種方式。

那么關于模型結構優化,又會涉及到很多的知識。

接下來,就要講講怎么去設計一個高效的神經網絡結構,它需要遵循一些基本原則。

從最初的AlexNet到現在的MobileNetv2,網絡的參數從最初的240MB降低到了35MB,

準確率從57%也提高了75%。那么,我們肯定是去設計小的模型結構從而完成相對于大模型難以完成的任務。那么在這個設計的過程中,會涉及哪些基本原則呢?

關于這些,超哥也講的非常到位,我也總結下:

小模型其實并不一定比大模型運行(inference)的快。

一個網絡計算量小,并不代表他就一定運行的快,因為運行速度還和帶寬有關,計算量僅僅是其中的一個因素。

那么,結合上面兩點,我們就能明白。一個好的,跑起來比較快的網絡結構。必須要衡量計算量和帶寬的需求。

4. 總結

總結下,如果要設計高效的神經網絡結構來部署到硬件平臺。那么我們應該盡可能的讓網絡中的operator去做并行化計算,同時減少這些operator對于帶寬的需求。

審核編輯 黃昊宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 神經網絡
    +關注

    關注

    42

    文章

    4771

    瀏覽量

    100766
  • 人工智能
    +關注

    關注

    1791

    文章

    47279

    瀏覽量

    238499
  • AI芯片
    +關注

    關注

    17

    文章

    1887

    瀏覽量

    35021
收藏 人收藏

    評論

    相關推薦

    BP神經網絡和人工神經網絡的區別

    BP神經網絡和人工神經網絡(Artificial Neural Networks,簡稱ANNs)之間的關系與區別,是神經網絡領域中一個基礎且重要的話題。本文將從定義、結構、算法、應用及未來發展等多個方面,詳細闡述BP
    的頭像 發表于 07-10 15:20 ?1071次閱讀

    rnn是遞歸神經網絡還是循環神經網絡

    RNN(Recurrent Neural Network)是循環神經網絡,而非遞歸神經網絡。循環神經網絡是一種具有時間序列特性的神經網絡,能夠處理序列數據,具有記憶功能。以下是關于循環
    的頭像 發表于 07-05 09:52 ?577次閱讀

    遞歸神經網絡與循環神經網絡一樣嗎

    時具有各自的優勢和特點。本文將介紹遞歸神經網絡和循環神經網絡的概念、結構、工作原理、優缺點以及應用場景。 遞歸神經網絡(Recursive Neural Network,RvNN) 1
    的頭像 發表于 07-05 09:28 ?861次閱讀

    遞歸神經網絡是循環神經網絡

    遞歸神經網絡(Recurrent Neural Network,簡稱RNN)和循環神經網絡(Recurrent Neural Network,簡稱RNN)實際是同一個概念,只是不同的翻譯方式
    的頭像 發表于 07-04 14:54 ?759次閱讀

    循環神經網絡和卷積神經網絡的區別

    循環神經網絡(Recurrent Neural Network,RNN)和卷積神經網絡(Convolutional Neural Network,CNN)是深度學習領域中兩種非常重要的神經網絡
    的頭像 發表于 07-04 14:24 ?1299次閱讀

    深度神經網絡與基本神經網絡的區別

    在探討深度神經網絡(Deep Neural Networks, DNNs)與基本神經網絡(通常指傳統神經網絡或前向神經網絡)的區別時,我們需要從多個維度進行深入分析。這些維度包括
    的頭像 發表于 07-04 13:20 ?874次閱讀

    人工智能神經網絡芯片介紹

    人工智能神經網絡芯片是一類專門為深度學習和神經網絡算法設計的處理器。它們具有高性能、低功耗、可擴展等特點,廣泛應用于圖像識別、語音識別、自然語言處理等領域。以下是關于人工智能
    的頭像 發表于 07-04 09:33 ?766次閱讀

    神經網絡芯片與傳統芯片的區別和聯系

    引言 隨著人工智能技術的快速發展,深度學習算法在圖像識別、自然語言處理、語音識別等領域取得了顯著的成果。然而,深度學習算法對計算資源的需求非常高,傳統的計算芯片已經無法滿足其需求。因此,神經網絡芯片
    的頭像 發表于 07-04 09:31 ?954次閱讀

    神經網絡芯片和普通芯片區別

    神經網絡芯片和普通芯片的區別是一個復雜而深入的話題,涉及到計算機科學、電子工程、人工智能等多個領域。 定義 神經網絡芯片(Neural Ne
    的頭像 發表于 07-04 09:30 ?1167次閱讀

    反向傳播神經網絡和bp神經網絡的區別

    反向傳播神經網絡(Backpropagation Neural Network,簡稱BP神經網絡)是一種多層前饋神經網絡,它通過反向傳播算法來調整網絡中的權重和偏置,以達到最小化誤差的
    的頭像 發表于 07-03 11:00 ?806次閱讀

    bp神經網絡和卷積神經網絡區別是什么

    BP神經網絡(Backpropagation Neural Network)和卷積神經網絡(Convolutional Neural Network,簡稱CNN)是兩種不同類型的人工神經網絡,它們在
    的頭像 發表于 07-03 10:12 ?1185次閱讀

    卷積神經網絡的原理是什么

    卷積神經網絡(Convolutional Neural Network,簡稱CNN)是一種深度學習模型,廣泛應用于圖像識別、語音識別、自然語言處理等領域。本文將詳細介紹卷積神經網絡的原理,包括其
    的頭像 發表于 07-02 14:44 ?654次閱讀

    卷積神經網絡和bp神經網絡的區別

    卷積神經網絡(Convolutional Neural Networks,簡稱CNN)和BP神經網絡(Backpropagation Neural Networks,簡稱BPNN)是兩種
    的頭像 發表于 07-02 14:24 ?3968次閱讀

    神經網絡架構有哪些

    、語音識別、自然語言處理等多個領域。本文將對幾種主要的神經網絡架構進行詳細介紹,包括前饋神經網絡、循環神經網絡、卷積神經網絡、生成對抗
    的頭像 發表于 07-01 14:16 ?714次閱讀

    芯品#MAX78002 新型AI MCU,能夠使神經網絡以超低功耗運行

    的Maxim超低功耗微控制器相結合。通過這款基于硬件的卷積神經網絡(CNN)加速器,即使是電池供電的應用也可執行AI推理,同時功耗僅為微焦耳級。 MAX78002是一款先進的片
    的頭像 發表于 05-07 17:47 ?7407次閱讀
    芯品#MAX78002 新型<b class='flag-5'>AI</b> MCU,能夠使<b class='flag-5'>神經網絡</b>以超<b class='flag-5'>低功耗</b>運行
    主站蜘蛛池模板: 亚洲精品香蕉婷婷在线观看| 天堂资源在线中文| 波多野结衣一级毛片| 国产99久9在线视频| 欧美草比| 深夜动态福利gif进出粗暴| av手机在线播放| 天堂网最新| 国产nv精品你懂得| 天天草b| 亚洲国产精品自在现线让你爽| 真实偷清晰对白在线视频| 四虎永久在线精品影院| 老逼影院| 久久香蕉国产视频| 亚洲香蕉视频| 免费香蕉视频国产在线看| 天天操婷婷| 美女把尿口扒开让男人桶出水| 女人被男人免费播放网站| 岛国一级毛片| 欧美第四色| 起碰免费视频| 日本jlzz| 亚洲精品成人久久久影院| 国产成人a毛片| xxxxxxxx日本69| 亚洲第一区二区快射影院| 国产高清免费在线| h视频免费网站| 免费澳门一级毛片| 久久国产乱子伦精品免费看| 性欧美大战久久久久久久| 久久久噜噜噜www成人网| 黄 色 成 年人在线| 特级黄色毛片| 天天综合欧美| 亚洲乱码中文字幕综合| 综合免费视频| 99视频热| 一级片在线观看视频|