自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

深度學(xué)習(xí)中,CPU、GPU、NPU、FPGA如何發(fā)揮優(yōu)勢(shì)

人工智能 深度學(xué)習(xí)
隨著AI的廣泛應(yīng)用,深度學(xué)習(xí)已成為當(dāng)前AI研究和運(yùn)用的主流方式。面對(duì)海量數(shù)據(jù)的并行運(yùn)算,AI對(duì)于算力的要求不斷提升,對(duì)硬件的運(yùn)算速度及功耗提出了更高的要求。

 隨著AI的廣泛應(yīng)用,深度學(xué)習(xí)已成為當(dāng)前AI研究和運(yùn)用的主流方式。面對(duì)海量數(shù)據(jù)的并行運(yùn)算,AI對(duì)于算力的要求不斷提升,對(duì)硬件的運(yùn)算速度及功耗提出了更高的要求。

[[264829]]

目前,除通用CPU外,作為硬件加速的GPU、NPU、FPGA等一些芯片處理器在深度學(xué)習(xí)的不同應(yīng)用中發(fā)揮著各自的優(yōu)勢(shì),但孰優(yōu)孰劣?

以人臉識(shí)別為例,其處理基本流程及對(duì)應(yīng)功能模塊所需的算力分布如下:

為什么會(huì)有這樣的應(yīng)用區(qū)分?

意義在哪里?

想要知道其中的答案,需要我們先從CPU、GPU、NPU、FPGA它們各自的原理、架構(gòu)及性能特點(diǎn)來了解。

首先,我們先來了解一下通用CPU的架構(gòu)。

CPU

CPU(Central Processing Unit)中央處理器,是一塊超大規(guī)模的集成電路,主要邏輯架構(gòu)包括控制單元Control,運(yùn)算單元ALU和高速緩沖存儲(chǔ)器(Cache)及實(shí)現(xiàn)它們之間聯(lián)系的數(shù)據(jù)(Data)、控制及狀態(tài)的總線(Bus)。

簡(jiǎn)單說,

就是計(jì)算單元、控制單元和存儲(chǔ)單元。

架構(gòu)圖如下所示: 

 

深度學(xué)習(xí)中,CPU、GPU、NPU、FPGA如何發(fā)揮優(yōu)勢(shì)

CPU遵循的是馮諾依曼架構(gòu),其核心是存儲(chǔ)程序、順序執(zhí)行。CPU的架構(gòu)中需要大量的空間去放置存儲(chǔ)單元(Cache)和控制單元(Control),相比之下計(jì)算單元(ALU)只占據(jù)了很小的一部分,所以它在大規(guī)模并行計(jì)算能力上極受限制,而更擅長(zhǎng)于邏輯控制。

CPU無法做到大量矩陣數(shù)據(jù)并行計(jì)算的能力,但GPU可以。

GPU

GPU(Graphics Processing Unit),即圖形處理器,是一種由大量運(yùn)算單元組成的大規(guī)模并行計(jì)算架構(gòu),專為同時(shí)處理多重任務(wù)而設(shè)計(jì)。

為什么GPU可以做到并行計(jì)算的能力?GPU中也包含基本的計(jì)算單元、控制單元和存儲(chǔ)單元,但GPU的架構(gòu)與CPU有所不同,如下圖所示: 

 

深度學(xué)習(xí)中,CPU、GPU、NPU、FPGA如何發(fā)揮優(yōu)勢(shì)

與CPU相比,CPU芯片空間的不到20%是ALU,而GPU芯片空間的80%以上是ALU。即GPU擁有更多的ALU用于數(shù)據(jù)并行處理。

以Darknet構(gòu)建的神經(jīng)網(wǎng)絡(luò)模型AlexNet、VGG-16及Restnet152在GPU Titan X, CPU Intel i7-4790K (4 GHz) 進(jìn)行ImageNet分類任務(wù)預(yù)測(cè)的結(jié)果: 

 

深度學(xué)習(xí)中,CPU、GPU、NPU、FPGA如何發(fā)揮優(yōu)勢(shì)

備注:以上數(shù)據(jù)源自https://pjreddie.com/darknet/imagenet/#reference

由此可見,GPU處理神經(jīng)網(wǎng)絡(luò)數(shù)據(jù)遠(yuǎn)遠(yuǎn)高效于CPU。

總結(jié)GPU具有如下特點(diǎn):

1 、多線程,提供了多核并行計(jì)算的基礎(chǔ)結(jié)構(gòu),且核心數(shù)非常多,可以支撐大量數(shù)據(jù)的并行計(jì)算。

2、擁有更高的訪存速度。

3、更高的浮點(diǎn)運(yùn)算能力。

因此,GPU比CPU更適合深度學(xué)習(xí)中的大量訓(xùn)練數(shù)據(jù)、大量矩陣、卷積運(yùn)算。

GPU雖然在并行計(jì)算能力上盡顯優(yōu)勢(shì),但并不能單獨(dú)工作,需要CPU的協(xié)同處理,對(duì)于神經(jīng)網(wǎng)絡(luò)模型的構(gòu)建和數(shù)據(jù)流的傳遞還是在CPU上進(jìn)行。同時(shí)存在功耗高,體積大的問題。

性能越高的GPU體積越大,功耗越高,價(jià)格也昂貴,對(duì)于一些小型設(shè)備、移動(dòng)設(shè)備來說將無法使用。

因此,一種體積小、功耗低、計(jì)算性能高、計(jì)算效率高的專用芯片NPU誕生了。

NPU

NPU (Neural Networks Process Units)神經(jīng)網(wǎng)絡(luò)處理單元。NPU工作原理是在電路層模擬人類神經(jīng)元和突觸,并且用深度學(xué)習(xí)指令集直接處理大規(guī)模的神經(jīng)元和突觸,一條指令完成一組神經(jīng)元的處理。相比于CPU和GPU,NPU通過突觸權(quán)重實(shí)現(xiàn)存儲(chǔ)和計(jì)算一體化,從而提高運(yùn)行效率。

NPU是模仿生物神經(jīng)網(wǎng)絡(luò)而構(gòu)建的,CPU、GPU處理器需要用數(shù)千條指令完成的神經(jīng)元處理,NPU只要一條或幾條就能完成,因此在深度學(xué)習(xí)的處理效率方面優(yōu)勢(shì)明顯。

實(shí)驗(yàn)結(jié)果顯示,同等功耗下NPU 的性能是 GPU 的 118 倍。

與GPU一樣,NPU同樣需要CPU的協(xié)同處理才能完成特定的任務(wù)。下面,我們可以看一下GPU和NPU是如何與CPU協(xié)同工作的。

GPU的加速

GPU當(dāng)前只是單純的并行矩陣的乘法和加法運(yùn)算,對(duì)于神經(jīng)網(wǎng)絡(luò)模型的構(gòu)建和數(shù)據(jù)流的傳遞還是在CPU上進(jìn)行。

CPU加載權(quán)重?cái)?shù)據(jù),按照代碼構(gòu)建神經(jīng)網(wǎng)絡(luò)模型,將每層的矩陣運(yùn)算通過CUDA或OpenCL等類庫(kù)接口傳送到GPU上實(shí)現(xiàn)并行計(jì)算,輸出結(jié)果;CPU接著調(diào)度下層神經(jīng)元組矩陣數(shù)據(jù)計(jì)算,直至神經(jīng)網(wǎng)絡(luò)輸出層計(jì)算完成,得到最終結(jié)果。 

 

深度學(xué)習(xí)中,CPU、GPU、NPU、FPGA如何發(fā)揮優(yōu)勢(shì)

CPU 與GPU的交互流程:

1獲取GPU信息,配置GPU id

2 加載神經(jīng)元參數(shù)到GPU

3 GPU加速神經(jīng)網(wǎng)絡(luò)計(jì)算

4接收GPU計(jì)算結(jié)果

NPU的加速

NPU與GPU加速不同,主要體現(xiàn)為每層神經(jīng)元計(jì)算結(jié)果不用輸出到主內(nèi)存,而是按照神經(jīng)網(wǎng)絡(luò)的連接傳遞到下層神經(jīng)元繼續(xù)計(jì)算,因此其在運(yùn)算性能和功耗上都有很大的提升。

CPU將編譯好的神經(jīng)網(wǎng)絡(luò)模型文件和權(quán)重文件交由專用芯片加載,完成硬件編程。 

 

深度學(xué)習(xí)中,CPU、GPU、NPU、FPGA如何發(fā)揮優(yōu)勢(shì)

CPU在整個(gè)運(yùn)行過程中,主要是實(shí)現(xiàn)數(shù)據(jù)的加載和業(yè)務(wù)流程的控制,其交互流程為:

1打開NPU專用芯片設(shè)備

2 傳入模型文件,得到模型task

3 獲取task的輸入輸出信息

4 拷貝輸入數(shù)據(jù)到模型內(nèi)存中

5 運(yùn)行模型,得到輸出數(shù)據(jù)

除NPU外,在功耗及計(jì)算能力上有一拼的還有FPGA。

FPGA

FPGA(Field-Programmable Gate Array)稱為現(xiàn)場(chǎng)可編程門陣列,用戶可以根據(jù)自身的需求進(jìn)行重復(fù)編程。與 CPU、GPU 相比,具有性能高、功耗低、可硬件編程的特點(diǎn)。

FPGA基本原理是在芯片內(nèi)集成大量的數(shù)字電路基本門電路以及存儲(chǔ)器,而用戶可以通過燒入FPGA 配置文件來定義這些門電路以及存儲(chǔ)器之間的連線。這種燒入不是一次性的,可重復(fù)編寫定義,重復(fù)配置。

FPGA的內(nèi)部結(jié)構(gòu)如下圖所示: 

 

深度學(xué)習(xí)中,CPU、GPU、NPU、FPGA如何發(fā)揮優(yōu)勢(shì)

FPGA的編程邏輯塊(Programable Logic Blocks)中包含很多功能單元,由LUT(Look-up Table)、觸發(fā)器組成。FPGA是直接通過這些門電路來實(shí)現(xiàn)用戶的算法,沒有通過指令系統(tǒng)的翻譯,執(zhí)行效率更高。

我們可以對(duì)比一下

CPU/GPU/NPU/FPGA各自的特點(diǎn)

 

深度學(xué)習(xí)中,CPU、GPU、NPU、FPGA如何發(fā)揮優(yōu)勢(shì)

 

各芯片架構(gòu)特點(diǎn)總結(jié)

/ CPU /

70%晶體管用來構(gòu)建Cache,還有一部分控制單元,計(jì)算單元少,適合邏輯控制運(yùn)算。

/ GPU /

晶體管大部分構(gòu)建計(jì)算單元,運(yùn)算復(fù)雜度低,適合大規(guī)模并行計(jì)算。主要應(yīng)用于大數(shù)據(jù)、后臺(tái)服務(wù)器、圖像處理。

/ NPU /

在電路層模擬神經(jīng)元,通過突觸權(quán)重實(shí)現(xiàn)存儲(chǔ)和計(jì)算一體化,一條指令完成一組神經(jīng)元的處理,提高運(yùn)行效率。主要應(yīng)用于通信領(lǐng)域、大數(shù)據(jù)、圖像處理。

/ FPGA /

可編程邏輯,計(jì)算效率高,更接近底層IO,通過冗余晶體管和連線實(shí)現(xiàn)邏輯可編輯。本質(zhì)上是無指令、無需共享內(nèi)存,計(jì)算效率比CPU、GPU高。主要應(yīng)用于智能手機(jī)、便攜式移動(dòng)設(shè)備、汽車。

CPU作為最通用的部分,協(xié)同其他處理器完成著不同的任務(wù)。GPU適合深度學(xué)習(xí)中后臺(tái)服務(wù)器大量數(shù)據(jù)訓(xùn)練、矩陣卷積運(yùn)算。NPU、FPGA在性能、面積、功耗等方面有較大優(yōu)勢(shì),能更好的加速神經(jīng)網(wǎng)絡(luò)計(jì)算。而FPGA的特點(diǎn)在于開發(fā)使用硬件描述語言,開發(fā)門檻相對(duì)GPU、NPU高。

可以說,每種處理器都有它的優(yōu)勢(shì)和不足,在不同的應(yīng)用場(chǎng)景中,需要根據(jù)需求權(quán)衡利弊,選擇合適的芯片。

責(zé)任編輯:武曉燕 來源: 今日頭條
相關(guān)推薦

2019-09-11 15:38:15

CPUGPUNPU

2013-05-20 12:18:33

萬兆服務(wù)器網(wǎng)絡(luò)萬兆以太網(wǎng)

2024-09-09 04:00:00

GPU人工智能

2021-01-05 08:23:20

CPUGPUTPU

2019-08-21 09:24:45

GPUCPU深度學(xué)習(xí)

2017-04-04 21:06:46

深度學(xué)習(xí)硬件神經(jīng)網(wǎng)絡(luò)

2024-09-27 08:10:57

2017-09-14 15:39:05

阿里云異構(gòu)計(jì)算人工智能

2024-11-25 16:15:14

2017-10-26 15:41:49

AICNN加速

2020-02-12 14:42:00

GPU技術(shù)關(guān)鍵參數(shù)應(yīng)用場(chǎng)景

2023-02-09 16:48:12

軟件開發(fā)測(cè)試結(jié)對(duì)測(cè)試

2017-01-20 13:58:31

英特爾GPUCPU

2017-01-24 11:51:14

騰訊云深度學(xué)習(xí)

2025-01-06 05:00:00

人工智能GPU深度學(xué)習(xí)

2015-04-16 13:38:26

GPU計(jì)算深度學(xué)習(xí)NVIDIA

2013-02-26 10:36:15

刀片存儲(chǔ)融合基礎(chǔ)架構(gòu)

2018-05-16 13:53:41

云計(jì)算

2018-04-18 15:30:27

多元化異構(gòu)計(jì)算

2022-12-29 14:57:04

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)