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

AI 引擎系列 4 - 首次运行 AI 引擎编译器和 x86simulator(2022.1 更新)

AI 引擎系列 4 - 首次运行 AI 引擎编译器和 x86simulator(2022.1 更新)

简介

在 AI 引擎系列的前 3 篇博文中,我们探讨了 AI 引擎应用所需的不同文件。在本篇中,我们将为 X86 目标运行 AI 引擎编译器,观察它生成的不同输出。

要求

下文要求您通读前几篇。

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

AI 引擎系列 2 - AI 引擎 graph 简介 (2022.1 更新)

AI 引擎系列 3 - AI 引擎内核简介

首次运行 AI 引擎编译器

在前几篇博文中所创建的工程中,打开“simple_application.prj”工程以查看“Application Project Settings”(应用工程设置)。 在右上角可以看到有 3 个可用的构建配置:

添加图片注释,不超过 140 字(可选)

  • Emulation-SW(软件仿真):为 X86 处理器执行编译。此项配置仅用于功能仿真(非周期近似)。
  • Emulation-AIE(AI 引擎仿真):为 AI 引擎执行编译。使用 SystemC 模型为 AI 引擎执行代码仿真。此项配置可提供功能仿真,并且周期近似。
  • Hardware(硬件):为硬件目标执行编译。

请选中“Emulation-SW”。这样“Target”(目标)会改为“x86 Simulation”(x86 仿真)

添加图片注释,不超过 140 字(可选)

选中“AI Engine Application”(AI 引擎应用)(simple_application),然后单击工具栏中的锤子按钮以构建该工程。

添加图片注释,不超过 140 字(可选)

这样即可在控制台窗口中看到 aiecompiler 命令的运行过程。

添加图片注释,不超过 140 字(可选)

启动的完整命令如下所示:

aiecompiler -v --stacksize=1024 --heapsize=1024 -Xchess=main:darts.xargs=-nb -include="<Xilinx Installation Path>/Vitis/2022.1/aietools/include" -include="<Xilinx Installation Path>/Vitis_HLS/2022.1/include" -include="../" -include="../src" -include="../data" -include="../src/kernels" -target=x86sim   -platform=xilinx_vck190_base_202210_1.xpfm -workdir=./Work ../src/project.cpp

可用不同选项包括: -v:为 aiecompiler 启用详细模式 -include:用于包含必要的头文件、源文件和数据文件。 -stacksize:该选项用于定义所有核的 stacksize 大小 -heapsize:该选项用于定义所有核的 heapsize 大小 -target=x86sim:该选项用于将 x86 仿真设为目标。 -platform:该选项用于定义平台(此处采用 VCK190 基础平台)路径 -workdir:该选项用于指定 aiecompiler 的输出文件夹 最后一个参数 (../src/project.cpp) 是顶层文件,其中包含顶层计算图 (graph) 的例化。 完成构建后,即可在“Explorer”(资源管理器)窗口中看到,编译器已生成名为“Emulation-SW”的文件夹,并且编译输出包含在“Work”目录中

添加图片注释,不超过 140 字(可选)

此时即可运行 X86 仿真。选中“AI Engine Application”(simple_application),然后单击“Run As”图标旁的箭头,单击“Run As > Launch SW Emulator”(运行方式 > 启动软件仿真器)

添加图片注释,不超过 140 字(可选)

完成仿真后,Vitis 中的控制台应报告“Simulation completed successfully returning zero”(仿真已成功完成,返回 0)。

添加图片注释,不超过 140 字(可选)

在“Emulation-SW”文件夹下可以看到,仿真器已生成 data 目录,其中,根据 project.h 顶层计算图文件指定的要求,output.txt 内包含来自仿真器的输出

out = output_plio::create(plio_32_bits, "data/output.txt");

模板示例随附了黄金参考文件 (data/golden.txt) 供我们与输出文件进行比对。请选中 golden.txt 文件和新创建的 output.txt,右键单击其中之一,然后单击“Compare With > Each Other”(比较对象 > 相互比较)。


 

添加图片注释,不超过 140 字(可选)

通过比较这 2 个文件可以看到两者相匹配,这表示代码功能正常(它与模型相匹配)。

下一步

在下一篇博文中,我们将以 AI 引擎模型为目标来运行 AI 引擎编译器。

相关文章:

  • leetCode 322.零钱兑换 完全背包 + 动态规划 + 记忆化搜索 + 递推 + 空间优化 + 画递归树
  • 基于STM32CubeMX和keil采用USART/UART实现非中断以及中断方式数据回环测试借助CH340以及XCOM
  • Docker学习——③
  • 【Redis】的简介和安装配置(Linux和windows)及操作命令
  • Hive 解析 JSON 字符串数据的实现方式
  • Golang源码分析之golang/sync之singleflight
  • 【Java初阶练习题】-- 数组练习题
  • Qt界面美化之Qt Style Sheets
  • Ansible自动化安装部署及使用
  • 单链表基本操作的实现,初始化,头插,尾插,判空,获取个数,查找,删除,获取前置和后置位,清空,销毁
  • 在树莓派上使用Nginx搭建本地站点并通过内网穿透实现远程访问
  • 个人网站迁移
  • 由于找不到vcruntime140.dll无法继续执行代码
  • 【Qt6】QStringList
  • 【Midjourney入门教程3】写好prompt常用的参数
  • IE9 : DOM Exception: INVALID_CHARACTER_ERR (5)
  • 【编码】-360实习笔试编程题(二)-2016.03.29
  • 【个人向】《HTTP图解》阅后小结
  • 【跃迁之路】【519天】程序员高效学习方法论探索系列(实验阶段276-2018.07.09)...
  • Go 语言编译器的 //go: 详解
  • HTML-表单
  • JavaScript HTML DOM
  • JavaScript 基本功--面试宝典
  • php中curl和soap方式请求服务超时问题
  • Promise面试题2实现异步串行执行
  • React组件设计模式(一)
  • spring boot下thymeleaf全局静态变量配置
  • vue脚手架vue-cli
  • Vue源码解析(二)Vue的双向绑定讲解及实现
  • webpack+react项目初体验——记录我的webpack环境配置
  • 机器学习中为什么要做归一化normalization
  • 记一次用 NodeJs 实现模拟登录的思路
  • 面试总结JavaScript篇
  • 前端之React实战:创建跨平台的项目架构
  • 一起来学SpringBoot | 第三篇:SpringBoot日志配置
  • Mac 上flink的安装与启动
  • #include<初见C语言之指针(5)>
  • #NOIP 2014# day.1 T3 飞扬的小鸟 bird
  • (C++17) std算法之执行策略 execution
  • (Mac上)使用Python进行matplotlib 画图时,中文显示不出来
  • (补)B+树一些思想
  • (附源码)springboot 基于HTML5的个人网页的网站设计与实现 毕业设计 031623
  • (附源码)ssm学生管理系统 毕业设计 141543
  • (附源码)计算机毕业设计ssm-Java网名推荐系统
  • (论文阅读31/100)Stacked hourglass networks for human pose estimation
  • (学习日记)2024.01.09
  • (一)kafka实战——kafka源码编译启动
  • (一)硬件制作--从零开始自制linux掌上电脑(F1C200S) <嵌入式项目>
  • (转)Google的Objective-C编码规范
  • (转载)(官方)UE4--图像编程----着色器开发
  • .bat批处理(一):@echo off
  • .NET Reactor简单使用教程
  • .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉
  • @Transactional注解下,循环取序列的值,但得到的值都相同的问题
  • @Valid和@NotNull字段校验使用