Xilinx FPGA AI开发工具 AIE(6)—用Vitis Analyzer查看AIE编译结果-Xilinx-AMD社区-FPGA CPLD-ChipDebug

Xilinx FPGA AI开发工具 AIE(6)—用Vitis Analyzer查看AIE编译结果

在上一篇文章中我们介绍了运行AIE编译器编译graphkernel相关代码,目标是AIE仿真器。这篇文章我们将重点介绍如何用Vitis Analyzer查看AIE编译结果。
 
Explorer窗口中,双击文件project.aiecompile_summary(位于目录Emulation-AIE/Work),即可打开Vitis Analyzer
 
图片[1]-Xilinx FPGA AI开发工具 AIE(6)—用Vitis Analyzer查看AIE编译结果-Xilinx-AMD社区-FPGA CPLD-ChipDebug
Vitis Analyzer左侧为控制面板,如下图所示。整个控制面板分为不同小节,涵盖编译结果的不同内容。
图片[2]-Xilinx FPGA AI开发工具 AIE(6)—用Vitis Analyzer查看AIE编译结果-Xilinx-AMD社区-FPGA CPLD-ChipDebug
Summary:这里显示的是编译结果的总结性内容,包括AIE编译器版本信息、编译耗时、编译时用到的命令等。
Kernel Guidance:显示优化graphkernel的一些建议。
Graph:以图形方式显示graphkernel的具体细节。
Array:显示设计中用到的AIE在整个AIE阵列中的布局。
Constraints:列出用于graphkernel的约束。
Mapping Analysis:显示graph用到的memoryport的映射信息。
DMA Analysis:显示映射中用到的DMA、相关的port以及DMA访问的memory
Lock Allocation:显示DMA用到的lock
Log:显示AIE编译日志,可过滤出ErrorWarningInfoStatus等信息。
Core Compilation:显示设计中用到的每个AIE的编译log信息。

 

Graph视图
 
点击Vitis Analyzer左侧控制面板的Graph即可呈现graph视图,如下图所示。从这个视图中可以看到kernel的连接关系以及kernel之间的memory(对应图中的buf)。从输入到第一个kernel使用了双缓存buf0buf0ddouble buffers,字母d的来历),本质上就是乒乓操作。同样地,从第二个kernel到输出也使用了双缓存buf2buf2d。两个kernel之间使用了单缓存buf1,这是因为这两个kernel是按顺序执行,不会同时访问同一个memoryGraph视图底部的表格显示了具体kernel信息,例如firstkernel的实例化名字,simple为描述kernel功能的C++函数名,这个kernel运行在AIE上,AIE位于AIE阵列的第25列第0行。表格和Graph视图是相互关联的,例如在表格中选中firstGraph中的first就会以高亮方式显示。

 

图片[3]-Xilinx FPGA AI开发工具 AIE(6)—用Vitis Analyzer查看AIE编译结果-Xilinx-AMD社区-FPGA CPLD-ChipDebug

选择上图中红色方框内的Tile View,则整个Graph视图将显示为下图所示方式。从图中可以看到firstsecond这两个kernel位于AIE Tile [25, 0],这意味着这两个kernel在同一个AIE上顺序执行。还可以看到这两个kernel访问的memory位于AIE Tile[24,0][25,1],分别位于[25,0]的左侧和上方,与[25,0]是相邻位置,故不需要任何DMA

图片[4]-Xilinx FPGA AI开发工具 AIE(6)—用Vitis Analyzer查看AIE编译结果-Xilinx-AMD社区-FPGA CPLD-ChipDebug

Graph视图下方的表格提供了多个可选项。在Kernels一栏中,可以点击右上角的齿轮标记,使得kernelgraph分组显示或按Tile显示。

图片[5]-Xilinx FPGA AI开发工具 AIE(6)—用Vitis Analyzer查看AIE编译结果-Xilinx-AMD社区-FPGA CPLD-ChipDebug
图片[6]-Xilinx FPGA AI开发工具 AIE(6)—用Vitis Analyzer查看AIE编译结果-Xilinx-AMD社区-FPGA CPLD-ChipDebug
Buffers一栏可以查看设计中要拿到的buffer的类型、分布状况、大小、相关联的kernelnet等信息,如下图所示。

图片[7]-Xilinx FPGA AI开发工具 AIE(6)—用Vitis Analyzer查看AIE编译结果-Xilinx-AMD社区-FPGA CPLD-ChipDebug

Tiles一栏可以看到涉及到的AIE Tile信息,如下图所示。可以看到AIE Tile的位置信息以及使用状况,例如有2Buffer位于Tile[24,0]4Buffer位于Tile[25,1]2kernel位于Tile[25,0],具体的Buffer名称可以在Buffers一栏中找到。

图片[8]-Xilinx FPGA AI开发工具 AIE(6)—用Vitis Analyzer查看AIE编译结果-Xilinx-AMD社区-FPGA CPLD-ChipDebug
Array视图
 
点击Vitis Analyzer左侧控制面板中的Array,就可以查看Array视图,如下图所示。VCK190板卡的Versal芯片VC1902中有400AIE。底部的表格与Graph视图底部表格是一致的,与Array视图也是相关联的,例如在表格中选中buf0buf0d,在Array视图中就会以高亮方式显示其具体位置。

 

图片[9]-Xilinx FPGA AI开发工具 AIE(6)—用Vitis Analyzer查看AIE编译结果-Xilinx-AMD社区-FPGA CPLD-ChipDebug
图片[10]-Xilinx FPGA AI开发工具 AIE(6)—用Vitis Analyzer查看AIE编译结果-Xilinx-AMD社区-FPGA CPLD-ChipDebug

 

请登录后发表评论

    没有回复内容