国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

3天內(nèi)不再提示

如何用FPGA加速神經(jīng)網(wǎng)絡(luò)

OpenFPGA ? 來源:OpenFPGA ? 2024-01-24 09:51 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

之前介紹的項(xiàng)目《優(yōu)秀的 Verilog/FPGA開源項(xiàng)目介紹(十四)- 使用FPGA實(shí)現(xiàn)LeNet-5 深度神經(jīng)網(wǎng)絡(luò)模型》最后我們分析了,純FPGA實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)的缺點(diǎn),以及現(xiàn)在FPGA廠家的加速方案,這里引用一下:

到底純FPGA適不適合這種大型神經(jīng)網(wǎng)絡(luò)的設(shè)計(jì)?這個(gè)問題其實(shí)我們不適合回答,但是FPGA廠商是的實(shí)際操作是很有權(quán)威性的,現(xiàn)在不論是Intel還是Xilinx都沒有在自己傳統(tǒng)的FPGA上推廣AI,都是在基于FPGA的SoC上推廣(Vitis和OpenVINO,前者Xilinx后者Intel),總結(jié)來看就是:純 RTL 硬件設(shè)計(jì)不是AI的好選擇。特別是對(duì)于大規(guī)模網(wǎng)絡(luò),權(quán)重和中間結(jié)果需要存儲(chǔ)在外部存儲(chǔ)器中。并且數(shù)據(jù)迭代器會(huì)更加復(fù)雜。設(shè)計(jì)周期長(zhǎng),AI相關(guān)領(lǐng)域迭代速度快,綜上以上幾點(diǎn),可以很容易給你們指引一條道路。

目前主流的解決方案就是使用通用或?qū)S?a target="_blank">處理器來做控制工作,讓硬件來執(zhí)行計(jì)算(加速的概念),今天就介紹兩個(gè)針對(duì)以上解決方案的開源項(xiàng)目,這兩個(gè)項(xiàng)目是用FPGA進(jìn)行硬件加速的必備項(xiàng)目。

AI算法流程

在進(jìn)行項(xiàng)目介紹前,我們先介紹一下軟件架構(gòu)和工具集。這個(gè)后面會(huì)影響理解。

一個(gè)完整的深度學(xué)習(xí)框架中主要分為下面幾個(gè)流程:

6951b9b8-ba50-11ee-8b88-92fbcf53809c.png

有一些是我們不太關(guān)心的部分(對(duì)于FPGA實(shí)現(xiàn)應(yīng)用),即數(shù)據(jù)收集等,所以上訴流程再簡(jiǎn)單分為幾個(gè)主要部分,即訓(xùn)練(training)和推理(inference)、部署(deployment)。

訓(xùn)練(Training)

使用訓(xùn)練模型(Caffe、TensorFlow、MxNET、ONNX等)根據(jù)訓(xùn)練數(shù)據(jù)得到相關(guān)的參數(shù)。舉個(gè)例子,我現(xiàn)在想要設(shè)備識(shí)別貓和狗,我首先需要收集貓和狗的圖片(這些圖片稱為訓(xùn)練數(shù)據(jù)集(training dataset)),但是這些數(shù)據(jù)集在進(jìn)行訓(xùn)練前要有標(biāo)簽(即每張照片是狗,那張照片是貓),選擇好訓(xùn)練模型后,將上訴數(shù)據(jù)給訓(xùn)練模型進(jìn)行訓(xùn)練,訓(xùn)練模型不是萬能的,雖然能通過訓(xùn)練不斷的優(yōu)化參數(shù),但是在訓(xùn)練完還不一定能達(dá)到你想要的識(shí)別率(比如100張圖片有50張能識(shí)別),接下來就是通過優(yōu)化參數(shù),讓另外50張錯(cuò)的也變成對(duì)的。這整個(gè)過程就稱之為訓(xùn)練(Traning)。

推理(Inference)

這個(gè)過程比較簡(jiǎn)單,就是把上面訓(xùn)練好的模型,去識(shí)別不是訓(xùn)練集里的圖片(這種圖片就叫做現(xiàn)場(chǎng)數(shù)據(jù)(live data)),如果對(duì)這些現(xiàn)場(chǎng)數(shù)據(jù)的識(shí)別也非常NICE,那么證明你的網(wǎng)絡(luò)訓(xùn)練的是非常好的,如果不是特別好,就需要把訓(xùn)練數(shù)據(jù)集增加,重復(fù)這一過程,直到現(xiàn)場(chǎng)數(shù)據(jù)也達(dá)到比較好的效果。把訓(xùn)練好的模型拿出來進(jìn)行現(xiàn)場(chǎng)實(shí)驗(yàn)推理的過程,稱為推理(Inference)。

部署(deployment)

部署的理解很簡(jiǎn)單,就是經(jīng)過上面兩個(gè)步驟的模型應(yīng)用,把它放在某個(gè)硬件平臺(tái)上運(yùn)行,這個(gè)過程稱之為部署(deployment)。

其實(shí)各大廠家推出自己的架構(gòu)/工具都是基于上訴流程,不同點(diǎn)就是會(huì)針對(duì)自家的硬件做細(xì)節(jié)優(yōu)化。

現(xiàn)在常見的模型推理部署框架有很多,比如:英特爾的OpenVINO,英偉達(dá)TensorRT,谷歌的Mediapipe,Xilinx Vitis。

Intel FPGA OpenVINO

介紹

OpenVINO是Intel推出的用于優(yōu)化和部署 AI 推理的開源工具包。

695c6afc-ba50-11ee-8b88-92fbcf53809c.png

提升計(jì)算機(jī)視覺、自動(dòng)語音識(shí)別、自然語言處理和其他常見任務(wù)中的深度學(xué)習(xí)性能

使用通過 TensorFlow、PyTorch 等流行框架訓(xùn)練的模型

減少資源需求并在從邊緣到云的一系列英特爾平臺(tái)上高效部署

6965a496-ba50-11ee-8b88-92fbcf53809c.png

來源:知乎@火狐貍

上圖就是OpenVINO的組成,針對(duì)第一節(jié)的 AI算法流程 理解起來不是很難。其中,模型優(yōu)化器是線下模型轉(zhuǎn)換,推理引擎是部署在設(shè)備上運(yùn)行的AI負(fù)載。

因?yàn)镺penVINO還有針對(duì)自己CPU的架構(gòu),沒有對(duì)FPGA部分過多介紹,所以一些細(xì)節(jié)會(huì)在下一個(gè)項(xiàng)目介紹。

視頻介紹

關(guān)于OpenFPGA在FPGA方面的加速應(yīng)用,可以查看下面的兩個(gè)官方中文視頻介紹,這里就不再贅述。

Xilinx FPGA Vitis AI

2019年10月,Xilinx正式發(fā)布了統(tǒng)一開發(fā)軟件平臺(tái)Vitis。Vitis平臺(tái)無需用戶深入掌握硬件專業(yè)知識(shí),即軟件和算法自動(dòng)適配到Xilinx的硬件架構(gòu)。Xilinx Vitis AI是針對(duì)自家硬件平臺(tái)推出的針對(duì)AI模型的硬件實(shí)現(xiàn)。Vitis AI 提供的工具鏈能在數(shù)分鐘內(nèi)完成優(yōu)化、量化和編譯操作,在賽靈思器件上高效地運(yùn)行預(yù)先訓(xùn)練好的AI模型。

介紹

6971e44a-ba50-11ee-8b88-92fbcf53809c.png

上圖就是Vitis AI的整體架構(gòu),主要分為AI Model Zoo、AI 優(yōu)化器、AI 量化器、AI 編譯器、AI 配置器、AI 庫(kù)、XRT、以及核心DPU。

整個(gè)流程和上圖類似,下面針對(duì)每個(gè)部分簡(jiǎn)單介紹(Intel的類似)。

AI Model Zoo

這個(gè)就是最流行框架 Pytorch、Tensorflow、Tensorflow 2 和 Caffe 的現(xiàn)成深度學(xué)習(xí)模型的集合,也就是我們可以簡(jiǎn)單及快速的進(jìn)行AI模型的訓(xùn)練和優(yōu)化。

AI 優(yōu)化器、AI 量化器、AI 編譯器

69817f40-ba50-11ee-8b88-92fbcf53809c.png

AI 優(yōu)化器功能簡(jiǎn)介

這三個(gè)作用就是將訓(xùn)練好的模型進(jìn)行優(yōu)化,其中AI 優(yōu)化器是在犧牲很少的精度情況下降模型的復(fù)雜度;AI 量化器的作用其實(shí)和FPGA的結(jié)構(gòu)有關(guān)(FPGA無法處理浮點(diǎn)數(shù)據(jù)),AI 量化器就是將32 位浮點(diǎn)權(quán)值和激活量轉(zhuǎn)換為 INT8 這樣的定點(diǎn)數(shù)據(jù)。

69872576-ba50-11ee-8b88-92fbcf53809c.png

AI 量化器功能簡(jiǎn)介

AI 編譯器的作用就是將 AI 模型進(jìn)行高級(jí)優(yōu)化,主要包括指令集、數(shù)據(jù)流、層融合和指令排程等,并可盡量重復(fù)使用片上內(nèi)存。

6995fc2c-ba50-11ee-8b88-92fbcf53809c.png

AI 編譯器功能簡(jiǎn)介

AI 配置器、AI 庫(kù)

69a190be-ba50-11ee-8b88-92fbcf53809c.png

AI 配置器功能簡(jiǎn)介

AI 配置器主要是輔助開發(fā)人員對(duì)AI模型的方案實(shí)施的效率和利用率進(jìn)行分析的性能分析器。

AI 庫(kù)功能簡(jiǎn)介

AI庫(kù)主要功能就是將DPU和上層進(jìn)行鏈接(基于帶有統(tǒng)一 API 的 Vitis AI Runtime 構(gòu)建)。

XRT、DPU

這兩個(gè)是Xilinx的“王牌”了,其中DPU大家應(yīng)該不陌生,是DNNDK的升級(jí)版本(DNNDK官方應(yīng)該已經(jīng)不維護(hù)了)。

XRT

69d4b02a-ba50-11ee-8b88-92fbcf53809c.png

Xilinx 運(yùn)行時(shí)庫(kù) (XRT) 是 Vitis 統(tǒng)一軟件平臺(tái)和 Vitis AI 開發(fā)環(huán)境的一個(gè)重要組成部分,其可幫助開發(fā)人員繼續(xù)使用熟悉的編程語言(如 C/C++Python 以及高層次特定域框架 TensorFlow 和咖啡等)在 Xilinx 靈活應(yīng)變的平臺(tái)上部署。

主要功能如下圖所示:

DPU

6a14d592-ba50-11ee-8b88-92fbcf53809c.png

詳細(xì)介紹:PG338 PG366

Xilinx深度學(xué)習(xí)處理器單元 (DPU) 是一個(gè)專門用于卷積神經(jīng)網(wǎng)絡(luò)的可編程引擎。該單元包含寄存器配置模塊、數(shù)據(jù)控制器模塊和卷積計(jì)算模塊。在 DPU 中部署的卷積神經(jīng)網(wǎng)絡(luò)包括 VGG、ResNet、GoogLeNet、YOLO、SSD、MobileNet 以及 FPN 等。

6a2de0aa-ba50-11ee-8b88-92fbcf53809c.png

6a46dd1c-ba50-11ee-8b88-92fbcf53809c.png

總結(jié)

今天介紹了兩個(gè)最重要的FPGA加速神經(jīng)網(wǎng)絡(luò)的開源項(xiàng)目,而且經(jīng)過幾年的發(fā)展越發(fā)穩(wěn)定,總結(jié)一下就是,如果想用FPGA加速神經(jīng)網(wǎng)絡(luò)就快點(diǎn)去看看吧,這里在簡(jiǎn)單推薦一下這兩個(gè)項(xiàng)目的入門開發(fā)板。

695c6afc-ba50-11ee-8b88-92fbcf53809c.png

Intel C5P 開發(fā)板

Intel OpenVINO入門開發(fā)板

Xilinx Kria KV260開發(fā)板

最后,還是感謝各個(gè)大佬開源的項(xiàng)目,讓我們受益匪淺。后面有什么感興趣方面的項(xiàng)目,大家可以在后臺(tái)留言或者加微信留言,今天就到這,我是爆肝的碎碎思,期待下期文章與你相見。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1660

    文章

    22408

    瀏覽量

    636210
  • 神經(jīng)網(wǎng)絡(luò)

    關(guān)注

    42

    文章

    4838

    瀏覽量

    107742
  • Xilinx
    +關(guān)注

    關(guān)注

    73

    文章

    2200

    瀏覽量

    131116
  • 開源
    +關(guān)注

    關(guān)注

    3

    文章

    4203

    瀏覽量

    46122

原文標(biāo)題:想用FPGA加速神經(jīng)網(wǎng)絡(luò),這兩個(gè)開源項(xiàng)目你必須要了解

文章出處:【微信號(hào):Open_FPGA,微信公眾號(hào):OpenFPGA】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    【PYNQ-Z2申請(qǐng)】基于PYNQ的卷積神經(jīng)網(wǎng)絡(luò)加速

    項(xiàng)目名稱:基于PYNQ的卷積神經(jīng)網(wǎng)絡(luò)加速試用計(jì)劃:申請(qǐng)理由:本人研究生在讀,想要利用PYNQ深入探索卷積神經(jīng)網(wǎng)絡(luò)的硬件加速,在PYNQ上實(shí)現(xiàn)圖像的快速處理項(xiàng)目計(jì)劃:1、在PC端實(shí)現(xiàn)Ln
    發(fā)表于 12-19 11:37

    基于賽靈思FPGA的卷積神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)設(shè)計(jì)

    作者:Nagesh Gupta 創(chuàng)始人兼 CEOAuviz Systems Nagesh@auvizsystems.com憑借出色的性能和功耗指標(biāo),賽靈思 FPGA 成為設(shè)計(jì)人員構(gòu)建卷積神經(jīng)網(wǎng)絡(luò)
    發(fā)表于 06-19 07:24

    如何設(shè)計(jì)BP神經(jīng)網(wǎng)絡(luò)圖像壓縮算法?

    (Digital Signal Processor)相比,現(xiàn)場(chǎng)可編程門陣列(Field Programma-ble Gate Array,FPGA)在神經(jīng)網(wǎng)絡(luò)的實(shí)現(xiàn)上更具優(yōu)勢(shì)。DSP處理器在處理時(shí)采用指令順序執(zhí)行
    發(fā)表于 08-08 06:11

    如何移植一個(gè)CNN神經(jīng)網(wǎng)絡(luò)FPGA中?

    訓(xùn)練一個(gè)神經(jīng)網(wǎng)絡(luò)并移植到Lattice FPGA上,通常需要開發(fā)人員既要懂軟件又要懂?dāng)?shù)字電路設(shè)計(jì),是個(gè)不容易的事。好在FPGA廠商為我們提供了許多工具和IP,我們可以在這些工具和IP的基礎(chǔ)上做
    發(fā)表于 11-26 07:46

    基于FPGA神經(jīng)網(wǎng)絡(luò)的性能評(píng)估及局限性

    FPGA實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)關(guān)鍵問題分析基于FPGA的ANN實(shí)現(xiàn)方法基于FPGA神經(jīng)網(wǎng)絡(luò)的性能評(píng)估及局限性
    發(fā)表于 04-30 06:58

    何用ARM和FPGA搭建神經(jīng)網(wǎng)絡(luò)處理器通信方案?

    某人工神經(jīng)網(wǎng)絡(luò)FPGA處理器能夠?qū)?shù)據(jù)進(jìn)行運(yùn)算處理,為了實(shí)現(xiàn)集數(shù)據(jù)通信、操作控制和數(shù)據(jù)處理于一體的便攜式神經(jīng)網(wǎng)絡(luò)處理器,需要設(shè)計(jì)一種基于嵌入式ARM內(nèi)核及現(xiàn)場(chǎng)可編程門陣列FPGA的主
    發(fā)表于 05-21 06:35

    如何構(gòu)建神經(jīng)網(wǎng)絡(luò)

    原文鏈接:http://tecdat.cn/?p=5725 神經(jīng)網(wǎng)絡(luò)是一種基于現(xiàn)有數(shù)據(jù)創(chuàng)建預(yù)測(cè)的計(jì)算系統(tǒng)。如何構(gòu)建神經(jīng)網(wǎng)絡(luò)神經(jīng)網(wǎng)絡(luò)包括:輸入層:根據(jù)現(xiàn)有數(shù)據(jù)獲取輸入的層隱藏層:使用反向傳播優(yōu)化輸入變量權(quán)重的層,以提高模型的預(yù)測(cè)
    發(fā)表于 07-12 08:02

    EdgeBoard中神經(jīng)網(wǎng)絡(luò)算子在FPGA中的實(shí)現(xiàn)方法是什么?

    FPGA加速的關(guān)鍵因素是什么?EdgeBoard中神經(jīng)網(wǎng)絡(luò)算子在FPGA中的實(shí)現(xiàn)方法是什么?
    發(fā)表于 09-28 06:37

    如何使用stm32cube.ai部署神經(jīng)網(wǎng)絡(luò)

    何用stm32cube.ai簡(jiǎn)化人工神經(jīng)網(wǎng)絡(luò)映射?如何使用stm32cube.ai部署神經(jīng)網(wǎng)絡(luò)
    發(fā)表于 10-11 08:05

    請(qǐng)問一下fpga加速神經(jīng)網(wǎng)絡(luò)為什么要用arm核呢

    請(qǐng)問一下fpga加速神經(jīng)網(wǎng)絡(luò)為什么要用arm核呢?用其他的不行嗎
    發(fā)表于 07-25 14:37

    FPGA去實(shí)現(xiàn)大型神經(jīng)網(wǎng)絡(luò)的設(shè)計(jì)

    1、加速神經(jīng)網(wǎng)絡(luò)的必備開源項(xiàng)目  到底純FPGA適不適合這種大型神經(jīng)網(wǎng)絡(luò)的設(shè)計(jì)?這個(gè)問題其實(shí)我們不適合回答,但是FPGA廠商是的實(shí)際操作是很
    發(fā)表于 10-24 16:10

    基于FPGA的SIMD卷積神經(jīng)網(wǎng)絡(luò)加速

    一種基于FPGA的SIM卷積神經(jīng)網(wǎng)絡(luò)加速器架構(gòu)。以YOOV2目標(biāo)檢測(cè)算法為例,介紹了將卷積神經(jīng)網(wǎng)絡(luò)模型映射到FPGA上的完整流程;對(duì)
    發(fā)表于 05-28 14:00 ?24次下載

    基于FPGA神經(jīng)網(wǎng)絡(luò)硬件實(shí)現(xiàn)方法

    基于FPGA神經(jīng)網(wǎng)絡(luò)硬件實(shí)現(xiàn)方法說明。
    發(fā)表于 06-01 09:35 ?51次下載
    基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>神經(jīng)網(wǎng)絡(luò)</b>硬件實(shí)現(xiàn)方法

    FPGA加速神經(jīng)網(wǎng)絡(luò)的矩陣乘法

    電子發(fā)燒友網(wǎng)站提供《FPGA加速神經(jīng)網(wǎng)絡(luò)的矩陣乘法.pdf》資料免費(fèi)下載
    發(fā)表于 09-15 14:50 ?0次下載
    <b class='flag-5'>FPGA</b><b class='flag-5'>加速</b><b class='flag-5'>神經(jīng)網(wǎng)絡(luò)</b>的矩陣乘法

    如何在FPGA上實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)

    可編程門陣列(FPGA)作為一種靈活、高效的硬件實(shí)現(xiàn)方式,為神經(jīng)網(wǎng)絡(luò)加速提供了新的思路。本文將從FPGA實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)的基本原理、關(guān)鍵技術(shù)、
    的頭像 發(fā)表于 07-10 17:01 ?4585次閱讀