一种用于精密运动控制的异构计算加速方法

文档序号:29616637发布日期:2022-04-13 11:55阅读:72来源:国知局
一种用于精密运动控制的异构计算加速方法

1.本发明涉及精密运动控制及异构加速领域,为对控制周期要求为50us及以上的精密运动控制提供一种用于精密运动控制的异构计算加速方法。


背景技术:

2.在传统的控制算法中,经常会出现大量的矩阵运算、长算式运算等计算。这类计算经过并行化拆分后,各个子算式之前并无前后逻辑顺序。因此如果采用并行化计算的方式可以大幅提高计算效率,缩短计算时间。
3.传统的异构计算时间主要包含数据通信时间和计算时间,其中数据通信时间包括向异构计算板卡传递计算参数时间和异构计算板卡返回计算结果时间。通信时间是衡量异构计算效率的主要因素,通信时间过长将导致异构计算效率低下。
4.用于精密运动控制的控制器具有用于io通信的物理接口,io信号的接入以往需要数据采集板卡。本发明中的异构计算板卡不仅完成传统系统中io数据采集功能,还具备计算核心实现异构计算。借用io通信通道与控制器中的内核驱动模块传递异构计算数据,使得异构计算中通信消耗的额外时间几乎变为零。
5.异构计算部分的算法可以被分为需要参数和不需要参数两种情况:
6.在需要参数的情况,计算参数往往是算法之前计算数据的结果或者历史特定时间的状态参数。这些计算参数会在前一个计算周期由控制算法模型和内核驱动模块下传到异构计算板卡的结果缓存中。周期开始时,异构计算板卡会首先执行异构计算,将计算结果上传给内核驱动模块,内核驱动模块将数据传送给控制算法模型并解开控制算法模型的阻塞状态。控制算法模型继续其余部分的计算。这种情况下,异构计算节省下来的时间为计算核心部分的计算量本来在控制器中计算时间与计算核心部分异构计算时间的差。
7.在异构计算不需要计算参数的情况下,异构计算板卡将在前一个周期将本周期的计算完成并将结果保存在结果缓存中。本周期开始时,会将这些数据随被控对象状态数据一起发送给内核驱动模块。这种情况下,异构计算节省下来的时间为异构计算部分在控制器中执行的时间。


技术实现要素:

8.针对现有技术的不足,本发明提供一种用于精密运动控制的异构计算加速方法。该异构计算加速方法可使用在控制周期大于等于50us的精密运动控制系统,可以使控制算法执行效率更高,系统抖动降低,系统实时性大幅提高。
9.本发明为实现上述目的所采用的技术方案是:
10.一种用于精密运动控制的异构计算加速方法,包括异构计算需要输入参数的情况以及异构计算不需要输入参数的情况,其中,异构计算需要输入参数的情况包括以下步骤:
11.异构计算板卡全局时钟模块触发整个异构计算加速系统本周期工作:异构计算板卡将发送缓存模块中的被控对象控制参数数据发送给被控对象;异构计算板卡从接收缓存
模块中读取被控对象状态数据、从结果缓存模块中读取控制算法模型发送来的上一周期的异构计算结果数据,计算核心模块根据控制算法模型的需求结合被控对象状态数据以及上一个周期的异构计算结果数据进行本周期的异构计算,计算核心模块结束异构计算后,将本周期的异构计算结果数据和被控对象状态数据通过pcie总线发送给内核驱动模块,并将结果保存到结果缓存模块中;
12.内核驱动模块接收到本周期的异构计算结果数据和被控对象的状态数据后立即以阻塞方式发送给控制算法模型;
13.控制算法模型接收到本周期的异构计算结果数据和被控对象状态数据后解开阻塞状态,并基于本周期的异构计算结果数据与被控对象状态数据开始本周期的控制算法计算;控制器将控制算法模型得到的被控对象的控制参数数据和控制算法模型计算结果数据发送给内核驱动模块;
14.内核驱动模块将控制算法模块发送的被控对象的控制参数数据和控制算法模型计算计算结果数据发送给异构计算板卡;
15.异构计算板卡将接收到的来自内核驱动模块的被控对象的控制参数数据保存到发送缓存模块,将来自被控对象的状态数据保存到接收缓存模块,将来自内核驱动模块的控制算法模型计算结果数据保存到结果缓存模块,结束本周期工作,等待下个周期时钟触发。
16.所述异构计算不需要输入参数的情况包括以下步骤:
17.异构计算板卡全局时钟模块触发整个系统本周期工作:异构计算板卡将发送缓存模块中的被控对象控制参数数据发送给被控对象;异构计算板卡从接收缓存模块中读取被控对象状态数据以及从结果缓存模块中读取控制算法模型发送来的上一周期的异构计算结果数据,并通过pcie总线发送给内核驱动模块,同时计算核心模块开启本周期的异构计算并将结果保存到结果缓存模块中;
18.内核驱动模块接收到本周期的异构计算结果数据和被控对象的状态数据后立即以阻塞方式发送给控制算法模型;
19.控制算法模型接收到本周期的异构计算结果数据和被控对象状态数据后解开阻塞状态,并基于本周期的异构计算结果数据与被控对象状态数据开始本周期的控制算法计算;控制器将控制算法模型得到的被控对象的控制参数数据发送给内核驱动模块;
20.内核驱动模块将将控制算法模块发送的被控对象的控制参数数据发送给异构计算板卡;异构计算板卡将接收到的来自内核驱动模块的被控对象的控制参数数据保存到发送缓存模块,将来自被控对象的状态数据保存到接收缓存模块,结束本周期工作,等待下个周期时钟触发。
21.在进行异构计算板卡全局时钟触发整个系统本周期工作之前,进行控制算法计算任务分析及任务划分,具体为:将可并行、可分割部分的异构计算在异构计算板卡的计算核心模块中计算,将除异构计算板卡计算核心模块计算内容之外的算法在控制器中的控制算法模型中计算。
22.一种用于精密运动控制的异构计算加速系统,包括:控制器插有异构计算板卡,控制器和异构计算板卡采用pcie通信协议,通讯卡与被控对象通过io总线通信,控制器内部包含内核驱动模块及控制算法模型,异构计算板卡包含发送缓存模块、接收缓存模块、计算
核心模块、结果缓存模块以及全局时钟模块,其中,
23.控制器,用于根据异构计算结果数据和被控对象状态数据进行控制算法计算,得到被控对象的控制参数数据;
24.异构计算板卡,用于储存被控对象的控制参数数据、状态数据,控制算法模型的结果数据,进行异构计算以及数据通信。
25.所述发送缓存模块用于储存被控对象的控制参数数据;所述接收缓存模块用于储存被控对象的状态数据;所述结果缓存用于储存控制算法模型计算结果数据。
26.所述计算核心模块用于根据控制算法模型的需求结合被控对象状态数据以及上一个周期的异构计算结果数据进行本周期的异构计算。
27.本发明具有以下有益效果及优点:
28.1.提高精密运动控制系统实时性及计算效率。通过将一部分计算工作下移到异构计算板卡中执行,发明减轻了精密运动控制过程中控制器计算负荷。随着异构计算板卡计算资源增多,可以分担控制算法模型更多的计算负荷。因此本发明可以提高精密运动控制的计算效率,降低控制运算的计算时间,并提高系统实时性。
29.2.降低精密运动控制系统抖动。由于异构计算板卡没有操作系统,程序的执行逻辑是固定的。而控制器内部带操作系统,程序执行时很可能会收到系统抖动影响。将精密运动控制的部分计算下分到异构计算板卡中后,控制器内部的计算部分减少,可导致抖动降低,提高了系统的稳定性。
附图说明
30.图1是本发明的系统架构图;
31.图2是本发明异构计算需要计算参数情况下的工作逻辑图;
32.图3是本发明异构计算不需要计算参数情况下的工作逻辑图。
具体实施方式
33.下面结合附图及实施例对本发明做进一步的详细说明。
34.一种用于精密运动控制的异构计算加速方法,使传统精密运动控制能够集成异构计算加速能力,提高系统实时性、降低系统抖动、提高系统运行效率。
35.下面结合附图及实施例对本发明做进一步的详细说明。
36.如图1所示为本发明的系统架构图,系统整体分为控制器、异构计算板卡和被控对象三个部分。其中控制器包含控制算法模型和内核驱动模块;控制器与异构计算板卡通过pcie总线互联;异构计算板卡包括计算核心、结果缓存、全局时钟、发送缓存、接收缓存等;被控对象与异构计算板卡通过io方式互联。
37.控制算法模型在系统运行开始前已经实现任务划分,将可并行、可分割部分的算法在异构计算板卡的计算核心中实现,系统运行时,控制算法模型执行的时除异构计算板卡计算核心计算内容之外的其他计算。
38.如图2所示为本发明异构计算需要计算参数情况下的工作逻辑图。精密运动控制系统经过算法分析和拆分后,如果异构计算加速的部分需要输入参数则执行此工程流程。异构计算板卡的全局时钟在控制周期开始时触发时钟信号开始本控制周期。本控制周期开
始后,异构计算板卡的计算核心从接收缓存读取被控对象的状态数据,同时从结果缓存中读取前一个控制周期控制算法模型的结果数据,于此同时异构计算板卡将发送缓存中的数据通过io总线发送给被控对象。异构计算计算板卡的计算核心使用读取的被控对象状态数据和上个周期控制算法模型结果数据开始本周期的异构加速计算。异构核心计算完成后,将结果数据和被控对象状态数据通过pcie总线发送给控制器的内核驱动模块。次后异构计算板卡处于等待状态。内核驱动模块接收到数据后,将异构计算结果数据和被控对象状态数据发送给控制算法模型。控制算法模型接收到数据后解开阻塞状态开始本周期的计算工作,计算结束后将本周期产生的结果数据和被控对象控制参数发送给内核驱动模块,随后控制算法模型进入阻塞状态。内核驱动模块将结果数据和被控对象控制参数通过pcie总线发送给异构计算板卡。异构计算板卡将结果数据保存在结果缓存中,被控对象控制参数保存在发送缓存中。异构计算板卡等待和接收来自被控对象的状态数据后,将状态数据保存在接收缓存中,结束该控制周期。
39.如图3所示为本发明异构计算不需要计算参数情况下的工作逻辑图。精密运动控制系统经过算法分析和拆分后,如果异构计算加速的部分不需要输入参数则执行此工程流程。异构计算板卡的全局时钟在控制周期开始时触发时钟信号开始本控制周期。本控制周期开始后,异构计算板卡的计算核心从接收缓存读取被控对象的状态数据,同时从结果缓存中读取前一个控制周期异构加速计算的结果数据。异构计算板卡将读取到的被控对象状态数据和前一周期异构计算结果数据通过pcie总线发送给内核驱动模块。于此同时异构计算板卡将发送缓存中的数据通过io总线发送给被控对象。随后异构计算板卡的计算核心开始本周期的异构加速计算,计算内容为下一个控制周期的控制计算,完成计算后将结果数据保存到结果缓存中,并进入等待状态。内核驱动模块接收到数据后,将异构计算结果数据和被控对象状态数据发送给控制算法模型。控制算法模型接收到数据后解开阻塞状态开始本周期的计算工作,计算结束后将本周期产生的被控对象控制参数发送给内核驱动模块,随后控制算法模型进入阻塞状态。内核驱动模块将被控对象控制参数通过pcie总线发送给异构计算板卡。异构计算板卡将被控对象控制参数保存在发送缓存中。异构计算板卡等待和接收来自被控对象的状态数据后,将状态数据保存在接收缓存中,结束该控制周期。
40.一种用于精密运动控制的异构计算加速方法,包括以下步骤:
41.1)控制算法模型在系统运行开始前完成任务划分,将可并行、可分割部分的算法在异构计算板卡的计算核心中实现,控制算法模型负责执行的除异构计算板卡计算核心计算内容之外的其他计算。
42.2)异构计算板卡全局时钟触发整个系统本周期工作。异构计算板卡将发送缓存中的数据发送给被控对象。与此同时,当步骤1)中规划的异构计算需要输入参数时,则:异构计算板卡从接收缓存中读取被控对象状态数据以及从结果缓存中读取之前控制算法模型发送来的结果数据,计算核心根据控制算法模型需求结合被控对象状态数据和控制算法上一个周期反馈回来的模型结果数据进行异构计算,计算核心结束异构计算后,将异构计算结果数据和被控对象状态数据通过pcie总线发送给内核驱动模块;当步骤1)中规划的异构计算不需要输入参数时,异构计算板卡从接收缓存中读取被控对象状态数据以及从结果缓存中读取前一个周期计算核心进行异构计算的结果数据并且从接收缓存中读取被控对象状态数据,并将这些数据发送给内核驱动模块,于此同时计算核心开启本周期的异构计算
并将结果保存到结果缓存中。
43.3)内核驱动模块接收到异构计算结果数据和被控对象的状态数据后立即以阻塞方式发送给用户层的控制算法模型;
44.4)用户层的控制算法模型接收到异构计算结果数据和被控对象状态数据后解开阻塞状态,并基于异构计算结果数据与被控对象状态数据开始本周期的控制算法计算。此时当步骤1)中规划的异构计算需要输入参数时,控制器将控制模型算法得到的被控对象的控制参数数据和模型计算结果数据发送给内核驱动模块;当步骤1)中规划的异构计算不需要输入参数时,控制器将控制模型算法得到的被控对象的控制参数数据发送给内核驱动模块。
45.5)当步骤1)中规划的异构计算需要输入参数时,内核驱动模块将控制算法模块发送的被控对象的控制参数数据和模型计算结果数据发送给异构计算板卡;当步骤1)中规划的异构计算不需要输入参数时,内核驱动模块将将控制算法模块发送的被控对象的控制参数数据发送给异构计算板卡。
46.6)异构计算板卡将接收到的来自内核驱动模块的被控对象的控制参数数据保存在发送缓存中,同时将来自被控对象的状态数据保存到接收缓存。如果步骤1)中规划的异构计算需要输入参数,将接收到的来自内核驱动模块的模型计算结果数据保存到结果缓存中。结束本周期工作,等待下个周期时钟触发,所述结果数据为控制算法当前周期的用户想要保存的全部或者部分异构计算结果,用于参与下个周期异构计算。
47.本发明借用本来需要传输被控对象状态数据和控制参数的数据通道传输异构加速计算的入参和结果数据,抵消掉了传统异构计算加速中的数据通信时间,使异构计算板卡的并行计算能力得到充分的发挥。在异构加速计算需要输入参数的情况下,该方法为系统节省的计算时间为异构计算板卡中计算核心的计算任务在控制器中计算的时间与在计算核心中计算的时间只差;在异构加速计算不需要输入参数的情况下,该方法为系统节省的计算时间是异构计算板卡中计算核心的计算任务在控制器中计算的时间。
48.本发明满足如下要求:
49.(一)控制器基于linux操作系统;
50.(二)异构计算板卡为以fpga芯片为主控芯片的板卡;
51.该方法经过目前测试,可以使用在大于等于50us的精密运动控制系统中。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1