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

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

3天内不再提示

谈一谈FPAI芯片的AI系统方案以及参考设计实例

国产FPGA之家 来源:国产FPGA之家 2023-11-28 11:33 次阅读

今天,小弟和大家谈一谈某国产FPAI芯片的AI系统方案以及参考设计实例。

1)FPAI芯片架构:博采众长、兼容并蓄

首先,我们简单了解下FPAI(Field Programmable AI)芯片。FPAI芯片,创新性地采用了异构融合架构,即在一颗die上集成了高性能SOC(PS)、大容量FPGA(PL)、AI加速引擎(AI)三大模块。该异构融合架构,可谓“博采众长、兼容并蓄”,融合了各异构模块优势,特别适合AI计算。其中,高性能SOC优势在于控制和通用计算,使得能在单芯片上运行完成完整的AI计算;大容量FPGA优势在于可重构和高速接口,解决了长尾算子的难题,适应了AI算法不断的迭代升级趋势;AI加速引擎优势在于高性能、低功耗地完成卷积等计算密集型算子的计算。

5b3d8a2a-8d9e-11ee-939d-92fbcf53809c.png

图1 FPAI芯片架构:异构融合

具体的,以下是某款国产FPAI芯片,该芯片资源很丰富。PS部分,有四核处理器CPU视频编解码模块VPU、图像处理模块GPU等;PL部分,有444K的逻辑资源,16个高速接口GTX;AI部分,有高达27.52TOPS的int8算力,精度支持int8和int16,配合AI编译器支持快速部署

5b52ea14-8d9e-11ee-939d-92fbcf53809c.png

图2 某国产FPAI芯片资源

综上,该颗FPAI芯片支持丰富的AI应用场景,特别适合边缘融合端的AI应用场景。

2)FPAI系统方案:好马配好鞍,好船配好帆

从芯片到系统产品,还需设计硬件,开发FPGA程序,开发软件程序,部署AI网络等。系统方案及对应的参考实现,提供了一整套完整的解决方案参考,能够帮助用户方便、快速、高效、可靠地完成自己产品的设计。 所谓“好马配好鞍,好船配好帆”,不同芯片需要适合的系统方案以及对应的参考设计。

首先,FPAI芯片是PS+PL+AI的架构,对外接口管脚位于PS、PL模块,因此依据外部数据流输入的管脚,设计了PS_IN、PL_IN的系统方案,以此对应不同的内部控制流数据流方案;然后,FPAI芯片的AI峰值算力达27.52Tops,能够支持多路数据流的不同的AI计算,视频编解码模块能支持多路视频流的压缩,可编程逻辑资源也支持多输入的高速数据流接口,因此依据以上算力特点,设计了多源的系统方案,以此也符合了边缘融合端的AI应用特点;此外,PCIe加速板卡的系统方案,配合主机服务器,完成AI的推理计算加速。

综上,基于FPAI芯片的架构、算力、资源、输入数据流来源、应用场景等特点,分别制定了如下4种系统方案,基本能够涵盖FPAI单芯片下的各种应用场景。

(1)PS_IN系统方案

(2)PL_IN系统方案

(3)多源系统方案

(4)PCIe加速卡系统方案

5b6c8a6e-8d9e-11ee-939d-92fbcf53809c.png

图3 FPAI芯片的系统方案 一个系统方案可能有多个具体的参考实现,但对应的设计架构是一致的,可能只是具体内部实现有区别。参考设计会提供一整套参考方案,包括硬件设计、FPGA设计、软件设计的代码和相应文档。因此,想要基于FPAI设计系统的朋友,可以依据自身的应用场景需求,选择上述系统方案的参考设计。

3)多路PL_IN+VPU编码的参考设计实例

好了,说了这么多,大家等不及要看具体的参考设计实例吧。以下会介绍多源系统方案的一个参考设计实例:多路PL_IN+VPU编码的参考设计,分别从参考设计概述、硬件板卡介绍、FPGA工程介绍、软件工程介绍、实例功耗介绍等5部分来介绍该实例。

3.1 参考设计概述

输入:4路SDI摄像头,默认分辨率和帧率设置1080p@30Hz;

输出:SD卡,H.265/H.264格式文件格式;

VPU:分辨率1080p,YUV422输入, 输出 H.265/H.264,默认编码帧率设置30Hz;

检测:运行示例网络Yolov5s AI检测,带检测结果的视频压缩到SD卡。

性能:4路1080p@30Hz输入,AI+VPU编码,每一路30fps。

5b8c777a-8d9e-11ee-939d-92fbcf53809c.png

图4 多路PL_IN+VPU编码的参考实现框图

3.22 悟空硬件开发板简介

如下图,采用SDI接口摄像头输入4路视频到板卡,悟空硬件板卡上主芯片FPAI芯片;SD卡,储存和启动Linux操作系统启动文件和根文件系统;1GB PS DDR和2GB PL DDR,用于运行操作系统和AI;通过子卡接入的4路SDI视频接口;网口、串口、JTAG调试接口等。

5b989eb0-8d9e-11ee-939d-92fbcf53809c.png

图5 悟空硬件开发板

3.32 FPGA设计介绍

首先,整体数据流如图所示:

5ba4a296-8d9e-11ee-939d-92fbcf53809c.png

图6 多路PL_IN+VPU编码的数据流

Step1:对应图中的数据流1,Cam0~Cam3为4路不同的SDI摄像头视频流,帧率1080p@30Hz。对于每一路SDI摄像头视频流,复制成两路,一路经过resize、image_make模块完成AI预处理后存入PL_DDR,供AI检测使用;另一路经过resize、rgb565转为yuv422(可选)通过HP接口存入PS_DDR,供后续画上检测结果后VPU压缩用或者HDMI显示用。

Step2:对应图中的数据流2,启动AI访问PL_DDR完成AI的计算。

Step3:对应图中的数据流3,最后一层特征图,经过icore_post模块处理后,通过HP接口写入PS_DDR。PS完成剩余后处理计算,得出AI检测结果,画在PS DDR上的视频帧上。

Step4:对应图中的数据流4,启动VPU,对含有结果的视频帧压缩成H.264/H.265格式。

Step5:对应图中的数据流5,将压缩视频流写回SD卡。 Step6(可选):对应图中数据流6,将检测框的视频显示到HDMI显示屏。

其次,介绍以下子数据流通路的实现

(1)Camera -> PLDDR的逻辑通路实现

5bb481de-8d9e-11ee-939d-92fbcf53809c.png

图7 子逻辑通路Camera -> PLDDR

输入的4路视频流帧率为1080p@30Hz,均以serdes 差分对接入FPGA端口,通过rx_sdi模块解析为rgb888数据格式。然后经过frame_trans模块resize成AI计算所需要的尺寸。 在一些应用场景中,输入数据可能预先存储在了PS DDR中,因此本工程也预留了2路独立的PSIN数据通路,通过HP口读取数据,转变成AI_MATE接口规范好的数据总线格式。这两路PSIN数据通过img_data_crossbar_0/1模块分别与CAM2/3视频流数据进行仲裁,各自选出1路输入给AI_MATE端。

(2)Camera -> PSDDR的逻辑通路实现

5bbf4b00-8d9e-11ee-939d-92fbcf53809c.png

图8 子逻辑通路Camera -> PSDDR 将CAM视频流数据resize成VPU压缩需要的尺寸,注意此处的resize与CAM->PL DDR通路中的resize相互独立,即AI计算尺寸和VPU压缩尺寸独立配置。为了减少写入PS DDR的数据量,这里将rgb565数据格式转为yuv422(16bit),相比于rgba(32bit)格式,数据量可减少50%,而图像色度分量完整保留,基本不影响图像质量。

每一路CAM数据均需要通过HP口写入PS DDR,PS端共有4个HP口,有很多模块会对它发起请求,因此工程中在BlockDesign中调用axi interconnect IP进行仲裁。

最终,实现的FPGA资源占用情况如下所示:

5bcba4f4-8d9e-11ee-939d-92fbcf53809c.png

图9 FPGA实现资源占用情况

3.42 软件设计介绍

参考实现软件整体流程可以归结如下: 摄像头输入视频数据 > AI检测 > AI结果绘制 > vpu编码h264/h265视频 > 输出数据流

软件中按功能将代码封装为多个模块:摄像头模块、神经网络模块、VPU模块。则在实现一次完整数据流通路对应的模块调用为:摄像头模块取帧 > 神经网络模块计算与后处理 > 摄像头模块得到图像数据 > vpu模块压缩 > vpu模块输出数据。

在AI调度过程中,采用了任务队列的实现方式。主要参考了生产者消费者设计模式,前处理、icore前向、后处理运行在各自的线程中,互相之间通过任务队列的方式通信

对于多路的情况,则会使用多个前处理线程与多个后处理线程,以4路为例,4路不同的输入图像数据、icore推理结果会存放在ddr的不同位置,不同路之间数据不会相互干扰。任务队列还提供了可以控制不同路是否做AI或者设置优先级的功能。

5bd5f40e-8d9e-11ee-939d-92fbcf53809c.png

图10 软件任务队列调度框图

具体的AI神经网络部署,基于icraft编译器,直接编译生成json和raw文件,就能够更新参考设计的AI网络部署。

3.52 实例结果介绍

性能:能够稳定完成4路1080p@30Hz视频的AI检测和视频编码。

功耗:整体芯片功耗(含DDR)是12.32W。

5be09256-8d9e-11ee-939d-92fbcf53809c.png

表1 多路PL_IN+VPU编码的功耗

4)小结:海阔凭鱼跃,天高任鸟飞

好了,经过以上的参考设计实例的介绍,相信大家对FPAI芯片的系统方案以及参考设计有了更深层次的了解。

近几年,边缘端AI计算的市场份额逐年增长明显,越来越多的落地应用需求提出。“海阔凭鱼跃,天高任鸟飞”,如何选择一款AI芯片及系统方案,能够满足边缘融合端的各种应用场景,能够适应算法迭代的需求,能够解决长尾算子的问题,形成高性能、低功耗、灵活可靠的产品?相信FPAI芯片及系统方案,会是一个不错的选择!






审核编辑:刘清

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

    关注

    68

    文章

    19259

    浏览量

    229652
  • FPGA
    +关注

    关注

    1629

    文章

    21729

    浏览量

    602998
  • soc
    soc
    +关注

    关注

    38

    文章

    4161

    浏览量

    218165
  • 编译器
    +关注

    关注

    1

    文章

    1623

    浏览量

    49108
  • GPU芯片
    +关注

    关注

    1

    文章

    303

    浏览量

    5804

原文标题:漫谈FPAI芯片的AI系统方案

文章出处:【微信号:国产FPGA之家,微信公众号:国产FPGA之家】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    国产FPAI芯片AI系统方案

    今天,小弟和大家谈一谈某国产FPAI芯片AI系统方案以及
    的头像 发表于 11-28 11:32 1110次阅读
    国产<b class='flag-5'>FPAI</b><b class='flag-5'>芯片</b>的<b class='flag-5'>AI</b><b class='flag-5'>系统</b><b class='flag-5'>方案</b>

    谈一谈大家新颖的思路

    长期玩电子,脑子都僵化了,大家来谈一谈自己有什么新颖有创意的想法。
    发表于 02-25 16:28

    AI芯片算法不谈智能,实现不谈芯片

    1算法不谈智能IEEE协会首次在京举办研讨会的时候,中国自动化学会副理事长兼秘书长、中科院自动化研究所复杂系统管理与控制国家重点实验室主任王飞跃称不存在AI芯片。对于这
    发表于 08-24 10:36

    手把手教你设计人工智能芯片系统--(全阶设计教程+AI芯片FPGA实现+开发板)

    有利于学员更深入理解AI芯片原理,并且能掌握工程实现;3、AI芯片设计门槛高,涉及AI算法、芯片
    发表于 07-19 11:54

    【免费直播】让AI芯片拥有最强大脑—AI芯片的操作系统设计介绍.

    -卡耐基梅隆大学联合工程学院博士,研究方向为面向人工智能的集成电路与系统设计。为人工智能芯片领域重要科学家,在AI硬件技术领域作为第作者发表了4篇顶级SCI学术论文(其中2篇tran
    发表于 11-07 14:18

    谈一谈 MPU6050 姿态融合

    谈一谈 MPU6050 姿态融合
    发表于 05-05 09:28

    谈一谈对FOC的些理解

    FOC入门谈一谈我对FOC的些理解注:其中有些图片是网上找的,有些是自己做的,作图水平般,勿喷这是我第
    发表于 09-01 07:10

    谈一谈对穿越频率的理解

    最近正好研究这方面的内容,所以顶个贴,支持把楼主。楼主从穿越频率的定义来开宗明义,小弟也谈一谈对穿越频率的理解:1)对定义的理解;2)对环路校正时穿越频率选取原则理的解;3)还有大家在分析Bode
    发表于 10-29 06:06

    谈一谈对穿越频率的理解

    最近正好研究这方面的内容,所以顶个贴,支持把楼主。楼主从穿越频率的定义来开宗明义,小弟也谈一谈对穿越频率的理解:1)对定义的理解;2)对环路校正时穿越频率选取原则理的解;3)还有大家在分析Bode
    发表于 11-17 07:58

    谈一谈嵌入式开发怎么入门的

    想要从事嵌入式开发,但又不知道怎么入门的,可以看下,下面我结合自身实际来谈一谈。前提基础:简单的电路、模电、数电知识,C语言、从51单片机入手如果有些前提的基础知识,要上手51单片机不算难。首先
    发表于 12-17 08:12

    谈一谈嵌入式操作系统一些需要注意的点

    计算机学院的嵌入式系统实验不是特别难,首先,连代码都不需要写,主要是需要操作些新的设备和软件,但是这些软件的安装,设备的使用上有较多的坑,需要注意。接下来,我就来谈一谈些需要注意的
    发表于 12-23 08:27

    谈一谈DALI的具体应用

    今天我们来谈一谈 DALI 的具体应用, 最主要的是 DALI 控制装置中的调光驱动电源的使用场景, 比如 DT6 和 DT8 产品(参考文章 大力哥 DALI - D...
    发表于 12-27 08:32

    谈一谈AI芯片软硬件协同与AI编译软件栈的泛泛看法

    1、软硬件协同与AI编译软件栈介绍  2个核心要点,都是钱砸出来的感悟。  对于SIMD为主的DSA,指令的图灵完备决定了芯片的可编程性。例如某些算子不能使用NPU编程,还需要在另外个cpu上编程
    发表于 11-16 15:24

    谈一谈AI、云计算以及大数据的关系

    说到AI,总是不可避免的联想到大数据与云计算,这三者可谓相辅相成,唯有全部结合起来,才有可能成为真正的人工智能。当然,本文只是以个普通人的视角来探寻这三者之间的联系。
    的头像 发表于 03-06 15:22 7667次阅读

    谈一谈PCB翘曲度的标准以及如何测量

    谈一谈PCB翘曲度的标准以及如何测量
    的头像 发表于 11-27 17:28 5095次阅读
    <b class='flag-5'>谈一谈</b>PCB翘曲度的标准<b class='flag-5'>以及</b>如何测量