Versal 自适应 SoC AI 引擎入门

全文发布于纷传:芯语芯愿

Versal 自适应 SoC 简介

Versal 自适应 SoC 是基于 TSMC 7 nm FinFET 工艺技术构建的最新一代 AMD 器件。它利用高带宽片上网络 (NoC) 将代表处理器系统 (PS) 的标量引擎、代表可编程逻辑 (PL) 的自适应引擎智能引擎有机结合在一起。

本文将着重介绍智能引擎中所包含的 AI 引擎。

AMD AI 引擎简介

在部分 AMD Versal 自适应 SOC 中包含了 AI 引擎。这些 AI 引擎可排列组合为一组与存储器、数据流和级联接口相连的二维 AI 引擎拼块阵列。在当前自适应 SOC 器件(例如,VC1902 器件)上,此阵列最多可包含 400 个拼块。此阵列中还包含 AI 引擎接口(位于最后一行),以便与阵列中的其他器件(PS、PL 和 NoC)进行交互。

AI 引擎接口包含 PL 和 NoC 接口拼块以及配置拼块。从 PL 到 AI 引擎阵列的连接是使用 AXI4-Stream 接口通过 PL 和 NoC 接口拼块来实现的。从 NoC 到 AI 引擎阵列的连接是使用 AXI4 存储器映射接口通过 NoC 接口拼块来实现的。

有趣的是,从中可以看到,只有在 NoC 到 AI 引擎拼块之间才存在 AXI4 存储器映射直接通信通道,在 AI 引擎拼块到 NoC 之间却并不存在。

注:PL 和 NoC 接口拼块的精确数量因器件而异。《Versal 架构和产品数据手册:简介》(DS950) 中罗列了 AI 引擎阵列的大小。

AI 引擎拼块架构

现在,我们来详细了解下此阵列,看看 AI 引擎拼块的内部。

每个 AI 引擎拼块都包含:

  • 1 个拼块互连模块,用于处理 AXI4-Stream 和存储器映射 AXI4 输入/输出
  • 1 个存储器模块,其中包含 32 KB 数据存储器,细分为 8 个存储体、1 个存储器接口、DMA 和各种锁定。
  • 1 个 AI 引擎

AI 引擎可访问全部 4 个方向中的多达 4 个存储器模块(作为 1 个连续存储器块)。这意味着除了拼块本地的存储器,AI 引擎还可以访问 3 个相邻拼块的本地存储器(除非拼块位于阵列边缘)。

  • 北侧存储器模块
  • 南侧存储器模块
  • 东侧或西侧存储器模块(取决于 AI 引擎和存储器模块所在的行和相对布局)。

AI 引擎架构

AI 引擎属于高度优化的处理器,包含下列主要特色:

  • 32 位标量 RISC 处理器(名为 Scalar Unit,即标量单元)
  • 1 个 512b SIMD 矢量单元(可提供矢量定点/整数单元)和 1 个单精度浮点 (SPFP) 矢量单元
  • 3 个地址生成器单元 (AGU)
  • 超长指令字 (VLIW) 功能
  • 3 个数据存储器端口(2 个负载端口,1 个存储端口)
  • 直接流传输接口(2 个输入流,2 个输出流)

AI 引擎阵列编程

AI 引擎拼块按 10 或 100 为单位组成阵列。创建嵌入多项指令的单一程序用于指定并行性将是一项冗长且近乎不可能的任务。因此 AI 引擎阵列模型编程与 Kahn 处理网络 (Kahn Process Networks) 之间的共通之处在于自主计算进程通过通信边缘实现彼此互连,从而生成处理网络。(请参阅 https://perso.ensta-paris.fr/~chapoutot/various/kahn_networks.pdf

在 AI 引擎框架中,计算图 (graph) 边缘是缓存数据流,而计算进程则被称为内核。在计算图中,内核经过例化,彼此相连并连接到设计其余部分(NoC 或 PL)。

编程流程分为 2 个阶段:

单内核编程

内核用于描述特定计算进程。每个内核都将在单一 AI 引擎拼块上运行。但请注意,多个内核可在同一个 AI 引擎拼块上运行,并共享处理时间。

任意 C/C++ 代码均可用于对 AI 引擎进行编程。标量处理器将处理大部分代码。如果您的目标是设计高性能内核,那么应考虑采用矢量处理器,它使用称为内部函数的专用函数。这些函数专用于 AI 引擎的矢量处理器,支持您从 AI 引擎中发掘出巨大的处理性能。

AMD 将提供预构建内核(包含在库内),以供用户在其定制计算图中使用。

  1. 计算图编程

AMD 将提供 C++ 框架以从内核创建计算图。此框架包含计算图节点和连接声明。这些节点可包含在 AI 引擎阵列内或可编程逻辑(HLS 内核)中。为了完全掌握内核位置,将有一系列方法可用来约束布局(内核、缓存、系统存储器等)。计算图将例化并使用缓存和数据流将内核连接在一起。它还将描述 AI 引擎阵列与其他自适应 SOC 器件(PL 或 DDR)之间的双向往来数据传输。


AMD 将提供预构建计算图(包含在库内),以供用户在其应用中使用。

在运行时以及仿真期间,AI 引擎应用由 PS 进行控制。

AMD 将根据应用的操作系统提供多种 API,如下所述。

  • Xilinx Run Time (XRT) 和 OpenCL,适用于 Linux 应用
  • 裸机驱动程序

参考资料和附加信息

如需了解有关 Versal 自适应 SOC 的更多信息,请访问:http://china.xilinx.com/versal

如需了解有关 Versal AI 引擎的更多信息,请参阅:

请注意,Versal 自适应 SoC AI 引擎仍处于早期访问阶段,直至 2020.2 版本为止。除 AM009 中现有信息外,尚未提供任何其他信息。

AIE 编程工具同样处于早期访问阶段。这些工具将从 2020.2 版本开始可供公开访问。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值