CN111861860A - 一种面向ai智能soc芯片的图像加速处理系统 - Google Patents

一种面向ai智能soc芯片的图像加速处理系统 Download PDF

Info

Publication number
CN111861860A
CN111861860A CN202010713775.9A CN202010713775A CN111861860A CN 111861860 A CN111861860 A CN 111861860A CN 202010713775 A CN202010713775 A CN 202010713775A CN 111861860 A CN111861860 A CN 111861860A
Authority
CN
China
Prior art keywords
task
module
node
image
processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202010713775.9A
Other languages
English (en)
Other versions
CN111861860B (zh
Inventor
季振洲
王佩锟
林灏铨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Harbin Institute of Technology Weihai
Original Assignee
Harbin Institute of Technology Weihai
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Harbin Institute of Technology Weihai filed Critical Harbin Institute of Technology Weihai
Priority to CN202010713775.9A priority Critical patent/CN111861860B/zh
Publication of CN111861860A publication Critical patent/CN111861860A/zh
Application granted granted Critical
Publication of CN111861860B publication Critical patent/CN111861860B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/28Indexing scheme for image data processing or generation, in general involving image processing hardware
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Image Processing (AREA)

Abstract

本发明提出了一种面向AI智能SOC芯片的图像加速处理系统,其中包括任务分析模块,任务链接模块,内部节点优化模块和寻找解决方案模块。本发明可以实现对图像处理的加速,并且可以解决传统SOC芯片对同一图像多次处理过程中I/O读写次数高,芯片内ALU利用不充分,只能针对单一节点进行优化,无法实现一个系统级的最优解决方案等问题。本发明的有益效果:能够分析本次图像处理所需要的处理任务,并且找到处理任务不同的实现方案,依据各个处理任务之间的数据依赖关系,将任务链接成一个整体的解决方案,再通过内部节点优化拆分组合任务节点,最后通过分析各种解决方案对AI智能SOC芯片内部ALU的利用率,找到最优的解决方案,提高系统性能。

Description

一种面向AI智能SOC芯片的图像加速处理系统
技术领域
本发明涉及计算机技术领域,具体而言,涉及一种面向AI智能SOC芯片的图像加速处理系统。
背景技术
近年来人工智能、机器学习随着移动互联网兴起,人脸识别,卫星图像处理,无人驾驶等涉及图像处理技术正在日益流行。图像处理算法需要大量的矩阵乘加运算,对大规模并行计算能力有很高的要求,CPU和传统计算框架无法满足对于并行计算能力的需求,需要特殊定制的AI智能SOC芯片。
在现代系统的芯片上,图像处理优化工作分为两类,分别为系统级优化和内核级优化。系统级优化主要解决总体功耗,内存带宽加载,处理器间通信开销。内核级优化是围绕某一种图像处理函数进行优化,这只改进了单个函数的执行,并不一定会改进整个图像处理流程。在系统层级上,单纯的将各个图像任务链接并不会改善芯片内部ALU区域面积利用率提高并行度,仍然有大量的ALU处于空闲态,没有得到有效利用。
在现有的加速处理算法可以很容易的实现单个设计节点的优化,但是无法从系统层级上根据原图像和最终给出的输出图像自动生成一组最优的解决方案。
发明内容
基于背景技术存在的技术问题,本发明提出了一种面向AI智能SOC芯片的图像加速处理系统。
本发明提出了一种面向AI智能SOC芯片的图像加速处理系统,其中包括任务分析模块,任务链接模块,内部节点优化模块和寻找解决方案模块。
优选地,任务分析模块用于自动确定本次图像处理所需要的执行的任务,并分析每个处理任务不同的内核实现所需要的开销
优选地,任务链接模块用于明确各个任务的执行顺序,根据任务的数据依赖关系将各个任务链接成图,并且将需要多次执行的任务拷贝副本。
优选地,内部节点优化模块用于复制组合任务链接模块中的实现,以拓展解决方案。
优选地,寻找解决方案模块用于根据生成的不同实现寻找本次图像处理任务的最优解决方案,最优解决方案根据芯片内部ALU区域利用面积,吞吐量来衡量。
本发明的技术特点及有益效果:
(1)本发明的任务分析模块可以根据输入和输出的图像之间的关系自动生成所需要的图像处理任务,并且为每一个任务寻找不同的ALU区域利用率和吞吐量,生成不同的实现,相比较传统的只有单一实现的方法,可以为后续图像处理图生成更多选择,以查找到最优的解决方案。
(2)本发明的任务链接模块根据各个节点的数据依赖关系生成图。为需要循环执行的节点拷贝副本,将副本存储在芯片内部存储器中,减小了I/O读写次数,减小了系统开销。
(3)本发明的寻找解决方案模块可以分析整体任务,根据给定的芯片内部ALU区域面积和吞吐量的限制,寻找最优的解决方案,最大限度的利用芯片中的ALU,实现最高的并行度,以加快图像处理的速度。
附图说明
图1为本发明的任务分析阶段示意图。
图2为本发明的任务链接模块示意图。
图3为本发明内部节点优化模块示意图。
图4为本发明的整体运行流程示意图。
具体实施方式
下面结合具体实施例对本发明作进一步解说。
实施例
参考图1,在任务分析阶段,根据输入图像、任务总体要求等信息,以及芯片内ALU可利用面积等信息进行分析,自动生成本次图像处理过程中的图像处理任务,并且再为每一个图像处理任务根据ALU利用面积和吞吐量的不通生成不同的实现,以为后续生成最优方案提供更多选择,所述步骤如下:
步骤1:将输入图像、任务要求等信息输入任务分析模块;
步骤2:任务分析模块自动生成本次图像处理所需要的图像处理任务;
步骤3:根据芯片中ALU利用面积和吞吐量的不同再为每一个任务生成不同的实现,并且记录相关信息,对于重复执行的任务节点做标记;
步骤4:将实现的具体属性信息保存到JSON文档中;
参考图2在执行整个图像处理过程中,在明确了所需要的任务后,需要确定任务处理的前后顺序,根据任务之间数据依赖关系,将各个任务链接成图,并为需要多次执行的任务在芯片内部拷贝副本,以减少芯片和内存之间的I/O次数,减小了系统开销。所述方法包括如下步骤:
步骤1:明确各个任务的执行顺序;
步骤2:计算那些任务需要被循环执行,在此任务节点做标记;
步骤3:复制节点生成副本,使用数据分配器,节点可以按照循环顺序向节点副本发送数据;
步骤4:根据各个节点数据依赖关系,上一个节点输出图像作为下一个节点的输入图像,将所有任务节点链接成一个有向不循环的图;
参考图3在确定整个图像处理流程和数据依赖关系后,为实现更好的并行计算效果,可针对单个图像处理节点进行算法层级的优化。最后根据保存的JSON不同节点的不同处理方式,组合已有的可能,以达到最高的并行效果。所述方法包括如下步骤:
步骤1:遍历整个图像处理图,并使用hash表记录下节点和节点在图中的位置;
步骤2:对每一个节点执行单节点的算法级别的优化,修改保存属性文件中的信息;
步骤3:根据之前保存文件中每个处理节点的不同实现方式以及属性信息,对所有可能进行排列;
步骤4:分析所有组合ALU利用率以及吞吐量,保存最高并行度的方案进行本次的实施的方案。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。

Claims (5)

1.一种面向AI智能SOC芯片的图像加速处理系统,其特征在于:所述系统包括任务分析模块,任务链接模块,内部节点优化模块,寻找解决方案模块;
任务分析模块用于自动确定本次图像处理所需要的执行的任务,并分析每个处理任务不同的内核实现所需要的开销;
任务链接模块用于明确各个任务的执行顺序,根据任务的数据依赖关系将各个任务链接成图,并且将需要多次执行的任务拷贝副本;
内部节点优化模块用于复制组合任务链接模块中的实现,以拓展解决方案;
寻找解决方案模块用于根据生成的不同实现寻找本次图像处理任务的最优解决方案,最优解决方案根据芯片内部处理单元区域利用面积,吞吐量来衡量。
2.根据1所述面向AI智能SOC芯片的图像加速处理系统,其特征在于任务分析模块;通过分析输入图像和最终输出图像之间的关系,得到本次图像处理处理过程所用到的图像处理任务,为每一个任务生成不同的内核实现,并计算每种不同的实现使用芯片中ALU的数量以及吞吐量;对于每个内核都对主核心函数进行分析,以找到所有的并行度,然后进行严格的参数化;这可以通过标记所有循环并为每一个内核生成一组适当的属性信息,并将其保存为JSON文件来实现;具体步骤如下:
步骤1:将输入图像、任务要求等信息输入任务分析模块;
步骤2:任务分析模块自动生成本次图像处理所需要的图像处理任务;
步骤3:根据芯片内ALU利用面积和吞吐量的不同再为每一个任务生成不同的实现,并且记录相关信息,对于重复执行的任务节点做标记;
步骤4:将实现的具体属性信息保存到JSON文档中。
3.根据1所述的面向AI智能SOC芯片的图像加速处理系统其特征在于任务链接模块;
在执行整个图像处理过程中,在明确了所需要的任务后,需要确定任务处理的前后顺序,根据任务之间数据依赖关系,将各个任务链接成图,并为需要多次执行的任务在芯片内部存储器上拷贝副本,以减少芯片和内存之间的I/O次数,减小了系统开销;所述方法包括如下步骤:
步骤1:明确各个任务的执行顺序;
步骤2:计算特定任务需要被循环执行,在此任务节点做标记;
步骤3:复制节点生成副本,使用数据分配器,使节点可以按照循环顺序向副本发送数据;
步骤4:根据各个节点数据依赖关系,上一个节点输出图像作为下一个节点的输入图像,将所有任务节点链接成一个有向不循环的图。
4.根据1所述面向AI智能SOC芯片的图像加速处理系统,其特征在于内部节点优化模块;该系统中的内部节点优化模块将生成更广泛的实现,内部节点优化模块可以复制和组合在任务链接模块中生成的实现,以拓展解决方案,相当于图像处理优化中内核级别的优化,针对单个图像处理节点在内存开销,并行程度等问题上实现优化;同时内部节点优化模块还可以组合已经生成的实现,然后动态的复制组合节点;该模块为每个内核都找到了广泛的实现,拓展了AI智能SOC芯片对图像处理解决方案的空间;所述方法包括如下步骤:
步骤1:遍历整个图像处理图,并使用hash表记录下节点和节点在图中的位置;
步骤2:对每一个节点执行单节点的算法级别的优化,修改保存属性文件中的信息;
步骤3:根据之前保存文件中每个处理节点的不同实现方式以及属性信息,对所有可能进行排列;
步骤4:分析所有组合ALU利用率以及吞吐量,保存最高并行度的方案进行本次的实施的方案。
5.根据1所述的面向AI智能SOC芯片的图像加速处理系统其特征在于权衡最优解决方案模块,在得到本次图像处理的不同解决方案后,需要对各个方案进行评估;这里采用两种约束方式,一种是在用户给定芯片内部ALU区域限制的情况下,尽可能增大吞吐量,得到方案执行的速度;另一种是在用户给定吞吐量的情况下,尽可能有效利用区域面积,得到方案的执行速度;通过启发式的算法,以确定哪种方案可以实现最高的并行度,最有效的ALU区域利用率以及最大的吞吐量,最终获得最快的处理速度。
CN202010713775.9A 2020-07-23 2020-07-23 一种面向ai智能soc芯片的图像加速处理系统 Active CN111861860B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010713775.9A CN111861860B (zh) 2020-07-23 2020-07-23 一种面向ai智能soc芯片的图像加速处理系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010713775.9A CN111861860B (zh) 2020-07-23 2020-07-23 一种面向ai智能soc芯片的图像加速处理系统

Publications (2)

Publication Number Publication Date
CN111861860A true CN111861860A (zh) 2020-10-30
CN111861860B CN111861860B (zh) 2023-04-21

Family

ID=72949631

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010713775.9A Active CN111861860B (zh) 2020-07-23 2020-07-23 一种面向ai智能soc芯片的图像加速处理系统

Country Status (1)

Country Link
CN (1) CN111861860B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030188271A1 (en) * 2002-04-02 2003-10-02 Institute Of High Performance Computing System and method for integrated circuit design
CN103092772A (zh) * 2011-08-18 2013-05-08 国际商业机器公司 用于在多线程图像处理流水线中保持状态数据的上下文数据结构的向量寄存器文件高速缓存
CN107679701A (zh) * 2017-09-08 2018-02-09 广州供电局有限公司 负荷削减并行计算方法及装置
CN109446395A (zh) * 2018-09-29 2019-03-08 上海派博软件有限公司 一种提高基于Hadoop大数据综合查询引擎效率的方法及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030188271A1 (en) * 2002-04-02 2003-10-02 Institute Of High Performance Computing System and method for integrated circuit design
CN103092772A (zh) * 2011-08-18 2013-05-08 国际商业机器公司 用于在多线程图像处理流水线中保持状态数据的上下文数据结构的向量寄存器文件高速缓存
CN107679701A (zh) * 2017-09-08 2018-02-09 广州供电局有限公司 负荷削减并行计算方法及装置
CN109446395A (zh) * 2018-09-29 2019-03-08 上海派博软件有限公司 一种提高基于Hadoop大数据综合查询引擎效率的方法及系统

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
朱丽玲等: "基于VOO方法的云计算平台多目标任务调度算法", 《计算机技术与发展》 *
殷宪亮: "面向遥感大数据应用的云计算任务调度研究", 《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》 *
马晓慧等: "一种基于数据划分和任务映射的并行调度算法", 《现代计算机(专业版)》 *

Also Published As

Publication number Publication date
CN111861860B (zh) 2023-04-21

Similar Documents

Publication Publication Date Title
Liang et al. Evaluating fast algorithms for convolutional neural networks on FPGAs
Kiningham et al. GRIP: A graph neural network accelerator architecture
Dave et al. Hardware acceleration of sparse and irregular tensor computations of ml models: A survey and insights
Zhang et al. BoostGCN: A framework for optimizing GCN inference on FPGA
Kim et al. FPGA-based CNN inference accelerator synthesized from multi-threaded C software
EP3979143A1 (en) Method of performing splitting in neural network model by means of multi-core processor, and related product
Li et al. Dynamic dataflow scheduling and computation mapping techniques for efficient depthwise separable convolution acceleration
US20210390460A1 (en) Compute and memory based artificial intelligence model partitioning using intermediate representation
Mei et al. A 200mhz 202.4 gflops@ 10.8 w vgg16 accelerator in xilinx vx690t
Liu et al. Duet: Boosting deep neural network efficiency on dual-module architecture
Ahmadi et al. CARLA: A convolution accelerator with a reconfigurable and low-energy architecture
Yan et al. FPGAN: an FPGA accelerator for graph attention networks with software and hardware co-optimization
Shi et al. Exploiting HBM on FPGAs for data processing
Park et al. TrainBox: an extreme-scale neural network training server architecture by systematically balancing operations
Lin et al. HitGNN: High-throughput GNN training framework on CPU+ Multi-FPGA heterogeneous platform
Ran et al. Software-hardware co-design for accelerating large-scale graph convolutional network inference on FPGA
Ma et al. NASA: accelerating neural network design with a NAS processor
Kang et al. Multi-bank on-chip memory management techniques for CNN accelerators
CN111861860A (zh) 一种面向ai智能soc芯片的图像加速处理系统
WO2022078400A1 (zh) 一种对多维数据进行处理的设备、方法和计算机程序产品
Indirli et al. A tile-based fused-layer CNN accelerator for FPGAs
Chen et al. Graph-OPU: A Highly Integrated FPGA-Based Overlay Processor for Graph Neural Networks
US20230419166A1 (en) Systems and methods for distributing layers of special mixture-of-experts machine learning models
Wang et al. Data management on new processors: A survey
Nguyen et al. Tiny Neuron Network System based on RISC-V Processor: A Decentralized Approach for IoT Applications

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant