CN103605500B - 利用一个或多个约束计算设备的设置的***、方法 - Google Patents

利用一个或多个约束计算设备的设置的***、方法 Download PDF

Info

Publication number
CN103605500B
CN103605500B CN201310284937.1A CN201310284937A CN103605500B CN 103605500 B CN103605500 B CN 103605500B CN 201310284937 A CN201310284937 A CN 201310284937A CN 103605500 B CN103605500 B CN 103605500B
Authority
CN
China
Prior art keywords
node
equipment
parameter
dag
subset
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.)
Active
Application number
CN201310284937.1A
Other languages
English (en)
Other versions
CN103605500A (zh
Inventor
约翰·F·斯皮策
奥列格·瓦切斯拉沃维奇·维诺格德夫
谢尔盖·谢尔盖耶维奇·格列本肯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nvidia Corp
Original Assignee
Nvidia Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nvidia Corp filed Critical Nvidia Corp
Publication of CN103605500A publication Critical patent/CN103605500A/zh
Application granted granted Critical
Publication of CN103605500B publication Critical patent/CN103605500B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/363Graphics controllers

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Image Processing (AREA)

Abstract

本发明涉及利用一个或多个约束计算设备的设置的***、方法并提供了用于利用一个或多个约束计算用于设备的设置的***、方法和计算机程序产品。在使用中,标识与设备相关联的多个参数。此外,利用多个参数,确定一个或多个约束。进一步地,利用一个或多个约束和多个参数,计算用于设备的一个或多个设置。

Description

利用一个或多个约束计算设备的设置的***、方法
技术领域
本发明涉及参数分析,并且,更具体地,涉及基于参数分析确定预设的集合。
背景技术
今日已有的许多产品包括影响与产品相关联的整体体验的一个或多个参数。例如,计算机游戏和其他软件可具有确定渲染、音频、玩游戏等的质量的许多参数。然而,用于布置与这些产品相关联的参数的当前技术已与各种限制相关联。
例如,在当前,客户可能有责任手动调整与产品相关联的多个参数以确定用于该产品的适当的设置。这可能导致低于产品的最优设置、由客户进行的耗时的试错等。因此存在着解决这些和/或其他与现有技术相关联的问题的需要。
发明内容
提供了用于利用一个或多个约束计算用于设备的设置的***、方法和计算机程序产品。在使用中,标识与设备相关联的多个参数。此外,利用多个参数,确定一个或多个约束。进一步地,利用一个或多个约束或多个参数,计算用于设备的一个或多个设置。
附图说明
图1示出根据一个实施例的、用于确定用于设备的设置的方法。
图2示出根据另一个实施例的、用于确定用于个人计算机的预定最优可行设置的方法。
图3示出根据另一个实施例的示例性参数DAG。
图4示出其中可实现各种先前实施例的各种架构和/或功能性的示例性***。
具体实施方式
图1示出根据一个实施例的、用于确定用于设备的设置的方法100。如操作102中所示,标识了与设备相关联的多个参数。在一个实施例中,设备可包括具有与其相关联的多个参数的任何对象。例如,设备可包括诸如个人计算机、个人数字助理、移动电话、或其他硬件元件、汽车、住宅等的对象。
此外,在一个实施例中,多个参数可包括设备的任何特点。例如,多个参数可包括安装在设备(例如台式计算机、膝上型计算机、平板计算机、个人数字助理、移动电话等)内的硬件(例如中央处理单元(CPU)、图形处理单元(GPU)、随机存取存储器(RAM)、主板、显示器、分辨率等)的描述、安装在设备内的软件(例如操作***、驱动程序等)、汽车的发动机特性(例如正时、集管类型等)的描述等。
进一步地,在一个实施例中,多个参数中的一个或多个可以是可独立地配置的。例如,多个参数中的每一个可以能够与其他参数独立地加以改变。在另一个实施例中,可由设备利用多个参数中的每一个来实施一个或多个动作。在又一个实施例中,可在服务器处标识多个参数。例如,可经由网络(例如无线网络、有线网络、蜂窝网络、卫星网络等)将多个参数从产品或服务或与产品或服务相关联的实体发送到服务器。在另一个示例中,描述多个参数的细节可根据预定的间隔(例如每天一次、每周一次、每月一次等)从设备上传到服务器。
此外,如操作104中所示,利用多个参数确定了一个或多个约束。在一个实施例中,可利用有向无环图(DAG)确定一个或多个约束。例如,DAG可包括被创建的、包含多个有向节点的图形,其中节点基于一个或多个标准来定向。例如,DAG的多个节点中的每一个可表示设备参数的组合,并且节点可基于与每个节点相关联的速度在DAG内定向,其中基于由节点所表示的设备参数确定速度。在另一个实施例中,节点可在DAG中定向,使得当确定DAG的第二节点在一个或多个方面(例如关于处理速度等)确实快于DAG的第一节点时DAG的第一节点可指向DAG的第二节点。
进一步地,在一个实施例中,DAG中的每个节点可表示与设备或另一个设备相关联的多个各种可能的参数的唯一变体。例如,与设备相关联的多个可能的参数可包括设备CPU、设备GPU、以及设备分辨率,并且DAG中的每个节点可表示特定类型的设备CPU、设备GPU以及设备分辨率的唯一组合。通过该方式,DAG中的指向第二节点的第一节点表明由DAG中的第二节点所表示的与设备相关联的多个可能的参数比由DAG中的第一节点所表示的与设备相关联的多个可能的参数提供确实更佳的处理速度和性能。
仍进一步地,在一个实施例中,确定一个或多个约束可包括标识DAG中的和与设备相关联的经标识的多个参数相对应的节点。例如,DAG中的表示多个可能的参数的唯一变体的节点可被标识并被映射到设备,该唯一变体和与设备相关联的经标识的多个参数相匹配。
并且,在一个实施例中,确定一个或多个约束可包括确定DAG中的节点的第一子集,该DAG中的节点的第一子集在整体速度和性能上确实慢于或等于和与设备相关联的经标识的多个参数相对应的经标识的节点。例如,可确定DAG中的直接地或者间接地指向和与设备相关联的经标识的多个参数相对应的经标识的节点的所有节点。
此外,在一个实施例中,确定一个或多个约束可包括确定DAG中的节点的第二子集,该DAG中的节点的第二子集在整体速度和性能上确实快于或等于和与设备相关联的经标识的多个参数相对应的经标识的节点。例如,可确定DAG中的和与设备相关联的经标识的多个参数相对应的经标识的节点直接地或者间接地指向的所有节点。
此外,在一个实施例中,确定一个或多个约束可包括计算可能由节点的第一子集所产生的最大输出。例如,节点的第一子集的最大输出可包括能够由第一子集内的节点所处理和输出的最高图像质量。在另一个实施例中,节点的第一子集的最大输出可包括能够由的第一子集内的节点针对特定条件(例如最小可允许帧率等)所处理和输出的最高图像质量。
在另一个实施例中,一个或多个设置可与可能由节点的第一子集所产生的最大输出相关联。例如,节点的第一子集内的具体节点可标识为与能够产生最大输出的多个参数相对应。在其他实施例中,具体节点可与一个或多个预定的设置(例如能够利用给定的多个参数产生最大输出的预定的设置等)相关联,其可随后与节点的第一子集的最大输出相关联。
例如,预设的单调集合可能已确定用于与设备相关联的多个可能的参数的一个或多个唯一变体,其中每个唯一变体由DAG中的节点所表示。例如参见[NVIDP695],本文通过援引的方式对其全文加以合并,其描述了用于基于多个参数确定预设的单调集合的示例性方法。
在另一个实施例中,预定的设置可与已基于与设备相关联的多个可能的参数(例如与特定节点相关联的多个参数等)所确定的一个或多个参数相关联。例如参见[NVIDP541],本文通过援引的方式对其全文加以合并,其描述了用于基于硬件规格确定应用参数的示例性方法。
仍进一步地,在一个实施例中,确定一个或多个约束可包括计算不可能由节点的第二子集所产生的最小输出。例如,节点的第二子集的最小输出可包括不能由第二子集内的节点所处理和输出的最低图像质量。在另一个实施例中,节点的第二子集的最小输出可包括不能由第二子集内的节点针对特定条件(例如最小可允许帧率等)所处理和输出的最低图像质量。
在另一个实施例中,一个或多个设置可与不可能由节点的第二子集所产生的最小输出相关联。例如,节点的第二子集内的具体节点可标识为与不能产生最小输出的多个参数相对应。在另一个实施例中,具体节点可与一个或多个预定的设置(例如防止利用给定的多个参数产生最小输出的预定的设置等)相关联,该一个或多个预定的设置可随后与节点的第二子集的最小输出相关联。
并且,如操作106中所示,利用一个或多个约束和多个参数计算了用于设备的一个或多个设置。在一个实施例中,经计算用于设备的一个或多个设置可包括用于与设备相关联的多个参数中的一个或多个的预定义的设置。例如,设备可包括个人计算机,并且设置可包括用于安装在设备内的硬件和软件的一个或多个元素的预定义的设置。
此外,在一个实施例中,设置可与正由产品或服务所实施的一个或多个操作相关联。例如,设置可包括用于由设备运行的一个或多个软件程序的预定义的设置。在另一个实施例中,经计算用于设备的一个或多个设置可包括用于导致最大输出(例如图像质量等)同时维持条件(例如最小帧率等)的经标识的多个参数的设置。
此外,在一个实施例中,利用多个参数所确定的一个或多个约束可提供要在用于设备的一个或多个设置的计算期间所使用的边界。例如,一个或多个约束可包括可能由节点的第一子集所产生的最大输出,当计算用于设备的一个或多个设置时其可被指定为底(floor)、起始点、最小输出量等。在另一个示例中,一个或多个约束可包括不可能由节点的第二子集所产生的最小输出,当计算用于设备的一个或多个设置时其可被指定为顶(ceiling)、结束点、最大输出量等。
在另一个实施例中,一个或多个约束可包括与节点的第一子集的最大输出相关联的一个或多个预定的设置,当计算用于设备的一个或多个设置时其可被指定为最小可能设置。进一步地,一个或多个约束可包括与节点的第二子集的最小输出相关联的一个或多个预定的设置,当计算用于设备的一个或多个设置时其可被指定为最大可能设置。
仍进一步地,在一个实施例中,计算用于设备的一个或多个设置可包括确定在最小可能设置和最大可能设置之间中途的中点设置,以及确定设备是否能够维持条件同时以中点设置实施。此外,如果确定设备使用中点设置不能维持条件,那么可增量地减少设备设置,直到确定设备设置使条件能够得到维持为止。进一步地,如果确定设备使用中点设置能够维持条件,那么可增量地增加设备设置,直到确定设备设置使条件能够得到维持为止。
通过该方式,当确定用于导致最大输出同时维持用于设备的条件的设备的多个参数的设置时,约束可应用到与设备相关联的多个参数。这可基于通过根据DAG内的相邻配置杠杆化(leverage)预定设置来使能最优的设置的较快的收敛。并且,可确定一个或多个预定设置用于设备,同时确保满足预定标准(例如最小帧率条件等)用于设备。此外,通过使用DAG,可使用二进制搜索以确定一个或多个设置。
现在将关于各种可选架构和特征阐述更多例示性信息,前述框架可以或可以不利用其加以实现,取决于用户的意愿。应极力注意的是,阐述以下信息是用于例示性目的并且不应视为以任何方式加以限制。可通过排除或不排除所描述的其他特征来可选地对任何以下特征加以合并。
图2示出根据另一个实施例的、用于确定用于个人计算机的预定最优可行设置的方法200。作为选项,可在图1的功能性的上下文中实行方法200。然而当然,可在任何需要的环境中实现方法200。还应注意的是,在本描述期间可应用前述定义。
如操作202中所示,与个人计算机相关联的多个参数发送到服务器。在一个实施例中,多个参数可包括与个人计算机的显示器相关联的参数。例如,多个参数可包括个人计算机的屏幕分辨率。在另一个实施例中,多个参数可包括与由个人计算机进行的图形渲染相关联的参数。例如,多个参数可包括安装在个人计算机内的***硬件特性(例如CPU特性、GPU特性、主板特性、RAM特性等)、安装在个人计算机内的***软件特性等。
此外,在一个实施例中,服务器对个人计算机可以是远程的,并且多个参数可通过网络发送到服务器。例如,安装在个人计算机内的软件可获得多个参数并可发送这种参数到服务器。在另一个实施例中,服务器可位于个人计算机内,并且多个参数可在个人计算机内发送到服务器。然而当然,可通过任何方式将多个参数发送到服务器。
在另一个实施例中,当用户在个人计算机上运行应用时,与个人计算机相关联的多个参数可发送到服务器。在又一个实施例中,当用户在个人计算机上安装应用时,与个人计算机相关联的多个参数可发送到服务器。在又一个实施例中,当用户在个人计算机上下载应用时,与个人计算机相关联的多个参数可发送到服务器。然而当然,由于任何动作或标准,与个人计算机相关联的多个参数可发送到服务器。
进一步地,如操作204中所示,利用发送到服务器的多个参数,在服务器处标识了参数DAG中的节点。例如,参数DAG可包括表示用于个人计算机的参数的唯一组合的多个节点,并且DAG中的表示发送到服务器的多个参数的所有或预定子集的节点可被标识。
仍进一步地,如操作206中所示,在服务器处确定了参数DAG中的在速度上确实慢于或等于经标识节点的所有节点的第一子集。在一个实施例中,参数DAG中的每个节点可表示用于个人计算机的参数的唯一组合,并且参数DAG中的每个节点可与预定速度(例如节点的参数的唯一组合能处理数据的速度)相关联。例如,可针对用于个人计算机的参数的唯一组合显式计算或估计速度,并且这种速度可与其对应节点相关联。
并且,在一个实施例中,可通过标识直接地或间接地指向经标识节点的所有节点,来确定参数DAG中的在速度上确实慢于或等于经标识节点的所有节点的第一子集。此外,如操作208中所示,在服务器处确定了参数DAG中的在速度上确实快于或等于经标识节点的所有节点的第二子集。在一个实施例中,可通过标识经标识节点直接地或间接地指向的所有节点,来确定参数DAG中的在速度上确实快于或等于经标识节点的所有节点的第二子集。
进一步地,如操作210中所示,确定了在给定的预定条件下、在节点的第一子集内的产生最大输出的底节点(floor node)。在一个实施例中,预定条件可包括预定最小可接受帧率,其能够通过由DAG中的每个节点所表示的参数的唯一组合所产生。在另一个实施例中,给定预定条件,其相关联参数产生最大输出的底节点可包括提供最高图像质量的节点。在又一个实施例中,通过针对阈值帧率比较用于由节点的第一子集中的每个节点所表示的参数的唯一组合的输出的量(例如图像质量等),可标识产生最大输出的底节点。
仍进一步地,如操作212中所示,,确定了在给定的预定条件下、在节点的第二子集内的产生最小输出的顶节点(ceiling node)。在一个实施例中,给定预定条件,产生最小输出的顶节点可包括其相关联参数产生最低图像质量的节点。在又一个实施例中,通过针对阈值帧率比较用于由节点的第一子集中的每个节点所表示的参数的唯一组合的输出的量(例如图像质量等),可标识产生最小输出的顶节点。
并且,如操作214中所示,标识了与能够由底节点在给定预定条件产生的最大输出相关联的底设置。在一个实施例中,设置可包括指派到由导致最大输出的底节点所表示的参数的组合的一个或多个设置,同时还可标识满足预定条件。此外,如操作216中所示,标识了与由顶节点在违背预定条件的同时所产生的最小输出相关联的顶设置。
在一个实施例中,指派到由顶节点所表示的参数的组合的设置可增量地增加,直到不满足预定帧率条件(例如由参数所产生的帧率小于阈值帧率)为止。进一步地,设置可包括指派到由产生最小输出的底节点所表示的参数的组合的一个或多个设置,同时还可标识违背预定条件。
此外,如操作218中所示,基于底设置和顶设置,改善(refine)了用于与个人计算机相关联的多个参数的最优可行设置。在一个实施例中,可在底设置和顶设置之间中途确定用于与个人计算机相关联的多个参数的中点设置。此外,在一个实施例中,如果给定中点设置的参数满足预定条件(例如通过/失败布尔条件、阈值(例如帧率等)等),那么设置可增量地增加直到不满足预定条件为止,并且满足帧率的最后有效设置可设定为最优可行设置。
相反,在一个实施例中,如果给定中点设置的参数不满足预定条件(例如帧率等),那么设置可增量地减少直到满足预定条件为止,并且满足帧率的第一有效设置可设定为最优可行设置。通过该方式,当检测到用于个人计算机的最优可行设置时,底设置和顶设置可起约束作用以增进收敛。
仍进一步地,在一个实施例中,在用于个人计算机的最优可行设置的确定期间,可不断改善节点的第一和第二子集,以及底节点和顶节点。通过该方式,可在用于个人计算机的最优可行设置的确定期间的任何时间,确定新节点子集和底和顶节点。
图3示出根据另一个实施例的示例性参数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内的节点302E。例如,参数变体的经标识的组合可与和节点302E相对应的参数变体的组合相匹配。
仍进一步地,在一个实施例中,可确定包括节点302A、B、C和D的第一节点子集确实慢于或等于节点302E。例如,节点302A、B和C通过有向顶点全部直接或间接地指向节点302E,因此,节点302A、B和C全部确实慢于节点302E。在另一个示例中,可确定节点302D在速度上慢于或等于节点302E。
并且,在一个实施例中,可确定包括节点302F、G、H和I的第二节点子集确实快于或等于节点302E。例如,节点302G、H和I全部被节点302E通过有向顶点所直接或间接地指向,因此,节点302G、H和I全部确实快于节点302E。在另一个示例中,可确定节点302F在速度上快于或等于节点302E。
此外,在一个实施例中,可确定,在给定特定预定设置的情况下,在节点302A、B、C和D的第一子集内,由节点302D所表示的参数针对预定帧率产生最大输出。在另一个实施例中,节点302D的那些特定预定设置可设定为底设置。在又一个实施例中,可确定,在给定特定预定设置的情况下,在节点302F、G、H和I的第二子集内,由节点302F所表示的参数针对预定帧率产生最小输出。在另一个实施例中,节点302F的那些特定预定设置可设定为顶设置。
进一步地,在一个实施例中,可确定最优可行设置用于参数变体的初始组合,其中底设置和顶设置指示要在确定期间所测试的设置的范围。通过该方式,用于DAG300中的节点的设置的准确确定可以通过杠杆化来自DAG300中的相邻节点的结果来以快捷的方式收敛。
图4示出其中可实现各种先前实施例的各种架构和/或功能性的示例性***400。如所示,提供了***400,其包括连接到通信总线402的至少一个主处理器401。***400还包括主存储器404。控制逻辑(软件)和数据存储在可采取随机存取存储器(RAM)形式的主存储器404中。
***400还包括图形处理器406和显示器408,即计算机监视器。在一个实施例中,图形处理器406可包括多个着色器模块、光栅化模块等。前述模块中的每一个实际上可置于单个半导体平台上以形成图形处理单元(GPU)。
在本说明书中,单个半导体平台可以指基于单一半导体(sole unitarysemiconductor)的集成电路或芯片。应注意的是术语单个半导体平台还可以指具有增加的连通性的多芯片模块,其模拟片上操作,并且对利用常规中央处理单元(CPU)和总线实现方案进行大量改进。当然,各种模块还可按用户的期望分开定位或位于半导体平台的各种组合中。
***400还可包括二级存储410。二级存储410包括,例如硬盘驱动器和/或表示软盘驱动器、磁带驱动器、光盘驱动器等的可移动存储驱动器。可移动存储驱动器以公知的方式自可移动存储单元读取和/或写入可移动存储单元。
计算机程序、或计算机控制逻辑算法,可存储在主存储器404和/或二级存储410中。这种计算机程序当执行时使***400能够实施各种功能。存储器404、存储410和/或任何其他存储是计算机可读介质的可能示例。
在一个实施例中,可在主处理器401、图形处理器406、能够有主处理器401和图形处理器406两者的能力的至少一部分的集成电路(未示出)、芯片组(即设计为作为用于实施相关功能的单元工作以及销售的集成电路组等)和/或任何其他用于该情况的集成电路的上下文中实现各先前图的架构和/或功能性。
此外,可在通用计算机***、电路板***、专用于娱乐目的的游戏控制台***、特定应用***和/或任何其他所期望的***的上下文中实现各先前附图的架构和/或功能性。例如,***400可采取台式计算机、膝上型计算机和/或任何其他类型逻辑的形式。仍然,***400可采取各种其他设备的形式,包括但不限于个人数字助理(PDA)设备、移动电话设备、电视等。
进一步地,虽然未示出,***400可耦连到网络[例如电信网络、局域网(LAN)、无线网络、诸如互联网的广域网(WAN)、对等网络、电缆网络等]用于通信目的。
虽然上文已描述了各种实施例,应予以理解的是其仅由示例而非限制的方式所呈现。因此,优选实施例的宽度和范围不应由上文所述的任何示范性实施例所限制,而应仅根据接下来的权利要求及其等同物来限定。

Claims (15)

1.一种利用一个或多个约束计算设备的设置的方法,包括:
标识与设备相关联的多个参数,所述多个参数包括安装在所述设备内的硬件和软件的描述;
创建包括多个节点的有向无环图(DAG),其中所述节点中的每一个代表与所述设备相关联的所述多个参数的唯一变体,并且其中所述DAG的至少一个节点直接由所述DAG的两个或更多个额外的节点所指向,
针对所述多个节点中的每一个,确定与所述节点相关联的速度,其中所述速度是基于所述节点所代表的所述参数确定的,并且
基于与每个节点相关联的所述速度,定向所述DAG内的所述多个节点;以及
利用包括在所述DAG内的所述多个节点,计算用于所述设备的一个或多个设置。
2.根据权利要求1所述的方法,其中确定所述一个或多个约束包括标识所述DAG中的和所述经标识的与所述设备相关联的多个参数相对应的节点。
3.根据权利要求2所述的方法,其中确定所述一个或多个约束包括确定所述DAG中的在整体速度和性能上确实慢于或等于所述经标识节点的节点的第一子集。
4.根据权利要求2所述的方法,其中确定所述一个或多个约束包括确定所述DAG中的在整体速度和性能上确实快于或等于所述经标识节点的节点的第二子集。
5.根据权利要求3所述的方法,其中确定所述一个或多个约束包括计算可能由所述节点的第一子集所产生的最大输出。
6.根据权利要求5所述的方法,其中所述节点的第一子集的所述最大输出包括能够由所述第一子集内的所述节点针对特定条件所处理和输出的最高图像质量。
7.根据权利要求5所述的方法,其中一个或多个设置与可能由所述节点的第一子集所产生的所述最大输出相关联。
8.根据权利要求4所述的方法,其中确定所述一个或多个约束包括计算不可能由所述节点的第二子集所产生的最小输出。
9.根据权利要求8所述的方法,其中所述节点的第二子集的所述最小输出包括不能由所述第二子集内的所述节点针对特定条件所处理和输出的最低图像质量。
10.根据权利要求8所述的方法,其中一个或多个设置与不可能由所述节点的第二子集所产生的所述最小输出相关联。
11.根据权利要求1所述的方法,其中经计算用于所述设备的所述一个或多个设置包括用于与所述设备相关联的所述多个参数中的一个或多个的预定义的设置。
12.根据权利要求5所述的方法,其中所述一个或多个约束包括与所述节点的第一子集的所述最大输出相关联的一个或多个预定设置,当计算用于所述设备的所述一个或多个设置时其被指定为最小可能设置。
13.根据权利要求8所述的方法,其中所述一个或多个约束包括与所述节点的第二子集的所述最小输出相关联的一个或多个预定设置,当计算用于所述设备的所述一个或多个设置时其被指定为最大可能设置。
14.一种利用一个或多个约束计算设备的设置的***,包括:
处理器,用于
标识与设备相关联的多个参数,所述多个参数包括安装在所述设备内的硬件和软件的描述;
创建包括多个节点的有向无环图(DAG),其中所述节点中的每一个代表与所述设备相关联的所述多个参数的唯一变体,并且其中所述DAG的至少一个节点直接由所述DAG的两个或更多个额外的节点所指向,
针对所述多个节点中的每一个,确定与所述节点相关联的速度,其中所述速度是基于所述节点所代表的所述参数确定的,并且
基于与每个节点相关联的所述速度,定向所述DAG内的所述多个节点;以及
利用包括在所述DAG内的所述多个节点,计算用于所述设备的一个或多个设置。
15.根据权利要求14所述的***,其中所述处理器经由总线耦连到存储器。
CN201310284937.1A 2012-07-06 2013-07-08 利用一个或多个约束计算设备的设置的***、方法 Active CN103605500B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/543,212 US9250931B2 (en) 2012-07-06 2012-07-06 System, method, and computer program product for calculating settings for a device, utilizing one or more constraints
US13/543,212 2012-07-06

Publications (2)

Publication Number Publication Date
CN103605500A CN103605500A (zh) 2014-02-26
CN103605500B true CN103605500B (zh) 2017-04-12

Family

ID=49780841

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310284937.1A Active CN103605500B (zh) 2012-07-06 2013-07-08 利用一个或多个约束计算设备的设置的***、方法

Country Status (4)

Country Link
US (1) US9250931B2 (zh)
CN (1) CN103605500B (zh)
DE (1) DE102013213094B4 (zh)
TW (1) TWI515671B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9275377B2 (en) 2012-06-15 2016-03-01 Nvidia Corporation System, method, and computer program product for determining a monotonic set of presets
US10509658B2 (en) 2012-07-06 2019-12-17 Nvidia Corporation System, method, and computer program product for simultaneously determining settings for a plurality of parameter variations
US9286247B2 (en) 2012-07-06 2016-03-15 Nvidia Corporation System, method, and computer program product for determining settings for a device by utilizing a directed acyclic graph containing a plurality of directed nodes each with an associated speed and image quality
US9092573B2 (en) 2012-07-06 2015-07-28 Nvidia Corporation System, method, and computer program product for testing device parameters
US10668386B2 (en) 2012-07-06 2020-06-02 Nvidia Corporation System, method, and computer program product for simultaneously determining settings for a plurality of parameter variations
US9201670B2 (en) 2012-07-06 2015-12-01 Nvidia Corporation System, method, and computer program product for determining whether parameter configurations meet predetermined criteria
JP6102947B2 (ja) * 2012-12-28 2017-03-29 富士通株式会社 画像処理装置及び特徴検出方法
US10492691B2 (en) * 2015-08-31 2019-12-03 Massachusetts Institute Of Technology Systems and methods for tissue stiffness measurements
JP7006184B2 (ja) * 2017-11-27 2022-01-24 富士通株式会社 制御プログラム、制御方法および制御装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6059842A (en) * 1998-04-14 2000-05-09 International Business Machines Corp. System and method for optimizing computer software and hardware
CN1479904A (zh) * 2000-12-08 2004-03-03 ˹��Ʒ�˹ɷݹ�˾ 利用有向无环图配置产品的方法
CN1752952A (zh) * 2004-09-22 2006-03-29 威芯科技股份有限公司 内建于硬件装置的驱动程序的安装方法

Family Cites Families (79)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR1586705A (zh) 1968-09-19 1970-02-27
US5086386A (en) 1990-03-23 1992-02-04 Sun Microsystems, Inc. Method and apparatus for benchmarking the working set of window-based computer systems
US5388841A (en) 1992-01-30 1995-02-14 A/N Inc. External memory system having programmable graphics processor for use in a video game system or the like
US5671351A (en) 1995-04-13 1997-09-23 Texas Instruments Incorporated System and method for automated testing and monitoring of software applications
TW292365B (en) 1995-05-31 1996-12-01 Hitachi Ltd Computer management system
US7163588B2 (en) 1997-05-09 2007-01-16 Semitool, Inc. Processing a workpiece using water, a base, and ozone
US5987624A (en) 1997-06-10 1999-11-16 Paradise Electronics, Inc. Method and apparatus for automatically determining signal parameters of an analog display signal received by a display unit of a computer system
US5958058A (en) 1997-07-18 1999-09-28 Micron Electronics, Inc. User-selectable power management interface with application threshold warnings
US6314479B1 (en) 1997-08-04 2001-11-06 Compaq Computer Corporation Universal multi-pin plug and display connector for standardizing signals transmitted between a computer and a display for a PC theatre interconnectivity system
US6725260B1 (en) 1998-09-11 2004-04-20 L.V. Partners, L.P. Method and apparatus for configuring configurable equipment with configuration information received from a remote location
US6847358B1 (en) 1999-08-06 2005-01-25 Microsoft Corporation Workstation for processing and producing a video signal
US6850973B1 (en) 1999-09-29 2005-02-01 Fisher-Rosemount Systems, Inc. Downloadable code in a distributed process control system
JP4470259B2 (ja) 2000-01-27 2010-06-02 ソニー株式会社 映像処理装置
US6654952B1 (en) 2000-02-03 2003-11-25 Sun Microsystems, Inc. Region based optimizations using data dependence graphs
US7034828B1 (en) 2000-08-23 2006-04-25 Nintendo Co., Ltd. Recirculating shade tree blender for a graphics system
US6753881B1 (en) 2000-11-01 2004-06-22 Ati International Srl Adapter and method to connect a component video input television to a video providing unit
KR100520058B1 (ko) 2000-12-13 2005-10-11 삼성전자주식회사 디바이스드라이버 업그레이드 시스템 및 디바이스드라이버업그레이드 방법
US7076536B2 (en) 2000-12-21 2006-07-11 Microsoft Corporation Method and system to access software pertinent to an electronic peripheral device at an address based on a peripheral device identifier
US7080247B2 (en) 2000-12-22 2006-07-18 Evga Corporation System and method for automated display driver management
US7165109B2 (en) 2001-01-12 2007-01-16 Microsoft Corporation Method and system to access software pertinent to an electronic peripheral device based on an address stored in a peripheral device
US6901580B2 (en) 2001-06-22 2005-05-31 Intel Corporation Configuration parameter sequencing and sequencer
US7778936B2 (en) 2001-07-19 2010-08-17 Adhikari Technology, Inc. Business valuation system and method
US6941450B2 (en) * 2001-07-30 2005-09-06 International Business Machines Corporation System and method for identifying one or more optimum configurations of a data processing system
US20030033519A1 (en) 2001-08-13 2003-02-13 Tippingpoint Technologies,Inc. System and method for programming network nodes
JP2003076619A (ja) 2001-08-31 2003-03-14 Allied Tereshisu Kk 通信処理装置、管理装置、プログラム及び通信システム
US7320142B1 (en) 2001-11-09 2008-01-15 Cisco Technology, Inc. Method and system for configurable network intrusion detection
US20030140333A1 (en) 2001-12-20 2003-07-24 Hitachi, Ltd. Integration of computer system components
US20050120208A1 (en) 2002-01-25 2005-06-02 Albert Dobson Robert W. Data transmission systems
US7299382B2 (en) 2002-04-29 2007-11-20 Sun Microsystems, Inc. System and method for automatic test case generation
US7577951B2 (en) 2002-05-30 2009-08-18 Hewlett-Packard Development Company, L.P. Performance of computer programs while they are running
US7293201B2 (en) 2003-01-17 2007-11-06 Microsoft Corporation System and method for active diagnosis and self healing of software systems
US7584467B2 (en) 2003-03-17 2009-09-01 Microsoft Corporation Software updating system and method
WO2004086293A1 (en) 2003-03-19 2004-10-07 Nik Multimedia, Inc. Selective enhancement of digital images
US7359562B2 (en) 2003-03-19 2008-04-15 Mitsubishi Electric Research Laboratories, Inc. Enhancing low quality videos of illuminated scenes
US20040212610A1 (en) 2003-04-25 2004-10-28 Dell Products L.P. Method and apparatus for associating display configuration information with respective displays of an information handling system
US7181376B2 (en) 2003-06-03 2007-02-20 International Business Machines Corporation Apparatus and method for coverage directed test
US8392879B2 (en) 2003-10-06 2013-03-05 National Instruments Corporation Parameter assistant for automatically specifying parameter values for a software program
US7369159B2 (en) 2004-03-17 2008-05-06 Rgb Systems, Inc. Method and apparatus for dynamically testing video equipment
US7626944B1 (en) 2004-03-31 2009-12-01 Packeteer, Inc. Methods, apparatuses and systems facilitating remote, automated deployment of network devices
US7627537B2 (en) 2004-10-28 2009-12-01 Intel Corporation Score result reuse for Bayesian network structure learning
US7603445B1 (en) 2004-11-10 2009-10-13 Juniper Networks, Inc. Managing and changing device settings
US7450084B2 (en) 2004-12-17 2008-11-11 Microsoft Corporation System and method for managing computer monitor configurations
US7561161B2 (en) 2005-01-28 2009-07-14 Microsoft Corporation Quantitative measure of a video interface
CN1889162A (zh) 2005-07-02 2007-01-03 群康科技(深圳)有限公司 液晶显示器韧体更新***及方法
US7648460B2 (en) 2005-08-31 2010-01-19 Siemens Medical Solutions Usa, Inc. Medical diagnostic imaging optimization based on anatomy recognition
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
US7840915B2 (en) 2006-02-01 2010-11-23 The Trustees Of Columbia University In The City Of New York Methods and media for forming a bound network
JP4218766B2 (ja) 2006-03-09 2009-02-04 インターナショナル・ビジネス・マシーンズ・コーポレーション シナリオをテストする方法、装置、及びプログラム
JP2007310245A (ja) 2006-05-19 2007-11-29 Eastman Kodak Co ドライバ回路
US7689954B2 (en) 2006-05-25 2010-03-30 Wisconsin Alumni Research Foundation Efficient statistical timing analysis of circuits
US20080005611A1 (en) 2006-05-31 2008-01-03 Microsoft Corporation Providing A Restore Operating System With New Or Updated Software Components
US7659897B1 (en) 2006-06-30 2010-02-09 Nvidia Corporation System, method, and computer program product for video benchmarking
US20080072077A1 (en) 2006-08-24 2008-03-20 Ati Technologies Inc. Notification of Revocation in a Device Offering Secure Playback of Content
US8292741B2 (en) 2006-10-26 2012-10-23 Cfph, Llc Apparatus, processes and articles for facilitating mobile gaming
CN106210589B (zh) 2006-11-07 2019-07-12 索尼株式会社 一种用于在发送设备与接收设备之间通信的通信***
US20080133067A1 (en) 2006-11-30 2008-06-05 Demay Rod Vehicle monitoring system
US9522332B2 (en) 2006-12-13 2016-12-20 Voodoo Gaming Llc Video games including real-life attributes and/or fantasy team settings
US20080242423A1 (en) 2007-03-27 2008-10-02 Shelford Securities, S.A. Real-money online multi-player trivia system, methods of operation, and storage medium
CA2722300C (en) 2007-04-25 2016-06-28 Miovision Technologies Incorporated Method and system for analyzing multimedia content
US8312389B2 (en) 2007-08-31 2012-11-13 Fair Isaac Corporation Visualization of decision logic
US7942315B2 (en) 2007-09-05 2011-05-17 Ncr Corporation Self-service terminal
US20090069084A1 (en) 2007-09-12 2009-03-12 Reece Alex D System and Methods for Monitoring and Controlling the Actions of an Avatar in a Virtual Environment
US8463641B2 (en) 2007-10-05 2013-06-11 The Boeing Company Method and system using linear programming for estimating test costs for bayesian diagnostic models
US8296781B1 (en) 2007-12-11 2012-10-23 Nvidia Corporation System, method, and computer program product for determining application parameters based on hardware specifications
US8276133B1 (en) 2007-12-11 2012-09-25 Nvidia Corporation System, method, and computer program product for determining a plurality of application settings utilizing a mathematical function
US8280864B1 (en) 2007-12-17 2012-10-02 Nvidia Corporation System, method, and computer program product for retrieving presentation settings from a database
CN101303672B (zh) 2008-03-25 2011-07-20 杭州赛利科技有限公司 电脑多路输入输出命令操作***、输入设备及运行方法
TWI453596B (zh) 2008-10-23 2014-09-21 Micro Star Int Co Ltd 輸出bios偵錯碼的裝置與方法
US20100162201A1 (en) 2008-12-18 2010-06-24 Sap Ag Automated multi-platform configuration tool for master data management systems using secure shell protocol
US8171343B2 (en) 2009-06-16 2012-05-01 Oracle International Corporation Techniques for determining models for performing diagnostics
TW201205427A (en) 2010-07-22 2012-02-01 Hon Hai Prec Ind Co Ltd System and method for adjusting the display parameters automatically
US8787392B2 (en) 2010-12-17 2014-07-22 Cisco Technology, Inc. Dynamic routing metric adjustment
CA2774575A1 (en) 2011-04-19 2012-10-19 Monoidics Ltd. System and method for display of software quality
US9275377B2 (en) 2012-06-15 2016-03-01 Nvidia Corporation System, method, and computer program product for determining a monotonic set of presets
US9092573B2 (en) 2012-07-06 2015-07-28 Nvidia Corporation System, method, and computer program product for testing device parameters
US10509658B2 (en) 2012-07-06 2019-12-17 Nvidia Corporation System, method, and computer program product for simultaneously determining settings for a plurality of parameter variations
US10668386B2 (en) 2012-07-06 2020-06-02 Nvidia Corporation System, method, and computer program product for simultaneously determining settings for a plurality of parameter variations
US9286247B2 (en) 2012-07-06 2016-03-15 Nvidia Corporation System, method, and computer program product for determining settings for a device by utilizing a directed acyclic graph containing a plurality of directed nodes each with an associated speed and image quality
US9201670B2 (en) 2012-07-06 2015-12-01 Nvidia Corporation System, method, and computer program product for determining whether parameter configurations meet predetermined criteria

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6059842A (en) * 1998-04-14 2000-05-09 International Business Machines Corp. System and method for optimizing computer software and hardware
CN1479904A (zh) * 2000-12-08 2004-03-03 ˹��Ʒ�˹ɷݹ�˾ 利用有向无环图配置产品的方法
CN1752952A (zh) * 2004-09-22 2006-03-29 威芯科技股份有限公司 内建于硬件装置的驱动程序的安装方法

Also Published As

Publication number Publication date
US20140009470A1 (en) 2014-01-09
DE102013213094B4 (de) 2021-07-01
CN103605500A (zh) 2014-02-26
TW201417003A (zh) 2014-05-01
DE102013213094A1 (de) 2014-01-09
TWI515671B (zh) 2016-01-01
US9250931B2 (en) 2016-02-02

Similar Documents

Publication Publication Date Title
CN103605500B (zh) 利用一个或多个约束计算设备的设置的***、方法
US11351463B2 (en) System, method, and computer program product for simultaneously determining settings for a plurality of parameter variations
US10795691B2 (en) System, method, and computer program product for simultaneously determining settings for a plurality of parameter variations
US20190207869A1 (en) Intelligent Placement within a Data Center
CN106056529B (zh) 一种对用于图片识别的卷积神经网络训练的方法与设备
CN103605647B (zh) 用于测试设备参数的***、方法和计算机程序产品
CN103077088B (zh) 集群渲染环境中基于pkdt树的动态反馈负载均衡方法
CN108921300A (zh) 执行自动机器学习的方法和装置
CN103530243B (zh) 用于确定用于设备的设置的***、方法
CN110245061B (zh) 计算装置、其功耗预测方法及计算机可读存储介质
CN103530107A (zh) 用于确定参数配置是否满足预定标准的***、方法和产品
CN103245829B (zh) 一种虚拟机功耗测量方法
US20190147641A1 (en) A real-time rendering method based on energy consumption-error precomputation
JP2013235512A (ja) 数理計画問題を解くための装置、プログラムおよび方法
US20120105465A1 (en) Techniques for efficient sampling for image effects
CN116059637B (zh) 虚拟对象渲染方法、装置、存储介质及电子设备
JP2023078639A (ja) 情報処理装置及び情報処理方法
Wang et al. Allo: Optimizing Federated Learning via Guided Epoch Allocation
CN103530108A (zh) 同时确定多个参数变体的设置的***、方法
CN118245230A (zh) 基于负载均衡的图像渲染任务调度方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant