CN113657059A - 一种适用于点云数据处理器的自动化设计方法及装置 - Google Patents

一种适用于点云数据处理器的自动化设计方法及装置 Download PDF

Info

Publication number
CN113657059A
CN113657059A CN202110943800.7A CN202110943800A CN113657059A CN 113657059 A CN113657059 A CN 113657059A CN 202110943800 A CN202110943800 A CN 202110943800A CN 113657059 A CN113657059 A CN 113657059A
Authority
CN
China
Prior art keywords
point cloud
cloud data
data processing
data processor
hardware
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
CN202110943800.7A
Other languages
English (en)
Other versions
CN113657059B (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.)
Chengdu Shihaixintu Microelectronics Co ltd
Original Assignee
Chengdu Shihaixintu Microelectronics Co ltd
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 Chengdu Shihaixintu Microelectronics Co ltd filed Critical Chengdu Shihaixintu Microelectronics Co ltd
Priority to CN202110943800.7A priority Critical patent/CN113657059B/zh
Publication of CN113657059A publication Critical patent/CN113657059A/zh
Application granted granted Critical
Publication of CN113657059B publication Critical patent/CN113657059B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • G06F30/331Design verification, e.g. functional simulation or model checking using simulation with hardware acceleration, e.g. by using field programmable gate array [FPGA] or emulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • 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

Abstract

本发明公开了一种适用于点云数据处理器的自动化设计方法及装置,本发明提供了一种适用于点云数据处理器的自动化设计框架,所述的自动化设计框架通过分析点云数据处理程序,来构建点云数据处理流程图;基于点云数据处理流程图,基于性能分析软件,快速定位数据分析流程的性能瓶颈;基于性能瓶颈分析报告,快速生成满足用户需求的点云数据处理器硬件结构以及对应的硬件描述语言代码,最终生成满足用户约束的高性能,低功耗的专用点云数据处理器,降低点云数据处理器的设计周期,提高自动驾驶领域中点云数据处理的性能。本发明用于降低点云数据处理器的开发难度,满足点云数据处理器在不同应用场景下的性能需求,提高点云数据处理器的开发效率。

Description

一种适用于点云数据处理器的自动化设计方法及装置
技术领域
本发明涉及集成电路领域及人工智能领域,具体涉及一种适用于点云数据处理器的自动化设计方法及装置。
背景技术
随着大数据,智能技术的不断发展,将人工智能与传统工业结合的自动驾驶技术进入了快速发展期。自动驾驶技术的成熟,能够对人类出行以及生活方式的产生重大变革,同时还会对物流,通信等行业产生重要影响,因此成为政府,企业关注的重点。在自动驾驶应用中,基于3D点云数据,来实现对周围环境的高精度构建,是自动驾驶技术广泛应用于生活的关键技术之一。然而,由于自动驾驶场景的复杂,使得处理点云数据所采用的神经网络的规模不断增加,对于点云数据处理的流程也日趋复杂,造成点云数据处理过程中,计算量以及数据量不断攀升,进而导致传统的通用处理器在处理点云数据时,出现延迟高,功耗高的问题,造成其无法满足自动驾驶应用的需求。因此,构建满足自动驾驶需求的高性能低功耗的点云数据处理器成为企业界和工业界关注的重点。
传统的通用处理器在面对大规模的点云数据处理器时,由于其成本高,功耗大,使得其无法满足自动驾驶应用的需求。同时,面向边缘端构建的低功耗通用处理器,由于其计算资源低,性能差,导致应用的性能无法满足自动驾驶实时性的需求。基于此,通过定制专用的处理器,来实现点云数据的加速处理,成为企业界和工业界重点关注的对象。然而,定制的专用数据处理器,由于点云数据应用场景的变化,导致定制的专用处理器具有的单一硬件结构无法满足多变的应用场景需求。同时,点云数据处理流程,以及采用神经网络模型的变化,使得定制的专用点云数据处理器无法满足不同场景的需求。
先有的定制点云数据处理器,普遍采用利用专用集成电路或者现场可编程门阵列(FPGA)的方式,来实现点云数据处理器的定制。基于专用集成电路设计的点云数据处理器,具有运行速度快,功耗低的特点,但是设计流程复杂,硬件结构固定,难以满足不同应用场景下的需求。基于FPGA设计的点云数据处理器,虽然具有一定的灵活性,但是运行速度低,硬件开销以及功耗较高。上述两种方案,设计者在设计时候,不仅仅需要了解硬件结构的知识,同时还需要了解软件方面的知识,导致开发周期长,难度高。
发明内容
本发明所要解决的技术问题是现有的定制点云数据处理器方法开发难度大、开发效率低,很难满足点云数据处理器在不同应用场景下的性能需求。本发明目的在于提供一种适用于点云数据处理器的自动化设计方法及装置,本发明设计了一个自动化的专用处理器生成框架,来针对不同的应用场景,生成专用的点云数据处理器,是降低点云处理器开发难度,提高点云数据处理器性能的关键技术。
本发明装置可以通过分析用户定义的点云数据处理流程的性能瓶颈,来自动生成专用的点云数据处理器硬件结构,通过优化点云数据处理器的数据流,控制流,来实现点云数据处理器的快速定制生成。相比于GPU、FPGA以及ASIC,该自动设计方法以及装置可以降低点云数据处理器的开发周期,可以提高点云数据的处理器性能。
本发明通过下述技术方案实现:
第一方面,本发明提供了一种适用于点云数据处理器的自动化设计方法,该自动化设计方法包括以下步骤:
S1:获取点云数据处理流程图,及获取用户定义的约束文件;
S2:根据所述点云数据处理流程图,通过利用性能分析软件,从计算资源利用率,存储资源,存储带宽资源需求等方面,定位点云数据处理流程中的性能瓶颈,并生成点云数据处理性能瓶颈分析报告;
S3:根据所述点云数据处理流程图、用户定义的约束文件和所述点云数据处理性能瓶颈分析报告,通过调用对应的硬件模板参数,生成对应的点云数据处理器的硬件微结构以及对应的硬件微结构描述文件;
S4:根据所述点云数据处理流程图及对应的硬件微结构描述文件,优化硬件模板的参数,不断迭代优化硬件执行过程中的任务调度、数据流调度策略;同时,根据任务调度以及数据流调度策略,生成优化的控制流以及对应的点云数据处理器控制流描述文件;
S5:根据所述硬件微结构描述文件、点云数据处理器控制流描述文件,从预先定义的点云数据处理硬件库中选择对应的硬件模块,基于所述硬件微结构描述文件及控制流描述文件,生成对应的硬件逻辑以及控制逻辑;
S6:基于生成的硬件逻辑以及控制逻辑,采用硬件描述语言,生成对应的硬件代码,并将硬件代码转换为硬件电路。
工作原理是:基于现有的定制点云数据处理器方法开发难度大、开发效率低,很难满足点云数据处理器在不同应用场景下的性能需求。本发明提供了一种适用于点云数据处理器的自动化设计框架,所述的自动化设计框架通过分析点云数据处理程序,来构建点云数据处理流程图;基于点云数据处理流程图,基于性能分析软件,快速定位数据分析流程的性能瓶颈;基于性能瓶颈分析报告,快速生成满足用户需求的点云数据处理器硬件结构以及对应的硬件描述语言代码,最终生成满足用户约束的高性能,低功耗的专用点云数据处理器,降低点云数据处理器的设计周期,提高自动驾驶领域中点云数据处理的性能。
本发明用于降低点云数据处理器的开发难度,满足点云数据处理器在不同应用场景下的性能需求,提高点云数据处理器的开发效率。
进一步地,步骤S1中获取点云数据处理流程图,包括:
获取并分析用户构建的点云数据处理程序(即流程方案),按照预定义的程序模板,将用户构建的点云数据处理程序进行匹配,构建成有向无环图,从而形成用户定义的点云数据处理流程图。
进一步地,所述点云数据处理流程图包含点云数据处理所采用的预处理方案,点云数据构建方案,卷积神经网络层数,卷积层的输入输出大小,卷积核大小,激活值以及权重值位宽,图卷积神经网络层数,图卷积层的输入输出大小,邻接矩阵的大小,激活值以及权重值位宽。
进一步地,步骤S1中获取的用户定义的约束文件,所述用户定义的约束文件主要包括性能约束文件和资源约束文件,所述性能约束文件包括生成的点云数据处理器的延迟,吞吐量,功耗;所述资源约束文件包括目标部署平台上生成的点云处理器所消耗的计算单元资源、片上存储资源、片外存储带宽资源。
进一步地,步骤S3中生成的硬件微结构描述文件包括:
针对点云数据处理流程中的每个阶段,定义了输入输出数据片上存储容量,输入输出数据位宽,计算单元数量;
同时,针对卷积神经网络阶段,还包含权重数据片上存储容量以及位宽,偏置数据片上存储容量以及位宽;针对图卷积神经网络阶段,还包含权重数据片上存储容量以及位宽,偏置数据片上存储容量以及位宽,邻接图的数据片上存储容量以及位宽。
进一步地,该自动化设计方法用于分析点云数据处理的全过程;
该自动化设计方法通过分析点云数据处理流程中的访存模式、带宽需求、计算需求,定位点云数据处理过程中存在的性能瓶颈以及引起瓶颈产生的关键原因;依据分析得到的性能瓶颈来划分硬件资源,实现点云数据处理的性能加速。
进一步地,该自动化设计方法在生成点云数据处理器硬件微结构的同时,生成点云数据处理器的控制指令,用于控制点云数据处理器的指令加载,权重加载,数据流路径选择等。
第二方面,本发明还提供了一种适用于点云数据处理器的自动化设计装置,该装置支持所述的一种适用于点云数据处理器的自动化设计方法,该装置包括:
用户输入模块,用于获取解析用户定义的点云数据处理描述程序文件和用户定义的约束文件;
点云数据处理流程图生成模块,用于分析所述点云数据处理描述程序文件,拆解点云数据处理流程,结合预定义模板,生成对应的点云数据处理器流程图;
点云数据处理流程性能分析模块,用于分析所述点云数据处理流程图中每个处理流程的性能,并定位点云数据处理流程的性能瓶颈,生成点云数据处理性能分析报告;
点云数据处理器微结构描述生成模块,用于根据所述点云数据处理性能分析报告、点云数据处理流程图和用户定义的约束文件,生成对应的点云数据处理器硬件微结构,并生成对应的微结构描述文件;
点云数据处理器控制流描述生成模块,用于根据所述点云数据处理性能分析报告、点云数据处理流程图、用户定义的约束文件和微结构描述文件,迭代优化点云数据处理器的计算流以及控制流,并生成对应的点云数据处理器控制流描述文件;
点云数据处理器硬件电路生成模块,用于根据所述点云数据处理性能分析报告、点云数据处理流程图、用户定义的约束文件、微结构描述文件和点云数据处理器控制流描述文件,结合预先定义的参数可配置硬件模板,生成对应的硬件电路描述语言,并将硬件描述语言转化为硬件电路。
进一步地,用户输入模块中获取的用户定义的约束文件,所述用户定义的约束文件主要包括性能约束文件和资源约束文件,所述性能约束文件包括生成的点云数据处理器的延迟,吞吐量,功耗;所述资源约束文件包括目标部署平台上生成的点云处理器所消耗的计算单元资源、片上存储资源、片外存储带宽资源。
进一步地,所述点云数据处理流程图生成模块中生成的点云数据处理器流程图包含点云数据处理所采用的预处理方案,点云数据构建方案,卷积神经网络层数,卷积层的输入输出大小,卷积核大小,激活值以及权重值位宽,图卷积神经网络层数,图卷积层的输入输出大小,邻接矩阵的大小,激活值以及权重值位宽。
进一步地,所述点云数据处理器微结构描述生成模块中生成的硬件微结构描述文件包括:
针对点云数据处理流程中的每个阶段,定义了输入输出数据片上存储容量,输入输出数据位宽,计算单元数量;
同时,针对卷积神经网络阶段,还包含权重数据片上存储容量以及位宽,偏置数据片上存储容量以及位宽;针对图卷积神经网络阶段,还包含权重数据片上存储容量以及位宽,偏置数据片上存储容量以及位宽,邻接图的数据片上存储容量以及位宽。
本发明与现有技术相比,具有如下的优点和有益效果:
1、本发明提供了一种适用于点云数据处理器的自动化设计框架,所述的自动化设计框架通过分析点云数据处理程序,来构建点云数据处理流程图;基于点云数据处理流程图,基于性能分析软件,快速定位数据分析流程的性能瓶颈;基于性能瓶颈分析报告,快速生成满足用户需求的点云数据处理器硬件结构以及对应的硬件描述语言代码,最终生成满足用户约束的高性能,低功耗的专用点云数据处理器,降低点云数据处理器的设计周期,提高自动驾驶领域中点云数据处理的性能。
2、本发明用于降低点云数据处理器的开发难度,满足点云数据处理器在不同应用场景下的性能需求,提高点云数据处理器的开发效率。
附图说明
此处所说明的附图用来提供对本发明实施例的进一步理解,构成本申请的一部分,并不构成对本发明实施例的限定。在附图中:
图1是本发明实施例1的一种适用于点云数据处理器的自动化设计方法流程图;
图2是本发明实施例1的一种适用于点云数据处理器硬件结构图;
图3是本发明实施例2的一种适用于点云数据处理器的自动化设计装置图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明作进一步的详细说明,本发明的示意性实施方式及其说明仅用于解释本发明,并不作为对本发明的限定。
实施例1
本发明提供了一种适用于点云数据处理器的自动化设计框架,所述的自动化设计框架通过分析点云数据处理程序,来构建点云数据处理流程图。基于点云数据处理流程图,基于性能分析软件,快速定位数据分析流程的性能瓶颈。基于性能瓶颈分析报告,通过优化点云数据处理器的硬件结构,数据流,控制器,来快速生成满足用户需求的点云数据处理器硬件结构以及对应的硬件描述语言代码,最终生成满足用户约束的高性能,低功耗的专用点云数据处理器。
本发明用于降低点云数据处理器的开发难度,满足点云数据处理器在不同应用场景下的性能需求,提高点云数据处理器的开发效率。
如图1所示,本发明一种适用于点云数据处理器的自动化设计方法,该自动化设计方法包括以下步骤:
S1:获取点云数据处理流程图,及获取用户定义的约束文件;
具体地:步骤S1中获取点云数据处理流程图,包括:
获取并分析用户构建的点云数据处理程序(即流程方案),按照预定义的程序模板,将用户构建的点云数据处理程序进行匹配,构建成有向无环图,从而形成用户定义的点云数据处理流程图。其中,所述点云数据处理流程图包含点云数据处理所采用的预处理方案,点云数据构建方案,卷积神经网络层数,卷积层的输入输出大小,卷积核大小,激活值以及权重值位宽,图卷积神经网络层数,图卷积层的输入输出大小,邻接矩阵的大小,激活值以及权重值位宽。
具体地,步骤S1中获取的用户定义的约束文件,所述用户定义的约束文件主要包括性能约束文件和资源约束文件,所述性能约束文件包括生成的点云数据处理器的延迟,吞吐量,功耗;所述资源约束文件包括目标部署平台上生成的点云处理器所消耗的计算单元资源、片上存储资源、片外存储带宽资源。
S2:根据所述点云数据处理流程图,通过利用性能分析软件,从计算资源利用率,存储资源,存储带宽资源需求等方面,定位点云数据处理流程中的性能瓶颈,并生成点云数据处理性能瓶颈分析报告;
S3:根据所述点云数据处理流程图、用户定义的约束文件和所述点云数据处理性能瓶颈分析报告,通过调用对应的硬件模板参数,生成对应的点云数据处理器的硬件微结构以及对应的硬件微结构描述文件;
具体地,步骤S3中生成的硬件微结构描述文件包括:
针对点云数据处理流程中的每个阶段,定义了输入输出数据片上存储容量,输入输出数据位宽,计算单元数量;
同时,针对卷积神经网络阶段,还包含权重数据片上存储容量以及位宽,偏置数据片上存储容量以及位宽;针对图卷积神经网络阶段,不仅仅包含权重数据片上存储容量以及位宽,偏置数据片上存储容量以及位宽,还包含邻接图的数据片上存储容量以及位宽。
S4:根据所述点云数据处理流程图及对应的硬件微结构描述文件,优化硬件模板的参数,不断迭代优化硬件执行过程中的任务调度、数据流调度策略;同时,根据任务调度以及数据流调度策略,生成优化的控制流以及对应的点云数据处理器控制流描述文件;
S5:根据所述硬件微结构描述文件、点云数据处理器控制流描述文件,从预先定义的点云数据处理硬件库中选择对应的硬件模块,基于所述硬件微结构描述文件及控制流描述文件,生成对应的硬件逻辑以及控制逻辑;
S6:基于生成的硬件逻辑以及控制逻辑,采用硬件描述语言,生成对应的硬件代码,并将硬件代码转换为硬件电路。
为了进一步的对本实施例进行说明,该自动化设计方法用于分析点云数据处理的全过程;
该自动化设计方法通过分析点云数据处理流程中的访存模式、带宽需求、计算需求,定位点云数据处理过程中存在的性能瓶颈以及引起瓶颈产生的关键原因;依据分析得到的性能瓶颈来划分硬件资源,实现点云数据处理的性能加速。
为了进一步的对本实施例进行说明,该自动化设计方法在生成点云数据处理器硬件微结构的同时,生成点云数据处理器的控制指令,用于控制点云数据处理器的指令加载,权重加载,数据流路径选择等。
本发明可自动生成点云数据处理器的硬件结构,该结构基于数据预处理,数据计算,数据存储,控制四个阶段构建。
数据预处理结构用于对点云数据进行预处理,实现点云数据的归一化,以及离散点云数据到体素或者图的构建;
数据计算阶段结构,包括神经网络计算单元,图神经网络计算单元,用于参与点云数据特征提取的相关神经网络计算。
数据存储节点包括片上输入,输出,以及中间数据的存储。包含神经网络的权重,偏置,以及邻接矩阵的数据。
控制结构包含指令译码以及控制逻辑电路,用于解析指令,产生控制信号,用于实现点云数据处理器的计算调度,数据存储,以及数据计算的控制。
图2为本发明提供的可自动生成的点云数据处理器硬件结构。该点云数据处理器硬件结构由三个部分组成,包括存储单元,计算单元,控制单元。
控制单元与存储单元以及计算单元相连。控制单元从存储单元中读取控制指令,并利用译码单元进行解析,产生译码信号,来实现对于计算单元,以及存储单元的控制。
存储单元为点云处理器的片上数据存储模块,用于存储输入数据,输出数据,神经网络涉及的权重数据,偏置数据,计算过程中产生的中间数据,以及指令数据。输入数据包含输入的原始点云数据,以及参与中间层计算的数据。输出数据包含神经网络的输出数据。指令数据为点云数据处理器的控制指令信息,可被指令译码单元读取,来产生控制指令,调度点云数据处理器的计算,存储过程。
计算单元用于执行点云数据相关的神经网络计算,包含卷积神经网络计算,以及图卷积神经网络计算。计算单元与存储单元以及控制单元相连,计算单元依据控制单元产生的信号来执行相应的神经网络计算。计算单元从存储单元中读取输入数据,计算产生的中间数据,存储在片上或者片下,随着下一次计算的进行,中间数据作为输入被再次读入。
本发明一种适用于点云数据处理器的自动化设计方法,可以依据点云数据处理流程图,用户定义的约束文件,构建点云数据处理器的硬件结构,并依据点云数据处理器的硬件结构,结合参数可重配置的硬件模板,来生成点云数据处理器的硬件语言描述代码。
为了快速实现点云数据处理器的设计,本发明提供了参数可重配置的硬件模板,使得自动化设计框架,通过调用硬件模板,不断优化调整硬件模板的参数,来快速定制点云数据处理器的硬件结构。硬件模板包括但不限于,点云预处理模板,图构建模板,卷积计算单元,池化单元,激活单元等。
实施例2
如图3所示,本实施例与实施例1的区别在于,该装置支持实施例1所述的一种适用于点云数据处理器的自动化设计方法,该装置包括:
用户输入模块,用于获取解析用户定义的点云数据处理描述程序文件和用户定义的约束文件;具体地:
获取并分析用户构建的点云数据处理程序(即流程方案),按照预定义的程序模板,将用户构建的点云数据处理程序进行匹配,构建成有向无环图,从而形成用户定义的点云数据处理流程图。
获取的用户定义的约束文件,所述用户定义的约束文件主要包括性能约束文件和资源约束文件,所述性能约束文件包括生成的点云数据处理器的延迟,吞吐量,功耗;所述资源约束文件包括目标部署平台上生成的点云处理器所消耗的计算单元资源、片上存储资源、片外存储带宽资源。
点云数据处理流程图生成模块,用于分析所述点云数据处理描述程序文件,拆解点云数据处理流程,结合预定义模板,生成对应的点云数据处理器流程图;具体地:
生成的点云数据处理器流程图包含点云数据处理所采用的预处理方案,点云数据构建方案,卷积神经网络层数,卷积层的输入输出大小,卷积核大小,激活值以及权重值位宽,图卷积神经网络层数,图卷积层的输入输出大小,邻接矩阵的大小,激活值以及权重值位宽。
点云数据处理流程性能分析模块,用于分析所述点云数据处理流程图中每个处理流程的性能,并定位点云数据处理流程的性能瓶颈,生成点云数据处理性能分析报告;
点云数据处理器微结构描述生成模块,用于根据所述点云数据处理性能分析报告、点云数据处理流程图和用户定义的约束文件,生成对应的点云数据处理器硬件微结构,并生成对应的硬件微结构描述文件;具体地:
生成的硬件微结构描述文件包括:
针对点云数据处理流程中的每个阶段,定义了输入输出数据片上存储容量,输入输出数据位宽,计算单元数量;同时,针对卷积神经网络阶段,还包含权重数据片上存储容量以及位宽,偏置数据片上存储容量以及位宽;针对图卷积神经网络阶段,不仅仅包含权重数据片上存储容量以及位宽,偏置数据片上存储容量以及位宽,还包含邻接图的数据片上存储容量以及位宽。
点云数据处理器控制流描述生成模块,用于根据所述点云数据处理性能分析报告、点云数据处理流程图、用户定义的约束文件和微结构描述文件,迭代优化点云数据处理器的计算流以及控制流,并生成对应的点云数据处理器控制流描述文件;
点云数据处理器硬件电路生成模块,用于根据所述点云数据处理性能分析报告、点云数据处理流程图、用户定义的约束文件、微结构描述文件和点云数据处理器控制流描述文件,结合预先定义的参数可配置硬件模板,生成对应的硬件电路描述语言,并将硬件描述语言转化为硬件电路。
本发明方法及装置用于降低点云数据处理器的开发难度,满足点云数据处理器在不同应用场景下的性能需求,提高点云数据处理器的开发效率。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种适用于点云数据处理器的自动化设计方法,其特征在于,该自动化设计方法包括以下步骤:
S1:获取点云数据处理流程图,及获取用户定义的约束文件;
S2:根据所述点云数据处理流程图,通过利用性能分析软件,定位点云数据处理流程中的性能瓶颈,并生成点云数据处理性能瓶颈分析报告;
S3:根据所述点云数据处理流程图、用户定义的约束文件和所述点云数据处理性能瓶颈分析报告,通过调用对应的硬件模板参数,生成对应的点云数据处理器的硬件微结构以及对应的硬件微结构描述文件;
S4:根据所述点云数据处理流程图及对应的硬件微结构描述文件,优化硬件模板的参数,不断迭代优化硬件执行过程中的任务调度、数据流调度策略;同时,根据任务调度以及数据流调度策略,生成优化的控制流以及对应的点云数据处理器控制流描述文件;
S5:根据所述硬件微结构描述文件、点云数据处理器控制流描述文件,从预先定义的点云数据处理硬件库中选择对应的硬件模块,基于所述硬件微结构描述文件及控制流描述文件,生成对应的硬件逻辑以及控制逻辑;
S6:基于生成的硬件逻辑以及控制逻辑,采用硬件描述语言,生成对应的硬件代码,并将硬件代码转换为硬件电路。
2.根据权利要求1所述的一种适用于点云数据处理器的自动化设计方法,其特征在于,步骤S1中获取点云数据处理流程图,包括:
获取并分析用户构建的点云数据处理程序,按照预定义的程序模板,将用户构建的点云数据处理程序进行匹配,构建成有向无环图,从而形成用户定义的点云数据处理流程图。
3.根据权利要求2所述的一种适用于点云数据处理器的自动化设计方法,其特征在于,所述点云数据处理流程图包含点云数据处理所采用的预处理方案,点云数据构建方案,卷积神经网络层数,卷积层的输入输出大小,卷积核大小,激活值以及权重值位宽,图卷积神经网络层数,图卷积层的输入输出大小,邻接矩阵的大小,激活值以及权重值位宽。
4.根据权利要求1所述的一种适用于点云数据处理器的自动化设计方法,其特征在于,步骤S1中获取的用户定义的约束文件,所述用户定义的约束文件包括性能约束文件和资源约束文件,所述性能约束文件包括生成的点云数据处理器的延迟,吞吐量,功耗;所述资源约束文件包括目标部署平台上生成的点云处理器所消耗的计算单元资源、片上存储资源、片外存储带宽资源。
5.根据权利要求1所述的一种适用于点云数据处理器的自动化设计方法,其特征在于,步骤S3中生成的硬件微结构描述文件包括:
针对点云数据处理流程中的每个阶段,定义了输入输出数据片上存储容量,输入输出数据位宽,计算单元数量;
同时,针对卷积神经网络阶段,还包含权重数据片上存储容量以及位宽,偏置数据片上存储容量以及位宽;针对图卷积神经网络阶段,还包含权重数据片上存储容量以及位宽,偏置数据片上存储容量以及位宽,邻接图的数据片上存储容量以及位宽。
6.根据权利要求1所述的一种适用于点云数据处理器的自动化设计方法,其特征在于,该自动化设计方法用于分析点云数据处理的全过程;
该自动化设计方法通过分析点云数据处理流程中的访存模式、带宽需求、计算需求,定位点云数据处理过程中存在的性能瓶颈以及引起瓶颈产生的关键原因;依据分析得到的性能瓶颈来划分硬件资源,实现点云数据处理的性能加速。
7.根据权利要求1所述的一种适用于点云数据处理器的自动化设计方法,其特征在于,该自动化设计方法在生成点云数据处理器硬件微结构的同时,生成点云数据处理器的控制指令,用于控制点云数据处理器的指令加载,权重加载,数据流路径选择。
8.一种适用于点云数据处理器的自动化设计装置,其特征在于,该装置支持如权利要求1至7中任一所述的一种适用于点云数据处理器的自动化设计方法,该装置包括:
用户输入模块,用于获取解析用户定义的点云数据处理描述程序文件和用户定义的约束文件;
点云数据处理流程图生成模块,用于分析所述点云数据处理描述程序文件,拆解点云数据处理流程,结合预定义模板,生成对应的点云数据处理器流程图;
点云数据处理流程性能分析模块,用于分析所述点云数据处理流程图中每个处理流程的性能,并定位点云数据处理流程的性能瓶颈,生成点云数据处理性能分析报告;
点云数据处理器微结构描述生成模块,用于根据所述点云数据处理性能分析报告、点云数据处理流程图和用户定义的约束文件,生成对应的点云数据处理器硬件微结构,并生成对应的微结构描述文件;
点云数据处理器控制流描述生成模块,用于根据所述点云数据处理性能分析报告、点云数据处理流程图、用户定义的约束文件和微结构描述文件,迭代优化点云数据处理器的计算流以及控制流,并生成对应的点云数据处理器控制流描述文件;
点云数据处理器硬件电路生成模块,用于根据所述点云数据处理性能分析报告、点云数据处理流程图、用户定义的约束文件、微结构描述文件和点云数据处理器控制流描述文件,结合预先定义的参数可配置硬件模板,生成对应的硬件电路描述语言,并将硬件描述语言转化为硬件电路。
9.根据权利要求8所述的一种适用于点云数据处理器的自动化设计装置,其特征在于,所述点云数据处理流程图生成模块中生成的点云数据处理器流程图包含点云数据处理所采用的预处理方案,点云数据构建方案,卷积神经网络层数,卷积层的输入输出大小,卷积核大小,激活值以及权重值位宽,图卷积神经网络层数,图卷积层的输入输出大小,邻接矩阵的大小,激活值以及权重值位宽。
10.根据权利要求8所述的一种适用于点云数据处理器的自动化设计装置,其特征在于,所述点云数据处理器微结构描述生成模块中生成的硬件微结构描述文件包括:
针对点云数据处理流程中的每个阶段,定义了输入输出数据片上存储容量,输入输出数据位宽,计算单元数量;
同时,针对卷积神经网络阶段,还包含权重数据片上存储容量以及位宽,偏置数据片上存储容量以及位宽;针对图卷积神经网络阶段,还包含权重数据片上存储容量以及位宽,偏置数据片上存储容量以及位宽,邻接图的数据片上存储容量以及位宽。
CN202110943800.7A 2021-08-17 2021-08-17 一种适用于点云数据处理器的自动化设计方法及装置 Active CN113657059B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110943800.7A CN113657059B (zh) 2021-08-17 2021-08-17 一种适用于点云数据处理器的自动化设计方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110943800.7A CN113657059B (zh) 2021-08-17 2021-08-17 一种适用于点云数据处理器的自动化设计方法及装置

Publications (2)

Publication Number Publication Date
CN113657059A true CN113657059A (zh) 2021-11-16
CN113657059B CN113657059B (zh) 2023-05-09

Family

ID=78480027

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110943800.7A Active CN113657059B (zh) 2021-08-17 2021-08-17 一种适用于点云数据处理器的自动化设计方法及装置

Country Status (1)

Country Link
CN (1) CN113657059B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101517576A (zh) * 2006-05-22 2009-08-26 相干罗辑公司 基于软件程序在处理系统上的运行而设计asic
US20090254874A1 (en) * 2006-05-18 2009-10-08 Subhasis Bose Methods and systems for placement and routing
US20150121319A1 (en) * 2013-10-25 2015-04-30 Altera Corporation Methods and tools for designing integrated circuits with auto-pipelining capabilities
US9272418B1 (en) * 2014-09-02 2016-03-01 The Johns Hopkins University System and method for flexible human-machine collaboration
CN107016175A (zh) * 2017-03-23 2017-08-04 中国科学院计算技术研究所 适用神经网络处理器的自动化设计方法、装置及优化方法
US20200380369A1 (en) * 2019-05-31 2020-12-03 Nvidia Corporation Training a neural network using selective weight updates

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090254874A1 (en) * 2006-05-18 2009-10-08 Subhasis Bose Methods and systems for placement and routing
CN101517576A (zh) * 2006-05-22 2009-08-26 相干罗辑公司 基于软件程序在处理系统上的运行而设计asic
US20150121319A1 (en) * 2013-10-25 2015-04-30 Altera Corporation Methods and tools for designing integrated circuits with auto-pipelining capabilities
US9272418B1 (en) * 2014-09-02 2016-03-01 The Johns Hopkins University System and method for flexible human-machine collaboration
CN107016175A (zh) * 2017-03-23 2017-08-04 中国科学院计算技术研究所 适用神经网络处理器的自动化设计方法、装置及优化方法
US20200380369A1 (en) * 2019-05-31 2020-12-03 Nvidia Corporation Training a neural network using selective weight updates

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
吴远民: "ASIC芯片的block-level的物理设计与研究", 《中国优秀硕士学位论文全文数据库(电子期刊)》 *
廖湘科等: "新型高性能计算系统与技术", 《中国科学:信息科学》 *

Also Published As

Publication number Publication date
CN113657059B (zh) 2023-05-09

Similar Documents

Publication Publication Date Title
Kwon et al. Heterogeneous dataflow accelerators for multi-DNN workloads
WO2018171717A1 (zh) 面向神经网络处理器的自动化设计方法和系统
CN110633153A (zh) 一种用多核处理器实现神经网络模型拆分方法及相关产品
US20210350233A1 (en) System and Method for Automated Precision Configuration for Deep Neural Networks
CN110826708B (zh) 一种用多核处理器实现神经网络模型拆分方法及相关产品
CN111539526B (zh) 一种神经网络卷积的方法和设备
CN110689121A (zh) 一种用多核处理器实现神经网络模型拆分方法及相关产品
US20210081201A1 (en) Utilizing structured sparsity in systolic arrays
CN112817730B (zh) 深度神经网络服务批处理调度方法、系统及gpu
CN109871951A (zh) 一种深度学习处理器及电子设备
Jahanshahi et al. Inf4Edge: Automatic resource-aware generation of energy-efficient CNN inference accelerator for edge embedded FPGAs
CN113554161A (zh) 一种神经网络加速器编译方法及装置
CN112200310B (zh) 智能处理器、数据处理方法及存储介质
Zhang et al. A locally distributed mobile computing framework for dnn based android applications
CN110648768B (zh) 一种pom海洋模式优化方法及装置
CN113657059B (zh) 一种适用于点云数据处理器的自动化设计方法及装置
CN116468078A (zh) 面向人工智能芯片的智能引擎处理方法和装置
CN113420466B (zh) 一种面向跨平台自动性能优化的单元计算构件及方法
CN114239816B (zh) 一种卷积神经网络-图卷积神经网络可重构硬件加速架构
CN115860066A (zh) 一种基于批处理的神经网络推理流水线复用的方法
WO2023056370A1 (en) Mixing sparsity compression
CN112753016A (zh) 神经网络中数据预处理阶段的计算资源的管理方法和装置
CN115860061A (zh) 图神经网络优化方法和图神经网络推理系统
CN112149826B (zh) 深度神经网络推理计算中一种基于Profile图的优化方法
US20220164510A1 (en) Automated design of field programmable gate array or other logic device based on artificial intelligence and vectorization of behavioral source code

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