chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

關(guān)于pipeline 以及 unroll 指令的介紹

電子設(shè)計(jì) ? 來(lái)源:電子設(shè)計(jì) ? 作者:電子設(shè)計(jì) ? 2022-02-09 09:53 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本文轉(zhuǎn)載自: XILINX開(kāi)發(fā)者社區(qū)微信公眾號(hào)

HLS 優(yōu)化設(shè)計(jì)的最關(guān)鍵指令有兩個(gè):一個(gè)是流水線 (pipeline) 指令,一個(gè)是數(shù)據(jù)流(dataflow) 指令。正確地使用好這兩個(gè)指令能夠增強(qiáng)算法地并行性,提升吞吐量,降低延遲但是需要遵循一定的代碼風(fēng)格。展開(kāi) (unroll) 指令是只針對(duì) for 循環(huán)的展開(kāi)指令,和流水線指令關(guān)系密切,所以我們放在一起首先我們來(lái)看一下這三個(gè)指令在 Xilinx 官方指南中的定義:

Unroll: Unroll for-loops to create multiple instances of the loop body and its instructions that can then be scheduled independently.

Pipeline:Reduces the initiation interval by allowing the overlapped execution of operations within a loop or function.

Dataflow:Enables task level pipelining, allowing functions and loops to execute concurrently. Used to optimize through output and/or latency.

Unroll 指令在 for 循環(huán)的代碼區(qū)域進(jìn)行優(yōu)化,這個(gè)指令不包含流水線執(zhí)行的概念,單純地將循環(huán)體展開(kāi)使用更多地硬件資源實(shí)現(xiàn),保證并行循環(huán)體在調(diào)度地過(guò)程中是彼此獨(dú)立的。

Pipeline 指令在循環(huán)和函數(shù)兩個(gè)層級(jí)都可以使用,通過(guò)增加重復(fù)的操作指令(如增加資源使用量等等)來(lái)減小初始化間隔。

Dataflow 指令是一個(gè)任務(wù)級(jí)別的流水線指令,從更高的任務(wù)層次使得循環(huán)或函數(shù)可以并行執(zhí)行,目的在于減小延遲增加吞吐量。

Unroll 和 Pipeline 指令相互重合的關(guān)系在于,當(dāng)對(duì)函數(shù)進(jìn)行流水線處理時(shí),以下層次結(jié)構(gòu)中的所有循環(huán)都會(huì)自動(dòng)展開(kāi),而使用展開(kāi)指令的循環(huán)并沒(méi)有給定對(duì)II的約束。在最新版本的 Vitis HLS 工具中,工具會(huì)自動(dòng)分析數(shù)據(jù)之間的流水線操作關(guān)系,以II=1為目標(biāo)優(yōu)化,但是還是會(huì)受限于設(shè)計(jì)本身的算法和代碼風(fēng)格。下圖非常清晰地闡明了Unroll 和 Pipeline 指令的關(guān)系,Pipeline 指令放置的循環(huán)層次越高,循環(huán)展開(kāi)的層次也越高,最終會(huì)導(dǎo)致使用更大面積的資源去實(shí)現(xiàn),同時(shí)并行性也更高。

pIYBAGAJe8GAUqsaAAOfRydUAUE307.png

這里如果循環(huán)的邊界是變量的話,則無(wú)法展開(kāi)。這將組織函數(shù)被流水線化,可以通過(guò)添加tripcount 等指令,指定循環(huán)在綜合時(shí)大概的最大最小邊界。

在循環(huán)流水線優(yōu)化的過(guò)程中,有一個(gè)完美循環(huán),半完美循環(huán)和非完美循環(huán)的代碼風(fēng)格概念,只有當(dāng)流水線循環(huán)完美或半完美時(shí),才可以將嵌套循環(huán)徹底并行展開(kāi)。

完美循環(huán):只有最里面的循環(huán)才具有主體內(nèi)容,在循環(huán)語(yǔ)句之間沒(méi)有指定邏輯,循環(huán)界限是恒定的。

半完美循環(huán):只有最里面的循環(huán)才具有主體 (內(nèi)容), 在循環(huán)語(yǔ)句之間沒(méi)有指定邏輯,只有最外面的循環(huán)邊界可以是可變的。

非完美循環(huán):循環(huán)的主體內(nèi)容分布在循環(huán)的各個(gè)層次或內(nèi)層循環(huán)的邊界是變量。

pIYBAGAJfAOAJQTrAAO0fO_yjLU263.png

當(dāng)我們要爭(zhēng)去最大流水線循環(huán)的成功執(zhí)行,就需要將非完美循環(huán)手動(dòng)修改成完美或半完美循環(huán)。 以下代碼例子給出了完美循環(huán)(左邊)和非完美循環(huán)(右邊)在Vitis HLS 中的執(zhí)行結(jié)果。

o4YBAGAJfEGAEP37AABWikWhzdc769.png

o4YBAGAJfIGAGbXPAAKaN1p2Ycs520.png

綜合完畢后,我們可以在分析窗口和綜合報(bào)告中都很清晰的看出,完美循環(huán)在執(zhí)行的時(shí)候,工具自動(dòng)將內(nèi)層循環(huán)LOOP_J和外層循環(huán)LOOP_I合并為一整個(gè)大循環(huán),并實(shí)現(xiàn)了整個(gè)大循環(huán)的流水線操作,延遲的周期數(shù)為: (400-1) *1+8-1 =406個(gè)周期數(shù),延遲大約為 408*2.5 = 1,020 ns

非完美循環(huán)中,內(nèi)層和外層循環(huán)沒(méi)有合并,只有內(nèi)層循環(huán)LOOP_J 實(shí)現(xiàn)了流水線執(zhí)行,進(jìn)出內(nèi)循環(huán)的浪費(fèi)的時(shí)鐘周期增加了整個(gè)循環(huán)的時(shí)鐘周期,同時(shí)還有一些命令行沒(méi)有辦法跨越循環(huán)的層級(jí)實(shí)現(xiàn)調(diào)度上的優(yōu)化,這些因素都導(dǎo)致了設(shè)計(jì)的延遲的增加。

本文關(guān)于pipeline 以及 unroll 指令的介紹到此結(jié)束,下篇文章我們將著重介紹 daraflow 指令。

審核編輯:何安

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

    關(guān)注

    1

    文章

    617

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    如何使用語(yǔ)音指令控制串口輸出

    在上兩篇文章中, 我們實(shí)現(xiàn)了GPIO輸出, 和PWM輸出(組件介紹在前文中已經(jīng)介紹過(guò) ),在本章節(jié)我們將繼續(xù)進(jìn)行使用語(yǔ)音指令控制串口輸出。
    的頭像 發(fā)表于 09-25 15:47 ?1665次閱讀
    如何使用語(yǔ)音<b class='flag-5'>指令</b>控制串口輸出

    Jenkins Pipeline的高級(jí)應(yīng)用技巧

    為一名在運(yùn)維一線摸爬滾打5年的工程師,我見(jiàn)過(guò)太多因?yàn)镃I/CD流水線配置不當(dāng)而導(dǎo)致的生產(chǎn)事故。今天分享一些Jenkins Pipeline的高級(jí)應(yīng)用技巧,這些都是我在實(shí)際項(xiàng)目中踩過(guò)坑后總結(jié)的經(jīng)驗(yàn),希望能幫助大家少走彎路。
    的頭像 發(fā)表于 08-27 14:32 ?296次閱讀

    通用MCU語(yǔ)音芯片支持串口+AT指令485通訊

    文檔簡(jiǎn)單介紹AD24N的性能參數(shù)、串口通訊指令、應(yīng)用方向、等內(nèi)容
    的頭像 發(fā)表于 07-24 11:35 ?383次閱讀
    通用MCU語(yǔ)音芯片支持串口+AT<b class='flag-5'>指令</b>485通訊

    求助,關(guān)于RTThread Smart AI屏幕NT35516的顯示問(wèn)題求解

    屏幕正常顯示 軟硬件版本信息 RT—Thread Smart AI 套件 屏幕的型號(hào)是NT35516,參考鏡像里代碼使用的是3.5寸mipi屏ST7701型號(hào) 嘗試解決過(guò)程 調(diào)整主代碼和pipeline 補(bǔ)充材料 主程序代碼 pipeline配置部分 !
    發(fā)表于 07-18 07:01

    使用k230,可以使用pipeline庫(kù),將輸入的視頻流進(jìn)行二值化處理嗎?

    關(guān)于使用k230,可以使用pipeline庫(kù),將輸入的視頻流進(jìn)行二值化處理嗎
    發(fā)表于 06-16 06:46

    從技術(shù)到產(chǎn)品 | 士模Pipeline ADC

    流水線型(Pipeline)ADC由于能夠同時(shí)滿足高精度和高采樣率的需求,在高性能數(shù)據(jù)采集和儀器系統(tǒng)、醫(yī)療設(shè)備、通信測(cè)試設(shè)備、軟件無(wú)線電等領(lǐng)域得到了廣泛應(yīng)用。高采樣速率往往伴隨著較高的功耗,而客戶群
    的頭像 發(fā)表于 04-28 16:37 ?968次閱讀
    從技術(shù)到產(chǎn)品 | 士模<b class='flag-5'>Pipeline</b> ADC

    NVME控制器設(shè)計(jì)之指令控制

    指令控制模塊由一個(gè)指令信息緩存, 一個(gè)指令組裝狀態(tài)機(jī)和一個(gè) ID 池組成。 指令信息緩存中存放著由系統(tǒng)控制模塊寫(xiě)入的待處理指令信息;
    的頭像 發(fā)表于 04-24 10:22 ?550次閱讀
    NVME控制器設(shè)計(jì)之<b class='flag-5'>指令</b>控制

    CPU的各種指令和執(zhí)行流程

    、數(shù)據(jù)傳輸?shù)裙δ?。要深入理解CPU的指令,我們需要從多個(gè)維度進(jìn)行分析,尤其是指令的構(gòu)成、分類、執(zhí)行流程以及與不同架構(gòu)的關(guān)系。
    的頭像 發(fā)表于 04-18 11:24 ?1522次閱讀

    RISC-V五級(jí)流水線CPU設(shè)計(jì)

    本文實(shí)現(xiàn)的CPU是一個(gè)五級(jí)流水線的精簡(jiǎn)版CPU(也叫PCPU,即pipeline),包括IF(取指令)、ID(解碼)、EX(執(zhí)行)、MEM(內(nèi)存操作)、WB(回寫(xiě))。
    的頭像 發(fā)表于 04-15 09:46 ?1125次閱讀
    RISC-V五級(jí)流水線CPU設(shè)計(jì)

    AXI握手時(shí)序優(yōu)化—pipeline緩沖器

    skid buffer(pipeline緩沖器)介紹 ??解決ready/valid兩路握手的時(shí)序困難,使路徑流水線化。 ??只關(guān)心valid時(shí)序參考這篇寫(xiě)得很好的博客鏈接:?握手協(xié)議(pvld
    的頭像 發(fā)表于 03-08 17:10 ?814次閱讀
    AXI握手時(shí)序優(yōu)化—<b class='flag-5'>pipeline</b>緩沖器

    使用RDATAC指令后,ADS131E04傳送的數(shù)據(jù)格式以及內(nèi)容是怎樣的?

    請(qǐng)問(wèn)使用RDATAC指令后,ADS131E04傳送的數(shù)據(jù)格式以及內(nèi)容是怎樣的,數(shù)據(jù)手冊(cè)是按照ADS131E08為例來(lái)說(shuō)明有27個(gè)BYTE,不知道ADS131E04是不是只用15個(gè)BYTE?
    發(fā)表于 01-10 07:19

    低功耗模組Air780E的AT指令:FTP示例!

    本文說(shuō)的是關(guān)于4G模組AT指令的FTP示例,以Air780E為例,希望大家有所收獲。
    的頭像 發(fā)表于 11-30 09:40 ?948次閱讀
    低功耗模組Air780E的AT<b class='flag-5'>指令</b>:FTP示例!

    Erp指令能效

    ErP指令EC244/2009、EC245/2009、EU1194/2012和能效標(biāo)簽指令EU874/2012已經(jīng)實(shí)行多年,歐盟委員會(huì)在近3年通過(guò)參照不斷改進(jìn)的照明產(chǎn)品技術(shù)、環(huán)境和經(jīng)濟(jì)因素以及實(shí)際
    的頭像 發(fā)表于 11-20 23:57 ?848次閱讀
    Erp<b class='flag-5'>指令</b>能效

    MQTT協(xié)議深度應(yīng)用:Air780E模組AT指令的創(chuàng)新實(shí)踐

    今天我講解的是關(guān)于4G模組AT指令之MQTT應(yīng)用,有興趣的朋友可以閱讀本文深度學(xué)習(xí)。
    的頭像 發(fā)表于 11-11 09:30 ?2000次閱讀
    MQTT協(xié)議深度應(yīng)用:Air780E模組AT<b class='flag-5'>指令</b>的創(chuàng)新實(shí)踐

    plc基本指令的應(yīng)用有哪些

    控制、數(shù)據(jù)類型轉(zhuǎn)換、算術(shù)運(yùn)算、比較操作、程序控制以及基本的輸入輸出操作等多個(gè)方面。 一、邏輯運(yùn)算指令 邏輯運(yùn)算指令是PLC編程中最常用的指令之一,它們用于實(shí)現(xiàn)基本的邏輯運(yùn)算功能,包括邏
    的頭像 發(fā)表于 10-21 17:16 ?3426次閱讀