当前位置: 首页 > news >正文

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

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

AI 引擎系列简介

在这篇题为 Versal 自适应 SoC AI 引擎入门的文章中,我介绍了一些 Versal™ 自适应 SoC 器件中存在的 AI 引擎 (AIE) 阵列。本系列是全新的 AI 引擎系列博文,我们将在其中提供一些示例用来说明如何使用集成到 Vitis™ 统一软件平台中的 AI 引擎工具。


要求

本教程要求您满足以下条件:

  • 对 AMD 工具有基本了解
  • 具有 C/C++ 编程语言的基本知识
  • 在受支持的 Linux 操作系统上安装 Vitis 2022.1 统一软件平台。
  • 一份有效的 AI 引擎工具许可证(许可证可从用户帐户中生成)。
  • 从 Xilinx.com(链接)或从 GitHub(链接)下载的 VCK190 基础平台

简介

我喜欢把 Versal 系统视作为包含 3 个主要的域。AI 引擎 (AIE) 域、处理器系统 (PS) 域和可编程逻辑 (PL) 域。要在 Versal 上运行 AIE 应用程序,这 3 个域缺一不可,您需要利用它们来协同工作方能发挥作用。

 



本文着重介绍如何使用 Vitis™ 统一软件平台对 AIE 域进行编程。
 

教程:AMD 工具简介

      1. 打开 Vitis 2022.1 统一软件平台 IDE,选择工作空间存储库
 
      2. “Welcome”(欢迎)页面上,单击“Create Application Project”(创建应用工程)
 



如果未显示“Welcome”页面,请单击“File > New > Application Project”(文件 > 新建 > 应用工程)
 

     3. 在显示的“Welcome”页面上,单击“Next”(下一步)

 


 

        4. 在平台选择页面上,选择 xilinx_vck190_base_202210_1 平台,然后单击“ Next“

         
注意:如果该页面中未列出名为 xilinx_vck190_base_202210_1 的平台,请确保您已从 GitHub               Xilinx.com 下载该平台并使用“Add”(添加)按钮添加该存储库:

 


可以看到,VCK190 基础平台定义了 2 个域:

  • 针对 AI 引擎阵列的 aiengine 域
  • 针对运行 Linux 操作系统的 Arm cortex a72 (PS) 的 xrt 域
     

    5. 单击“Next”
 

      6. 创建名为 simple_application 的新应用程序,并选择 ai_engine 作为目标处理器。单击“Next”


 

    7. “Domain”(域)页面上,单击“Next”
 

      8. “Templates”(模板)页面上,选择“Simple”(简单)模板,然后单击“Finish”(完成)。
 


重要提示:您将在描述窗口中看到一条注释,称“This templates works only for AIE simulation and SW(x86)”(此模板仅适用于 AIE 仿真和 SW (x86))。出现此注释的原因是,该模板不包含任何输入/输出 (I/O) 可供馈送给 AIE 应用程序或任何 PS 应用程序,而对于在硬件中运行的完整系统,I/O 是必需的。

在资源管理器窗口中可以看到,其中已导入多组文件:
simple_application  AI 引擎上运行的应用程序
simple_application/src 是包含源文件的目录,这些源文件经过编译后即可在 AI 引擎阵列上运行
simple_application/src/kernels 是包含内核源代码的目录
simple_application/data 是包含仿真文件的目录

   
      9.
在资源管理器窗口的 simple_application 下打开 simple_application.prj。在显示细节的窗口中可以看到 src 文件夹中有一个已定义为顶层文件的 project.cpp 文件。

 

注释:您必须为 AI 引擎应用程序定义顶层文件。此文件包含顶层计算图的例化(请参阅 Versal 自适应 SoC AI 引擎入门以了解计算图的定义)。
 

     10. 从资源管理器窗口中打开 project.cpp 文件。如需获取语法的完整描述,请参阅《AI 引擎工具和流程用户指南》(UG1076)

 



include 头文件(第 2 行到第 4 行)添加了 adf 数据流库 (adf.h)、内核函数原型 (kernels.h) 和顶层计算图声明文件 (project.h) 

最后,在第 10 到第 15 行上有一个包含已初始化的计算图的主函数,该主函数运行了 4 次(即 4 次调用该计算图),然后终止。
 
在本系列的下一篇博文中,我们将深入了解计算图与内核。

http://www.lryc.cn/news/208674.html

相关文章:

  • Android Kotlin 协程初探 | 京东物流技术团队
  • MySQL-DQL【数据查询语言】(图码结合)
  • HTTP 响应状态码介绍
  • vtk 绘制等高线
  • N-129基于springboot,vue学生宿舍管理系统
  • 力扣每日一题70:爬楼梯
  • 分布式合集
  • MySQL比较两个表数据的差异
  • hive使用中的参数优化与问题排查
  • Leetcode—66.加一【简单】
  • Babylonjs学习笔记(六)——贴图的使用
  • 架构风格区别-架构案例(五十九)
  • p5.js画布操作实战:创建,绑定指定元素,动态调整大小,隐藏滚动条,删除画布
  • vue手动拖入和导入excel模版
  • Linux下导出dump文件(Oracle和PG数据)
  • TSINGSEE青犀睡岗离岗检测算法——确保加油站安全运营
  • gd32部分映射1/2,完全映射,备用功能选择等
  • 如何高效自学(黑客技术)方法——网络安全
  • K8S基础架构租赁(Lease )
  • vue使用smooth-signature实现移动端电子签字,包括横竖屏
  • K8s概念汇总-笔记
  • 小程序设计基本微信小程序的校园生活助手系统
  • 程序包com.sun.xml.internal.bind.marshaller不存在
  • Docker 入门
  • Arduino驱动ME007-ULS防水测距模组(超声波传感器)
  • docker容器怎么设置开机启动
  • 基于springboot实现校园交友网站管理系统项目【项目源码+论文说明】
  • 支付宝证书到期更新完整过程
  • Linux 云服务器磁盘挂载简介
  • LeetCode--3.无重复字符的最长子串