首页 > 其他分享 >Vitis HLS 学习笔记--控制驱动TLP - Dataflow视图

Vitis HLS 学习笔记--控制驱动TLP - Dataflow视图

时间:2024-05-24 08:59:27浏览次数:22  
标签:TLP -- 性能 视图 Dataflow 数据流 优化 通道

目录

1. 简介

2. 功能特性

2.1 Dataflow Viewer 的功能

2.2 Dataflow 和 Pipeline 的区别

3. 具体演示

4. 总结


1. 简介

Dataflow视图,即数据流查看器。

DATAFLOW优化属于一种动态优化过程,其完整性依赖于与RTL协同仿真的完成。因此,“Dataflow”(数据流)查看器的设计目的是为了让用户能够观察到工具推断出的数据流结构,审视FIFO/PIPO等通道,并评估通道深度如何影响性能。基于协同仿真的结果,“Dataflow”查看器将对性能数据进行反向标注以提供详细的性能分析。

即便未执行RTL协同仿真,也可以访问“Dataflow”查看器,但此时视图将缺少关键的性能数据,如读/写的阻塞时间、协同仿真的深度以及停滞时间等信息。

要在“Dataflow”查看器中补充这些信息,必须添加 DATAFLOW 编译指令。数据流可以应用于顶层函数,或者针对特定的函数或循环区域实施。通过“Dataflow”查看器展示的数据流图形结构,可以清晰展现不同进程以及它们之间的生产者/消费者连接。

测试激励文件必须运行顶层函数,至少 2 次迭代。

2. 功能特性

2.1 Dataflow Viewer 的功能

Dataflow Viewer 的功能特性包括:

  • 源代码浏览器。
  • 从进程/通道到源代码的自动交叉探测。
  • 筛选端口和通道类型。
  • 进程 (Process) 和通道 (Channel) 表详列了设计的特性:
    • 通道剖析(FIFO 大小等),从“Solution Settings”(解决方案设置)对话框启用。
    • RTL 协同仿真后报告进程读取阻塞/写入阻塞/停滞时间。
    • 显示进程时延和 II。
    • 通道类型和宽度均显示在“Channel”表中。
    • 从“Process”和“Channel”表到“Graph”和“Source”浏览器之间的自动交叉探测。
    • 悬停于通道或进程上即可显示工具提示(含设计信息)。

Dataflow Viewer 可帮助设计进行性能调试。RTL 协同仿真期间,如果设计发生死锁,那么 GUI 将打开 Dataflow Viewer 并高亮死锁所设计的通道和进程,以便您判定原因,如 FIFO 深度不足等。

如果设计表现不及预期,那么 Process 和 Channel 表还能用于了解原因。进程可能发生停滞并等待读取输入,或者可能无法写入输出而导致停滞。Channel 表可以提供停滞百分比并识别进程是处于“读取阻塞”还是“写入阻塞”状态。

2.2 Dataflow 和 Pipeline 的区别

Dataflow和Pipeline的区别:静态优化和动态优化

流水线优化(Pipelining)是一种静态优化技术。它将一个操作分解成几个阶段,每个阶段在一个时钟周期内完成。这样,不同的操作可以在不同的阶段并行执行。每个阶段都会在一个固定的时间间隔后执行,这种间隔不会改变,所以我们称之为“静态”。这种优化可以大大提高操作的吞吐量,但在设计过程中,程序员需要提前考虑和设计好各个阶段以确保每个阶段可以平稳地运行。

数据流优化是一种动态优化技术。在数据流模型中,计算模块或函数在输入数据可用时就开始执行,输出数据在计算完成时就可以立即用于后续的计算。这意味着不同的模块可以在不同的时间开始和结束,从而实现了高级别的并行性。因此,数据流优化的调度是动态的,也就是说,它会根据数据的可用性和依赖性来决定执行的顺序和时间。

流水线优化更注重操作的阶段划分和顺序安排,而数据流优化更注重数据的可用性和模块的并行执行。

鉴于数据流优化是一种动态优化技术,在运行C/RTL联合仿真之前,无法看到优化的效果。在生成性能数据之前,进程或通道的详细信息将被标记为N/A。如下图所示:

3. 具体演示

4. 总结

Dataflow视图是一种强大的性能分析工具,通过展示数据流结构和通道信息,帮助用户深入了解设计的性能特征。其功能包括源代码浏览、进程和通道详细表、自动交叉探测等,为设计调试提供了有力支持。与流水线优化相比,数据流优化更注重动态性和并行性,能够根据输入数据的可用性灵活调度执行顺序,提升系统性能。然而,需要注意的是,在未执行RTL协同仿真前,数据流视图可能缺乏关键性能数据,需添加DATAFLOW编译指令以补充信息。 Dataflow视图的应用有助于设计优化和性能调试,提升系统的整体效率与性能。



标签:TLP,--,性能,视图,Dataflow,数据流,优化,通道
From: https://blog.csdn.net/DongDong314/article/details/139158680

相关文章

  • Vitis HLS 学习笔记--控制驱动TLP-处理deadlock
    目录1.简介2.代码解析2.1HLSkernel代码2.2查看接口报告2.3TestBench2.4Dataflow报告3.Takeaways4.总结1.简介本文是对《HardwareAccelerationTutorials:FIFOSizingforPerformanceandAvoidingDeadlocks》实验内容的详细解释。首先需要了解,鉴于......
  • 惊艳亮相!Win12风格系统主题,让你的电脑焕然一新
    你们是否厌倦了千篇一律的操作系统界面,渴望为电脑带来一丝新鲜感和个性魅力?今天,我们为你带来了一个令人振奋的好消息——全新Win12风格系统主题正式上线,让你的电脑焕然一新,彰显你的独特品味!这款Win12风格系统主题,不仅完美还原了Win12的简约大气风格,更在细节处融入了现代审美......
  • 湖南佳惠集团携手数图,共同开启可视化品类空间管理新篇章!
    5月21日,湖南佳惠&数图信息科技签约仪式暨可视化品类空间管理项目启动会成功举办。双方领导及项目负责人共同出席了此次活动,并发表了签约致辞,共同祝愿此次合作取得圆满成功,并肩谱写智慧零售新篇章。湖南佳惠集团创建于1999年8月,总部位于湖南省怀化市。公司坚持“做强超市、......
  • mapper,service,controller,entity之间的关系
    目录一、学到了二、错误与纠正一、学到了1.mapper(repository):数据访问层,负责与数据库进行交互,执行数据库的操作。定义了各种数据库操作方法的接口,并由ORM框架自动实现主要职能是执行数据库的增删改查,并将数据库操作结果返回给上层的service。2.service:业务逻辑层,处理逻......
  • 【产品经理】必备技能
    引言:    在最近频繁的产品管理职位面试中,我深刻体会到了作为产品经理需要的不仅仅是对市场和技术的敏锐洞察,更多的是在复杂多变的环境中,如何运用沟通、领导力和决策能力来引导产品从概念走向市场。这一系列博客将分享我多年经历和所学到的所以知识,旨在为那些渴......
  • jpeglib库使用
    文章目录1、jpeglib库使用方式一1、jpeglib库使用方式一将RGB888源图片文件,进行压缩,并将压缩完成的数据写入到一个新的缓冲区,最后通过文件IO的方式,将压缩完成的数据,写入到xx.jpeg的文件中。利用文件打开写入完成的xx.jpeg,即可查看压缩完成的图片#include<stdio.h>......
  • 基于大数据的支付风险智能防控技术规范
    随着大数据、移动互联、人工智能、生物特征识别等技术的快速发展,支付方式正在发生着巨大而深刻的变革,新技术在丰富支付手段、提高支付效率的同时,带来了新的隐患,也对从业机构的风险防控能力提出了更高的要求。传统的风控技术,多由各机构自己的风控团队,以人工的方式进行经验控制......
  • Web前端-综合网站设计
    Web前端-综合网站设计一、综合网站整体描述综合网站主要包括五个页面,主页、列表页、详情页、购物车页、注册页1.主页:二级菜单、轮播图、Tab显示、克隆、电梯导航2.列表页:Tab显示、手风琴效果3.详细页:数量加减、金额同步、评论发布与删除4.购物车:数量加减、小计同步、总计......
  • SwiftUI中的手势(DragGesture拖拽手势及Drag动画组件)
    上一篇文章我们了解了如何使用.gesture修饰符和@GestureState属性包装器,让我们看看另一种常见的手势:DragGesture拖拽手势。下面先看个效果图:这个效果中,我们实现了一个Text文本,并添加了拖拽手势,可以拖动到屏幕的任意位置,松手后停留在目标位置,而非回到原来的起点位置。UI......
  • 第11章.创建MDK工程-基于自建库函数
    目录0.《STM32单片机自学教程》专栏11.1基于库函数的开发方式11.2构建自己的库函数11.2.1外设寄存器结构体定义0.《STM32单片机自学教程》专栏        本文作为专栏《STM32单片机自学教程》专栏其中的一部分,返回专栏总纲,阅读所有文章,点击Link:  STM32......