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

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

3天内不再提示

如何基于Kahn处理网络定义AI引擎图形编程模型

Xilinx赛灵思官微 来源:Xilinx赛灵思官微 2025-04-17 11:31 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

本白皮书探讨了如何基于 Kahn 处理网络( KPN )定义 AI 引擎图形编程模型。KPN 模型有助于实现数据流并行化,进而提高系统的整体性能。AI 引擎阵列编程需要深入了解待实现的算法、AI 引擎的功能以及各个功能单元之间的整体数据流。AI 引擎内核是在 AI 引擎上运行的功能,并构成了数据流图规范的基本构建块。数据流图是具有确定性行为的 KPN。本白皮书还包括一个示例设计,展示了具有四个 AI 引擎内核的数据流图,而这些内核构成了数据流图规范的基本构建块。此外,该示例还演示了设计中的数据流停滞,并提供了解决方案。

KPN 被广泛用作分布式编程模型,能够在各种可能的情况下并行运行任务。本白皮书介绍了 AI引擎如何使用 KPN 模型进行图形编程。基于不同的目标架构,如中央处理器CPU )、图形处理单元( GPU )、FPGA、AI 引擎编程等,计算模型的种类也多种多样。下图显示了按照序列模型、并发模型和功能模型分类的计算模型。

bf228ef0-1a56-11f0-9310-92fbcf53809c.jpg

在序列模型中,任务是一个接一个地或按顺序执行。在并发模型中,任务是尽可能地并行执行。在功能模型中,任务执行依赖于实现方案,例如针对特定的架构(如 GPU 或 FPGA 中的可编程逻辑)。本白皮书重点探讨 AI 引擎编程的计算模型。该模型可用于指导程序员编写针对 AI 引擎架构的程序,其目标是通过了解其编程模型来充分发挥 AI 引擎的算力。随着计算任务的复杂性日益增加,实践证明,标准处理器已不足以有效地执行这些任务。为了应对这种情况,CPU、GPU 以及专用处理器等各种计算架构经过演进发展,已经能够解决这个不足之处。

Kahn 处理网络

KPN 是由 Gilles Kahn 在 1974 年提出的一种分布式计算模型,其作为针对并行编程开发的通用方案,为数据流模型奠定了重要基础。在 KPN 中,组件表示函数(或内核),连接表示数据流,如下图所示。

bf38e61e-1a56-11f0-9310-92fbcf53809c.jpg

内核(函数 3 )从其它两个内核(函数 1 和函数 2 )读取数据。如果其中的任何一个内核都没有可用的数据,那么读取会停止该进程,从而阻塞内核(函数 3 )。只有当足够多的数据(令牌)可用时,该进程才能继续。将数据(函数 1 和函数 2 )写入进程(函数 3 )是非阻塞的,这意味着写入进程总是成功的,并且不会出现停滞。由于这些特点,数据流网络在本质上是具有确定性的。这是通过先进先出( FIFO )通道进行的确定性进程通信。经过验证,该模型可用于嵌入式系统信号处理系统、高性能计算、数据流编程语言和其它计算任务的建模。

信号处理系统使用 KPN 进行建模,其中通过以顺序或并行执行形式(基于给定任务)来处理无限数据流。

AI 引擎——自适应数据流编程

本节介绍了数据流编程如何适用于 AI 引擎。节点(或角色)表示某种类型的操作。节点或内核在 AI 引擎中实现,其可执行操作,但并不严格地作为单个运算符,如图 8:数据流 编程中所示。AI 引擎可以包含许多能够执行多种操作的内核。

KPN 边缘表示数据往返于角色或端口的路径。边缘被实现为 I/O 流、级联 I/O 流、流或直接内存访问( DMA )FIFO,以及 AI 引擎块架构中的本地块内存缓冲区。

在 AI 引擎设计中,KPN 节点( AI 引擎内核)之间的连接通过 C++ 自适应数据流( ADF )图程序来实现。这段代码可建立 KPN 节点( AI 引擎内核)之间的数据流图连接,并确定这些节点所需的任何大内存缓冲区以及该图形的任何 I/O。

执行计划由该图形以及输入数据和输出资源的可用性决定:

没有指令指针来触发 AI 引擎。只要所有输入数据可用,每个块都会触发并执行其内核函数,就像在 KPN 中一样。

基于器件,AI 引擎提供众多可用的执行单元(按 10 或 100 为单位)。根据数据流图中的互联特性,这些引擎的执行方式可能包括部分、无、或者全部并行执行。

所有 AI 引擎都在计算或等待输入数据,就像在 KPN 中一样。

AI 引擎编译器接受输入(数据流图和内核),并生成用于在 AI 引擎器件上运行的可执行应用。AI 引擎编译器对锁定、内存缓冲区、DMA 通道和描述符等必要资源进行分配,并生成用于将图形映射到 AI 引擎阵列的路由信息。它为每个核综合一个主程序,用于调度该核上的所有内核,并在缓冲区之间实现必要的锁定机制和数据复制。

如下图所示,函数 1 的作用是为每个 B 产生两个 A。平均而言,函数 2 消耗的 A 是其消耗的 B 的两倍。它可能并不总是 A 和 B,可能在一段时间内是 A,在另一段时间内是 B。为了处理这种情况,需要积累数据/令牌以便以后处理。在某些情况下,如果积累的周期较长,则可能导致系统停滞并影响性能。具体难度根据设计要求而异。克服这些挑战的方法包括通过添加 FIFO 来积累数据,通过使用多个 AI 引擎和其它优化技术的方式对内核进行编程,以提高性能。了解死锁问题并使用适当的技术来解决它至关重要。

bf4b2e28-1a56-11f0-9310-92fbcf53809c.jpg

下表列出了 KPN 和 AI 引擎术语之间的比较

表 1:KPN 和 AI 引擎术语

bf8023ee-1a56-11f0-9310-92fbcf53809c.jpg

在某些情况下,对于特定算法而言,数据流编程具有一定挑战性,因为调度可能会导致进程停滞。

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

    关注

    68

    文章

    20152

    浏览量

    247326
  • gpu
    gpu
    +关注

    关注

    28

    文章

    5100

    浏览量

    134478
  • AI
    AI
    +关注

    关注

    89

    文章

    38171

    浏览量

    296887
  • 模型
    +关注

    关注

    1

    文章

    3649

    浏览量

    51719
  • 图形编程
    +关注

    关注

    1

    文章

    7

    浏览量

    8611

原文标题:白皮书|AI 引擎编程:Kahn 处理网络的演进发展

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    赛灵思分享:智能引擎中所的AI引擎技术分析

    平台 (ACAP) 是基于 TSMC 7nm FinFET 工艺技术构建的最新一代赛灵思器件。它利用高带宽片上网络 (NoC) 将代表处理器系统 (PS) 的标量引擎、代表可编程逻辑
    的头像 发表于 10-11 11:14 3763次阅读

    信而泰×DeepSeek:AI推理引擎驱动网络智能诊断迈向 “自愈”时代

    DeepSeek-R1:强大的AI推理引擎底座DeepSeek是由杭州深度求索人工智能基础技术研究有限公司开发的新一代AI模型。其核心优势在于强大的推理
    发表于 07-16 15:29

    Microwindows图形编程机制

    相关的硬件设备的访问;中间层是一个精简的图形引擎,提供了划线、区域填充、多边形等多种基本的图形功能;最上层为图形应用程序提供了丰富的编程接口
    发表于 06-01 09:39

    Firefly支持AI引擎Tengine,性能提升,轻松搭建AI计算框架

    `Tengine 是OPEN AI LAB 为嵌入式设备开发的一个轻量级、高性能并且模块化的引擎。基于ARM平台高效的计算库实现,针对特定硬件平台的性能优化,吸取已有AI计算框架的优点,设计全新
    发表于 08-13 15:58

    Qualcomm最新推出的神经处理引擎

    最近发现Qualcomm推出了一款神经处理引擎,因为好奇就去了解了一下。 这个比较强势,它可以不依赖云而是依赖平台的异构计算能力在设备上就可以直接跑被训练过的神经网络。这个Neural
    发表于 09-27 09:58

    嵌入式AI在linux芯片平台上的部署方案分享

    ONNX简述ONNX是一种AI神经网络模型的通用中间文件保存方法(可以理解成AI世界的XML),各种AI框架,Inference
    发表于 12-14 06:18

    嵌入式边缘AI应用开发指南

    保驾护航。下面让我们来了解如何不借助手动工具或手动编程来选择模型、随时随地训练模型并将其无缝部署到TI处理器上,从而实现硬件加速推理。图1: 边缘A
    发表于 11-03 06:53

    HarmonyOS:使用MindSpore Lite引擎进行模型推理

    场景介绍 MindSpore Lite 是一款 AI 引擎,它提供了面向不同硬件设备 AI 模型推理的功能,目前已经在图像分类、目标识别、人脸识别、文字识别等应用中广泛使用。 本文介绍
    发表于 12-14 11:41

    图形处理器的流执行模型

    图形处理器极高的流计算能力使其成为实现实时流应用的有效方案。该文抽象出图形处理器的流执行模型,描述图形
    发表于 04-11 09:00 28次下载

    嵌入式Linux平台部署AI神经网络模型Inference的方案

    ONNX简述ONNX是一种AI神经网络模型的通用中间文件保存方法(可以理解成AI世界的XML),各种AI框架,Inference
    发表于 11-02 10:21 14次下载
    嵌入式Linux平台部署<b class='flag-5'>AI</b>神经<b class='flag-5'>网络</b><b class='flag-5'>模型</b>Inference的方案

    AI引擎编程:卡恩进程网络演进

    电子发烧友网站提供《AI引擎编程:卡恩进程网络演进.pdf》资料免费下载
    发表于 09-13 17:24 0次下载
    <b class='flag-5'>AI</b><b class='flag-5'>引擎</b><b class='flag-5'>编程</b>:卡恩进程<b class='flag-5'>网络</b>演进

    Versal ACAP AI引擎编程环境用户指南

    电子发烧友网站提供《Versal ACAP AI引擎编程环境用户指南.pdf》资料免费下载
    发表于 09-14 10:10 0次下载
    Versal ACAP <b class='flag-5'>AI</b><b class='flag-5'>引擎</b><b class='flag-5'>编程</b>环境用户指南

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

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

    什么是AI查询引擎

    AI 查询引擎可高效处理、存储和检索大量数据,以增强生成式 AI 模型的输入。
    的头像 发表于 01-10 10:00 2409次阅读

    Imagination 宣布推出 E-Series GPU:开启Edge AI 与图形处理新时代

    E-Series带来跨越式性能提升,使GPU成为边缘设备图形AI的核心加速引擎2025年5月8日——ImaginationTechnologies推出
    的头像 发表于 05-08 08:02 826次阅读
    Imagination 宣布推出 E-Series GPU:开启Edge <b class='flag-5'>AI</b> 与<b class='flag-5'>图形</b><b class='flag-5'>处理</b>新时代