《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 其他 > FPGA教學(xué)——Vitis HLS 2022.1新特性: performance pragma

FPGA教學(xué)——Vitis HLS 2022.1新特性: performance pragma

2022-08-18
作者: LaurenGao
來源: FPGA技術(shù)驛站
關(guān)鍵詞: FPGA Vitis HLS

  Vitis HLS 2022.1新增了一個pragma名為performance,其施加對象是指定函數(shù)或循環(huán)。如果是循環(huán),要求循環(huán)邊界是固定常數(shù),若循環(huán)邊界是變量,則需要通過pragma TRIPCOUNT指定其取值范圍。

以循環(huán)為例,使用performance時要指定循環(huán)的target_ti(transaction interval)。這里target_ti和II(initial interval)以及Tripcount的關(guān)系可表示為:

target_ti = ii x Tripcount

換言之

target_ti = Fclk / Operations per second

它實際上反映了循環(huán)或函數(shù)的吞吐率。

在performance的作用下,Vitis HLS會嘗試通過自動添加PIPELINE、UNROLL或ARRAY_PARTITION等pragma來達到target_ti所定義的值,但并不能確保一定可以滿足最終的性能要求。我們來看一個案例。在這個案例中我們對三個函數(shù)中的for循環(huán)添加了PERFORMANCE pragma,如下圖中的橙色方框所示。

微信截圖_20220818142515.png

  Vitis HLS生成的報告如下,可以看到并不是所有的PERFORMANCE都達成,只有第13行的PERFORMANCE最終生效,工具會根據(jù)此約束自動推斷出UNROLL和PIPELINE兩個pragma。同時在報告中也能看出這兩條pragma的作用對象。這也不難理解,對于嵌套的for循環(huán),一旦外層for循環(huán)被施加了PIPELINE,那么內(nèi)存for循環(huán)將自動被展開(也就是被施加了UNROLL)。另外兩個PERFORMANCE并沒有生效,工具在報告中以警告的形式顯示出來。沒有達成的原因是PIPELINE的II無法達成,畢竟II直接影響到target_ti。

微信圖片_20220818142528.png

  從這個案例中我們可以看出,PERFORMANCE其實是一種自動化的方式或者說智能地去選擇施加什么樣的pragma以達到目標(biāo)吞吐率。

 更多信息可以來這里獲取==>>電子技術(shù)應(yīng)用-AET<<

微信圖片_20210517164139.jpg

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。