虚拟化云环境下GPU‑CPU混合资源分配系统和方法与流程

文档序号:12363185阅读:317来源:国知局
虚拟化云环境下GPU‑CPU混合资源分配系统和方法与流程
本发明涉及GPU-CPU混合资源分配,具体地,涉及虚拟化云环境下GPU-CPU混合资源分配系统和方法。
背景技术
:当前,随着用于高性能并行处理的云计算技术不断成熟,这种技术极大地提高了资源的利用率并且降低了客户端的成本。这是一个简易有效的提升用户体验与任务效率的方法。对于用户而言,这个趋势能够通过使用智能手机等轻量级客户端来在较少支出的前提下得到同等服务。对于服务提供商而言,用于高性能并行处理的云计算技术同样能够使他们使用同等设备支出提供更好服务。考虑所有或许会在虚拟化云环境下得到更好的运行性能的应用与服务,其中大多数都具有异构资源的混合需求。而对于CPU与GPU运算资源的混合需求就是在这其中的一个典型例子。这种情况导致了在资源分配与调度上的许多困难。这些困难包括如何在有多种异构资源需求的情况下定义每一个任务对于资源的使用量,如何在这种情况下度量某一种资源分配方案的公平性以及效率,还有如何设计真正实际可用的资源分配算法等。论及对于单种类型资源的分配与调度早已存在许多成熟的研究。其中关键性的一点,即对于分配方案公平性的度量,也存在许多各种各样的测度方式。但相比之下,对于多重类型的混合资源分配所进行的研究就要少得多。实际上,最重要的就是如何在具有多重资源需求的情况下准确评判其公平性。在这种情况下,每一个计算任务对于计算资源的需求将不再是一个单独的标量,而是一个向量,同时,对于每一个计算任务的资源分配也是如此。因为计算任务对于资源需求的异构性,这些计算任务中的每一个所需求的不同计算资源之间并非是成比例的。这也就意味着不能简单地以其中一种资源的需求作为计算任务总体资源需求的代表来计算资源分配,而是需要特殊的方法将需求向量标量化以计算其公平度。存在一种使用“主导资源份额(DominantResourceShare)”来进行的资源分配公平性定义:主导资源公平性(DominantResourceFairness)。在此基础上,建立了名为“主导份额公平”(FairnessonDominantShares)的FDS公平性评价函数:fβ,λFDS=sgn(1-β)(Σj=1n(μjxjΣk=1nμkxk)1-β)1β(Σj=1nμjxj)λ]]>其中,表示FDS公平性评价函数;β表示公平性参量;n表示工作任务总种数;μj表示第j种工作任务的主导份额(DominantShare);xj表示第j种工作任务的任务数量;μk表示第k种工作任务的主导份额;xk表示第k种工作任务的任务数量;λ表示效率权重参量;sgn是符号函数;另,使用Ci表示第i种资源的容量,Ri表示第i种资源的需求。然而,虽然可以通过上述FDS公平性评价函数建立对于资源最优化分配的数学理论模型与问题描述,以此可以比较简单的列出几种方案来计算最优资源分配方案,但我们仍然需要将数学上的理论建模转化为实际可运行的算法。事实上,此处的资源分配问题,形成了一个典型的非线性规划问题。周期性的解算这样高复杂度的问题以求得资源分配值是极不可行的,因此我们亦需要建立一个有效算法以降低对于计算资源的额外消耗。对于云端游戏,当前的解决方案仍然尚欠完善。所谓云端游戏,指的是将游戏的主体程序在云端托管,将其运行时所需要进行的大量图形场景渲染计算以及后台变化交互运算等需要占用大量硬件资源的工作任务交由云端进行执行,然后在得到每一帧的渲染图像之后,将这一系列图像作为视频,以流媒体的方式进行压缩与传送,通过网络由客户端接收并还原。在这种情况下,客户端部分的硬件负载仅仅需要承担网络流媒体视频解压播放的任务,极大地减小了客户端的运算资源消耗,使得客户端的硬件性能限制几乎不会再对客户体验产生影响。这正是一个CPU与GPU运算资源混合需求的典型应用场景。对于大多数游戏而言,均具有大量的场景绘制渲染,以及后台的活动、变化的计算任务。这也就意味着其基本上都会涉及到大量的CPU以及GPU资源的占用与消耗。同时对于不同的游戏而言,它们对于CPU与GPU这两种资源分别的消耗一般来说都是各不相同的,这涉及对于异构混合资源分配的需求。另外,游戏在运行过程中,对于两种计算资源的需求一般来说并不是稳定的,而是不断变化的。这意味着云端游戏的完善需要满足其特殊需求的资源分配算法及其相应的工作平台系统。技术实现要素:针对现有技术中的缺陷,本发明的目的是提供一种虚拟化云环境下GPU-CPU混合资源分配系统和方法。根据本发明提供的一种虚拟化云环境下GPU-CPU混合资源分配系统,其特征在于,包括注入模块、分配器;注入模块负责设置钩子,收集进程运行时数据并传出数据,接收来自分配器的资源分配目标值,并通过睡眠方式限制进程占用资源;分配器负责监视进程,执行动态链接库注入,创建进程间通信通道,接收并管理来自注入模块的进程运行时数据,调用资源分配算法得到资源分配目标值,并将资源分配目标值发送给注入模块。优选地,注入模块收集进程运行时数据,然后通过双向管道,传输至分配器;分配器负责接收并汇总进程运行时数据,并以一定时间间隔运行资源分配算法迭代调度资源分配目标值,并通过双向管道将资源分配目标值回传至注入模块;注入模块根据资源分配目标值,通过对FPS高于阈值的进程强制睡眠,以控制运行状态,并收集进程运行时数据作下一周期资源分配。优选地,所述资源分配算法,包括:步骤1:首先计算中间变量S1、S2为:S1=Σj=1nμjxj]]>S2=Σj=1n(μjxj)1-β]]>其中,n表示工作任务总种数;μj表示第j种工作任务的主导份额;xj表示第j种工作任务的任务数量;β表示公平性参量;步骤2:计算公平性评价函数fβ,λFDS=sgn(1-β)(S1)1+λ-1β(S2)1β]]>其中,λ表示效率权重参量;sgn是符号函数;步骤3:计算公平性评价函数梯度向量:▿i=∂fβ,λFDS∂xi=sgn(1-β)(μi(1+λ-1β)(S1)λ-1β(S2)1β+1-ββμi1-βxi-β(S1)1+λ-1β(S2)1β-1)]]>其中,代表公平性评价函数梯度向量的第i个分量;i为正整数;xi表示第i种工作任务的任务数量;μi表示第i种工作任务的主导份额。根据本发明提供的一种虚拟化云环境下GPU-CPU混合资源分配方法,包括:步骤1:首先计算中间变量S1、S2为:S1=Σj=1nμjxj]]>S2=Σj=1n(μjxj)1-β]]>其中,n表示工作任务总种数;μj表示第j种工作任务的主导份额;xj表示第j种工作任务的任务数量;β表示公平性参量;步骤2:计算公平性评价函数fβ,λFDS=sgn(1-β)(S1)1+λ-1β(S2)1β]]>其中,λ表示效率权重参量;sgn是符号函数;步骤3:计算公平性评价函数梯度向量:▿i=∂fβ,λFDS∂xi=sgn(1-β)(μi(1+λ-1β)(S1)λ-1β(S2)1β+1-ββμi1-βxi-β(S1)1+λ-1β(S2)1β-1)]]>其中,代表公平性评价函数梯度向量的第i个分量;i为正整数;xi表示第i种工作任务的任务数量;μi表示第i种工作任务的主导份额。根据本发明提供的一种虚拟化云环境下GPU-CPU混合资源分配系统,包括:第一计算装置:首先计算中间变量S1、S2为:S1=Σj=1nμjxj]]>S2=Σj=1n(μjxj)1-β]]>其中,n表示工作任务总种数;μj表示第j种工作任务的主导份额;xj表示第j种工作任务的任务数量;β表示公平性参量;第二计算装置:计算公平性评价函数fβ,λFDS=sgn(1-β)(S1)1+λ-1β(S2)1β]]>其中,λ表示效率权重参量;sgn是符号函数;第三计算装置:计算公平性评价函数梯度向量:▿i=∂fβ,λFDS∂xi=sgn(1-β)(μi(1+λ-1β)(S1)λ-1β(S2)1β+1-ββμi1-βxi-β(S1)1+λ-1β(S2)1β-1)]]>其中,代表公平性评价函数梯度向量的第i个分量;i为正整数;xi表示第i种工作任务的任务数量;μi表示第i种工作任务的主导份额。与现有技术相比,本发明具有如下的有益效果:本发明提供了FEA算法与资源分配框架,用以高效地进行多重异构混合资源的动态资源分配。通过这个资源分配的操作,提升资源分配的公平性,同时保证其效率。本发明能够显著提升多个CPU-GPU多重混合资源需求任务运行时资源分配的公平性与效率。任务在使用分配算法时的公平性,最高有45%的提升。本发明在提升公平性的同时,也通过FEA算法的约束条件,以保证任务运行的效率质量。附图说明通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:图1为虚拟化云环境下GPU-CPU混合资源分配系统的结构图示意图。图2为整体公平性评价值在不同情况下随时间变化图。具体实施方式下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。根据本发明提供的一种虚拟化云环境下GPU-CPU混合资源分配系统,其特征在于,包括注入模块、分配器;注入模块负责设置钩子,收集进程运行时数据并传出数据,接收来自分配器的资源分配目标值,并通过睡眠方式限制进程占用资源;分配器负责监视进程,执行动态链接库注入,创建进程间通信通道,接收并管理来自注入模块的进程运行时数据,调用资源分配算法得到资源分配目标值,并将资源分配目标值发送给注入模块。优选地,注入模块收集进程运行时数据,然后通过双向管道,传输至分配器;分配器负责接收并汇总进程运行时数据,并以一定时间间隔运行资源分配算法迭代调度资源分配目标值,并通过双向管道将资源分配目标值回传至注入模块;注入模块根据资源分配目标值,通过对FPS高于阈值的进程强制睡眠,以控制运行状态,并收集进程运行时数据作下一周期资源分配。优选地,所述资源分配算法,包括:步骤1:首先计算中间变量S1、S2为:S1=Σj=1nμjxj]]>S2=Σj=1n(μjxj)1-β]]>其中,n表示工作任务总种数;μj表示第j种工作任务的主导份额;xj表示第j种工作任务的任务数量;β表示公平性参量;步骤2:计算公平性评价函数fβ,λFDS=sgn(1-β)(S1)1+λ-1β(S2)1β]]>其中,λ表示效率权重参量;sgn是符号函数;步骤3:计算公平性评价函数梯度向量:▿i=∂fβ,λFDS∂xi=sgn(1-β)(μi(1+λ-1β)(S1)λ-1β(S2)1β+1-ββμi1-βxi-β(S1)1+λ-1β(S2)1β-1)]]>其中,代表公平性评价函数梯度向量的第i个分量;i为正整数;xi表示第i种工作任务的任务数量;μi表示第i种工作任务的主导份额。根据本发明提供的一种虚拟化云环境下GPU-CPU混合资源分配方法,包括:步骤1:首先计算中间变量S1、S2为:S1=Σj=1nμjxj]]>S2=Σj=1n(μjxj)1-β]]>其中,n表示工作任务总种数;μj表示第j种工作任务的主导份额;xj表示第j种工作任务的任务数量;β表示公平性参量;步骤2:计算公平性评价函数fβ,λFDS=sgn(1-β)(S1)1+λ-1β(S2)1β]]>其中,λ表示效率权重参量;sgn是符号函数;步骤3:计算公平性评价函数梯度向量:▿i=∂fβ,λFDS∂xi=sgn(1-β)(μi(1+λ-1β)(S1)λ-1β(S2)1β+1-ββμi1-βxi-β(S1)1+λ-1β(S2)1β-1)]]>其中,代表公平性评价函数梯度向量的第i个分量;i为正整数;xi表示第i种工作任务的任务数量;μi表示第i种工作任务的主导份额。根据本发明提供的一种虚拟化云环境下GPU-CPU混合资源分配系统,包括:第一计算装置:首先计算中间变量S1、S2为:S1=Σj=1nμjxj]]>S2=Σj=1n(μjxj)1-β]]>其中,n表示工作任务总种数;μj表示第j种工作任务的主导份额;xj表示第j种工作任务的任务数量;β表示公平性参量;第二计算装置:计算公平性评价函数fβ,λFDS=sgn(1-β)(S1)1+λ-1β(S2)1β]]>其中,λ表示效率权重参量;sgn是符号函数;第三计算装置:计算公平性评价函数梯度向量:▿i=∂fβ,λFDS∂xi=sgn(1-β)(μi(1+λ-1β)(S1)λ-1β(S2)1β+1-ββμi1-βxi-β(S1)1+λ-1β(S2)1β-1)]]>其中,代表公平性评价函数梯度向量的第i个分量;i为正整数;xi表示第i种工作任务的任务数量;μi表示第i种工作任务的主导份额。下面对本发明进行更为具体的说明。为了能够保证分配算法在实际应用之中的有效性,算法的性质必须兼顾精确度与时间复杂度,并需要在二者之间进行权衡。因此,在设计迭代最优化求解算法之时,完全将数学公式转换成为等价的数值计算程序是不可行的。为了保证高效性,我们认为算法应该具有以下特性:首先,算法每进行一次迭代,均可以得到一个近似的可行解,这也就保证了每次算法运行所获得的结果值均可以被用作进行资源调度分配,而不必检测近似解是否可行,同时也不必在某一次调用算法时多次执行算法。其次,算法在分配参数保持稳定不变的情况下经过多次迭代能够精确收敛至最优值。这点同样非常重要,因为这保证了算法的正确性,同时不会产生因为算法设计上的不足而使得分配结果不断震荡,无法稳定在正确的精确值之上。再其次,算法可以接受在两次迭代之间分配参数及当前迭代出发点发生修改,并基于之前迭代所确定的搜索步长等迭代结果直接执行,而不需要每一次修改问题参数之后,均需要从原始点重新开始迭代求解问题。这可以说是对于分配器而言,非常重要的一个算法性质。因为在分配器运行的过程中,其所监视的相关进程对于资源与性能的需求并非稳恒不变的,相反,这些参数往往时时刻刻波动着。同时当下一次检测到每一个相关进程的执行时完成工作任务的速率,也一般不可能与分配值精确相等。如果算法无法满足这个性质,那么每一次算法获得新的运行时数据之时,就意味着迭代需要重新开始,花费多次迭代最终稳定,这是非常低效的。最后,算法可以牺牲一定的收敛速度,但每一次求出近似解的迭代计算应该尽量简单,减少计算量,保证每一次迭代都能够尽可能快地完成。这样的话,就能够比较轻松的通过每次调用的迭代次数,控制算法收敛的速度,使得算法的配置更为灵活,同时,使得一定时间间隔内因为分配迭代而导致的计算代价尽量减小。除此以外,因为实际应用之中的算法所求解的最优化问题,实际上的约束条件是线性的,同时数量也有限定:因为当前系统仅仅考虑CPU与GPU二种计算资源的分配,约束条件亦即为二种计算资源总量的约束,即约束条件仅为两个,这亦使得算法能够得到极大简化。下文将会简单列出算法的基本流程(目标函数最小值求解,一次迭代):步骤(1):计算当前点是否违反CPU资源约束条件。步骤(2):若违反CPU资源约束条件,则计算当前点在CPU资源约束方程超平面上的正交投影,进入步骤(3);否则,则跳转至步骤(4)。步骤(3):将当前点设置为此正交投影。步骤(4):计算当前点是否违反GPU资源约束条件。步骤(5):若违反GPU资源约束条件,则计算当前点在CPU资源约束方程超平面上的正交投影,进入步骤(6);否则,则跳转至步骤(7)。步骤(6):将当前点设置为此正交投影。步骤(7):计算目标函数(公平性函数取负,以便将最大化问题化为最小化问题)在当前点位置的梯度值,并将梯度值标准化(保证向量模为一)。步骤(8):如果当前点不在约束条件边界上,或虽然在约束条件边界上,但梯度方向指向边界外侧,则设置搜索方向为梯度反方向,跳转至步骤(11),其中,约束条件边界是指CPU资源约束条件边界或GPU资源约束条件边界;否则,则进入步骤(9)。步骤(9):如果当前点在CPU资源约束条件边界或GPU资源约束条件边界上,且梯度方向指向边界内侧,计算梯度向量在约束条件方程超平面上的正交投影向量。步骤(10):设置搜索方向为此正交投影向量反方向,并稍稍减小搜索步长。步骤(11):计算当前点,当前点沿搜索方向延长长度为步长到达的点,当前点沿搜索方向延长长度为步长的0.618倍到达的点分别的目标函数值a,b,c。步骤(12):若a≥b≥c,则返回c作为目标函数值,对应点为近似可行解。且当a>b>c连续数次,则增加搜索步长(加快收敛速度,应对迭代间隙参数变化)。步骤(13):若b>a,则返回a作为目标函数值,对应点为近似可行解。较多减小搜索步长。步骤(14):其余情况,则返回b作为目标函数值,对应点为近似可行解。较少减小搜索步长。通过上述过程在一定时间间隔下的多次迭代,我们能够使用近似值逼近原资源分配问题的非线性规划,得到近似的资源分配最优化。在使用少量计算资源的前提下完成资源分配的优化,提升其公平性与效率。虽然上文的算法设计已经使得原先的每一次求近似解时的多重循环迭代修改成了除进行向量运算遍历向量分量之外不存在循环,然而此时算法的复杂度仍然受到对于目标函数进行计算的计算复杂度影响。首先,上文之中的公式作为目标函数,此处列出的公式形式考虑的是其实际意义,乘积的每一项具有不同的数学含义,但为了运算的简便,可以做出如下变形:fβ,λFDS=sgn(1-β)(Σj=1nμjxj)1+λ-1β(Σj=1n(μjxj)1-β)1β]]>其中,表示FDS公平性衡量函数;β表示参量;n表示工作任务总种数;μj表示第j种工作任务的主导份额;xj表示第j种工作任务的任务数量;λ表示参量;sgn是符号函数;同时,由此可以相应计算出梯度向量的每一个分量:▿i=∂fβ,λFDS∂xi]]>=sgn(1-β)(μi(1+λ-1β)(Σj=1nμjxj)λ-1β(Σj=1n(μjxj)1-β)1β+1-ββμi1-βxi1-β(Σj=1nμjxj)1+λ-1β(Σj=1n(μjxj)1-β)1β-1)]]>其中,代表梯度向量的第i个分量,即函数梯度;xi表示第i种工作任务的任务数量;μi表示第i种工作任务的主导份额;这样相比原先的公式,在进行计算之时复杂度就大大降低了。原先需要进行二重循环遍历来计算函数值,现在则仅需要一次循环遍历即可计算得出结果。然而,我们可以发现,现在所给出的公式之中,仍有一些部分被不必要的重复计算了,即项以及项,因此,假设中间变量S1、S2为:S1=Σj=1nμjxj]]>S2=Σj=1n(μjxj)1-β]]>则公式分别化为:fβ,λFDS=sgn(1-β)(S1)1+λ-1β(S2)1β]]>以及▿i=∂fβ,λFDS∂xi=sgn(1-β)(μi(1+λ-1β)(S1)λ-1β(S2)1β+1-ββμi1-βxi-β(S1)1+λ-1β(S2)1β-1)]]>对于梯度而言,通过事先计算S1、S2这两项和值,相比原先每次计算一个分量便必须要进行一次计算的求和项仅仅只需要进行一次计算,省去了重复计算的时间耗费。资源分配系统框架的设计与实现,在对于多重资源混合分配的方法分析与比较的工作之中,位于重要的基础位置。它需要完成一系列包括收集数据、消息通信、进程管理、运行并评估资源分配算法的作业。同时,还需要在一定程度上保证框架整体的灵活度,使得系统框架具有一定的可配置性与可重用性。总体来说,整个资源分配系统分为三部分。分别是注入模块、资源分配器以及输出显示器。输出显示器可参照现有技术实现,不再赘述。注入模块负责设置钩子,收集相关进程运行时数据,传出数据,接收资源分配目标值并通过睡眠方式限制进程占用资源。而资源分配器负责监视相关进程,执行动态链接库注入,创建进程间通信通道,接收并管理相关进程运行时数据,调用资源分配算法,发送计算结果目标值并接受用户输入。资源分配器在开始对于相关进程进行资源分配之后,其功能执行的流程循环:首先由注入模块收集运行时数据,然后通过双向管道,传输至资源分配器,由资源分配器负责接受并汇总数据,并以一定时间间隔运行资源分配算法迭代调度目标值,并通过双向管道回传至注入模块,注入模块根据资源分配目标值,通过对FPS过高的进程强制睡眠,控制其运行状态,同时收集数据作下一周期资源分配。而图1主要表现的是在整个资源分配平台系统之中,各进程之间的关系。可以看出,资源分配器是作为中心存在的。状态显示程序负责显示所有资源分配器所产生的状态变化输出,而与资源分配相关的虚拟机进程则由资源分配器负责注入插入模块,负责一些必须在进程内部运行的工作。而无论是状态显示程序还是虚拟机进程,均通过特别配置的双向管道,与资源分配器进程进行通信。本发明主要涉及两个主要的发明点:动态资源分配框架,基于FDS的多重混合资源分配算法,记为FEA算法。其中动态资源分配框架主要用以完成一系列包括收集数据,消息通信,进程管理,运行并评估调度算法的任务,是一种新型的动态云端游戏任务运行平台,用以支持我们设计的基于FDS的多重混合资源分配算法。本发明提供的虚拟化云环境下GPU-CPU混合资源分配方法,包括基于FDS的多重混合资源分配算法,主要用以在低计算资源耗费的前提下,近似的,迭代化的动态适应任务资源需求并进行公平性与效率的最优化分配。通过这两个发明点的共同作用,我们能够得到的效果为:显著提升多个CPU-GPU多重混合资源需求任务运行时资源分配的公平性与效率。任务在使用分配算法时的公平性,最高有45%的提升。同时,我们在提升公平性的同时,也通过FEA算法的约束条件,以保证任务运行的效率质量。我们将通过一个具体实施例来做进一步说明。在本实施例中,运行平台的配置确定如下。在硬件上,系统硬件的型号是:(1)CPU:IntelCorei7-2600k3.4GHz(2)内存RAM:16GB(3)显卡:AMDHD6750(4)显存:2GB物理机的操作系统限制为Windows764位版本,因为涉及到调度系统平台模块中用以实现动态链接库注入以及钩子功能的开源模块EasyHook的兼容性问题,操作系统限制为原生未更新状态。虚拟机运行的系统使用的是VMWarePlayerv4.0。另外每一个虚拟机都配置为有两个CPU核,2GB内存。另外调度参数取λ=-0.5,β=2。在下文实验之中,调度算法均每秒执行一次,每次运行十次迭代。在此处,我们使用三个虚拟机,分别运行游戏DiRT3在1920*1080分辨率下,运行游戏NBA2k在1920*1080分辨率下,以及Farcry2benchmark在1024*768分辨率下。对照组为其余资源分配计算及虚拟机与调度器通信均同上,但不设置调度目标,使虚拟机运行于未调度情况下,以及VGASA策略(限制所有任务每秒最多渲染30帧),以虚线分别列出,并以实线表示三十次间隔动态平均值。可以从图上看出的是,在经过调度之后,公平性的震荡相比之下降低同样明显,同时资源分配的公平性有了整体的改善。定量的来说,分别有标准差是0.252,0.150,平均值-3.436,-3.042,相比未调度情况,有11.5%提升。同时,相比VGASA策略,有45%提升。本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统及其各个装置、模块、单元以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统及其各个装置、模块、单元以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同功能。所以,本发明提供的系统及其各项装置、模块、单元可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置、模块、单元也可以视为硬件部件内的结构;也可以将用于实现各种功能的装置、模块、单元视为既可以是实现方法的软件模块又可以是硬件部件内的结构。以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1