AI 引擎系列 7 - 在仿真内通过追踪来可视化 AI 引擎事件(2022.1 更新)

2023-12-25 22:04

本文主要是介绍AI 引擎系列 7 - 在仿真内通过追踪来可视化 AI 引擎事件(2022.1 更新),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

简介

 

在前几篇 AI 引擎系列博文中,我们讲解了 AI 引擎仿真器生成的用于执行 AI 引擎 (AIE) 应用功能验证的文本文件。

在本文中,我们将讲解如何生成追踪来观察计算图 (graph) 的状态,这也是执行性能分析的关键要素。

 

要求

 

下文要求您通读前几篇 AI 引擎系列博文。

AI 引擎系列 1 - 从 AI 引擎工具开始(2022.1 更新)

AI 引擎系列 2 - AI 引擎计算图简介 (2022.1 更新)

AI 引擎系列 3 - AI 引擎内核简介

AI 引擎系列 4 - 首次运行 AI 引擎编译器和 x86simulator(2022.1 更新)

AI 引擎系列 5 - 以 AI 引擎模型为目标运行 AI 引擎编译器(2022.1 更新)

AI 引擎系列 6 - 在 Vitis 分析器中分析 AI 引擎编译结果(2022.1 更新)

 

禁用编译器优化

为了获得最详细的可视化,最好禁用编译器优化。

要禁用编译器优化,请右键单击 simple_application 工程,然后单击“C/C++ Build Settings”C/C++ 构建设置)

随后在“Settings > AIE C Compiler > Miscellaneous”(设置 > AIE C 语言编译器 > 杂项)中,将“Optimization”(优化)设置更改为“No Optimizations (xlopt=0)”(无优化 (xlopt=0))。

单击“Apply and Close”(应用并关闭),然后单击锤子图标重新编译“Simple Application”工程。

 

从 AI 引擎仿真器生成 VCD 追踪

AI 引擎仿真器可按值变转储 (VCD) 文件形式来生成硬件信号的详细转储。仿真完成后,即可处理完该 VCD 文件并将其包含在各项事件中,每项事件都包含时间戳、不同事件类型和关联的数据。这些事件用于描述 AI 引擎应用的执行过程。

要从 Vitis IDE 生成 VCD 文件,请首先在“Project Explorer”(工程资源管理器)窗口中单击该 AI 引擎应用,然后单击“Run As > Run Configurations...”(运行方式 > 运行配置)。

“Run Configurations”窗口中,启用“Generate Traces”(生成追踪)并选中 VCD

单击“Run”(运行)即可启动仿真。这样我们即可看到下列命令的执行过程:

aiesimulator --pkg-dir=./Work --i=.. --dump-vcd=foo

通过与先前运行过程相比较,即可看到本轮运行添加了 --dump-vcd=<file name> 选项用于生成 VCD 追踪。

仿真完成后,可以看到在 Emulation-AIE 文件夹下创建的 VCD 文件 (foo.vcd)

 

使用 Vitis 分析器分析追踪

运行仿真后,Vitis 会生成 Vitis 分析器文件,其中包含仿真输出。

打开 Emulation-AIE/aiesimulator_output 下的 default.aierun_summary 文件。

这样即可打开 Vitis 分析器工具。

“Trace”(追踪)选项卡中,会显示追踪信息,包括核、DMA、锁定与信号线的状态(按功能块来组织)

此视图对于估算内核的执行时间很有用。例如,其中可以看到首个内核的首次调用于 556.8 ns 后开始,并于 729.6 ns 后结束。因此该内核执行时间达 172.8 ns 216 个时钟周期,其中 AI 引擎运行频率为 1250 MHz

这篇关于AI 引擎系列 7 - 在仿真内通过追踪来可视化 AI 引擎事件(2022.1 更新)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/537110

相关文章

Redis中6种缓存更新策略详解

《Redis中6种缓存更新策略详解》Redis作为一款高性能的内存数据库,已经成为缓存层的首选解决方案,然而,使用缓存时最大的挑战在于保证缓存数据与底层数据源的一致性,本文将介绍Redis中6种缓存更... 目录引言策略一:Cache-Aside(旁路缓存)策略工作原理代码示例优缺点分析适用场景策略二:Re

Git可视化管理工具(SourceTree)使用操作大全经典

《Git可视化管理工具(SourceTree)使用操作大全经典》本文详细介绍了SourceTree作为Git可视化管理工具的常用操作,包括连接远程仓库、添加SSH密钥、克隆仓库、设置默认项目目录、代码... 目录前言:连接Gitee or github,获取代码:在SourceTree中添加SSH密钥:Cl

Python开发文字版随机事件游戏的项目实例

《Python开发文字版随机事件游戏的项目实例》随机事件游戏是一种通过生成不可预测的事件来增强游戏体验的类型,在这篇博文中,我们将使用Python开发一款文字版随机事件游戏,通过这个项目,读者不仅能够... 目录项目概述2.1 游戏概念2.2 游戏特色2.3 目标玩家群体技术选择与环境准备3.1 开发环境3

Pandas利用主表更新子表指定列小技巧

《Pandas利用主表更新子表指定列小技巧》本文主要介绍了Pandas利用主表更新子表指定列小技巧,通过创建主表和子表的DataFrame对象,并使用映射字典进行数据关联和更新,实现了从主表到子表的同... 目录一、前言二、基本案例1. 创建主表数据2. 创建映射字典3. 创建子表数据4. 更新子表的 zb

Pandas中统计汇总可视化函数plot()的使用

《Pandas中统计汇总可视化函数plot()的使用》Pandas提供了许多强大的数据处理和分析功能,其中plot()函数就是其可视化功能的一个重要组成部分,本文主要介绍了Pandas中统计汇总可视化... 目录一、plot()函数简介二、plot()函数的基本用法三、plot()函数的参数详解四、使用pl

使用Python实现矢量路径的压缩、解压与可视化

《使用Python实现矢量路径的压缩、解压与可视化》在图形设计和Web开发中,矢量路径数据的高效存储与传输至关重要,本文将通过一个Python示例,展示如何将复杂的矢量路径命令序列压缩为JSON格式,... 目录引言核心功能概述1. 路径命令解析2. 路径数据压缩3. 路径数据解压4. 可视化代码实现详解1

Python 交互式可视化的利器Bokeh的使用

《Python交互式可视化的利器Bokeh的使用》Bokeh是一个专注于Web端交互式数据可视化的Python库,本文主要介绍了Python交互式可视化的利器Bokeh的使用,具有一定的参考价值,感... 目录1. Bokeh 简介1.1 为什么选择 Bokeh1.2 安装与环境配置2. Bokeh 基础2

MySQL更新某个字段拼接固定字符串的实现

《MySQL更新某个字段拼接固定字符串的实现》在MySQL中,我们经常需要对数据库中的某个字段进行更新操作,本文就来介绍一下MySQL更新某个字段拼接固定字符串的实现,感兴趣的可以了解一下... 目录1. 查看字段当前值2. 更新字段拼接固定字符串3. 验证更新结果mysql更新某个字段拼接固定字符串 -

基于Python打造一个可视化FTP服务器

《基于Python打造一个可视化FTP服务器》在日常办公和团队协作中,文件共享是一个不可或缺的需求,所以本文将使用Python+Tkinter+pyftpdlib开发一款可视化FTP服务器,有需要的小... 目录1. 概述2. 功能介绍3. 如何使用4. 代码解析5. 运行效果6.相关源码7. 总结与展望1

C#如何动态创建Label,及动态label事件

《C#如何动态创建Label,及动态label事件》:本文主要介绍C#如何动态创建Label,及动态label事件,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C#如何动态创建Label,及动态label事件第一点:switch中的生成我们的label事件接着,