Lesson24:案例分析

本节总结三类的directivs:

  •         针对优化数据吞吐率的;
  •         针对降低Latency;
  •         针对改善资源的。 

最后结合Cordic算法介绍如何使用directives以改善数据吞吐率。 

1.优化数据吞吐率

    主要就是提高并行度

   1.1 PIPELINE

    PIPELINE既可以针对函数也可以针对循环。两者有什么差异呢?

    当PIPELINE针对于函数时,从I/O操作看,操作时是连续的。而当PIPELINE针对于循环时,本次循环与下次循环之间是有空档的,从I/O角度看的话,有一个Bubble,这一段时间是没有操作的。

2. Latency的优化

     

注意: 

 用Latency指令来针对循环,那它指的是一次循环。如果想要完成整个循环的total latency,那么就需要指定循环的区域,先要做一个region的设置。

3.优化资源(Optimizing for Area)

 

 

案列分析:Cordic

Codic算法本质上是通过一系列的微旋转来实现超越函数,比如正余弦函数Sin/Cos()。在这个过程中,微旋转变成了移位操作。 

通过这种方式计算三角函数。如果这里X0 = 1/An ,y0 = 0 ,最后就可以得到正余弦结果。这里要求z0的取值范围是-99到99,这里进一步缩小到-Pi/2到Pi/2 ,对于-Pi到Pi的区间需要先进行预处理,把它映射到-Pi/2到Pi/2,得到结果后在做后处理得到真正的 结果。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值