女人荫蒂被添全过程13种图片,亚洲+欧美+在线,欧洲精品无码一区二区三区 ,在厨房拨开内裤进入毛片

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

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

3天內不再提示

關于pipeline 以及 unroll 指令的介紹

電子設計 ? 來源:電子設計 ? 作者:電子設計 ? 2022-02-09 09:53 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本文轉載自: XILINX開發者社區微信公眾號

HLS 優化設計的最關鍵指令有兩個:一個是流水線 (pipeline) 指令,一個是數據流(dataflow) 指令。正確地使用好這兩個指令能夠增強算法地并行性,提升吞吐量,降低延遲但是需要遵循一定的代碼風格。展開 (unroll) 指令是只針對 for 循環的展開指令,和流水線指令關系密切,所以我們放在一起首先我們來看一下這三個指令在 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 循環的代碼區域進行優化,這個指令不包含流水線執行的概念,單純地將循環體展開使用更多地硬件資源實現,保證并行循環體在調度地過程中是彼此獨立的。

Pipeline 指令在循環和函數兩個層級都可以使用,通過增加重復的操作指令(如增加資源使用量等等)來減小初始化間隔。

Dataflow 指令是一個任務級別的流水線指令,從更高的任務層次使得循環或函數可以并行執行,目的在于減小延遲增加吞吐量。

Unroll 和 Pipeline 指令相互重合的關系在于,當對函數進行流水線處理時,以下層次結構中的所有循環都會自動展開,而使用展開指令的循環并沒有給定對II的約束。在最新版本的 Vitis HLS 工具中,工具會自動分析數據之間的流水線操作關系,以II=1為目標優化,但是還是會受限于設計本身的算法和代碼風格。下圖非常清晰地闡明了Unroll 和 Pipeline 指令的關系,Pipeline 指令放置的循環層次越高,循環展開的層次也越高,最終會導致使用更大面積的資源去實現,同時并行性也更高。

pIYBAGAJe8GAUqsaAAOfRydUAUE307.png

這里如果循環的邊界是變量的話,則無法展開。這將組織函數被流水線化,可以通過添加tripcount 等指令,指定循環在綜合時大概的最大最小邊界。

在循環流水線優化的過程中,有一個完美循環,半完美循環和非完美循環的代碼風格概念,只有當流水線循環完美或半完美時,才可以將嵌套循環徹底并行展開。

完美循環:只有最里面的循環才具有主體內容,在循環語句之間沒有指定邏輯,循環界限是恒定的。

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

非完美循環:循環的主體內容分布在循環的各個層次或內層循環的邊界是變量。

pIYBAGAJfAOAJQTrAAO0fO_yjLU263.png

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

o4YBAGAJfEGAEP37AABWikWhzdc769.png

o4YBAGAJfIGAGbXPAAKaN1p2Ycs520.png

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

非完美循環中,內層和外層循環沒有合并,只有內層循環LOOP_J 實現了流水線執行,進出內循環的浪費的時鐘周期增加了整個循環的時鐘周期,同時還有一些命令行沒有辦法跨越循環的層級實現調度上的優化,這些因素都導致了設計的延遲的增加。

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

審核編輯:何安

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

    關注

    1

    文章

    616

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    使用k230,可以使用pipeline庫,將輸入的視頻流進行二值化處理嗎?

    關于使用k230,可以使用pipeline庫,將輸入的視頻流進行二值化處理嗎
    發表于 06-16 06:46

    從技術到產品 | 士模Pipeline ADC

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

    NVME控制器設計之指令控制

    指令控制模塊由一個指令信息緩存, 一個指令組裝狀態機和一個 ID 池組成。 指令信息緩存中存放著由系統控制模塊寫入的待處理指令信息;
    的頭像 發表于 04-24 10:22 ?261次閱讀
    NVME控制器設計之<b class='flag-5'>指令</b>控制

    CPU的各種指令和執行流程

    、數據傳輸等功能。要深入理解CPU的指令,我們需要從多個維度進行分析,尤其是指令的構成、分類、執行流程以及與不同架構的關系。
    的頭像 發表于 04-18 11:24 ?776次閱讀

    RISC-V五級流水線CPU設計

    本文實現的CPU是一個五級流水線的精簡版CPU(也叫PCPU,即pipeline),包括IF(取指令)、ID(解碼)、EX(執行)、MEM(內存操作)、WB(回寫)。
    的頭像 發表于 04-15 09:46 ?665次閱讀
    RISC-V五級流水線CPU設計

    AXI握手時序優化—pipeline緩沖器

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

    使用RDATAC指令后,ADS131E04傳送的數據格式以及內容是怎樣的?

    請問使用RDATAC指令后,ADS131E04傳送的數據格式以及內容是怎樣的,數據手冊是按照ADS131E08為例來說明有27個BYTE,不知道ADS131E04是不是只用15個BYTE?
    發表于 01-10 07:19

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

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

    Erp指令能效

    ErP指令EC244/2009、EC245/2009、EU1194/2012和能效標簽指令EU874/2012已經實行多年,歐盟委員會在近3年通過參照不斷改進的照明產品技術、環境和經濟因素以及實際
    的頭像 發表于 11-20 23:57 ?552次閱讀
    Erp<b class='flag-5'>指令</b>能效

    MQTT協議深度應用:Air780E模組AT指令的創新實踐

    今天我講解的是關于4G模組AT指令之MQTT應用,有興趣的朋友可以閱讀本文深度學習。
    的頭像 發表于 11-11 09:30 ?1761次閱讀
    MQTT協議深度應用:Air780E模組AT<b class='flag-5'>指令</b>的創新實踐

    plc基本指令的應用有哪些

    控制、數據類型轉換、算術運算、比較操作、程序控制以及基本的輸入輸出操作等多個方面。 一、邏輯運算指令 邏輯運算指令是PLC編程中最常用的指令之一,它們用于實現基本的邏輯運算功能,包括邏
    的頭像 發表于 10-21 17:16 ?2718次閱讀

    處理器指令的獲取過程

    微處理器指令的獲取是計算機執行程序過程中的關鍵環節,它決定了微處理器如何對數據和指令進行處理。以下將詳細闡述微處理器指令的獲取過程,包括指令的來源、存儲位置、讀取方式
    的頭像 發表于 10-05 15:16 ?957次閱讀

    簡述微處理器的指令集架構

    計算機硬件與軟件的橋梁。指令集架構不僅決定了微處理器的性能和功能,還影響著操作系統的開發、應用程序的編寫以及整個計算機生態系統的構建。以下是對微處理器指令集架構的詳細探討。
    的頭像 發表于 10-05 14:59 ?1120次閱讀

    復雜指令集和精簡指令集有什么區別

    的兩種主要指令集架構,它們在多個方面存在顯著的差異。以下是對這兩種指令集架構的詳細比較,涵蓋設計理念、指令復雜性、尋址方式、實現方式、性能特點、應用場景以及未來發展等多個方面。
    的頭像 發表于 08-22 11:00 ?5629次閱讀

    微處理器的指令集架構介紹

    微處理器的指令集架構(Instruction Set Architecture,ISA)是計算機體系結構中至關重要的部分,它定義了微處理器能夠執行的操作和指令的集合,以及這些指令如何被
    的頭像 發表于 08-22 10:53 ?2388次閱讀
    主站蜘蛛池模板: 留坝县| 泗水县| 丰宁| 衡阳市| 宁乡县| 新沂市| 濉溪县| 莎车县| 瓮安县| 临海市| 都兰县| 滨州市| 雅江县| 沂南县| 南康市| 彝良县| 连城县| 鹰潭市| 信丰县| 夹江县| 云梦县| 陇川县| 沾益县| 东海县| 密云县| 诏安县| 平果县| 巧家县| 西昌市| 华坪县| 德保县| 青州市| 兴山县| 云南省| 湾仔区| 金平| 西乌珠穆沁旗| 南部县| 景洪市| 正安县| 汉源县|