Vitis HLS 学习笔记--控制驱动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 的区别

DataflowPipeline的区别:静态优化和动态优化

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

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

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

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

3. 具体演示

4. 总结

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



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/634422.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

指针,指针变量,引用,取地址符,malloce()函数使用,C中“—>” 和“ . ” 作用与区别

目录 一:指针,指针变量,引用,取地址符: 前提 : 1.“ * ” 的两种用途 2." & “的两种用途 2.1:引用 2.2:取地址 补充: 二 : malloc(),动态申请地址空间 1.原型定义…

提权方式及原理汇总

一、Linux提权 1、SUID提权 SUID(设置用户ID)是赋予文件的一种权限,它会出现在文件拥有者权限的执行位上,具有这种权限的文件会在其执行时,使调用者暂时获得该文件拥有者的权限。 为可执行文件添加suid权限的目的是简…

安卓CardView使用

目录 前言一、基础使用1.1 依赖导入1.2 CardView的常用属性1.3 CardView继承关系 二、关于Z轴的概念三、CardView效果3.1 圆角 CardView3.2 阴影 CardView3.3 设置卡片背景3.4 设置卡片背景(内部颜色)3.5 同时设置背景颜色 前言 CardView是Android支持库…

C#Csharp,SharpPcap网络抓包程序及源码(适合网络分析直接使用或源码二次开发)

目录 1.程序简介2.程序截图3.程序源码 1.程序简介 C#Csharp,SharpPcap网络抓包程序及源码(适合网络分析直接使用或源码二次开发) 2.程序截图 3.程序源码 https://download.csdn.net/download/xzzteach/89325817

BOM..

区别:

html5 笔记01

01 表单类型和属性 input的type属性 单行文本框: typetext 电子邮箱 : typeemail 地址路径 : type url 定义用于输入数字的字段: typenumber 手机号码: typetel 搜索框 : typesearch 定义颜色选择器 : typecolor 滑块控件 : typerange 定义日期 :typedate 定义输入时间的控件…

【OceanBase诊断调优】—— 直连普通租户时遇到报错:Tenant not in this server

本文介绍了直连 OceanBase 数据库中的普通租户时,出现报错:ERROR 5150 (HY000) : Tenant not in this server 的处理方法。 问题描述 在 n-n 或者 n-n-n (n>1) 的部署架构中,使用 2881 端口 直连 OceanBase 集群的普通租户,可…

首都师范大学聘请旅美经济学家向凌云为客座教授

2024年4月17日,首都师范大学客座教授聘任仪式在首都师范大学资源环境与旅游学院举行。首都师范大学资源环境与旅游学院院长吕拉昌主持了仪式,并为旅美经济学家向凌云教授颁发了聘书。 吕拉昌院长指出,要贯彻教育部产学研一体化战略&#xff0…

给树莓派配置静态IP地址

第一步:查找默认网关 打开windowr;输入cmd, 输入 最后一行就是默认网关 ipconfig第二步:确定分配好给树莓派的IP地址 要注意:(1)静态ip地址与路由器网段保持一致(2)与…

知乎广告推广开户最低需要多少钱?

精准高效的广告推广,是企业成功的关键,知乎作为知识分享与交流的高端平台,汇聚了大量高质量用户群体,无疑是品牌传播与产品推广的黄金之地。云衔科技作为您数字营销旅程中的得力伙伴,正以专业的知乎广告开户及代运营服…

Qt快速入门到熟练(电子相册项目(一))

经过一段时间的学习,相信大家对QT的基本用法都有所了解,从这篇文章开始,我准备记录一下电子相册的项目的一个学习过程。 实现项目创建功能 对于这个电子相册的项目,我并没有在一开始就把所有可能用到的功能模块去事无巨细的考虑周…

作为 App 开发者会推荐安装的 Mac App

Xcode,作为 App 开发者,必须安装的工具。当然,有经验的开发者不会从 Mac App Store 下载,而是从网站下载,除了安装过程更可控,也方便多版本共存。此外,我不信任任何第三方下载方式: …

在gitlab CICD中 小试 hooks:pre_get_sources_script 功能

参考链接: hooks:pre_get_sources_script 功能简介 hooks:pre_get_sources_script 是gitlab CICD中的一个功能,该功能可以指定在克隆 Git 仓库和任何子模块之前要在执行器上执行的某些命令。例如: 调整 Git 配置导出跟踪变量 下来简单给…

Vivado IP核的快速入门 官方手册和例程

在IP Catalog中选择要使用的IP核,可以查看支持的器件与资料。 在设计源sources页面中选中配置完成的IP核点击右键选择 Open IP Example Design,等待工程加载完成即可,可以点击Run Simulation进行功能仿真进行IP核的学习。 参考&#xff1…

Android开发环境基础

1.Android版本与SDK/API版本、JDK对应关系 参考博文: Android版本与SDK/API版本、JDK对应关系_minsdk 23对应安卓版本-CSDN博客 2.Android studio版本对用的gradle版本和插件版本(注意事项) 参考博文: Android studio版本对用的…

CentOS-9配置静态IP地址

查看配置命令nmcli CentOS 9 使用 nmcli 命令行工具进行网络配置。以下是配置静态 IP 地址的步骤和示例代码:相对以前centos7之类的,9版本的默认的网络是NetworkManager,网络配置也有较大改变 nmcli con show用vim进行编辑配文件 cd /etc/…

vue3(一) - 结构认识

通过之前博客应该已经完成了vue脚手架的认识和创建(地址),这节我们简单介绍一下需要使用的一些关键技术,后续在详细介绍 结构目录 创建脚手架时,我选择了TypeScript,store,route这三个选项 index.html入口 node_mo…

期中考复现

1.php渗透 用dirsearch 来扫描一下,发现了index.phps,访问一下 下载得到一个文件,打开看看,发现是一段php代码 分析得到, GET传参idadmin,主当$ GET[id] urldecode($ GET[id])时返回flag。即条件为 idadmin(urldecode…

数据可视化第十天(爬虫爬取某瓣星际穿越电影评论,并且用词云图找出关键词)

开头提醒 本次爬取的是用户评论,只供学习使用,不会进行数据的传播。希望大家合法利用爬虫。 获得数据 #总程序 import requests from fake_useragent import UserAgent import timefuUserAgent()headers{User-Agent:fu.random }page_listrange(0,10) …

《QT实用小工具·六十五》基于QPropertyAnimation实现的移动动画和控件覆盖

1、概述 源码放在文章末尾 该项目基于QPropertyAnimation实现了控件平移动画和控件之间的相互覆盖效果,项目demo演示如下所示: 项目解析: new QPropertyAnimation(ui.SingleOcclusion, “pos”); //创建动画对象,第一个参数传…