Vitis学习记录(一)

核心概念

Vitis统一软件平台为使用标准编程语言开发和交付FPGA加速应用程序提供了一个框架。Vitis提供了标准软件开发环境的所有功能,包括:
编译器或交叉编译器的主机应用程序运行在x86或Arm®处理器
用于构建FPGA二进制文件的交叉编译器
调试环境来帮助识别和解决代码中的问题
性能分析器来识别瓶颈并帮助您优化应用程序

理解Vitis编程和执行模型

一个Vitis加速应用程序由两个不同的组件组成:一个软件程序和一个包含硬件加速内核的FPGA二进制文件
1.软件程序可以通过多种方式与硬件内核交互。最简单的方法可以分解为以下步骤:
2.主程序将内核所需的数据写入FPGA设备的全局内存中。
3.主程序设置内核的输入参数。
4.主程序触发内核的执行。内核执行所需的计算,根据需要访问全局内存来读写数据。内核还可以使用流连接与其他内核通信。
5.内核通知主机它已经完成了它的任务。
6.主程序可以将数据从全局内存转移到主机内存,也可以将数据的所有权交给另一个内核。

理解Vitis的构建过程

主程序是使用用于数据中心应用程序的GNU c++编译器(g++)或用于Xilinx MPSoC设备的GNU c++ Arm交叉编译器构建的。
使用Vitis编译器构建FPGA二进制文件。首先,内核被编译成Xilinx对象(.xo)文件。然后,将.xo文件链接到硬件平台以生成FPGA二进制(.xclbin)文件。Vitis编译器和链接器接受广泛的选项来裁剪和优化结果。

理解Vitis的构建目标

Vitis编译器提供了三个不同的构建目标:用于调试和验证目的的两个仿真目标,以及用于生成实际FPGA二进制文件的默认硬件目标:
软件模拟——内核代码被编译以在主机处理器上运行。这允许通过快速构建和运行循环来优化迭代算法。这个目标对于识别语法错误、执行与应用程序一起运行的内核代码的源代码级调试以及验证系统的行为非常有用。
硬件模拟——内核代码被编译成一个硬件模型(RTL),它在一个专用的模拟器中运行。这个构建-运行循环耗时较长,但提供了详细的、周期准确的内核活动视图。这个目标对于测试将进入FPGA的逻辑的功能和获得初始性能评估非常有用。
硬件——内核代码被编译成一个硬件模型(RTL),然后在FPGA上实现,产生一个二进制文件,可以在实际的FPGA上运行。

猜你喜欢

转载自blog.csdn.net/wzx_numberone/article/details/114531031