一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

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

2021-11-18 01:45:00 来源:中国专利 TAG:


1.本发明涉及集成电路领域及人工智能领域,具体涉及一种适用于点云数据处理器的自动化设计方法及装置。


背景技术:

2.随着大数据,智能技术的不断发展,将人工智能与传统工业结合的自动驾驶技术进入了快速发展期。自动驾驶技术的成熟,能够对人类出行以及生活方式的产生重大变革,同时还会对物流,通信等行业产生重要影响,因此成为政府,企业关注的重点。在自动驾驶应用中,基于3d点云数据,来实现对周围环境的高精度构建,是自动驾驶技术广泛应用于生活的关键技术之一。然而,由于自动驾驶场景的复杂,使得处理点云数据所采用的神经网络的规模不断增加,对于点云数据处理的流程也日趋复杂,造成点云数据处理过程中,计算量以及数据量不断攀升,进而导致传统的通用处理器在处理点云数据时,出现延迟高,功耗高的问题,造成其无法满足自动驾驶应用的需求。因此,构建满足自动驾驶需求的高性能低功耗的点云数据处理器成为企业界和工业界关注的重点。
3.传统的通用处理器在面对大规模的点云数据处理器时,由于其成本高,功耗大,使得其无法满足自动驾驶应用的需求。同时,面向边缘端构建的低功耗通用处理器,由于其计算资源低,性能差,导致应用的性能无法满足自动驾驶实时性的需求。基于此,通过定制专用的处理器,来实现点云数据的加速处理,成为企业界和工业界重点关注的对象。然而,定制的专用数据处理器,由于点云数据应用场景的变化,导致定制的专用处理器具有的单一硬件结构无法满足多变的应用场景需求。同时,点云数据处理流程,以及采用神经网络模型的变化,使得定制的专用点云数据处理器无法满足不同场景的需求。
4.先有的定制点云数据处理器,普遍采用利用专用集成电路或者现场可编程门阵列(fpga)的方式,来实现点云数据处理器的定制。基于专用集成电路设计的点云数据处理器,具有运行速度快,功耗低的特点,但是设计流程复杂,硬件结构固定,难以满足不同应用场景下的需求。基于fpga设计的点云数据处理器,虽然具有一定的灵活性,但是运行速度低,硬件开销以及功耗较高。上述两种方案,设计者在设计时候,不仅仅需要了解硬件结构的知识,同时还需要了解软件方面的知识,导致开发周期长,难度高。


技术实现要素:

5.本发明所要解决的技术问题是现有的定制点云数据处理器方法开发难度大、开发效率低,很难满足点云数据处理器在不同应用场景下的性能需求。本发明目的在于提供一种适用于点云数据处理器的自动化设计方法及装置,本发明设计了一个自动化的专用处理器生成框架,来针对不同的应用场景,生成专用的点云数据处理器,是降低点云处理器开发难度,提高点云数据处理器性能的关键技术。
6.本发明装置可以通过分析用户定义的点云数据处理流程的性能瓶颈,来自动生成专用的点云数据处理器硬件结构,通过优化点云数据处理器的数据流,控制流,来实现点云
数据处理器的快速定制生成。相比于gpu、fpga以及asic,该自动设计方法以及装置可以降低点云数据处理器的开发周期,可以提高点云数据的处理器性能。
7.本发明通过下述技术方案实现:
8.第一方面,本发明提供了一种适用于点云数据处理器的自动化设计方法,该自动化设计方法包括以下步骤:
9.s1:获取点云数据处理流程图,及获取用户定义的约束文件;
10.s2:根据所述点云数据处理流程图,通过利用性能分析软件,从计算资源利用率,存储资源,存储带宽资源需求等方面,定位点云数据处理流程中的性能瓶颈,并生成点云数据处理性能瓶颈分析报告;
11.s3:根据所述点云数据处理流程图、用户定义的约束文件和所述点云数据处理性能瓶颈分析报告,通过调用对应的硬件模板参数,生成对应的点云数据处理器的硬件微结构以及对应的硬件微结构描述文件;
12.s4:根据所述点云数据处理流程图及对应的硬件微结构描述文件,优化硬件模板的参数,不断迭代优化硬件执行过程中的任务调度、数据流调度策略;同时,根据任务调度以及数据流调度策略,生成优化的控制流以及对应的点云数据处理器控制流描述文件;
13.s5:根据所述硬件微结构描述文件、点云数据处理器控制流描述文件,从预先定义的点云数据处理硬件库中选择对应的硬件模块,基于所述硬件微结构描述文件及控制流描述文件,生成对应的硬件逻辑以及控制逻辑;
14.s6:基于生成的硬件逻辑以及控制逻辑,采用硬件描述语言,生成对应的硬件代码,并将硬件代码转换为硬件电路。
15.工作原理是:基于现有的定制点云数据处理器方法开发难度大、开发效率低,很难满足点云数据处理器在不同应用场景下的性能需求。本发明提供了一种适用于点云数据处理器的自动化设计框架,所述的自动化设计框架通过分析点云数据处理程序,来构建点云数据处理流程图;基于点云数据处理流程图,基于性能分析软件,快速定位数据分析流程的性能瓶颈;基于性能瓶颈分析报告,快速生成满足用户需求的点云数据处理器硬件结构以及对应的硬件描述语言代码,最终生成满足用户约束的高性能,低功耗的专用点云数据处理器,降低点云数据处理器的设计周期,提高自动驾驶领域中点云数据处理的性能。
16.本发明用于降低点云数据处理器的开发难度,满足点云数据处理器在不同应用场景下的性能需求,提高点云数据处理器的开发效率。
17.进一步地,步骤s1中获取点云数据处理流程图,包括:
18.获取并分析用户构建的点云数据处理程序(即流程方案),按照预定义的程序模板,将用户构建的点云数据处理程序进行匹配,构建成有向无环图,从而形成用户定义的点云数据处理流程图。
19.进一步地,所述点云数据处理流程图包含点云数据处理所采用的预处理方案,点云数据构建方案,卷积神经网络层数,卷积层的输入输出大小,卷积核大小,激活值以及权重值位宽,图卷积神经网络层数,图卷积层的输入输出大小,邻接矩阵的大小,激活值以及权重值位宽。
20.进一步地,步骤s1中获取的用户定义的约束文件,所述用户定义的约束文件主要包括性能约束文件和资源约束文件,所述性能约束文件包括生成的点云数据处理器的延
迟,吞吐量,功耗;所述资源约束文件包括目标部署平台上生成的点云处理器所消耗的计算单元资源、片上存储资源、片外存储带宽资源。
21.进一步地,步骤s3中生成的硬件微结构描述文件包括:
22.针对点云数据处理流程中的每个阶段,定义了输入输出数据片上存储容量,输入输出数据位宽,计算单元数量;
23.同时,针对卷积神经网络阶段,还包含权重数据片上存储容量以及位宽,偏置数据片上存储容量以及位宽;针对图卷积神经网络阶段,还包含权重数据片上存储容量以及位宽,偏置数据片上存储容量以及位宽,邻接图的数据片上存储容量以及位宽。
24.进一步地,该自动化设计方法用于分析点云数据处理的全过程;
25.该自动化设计方法通过分析点云数据处理流程中的访存模式、带宽需求、计算需求,定位点云数据处理过程中存在的性能瓶颈以及引起瓶颈产生的关键原因;依据分析得到的性能瓶颈来划分硬件资源,实现点云数据处理的性能加速。
26.进一步地,该自动化设计方法在生成点云数据处理器硬件微结构的同时,生成点云数据处理器的控制指令,用于控制点云数据处理器的指令加载,权重加载,数据流路径选择等。
27.第二方面,本发明还提供了一种适用于点云数据处理器的自动化设计装置,该装置支持所述的一种适用于点云数据处理器的自动化设计方法,该装置包括:
28.用户输入模块,用于获取解析用户定义的点云数据处理描述程序文件和用户定义的约束文件;
29.点云数据处理流程图生成模块,用于分析所述点云数据处理描述程序文件,拆解点云数据处理流程,结合预定义模板,生成对应的点云数据处理器流程图;
30.点云数据处理流程性能分析模块,用于分析所述点云数据处理流程图中每个处理流程的性能,并定位点云数据处理流程的性能瓶颈,生成点云数据处理性能分析报告;
31.点云数据处理器微结构描述生成模块,用于根据所述点云数据处理性能分析报告、点云数据处理流程图和用户定义的约束文件,生成对应的点云数据处理器硬件微结构,并生成对应的微结构描述文件;
32.点云数据处理器控制流描述生成模块,用于根据所述点云数据处理性能分析报告、点云数据处理流程图、用户定义的约束文件和微结构描述文件,迭代优化点云数据处理器的计算流以及控制流,并生成对应的点云数据处理器控制流描述文件;
33.点云数据处理器硬件电路生成模块,用于根据所述点云数据处理性能分析报告、点云数据处理流程图、用户定义的约束文件、微结构描述文件和点云数据处理器控制流描述文件,结合预先定义的参数可配置硬件模板,生成对应的硬件电路描述语言,并将硬件描述语言转化为硬件电路。
34.进一步地,用户输入模块中获取的用户定义的约束文件,所述用户定义的约束文件主要包括性能约束文件和资源约束文件,所述性能约束文件包括生成的点云数据处理器的延迟,吞吐量,功耗;所述资源约束文件包括目标部署平台上生成的点云处理器所消耗的计算单元资源、片上存储资源、片外存储带宽资源。
35.进一步地,所述点云数据处理流程图生成模块中生成的点云数据处理器流程图包含点云数据处理所采用的预处理方案,点云数据构建方案,卷积神经网络层数,卷积层的输
入输出大小,卷积核大小,激活值以及权重值位宽,图卷积神经网络层数,图卷积层的输入输出大小,邻接矩阵的大小,激活值以及权重值位宽。
36.进一步地,所述点云数据处理器微结构描述生成模块中生成的硬件微结构描述文件包括:
37.针对点云数据处理流程中的每个阶段,定义了输入输出数据片上存储容量,输入输出数据位宽,计算单元数量;
38.同时,针对卷积神经网络阶段,还包含权重数据片上存储容量以及位宽,偏置数据片上存储容量以及位宽;针对图卷积神经网络阶段,还包含权重数据片上存储容量以及位宽,偏置数据片上存储容量以及位宽,邻接图的数据片上存储容量以及位宽。
39.本发明与现有技术相比,具有如下的优点和有益效果:
40.1、本发明提供了一种适用于点云数据处理器的自动化设计框架,所述的自动化设计框架通过分析点云数据处理程序,来构建点云数据处理流程图;基于点云数据处理流程图,基于性能分析软件,快速定位数据分析流程的性能瓶颈;基于性能瓶颈分析报告,快速生成满足用户需求的点云数据处理器硬件结构以及对应的硬件描述语言代码,最终生成满足用户约束的高性能,低功耗的专用点云数据处理器,降低点云数据处理器的设计周期,提高自动驾驶领域中点云数据处理的性能。
41.2、本发明用于降低点云数据处理器的开发难度,满足点云数据处理器在不同应用场景下的性能需求,提高点云数据处理器的开发效率。
附图说明
42.此处所说明的附图用来提供对本发明实施例的进一步理解,构成本技术的一部分,并不构成对本发明实施例的限定。在附图中:
43.图1是本发明实施例1的一种适用于点云数据处理器的自动化设计方法流程图;
44.图2是本发明实施例1的一种适用于点云数据处理器硬件结构图;
45.图3是本发明实施例2的一种适用于点云数据处理器的自动化设计装置图。
具体实施方式
46.为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明作进一步的详细说明,本发明的示意性实施方式及其说明仅用于解释本发明,并不作为对本发明的限定。
47.实施例1
48.本发明提供了一种适用于点云数据处理器的自动化设计框架,所述的自动化设计框架通过分析点云数据处理程序,来构建点云数据处理流程图。基于点云数据处理流程图,基于性能分析软件,快速定位数据分析流程的性能瓶颈。基于性能瓶颈分析报告,通过优化点云数据处理器的硬件结构,数据流,控制器,来快速生成满足用户需求的点云数据处理器硬件结构以及对应的硬件描述语言代码,最终生成满足用户约束的高性能,低功耗的专用点云数据处理器。
49.本发明用于降低点云数据处理器的开发难度,满足点云数据处理器在不同应用场景下的性能需求,提高点云数据处理器的开发效率。
50.如图1所示,本发明一种适用于点云数据处理器的自动化设计方法,该自动化设计方法包括以下步骤:
51.s1:获取点云数据处理流程图,及获取用户定义的约束文件;
52.具体地:步骤s1中获取点云数据处理流程图,包括:
53.获取并分析用户构建的点云数据处理程序(即流程方案),按照预定义的程序模板,将用户构建的点云数据处理程序进行匹配,构建成有向无环图,从而形成用户定义的点云数据处理流程图。其中,所述点云数据处理流程图包含点云数据处理所采用的预处理方案,点云数据构建方案,卷积神经网络层数,卷积层的输入输出大小,卷积核大小,激活值以及权重值位宽,图卷积神经网络层数,图卷积层的输入输出大小,邻接矩阵的大小,激活值以及权重值位宽。
54.具体地,步骤s1中获取的用户定义的约束文件,所述用户定义的约束文件主要包括性能约束文件和资源约束文件,所述性能约束文件包括生成的点云数据处理器的延迟,吞吐量,功耗;所述资源约束文件包括目标部署平台上生成的点云处理器所消耗的计算单元资源、片上存储资源、片外存储带宽资源。
55.s2:根据所述点云数据处理流程图,通过利用性能分析软件,从计算资源利用率,存储资源,存储带宽资源需求等方面,定位点云数据处理流程中的性能瓶颈,并生成点云数据处理性能瓶颈分析报告;
56.s3:根据所述点云数据处理流程图、用户定义的约束文件和所述点云数据处理性能瓶颈分析报告,通过调用对应的硬件模板参数,生成对应的点云数据处理器的硬件微结构以及对应的硬件微结构描述文件;
57.具体地,步骤s3中生成的硬件微结构描述文件包括:
58.针对点云数据处理流程中的每个阶段,定义了输入输出数据片上存储容量,输入输出数据位宽,计算单元数量;
59.同时,针对卷积神经网络阶段,还包含权重数据片上存储容量以及位宽,偏置数据片上存储容量以及位宽;针对图卷积神经网络阶段,不仅仅包含权重数据片上存储容量以及位宽,偏置数据片上存储容量以及位宽,还包含邻接图的数据片上存储容量以及位宽。
60.s4:根据所述点云数据处理流程图及对应的硬件微结构描述文件,优化硬件模板的参数,不断迭代优化硬件执行过程中的任务调度、数据流调度策略;同时,根据任务调度以及数据流调度策略,生成优化的控制流以及对应的点云数据处理器控制流描述文件;
61.s5:根据所述硬件微结构描述文件、点云数据处理器控制流描述文件,从预先定义的点云数据处理硬件库中选择对应的硬件模块,基于所述硬件微结构描述文件及控制流描述文件,生成对应的硬件逻辑以及控制逻辑;
62.s6:基于生成的硬件逻辑以及控制逻辑,采用硬件描述语言,生成对应的硬件代码,并将硬件代码转换为硬件电路。
63.为了进一步的对本实施例进行说明,该自动化设计方法用于分析点云数据处理的全过程;
64.该自动化设计方法通过分析点云数据处理流程中的访存模式、带宽需求、计算需求,定位点云数据处理过程中存在的性能瓶颈以及引起瓶颈产生的关键原因;依据分析得到的性能瓶颈来划分硬件资源,实现点云数据处理的性能加速。
65.为了进一步的对本实施例进行说明,该自动化设计方法在生成点云数据处理器硬件微结构的同时,生成点云数据处理器的控制指令,用于控制点云数据处理器的指令加载,权重加载,数据流路径选择等。
66.本发明可自动生成点云数据处理器的硬件结构,该结构基于数据预处理,数据计算,数据存储,控制四个阶段构建。
67.数据预处理结构用于对点云数据进行预处理,实现点云数据的归一化,以及离散点云数据到体素或者图的构建;
68.数据计算阶段结构,包括神经网络计算单元,图神经网络计算单元,用于参与点云数据特征提取的相关神经网络计算。
69.数据存储节点包括片上输入,输出,以及中间数据的存储。包含神经网络的权重,偏置,以及邻接矩阵的数据。
70.控制结构包含指令译码以及控制逻辑电路,用于解析指令,产生控制信号,用于实现点云数据处理器的计算调度,数据存储,以及数据计算的控制。
71.图2为本发明提供的可自动生成的点云数据处理器硬件结构。该点云数据处理器硬件结构由三个部分组成,包括存储单元,计算单元,控制单元。
72.控制单元与存储单元以及计算单元相连。控制单元从存储单元中读取控制指令,并利用译码单元进行解析,产生译码信号,来实现对于计算单元,以及存储单元的控制。
73.存储单元为点云处理器的片上数据存储模块,用于存储输入数据,输出数据,神经网络涉及的权重数据,偏置数据,计算过程中产生的中间数据,以及指令数据。输入数据包含输入的原始点云数据,以及参与中间层计算的数据。输出数据包含神经网络的输出数据。指令数据为点云数据处理器的控制指令信息,可被指令译码单元读取,来产生控制指令,调度点云数据处理器的计算,存储过程。
74.计算单元用于执行点云数据相关的神经网络计算,包含卷积神经网络计算,以及图卷积神经网络计算。计算单元与存储单元以及控制单元相连,计算单元依据控制单元产生的信号来执行相应的神经网络计算。计算单元从存储单元中读取输入数据,计算产生的中间数据,存储在片上或者片下,随着下一次计算的进行,中间数据作为输入被再次读入。
75.本发明一种适用于点云数据处理器的自动化设计方法,可以依据点云数据处理流程图,用户定义的约束文件,构建点云数据处理器的硬件结构,并依据点云数据处理器的硬件结构,结合参数可重配置的硬件模板,来生成点云数据处理器的硬件语言描述代码。
76.为了快速实现点云数据处理器的设计,本发明提供了参数可重配置的硬件模板,使得自动化设计框架,通过调用硬件模板,不断优化调整硬件模板的参数,来快速定制点云数据处理器的硬件结构。硬件模板包括但不限于,点云预处理模板,图构建模板,卷积计算单元,池化单元,激活单元等。
77.实施例2
78.如图3所示,本实施例与实施例1的区别在于,该装置支持实施例1所述的一种适用于点云数据处理器的自动化设计方法,该装置包括:
79.用户输入模块,用于获取解析用户定义的点云数据处理描述程序文件和用户定义的约束文件;具体地:
80.获取并分析用户构建的点云数据处理程序(即流程方案),按照预定义的程序模
板,将用户构建的点云数据处理程序进行匹配,构建成有向无环图,从而形成用户定义的点云数据处理流程图。
81.获取的用户定义的约束文件,所述用户定义的约束文件主要包括性能约束文件和资源约束文件,所述性能约束文件包括生成的点云数据处理器的延迟,吞吐量,功耗;所述资源约束文件包括目标部署平台上生成的点云处理器所消耗的计算单元资源、片上存储资源、片外存储带宽资源。
82.点云数据处理流程图生成模块,用于分析所述点云数据处理描述程序文件,拆解点云数据处理流程,结合预定义模板,生成对应的点云数据处理器流程图;具体地:
83.生成的点云数据处理器流程图包含点云数据处理所采用的预处理方案,点云数据构建方案,卷积神经网络层数,卷积层的输入输出大小,卷积核大小,激活值以及权重值位宽,图卷积神经网络层数,图卷积层的输入输出大小,邻接矩阵的大小,激活值以及权重值位宽。
84.点云数据处理流程性能分析模块,用于分析所述点云数据处理流程图中每个处理流程的性能,并定位点云数据处理流程的性能瓶颈,生成点云数据处理性能分析报告;
85.点云数据处理器微结构描述生成模块,用于根据所述点云数据处理性能分析报告、点云数据处理流程图和用户定义的约束文件,生成对应的点云数据处理器硬件微结构,并生成对应的硬件微结构描述文件;具体地:
86.生成的硬件微结构描述文件包括:
87.针对点云数据处理流程中的每个阶段,定义了输入输出数据片上存储容量,输入输出数据位宽,计算单元数量;同时,针对卷积神经网络阶段,还包含权重数据片上存储容量以及位宽,偏置数据片上存储容量以及位宽;针对图卷积神经网络阶段,不仅仅包含权重数据片上存储容量以及位宽,偏置数据片上存储容量以及位宽,还包含邻接图的数据片上存储容量以及位宽。
88.点云数据处理器控制流描述生成模块,用于根据所述点云数据处理性能分析报告、点云数据处理流程图、用户定义的约束文件和微结构描述文件,迭代优化点云数据处理器的计算流以及控制流,并生成对应的点云数据处理器控制流描述文件;
89.点云数据处理器硬件电路生成模块,用于根据所述点云数据处理性能分析报告、点云数据处理流程图、用户定义的约束文件、微结构描述文件和点云数据处理器控制流描述文件,结合预先定义的参数可配置硬件模板,生成对应的硬件电路描述语言,并将硬件描述语言转化为硬件电路。
90.本发明方法及装置用于降低点云数据处理器的开发难度,满足点云数据处理器在不同应用场景下的性能需求,提高点云数据处理器的开发效率。
91.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd

rom、光学存储器等)上实施的计算机程序产品的形式。
92.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流
程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
93.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
94.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
95.以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献