Vitis HLS 学习笔记--Vitis Accelerated Libraries介绍

1. 简介

Vitis Accelerated Libraries,包含很多现成的库,这些库都是开源的,也就是说代码是公开的,而且已经优化过,可以让程序运行得更快。你不需要改变太多你的代码,就能让你的程序速度提升。

这些库有很多种,比如用于解算数学问题的、做基础数学运算的、处理稀疏矩阵的、数字信号处理的,还有一些其他的工具。这些都是很基础的功能,但是可以用在很多不同的程序上。

还有一些特别的库,它们是为了特定的领域设计的,比如处理图像、金融计算、高性能计算、图形处理、数据库管理、数据分析、数据压缩等等。这些库可以让这些特定领域的程序直接加速。

Vitis的库中还包括了一些特别为Versal™设备中的AI引擎优化过的功能,比如数字信号处理、矩阵运算等等。这意味着这些功能在Versal设备上会运行得特别快。

2. 库的组织结构 

2.1 结构级别L1/L2/L3

Vitis 库分为 L1、L2 和 L3 文件夹,每个文件夹与应用程序开发的不同阶段相关:

L1 Primitives

主要包含基本的原始函数(primitives),这些函数可以单独仿真,并且可以用于Vitis HLS生成Verilog HDL和IP。这些函数是底层的,通常用于硬件开发者。

L1 中的 Makefile 和源代码有助于基于 HLS 的流程进行快速检查:

  • 检查单个内核的功能(C simulation)
  • 估计资源使用情况、延迟等(Synthesis)
  • 运行周期精确模拟(Co-simulation)
  • 打包为 IP 并获取最终资源利用率/时序详细信息(Export RTL)

特点:

  • 主要提供给精通硬件的开发者,想要了解底层实现逻辑并进行性能优化
  • 包含有流接口
  • 通常为单个计算模块实现
  • 不能被主机代码直接调用

L2 Kernels

由将L1库中的原始函数与数据移动器(data movers)集成而成,这些集成函数可以被主代码调用,使用XRT运行时库。L2库的功能是基于L1库的功能进行扩展和优化。

L2 中的 Makefile 和源代码用于从内核的各种源代码(HDL、HLS 或 XO 文件)构建 XCLBIN 文件,并使用针对设备的 OpenCL/XRT 框架编写的主机代码:

  • 主要提供给了解XRT API的主机代码开发者
  • 始终具有内存(DDR/HBM)接口
  • 由 L1 原语函数与一些数据移动器模块链接而成
  • 主机可调用

L3 Software APIs

提供C、C++和Python等编程语言的接口,允许纯软件开发者将图算法操作(如BLAS)转移到AMD平台上,而无需额外的硬件配置。L3库是最高级别的,它为软件开发者提供了一个更高层次的接口。

  • 主要为纯软件工程师提供
  • 功能参数与硬件无关
  • 通常用于部署
  • 主机可调用

2.2 文件内容

L1 子目录:

  • include/hw:原始函数的头文件
  • tests/hw:顶级模块,包括数据移动器和原始函数
  • test/sw:调用原始函数的测试平台和基础设施支持

L2 子目录:

  • include/hw:内核函数的头文件
  • include/sw:调用内​​核函数的主机模块
  • test/hw:包含用于构建每个已实现的内核函数的 Makefile

L3 子目录:

  • include/sw:软件API函数的头文件
  • test/sw:包含用于测试每个已实现的软件API函数的Makefile

3. 分类介绍

3.1 blas

Basic Linear Algebra Subroutines,基本线性代数子程序,包含一些矩阵和向量运算函数。

矩阵运算函数:

  • 一般矩阵乘法

向量运算函数:

搜索向量元素位置

3.2 codec

编解码库,用于加速图像编码、解码和相关处理算法。

3.3 data_analytics

数据挖掘:分类、聚类、回归。

文本处理:非结构化信息的提取和转换。

地理空间:空间分析和空间数据挖掘。

3.4 data_compression

硬件加速压缩算法。

3.5 data_mover

在PL和DDR之间高效率传输数据。

3.6 database

SQL引擎开发,使用FPGA卡来加速查询执行。

3.7 dsp

DDS、FFT、FIRs、矩阵乘法(GeMM)和Widgets。

3.8 graph

图形库,包括相似性分析、分类、中心性分析、寻路、连通性分析、社区检测、搜索、图形格式。

3.9 hpc

高性能计算库,多层感知器(MLP)、二维反时间迁移(RTM)、三维RTM、共轭梯度求解器(CG)。

3.10 motor_control

FOC:Field-Orientated Control,场向控制。

SVPWM_DUTY / PWM_GEN:Space Vector Pulse Width Modulation,空间矢量脉宽调制(SVPWM)。

QEI:Quadrature Encoder Interface,四象限编码器接口。

3.11 quantitative_finance

L1:统计函数、数值方法和线性代数函数,支持实际用户实现高级建模,

L2:评估常见的金融衍生产品,如股权产品、利率产品、外汇(FX)产品和信贷产品。

3.12 security

安全算法:对称块密码,对称流密码,非对称加密,密码操作模式,消息认证码和哈希函数。

3.13 solver

矩阵分解操作,线性求解器和特征值求解器。

3.14 utils

实用库,高效地访问DDR、HBM或URAM中的内存执行数据分发、收集、重新排序、插入和丢弃。

3.15 vision

OpenCV视觉库

4. 总结

Vitis加速库为FPGA开发者提供了一系列优化的开源库,涵盖了从基础数学运算到专业领域应用的广泛功能。这些库分为三个层级:L1原语提供设计内核的基础算法,L2内核为性能优化的内核,而L3软件API则提供高级软件接口。特别地,对于Versal™ AI引擎,库中包含了专门优化的功能,以实现极致的运行效率。无论是在数据分析、图像处理、金融计算还是安全算法等领域,Vitis库都能显著提升程序的性能,简化开发流程,使得FPGA的强大计算能力更加易于访问和利用。这些库不仅支持广泛的应用场景,还能够根据用户需求进行定制和扩展,极大地推动了硬件加速的创新和应用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/852455.shtml

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

相关文章

ROS 自动驾驶多点巡航

ROS 自动驾驶多点巡航: 1、首先创建工作空间: 基于我们的artca_ws; 2、创建功能包: 进入src目录,输入命令: catkin_create_pkg point_pkg std_msgs rospy roscpptest_pkg 为功能包名,后面两个是依赖&a…

H5的3D展示有可能代替PC传统3D展示么?

H5的3D展示技术正在快速发展,并且随着5G网络的普及和手机硬件性能的提升,H5的3D展示在某些方面已经能够接近甚至超越传统PC上的3D展示效果,比如 博维数孪 的渲染能力及效果。但H5和PC的3D展示互相之间是各有优势领域和行业支持,短…

齐普夫定律在循环神经网络中的语言模型的应用

目录 齐普夫定律解释公式解释图与公式的关系代码与图的分析结论 使用对数表达方式的原因1. 线性化非线性关系2. 方便数据可视化和分析3. 降低数值范围4. 方便参数估计公式详细解释结论 来自:https://zh-v2.d2l.ai/chapter_recurrent-neural-networks/language-model…

自动驾驶---Perception之视觉点云雷达点云

1 前言 在自动驾驶领域,点云技术的发展历程可以追溯到自动驾驶技术的早期阶段,特别是在环境感知和地图构建方面。 在自动驾驶技术的早期技术研究中,视觉点云和和雷达点云都有出现。20世纪60年代,美国MIT的Roberts从2D图像中提取3D…

避免在Homebrew更新时升级Maven

目录 一、简介二、问题背景三、解决步骤1. 查看当前安装的 Maven 版本2. 锁定 Maven 版本3. 验证 Maven 是否被锁定4. 忽略自动更新5. 解除 Maven 锁定(如果需要) 四、其他注意事项五、写在后面 一、简介 Homebrew 是 macOS 上一个非常流行的包管理器&a…

手把手教程本地调试Datax

背景:使用Datax做数仓同步数据得工具,有时需要自己开发或者修改某个reader或writer插件,那么本地调试就很重要。 一. 下载 从GitHub上下载或者clone下来Datax项目。 https://github.com/alibaba/DataX 找到Core模块,运行入口就…

上海市计算机学会竞赛平台2024年5月月赛丙组棋盘问题(二)

题目描述 给定一个 𝑛∗𝑚n∗m 的棋盘,你需要在棋盘上放置黑白两个不同的皇后,请问有多少种放置方法能够使两个皇后之间互相不能攻击对方? 象棋中的皇后可以沿所在行、列及对角线移动任意距离。 输入格式 输入共一…

React <> </>的用法

React &#xff1c;&#xff1e; &#xff1c;/&#xff1e;的用法 介绍为什么使用 <>&#xff1f;例子解释 关于顶级元素总结 介绍 在 React 中&#xff0c;使用 <> 表示一个空标签或片段&#xff08;Fragment&#xff09;&#xff0c;这是一个简洁的方式来包裹一…

黑苹果/Mac如何升级 Mac 新系统 Sequoia Beta 版

Mac升级教程 有必要提醒一下大家&#xff0c;开发者测试版系统一般是给开发者测试用的&#xff0c;可能存在功能不完善、部分软件不兼容的情况&#xff0c;所以不建议普通用户升级&#xff0c;如果实在忍不住&#xff0c;升级之前记得做好备份。 升级方法很简单&#xff1a; …

编程软件要怎么学好:深入剖析与高效学习之道

编程软件要怎么学好&#xff1a;深入剖析与高效学习之道 在数字化时代&#xff0c;编程技能已成为一项不可或缺的能力。而要学好编程软件&#xff0c;不仅需要扎实的编程基础&#xff0c;还需要掌握一定的学习策略和方法。本文将从四个方面、五个方面、六个方面和七个方面&…

windows 下 docker 入门

这里只是具体过程&#xff0c;有不清楚的欢迎随时讨论 1、安装docker &#xff0c;除了下一步&#xff0c;好像也没有其他操作了 2、安装好docker后&#xff0c;默认是运行在linux 下的&#xff0c;这时我们需要切换到windows 环境下&#xff0c; 操作&#xff1a;在右下角d…

Day03 运算符

1、符号运算符 ( ) [ ] . -> 圆括号 数组 成员选择&#xff08;对象&#xff09;——结构体、联合体 成员选择&#xff08;指针&#xff09;——结构体、联合体 2、符号运算符 - () -- * & …

知从科技获得ASPICE CL3认证证书

近日&#xff0c;知从科技正式通过Automotive SPICE CL3&#xff08;汽车软件过程改进及能力评定&#xff09;评估认证&#xff0c;这是继23年3月通过ASPICE CL2级评估的又一个重要里程碑。ASPICE CL3级是目前国内汽车软件领域最高的评估认证等级&#xff0c;这标志着知从科技的…

hw面试总结

在这里给大家推荐一个阿里云的活动&#xff0c;可白嫖一年2h4g服务器 活动链接&#xff1a;https://university.aliyun.com/mobile?clubTaskBizsubTask…11404246…10212…&userCodeks0bglxp 一、漏洞分析 1.SQL注入 原理&#xff1a; 当Web应用向后台数据库传递SQL…

Day04 C语言语句

目录 1、复合语句 2、表达式语句 3、选择分支语句 4、标签语句 5、跳转语句 6、循环&#xff08;迭代&#xff09;语句 用户一般会把实现某些功能的语句整合在一起&#xff0c;构成一个语法单元&#xff1b;C语言标准的语法单位也被称为块&#xff0c;称为块语句 1、复合…

C#|Maui|BootstrapBlazor|Bootstrap Blazor 组件库改模板 | Bootstrap Blazor 组件库改布局,该怎么改?

先copy一个项目下来&#xff1a;Bootstrap Blazor 组件库 一套基于 Bootstrap 和 Blazor 的企业级组件库 发现不是很满足我的需求&#xff0c;我要把右下角的admin移动到左边去&#xff0c;该怎么移动&#xff1f; 先改代码 点进去到Layout.razor 文档&#xff0c;改成如下&am…

净化机应用领域广泛 美国是我国净化机主要出口国

净化机应用领域广泛 美国是我国净化机主要出口国 净化机&#xff0c;又称为空气清洁设备或空气清新机&#xff0c;是一种专门设计用于滤除或杀灭空气污染物、提升空气清洁度的装置。净化机具备高效的过滤功能&#xff0c;能够滤除空气中的悬浮微粒、细菌、病毒和花粉等污染物&a…

C++ const关键字有多种用法举例

C const关键字有多种用法 可以用来修饰变量、指针、函数参数、成员函数等。可以看到const在C中有多种用法&#xff0c;主要用于保证数据的不可变性&#xff0c;增强代码的安全性和可读性。在实际编程中&#xff0c;根据需要选择适当的const用法&#xff0c;可以有效避免意外修…

社区团购系统搭建部署 :便捷高效,连接消费者与商家新篇章

一、前言 随着科技的快速发展和互联网的普及&#xff0c;社区团购系统作为一种新型的购物模式&#xff0c;正以其便捷高效的特性&#xff0c;逐渐改变着消费者和商家的互动方式。社区团购系统为商家提供丰富的营销活动和便捷高效的门店管理体系&#xff0c;为消费者提供真正实惠…

微信小程序是否可以使用自建SSL证书?

在数字化时代&#xff0c;网络安全已成为企业和个人用户关注的焦点。为了保护网站和用户数据的安全&#xff0c;SSL证书应运而生。SSL证书&#xff0c;即安全套接字层证书&#xff0c;是一种用于在客户端和服务器之间建立加密连接的数字证书。它通过公钥加密和私钥解密&#xf…