本公开涉及一种硬件加速方法及硬件加速系统,且特别涉及一种更精准地进行硬件加速的硬件加速方法及硬件加速系统。
背景技术:
:现有显示卡大多具有硬件加速功能,因此能增加游戏中场景(例如,3d场景)的每秒帧数(framepersecond,fps)以改善使用者体验。然而,在硬件加速过程中产生的热能会导致显示卡风扇的高速运转,而可能产生较大的噪音及消耗较多的电力。因此,如何精准地控制硬件加速使游戏画面可以顺畅的运行,是本领域技术人员应致力的目标。技术实现要素:有鉴于此,本公开提供一种硬件加速方法及硬件加速系统,能更精准地进行硬件加速。本公开提出一种硬件加速方法,包括:初始化状态表,状态表包括多个状态,每个状态对应第一动作及第二动作且每个状态包括每秒帧数信息;以及在每一回合中:判断系统状态属于上述状态中的第一状态;根据对应第一状态及第一动作的数值及对应第一状态及第二动作的数值执行第一动作及第二动作的其中之一,以进入上述状态的第二状态并获得奖励值;以及根据奖励值来更新对应第一状态及第一动作及第二动作的其中之一的数值。本公开提出一种硬件加速系统,包括处理器及耦接到处理器的图形处理单元。上述处理器初始化状态表,状态表包括多个状态,每个状态对应第一动作及第二动作且每个状态包括每秒帧数信息;以及在每一回合中:判断系统状态属于上述状态中的第一状态;根据对应第一状态及第一动作的数值及对应第一状态及第二动作的数值执行第一动作及第二动作的其中之一,以进入上述状态的第二状态并获得奖励值;以及根据奖励值来更新对应第一状态及第一动作及第二动作的其中之一的数值。基于上述,本公开的硬件加速方法及硬件加速系统会初始化一个状态表,状态表包括多个状态及每个状态对应的第一动作及第二动作。在每一回合中,处理器判断系统状态属于状态表的中的第一状态,并根据第一状态所对应的第一动作及第二动作的数值来执行第一动作及第二动作的其中一个动作以进入第二状态并获得奖励值。处理器再根据奖励值来更新对应第一状态及执行的动作的数值。为让本公开的上述特征和优点能更明显易懂,下文特举实施例,并配合说明书附图作详细说明如下。附图说明图1为根据本公开一实施例的硬件加速系统的方框图。图2为根据本公开一实施例的硬件加速实验的示意图。图3a到图3h为本公开一实施例的硬件加速方法的范例。图4为根据本公开一实施例的硬件加速方法的流程图。附图标记说明:100:硬件加速系统110:处理器120:图形处理单元130:显示器320、330、331、340:数值s401~s409:硬件加速方法的步骤具体实施方式图1为根据本公开一实施例的硬件加速系统的方框图。请参照图1,本公开一实施例的硬件加速系统100包括处理器110及耦接到处理器110的图形处理单元120。处理器110例如是中央处理器(centralprocessingunit,cpu)或其他类似元件。图形处理单元120可对游戏/影像内容进行处理并以帧(frame)为单位将影像传输到显示器130。当图形处理单元120的频率越高时就能在一秒传送越多帧到显示器130,从而让使用者产生更佳的视觉效果。一般来说,最佳视觉效果对应的fps例如在60到100之间。当fps大于100时,使用者已经难以感受到更流畅的视觉效果。在一实施例中,图形处理单元120可支援硬件加速功能(例如,nvidiaboostapis3.0),以在特定时间点增加图形处理单元120的处理效能。图2为根据本公开一实施例的硬件加速实验的示意图。请参照图2,图形处理单元120的效能可通过标竿(benchmark)软件来进行评测。图2中的“1”、“2”、“3”、“4”分别代表对图形处理单元120核心及其影像存储器(videorandomaccessmemory,vram)超频10mhz、30mhz、50mhz、70mhz所产生的分数(score)及fps。在一实施例中,定义c=δfps/δscore,其中δ代表了超频后结果减去未超频结果。从图2可计算出超频10mhz、30mhz、50mhz、70mhz所对应的c1、c2、c3、c4分别大约等于0.013、0.016、0.011、0.012。因此从图2的硬件加速实验可得知超频30mhz相对于超频10mhz、50mhz、70mhz对提升fps较有效率。以下为根据本公开一实施例的硬件加速方法的虚拟程序码(pseudocode):[虚拟程序码]表一为初始化状态表q(s,a)的实施例。表一q(s,a)a1a2s0(fps<30)00s1(fps=30~40)00s2(fps=40~50)00s3(fps=50~60)00s4(fps=60~100)00s5(fps>100)00请参照上述虚拟程序码及表一,“a1”代表不进行硬件加速(non-boost)且“a2”代表进行硬件加速(boost),也就是对图形处理单元120进行超频。在一实施例中,系统可将特定应用程序界面(applicationprogramminginterface,api)插入到游戏应用程序中以取得游戏的fps。例如,使用挂钩(hook)的“setwindowshookex”及“endscene”将api插入游戏应用程序中以取得游戏的fps。“episode”代表设定的回合数目(例如,10回合)。“initializes”代表每回合开始抓取初始状态并将初始状态映射到对应的s(s0~s5),即第一状态。“untilsisterminal”代表为一个回合的训练设定终止条件。在一实施例中,终止条件可设定为进入s5状态,因为并不需要对fps大于100的状态进行训练。在另一实施例中,终止条件可设定为单一状态的重复次数大于预定次数(例如,一百次),以避免系统效能不足以达到终止条件。在另一实施例中,终止条件可设定为进入s5状态或单一状态的重复次数大于预定次数。“chooseafroms”代表选出预期获得较高fps的动作。在一实施例中,贪婪百分比可被应用。例如,贪婪百分比为80%。当奖励值r还不存在时,随机执行a1(即,第一动作)及a2(即,第二动作)的其中之一。当奖励值r存在时,有80%几率根据所在状态对应a1的数值及所在状态对应a2的数值执行a1及a2的其中之一(例如,当对应a1的数值大于对应a2的数值则执行a1),并且有20%几率随机执行a1及a2的其中之一。“takeactiona,observer,s’”代表将选出的a1或a2套用到系统。例如,当选出a2时,系统会执行硬件加速并获得硬件加速后的状态s’(即,第二状态)及对应的奖励值r。当状态s’的fps在预定帧数区间(例如,fps=60~100)则奖励值r为正值(例如,+1)。当状态s’的fps大于预定帧数区间则奖励值r为负值(例如,-1)。当状态s’的fps小于预定帧数区间时,处理器110可进一步判断状态s’的fps是否大于状态s的fps。当状态s’的fps大于状态s的fps时则奖励值r为正值(例如,+1)。当状态s’的fps不大于状态s的fps时则奖励值r为零。当fps在60到100之间时,使用者可感受到较流畅的视觉效果。因此,当状态s’的fps在预定帧数区间或朝着预定帧数区间趋近时,系统会给予正的奖励值。反之,当fps大于100时使用者难以感受更流畅的视觉效果,同时还较容易造成系统过热的情况。因此,当状态s’的fps大于预定帧数区间则系统会给予负的奖励值。“α”代表学习数值的使用比率,例如0.2。“γ”代表奖励值的衰减比率,例如0.9。在获得奖例值r之后,q(s,a)可根据奖例值r、α及γ被更新并将更新后的数值填到状态表的对应栏位。虽然在表一的实施例中说明了状态s包括了fps信息,但本公开不限于此。在另一实施例中,状态s也可同时包括fps信息、图形处理单元温度信息及图形处理单元使用率信息,且上述三种信息可具有不同权重。图3a到图3h为本公开一实施例的硬件加速方法的范例。图3a到图3c包括了第一回合(episode)的两次重复(repeat)操作,图3d到图3h包括了第二回合的四次重复操作。请参照图3a,在本范例中系统得到的初始fps为55,因此属于状态s3。在第一回合的第一次重复中,动作a2被选择并进入状态s4。状态s3及动作a2所对应的数值330会根据进入状态s4获得的奖励值被更新(即,更新为0)。请参照图3b,在第一回合的第二次重复中,动作a2被选择并进入状态s5。状态s4及动作a2所对应的数值340会根据进入状态s5获得的奖励值被更新(即,更新为0.2)。请参照图3c,当进入状态s5时,则结束第一回合。在第一回合结束后,将动作重新设定为不进行硬件加速,也就是a1。这时,系统仍然属于状态s3。请参照图3d,在第二回合的第一次重复中,动作a1被选择并进入状态s2。状态s3及动作a1所对应的数值331会根据进入状态s2获得的奖励值被更新(即,更新为0)。请参照图3e,在第二回合的第二次重复中,动作a2被选择并进入状态s3。状态s2及动作a2所对应的数值320会根据进入状态s3获得的奖励值被更新(即,更新为0)。请参照图3f,在第二回合的第三次重复中,动作a2被选择并进入状态s4。状态s3及动作a2所对应的数值330会根据进入状态s4获得的奖励值被更新(即,更新为0.036)。请参照图3g,在第二回合的第四次重复中,动作a2被选择并进入状态s5。状态s4及动作a2所对应的数值340会根据进入状态s5获得的奖励值被更新(即,更新为0.36)。请参照图3h,当进入状态s5时,则结束第二回合。通过多个回合的运算,状态表q(s,a)中的数值可不断地被更新,使得系统根据能状态表q(s,a)中的数值更精准地判断在每个状态是否需要进行硬件加速。图4为根据本公开一实施例的硬件加速方法的流程图。请参照图4,在步骤s401中,初始化状态表。在步骤s402中,判断是否已完成所有回合。若已完成所有回合,则在步骤s403中,结束操作。若还没完成所有回合,在步骤s404中,判断系统状态属于多个状态中的第一状态。在步骤s405中,根据状态表中对应第一状态的数值执行第一动作及第二动作的其中之一。在步骤s406中,执行第一动作及第二动作的其中之一后进入第二状态并获得奖励值。在步骤s407中,根据奖励值来更新状态表中对应第一状态及上述执行的第一动作及第二动作的其中之一的数值。在步骤s408中,更新系统状态为第二状态。在步骤s409中,判断是否达到回合终止条件。若还没达到回合终止条件,则回到步骤s405。若达到回合终止条件,则回到步骤s402。综上所述,本公开的硬件加速方法及硬件加速系统会初始化一个状态表,状态表包括多个状态及每个状态对应的第一动作及第二动作。在每一回合中,处理器判断系统状态属于状态表的中的第一状态,并根据第一状态所对应的第一动作及第二动作的数值来执行第一动作及第二动作的其中一个动作以进入第二状态并获得奖励值。处理器再根据奖励值来更新对应第一状态及执行的动作的数值。通过建立状态表并在多个回合中更新状态表中的数值,能让系统根据状态表中的数值更精准地判断在每个状态是否需要进行硬件加速,以提供使用者更佳地使用者体验。虽然本公开已以实施例公开如上,然其并非用以限定本公开,任何所属
技术领域:
中技术人员,在不脱离本公开的精神和范围内,当可作些许的变动与润饰,故本公开的保护范围当视权利要求所界定者为准。当前第1页12