Versal™ AI 引擎 (AIE) 阵列的最新 Vitis™ 库功能
Versal AI Core 和 AI Edge 系列的设计流程增强
为 Vivado™ 环境的 Vitis 环境导入提供支持
DSP 库 — FIR 过滤器
求解器库
备注:
* 截至 2023 年 2 月 12 日,停止在所有 1208 个 Vitis L1 库 C 代码设计上执行基准测试。所有设计都使用一个支持 2P Intel Xeon E5-2690 CPU 的系统运行,该 CPU 支持 CentOS Linux,启用了 SMT 并禁用了 Turbo Boost。预计硬件配置不会影响软件测试结果。结果可能会因软件及固件设置和配置而异 — VGL-03
Versal™ AI 引擎 (AIE) 阵列的最新 Vitis™ 库功能
Versal AI Core 和 AI Edge 系列的设计流程增强
DSP 库功能
求解器库函数
视觉库功能
超声波库函数
Vitis 环境 2022.2 全新仿真选项:处理器系统 x86 仿真和 AI 引擎 x86 仿真:可编程逻辑仿真可使用 x86 仿真器执行。
Versal AI 引擎设计的特点
一般功能
面向 Versal™ ACAP 和 AI 引擎的 Vitis™ 流程提升
面向 DC 和 Vitis HLS 的 Vitis
注:Vitis 加速库现已提供,可以单独下载。它们可以从 GitHub 中下载,也可以直接从 Vitis IDE 中下载。
库 | 2021.1 | 2021.2 | 21.2 版的新增功能 |
---|---|---|---|
xf_blas | 167 | 167 | 0 |
xf_codec | 3 | 3 | 0 |
xf_DataAnalytics | 33 | 36 | 3 |
xf_database | 62 | 65 | 3 |
xf_compression | 78 | 93 | 15 |
xf_dsp | 94 | 96 | 2 |
xf_graph | 53 | 59 | 6 |
xf_hpc | 37 | 37 | 0 |
xf_fintech | 116 | 116 | 0 |
xf_security | 135 | 140 | 5 |
xf_solver | 11 | 11 | 0 |
xf_sparse | 11 | 11 | 0 |
xf_utils_hw | 55 | 57 | 2 |
xf_opencv | 147 | 150 | 3 |
总共 | 1002 | 1041 | 39 |
注:对于视觉,只需计算 L*/tests 中的子文件夹数量,因为每个 API 都针对不同的类型提供多项测试
可编程逻辑 (PL)
全新功能 | 种类 | 客户/战略 | 行业 | 说明 |
---|---|---|---|---|
RGB-IR | ISP | Seeing Machines | 汽车、ISM | •支持 4x4 RGB-IR 去马赛克 •主要用于舱内监控系统 •微光监控摄像头 |
Mono (CCCC) | ISP | Strategic | 汽车、ISM、A&D | •机器视觉 •低光应用 |
全局色调映射 (GTM) | ISP | Strategic | 汽车、ISM、A&D | •扩大了动态范围,提高了对比度 •与本地色调映射 (LTM) 相比,是一个成本更低的版本 |
密度光流算法 TV-L1 | CV | NTT | ISM | •改进了光流对光照、噪声及遮挡的稳定性 |
AI Engine (AIE)
全新功能 | 种类 | 客户/战略 | 行业 | 说明 |
---|---|---|---|---|
RGB-IR | ISP | Seeing Machines | 汽车、ISM | •支持 4x4 RGB-IR 去马赛克 •主要用于舱内监控系统 •微光监控摄像头 |
ML+X | ISP | Strategic | 汽车、ISM、A&D | •ML 干扰预处理 |
高斯金字塔 | CV | Strategic | 汽车、ISM、A&D | •多尺度图像处理的基础 |
方框滤波器 | CV | Strategic | 汽车、ISM、A&D | •流畅低通滤波器的基本知识 |
基于 Vitis 库的 Vitis 区块链解决方案
将 CSV 解析器 API 添加到库中
发布 KECCAK-256(散列函数)和 CRC32C(校验和函数)
为调试硬件问题添加了两个 Data-Mover 实现方案。
AI 引擎 API 将是 AI 引擎内核编程的主要方法
AI 引擎编译器优化选项
引入 --xlopt=2,以提高性能,默认情况下仍是 --xlopt=1
必须优化内核
2021.2 中支持自动推断五种编译指示
模型变化包括:
当前
GMIO gm0(“GMIO_In0”, 64, 1);
GMIO gm1(“GMIO_In1”, 64, 1);
…
GMIO gm7(“GMIO_In7”, 64, 1);
PLIO pl0(“PLIO_Out0”, plio_32_bits, “data/output0.txt”, 250.0);
PLIO pl1(“PLIO_Out1”, plio_32_bits, “data/output1.txt”, 250.0);
…
PLIO pl7(“PLIO_Out7”, plio_32_bits, “data/output7.txt”, 250.0);
simulation::platform<8,8> plat(&gm0, &gm1,…, &gm7, &pl0, &pl1,…, &pl7,);
subgraph g;
connect<> net0(plat.src[0], g.in[0]);
connect<> net1(plat.src[1], g.in[1]);
…
connect<> net7(plat.src[7], g.in[7]);
connect<> net8(g.out[0], plat.sink[0]);
connect<> net9(g.out[1], plat.sink[1]);
…
connect<> net15(g.out[7], plat.sink[7]);
其它方法
类型顶层图
{
input_gmio gm[8];
output_plio pl[8];
subgraph sg;
topgraph()
{
for (i=0; i<8; i++)
{
gm[i] = input_gmio::create(“GMIO_In”+std::to_string(i), 64, 1);
pl[i] = output_plio::create(“PLIO_Out”+std::to_string(i), plio_32_bits, “data/output”+std::to_string(i)+”.txt”, 250.0);
connect<>(gm[i].out[0], sg.in[i]);
connect<>(sg.out[i], pl[i].in[0]);
}
}
};
topgraph g;
能够在 ADF 图或约束文件中使用标记,以控制映射器和路由器
快照是包含与所有内核端口相关的注释和数据的文本文件
还包括所有平台端口
允许用户在不使用调试器和不需要检测内核代码的情况下检查内核端口上的数据流量
与 Valgrind 集成,以便进行内存访问冲突检查
锁死情况会导致仿真输出差,难以分析漏洞来源
X86 仿真跟踪选项允许仿真器为各种时间戳信息提供日志:
x86 仿真和 AI 引擎仿真的时间戳不同
在 C 语言综合报告中添加接口适配器报告
在综合报告中添加新章节,以显示编译指示列表和编译指示警告
函数调用图查看器有一些新特性
现已在仿真后提供一个新的时间轴跟踪查看器该查看器可显示设计的运行时概况,并允许用户保留在 Vitis HLS GUI 中。
AI 引擎应用仿真增强
支持 AI 引擎跟踪
为 AI 引擎应用提供软件仿真支持
采用 Verilog / System Verilog 支持外部流量生成器
为非 OpenCL 应用生成的通用配置文件摘要报告
将 OpenCL 命令添加到 PL 事件时间轴
在时间轴跟踪报告中扁平化信号层级
C / C++ API
enum class access_mode:uint8_t { exclusive = 0;primary = 1, shared = 2 };
enum class access_mode:uint8_t { exclusive = 0;primary = 1, shared = 2 };none = 3 };
访问 Alveo 卡的最新 Vitis 目标平台:
参阅 UG1120 — Alveo 数据中心加速卡平台用户指南
与 2021.1 相比,缩短了时间(例如,以下数字主要针对 200 MHz TX 链):
注:Vitis 加速库现已提供,可以单独下载。它们可以从 GitHub 中下载,也可以直接从 Vitis IDE 中下载。
FIR 滤波器
功能 |
命名空间 |
单速率、非对称 |
FIR 滤波器 |
单速率、对称 |
dsplib::fir::sr_sym::fir_sr_sym_graph |
插值不对称 |
dsplib::fir::interpolate_asym::fir_interpolate_asym_graph |
抽取、半带 |
dsplib::fir::decimate_hb::fir_decimate_hb_graph |
插值、半带 |
dsplib::fir::interpolate_hb::fir_interpolate_hb_graph |
抽取、不对称 |
dsplib::fir::decimate_asym::fir_decimate_asym_graph |
插值、分数、不对称 |
dsplib::fir::interpolate_fract_asym:: fir_interpolate_fract_asym_graph |
抽取、对称 |
dsplib::fir::decimate_sym::fir_decimate_sym_graph |
FFT/iFFT - DSPLib 包含一种 FFT/iFFT 解决方案。这是一个单通道、单核时间抽取 (DIT),具有可配置点大小、复杂数据类型、级联长度和 FFT/iFFT 功能的实现。
功能 |
命名空间 |
单通道 FFT/iFFT |
dsplib::fft::fft_ifft_dit_1ch_graph |
矩阵乘法 (GeMM) - DSPLib 包含一个矩阵乘法/GEMM(通用矩阵乘法)解决方案。这支持 2 个矩阵 A 和 B 的矩阵乘法,可配置的输入数据类型可派生出输出数据类型。
功能 |
命名空间 |
Matrix Mult / GeMM |
dsplib::blas::matrix_mult::matrix_mult_graph |
小部件实用程序 — 这些小部件不仅支持窗口与数据流之间的转换(在 DSPLib 函数输入端)和需要时数据流与窗口之间的转换(在 DSPLib 函数的输出端),而且还支持用于在真实数据类型和复杂数据类型之间进行转换的其它小部件。
功能 |
命名空间 |
数据流至窗口/窗口至数据流 |
dsplib::widget::api_cast::widget_api_cast_graph |
真实至复杂/复杂至真实 |
dsplib:widget::real2complex::widget_real2complex_graph |
Vitis HPC 库版本引入了 HLS 原语、预构建内核以及用于 FPGA 上 HPC 应用的软件 API。这些应用包括:
2D 声学逆时偏移 (RTM) 时域有限差分 (FDTD) 算法,包括前向内核和后向内核
3D 声学逆时偏移 (RTM) 时域有限差分 (FDTD) 算法,包括前向内核
多层感知器 (MLP) 组件:激活函数和完全连接的网络内核
稠密矩阵和稀疏矩阵的预条件共轭梯度 (PCG) 求解器
提供的功能
Filter2D
absdiff
accumulate
accumulate_weighted
addweighted
blobFromImage
colorconversion
convertscaleabs
erode
gaincontrol
gaussian
gaussian
pixelwise_mul
threshold
zero
xfcvDataMovers:实用程序数据转移,以便轻松平铺高分辨率图像并将其传输至 AI 引擎内核的本地内存。两种版本
与库有关的变化
2021.1 版提供了二元语法文本分析:
两克谓词 (TGP) 是搜索具有两个字符的反索引。对于建立了反向索引的数据集,它可以在反向索引的每条记录中找到匹配的 id。
在 2021.1 版中,GQE 获得了以下特性抢先体验支持
64 位连接支持:现在 gqeJoin 内核及其配套 gqePart 内核已扩展至 64 位密钥及有效负载,可支持更大规模的数据。
支持最初的布隆过滤器:gqeJoin 内核现在提供一种执行布隆过滤器探测的模式。 这可提高某些多节点流程的效率,在这些流程中,一定要在早期阶段最大限度减少数据量,这一点非常重要。
这两个特性现在均可作为 L3 纯软件 API 提供,请查看相应的 L3 测试案例。
RT 管理内核是默认流程。
支持加密的 AIE 源文件作为输入
AIE 编译器可以接受加密的 AIE 源文件,v++ 支持其余流程。
Vitis Analyzer 显示了一个关键的时序路径。
Vitis 分析器将显示简化版 Vivado GUI 时序报告,无需打开 Vivado 项目或网表。这允许用户快速导航至失败的时序路径。
Vitis Analyzer 多种策略支持
多种策略运行的结果可以在 Vitis 分析器中查看。
减少大型应用的内存和加载时间
全新配置文件工具使用更少的资源来处理大型 csv 文件,这可减少加载时间以及崩溃问题的发生。
PL 连续跟踪卸载改进
使用 DDR 或 HBM 作为内存资源来存储跟踪数据
循环缓冲区支持大型数据卸载
跟踪缓冲区大小和卸载间隔可以在 xrt.ini 中设置
提高了 AIE 设计跟踪报告的可视化
将显示所有 AIE 输入(窗口、数据流和级联数据流等)
支持所有 IO 数据类型
在china.xilinx.com/alveo上访问 Alveo 加速卡的最新 Vitis 目标平台。 请参考加速器卡(您希望在该卡上部署应用)的入门部分。
请查看 { UG1120 - Alveo 数据中心加速卡平台用户指南,了解更多详情,并随时了解最新 Vitis 目标平台发布的最新信息。
全新平台
注:Vitis 加速库现已提供,可以单独下载。它们可以从 GitHub 中下载,也可以直接从 Vitis IDE 中下载。
全新功能与特性
库基础架构与其它增强功能
在全新 AMD 应用商店中推出随时可用于评估的应用
使用 Vitis 视觉库开发的 FPGA 加速应用现已在全新的AMD 应用商店中推出,作为容器,可用于在 Nimbix 云端或本地的 Alveo 加速卡上轻松评估和部署
Versal 的专有特性
Versal 的专有特性
Versal 的专有特性
Versal 的专有特性
Versal 的专有特性
注:Xilinx 运行时库 (XRT) 现已提供,可单独下载。请参考启动设计信息,查看下载和安装说明。
Versal 的专有特性
从 Alveo 软件包下载选项卡访问 Alveo 加速卡的最新 Vitis 目标平台
请查看 UG1120 — Alveo 数据中心加速卡平台用户指南,了解更多详情,并随时了解最新 Vitis 目标平台版本的最新动态,因为其即将发布
U200/U250 XDMA 平台
Shell 升级 DFX — 2RP(2 个重新配置分区)
AXI Slave Bridge
数据保留 — DDR4 自刷新
注:嵌入式平台的 Vitis 目标平台(包括预先构建的 linux 内核、根文件系统和 sysroot)现已提供,可在 Vitis 嵌入式平台选项卡上单独下载
VCK190 平台有灵活的 DDR + LPDDR 内存子系统,支持加速内核的 63 种中断。它可以与 Vitis 内核开发套件一起使用,满足应用加速与嵌入式处理器软件开发需求,如 Versal AI 引擎程序员指南 (UG1076) 所述。该平台支持各种设计开发,包括: