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

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

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

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

以循環(huán)為例,使用performance時(shí)要指定循環(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

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

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

微信截圖_20220818142515.png

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

微信圖片_20220818142528.png

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

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

微信圖片_20210517164139.jpg

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