0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用Trace View对对Kernel进行性能仿真分析

FPGA技术驿站 来源:TeacherGaoFPGAHub 作者:TeacherGaoFPGAHub 2022-03-15 15:30 次阅读

对Kernel进行性能分析需要对其进行仿真,同时还要用到Vitis Analyzer。为便于说明,我们以一个简单的Vitis工程为例。这个工程中有两个kernel,相应的代码如下图所示。 kernel 1有一个输入两个输出。输入使用window访问方式。读取数据后将数据分别写入到stream和window(本地Memory)。事实上,写入到stream和window的数据是相同的。代码第15行通过noinline使得工具在编译过程中保持当前kernel层次。

5952cfe2-92b7-11ec-952b-dac502259ad0.png

kernel 2有两个输入和一个输出。两个输入均来自于kernel 1的两个输出。由于kernel 1输出采用了stream和window,因此,这里的输入也对应使用stream和window访问方式。然后将读取的数据相加,再把结果写入到window。

596ca278-92b7-11ec-952b-dac502259ad0.png

kernel之间的连接关系体现在graph中,如下图所示。代码第22行和第24行分别声明了输入和输出端口,plio表明端口在PL侧。换言之,若为输入,则输入数据由PL侧提供,若为输出,则输出数据会到达PL侧。代码第27行使用了数组方式声明了两个kernel。代码第36行和第37行分别创建了graph输入/输出端口,指定其位宽为32位(plio_32_bits)。代码第42行至45行将graph输入/输出端口以及两个kernel连接起来。代码第46行表明在net1(stream)上使用FIFO,其深度为32。实际上这个FIFO就在AXI Interconnect上。

598df7de-92b7-11ec-952b-dac502259ad0.png

59b1095e-92b7-11ec-952b-dac502259ad0.png

我们可以借助Trace View观察每个kernel的执行状况,这就需要在仿真时生成vcd文件。生成vcd文件需要两部设置,如下图所示。

59deecb6-92b7-11ec-952b-dac502259ad0.png

5a012f06-92b7-11ec-952b-dac502259ad0.png

最终会生成vcd文件,其文件目录如下图所示。

5a310db6-92b7-11ec-952b-dac502259ad0.png

点击default.aierun_summary,将会打开Vitis Analyzer,在这个视图下选择Trace即可看到kernel的执行情况。

5a4a0f78-92b7-11ec-952b-dac502259ad0.png

5a64199a-92b7-11ec-952b-dac502259ad0.png

Trace view如下图所示。从图中可以看到一些具体的事件。

5a895aa2-92b7-11ec-952b-dac502259ad0.png

标记1:

Tile 24_0 DMA s2mm通道0启动。获取buf0(ping)的lock信号,将数据由PL传送给buf0。

标记2:

Tile 24_0 DMA s2mm通过1启动。获取buf0d(pong)的lock信号,将数据由PL传送给buf0d。

标记3a:

kernel aie_dest1获取输入buffer buf0的lock信号(在图中显示为read lock allocated)。

标记3b:

kernel aie_dest1获取输出buffer buf1的lock信号。

标记4a:

aie_dest1获取了buf0和buf1的lock信号,开始启动工作。

标记4b:

一旦Tile 24_0 DMA s2mm通道1完成,则切换到通道0。这时aie_dest1仍然在读buf0,只有当其释放了buf0的lock信号,Tile 24_0 DMA s2mm通道0才可以启动数据传输。

标记5:

一旦aie_dest1执行结束,它就会释放buf1,这样kernel aie_dest2就会捕获buf1的lock信号。

标记6a:

aie_dest2获取buf1的lock信号之后就开始启动工作。

标记6b:

aie_dest1获取buf0d的lock信号。

标记6c:

aie_dest1获取buf1d的lock信号。

标记7:

aie_dest1在获取buf0d和buf1d的lock信号之后开始启动工作。

标记8:

aie_dest1完成执行,释放buf1d。aie_dest2获取buf1d的lock信号。

标记9:

aie_dest2获取buf1d的lock信号之后,开始启动工作。

注:stream接口不需要lock信号。每个lock的获取和释放都需要一些时钟周期的开销。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Window
    +关注

    关注

    0

    文章

    82

    浏览量

    37263
  • 代码
    +关注

    关注

    30

    文章

    4787

    浏览量

    68589

原文标题:AIE(10)—使用Trace View

文章出处:【微信号:Lauren_FPGA,微信公众号:FPGA技术驿站】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Inline Hook Syscall详解

    在安全、性能分析等领域,经常会需要对系统调用syscall进行hook。有些模块在kernel代码中已经预先hook,例如syscall trace
    的头像 发表于 06-16 10:32 3210次阅读

    c6678使用Hardware trace analyzer的问题

    大家好, 我现在使用TI的EVM667BL进行开发测试,目前想使用hardware trace analyzer进行一些分析。使用ETB进行
    发表于 08-06 09:27

    (原创)Spectrum View功能:示波器上的频域分析利器

    除了具有采集信号的基本功能,还可以对信号进行FFT变换得到频谱,从而兼具频谱分析功能。几乎所有的中高端示波器均支持FFT频谱分析。安泰将要介绍的频谱分析功能——Spectrum
    发表于 10-09 15:25

    IAR EWARM的SWO Trace调试功能

    Trace功能,其内置了DWT,ITM((Instrument Trace Macrocell)等单元。ITM的一个主要的用途,就是支持信息的输出。此外DWT还会跟踪中断的进入和退出,对PC计数器进行
    发表于 11-10 13:36

    使用IAR ETM Trace调试功能的要求

    TPIU进行输出,跟踪数据通过硬件仿真器传输到PC端的调试器软件例如IAR中,IAR能够对这些跟踪数据进行解析并还原出MCU内部的指令执行情况。由于具有完整的指令流数据的记录,ETM Trac
    发表于 03-05 14:49

    怎样通过trace生成系统cpu的loading图

    /enable[root@k8s-node2 ~]# cat /sys/kernel/debug/tracing/tracetrace trace_clock trace_markertrace_marker_raw
    发表于 06-28 09:05

    对电动机几种降压启动进行建模及仿真分析

    1引言Matlab是一种高性能的数值计算机和可视化功能的软件。可以利用Matlab中Simulink的可视化仿真工具,将电动机控制利用模块连接起来,构成复杂的系统模型,并进行仿真
    发表于 09-06 06:19

    SYSTEM VIEW教材

    SYSTEM VIEW教材 SYSTEM VIEW是一个用于现代工程与科学系统设计及仿真的动态系统分析平台。
    发表于 04-10 11:08 32次下载

    trace32仿真器使用教程

    trace32仿真器使用教程 大概介绍一下实现的具体原理,首先要有一块可用的目标板,我选用的是SMDK2410 评估板。编译环境是在虚拟VMware+RedHat9.0,调试环境
    发表于 05-17 16:23 0次下载

    ADAMS/view虚拟样机仿真分析资料下载

    ADAMS/view虚拟样机仿真分析资料下载
    发表于 03-30 15:22 9次下载

    如何使用Systemview实现对QPSK系统进行仿真分析

    Systemview 是一种基于wi ndows 平台对系统进行设计、仿真分析的EDA 软件。本文介绍了在S ystemview 平台下利用其图形模块构建QPSK系统,并用分析窗和信
    发表于 01-17 13:39 14次下载
    如何使用Systemview实现对QPSK系统<b class='flag-5'>进行</b><b class='flag-5'>仿真</b>与<b class='flag-5'>分析</b>

    如何使用System view数字调制进行眼图分析

    通过课程设计,巩固已经学过的有关数字调制系统的知识,加深对知识的理解和应用,学会用system view软件工具对通信系统进行仿真
    发表于 01-23 15:21 17次下载
    如何使用System <b class='flag-5'>view</b>数字调制<b class='flag-5'>进行</b>眼图<b class='flag-5'>分析</b>

    关于Trace32forRT-Thread的简述与使用

    Trace32 是由德国 Lauterbach 公司研制开发的一款仿真测试工具。Trace32 作为一种真正集成化、通用性系统仿真器可以组合成多种方案,可以支持网络方案、实验室单机方案
    的头像 发表于 04-28 10:59 3329次阅读
    关于<b class='flag-5'>Trace</b>32forRT-Thread的简述与使用

    Linux ftrace工具抓 i2c trace

    抓 i2c trace adb rootecho nop > /sys/ kernel/debug/tracing/current_tracer //清空以前的跟踪信息 echo 1 > /sys
    的头像 发表于 07-20 11:23 1231次阅读
    Linux ftrace工具抓 i2c <b class='flag-5'>trace</b>

    如何对基于μTraceTrace32的LPC86x进行边界扫描

    电子发烧友网站提供《如何对基于μTraceTrace32的LPC86x进行边界扫描.pdf》资料免费下载
    发表于 08-17 10:22 4次下载
    如何对基于μ<b class='flag-5'>Trace</b>和<b class='flag-5'>Trace</b>32的LPC86x<b class='flag-5'>进行</b>边界扫描