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、

 

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