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

FPGA教學——Vitis HLS 2022.1新特性: performance pragma

2022-08-18
作者: LaurenGao
來源: FPGA技術驛站
關鍵詞: 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的關系可表示為:

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,,那么內存for循環(huán)將自動被展開(也就是被施加了UNROLL)。另外兩個PERFORMANCE并沒有生效,,工具在報告中以警告的形式顯示出來,。沒有達成的原因是PIPELINE的II無法達成,畢竟II直接影響到target_ti,。

微信圖片_20220818142528.png

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

 更多信息可以來這里獲取==>>電子技術應用-AET<<

微信圖片_20210517164139.jpg

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