vitis zync 介绍

2024-05-15 00:18
文章标签 介绍 vitis zync

本文主要是介绍vitis zync 介绍,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

https://blog.csdn.net/sements/article/details/109121380

文章目录
1 - 从 Xilinx Zynq 讲起
2 - Vitis 平台概览
2.1 - Vitis IDE
2.2 - Vitis HLS / Accelerated Library
2.3 - Vitis AI
2.4 - Petalinux
3 - The end?
Xilinx 赛灵思官方推出的 Vitis 统一软件平台可以大致的理解为在原本 SDK 软件的基础上将其做大做强,使其可以调度官方的其他相关软件,从而成为一个针对赛灵思所有可加速设备(如Alveo、ACAP、FPGA等)的统一集成开发环境。

1 - 从 Xilinx Zynq 讲起
传统的 FPGA ,仅含有可编程逻辑部分,即 PL(Progarmmable Logic)。赛灵思的 Zynq 系列则是在单片 FPGA 芯片上,将一个或者多个 ARM 内核嵌入其中,这一SOC部分被称为 PS (Processing System)。

事实上,你是可以直接在 PL 上搭建一个 SOC 出来,比如使用 ARM 的 Cortex-m3 内核 IP、Micro Blaze。但是相比于直接将一个成熟的ARM内核电路固化嵌入其中,自己在 PL 上搭建近似性能的内核,还是过于占用片上资源。

由于一块芯片上存在两个需要编程的部分,PL 需要用比特流(bitstream)来描述硬件架构,PS 需要运行裸机(standalone)或操作系统(如 Linux)。这便牵扯到对两块区域进行分别开发的问题。

熟悉赛灵思的 Spartan、Kintex、Virtex 等纯 PL 器件的人都知道,可以在赛灵思的 Vivado 软件中,使用 verilog 语言对 PL 部分进行编程、调试与运行;玩过 Zynq 系列的人也知道,在 Vivado 中选择使用Zynq 系列芯片后,可以添加 PS 的 IP 核。硬件导出后,可以在赛灵思的 SDK 中编写裸机或者能在操作系统上运行的程序。也可以使用 Petalinux 载入硬件描述文件,生成符合当前硬件的 Linux 操作系统。

这里我们可以总结一下,基本上,在赛灵思推出 Vitis 统一软件平台前,开发一套 PS + PL 的FPGA程序,基本使用的就是以下几个软件:

Vivado
SDK
Petalinux
但是,随着赛灵思的产品线逐渐壮大,相关的软件也 迷之迭代 层出不穷,例如SDSoc。随着赛灵思收购深鉴科技,将 Deep Learning Process Unit(DPU)以及相关套件纳入囊中后。官方对于在 FPGA 上进行 AI 加速运算的推进也被划入了快车道。于是,Vitis 统一软件平台也就此诞生。其中最引人瞩目的便是官方宣传的 Vitis AI 功能,大部分想要尝鲜人工智能在 FPGA 上便捷部署的人们,迫不及待的想要对当前的开发工具更换为最新的 Vitis。但是却也有不少人被赛灵思官方对于 Vitis ,以及 Vitis AI 的描述绕的晕头转向。

那么,什么是 Vitis ?它的相关组件之间的关系又是什么?本文便是笔者在被绕的晕头转向之际,尝试着去对 Vitis 组件进行部分总结与概述的情况下所写下的。奈于精力与个人理解的有限性,难免会有疏漏之处,还希望诸位看官能不吝赐教。

2 - Vitis 平台概览


这里先将个人总结的 Vitis 平台中各个组件之间的关系图放出,方便查看。

从官方的 Vitis 介绍中,以及实际安装 Vitis Core 开发套件 后,我们可以了解到,Vitis 统一软件平台这个宏大蓝图之中,主要包含了以下几个组件:

Vitis IDE
Vitis HLS(也就是曾经的 Vivado HLS)
Vitis Accelerated Library
Vivado
Vitis AI
Petalinux
XRT(Xilinx Runtime library)
关于安装 Vitis 可以参考UP主 吃猫粮的耗子 的这篇视频

2.1 - Vitis IDE
安装 Vitis Core Development Kit 后,你便可以在桌面上找到 Vitis 这个软件,它便是 Vitis 这个统一软件平台的一个调度口,打开它实际则是打开了 Vitis IDE 这个软件界面。

对于 Vitis ,一个重要的概念是 Platform,在这里不仅仅是 Vivado 导出后的硬件描述,而是一个更加广义的概念,其是一个包含了硬件与软件综合概念,在这个 Platform 上,你可以进行许多综合性的操作。(Platform 和 XSA的关系 - Community Forums)

硬件部分好说,我们使用 Vivado 即可导出。使用安装 Vitis 后的Vivado,在其中对硬件部分编译完毕后,我们可以直接唤起 Vitis IDE(这一点有点类似于我们曾经在 Vivado 中唤起 SDK)。也可以从 Vitis IDE 中,新建工程 ,并选择使用已添加的现有 Platform,或选择从 Vivado 导出的 xsa(Xilinx Shell Archive) 文件以新建 Platform。

软件部分,我们在 Vitis IDE 中也可以直接编写裸机或者操作系统上运行的应用程序,并且编译、调试。这样看来,Vitis IDE 本身,同以往的 SDK 其实很相似。

2.2 - Vitis HLS / Accelerated Library
Vitis HLS,和曾经的 Vivado HLS 并没有什么较大的差别。而 Vitis Accelerated Library 实质上更像是整合了以往赛灵思使用 HLS 进行优化过后的库的集合(例如 在 HLS 中使用 opencv),我们依然可以在 HLS 中调用并使用这些已加速优化后的库。

类似于曾经的 SDx ,也可以直接在 Vitis IDE 中调用 Vitis Accelerated Library 对代码进行加速,参考UG1393 或 Vitis 2020.1 Software Platform Release Notes 了解更多。

2.3 - Vitis AI
虽然叫 Vitis AI,但是目前来看和 Vitis IDE 的联系不大(至少目前没有从 IDE 中直接使用 Vitis AI 的方法)。Vitis AI 目前是纯命令行的形式,仅在 Linux 系统环境下运行,也就是说,为了使用这个功能,你必须安装 Linux 版本的 Vitis,并且保证拥有足够大的运行资源(RAM要求32GB以上)。

如概览图所示,Vitis AI 可以载入来自赛灵思精选后放入 Github 上的 Model Zoo 中的已固化模型,也可以载入来自用户自定义的模型文件。Vitis AI 工具包含几个组件,AI 编译器、量化器、优化器、分析器,并将最终的模型部署在 PL 端的 Deep Learning Processing Unit(DPU)上。PS端 或者对于 Alevo加速卡来说是电脑端,可以通过 Xilinx Runtime library(XRT)接口对其进行调用。

2.4 - Petalinux
petalinux 还是那个老味道,载入 vivado 导出的硬件文件,构建能在当前 PL 硬件环境上运行的 Linux系统,关于其介绍和使用可以查看我的 Petalinux系列文章。是否能够直接调用 petalinux 搭建环境,而不用手动进行操作呢?这点我还没有了解到。。。。。不过应该是支持的吧?

3 - The end?
结合着上章的描述,前面绘制的 Vitis 统一平台概览图应该也比较容易理解了。Vitis 的诞生本质是为了方便开发者们对赛灵思产品进行开发,不用再像过往一样,开发到某个步骤需要跳转到某个软件。大家也可以看看前面推荐的B站up主 吃猫粮的耗子 的相关视频教程,他的视频在我 踩坑 了解期间,给予了不少帮助,在这里对他表示衷心的感谢。大家对 Vitis 感兴趣的也可以加入他的QQ群:1146499819

关于 DPU 以及 Vitis AI ,后面如果有时间研究,应该也会做相关的记录。不过由于论文、项目与毕业设计等等一堆干涉的存在,记录的时间也处于不薛定谔的猫状态,同时存在于鸽与不鸽的状态。也许等到干涉的消失、玛奇玛征服电次、杜林族发酒疯的时候,概率云的崩塌便会导致记录的存在变为确实吧。
————————————————
版权声明:本文为CSDN博主「里先森」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/sements/article/details/109121380

这篇关于vitis zync 介绍的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/990262

相关文章

揭秘未来艺术:AI绘画工具全面介绍

📑前言 随着科技的飞速发展,人工智能(AI)已经逐渐渗透到我们生活的方方面面。在艺术创作领域,AI技术同样展现出了其独特的魅力。今天,我们就来一起探索这个神秘而引人入胜的领域,深入了解AI绘画工具的奥秘及其为艺术创作带来的革命性变革。 一、AI绘画工具的崛起 1.1 颠覆传统绘画模式 在过去,绘画是艺术家们通过手中的画笔,蘸取颜料,在画布上自由挥洒的创造性过程。然而,随着AI绘画工

20.Spring5注解介绍

1.配置组件 Configure Components 注解名称说明@Configuration把一个类作为一个loC容 器 ,它的某个方法头上如果注册7@Bean , 就会作为这个Spring容器中的Bean@ComponentScan在配置类上添加@ComponentScan注解。该注解默认会扫描该类所在的包下所有的配置类,相当于之前的 <context:component-scan>@Sc

C++标准模板库STL介绍

STL的六大组成部分 STL(Standard Template Library)是 C++ 标准库中的一个重要组成部分,提供了丰富的通用数据结构和算法,使得 C++ 编程变得更加高效和方便。STL 包括了 6 大类组件,分别是算法(Algorithm)、容器(Container)、空间分配器(Allocator)、迭代器(Iterator)、函数对象(Functor)、适配器(Adapter)

一二三应用开发平台应用开发示例(4)——视图类型介绍以及新增、修改、查看视图配置

调整上级属性类型 前面为了快速展示平台的低代码配置功能,将实体文件夹的数据模型上级属性的数据类型暂时配置为文本类型,现在我们调整下,将其数据类型调整为实体,如下图所示: 数据类型需要选择实体,并在实体选择框中选择自身“文件夹” 这时候,再点击生成代码,平台会报错,提示“实体【文件夹】未设置主参照视图”。这是因为文件夹选择的功能页面,同样是基于配置产生的,因为视图我们还没有配置,所以会报错。

49-1 内网渗透 - Bypass UAC介绍

一、Bypass UAC         用户账户控制(UAC)是Windows操作系统的一种安全机制,旨在防止未经授权的应用程序自动安装并防止非授权修改系统设置。它确保应用程序和任务通常在非管理员账户的安全上下文中运行,除非明确需要管理员权限,用户才会被提示确认。         对于非RID 500的管理员用户(除了内置的Administrator账户),当他们登录时,系统会为其分配两个访

okhttp3的详细介绍

这篇文章说下OkHttp的基本用法,是最新的3哦,如果你曾经在网上搜索OkHttp怎么使用发现有些类没有了可能是因为人家说的是2。首先说下OkHttp3是Java和Android都能用,Android还有一个著名网络库叫Volley,那个只有Android能用。导入自己到入jar包,别漏了okio:okhttp-3.3.0.jarokio-1.8.0.jarmaven方式:<dependen

Retrofit详细介绍

转载请标明出处:http://blog.csdn.net/xx326664162/article/details/51910837 文章出自:薛瑄的博客 你也可以查看我的其他同类文章,也会让你有一定的收货! 一、Retrofit 是什么? Retrofit is a type-safe HTTP client for Android and java. Retrofit 是与 Web 服务器提

Retrofit介绍案例

Retrofit这东西我就不多做解释了,反正最近应用很广,基本都快和OkHttp一起成为安卓的事实网络访问标准框架了。   这么好的一个东西,官网文档实在是不算太好,说的不太清晰。按官网的经常会有“Could not locate ResponseBody converter for”问题。 反正折腾了一番,终于跑出来了一个例子。这里把正确的例子写出来,方便大家参考。 首先要注意

okclient2详细介绍

在 Java 程序中经常需要用到 HTTP 客户端来发送 HTTP 请求并对所得到的响应进行处理。比如屏幕抓取(screen scraping)程序通过 HTTP 客户端来访问网站并解析所得到的 HTTP 文档。在 Java 服务端程序中也可能需要使用 HTTP 客户端来与第三方 REST 服务进行集成。随着微服务(microservices)的流行,HTTP 成为不同服务之间的标准集成方式。H

Hbase特性介绍

1、什么是Hbase。 是一个高可靠性、高性能、列存储、可伸缩、实时读写的分布式数据库系统。 适合于存储非结构化数据,基于列的而不是基于行的模式 如图:Hadoop生态中HBase与其他部分的关系。 2、关系数据库已经流行很多年,并且Hadoop已经有了HDFS和MapReduce,为什么需要HBase? Hadoop可以很好地解决大规模数据的离线批量处理问题,但是,受限于Hadoo