0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

AI引擎架构和阵列编程要求

Xilinx赛灵思官微 来源:Xilinx赛灵思官微 作者:Xilinx赛灵思官微 2022-12-08 09:18 次阅读

Versal AI Core 系列可借助 AI 引擎提供突破性的 AI 推断加速。此系列应用范围广泛,包括用于云端动态工作负载以及超高带宽网络,同时还可提供高级安全性功能。AI 和数据科学 家以及软硬件开发者均可充分利用高计算密度的优势来加速提升任何应用的性能。

AI 引擎是超长指令字 (VLIW) 处理器阵列,具有高度优化的单指令流多数据流 (SIMD) 矢量单元,专用于各种计算密集 型应用,尤其是数字信号处理 (DSP)、5G 无线应用和人工智能 (AI) 技术(如机器学习 (ML))等。同时,AI 引擎还是硬化的块,可提供多级并行处理能力,包括指令级并行处理和数据级并行处理。

本指南阐述了对 AI 引擎 graph 应用进行编译与仿真、使用 Vitis 工具流程来集成应用、使用 Vitis IDE、调试 AI 引擎应用、映射器/布线器方法论、AI 引擎硬件剖析和调试方法论等内容。

本文选取 AI 引擎架构概述部分。

AI 引擎阵列编程要求充分理解要实现的算法、AI 引擎的功能以及各功能单元之间的整体数据流。AI 引擎阵列支持三种 级别的并行度:

SIMD:通过矢量寄存器,允许并行计算多个元素。

指令级别:通过 VLIW 架构,允许在单个时钟周期内执行多项指令。

多核:通过 AI 引擎阵列,即可在其中并行执行数百个 AI 引擎。

虽然对于 AI 引擎而言,大部分标准 C 语言代码均可编译,但代码可能需要大幅重构才能在 AI 引擎阵列上实现最优性能。AI 引擎的优势在于,它能够在每个时钟周期内执行矢量 MAC 运算、为下一项运算加载 2 个 256 位矢量、存储来自上一项运算的单个 256 位矢量并递增一个指针或执行另一次标量运算。AI 引擎编译器不会执行任何自动矢量化或基于编译指示的矢量化。代码必须重写后才能使用 SIMD 内部数据类型(例如,v8int32)和矢量内部函数(例如, mac(…)),而这些都必须在单个流水打拍循环内执行,才能达成最优性能。32 位标量 RISC 处理器具有一个 ALU、 部分非线性函数和数据类型转换。每个 AI 引擎所能访问的存储器量是有限的,这表示大型数据集需要分区。

AI 引擎内核即 AI 引擎上运行的函数,这些函数构成数据流 graph 规范的基本构建块。数据流 graph 是 Kahn 进程网络,具有确定性行为,不依赖于各种计算延迟或通信延迟。AI 引擎内核声明为空的 C/C++ 函数,通过提取窗口实参或串流实参来建立 graph 连接。内核还可包含静态数据和运行时参数实参,包括异步实参或触发实参。每个内核都应在其自己的源文件内定义。

为了达成总体系统性能,必须广泛阅读了解有关架构、分区、AI 引擎数据流 graph 生成和数据流连接最优化等方面的 知识,积累相关经验。

AMD 赛灵思提供了 DSP 和通信库,其中包含经最优化的代码,可用于 AI 引擎,应尽可能多加利用。其中提供的源代码也提供了强大的资源,供用户学习有关 AI 引擎内核编码的信息

AI 引擎组件

AI 引擎阵列由二维 AI 引擎拼块 (tile) 阵列构成,其中每个 AI 引擎拼块均包含一个 AI 引擎、存储器模块和拼块互连模 块。

AI 引擎:每个 AI 引擎都是一个超长指令字 (VLIW) 处理器,其中包含一个标量单元、一个矢量单元、两个加载单元和一个存储单元。

AI 引擎拼块:每个 AI 引擎拼块都包含一个 AI 引擎、一个本地存储器模块,搭配多条通信路径以促进拼块间的数据交换。

AI 引擎阵列:AI 引擎阵列是指 AI 引擎拼块的完整二维阵列。

AI 引擎程序:AI 引擎程序包含以 C/C++ 编写的数据流 graph 规范。该程序是使用 AI 引擎工具链来编译并执行的。

AI 引擎内核:内核是使用 AI 引擎矢量数据类型和内部函数以 C/C++ 编写的。这些函数均为 AI 引擎上运行的计算函数。内核构成数据流 graph 规范的基本构建块。

ADF graph:ADF graph 是具有单个 AI 引擎内核或多个 AI 引擎内核(以数据串流连接)的网络。它凭借如下特定构造来与可编程逻辑、全局存储器和处理器系统进行交互,此类构造有:PLIO(graph 编程中的端口属性,用于建立往来可编程逻辑的串流连接)、GMIO(graph 编程中的端口属性,用于建立往来全局存储器的外部存储器映射连接)和 RTP。

工具

Vitis 集成设计环境

Vitis 集成设计环境 (IDE) 可用于为赛灵思器件执行系统编程,包括含多个 AI 引擎内核的 Versal 器件。在此工具中,有下列功能特性可用。

最优化 C/C++ 编译器,用于编译内核与 graph 代码,执行所有必要的连接、布局和检查以确保器件上的各项功能正常工作。

周期近似的仿真器、加速的功能仿真器和剖析工具。

调试环境,可在仿真环境和硬件环境下使用。

Vitis 命令行工具

命令行工具可用于构建、仿真以及生成输出文件和报告。捕获由 IDE 生成的命令行输出后,有助于后续集成到客户构建环境内。Vitis 分析器 IDE 可用于查看报告并分析由命令行工具生成的输出文件和报告。

Vitis Model Composer

Vitis Model Composer 可提供基于 MATLABSimulink 的高层次图形输入环境,用于包含 AI 引擎、HLS 和 RTL 组件的设计仿真与代码生成。

将 AI 引擎内核、graph、HLS 内核与基于 RTL 的块导入同一个 Simulink 设计,用于快速协同仿真。

从 Simulink 库浏览器中,将经过最优化的 AI 引擎函数(例如,有限脉冲响应 (FIR) 和 FFT 滤波器)拖放到设计中。

使用 MATLAB 或 Simulink 中生成的激励来验证设计、直观显示结果并将结果与黄金参考结果进行比较。生成 graph 代码并测试矢量。

汇编导入的代码和块库代码以供馈送到下游工具中。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • AI
    AI
    +关注

    关注

    87

    文章

    29962

    浏览量

    268268
  • 引擎
    +关注

    关注

    1

    文章

    358

    浏览量

    22522

原文标题:AI 引擎工具和流程用户指南

文章出处:【微信号:赛灵思,微信公众号:Xilinx赛灵思官微】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    【「大模型时代的基础架构」阅读体验】+ 未知领域的感受

    算法的引擎GPU、GPU硬件架构剖析、GPU服务器的设计与实现、GPU集群的网络设计与实现、GPU板卡级算力调度技术、基于云平台的GPU集群的管理与运营等等: 翻阅部分章节,从GPU板卡到GPU服务器
    发表于 10-08 10:40

    AI引擎机器学习阵列指南

    AMD Versal AI Core 系列和 Versal AI Edge 系列旨在凭借 AI 引擎机器学习 ( ML ) 架构来提供突破性
    的头像 发表于 09-18 09:16 296次阅读
    <b class='flag-5'>AI</b><b class='flag-5'>引擎</b>机器学习<b class='flag-5'>阵列</b>指南

    ai服务器是什么架构类型

    AI服务器,即人工智能服务器,是专门为人工智能应用设计的高性能计算服务器。AI服务器的架构类型有很多种,以下是一些常见的架构类型: CPU架构
    的头像 发表于 07-02 09:51 904次阅读

    蚂蚁数科发布新一代融合AI风控引擎“AIR Engine”

    在数字化浪潮的推动下,金融科技领域的风控技术正迎来新的突破。近日,蚂蚁数科旗下的蚁盾风控团队正式发布了新一代融合AI风控引擎——“AIR Engine(AIFUSERiskEngine)”,该引擎在原有的决策式
    的头像 发表于 06-26 18:20 1192次阅读

    什么是现场可编程逻辑阵列?它有哪些特点和应用?

    在电子工程领域,现场可编程逻辑阵列(Field Programmable Logic Array,简称FPLA)是一种具有强大灵活性和可编程性的半导体器件。它属于可编程逻辑器件(PLD)的一种,通过
    的头像 发表于 05-23 16:25 776次阅读

    FX3系列编程手册应用指令说明书

    电子发烧友网站提供《FX3系列编程手册应用指令说明书.pdf》资料免费下载
    发表于 05-11 09:33 0次下载

    直流可编程电子负载IT8500系列编程与语法指南

    电子发烧友网站提供《直流可编程电子负载IT8500系列编程与语法指南.pdf》资料免费下载
    发表于 04-14 09:56 2次下载

    现场可编程阵列简介

    现场可编程阵列(FPGA)是一种由半导体材料制成的集成电路,用户购买后可以重新编程或配置,以满足特定功能或应用需求。其控制程序存储在内存中,加电后,程序自动装载到芯片执行。FPGA的基本结构包括
    的头像 发表于 03-27 14:48 503次阅读

    现场可编程阵列设计流程

    现场可编程阵列(FPGA)设计流程是一个综合性的过程,它涵盖了从需求分析到最终实现的各个环节。下面将详细介绍FPGA设计流程的主要步骤。
    的头像 发表于 03-16 16:38 1916次阅读

    现场可编程阵列是什么

    现场可编程阵列(Field Programmable Gate Array,简称FPGA)是一种超大规模可编程逻辑器件,由可编程逻辑资源、可编程
    的头像 发表于 03-16 16:38 2396次阅读

    fpga芯片架构介绍

    FPGA(现场可编程阵列)芯片架构是一种高度灵活和可编程的集成电路架构,它以其独特的结构和功能,在现代电子系统中扮演着至关重要的角色。FP
    的头像 发表于 03-15 14:56 682次阅读

    fpga是什么架构

    FPGA(现场可编程阵列)的架构主要由可配置逻辑模块(CLB)、输入/输出模块(IOB)以及可编程互连资源组成。
    的头像 发表于 03-14 17:05 797次阅读

    AMD发布适用于Linux系统的XDNA驱动,助力APU AI引擎

    AMD于去年推出了Ryzen 7040“凤凰城”系列APU,其中首次搭载了基于Xilinx IP的XDNA架构AI引擎。借助此引擎,PyTorch和TensorFlow等机器学习框架的
    的头像 发表于 01-30 14:04 869次阅读

    AI引擎内核与计算图编程指南

    电子发烧友网站提供《AI引擎内核与计算图编程指南.pdf》资料免费下载
    发表于 01-03 10:50 0次下载
    <b class='flag-5'>AI</b><b class='flag-5'>引擎</b>内核与计算图<b class='flag-5'>编程</b>指南

    FPGA现场可编程阵列的综合指南

    现场可编程阵列 (FPGA) 是可以在制造后进行编程和重新编程以实现数字逻辑功能的半导体器件。
    的头像 发表于 12-07 17:15 656次阅读
    FPGA现场可<b class='flag-5'>编程</b>门<b class='flag-5'>阵列</b>的综合指南