ug1270、ug1253看不懂的地方

一、ug1270 HLS中的優化

雖然可能全程都看得迷迷糊糊,但今天看到這裏,實在疑惑:

1,

FPGA裏的sample到底指的什麼啊?我感覺翻譯成什麼好像都不專業,這種C風格的函都是在函數級別就PIPELINE優化,這後部分幾行說如果用RAM模塊實現,雙端口最多每個時鐘有2個samples讀或寫造成數據處理瓶頸;但優化後每個時鐘就是1個sample。sample是每個時鐘越少越優,之前在框架形式的C/C++函數中說單端口,每個時鐘提供1個sample,會造成性能瓶頸和資源浪費即導致很多並行硬件設計無法真正並行執行。可是怎麼這裏說優化後每個時鐘1個sample,這是優化???矛盾。

2、

這後部分說,RAM模塊每個時鐘最多2個samples,也就是隻有2個數據的讀/寫,而此例子卻需要讀取4個數組裏的數據,所以無法在一個時鐘內完成!設置#pragma HLS PIPELINE 和 II=1 (initiation interval 爲什麼讓它爲1就優化了)後就可以在一個時鐘內完成了?!這後部分是這個意思嗎???

這一頁的後面介紹了ARRAY_PARTITION可以通過給一個端口提供更多的elements來解決端口限制問題!如本來RAM模塊只能最多2個端口,所以無法處理這個例子的4個數組值的讀取問題,現在通過ARRAY_PARTITION優化後,可以將一個端口變成雙端口,那麼現在就相當於4個端口了!

3、

在第4章,Convolution這個例子的分析這裏就有點迷糊了,沒看懂。然後就h在網上找了找,有沒有人在網上閱讀這個分析這個。其實這個pdf裏將傳統的卷積分成豎直和水平的  ttps://blog.csdn.net/weixin_39290638/article/details/80246660

這些不要這樣一下列出來,而是列出來一條,馬上來個應用這個optimization和不應用的代碼寫法和結果對比就好了,這樣一下列出來,作爲小白看得很懵啊!

vivado HLS不只可以使用C/C++,還可以使用OpenCL啊!!!!!!!居然還可以使用OpenCL啊!

另外可以看下 :https://blog.csdn.net/kebu12345678/article/details/61914543 

https://blog.csdn.net/weixin_39290638/article/details/80246660 這兩位大神的。感覺具體聊HLS怎麼優化,怎麼將原本設計爲不可綜合變成可綜合代碼、如果寫不具有依賴的代碼的博客或網友們的文章好少啊。

4、

我覺得我只從這裏開始看就好了,HLS Pragmas部分,這部分講得很實用就直接教你怎麼在函數、循環那裏優化,語法指令: 

還會舉一些例子!這部分寫得我很喜歡。

 

今天ug902已經看完了。

**************************************************************************************************************************************************

二、ug1253 SDSOC中的優化

1、pragma SDS async 的example2

for (int i = 0; i < pipeline_depth; i++) {
#pragma SDS async(1)
mmult_accel(A[i%NUM_MAT], B[i%NUM_MAT], C[i%NUM_MAT]);
}
for (int i = pipeline_depth; i < NUM_TESTS; i++) {
#pragma SDS wait(1)
#pragma SDS async(1)
mmult_accel(A[i%NUM_MAT], B[i%NUM_MAT], C[i%NUM_MAT]);
}
for (int i = 0; i < pipeline_depth; i++) {
#pragma SDS wait(1)
}

這裏沒看懂啊,兩個for沒有依賴性啊,可以異步執行,每個for裏的每次調用也無依賴性。我的問題是:

a:照文中這個寫法,我會理解爲:整個大循環分成2部分,先執行第一個for循環,pipeline_depth個同時調用mmult_accel函數,開始第二部分pipeline_depth~NUM_TESTS的同時調用mmult_accel函數。那麼整個for就完畢了。作者是這個意思嗎?!

b:第二個for前面不需要wait(1),這裏wait(1)到底是等待什麼?

c :第三個for裏wait(1)是等待第一個for最慢的一次調用執行完畢,對嗎?

2、

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章