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

news2024/12/15 15:47:14

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.coloradmin.cn/o/1140936.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LeetCode--2.两数相加

文章目录 1 题目描述2 解题思路2.1 代码实现 1 题目描述 给你两个 非空 的链表, 表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的, 并且每个节点只能存储 一位 数字 请你将两个数相加, 并以相同形式返回一个表示和的链表 你可以假设除了数字 0 之外, 这两个数都…

maya2023安装

1、解压压缩包,点击setup安装,除修改安装路径外,其他都是都是下一步,安装后最好重启系统 破解步骤 关闭杀毒,防止误删1.安装Autodesk软件,但是不要启动,安装完成后重启电脑 2.安装破解文件夹里…

图神经网络论文笔记(一)——北邮:基于学习解纠缠因果子结构的图神经网络去偏

作者 :范少华 研究方向 :图神经网络 论文标题 :基于学习解纠缠因果子结构的图神经网络去偏 论文链接 :https://arxiv.org/pdf/2209.14107.pdf        https://doi.org/10.48550/arXiv.2209.14107 大多数图神经网络(GNNs)通…

JAVA实现校园二手交易系统 开源

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 二手商品档案管理模块2.3 商品预约管理模块2.4 商品预定管理模块2.5 商品留言板管理模块2.6 商品资讯管理模块 三、实体类设计3.1 用户表3.2 二手商品表3.3 商品预约表3.4 商品预定表3.5 留言表3.6 资讯…

软考系统架构师知识点集锦四:信息安全技术基础知识

一、考情分析 二、考点精讲 2.1信息加解密技术 2.1.1对称加密 概念:对称加密(又称为私人密钥加密/共享密钥加密) : 加密与解密使用同一密钥。特点:加密强度不高,但效率高;密钥分发困难。 (大量明文为了保证加密效率一般使用对称加密) 常见对称密钥加密算法:DES:…

行政快递管理高效化教程

能不能做好因公寄件管理,影响着企业内部运转的效率。我们知道,基本上每家企业的因公寄件,是由行政部门来统筹管理的...... 企业员工只知道,在公司寄快递,找行政。殊不知行政快递管理,不仅仅是“寄件”这么…

操作失误损失60亿美元,Excel还能是电脑上的常驻将军吗?

2013年,摩根大通交易员excel操作失误,造成公司损失60亿美元!近40年来,excel一直是办公电脑上的常驻将军,甚至我们现在对表格的印象就是excel,为什么excel这么容易错误,这些年我们还是一直使用ex…

TVRNet网络PyTorch实现

文章目录 文章地址网络各层结构代码实现 文章地址 An End-to-End Traffic Visibility Regression Algorithm文章通过训练搜集得到的真实道路图像数据集(Actual Road dense image Dataset, ARD),通过专业的能见度计和多人标注,获得…

C++重载 强制类型转换运算符

文章目录 1.函数调用运算符重载2.强制类型转换运算符重载2.1对运算符的认识2.2类型强制转换运算符 1.函数调用运算符重载 class Display { public:void operator()(string text){cout << text << endl;}}; class Add { public:int operator()(int v1, int v2){ret…

在Win11上部署ChatGLM2-6B详细步骤--(上)准备工作

一&#xff1a;简单介绍 ChatGLM-6B是清华大学知识工程和数据挖掘小组&#xff08;Knowledge Engineering Group (KEG) & Data Mining at Tsinghua University&#xff09;发布的一个开源的对话机器人。根据官方介绍&#xff0c;这是一个千亿参数规模的中英文语言模型。并…

C++继承总结(下)——菱形继承

一.什么是菱形继承 菱形继承是多继承的一种特殊情况&#xff0c;一个类有多个父类&#xff0c;这些父类又有相同的父类或者祖先类&#xff0c;那么该类就会有多份重复的成员&#xff0c;从而造成调用二义性和数据冗余。 class Person {public:Person(){cout << "P…

新手小白怎么选择配音软件?

现在的配音软件软件很多&#xff0c;各种类型的都比较多&#xff0c;对于新手小白来说不知该如何选择&#xff0c;今天就来给你分享几款好用的配音软件。不论是制作短视频还是制作平常音频都完全可以。 第一款&#xff1a;悦音配音 这是一款专业的视频配音软件&#xff0c;多端…

内存马概念

内存马概念 文章目录 内存马概念木马演变内存使用条件内存缺点JAVA Web三大组件Listener:监听器servelet请求流程内存马分类内存演示内存马植入方式案例shiro反序列化漏洞植入内存马 木马演变 内存使用条件 1. 禁止外联 2. 文件监控、查杀 3. spring Boot&#xff0c;不支持js…

【已解决】goland每次都自动删除我import的包

需要2步&#xff1a; 第一步&#xff1a;取消Optimize imports on the fly勾选 第二步&#xff1a;取消Optimize imports

IO进程及相关函数

什么是环境变量 http://t.csdnimg.cn/nPrMu 进程&#xff1a;是程序执行的一次执行过程&#xff0c;是动态&#xff0c;涉及到资源分配&#xff0c;包含创建、调度、执行 程序&#xff1a;存放在磁盘空间上的一个二进制文件&#xff0c;是指令集合&#xff0c;是静态的&#xf…

MacOS系统Chrome开发者模式下载在线视频

操作流程 # step1. 进入开发者模式 command option i # step2. 在搜索栏中搜索 getHttpVideoInfo.do?关键词 # step3. 在Preview的Json界面中找到video&#xff0c;然后选择不同resolution & duration的视频片段&#xff1b; # step4. 选择合适的video::chapters, 选择…

【鸿蒙软件开发】ArkTS基础组件之Marquee(文字跑马灯)、QRCode(二维码生成)

文章目录 前言一、Marquee组件1.1 子组件1.2 创建Marquee组件参数 1.3 属性1.4 事件1.5 示例代码 二、QRCode2.1 子组件2.2 接口2.3 参数2.4 属性2.5 事件2.6 示例代码 总结 前言 Marquee组件&#xff1a;跑马灯组件&#xff0c;用于滚动展示一段单行文本&#xff0c;仅当文本…

python+requests接口自动化测试框架

1、首先&#xff0c;我们先来理一下思路。 正常的接口测试流程是什么&#xff1f; 脑海里的反应是不是这样的&#xff1a; 确定测试接口的工具 —> 配置需要的接口参数 —> 进行测试 —> 检查测试结果&#xff08;有的需要数据库辅助&#xff09; —> 生成测试报…

算法通关村第三关-白银挑战双指针思想

大家好我是苏麟 , 今天带来算法第三关 . 本期大纲 元素奇偶移动专题 元素奇偶移动专题 描述 : 给你一个整数数组 nums&#xff0c;将 nums 中的的所有偶数元素移动到数组的前面&#xff0c;后跟所有奇数元素。 返回满足此条件的 任一数组 作为答案。 题目 : LeetCode 905.…

成人自考-英语二-连词

感谢内容提供者&#xff1a;金牛区吴迪软件开发工作室 接上一篇&#xff1a;成人自考-英语二-形容词 文章目录 一、连词分类1.并列连词-连接词与词、句与句&#xff08;1&#xff09;词 并列连词 词&#xff08;2&#xff09;句子1 并列连词 句子2 2.从属连词-连接从句&…