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

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

3天内不再提示

什么是硬件加速引擎?

rfdqdzdg 来源:数字芯片设计工程师 2023-07-06 10:32 次阅读

什么是硬件加速引擎

普通计算机用指令运算速度衡量计算性能,而超算则通常用浮点运算速度来衡量其性能。但不管是指令运算还是浮点运算,都脱离不了CPU进行流水线式的指令计算。尽管我们可以通过用先进工艺、采用超标量流水线结构处理器,甚至是多核的阵列来提升CPU的计算性能,但这仍然没有突破“重围”,我们一直在一亩三分地徘徊。

我们在个人电脑上打开过多的应用时,由于CPU数量及性能受限,无法承载过多的应用,电脑会逐渐变得很卡。但单纯提高CPU的性能,空间受限制,且代价很大。除非是超算中心等首先以性能为目标,对能耗比不那么敏感的应用,否则消费类芯片核心竞争力仍以能功耗及性能为王,承载到芯片上就是PPA(Power Performance Area)。

摩尔定律的终结,我们很难再单一的从CPU身上榨出更多的性能。如果我们将某些复杂耗时的计算,采用专用芯片实现,在完成后再将结果返回给CPU,这样我们就实现了专用的加速引擎。典型的以个人电脑为例,采用独立显卡的配置远比仅有集成显卡电脑有着更好的体验感,因为Nvdia/AMD显卡的GPU,专用图形图像加速运算,降低了CPU的负荷,提高了整机处理应用的能力。

至此,我们的主角终于上场了,世界的最后一块拼图,也终于完整了,如下图所示,为CPU计算加速的方法,终点是最新工艺下,集成硬件加速器的多核超标量流水线处理器。

2d547ad6-1b22-11ee-962d-dac502259ad0.png

而我们最后入场的观众,即上图中红色部分,就是硬件加速引擎。正如前文所述,显然从CPU的一亩三分地,已经很难再开出质变的花,但硬件加速引擎的引入,让我们进入了硬件加速的新时代。

我们再梳理一下新提出的概念:硬件加速引擎,也称为硬件加速器,是一种采用专用加速芯片/模块,替代CPU完成复杂耗时的大算力操作,其过程不需要或者仅少量CPU的参与。

典型的以GPU、DSP、ISP、NPU为例,就是专用的硬件加速引擎。硬件加速引擎的出现,一方面提升了SOC的整体计算性能,另一方面也降低了同等应用场景,对CPU的性能需求。举例,apple在2021年WWDC上发布了采用自研SOC的全新Macbook系列产品,使用的就是最新自研的号称地表最强的M1芯片,其规模达到了160亿门晶体管,如下图所示:

M1采用了当时最新的5nm工艺制程,集成8核的CPU,号称在同等功耗下,达到了2倍目前CPU的最快性能。更为重要的是,M1还集成了众多专用的硬件加速引擎,协助CPU完成了很多复杂耗时的运算,统计分析主要如下表所示:

序号 硬件加速引擎 功能/性能详细描述
1 GPU 图像运算单元,集成128个执行单元,可同时执行24576个线程,运算能力高达2.6TFLOPS。
2 Neural Engine 16核神经网络加速引擎(NPU),专用卷积网络推理计算加速,每秒可以进行11亿万次操作。
3 Media Encode & Decode Engine 多媒体视频编解码引擎,硬件加速完成视频的编解码功能,支持AVS、H.264、H.265等制式。
4 Advance Image Signal Processor 先进的图像信号处理引擎(ISP),实现实时的图像采集、Demosaic、3A、2/3D降噪等图像处理功能。

勾勒了一个粗糙的M1的架构图(其实很多多媒体芯片也是类似的),如下所示,我们简单梳理一下相关模块的工作流程。

2da5524e-1b22-11ee-962d-dac502259ad0.png

以一个AI人脸识别的视频拍摄的场景为例,整体计算的流水线如下图所示,当然每一步还需要CPU参与配置调度,以及DDR读写缓存。其中上半部分,采用ISP→NPU→Encode→DDR流水线,实现了实时AI人看脸识别视频的存储;下半部分,实现了实时人脸检测的显示。

2dccd300-1b22-11ee-962d-dac502259ad0.png

再以体验一个在线游戏为例,采用下图的流水线,实现了游戏的实时解码,图形图像的加速运算,以及实时显示功能。这个过程同样每个模块需要DDR参与读写,此外,除了少量CPU的配置及调度,CPU很少参与计算,主要由专用硬件加速引擎完成实时的运算。因此专业的事情,专用的模块做,CPU可以用来做更为复杂的操作,比如文件管理,资源优化等。

2df15ebe-1b22-11ee-962d-dac502259ad0.png

上述例子,CPU与硬件加速引擎协同工作,一起打造了一款号称地表最强的SOC。这里我们再举一个例子,以采用硬件加速引擎的方式,降低了产品对CPU的性能要求,从而采用低成本的ARM,在提升性的前提下进一步降低成本。如下图所示,为海思Hi3516A监控芯片的硬件架构框图。

2e04f816-1b22-11ee-962d-dac502259ad0.png

该芯片采用单核A7内核作为处理器,主频运行在600MHz,框图左侧为SoC的高速模块,右下角为SoC的低速模块,中下部分AES/DES/3DES为加解密模块,右上角的CVBS/BT1120为显示接口,MIPI/LVDS/Hispi图像采集接口,以上这些组成了SoC的Boot最小系统,以及基本输入输出单元。

但这是一款IPC监控芯片,主要用以实现视频图像采集,编码传输等功能,为了减小CPU的开销,协同完成一些复杂的视频运算,Hi3516A集成了几个重要的硬件加速引擎,使得其在低码率,高图像质量,低功耗方面持续引领行业水平。如下表所示,为Hi3516A芯片继承的硬件加速引擎,主要如下:

序号 硬件加速引擎 功能/性能详细描述
1 TDE Two Dimensional Engine,硬件加速实现图形的绘制,大大减少对CPU的占用,同时又提高了DDR的利用率。
2 IVS Intelligent Video Engine,模块提供了常用的一些智能分析算法中的一些CV算子,采用硬件实现方式替代CPU进行OpenCV图像运算。
3 VPSS+VGS Video Processing Sub-System/Video Graph System,硬件加速实现图像显示后处理功能,包括降噪、缩放、裁剪、叠加、旋转等功能。
5 ISP 图像信号处理引擎(ISP),实现实时的图像采集、Demosaic、3A、2/3D降噪等图像处理功能。。
6 Video Subsystem 视频编码引擎,支持H.264、H.265等制式以及ROI编码,最大支持5M Pixel分辨率。

IPC芯片可以用规格较低的Cortex A9系列CPU,得益于芯片集成了如上表中专用的硬件加速引擎。采用专用计算模块完成了图像处理、视频编码、显示后处理等功能,使得CPU只需要参与配置及调度,同时才有了资源去处理复杂的操作系统任务。

我们总是不断在追求更快,所以我们穷尽一切办法去达成目标。硬件加速引擎在传统CPU无法实现质变的基础上,实现了计算能力的突破。硬件加速引擎虽然有其专用的局限性,但协同CPU处理,可以以更低的成本及功耗,实现更高的性能,这是当前也是未来计算芯片的大势所趋。

至此,相信你已经理解了硬件加速引擎的非凡意义,我们也可终于可以提出我们的主题——图像加速引擎。Hi3516A中的硬件加速引擎都是图像相关的,本书也将介绍一些基于图像算法方面的加速,就是我写本书的初衷。

本书将从传统图像加速算法入手,从原理到实现,介绍图像算法的理论及设计,并且基于MatlabFPGA开发,讲解如何进行硬件加速实现的流程方法。本书适合从事软件图像开发的朋友,可以提升你对图像算法硬件加速的认知;本书同样也事业FPGA开发的朋友,可以让你全流程了解如何采用FPGA加速实现一个图像算法。

在接下来的篇幅,我将从格式转换、滤波、增强、二值化、锐化、缩放等传统基础图算法入手,从原理到Matlab设计、FPGA加速实现进行由浅入深的详细介绍。接着,以深度学习LeNet为例,介绍如何在FPGA实现最简单的硬件加速卷积神经网络。最后,作为画龙点睛之笔,我们站上更高的层次,介绍一下传统ISP和新兴的AISP的基本理论概念,以及未来图像硬件加速的发展走向。

审核编辑:汤梓红

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

    关注

    551

    文章

    7826

    浏览量

    346912
  • 芯片
    +关注

    关注

    450

    文章

    49674

    浏览量

    417355
  • gpu
    gpu
    +关注

    关注

    27

    文章

    4597

    浏览量

    128175
  • 计算机
    +关注

    关注

    19

    文章

    7176

    浏览量

    87184
  • 硬件
    +关注

    关注

    11

    文章

    3118

    浏览量

    65861

原文标题:什么是硬件加速引擎?

文章出处:【微信号:数字芯片设计工程师,微信公众号:数字芯片设计工程师】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    【N32L40XCL-STB 开发板评测】安全加密算法评测

    本章主要以AES和SHA算法为例,介绍算法使用,同时对比基于硬件加速引擎和纯软件算法运算速度的差异。
    的头像 发表于 08-10 16:45 1141次阅读
    【N32L40XCL-STB 开发板评测】安全加密算法评测

    MPU6050简介

    : Digital Motion Processor)硬件加速引擎,通过主 IIC 接口,且含有一个第二 IIC 接口,可用于连接外部磁力传感器,通过主 IIC 接口,向应用端输出完整的 9 轴融合...
    发表于 08-04 07:27

    CAN通信总线接口和XFMC内存扩展接口

    ,144KB SRAM,多个U(S)ART、I2C、SPI、QSPI、USB、CAN通信总线接口和XFMC内存扩展接口,集成12bit ADC、DAC等模拟接口 ,内置密码算法硬件加速引擎 关键特性
    发表于 08-20 07:37

    MPU6050相关资料分享

    Motion Processor)硬件加速引擎,通过主 IIC 接口,向应用端输出完整的 9 轴融合演算数据。有了 DMP,我们可以使用 InvenSense 公司提供的运动处理资料库,非常方便的实现姿态解算,降低了运动处理运算对操作系统的负荷,同时大大降低了开发难度。
    发表于 02-10 06:17

    N32G4FR系列芯片用户手册

    N32G4FR 系列采用 32 bit ARM Cortex-M4 内核,最高工作主频 144MHz,支持浮点运算及 DSP 指令,内置密码算法硬件加速引擎,集成高达 512KB 加密 Flash
    发表于 10-31 14:39

    N32G457系列芯片用户手册

    个 12bit 5Msps ADC,4 路独立轨到轨运算放大器,7 个高速比较器,2 个 1Msps 12bit DAC,集成多路 U(S)ART、I2C、SPI、QSPI、USB、CAN、SDIO 通信接口,10/100M 以太以网及数字摄像头接口,内置密码算法硬件加速引擎
    发表于 11-01 07:58

    N32G452系列芯片用户手册

    ,多个 U(S)ART、I2C、SPI、QSPI、USB、CAN 通信总线接口,集成 12bit ADC、DAC 等模拟接口 ,内置密码算法硬件加速引擎
    发表于 11-01 06:13

    N32L40x系列芯片产品手册

    丰富的高性能模拟器件,内置 1 个 12bit 4.5Msps ADC,2 路独立轨到轨运算放大器,2 个高速比较器,1 个 1Msps 12bit DAC,集成 U(S)ART、LPUART、I2C、SPI、USB、CAN 等数字通信接口,Segment LCD 驱动接口, 内置多种密码算法硬件加速
    发表于 11-01 07:58

    N32G032系列芯片产品手册

    ,1xOPAMP,3xCOMP,集成多路 U(S)ART、I2C、SPI、CAN 通信接口,内置密码算法硬件加速引擎
    发表于 11-01 07:01

    N32G4FR系列芯片数据手册

    SRAM,2x12bit 5Msps ADC,2x1Msps 12bitDAC,集成多路U(S)ART、I2C、SPI、QSPI、USB、CAN通信接口,1xSDIO接口,数字摄像头(DVP)接口,支持主流的半导体指纹及光学传指纹感器,内置密码算法硬件加速引擎
    发表于 11-01 07:02

    N32G452系列芯片数据手册

    5Msps ADC,2x1Msps 12bit DAC,集成多路U(S)ART、I2C、SPI、QSPI、USB、CAN通信接口,1xSDIO接口,内置密码算法硬件加速引擎
    发表于 11-01 07:30

    基于MPU-3000™系列运动处理组件的三轴陀螺

      Invensense推出MPU-3000™系列产品运动处理组件,为业界第一个内建数字运动处理(DMP™: Digital Motion Processor™)硬件加速引擎的三轴
    发表于 12-23 08:53 870次阅读

    基于VxWorks的硬件加速技术探讨

    简述了爱普生S1D13A05芯片的架构特征,并且介绍了其中的2D硬件加速引擎的工作模式和相关的寄存器设置,最后以VxWorks操作系统作为开发环境,基于风河公司WindML图形开发包,对S1D13A0
    发表于 09-01 14:07 1044次阅读
    基于VxWorks的<b class='flag-5'>硬件加速</b>技术探讨

    图像处理硬件加速引擎是什么 如何提高CPU芯片性能

    软件在CPU上执行,首先是从控制器从存储器取指(Fetch),接着控制器进行译码(Decode),然后由算数逻辑单元(ALU)执行指令(Execute),这就是指令周期,如下图所示。
    的头像 发表于 06-30 15:34 3559次阅读
    图像处理<b class='flag-5'>硬件加速</b><b class='flag-5'>引擎</b>是什么 如何提高CPU芯片性能

    上海航芯打造32位MCU芯片的新突破与挑战

    航芯致力于开发以M0/M33为内核的32位MCU,该系列集成了国密算法硬件加速引擎,兼具通用MCU的灵活易用性和安全性。
    发表于 04-07 14:51 903次阅读