前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >HLS Lesson15-for循环优化:其他方法

HLS Lesson15-for循环优化:其他方法

作者头像
瓜大三哥
发布2018-02-26 15:10:36
4660
发布2018-02-26 15:10:36
举报
文章被收录于专栏:瓜大三哥

例1:

代码语言:js
复制
void for_merge(data_t a[N],data_t b[N],data_t c[N],data_t d[N])
{
data_t x_a = 0;
data_t y_a = 0;
int i;
int j;
sum_x:
for(i=0;i<N;i++)
{
x_a+=a[i];
c[i]=x_a;
}
sum_y:
for(j=0;j<N;j++)
{
y_a+=b[j];
d[j]=y_a;
}
}

采用allocation将两个for循环进行并行执行。

代码语言:js
复制
#include"for_merge.h"
void accumulator(data_t a[N],data_t b[N])
{
data_t a_t=0;
sum:
for(int i=0;i<N;i++)
{
a_t+=a[i];
b[i]=a_t;
}
}
void for_merge(data_t a[N],data_t b[N],data_t c[N],data_t d[N])
{
accumulator(a,c);
accumulator(b,d);
}

例2:pipeline+rewind

例3:给当循环变量是变量时

(1)使用trip count directive

(2)使用ap_int<w>定义变量类型

(3)使用assert宏:消耗资源最少,latency最小

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-11-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 瓜大三哥 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 例1:
  • 例2:pipeline+rewind
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档