亚洲精品久久久久久久久久久,亚洲国产精品一区二区制服,亚洲精品午夜精品,国产成人精品综合在线观看,最近2019中文字幕一页二页

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

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

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

利用axi_master接口指令端的幾個(gè)靜態(tài)參數(shù)的優(yōu)化技巧

OpenFPGA ? 來(lái)源:OpenFPGA ? 作者:Wen Chen ? 2022-07-01 09:39 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Vitis HLS 在從Vivaido HLS的升級(jí)換代中,以axi_master接口為起點(diǎn)的設(shè)計(jì)正在變得更易上手,其中很重要的一點(diǎn)就是更多的MAXI端口設(shè)計(jì)參數(shù)可以讓用戶(hù)通過(guò)指令傳達(dá)到。這些參數(shù)可以分為兩類(lèi): 靜態(tài)參數(shù)指標(biāo):這些參數(shù)會(huì)影響內(nèi)存性能,可以在 C 綜合期間的編譯時(shí)從編譯的結(jié)果中很清楚地知道,突發(fā)讀寫(xiě)地長(zhǎng)度、數(shù)據(jù)端口寬度加寬、對(duì)齊等。
動(dòng)態(tài)參數(shù)指標(biāo):這些參數(shù)本質(zhì)上是動(dòng)態(tài)的,取決于系統(tǒng)。例如,與 DDR/HBM 的通信效率在C綜合編譯時(shí)是未知的。 本文給大家提供利用axi_master接口指令端的幾個(gè)靜態(tài)參數(shù)的優(yōu)化技巧,從擴(kuò)展總線接口數(shù)量,擴(kuò)展總線位寬,循環(huán)展開(kāi)等角度入手。最核心的優(yōu)化思想就是以資源面積換取高帶寬的以便并行計(jì)算。
熟記這本文幾個(gè)關(guān)鍵的設(shè)計(jì)點(diǎn),讓你的HLS內(nèi)核接口效率不再成為設(shè)計(jì)的瓶頸! 7946633e-f8d5-11ec-ba43-dac502259ad0.png ? 以上代碼在進(jìn)行了c綜合后,我們所有的指針變量都會(huì)依據(jù)指令的設(shè)置映射到axi-master上,但是因?yàn)楦鶕?jù)指令中所有的端口都綁定到了一條總線gmem上。所以在綜合的警告里面會(huì)提示:? ?

WARNING: [HLS 200-885] The II Violation in module 'example_Pipeline_VITIS_LOOP_55_1' (loop 'VITIS_LOOP_55_1'):Unable to schedule bus request operation ('gmem_load_1_req', example.cpp:56) on port 'gmem' (example.cpp:56) due to limited memory ports(II = 1). Please consider using a memory core with more ports or partitioning the array.

因?yàn)樵赼xi-master總線上最高只能支持一個(gè)讀入和一個(gè)寫(xiě)出同時(shí)進(jìn)行,如果綁定到一條總線則無(wú)法同時(shí)從總線讀入兩個(gè)數(shù)據(jù),所以最終的循環(huán)的II=2。解決這個(gè)問(wèn)題的方法就是用面積換速度,我們實(shí)例化兩條axi總線gmem和gmem0,最終達(dá)到II=1。 79773856-f8d5-11ec-ba43-dac502259ad0.png ? 當(dāng)總線數(shù)量滿(mǎn)足了我們并行讀入的要求后,讀取數(shù)據(jù)的位寬就成為了我們優(yōu)化的方向:? 因?yàn)樽x取的數(shù)據(jù)格式是int類(lèi)型,所以這里的數(shù)據(jù)位寬就是32bit。 ?79883822-f8d5-11ec-ba43-dac502259ad0.png ? 為了能夠轉(zhuǎn)移數(shù)據(jù)傳輸瓶頸,在Vitis kernel target flow中,數(shù)據(jù)位寬在512bit的時(shí)候能夠達(dá)到最高的數(shù)據(jù)吞吐效率。在Vitis HLS 中的新增了 max_widen_bitwidth 選項(xiàng)來(lái)自動(dòng)將較短的數(shù)據(jù)位寬拼接到設(shè)定的較長(zhǎng)的數(shù)據(jù)位寬選項(xiàng)。在這里我們可以將位寬設(shè)置到512bit的位寬,但是同時(shí)要向編譯器說(shuō)明,原數(shù)據(jù)位寬和指定的擴(kuò)展位寬成整數(shù)倍關(guān)系。這個(gè)操作很簡(jiǎn)單,在數(shù)據(jù)讀取的循環(huán)邊界上,用(size/16)*16示意編譯器即可。 ?799551d8-f8d5-11ec-ba43-dac502259ad0.png ? 擴(kuò)展位寬后的結(jié)果可以在綜合報(bào)告的接口部分看到數(shù)據(jù)位寬已經(jīng)從32位擴(kuò)展到512位。? ?79ae9b16-f8d5-11ec-ba43-dac502259ad0.png ? 優(yōu)化到這一步我們的設(shè)計(jì)可以進(jìn)行大位寬的同步讀寫(xiě),但是發(fā)現(xiàn)循環(huán)的trip count還是執(zhí)行了1024次, 也就是說(shuō)雖然位寬拓展到512后,還是一個(gè)循環(huán)周期計(jì)算一次32bit的累加。實(shí)際上512bit的數(shù)據(jù)位寬可以允許16個(gè)累加計(jì)算并行執(zhí)行。? ?79cb865e-f8d5-11ec-ba43-dac502259ad0.png ? 為了完成并行度的優(yōu)化,我們需要在循環(huán)中添加系數(shù)為16的unroll 指令,這樣就可以生成16個(gè)并行執(zhí)行累加計(jì)算的硬件模塊以及線程。? ?79eb29be-f8d5-11ec-ba43-dac502259ad0.png ? 在循環(huán)中并行執(zhí)行的累加操作,我們可以從schedule viewer中觀察到并行度,可以從bind_op窗口中觀察到operation實(shí)現(xiàn)所使用的硬件資源,可以從循環(huán)的trip_count 降低到了1024/16=64個(gè)周期,以及大大縮小的模塊的整個(gè)latency中得以證明。? ?7a0aef6a-f8d5-11ec-ba43-dac502259ad0.png ?7a2d8d0e-f8d5-11ec-ba43-dac502259ad0.png ? 最后我們比較了一下并行執(zhí)行16個(gè)累加計(jì)算前后的綜合結(jié)果,可以發(fā)現(xiàn)由于有數(shù)據(jù)的按位讀寫(xiě)拆分拼接等操作,整個(gè)模塊的延遲雖然沒(méi)有縮短為16分之一,但是縮短為5分之一也是性能的極大提升了。? ?7a5b5f68-f8d5-11ec-ba43-dac502259ad0.png ? 最后的最后,RTL級(jí)別的co-sim仿真才讓我們更加確信了數(shù)據(jù)的從兩個(gè)并行讀寫(xiě),循環(huán)執(zhí)行的周期減小至了64個(gè)時(shí)鐘周期。? ?7a756c82-f8d5-11ec-ba43-dac502259ad0.png ? 以上內(nèi)容是設(shè)計(jì)者在AXI總線接口中使用傳統(tǒng)的數(shù)據(jù)類(lèi)型時(shí),提升數(shù)據(jù)傳輸效率和帶寬的一攬子有效方法: ?第一,擴(kuò)展總線接口數(shù)量,以便并行讀寫(xiě)。第二,擴(kuò)展總線位寬,增加讀寫(xiě)帶寬。第三,循環(huán)展開(kāi),例化更多計(jì)算資源以便并行計(jì)算。 本文的優(yōu)化方式還是基于內(nèi)核設(shè)計(jì)本身的,下一篇文章,我們將使用Alveo板卡做一些突發(fā)傳輸?shù)膶?shí)驗(yàn),深度定制傳輸需求,以真實(shí)仿真波形和測(cè)得的傳輸速度,從系統(tǒng)級(jí)別強(qiáng)化我們對(duì)于突發(fā)讀寫(xiě)效率的認(rèn)知。 審核編輯 :李倩

聲明:本文內(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)注

    33

    文章

    9337

    瀏覽量

    155789
  • 靜態(tài)
    +關(guān)注

    關(guān)注

    1

    文章

    30

    瀏覽量

    14802
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4928

    瀏覽量

    72709

原文標(biāo)題:開(kāi)發(fā)者分享 | HLS, 巧用AXI_master總線接口指令的定制并提升數(shù)據(jù)帶寬-面積換速度

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

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    利用蜂鳥(niǎo)E203搭建SoC【1】——AXI總線的配置與板級(jí)驗(yàn)證

    代碼中也提供了icb連接AXI從設(shè)備的示例,位于/subsys/ e203_subsys_mems.v文件中,為了避免自己連接造成的錯(cuò)誤,可以直接使用這些轉(zhuǎn)換好的AXI-MASTER信號(hào),并將其作為
    發(fā)表于 10-30 07:35

    將e203 例化AXI總線接口

    將系統(tǒng)外設(shè)總線內(nèi)部axi接口引出給gpio,注意vivado中g(shù)pio地址分配應(yīng)保證移植 Debug: 通過(guò)Xil_Out32函數(shù)給gpio的地址寫(xiě)1或者0,注意這里地址是gpio地址也就是核中給
    發(fā)表于 10-29 06:08

    蜂鳥(niǎo)E203內(nèi)核優(yōu)化方法

    對(duì)蜂鳥(niǎo)E203內(nèi)核進(jìn)行優(yōu)化可以考慮以下幾個(gè)方面: 編譯器優(yōu)化:使用適合蜂鳥(niǎo)E203的編譯器選項(xiàng)和指令集,優(yōu)化編譯器的選項(xiàng)和
    發(fā)表于 10-21 07:55

    利用拼多多 API 接口,實(shí)現(xiàn)拼多多店鋪物流時(shí)效優(yōu)化

    可以自動(dòng)化獲取物流數(shù)據(jù)、分析時(shí)效瓶頸,并實(shí)施針對(duì)性優(yōu)化策略。本文將逐步介紹如何利用這些 API 接口實(shí)現(xiàn)物流時(shí)效優(yōu)化,確保內(nèi)容真實(shí)可靠。 1. 理解拼多多 API
    的頭像 發(fā)表于 08-18 16:22 ?936次閱讀
    <b class='flag-5'>利用</b>拼多多 API <b class='flag-5'>接口</b>,實(shí)現(xiàn)拼多多店鋪物流時(shí)效<b class='flag-5'>優(yōu)化</b>

    利用Arm i8mm指令優(yōu)化llama.cpp

    本文將為你介紹如何利用 Arm i8mm 指令,具體來(lái)說(shuō),是通過(guò)帶符號(hào) 8 位整數(shù)矩陣乘加指令 smmla,來(lái)優(yōu)化 llama.cpp 中 Q6_K 和 Q4_K 量化模型推理。
    的頭像 發(fā)表于 07-24 09:51 ?1384次閱讀
    <b class='flag-5'>利用</b>Arm i8mm<b class='flag-5'>指令</b><b class='flag-5'>優(yōu)化</b>llama.cpp

    RDMA簡(jiǎn)介8之AXI分析

    AXI4 總線是第四代 AXI 總線,其定義了三種總線接口,分別為:AXI4、AXI4-Lite 和 A
    的頭像 發(fā)表于 06-24 23:22 ?398次閱讀
    RDMA簡(jiǎn)介8之<b class='flag-5'>AXI</b>分析

    RDMA簡(jiǎn)介9之AXI 總線協(xié)議分析2

    ? 這里以功能完備的 AXI4 接口舉例說(shuō)明 AXI4 總線的相關(guān)特點(diǎn)。AXI4 總線采用讀寫(xiě)通道分離且數(shù)據(jù)通道與控制通道分離的方式,這樣的總線通道使其具有多主多從的連接特性和并行處理
    發(fā)表于 06-24 18:02

    NVMe IP之AXI4總線分析

    時(shí),需要通過(guò)AXI互聯(lián)IP(AXI Interconnect)來(lái)實(shí)現(xiàn)多對(duì)多的拓?fù)浣Y(jié)構(gòu) ,如圖3所示。Interconnect擁有多個(gè) Master/Slave接口,并在內(nèi)部基于輪詢(xún)或者
    發(fā)表于 06-02 23:05

    VirtualLab 應(yīng)用:傾斜光柵的參數(shù)優(yōu)化及公差分析

    ,也稱(chēng)為RCWA)對(duì)傾斜光柵的優(yōu)化方法。優(yōu)化后的光柵的衍射效率超過(guò)90%。此外,還研究了其對(duì)光柵的傾角偏差和圓角邊緣的影響。 建模任務(wù) **優(yōu)化 ** 為了為傾斜光柵找到一組優(yōu)化
    發(fā)表于 05-22 08:52

    NVMe協(xié)議簡(jiǎn)介之AXI總線

    高性能、高帶寬、低延時(shí)的片內(nèi)互連需求。AXI4總線則是AXI總線的第四代版本,主要包含三種類(lèi)型的接口,分別是面向高性能地址映射通信的AXI4接口
    發(fā)表于 05-17 10:27

    一文詳解AXI DMA技術(shù)

    AXI直接數(shù)值存?。―rect Memory Access,DMA)IP核在AXI4內(nèi)存映射和AXI4流IP接口之間提供高帶寬的直接內(nèi)存訪問(wèn)。DMA可以選擇分散收集(Scatter G
    的頭像 發(fā)表于 04-03 09:32 ?1921次閱讀
    一文詳解<b class='flag-5'>AXI</b> DMA技術(shù)

    AXI接口FIFO簡(jiǎn)介

    AXI接口FIFO是從Native接口FIFO派生而來(lái)的。AXI內(nèi)存映射接口提供了三種樣式:AXI
    的頭像 發(fā)表于 03-17 10:31 ?1605次閱讀
    <b class='flag-5'>AXI</b><b class='flag-5'>接口</b>FIFO簡(jiǎn)介

    AXI 接口設(shè)計(jì)避坑指南:AXI接口筆記

    ? AXI接口筆記 第一章?問(wèn)題記錄 第1節(jié)?接收數(shù)據(jù)全0或全1 1.1?問(wèn)題現(xiàn)象 上圖中,pixel_data_o是EC IP核輸出的圖像數(shù)據(jù),正確的話會(huì)如上圖所示,圖像數(shù)據(jù)每個(gè)時(shí)鐘會(huì)變化并且值
    的頭像 發(fā)表于 03-10 17:21 ?691次閱讀
    <b class='flag-5'>AXI</b> <b class='flag-5'>接口</b>設(shè)計(jì)避坑指南:<b class='flag-5'>AXI</b><b class='flag-5'>接口</b>筆記

    ZYNQ基礎(chǔ)---AXI DMA使用

    Xilinx官方也提供有一些DMA的IP,通過(guò)調(diào)用API函數(shù)能夠更加靈活地使用DMA。 1. AXI DMA的基本接口 axi dma IP的基本結(jié)構(gòu)如下,主要分為三個(gè)部分,分別是控制axi
    的頭像 發(fā)表于 01-06 11:13 ?3308次閱讀
    ZYNQ基礎(chǔ)---<b class='flag-5'>AXI</b> DMA使用

    spi master接口的fpga實(shí)現(xiàn)

    串行外圍接口 大致了解: spi是個(gè)同步協(xié)議,數(shù)據(jù)在master和slaver間交換通過(guò)時(shí)鐘sck,由于它是同步協(xié)議,時(shí)鐘速率就可以各種變換。 sck:主機(jī)提供,從機(jī)不能操控,從器件由主機(jī)產(chǎn)生的時(shí)鐘控制。數(shù)據(jù)只有在sck來(lái)了的上升沿或者下降沿才傳輸。 高級(jí)一點(diǎn)的spi芯
    的頭像 發(fā)表于 11-16 10:35 ?1590次閱讀
    spi <b class='flag-5'>master</b><b class='flag-5'>接口</b>的fpga實(shí)現(xiàn)