CN103530108A - 同时确定多个参数变体的设置的***、方法 - Google Patents
同时确定多个参数变体的设置的***、方法 Download PDFInfo
- Publication number
- CN103530108A CN103530108A CN201310284893.2A CN201310284893A CN103530108A CN 103530108 A CN103530108 A CN 103530108A CN 201310284893 A CN201310284893 A CN 201310284893A CN 103530108 A CN103530108 A CN 103530108A
- Authority
- CN
- China
- Prior art keywords
- parameter
- setting
- variants
- variant
- node
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- User Interface Of Digital Computer (AREA)
- Controls And Circuits For Display Device (AREA)
- Image Processing (AREA)
Abstract
本发明涉及同时确定多个参数变体的设置的***、方法,并提供了用于同时确定用于多个参数变体的设置的***、方法和计算机程序产品。在使用中,标识与设备相关联的多个参数变体,其中多个参数变体组织成多个分段。此外,确定用于多个参数变体中的每一个的设置并且确保设置的跨多个分段的一致性。
Description
优先权要求
本申请是2012年7月6日提交的美国专利申请13/543,196的部分继续申请。本申请还要求于2013年5月3日提交的、美国临时申请61/819,478的权益。本文在此通过援引的方式对这些申请的全部内容加以合并。
技术领域
本发明涉及参数分析,并且,更具体地,涉及基于参数分析确定设置。
背景技术
今日已有的许多产品包括影响与产品相关联的整体体验的一个或多个参数。例如,计算机游戏和其他软件可具有确定渲染、音频、玩游戏等的质量的许多参数。然而,用于布置与这些产品相关联的参数的当前技术已与各种限制相关联。
例如,在当前,客户可能有责任手动调整与产品相关联的多个参数以确定用于该产品的适当的设置。这可能导致低于产品的最优设置、由客户进行的耗时的试错等。因此存在着解决这些和/或其他与现有技术相关联的问题的需要。
发明内容
提供了用于同时确定用于多个参数变体的设置的***、方法和计算机程序产品。在使用中,标识了与设备相关联的多个参数变体,其中多个参数变体组织成多个分段(segment)。此外,确定了用于多个参数变体中的每一个的设置并且确保了设置的跨多个分段的一致性。
附图说明
图1示出根据一个实施例的、用于同时确定用于多个参数变体的设置的方法。
图2示出根据另一个实施例的、用于同时确定多个最优设置的方法。
图3A示出根据另一个实施例的示例性参数DAG。
图3B示出根据另一个实施例的、具有组织成分段的节点的示例性参数DAG。
图4A示出根据另一个实施例的、用于同时确定多个最优设置并且确保设置的跨多个分段的一致性的方法。
图4B示出根据另一个实施例的、用于同时确定多个最优设置并且确保设置的跨多个分段的一致性的另一个方法。
图5示出其中可实现各种先前实施例的各种架构和/或功能性的示例性***。
具体实施方式
图1示出根据一个实施例的、用于同时确定用于多个参数变体的设置的方法100。如操作102中所示,标识了与设备相关联的多个参数变体。在一个实施例中,设备可包括诸如个人计算机或其他硬件元素的实体。在另一个实施例中,多个参数变体可包括多个不同参数的多个唯一变体。
此外,在一个实施例中,参数可包括设备的任何特点。例如,参数可包括安装在设备(例如台式计算机、膝上型计算机、平板计算机、个人数字助理、移动电话等)内的硬件(例如中央处理单元(CPU)、图形处理单元(GPU)、随机存取存储器(RAM)、主板、显示器等)、安装在设备内的软件(例如操作***、驱动程序等)等。
进一步地,在一个实施例中,参数中的一个或多个可以是可独立配置的。例如,参数中的每一个可以能够独立于其他参数而加以改变。在另一个实施例中,参数中的每一个可由设备用以实施一个或多个动作。在又一个实施例中,参数变体可包括多个不同类型的参数,其可包括与参数相关联的大小、量、速度等。例如,如果参数是设备CPU,那么参数的变体可包括CPU的制造商、CPU的速度、CPU的高速缓存大小等。在另一个示例中,如果参数是RAM,那么变体可包括RAM的数量、RAM的速度、RAM的制造商等。
仍进一步地,在一个实施例中,可在服务器处标识多个参数变体。例如可经由网络(例如无线网络、有线网络、蜂窝网络、卫星网络等)将多个参数变体中的每一个从具有那些参数变体的用户设备发送到服务器。在另一个实施例中,多个参数变体可存储在数据库中并可从数据库中所检索。
并且,在一个实施例中,可基于一个或多个标准标识与设备相关联的多个参数变体。例如,确定为最流行用户参数变体(例如在用户设备中最常使用的参数变体等)的预定数目的参数变体可被选择为与设备相关联的多个参数变体。
此外,如操作104中所示,同时确定了用于多个参数变体中的每一个的设置。在一个实施例中,所确定的用于多个参数变体中的每一个的设置可包括操作多个参数变体中的一个或多个方面的经优化的设置。在另一个实施例中,用于多个参数变体中的每一个的设置可包括预定义设置(预设)的单调集合。例如,用于多个参数变体中的每一个的设置可包括关于第一特点连续地增加以及关于第二特点连续地降低的预设的单调集合。
在另一个示例中,可排序预设的单调集合,并且当与预设的集合内的先前预设相比较时,预设的集合内的每个相继的预设可具有提高的第一特点和降低的第二特点。在又一个实施例中,第一特点可与质量(例如图像质量、声音质量、体验质量等)相关联,并且第二特点可与电源的每单元性能的某一比率或电力等级(power level)或性能(例如速度、经济、效率等)相关联。例如,软件元素可在设备上运行,并且预设的集合内的每个相继预设可具有软件元素的提高的图像质量以及软件元素的降低的性能。
在另一个实施例中,可利用算法确定设置。例如,可利用贪婪算法、穷举算法等确定设置。在另一个实施例中,可通过针对预设的集合中的每一个预设关于第二特点最大化第一特点来确定设置。例如,用于参数变体的多个设置中的每一个可具有与质量相关联的第一特点以及与性能相关联的第二特点,并且可关于第二特点最优第一特点。
进一步地,在一个实施例中,当运行预定软件元素时,针对多个参数变体中的每一个,设置可包括该参数变体的配置使得具有该参数变体的设备产生最大化输出(例如图像质量等)同时维持阈值要求(例如最小帧率、最大功率使用等)。在另一个实施例中,软件元素可包括可安装在或要安装在设备内的软件程序。
仍进一步地,在一个实施例中,同时确定用于多个参数变体中的每一个的设置可包括创建包括多个节点的有向无环图(DAG),其中多个节点中的每一个表示多个参数变体中的一个。在另一个实施例中,可基于一个或多个标准来定向DAG的节点。例如,可基于与每个节点相关联的速度在DAG内定向DAG的多个节点中的每一个,其中基于由节点所表示的设备参数变体确定速度。在另一个实施例中,可在DAG中定向节点,使得当确定DAG的第二节点在一个或多个方面(例如关于处理速度等)确实快于DAG的第一节点时DAG的第一节点可指向DAG的第二节点。
并且,在一个实施例中,同时确定用于多个参数变体中的每一个的设置可包括调整与多个参数变体中的每一个相关联的一个或多个设置。例如,针对多个参数变体中的每一个,可调整(例如打开或关闭、增加、减小等)一个或多个相关联的设置,以确定第一特点关于第二特点的最大可能量。在另一个实施例中,所确定的用于多个参数变体中的每一个的设置可包括多个参数变体的用于得到第一特点关于第二特点的最大可能量的设置。
另外,在一个实施例中,同时确定用于多个参数变体中的每一个的设置可包括同时相继调整用于多个参数变体中的每一个的单个设置。例如,针对多个参数变体中的每一个,可调整第一经确定设置以确定第一特点关于第二特点的最大可能量。此外,在调整第一经确定设置之后,可确定要调整的第二设置,其中第二经确定设置经调整用于多个参数变体中的每一个。
在另一个实施例中,同时确定用于多个参数变体中的每一个的设置可包括在用于多个参数变体中的每一个的最小设置量开始以及同时相继增加用于多个参数变体中的每一个的单个设置。在又一个实施例中,同时确定用于多个参数变体中的每一个的设置可包括在用于多个参数变体中的每一个的最大设置量开始以及同时相继降低用于多个参数变体中的每一个的单个设置。
在又一个实施例中,同时确定用于多个参数变体中的每一个的设置可包括,在用于多个参数变体中的每一个的最大设置量和最小设置量二者开始,并且针对多个参数变体中的每一个同时从最大量相继降低单个设置以及从最小量相继增加单个设置,直到确定了得到第一特点关于第二特点的最大可能量的最优设置为止。
此外,在一个实施例中,多个参数变体中的每一个可影响如何确定设置。例如,多个参数变体中的每一个(或DAG中的其各自的节点)可为经调整的用于多个参数变体中的每一个的第一经确定设置投票。在另一个示例中,在调整了第一经确定设置用于多个参数变体中的每一个之后,多个参数变体中的每一个(或DAG中的其各自的节点)可随后为经调整用于多个参数变体中的每一个的第二经确定设置投票。
仍进一步地,在一个实施例中,多个参数变体中的每一个对于如何确定设置可具有不同水平的影响。例如,群体(population)值可与多个参数变体中的每一个(或DAG中的其各自的节点)相关联。在另一个实施例中,与特定参数变体相关联的群体值可与具有该参数变体(例如安装在其设备内等)的用户的预定数目相对应。在又一个实施例中,与特定参数变体相关联的群体值可与具有该参数变体的用户的总数的预定百分比相对应。
在又一个实施例中,与特定参数变体相关联的群体值可影响由特定参数变体关于如何确定设置所发挥的影响的量(例如强度等)。例如,由特定参数变体为经调整的用于多个参数变体中的每一个的经确定设置所投的票,可与同特定参数变体相关联的群体值成比例地增加(例如通过将票乘以群体值等)。通过该方式,由大用户基础所使用的流行参数变体对于如何确定设置可具有更多影响。
并且,在一个实施例中,指数值(例如影响值等)可与多个参数变体中的每一个(或DAG中的其各自的节点)相关联。在另一个实施例中,与特定参数变体相关联的指数值可与特定参数变体的以预定帧率运行预定软件元素的能力相对应。例如,如果特定参数变体不能以预定帧率运行预定软件元素,那么指数值可以是-1。在另一个示例中,如果特定参数变体能够利用一个或多个最小设置以预定帧率运行预定软件元素,那么指数值可以是零。在另一个实施例中,如果特定参数变体能够利用用于应用的最大设置以预定帧率运行预定软件元素,那么指数值可以是(n-1),其中n等于用于由应用所支持的多个参数变体中的每一个的预设设置的数目。每个预设设置与指数相对应。
在又一个实施例中,与特定参数变体相关联的指数值可影响由特定参数变体关于如何确定设置所发挥的影响的量(例如强度等)。例如,由特定参数变体为经调整的用于多个参数变体中的每一个的经确定设置所投的票,可与同特定参数变体相关联的指数值成比例地增加或降低(例如将票乘以指数值等)。通过该方式,更可能使用设置的参数变体对于如何确定设置可具有更多影响。
此外,在一个实施例中,在为待调整用于多个参数变体中的每一个的经确定设置投票期间,可标识多个参数变体(或DAG中的其各自的节点)之间的相异(disagreement)。例如,多个参数变体(或DAG中的其各自的节点)中的一部分可为待调整用于多个参数变体中的每一个的一个特定设置投票,并且多个参数变体(或DAG中的其各自的节点)中的另一部分可为待调整用于多个参数变体中的每一个的另一个特定设置投票。
此外,响应于多个参数变体之间的相异的标识,多个参数变体可分成多个子组(例如较小的DAG等)。例如,如果多个参数变体(或DAG中的其各自的节点)中的预定百分比为不同于由其他参数变体(或DAG中的其各自的节点)所投票的设置的特定设置投票,那么多个参数变体中该预定百分比可从DAG中移除并可置于子DAG中用于设置确定。通过该方式,设置确定可更有效地加以确定用于每个子组中的参数变体。
现在将关于各种可选架构和特征阐述更多例示性信息,前述框架可以或可以不利用其加以实现,取决于用户的意愿。应极力注意的是,阐述以下信息是用于例示性目的并且不应视为以任何方式加以限制。可通过排除或不排除所描述的其他特征来可选地对任何以下特征加以合并。
图2示出根据另一个实施例的、用于同时确定多个最优设置的方法200。作为一个选择,可在图1的功能性的上下文中实行方法200。然而当然,可在任何需要的环境中实现方法200。还应注意的是,在本描述期间可应用前述定义。
如操作202中所示,标识了与设备相关联的多个参数变体。在一个实施例中,多个参数变体可包括与个人计算机的显示器相关联的参数变体。例如,多个参数变体可包括个人计算机的屏幕分辨率。在另一个实施例中,多个参数变体可包括与由个人计算机进行的图形渲染相关联的参数变体。例如,多个参数变体可包括安装在设备内的***硬件特性(例如CPU特性、GPU特性、主板特性、RAM特性等)、安装在设备内的***软件特性等。
此外,如操作204中所示,构建了具有多个节点的DAG,其中多个节点中的每一个与多个参数变体中的一个相对应。在一个实施例中,可基于一个或多个规则定向DAG中的节点。例如,可基于与每个节点相关联的速度在DAG内定向节点,其中基于由节点所表示的参数变体确定速度。在另一个实施例中,可在DAG中定向节点,使得当确定DAG的第二节点在一个或多个方面(例如关于处理速度等)确实快于DAG的第一节点时,DAG的第一节点可指向DAG的第二节点。
并且,在一个实施例中,DAG中的每个节点可表示与设备相关联的多个可能参数的唯一变体。例如,与设备相关联的多个可能参数可包括设备CPU、设备GPU和设备分辨率,并且DAG中的每个节点可表示特定的设备CPU、设备GPU和设备分辨率的唯一组合。通过该方式,在DAG内第一节点指向第二节点表明由DAG中的第二节点所表示的与设备相关联的多个参数变体比由DAG中的第一节点所表示的与设备相关联的多个参数变体提供确实更好的处理速度和性能。
进一步地,如操作206中所示,与每个节点相关联的群体值被指派到每个节点。在一个实施例中,作为分析操作的结果可获得多个群体值。在另一个实施例中,多个群体值可包括遥测数据。在又一个实施例中,可从群体值数据库检索多个群体值。在又一个实施例中,被指派到节点的群体值可表示拥有具有与该节点相对应的参数变体的设备的用户群体。
在一个实施例中,使用“代理”机制将群体指派到新节点。新节点可与包括新GPU和/或新CPU和/或新显示分辨率的新配置相对应。因为新节点自然地初始具有零用户基础,所以新节点可从与新节点同类(class)的另一配置中、优选地从前代(prior generation)中“借用”群体值。例如,新配置可借用现有配置的群体值,该现有配置已使用足够长时间以具有经建立的和可定义的用户基础。现有配置用作用于新节点的“代理”。例如,可复制现有配置以及相关联的群体值,GPU用新GPU所替换。“代理”机制使能具有历史数据的DAG的预群体(pre-population)以甚至在新配置发布到市场中之前初始化新节点。
仍进一步地,如操作208中所示,指数值与每个节点相关联。在一个实施例中,可通过计算由节点所表示的特定参数变体以预定帧率运行预定软件元素的能力,来确定指数值用于该节点。在另一个实施例中,可基于DAG内的节点的位置确定指数值用于节点。例如,在一个实施例中,DAG中的较强节点被指派较高的指数值。
并且,如操作210中所示,利用群体值和指数值,确定最优预设设置用于多个参数变体中的每一个。在一个实施例中,最优预设设置可包括用于设备的预设的单调集合。在另一个实施例中,可关于安装在设备内的一个或多个软件元素确定预设的单调集合。例如,可确定预设的单调集合用于安装在设备上的应用(例如视频游戏软件、媒体回放软件等)的实例。在又一个实施例中,可关于要安装在设备上的(例如还未安装在设备上等)一个或多个软件元素确定预设的单调集合。
在又一个实施例中,预设的单调集合可表示影响设备运行一个或多个软件元素的方式的设备设置(从属的和独立的二者)。例如,预设的单调集合中的每一个可支配(dictate)由设备所提供的经显示的图形的纹理映射等级、在图形显示期间由设备所使用的光照模型、抗锯齿级别、对象细节级别等。
另外,在一个实施例中,确定最优预设设置可包括确定多个性能等级用于设备。例如,可确定多个下降的性能等级(例如从最大性能等级到最小性能等级等)针对设备(例如利用一个或多个基准等),其中每个相继的性能等级指示当与先前等级相比较时,设备以较慢速率、较低效率、或其他较不令人满意的方式实施(例如运行、计算等)。在另一个实施例中,性能等级可与由设备所使用的资源等级相关联。例如,性能等级可指示由设备所使用的处理资源的量、由设备所使用的软件资源的量、由设备所利用的网络资源的量、由设备所提供的帧率、由设备所使用的能源等。例如,当设备使用电池电源(与***电源插座相反)运行时,可降低图像质量以降低功耗和增加电池寿命。
进一步地,在一个实施例中,确定最优预设设置可包括确定多个图像质量等级用于设备。例如,可确定多个上升的图像质量等级(例如从最小图像质量等级到最大图像质量等级等)用于设备,其中每个相继的图像质量等级指示当与先前等级相比较时,由设备所显示的图像质量(例如分辨率、颜色、细节中的一个或多个等)增加。
仍进一步地,在一个实施例中,多个性能等级中的每一个可与用于设备的多个图像质量等级中的一个相关联。例如,每个相继下降的性能等级可与相继增加的图像质量等级相关联,使得随着设备性能的降低或电力的等级对设备可用,由设备所产生的图像质量增加。在另一个实施例中,可基于设备的多个参数变体,最大化图像质量等级用于多个性能等级中的每一个。
例如,针对每个经确定的性能等级或电力等级,可基于设备的多个参数变体确定可由设备所提供的最大图像质量。在一个实施例中,可利用贪婪算法计算最大图像质量。在另一个实施例中,可利用穷举算法计算最大图像质量。然而当然,可以以任何方式计算用于每个性能等级的最大图像质量。通过该方式,预设可在图像质量方面单调增加以及在性能方面单调降低。
并且,在一个实施例中,可利用模拟法确定最大图像质量。例如,可提供多个调整元素、“划算(bang-for-buck)”指示符、以及“失败”指示符。在另一个示例中,每个调整元素可表示应用中的一个属性。在又一个实施例中,可以以分立的步骤调整每个调整元素。在另一个实施例中,“划算”指示符可针对当前预设返回总值(例如图像质量乘以帧率)。在又一个实施例中,当且仅当预设无效时,可激活“失败”指示符。如果存在从属变量那么可能需要这样做,并且调整元素的一些组合的确是无效的。
例如,两个调整元素A和B可使得站点(stop)为假(False)和真(True),但当且仅当调整元素A设为True时,调整元素B可仅也设为True。在这种情况下,仅当调整元素A设为False、且调整元素B设为True时,可激活“失败”指示符。在另一个实施例中,可假定站点是有序的,使得调整调整元素上升一个站点总是产生相等/更好的图像质量以及相等/更差的性能。
此外,在一个实施例中,以对于参数变体中的每一个同时方式,单调集合确定算法可以以一直减小到其最小等级(即其“最小设置(minset)”值)的所有调整元素开始。现在,一次一个调整元素,每个调整元素可临时递增地精确地增大一个站点到其最大值(例如,如果调整元素一直增大到10中的10,那么其将不会增大到11)。在将该调整元素设置回到其初始位置之前,如果“失败”指示符没激活,那么“划算”指示符值可被记录。一旦所有调整元素已经递增地增大,那么产生最高“划算”指示符值(并且仍然有效)的元素永久地调整一个站点。该过程可以以这种方式重复,直到所有调整元素在其最大设置(即其“最大设置(maxset)”值)为止。经选择的(#站点-#调整元素+1)预设的序列可表示最优单调预设。
此外,在另一个实施例中,以对于参数变体中的每一个同时方式,单调集合确定算法可以以一直增大到其最大等级(即其“最大设置”值)的所有调整元素开始。现在,一次一个调整元素,每个调整元素可临时递增地精确地减小一个站点。在将该调整元素设置回到其初始位置之前,如果“失败”指示符没激活,那么“划算”指示符值可被记录。一旦所有调整元素已经递增地减小,那么产生最高“划算”指示符值(并且仍然有效)的元素永久地调整一个站点。该过程可以以这种方式重复,直到所有调整元素在其最大设置(即其“最大设置”值)为止。
仍进一步地,在一个实施例中,以对于参数变体中的每一个同时方式,单调集合确定算法中的一个或多个可以以一直减小到其最小等级的所有调整元素开始,并且单调集合确定算法中的一个或多个可以以一直增大到其最大等级的所有调整元素开始。此外,可由算法中的每一个递增地进行调整直到调整收敛为止。通过该方式,可以以加快的方式确定最优预设设置。此外,较快的配置可影响对其重要的预设设置并可避免与较慢配置相关联并由较慢配置所确定的预设设置。
并且,在一个实施例中,DAG中的多个节点中的每一个可对操纵(增加或降低等)哪个调整元素进行投票。例如,DAG中的多个节点中的每一个可关于以下问题投一次票:将哪个调整元素临时递增地精确地增大或减小一个站点,用于与DAG中的节点相对应的参数变体中的每一个。在另一个实施例中,获得最大票数的调整元素可被选择以递增地增大或减小用于每个节点。
在另一个实施例中,可根据与每个节点相关联的群体值和指数值调整该节点的投票。例如,每个节点的投票可与其群体值成比例地增加或根据其指数值增加或降低。通过该方式,DAG中的更流行和更相关的节点在投票期间可被给予更大权重。
另外,可同时确定最优预设设置用于多个参数变体中的每一个,其中这种预设范围可从最低设置(例如“最小设置”等)到最高设置(例如“最大设置”等)并且其可在过程中每个步骤最大化“划算”(例如每性能单元的图像质量等)。进一步地,可维持单调的多个预设的顺序,使得如果参数列举每个以相同方式排序那么可保证性能和图像质量的单调性。进一步地,可确定用于多个参数变体的最优预设设置,使得可关于性能成本最大化图像质量用于最优预设设置中的每一个。
图3A示出根据另一个实施例的示例性参数DAG300。作为选项,可在图1-2的功能性的上下文中实行示例性参数DAG300。然而当然,可在任何需要的环境中实现示例性参数DAG300。还应注意的是,在本描述期间可应用前述定义。
如所示,示例性参数DAG300包括多个节点302A-I,其每个对应于个人计算机的第一分量的变体306A-C(例如CPU类型等)的第一集合304、以及个人计算机的第二分量的变体310A-C(例如GPU类型)的第二集合308的唯一组合。在一个实施例中,DAG300可包括具有通过收集节点302A-I(例如顶点等)和多个有向边312所形成的无向圈的有向图,使得无法在DAG300中的任何节点处开始以及跟随最终再次循环回该起始节点的边的序列。
此外,基于处理速度定向了在第一分量的变体306A-C的第一集合304和第二分量的变体310A-C的第二集合308二者中的节点,较慢节点指向较快节点。这样,第一节点306A是第一集合304中的最慢节点,在第一集合304中第二节点306B快于第一节点306A但慢于第三节点306C,以及第三节点306C是第一集合304中的最快节点。
在一个实施例中,可利用一个或多个算法、基准测试、制造商公开内容等确定节点302A-I中的每一个的速度。在另一个实施例中,可通过分析每个节点中的分量的性质以及比较节点302A-I中的每一个的整体处理速度来确定DAG300内的节点302A-I的位置(包括哪些节点指向哪些节点)。
此外,如所示,有向边312从与个人计算机的参数变体的较慢唯一组合相对应的节点指向与个人计算机的参数变体的明确较快唯一组合相对应的节点。通过该方式,底部节点302I与个人计算机的参数变体的最快唯一组合相对应,而顶部节点302A与个人计算机的参数变体的最慢唯一组合相对应。
利用分段进行优化
根据参数变体的增加的处理速度和/或性能确定参数DAG300的结构,并且可确定用于每个参数变体的设置以平衡用于每个参数变体的图像质量和性能。在本说明书的上下文中,处理和性能可以指渲染、回放、计算和其他操作或像素分辨率。参数变体可被组织成组以基于终端用户期望提供最优设置的进一步定制。终端用户期望可基于终端用户的计算***(即具有诸如CPU、GPU和/或显示分辨率的参数的特定变体的设备)的处理速度或性能等级来改变。例如,终端用户在具有较低处理速度的计算***上运行应用程序与在具有较高处理速度的计算***上运行相同应用程序相比较可能期望体验较低帧率。类似地,终端用户在在支持由设置(例如图像质量、声音质量、颜色深度、纹理模式、光照模型等)所影响的特点方面具有较小的处理能力的计算***上运行应用程序与在具有较大处理能力的计算***上运行相同应用程序相比较可能期望体验较低质量特点。
取决于在终端用户的计算***上运行的游戏应用程序的类型(genre),终端用户还乐于接受在帧率方面改变的性能。例如,操作在处理速度方面较低端的计算***的终端用户针对诸如即时战略的某些类型游戏应用程序,在帧率方面可能乐于接受在帧率方面很低的性能(例如25帧每秒),然而针对诸如体育的其他类型游戏应用程序要求较高性能(例如60帧每秒)。相反,操作高端计算***的终端用户可能具有较高期望并且对于所有类型的游戏应用程序期望60帧每秒或更多。一般地,终端用户期望帧率随着计算***的处理速度增加。因此,随着最优设置增加,期望帧率增加(假定较高最优设置与较高质量相关)。
可将参数DAG300分段并且针对每个分段可设定不同阈值目标。每个阈值目标针对任何给定计算***可与由终端用户所期望的不同等级的性能(例如帧率)相对应,并且可针对每个类型的游戏应用程序指定目标阈值的不同集合。目标阈值用来生成用于每个分段内的每个节点的最优设置。在一个实施例中,每个阈值目标可与不同电力等级相对应,诸如电池电力剩余量、电源类型(例如电池或插座)、或功耗等级。
图3B示出根据另一个实施例的、具有组织成分段的节点的图3A的示例性参数DAG300。可通过数据挖掘、用户反馈、测试者意见、调查和/或开发者/公布者输入来确定经分段的参数DAG350。如图3B中所示,在一个或多个方面中与具有最高性能的设备的参数变体相对应的节点302I包括在分段320中。节点302I被视为“最快”节点。节点302G和302H包括在分段325中并且“慢”于分段320中的节点302I。节点302B、302C、302D、302E和302F包括在分段330中。分段325中的节点302G和302H“快”于分段330中的节点302B、302C、302D、302E和302F。在一个或多个方面与具有最低性能的设备的参数变体相对应的节点302A包括在分段335中。节点302A是“最慢”节点。针对阈值目标值的给定集合,每个分段320、325、330和335可与集合中的不同阈值目标值相关联。例如,在一个实施例中,分段320、325、330和335各自与60、40、30和20帧每秒的阈值目标值相关联。在另一个实施例中,分段320、325、330和335各自与40、35、30和25帧每秒的阈值目标值相关联。在一个实施例中,阈值目标关于组织成多个分段的多个参数变体的增加的处理速度连续地增加。
一旦阈值目标与分段相关联,就可使用先前结合图1、2和3A所描述的技术,独立地确定最优设置用于每个分段。随后实施一致性检查,以确保设置随着处理速度的增加跨经分段参数DAG350的不同分段单调增加。因为和与较高阈值目标相关联的第二分段中的第二节点的设置相比,与阈值目标相关联的第一分段中的第一节点具有较高设置是可能的,所以需要一致性检查。可通过实现为软件程序的一致性检查器或通过硬件***中的电路实施一致性检查。
例如,所确定的用于分段330内的节点302E的最优设置可高于所确定的用于分段325内的节点302G的最优设置。然而,基于参数DAG300的结构,节点302G的处理速度和节点302E的处理速度相比更高。因此,节点302G与节点302E相比具有较低最优设置是违反直觉的。经确定的最优设置直接与由使用用于特定应用程序的最优设置的计算***所产生的图像质量有关。终端用户期望由具有较高处理速度的计算***所产生的图像质量与由具有较低处理速度的计算***所产生的图像质量相比更好。因此,当所确定的用于节点302E和302G的最优设置无法随着处理速度的增加单调增加时,最优设置与终端用户的期望也是不一致的。
为确保最优设置的单调性以及确保较快节点不比较慢节点具有更低的最优设置,在经分段参数DAG350中的相邻节点上实施一致性检查。如果针对一个或多个设置标识了不一致,那么用于较慢节点的最优设置降低最小的量,以确保用于两个节点的最优设置的单调性。在一个实施例中,较慢节点继承较快节点的较低最优设置。可从最快节点开始到最慢节点遍历经分段参数DAG350中的节点,以实施跨分段的一致性的检查,以确保最优设置的单调性。确保跨分段的一致性可跨全局(full spectrum)的计算***针对阈值目标(例如帧率值)的集合提供满足终端用户期望的最优设置。
图4A示出根据另一个实施例的、用于同时确定多个最优设置并且确保设置的跨多个分段的一致性的方法400。如操作405中所示,标识与设备相关联的多个参数变体,其中多个参数变体被组织成多个分段。每个分段可与不同阈值目标值相关联。此外,如操作415中所示,大致同时确定用于多个参数变体中的每一个的设置。如操作420中所示,确保设置的跨多个分段的一致性。在一个实施例中,针对不同参数变体,设置被调整以确保设置随处理速度的增加单调增加。
图4B示出根据另一个实施例的、用于同时确定多个最优设置并且确保设置的跨多个分段的一致性的另一个方法450。操作405按先前所描述来完成。如操作410所示,多个参数变体基于阈值目标组织成多个分段。可针对每个软件应用程序或针对软件应用程序的每个类型提供阈值目标的集合。操作415按先前所描述来完成。
如操作425所示,由一致性检查器选择第一参数变体。第一参数变体可与用于设备的参数DAG中的节点相对应。在一个实施例中,经选择节点是与参数DAG中的最快节点相对应的节点的相邻节点。如操作430中所示,检查所确定的用于第一参数变体的设置,并且如果确定设置太高,那么在操作435处调整用于第一参数变体的设置。在本说明书的上下文中,当用于第一参数的设置和所确定的用于快于第一参数变体的相邻参数变体的设置相比与较高质量有关时,设置可能太高。质量可以是图像质量和/或声音质量。针对某些参数变体,当降下设置时,由参数变体所产生的帧率可能超过阈值目标,使得在图像和/或声音质量降低的同时帧率增加。
如果在操作430中,所确定的用于第一参数变体的设置不是太高,那么在操作440中,一致性检查器可标识具有还未被检查的设置的另一个参数变体。如果在操作440中一致性检查器标识另一个参数变体,那么一致性检查器返回到操作430以检查其他参数变体的设置。否则在操作445中,一致性检查器终止并且用于设备的经优化的设置被确保随着不同参数变体的处理速度的增加而单调增加。
当终端用户发起特定应用程序时,可向终端用户呈现提供以确定用于和终端用户正使用的计算***相对应的参数变体的最优设置的软件程序(例如一致性检查器)的界面。软件程序配置为实施结合图1、2、3A、3B、4A和4B中的一个或多个所描述的操作以确定用于多个参数变体的最优设置。和终端用户的计算***最严密匹配的参数变体被标识,并且计算***可随后选择性地配置为使用所确定的用于相匹配的参数变体的最优设置。多个参数变体的分段可向终端用户提供与其期望一致的最优设置。
图5示出其中可实现各种先前实施例的各种架构和/或功能性的示例性***500。如所示,提供了***500,其包括连接到通信总线502的至少一个中央处理器501。可使用任何合适的协议诸如PCI(***部件互连)、PCI-Express、AGP(加速图形端口)、超传输或任何其他总线或点对点通信协议来实现通信总线502。***500还包括主存储器504。控制逻辑(软件)和数据存储在可采取随机存取存储器(RAM)形式的主存储器504中。
***500还包括输入设备512、图形处理器506和显示器508,即常规CRT(阴极射线管)、LCD(液晶显示器)、LED(发光二极管)、等离子显示器等。可从输入设备512例如键盘、鼠标、触摸板、扩音器等接收用户输入。在一个实施例中,图形处理器506可包括多个着色器模块、光栅化模块等。前述模块中的每一个实际上可置于单个半导体平台上以形成图形处理单元(GPU)。图形处理器506可耦连到一个或多个DRAM设备515并且可配置为基于表征信息以不同速率刷新DRAM的不同区域。在一个实施例中,中央处理器501耦连到一个或多个DRAM设备515并配置为基于表征信息以不同速率刷新DRAM的不同区域。DRAM515可实现为图2中的DRAM280。
在本说明书中,单个半导体平台可以指基于单一半导体(sole unitarysemiconductor)的集成电路或芯片。应注意的是术语单个半导体平台还可以指具有增加的连通性的多芯片模块,其模拟片上操作,并且对利用常规中央处理单元(CPU)和总线实现方案进行大量改进。当然,各种模块还可按用户的意愿分开定位或位于半导体平台的各组合中。图5中所示的***500中的一个或多个,可合并在***500中以对芯片中的一个或多个供电。
***500还可包括二级存储510。二级存储510包括,例如硬盘驱动器和/或表示软盘驱动器、磁带驱动器、光盘驱动器、数字通用光盘(DVD)驱动器、记录设备、通用串行总线(USB)闪存的可移动存储驱动器。可移动存储驱动器以公知的方式自可移动存储单元读取和/或写入可移动存储单元。计算机程序、或计算机控制逻辑算法,可存储在主存储器504和/或二级存储510中。这种计算机程序当执行时使***500能够实施各种功能。主存储器504、存储510和/或任何其他存储是计算机可读介质的可能的示例。
在一个实施例中,可在中央处理器501、图形处理器506、能够有中央处理器501和图形处理器506两者的能力的至少一部分的集成电路(未示出)、芯片组(即设计为作为用于实施相关功能的单元工作以及销售的集成电路组等)和/或任何其他用于该情况的集成电路的上下文中实现各先前图的架构和/或功能性。
此外,可在通用计算机***、电路板***、专用于娱乐目的的游戏控制台***、特定应用***和/或任何其他所期望的***的上下文中实现各先前附图的架构和/或功能性。例如,***500可采取台式计算机、膝上型计算机、服务器、工作站、游戏控制台、嵌入式***和/或任何其他类型逻辑的形式。仍然,***500可采取各种其他设备的形式,包括但不限于个人数字助理(PDA)设备、移动电话设备、电视等。
进一步地,虽然未示出,***500可耦连到网络(例如电信网络、局域网(LAN)、无线网络、诸如互联网的广域网(WAN)、对等网络、电缆网络等)用于通信目的。
虽然上文已描述了各种实施例,应予以理解的是其仅由示例而非限制的方式所呈现。因此,优选实施例的宽度和范围不应由上文所述的任何示范性实施例所限制,而应仅根据接下来的权利要求及其等同物来限定。
Claims (20)
1.一种方法,包括:
标识与设备相关联的多个参数变体,其中所述多个参数变体组织成多个分段;
确定用于所述多个参数变体中的每一个的设置;以及
确保所述设置的跨所述多个分段的一致性。
2.根据权利要求1所述的方法,其中每个分段与多个阈值目标中的阈值目标相关联。
3.根据权利要求2所述的方法,其中所述阈值目标关于在组织成所述多个分段的所述多个参数变体的处理速度上的增加连续地增加。
4.根据权利要求2所述的方法,其中所述多个阈值目标是帧率值的集合。
5.根据权利要求2所述的方法,其中所述多个阈值目标是电力等级的集合。
6.根据权利要求2所述的方法,其中第一多个阈值目标和游戏应用程序的第一类型相对应并且第二多个阈值目标与游戏应用程序的第二类型相对应。
7.根据权利要求1所述的方法,其中同时确定用于所述多个参数变体中的每一个的设置包括创建包括多个节点的有向无环图(DAG),其中所述多个节点中的每一个表示所述多个参数变体中的一个。
8.根据权利要求7所述的方法,进一步包括将所述多个节点组织成所述多个分段,每个分段与不同阈值目标相关联。
9.根据权利要求1所述的方法,其中用于所述多个参数变体中的每一个的所述设置包括关于第一特点连续地增加以及关于第二特点连续地降低的预设的单调集合。
10.根据权利要求1所述的方法,其中确保所述设置的跨所述多个分段的一致性包括比较所述多个参数变体之间的设置。
11.根据权利要求10所述的方法,其中确保所述设置的跨所述多个分段的一致性进一步包括,当用于与具有第二设置的第二参数变体相比具有较低处理速度的第一参数变体的第一设置与所述第二设置相比与较高质量相关联时,调整所述第一设置。
12.根据权利要求11所述的方法,其中所述第一设置调整为等于所述第二设置。
13.根据权利要求1所述的方法,其中所述参数包括安装在所述设备内的硬件、安装在所述设备内的软件以及所述设备内的显示器的分辨率中的一个或多个。
14.根据权利要求1所述的方法,其中针对所述多个参数变体中的每一个,所述设置包括该参数变体的配置,使得具有该参数变体的所述设备产生最大化输出
15.根据权利要求1所述的方法,其中同时确定用于所述多个参数变体中的每一个的设置包括调整与所述多个参数变体中的每一个相关联的一个或多个设置。
16.根据权利要求1所述的方法,其中所述多个参数变体中的每一个影响如何确定所述设置。
17.一种在计算机可读介质上所具体化的计算机程序产品,包括:
用于标识与设备相关联的多个参数变体的代码,其中所述多个参数变体组织成多个分段;
用于确定用于所述多个参数变体中的每一个的设置的代码;以及
用于确保所述设置的跨所述多个分段的一致性的代码。
18.根据权利要求17所述的计算机程序产品,其中每个分段与多个阈值目标中的阈值目标相关联。
19.一种***,包括:
存储与设备相关联的多个参数变体的存储器;以及
处理器,其耦连到所述存储器并配置为:
将所述多个参数变体组织成多个分段;
确定用于所述多个参数变体中的每一个的设置;以及
确保所述设置的跨所述多个分段的一致性。
20.根据权利要求19所述的***,其中所述参数包括安装在所述设备内的硬件、安装在所述设备内的软件以及所述设备内的显示器的分辨率中的一个或多个。
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/543,196 US10509658B2 (en) | 2012-07-06 | 2012-07-06 | System, method, and computer program product for simultaneously determining settings for a plurality of parameter variations |
US13/543,196 | 2012-07-06 | ||
US201361819478P | 2013-05-03 | 2013-05-03 | |
US61/819,478 | 2013-05-03 | ||
US13/921,146 | 2013-06-18 | ||
US13/921,146 US10668386B2 (en) | 2012-07-06 | 2013-06-18 | System, method, and computer program product for simultaneously determining settings for a plurality of parameter variations |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103530108A true CN103530108A (zh) | 2014-01-22 |
CN103530108B CN103530108B (zh) | 2018-04-06 |
Family
ID=49781668
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310284893.2A Active CN103530108B (zh) | 2012-07-06 | 2013-07-08 | 同时确定多个参数变体的设置的***、方法 |
Country Status (3)
Country | Link |
---|---|
CN (1) | CN103530108B (zh) |
DE (1) | DE102013213113A1 (zh) |
TW (1) | TW201419212A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6306063B1 (en) * | 1997-01-31 | 2001-10-23 | Cummins Engine Company, Inc. | System for controlling combustion engine performance in accordance with driver behavior |
US20070066403A1 (en) * | 2005-09-20 | 2007-03-22 | Conkwright George C | Method for dynamically adjusting an interactive application such as a videogame based on continuing assessments of user capability |
CN101004900A (zh) * | 2006-01-19 | 2007-07-25 | 财团法人工业技术研究院 | 以视觉绩效自动调整显示器参数的装置及其方法 |
CN101740001A (zh) * | 2008-11-19 | 2010-06-16 | 康佳集团股份有限公司 | 一种亮度调整装置、方法和移动终端 |
CN101930719A (zh) * | 2009-06-18 | 2010-12-29 | 辉达公司 | 自动切换显示器场景模式的方法及*** |
-
2013
- 2013-07-03 TW TW102123854A patent/TW201419212A/zh unknown
- 2013-07-04 DE DE201310213113 patent/DE102013213113A1/de active Pending
- 2013-07-08 CN CN201310284893.2A patent/CN103530108B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6306063B1 (en) * | 1997-01-31 | 2001-10-23 | Cummins Engine Company, Inc. | System for controlling combustion engine performance in accordance with driver behavior |
US20070066403A1 (en) * | 2005-09-20 | 2007-03-22 | Conkwright George C | Method for dynamically adjusting an interactive application such as a videogame based on continuing assessments of user capability |
CN101004900A (zh) * | 2006-01-19 | 2007-07-25 | 财团法人工业技术研究院 | 以视觉绩效自动调整显示器参数的装置及其方法 |
CN101740001A (zh) * | 2008-11-19 | 2010-06-16 | 康佳集团股份有限公司 | 一种亮度调整装置、方法和移动终端 |
CN101930719A (zh) * | 2009-06-18 | 2010-12-29 | 辉达公司 | 自动切换显示器场景模式的方法及*** |
Also Published As
Publication number | Publication date |
---|---|
TW201419212A (zh) | 2014-05-16 |
CN103530108B (zh) | 2018-04-06 |
DE102013213113A1 (de) | 2014-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11351463B2 (en) | System, method, and computer program product for simultaneously determining settings for a plurality of parameter variations | |
US10936465B2 (en) | Method for optimized canary deployments for improved customer experience | |
CN103530109A (zh) | 同时确定多个参数变体的设置的***、方法 | |
CN103605500B (zh) | 利用一个或多个约束计算设备的设置的***、方法 | |
US8296781B1 (en) | System, method, and computer program product for determining application parameters based on hardware specifications | |
US20160078520A1 (en) | Modified matrix factorization of content-based model for recommendation system | |
CN111406249B (zh) | 用于协作处理计算任务的平台 | |
CN103605647B (zh) | 用于测试设备参数的***、方法和计算机程序产品 | |
CN103530243B (zh) | 用于确定用于设备的设置的***、方法 | |
CN115170390B (zh) | 一种文件风格化方法、装置、设备及存储介质 | |
CN109918445A (zh) | 基于区块链的挖矿装置及方法 | |
CN103530108A (zh) | 同时确定多个参数变体的设置的***、方法 | |
CN112418654B (zh) | 一种资源分配方法、装置、电子设备及存储介质 | |
US20220286361A1 (en) | Methods and apparatus to perform computer-based community detection in a network | |
CN110210880A (zh) | 数据处理方法、装置以及计算机可读存储介质 | |
US9454565B1 (en) | Identifying relationships between applications | |
WO2023066095A1 (zh) | 一种渲染方法及相关装置 | |
CN111930667A (zh) | 一种在阅读应用中进行书籍推荐的方法与设备 | |
CN111062468A (zh) | 生成网络的训练方法和***、以及图像生成方法及设备 | |
KR102676784B1 (ko) | 사용자의 서비스 체감 성능 평가 방법 및 시스템 | |
US20240256902A1 (en) | System and method for managing latent bias in tree based inference models | |
CN111798265B (zh) | 一种适用于企业用户的精准营销方法和装置 | |
CN110688371A (zh) | 数据调整方法、装置、电子设备及存储介质 | |
CN109903093A (zh) | 通信营销方法及平台 | |
CN114546664A (zh) | 特效资源处理方法、装置、存储介质和计算设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |