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…

手把手教程本地调试Datax

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

windows 下 docker 入门

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

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

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

hw面试总结

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

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

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

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

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

KTH4603 3D Hall传感器在强磁入侵检测中的应用

背景介绍 电子系统一直面临强磁干扰的威胁,保护这些设备免受强磁干扰成为一个重要课题。非法者通过施加强磁意图篡改或干扰它们,窃取产品或服务。强磁场可以对电子设备产生严重的影响,包括但不限于:数据损坏、功能故障、安全隐患…

Ubuntu的文件权限介绍

Linux系统是一个多用户系统,每个用户都会创建自己的文件。为了防止其他人擅自改动他人的文件,需要拥有一套完善的文件保护机制。在Linux系统中,这种保护机制就是文件的访问权限。文件的访问权限决定了谁可以访问和如何访问特定的文件。 为了…

深度学习500问——Chapter11:迁移学习(1)

文章目录 11.1 迁移学习基础知识 11.1.1 什么是迁移学习 11.1.2 为什么需要迁移学习 11.1.3 迁移学习的基本问题有哪些 11.1.4 迁移学习有哪些常用概念 11.1.5 迁移学习与传统机器学习有什么区别 11.1.6 迁移学习的核心及度量准则 11.1.7 迁移学习与其他概念的区别 11.1.8 什么…

服务器再升级!64线程服务器震撼上线,全新渲染体验等你来解锁

秉承着 “科技赋能创意,连接创造价值”的使命, 经过精心的策划和筹备, 蓝海创意云 64线程服务器, 以全新的面貌,优惠的价格, 与大家见面了! 诚邀您一起,解锁全新的渲染体验&am…

《软件定义安全》之八:软件定义安全案例

第8章 软件定义安全案例 1.国外案例 1.1 Fortinet:传统安全公司的软件定义方案 Fortinet的软件定义安全架构强调与数据中心的结合,旨在将安全转型为软件定义的模式,使安全运维能够与数据中心的其他部分一样灵活、弹性。在Fortinet看来&…

亿达四方:一站式SolidWorks代理服务,打造设计竞争力

在当今瞬息万变的设计与制造领域,高效、精准的3D设计软件已成为推动企业创新与发展的核心驱动力。作为业界知名的SolidWorks一站式代理服务商,亿达四方致力于为企业搭建从软件采购到技术应用的全方位桥梁,全面赋能设计团队,助力企…

stable-diffusion.cpp 文字生成图片

纯 C/C 中 [Stable Diffusion] 的推断 https://github.com/CompVis/stable-diffusion ## 特点 - 基于 [ggml](https://github.com/ggerganov/ggml) 的普通 C/C 实现,工作方式与 [llama.cpp](https://github.com/ggerganov/llam…

微信小程序请求request封装

公共基础路径封装 // config.js module.exports {// 测试BASE_URL: https://cloud.chejj.cn,// 正式// BASE_URL: https://cloud.mycjj.com };请求封装 // request.js import config from ../config/baseUrl// 请求未返回时的loading const showLoading () > wx.showLoadi…

蓝桥杯软件测试第十五届蓝桥杯模拟赛1期题目解析

PS 需要第十五界蓝桥杯模拟赛1期功能测试模板、单元测试被测代码、自动化测试被测代码请加🐧:1940787338 备注:15界蓝桥杯省赛软件测试模拟赛1期 题目1 功能测试用例1(测试用例)(15分) 【前期准备】 按步…

网页元素解析元素标签和style变更

前言 如何解析html标签&#xff1f; 如何给标签增加样式&#xff1f; <div class"related-tags"><span>相关主题推荐&#xff1a;</span>a<a hrefhttp://www.csdn.net/tag/标签 target"_blank">标签</a><a href"h…