CN114118433A - 一种设备的配置参数的推荐方法及装置 - Google Patents
一种设备的配置参数的推荐方法及装置 Download PDFInfo
- Publication number
- CN114118433A CN114118433A CN202010873834.9A CN202010873834A CN114118433A CN 114118433 A CN114118433 A CN 114118433A CN 202010873834 A CN202010873834 A CN 202010873834A CN 114118433 A CN114118433 A CN 114118433A
- Authority
- CN
- China
- Prior art keywords
- configuration parameters
- equipment
- parameters
- model
- component
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 122
- 238000013136 deep learning model Methods 0.000 claims abstract description 93
- 230000015654 memory Effects 0.000 claims description 102
- 238000012545 processing Methods 0.000 claims description 49
- 230000008569 process Effects 0.000 claims description 42
- 238000005457 optimization Methods 0.000 claims description 28
- 238000012986 modification Methods 0.000 claims description 6
- 230000004048 modification Effects 0.000 claims description 6
- 238000004445 quantitative analysis Methods 0.000 claims description 5
- 238000013473 artificial intelligence Methods 0.000 description 39
- 230000000875 corresponding effect Effects 0.000 description 25
- 238000010586 diagram Methods 0.000 description 20
- 238000004458 analytical method Methods 0.000 description 19
- 230000008859 change Effects 0.000 description 17
- 230000006870 function Effects 0.000 description 17
- 238000013461 design Methods 0.000 description 16
- 238000003860 storage Methods 0.000 description 16
- 238000004364 calculation method Methods 0.000 description 11
- 238000004891 communication Methods 0.000 description 10
- 238000004590 computer program Methods 0.000 description 9
- 230000001133 acceleration Effects 0.000 description 7
- 238000004422 calculation algorithm Methods 0.000 description 7
- 230000003247 decreasing effect Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 7
- 230000001965 increasing effect Effects 0.000 description 7
- 238000012544 monitoring process Methods 0.000 description 6
- WURBVZBTWMNKQT-UHFFFAOYSA-N 1-(4-chlorophenoxy)-3,3-dimethyl-1-(1,2,4-triazol-1-yl)butan-2-one Chemical compound C1=NC=NN1C(C(=O)C(C)(C)C)OC1=CC=C(Cl)C=C1 WURBVZBTWMNKQT-UHFFFAOYSA-N 0.000 description 5
- 230000002159 abnormal effect Effects 0.000 description 5
- 238000012821 model calculation Methods 0.000 description 5
- 238000000611 regression analysis Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000002474 experimental method Methods 0.000 description 4
- 238000007781 pre-processing Methods 0.000 description 4
- 238000012549 training Methods 0.000 description 4
- 238000013135 deep learning Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000010801 machine learning Methods 0.000 description 3
- 230000007334 memory performance Effects 0.000 description 3
- 238000012163 sequencing technique Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 238000013139 quantization Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000012800 visualization Methods 0.000 description 2
- 241000170489 Upis Species 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000011217 control strategy Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000010219 correlation analysis Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000008570 general process Effects 0.000 description 1
- 239000007788 liquid Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供一种设备的配置参数的推荐方法及装置,在该方法中,可以根据用户输入的需求信息自动计算出满足用户需求的设备的推荐配置参数,且,由于用户输入的需求信息中包括需要使用的深度学习模型的信息,因此,计算得到的推荐配置参数是考虑了深度学习模型对设备的性能的影响的,也就是说,采用上述方式确定的推荐配置参数可以精确匹配到不同的深度学习模型,可以提高推荐方式的准确性。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种设备的配置参数的推荐方法及装置。
背景技术
人工智能(artificial intelligence,AI)是利用数字计算机或者数字计算机控制的机器或设备模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式作出反应的智能机器。人工智能领域的研究包括机器人,自然语言处理,计算机视觉,决策与推理,人机交互,推荐与搜索,AI基础理论等。
不同业务场景下的AI系统,对运行该AI系统的设备有不同的配置需求。例如,针对网络搜索引擎的场景,由于吞吐量较大,因此,在该场景下需要运行AI系统的设备的处理器的计算精度较高;针对教学演示的场景,由于需要针对课堂人数对设备进行虚拟化,因此,在这种场景下,需要运行AI系统的设备的处理器的虚拟化能力较强。从而,如何在不同的业务场景下,选择运行AI系统的设备的配置参数是目前亟待解决的问题。
一种解决方式是,人工推荐方式,即由运行AI系统的设备的销售人员或者技术人员根据业务场景以及经验对设备的配置参数进行推荐。但是,采用人工推荐方式的准确性较低。
发明内容
本申请提供一种设备的配置参数的推荐方法及装置,用以提高选择运行AI系统的设备的配置参数的准确性。
第一方面,提供一种设备的配置参数的推荐方法,在该方法中,首先获取用户对设备的需求信息,该需求信息包括用户需要使用的深度学习模型的信息,然后,再根据预设的性能模型和获取的需求信息,得到设备的推荐配置参数,其中,该预设的性能模型是根据影响所述设备的性能的参数与设备在使用深度学习模型时的吞吐率之间的关系创建的,该推荐配置参数包括设备的软件推荐配置参数或硬件推荐配置参数。
在上述技术方案中,可以根据用户输入的需求信息自动计算出满足用户需求的设备的推荐配置参数,且,由于用户输入的需求信息中包括需要使用的深度学习模型的信息,因此,计算得到的推荐配置参数是考虑了深度学习模型对设备的性能的影响的,也就是说,采用上述方式确定的推荐配置参数可以精确匹配到不同的深度学习模型,可以提高推荐方式的准确性。
在本申请实施例中,该需求信息还可以包括其他参数,例如,可以包括设备的组件所支持的最高配置、待处理的数据的信息以及期望所述设备所能达到的性能等,在此不作限制。
在一种可能的设计中,影响所述设备的性能的参数,是对该设备的运算系统的运算流程进行量化分析后,从该设备所包括的所有的硬件参数和软件参数中选择的部分硬件参数和部分软件参数,该设备使用该运算系统处理待处理的数据。
由于设备的组件在运行过程中会产生多种参数,但并不是所有的参数都对设备的性能有影响,因此,在上述技术方案中,可以基于对运算流程的量化分析,对设备中的参数进行筛选,然后,去掉对设备的性能没有影响的参数,可以减少后续建模的复杂度。且,某些对设备的性能没有影响的参数还可能会对前述推荐方法产生干扰,因此,去掉该部分参数后,还可以进一步提高本申请中的推荐方法的准确性。
在一种可能的设计中,该预设的性能模型包括负载约束模型,其中,负载约束模型是根据影响设备的性能的多个软件参数与深度学习模型的吞吐率之间的关系确定的。
在上述技术方案中,通过多个软件参数与深度学习模型的吞吐率之间的关系,实现定量描述不同软件参数对于设备的负载的关系,从而建立深度学习模型、运算系统和设备的吞吐率三者间的模型,以根据该模型确定设备的推荐配置参数。
在一种可能的设计中,该预设的性能模型包括计算能力模型,其中,所述计算能力模型是根据影响所述设备的性能的多个硬件参数和/或所述多个软件参数与所述设备的各个计算组件的性能之间的关系,以及所述多个硬件参数之间的关联性确定的,所述计算组件的性能包括所述计算组件的运行时间或所述计算组件的吞吐率。
由于当设备运行不同的深度学习模型时,对设备的配置参数也有不同的需求,因此,在上述技术方案中,通过对设备的各个组件的计算能力进行定量的建模,可以衡量各种不同组件的计算能力对设备执行不同的深度学习模型的影响,从而可以提高推荐方法的准确性。
在一种可能的设计中,根据预设的性能模型和需求信息,得到设备的推荐配置参数的方式可以包括但不限于如下二种:
第一种方式,若预设的性能模型包括负载约束模型,则可以将获取的需求信息中输入到负载约束模型中,得到所述设备的第一组件的软件推荐配置参数和硬件推荐配置参数,所述第一组件为所述设备所包括的组件中的其中一个组件。
在上述技术方案中,可以使用负载约束模型得到针对设备的部分组件的推荐配置参数,计算方式简单。
第二种方式,若预设的性能模型还包括计算能力模型,则在根据负载约束模型得到第一组件的软件推荐配置参数、所述硬件推荐配置参数后,可以根据该第一组件的软件推荐配置参数、所述硬件推荐配置参数以及所述计算能力模型,得到所述设备的其他组件的软件推荐配置参数和硬件推荐配置参数,所述其他组件为所述设备所包括的组件中除所述第一组件外的组件。
在上述技术方案中,可以将不同的性能结合起来,得到对设备的多种组件的配置参数。
在一种可能的设计中,在获取设备的推荐配置参数后,还可以根据预设的规则,从所述设备的推荐配置参数中确定满足条件的配置参数,所述预设的规则为以所述设备的第二组件的性能最优的规则,所述第二组件为所述设备所包括的组件中的其中一个组件。
在上述技术方案中,根据预设的性能模型得到的软、硬件推荐配置参数可能是参数集合,即包括多组满足用户需求的参数,在这种情况下,还可以根据预设的规则,对多组配置参数进一步筛选,可以有针对性的给出对设备的配置参数的推荐结果。
在一种可能的设计中,在获取设备的推荐配置参数后,还可以获取所述设备在当前状态下的配置参数,然后,将所述推荐配置参数与所述当前状态下的配置参数进行比较,得到对所述设备的配置参数的优化信息,所述优化信息包括不满足所述需求信息的组件的标识和/或对所述组件的配置参数的修改建议。
在上述技术方案中,将推荐配置参数与当前状态下的配置参数进行比较,得到对所述设备的配置参数的优化信息,例如可以包括出不满足用户需求信息的组件,或者该优化信息中可以包括对组件的修改建议,或者可以对用户已有的配置进行检测、分析,找出当前环境中存在的资源不足或者资源冗余的情况,便于用户更加清晰地确定如何对设备的配置参数进行更新。
在一种可能的设计中,在获取设备的推荐配置参数后,还可以获取所述设备的组件在当前配置参数下的第一运行数据,然后,根据所述组件的当前配置参数以及所述运行数据,确定所述组件的工作状态,所述工作状态包括所述组件对所述设备的性能的影响程度;并根据所述组件的工作状态,从所述设备的推荐配置参数确定满足条件的配置参数。
在上述技术方案中,还可以根据当前配置参数下的运行数据,对推荐的配置参数进行筛选,例如,根据当前配置参数下的运行数据确定出设备的CPU是该设备的性能瓶颈,则可以设置以设备的CPU的性能最优的规则,从得到的多组推荐配置参数中确定出最佳配置参数,可以使得获取的推荐配置参数能够符合设备的实际运行环境。
在一种可能的设计中,在获取设备的推荐配置参数后,可以基于该推荐配置参数设置设备的各个组件,然后获取设备的组件在该推荐配置参数下的第二运行数据,并根据该第二运行数据,确定是否对推荐配置参数进行调整。
在上述技术方案中,可以根据设备在推荐配置参数下的运行数据,对本申请中的推荐方法进行反馈,以确定该推荐配置参数是否符合用户需求。若设备在推荐配置参数下的运行数据表示设备的各个组件都处于正常状态,则可以维持该推荐配置参数;若设备在推荐配置参数下的运行数据表示部分组件已经处于异常状态(例如负载较大等),则可以对该推荐配置参数进行调整,或者,也可以对预设的性能模型进行调整,以提高该方法的准确性。
在一种可能的设计中,当获取设备的推荐配置参数后,还可以输出反馈信息,所述反馈信息包括所述设备的推荐配置参数,以便于用户能够及时的获取该信息。
在一种可能的设计中,所述部分软件参数包括如下信息中的至少一种:
所述设备的图形处理器GPU处理数据的单位数据量;
所述设备的中央处理器CPU处理数据的单位数据量;
所述GPU和/或所述CPU的运行模式,所述运行模式包括并行模式或者非并行模式;
所述CPU所使用的线程的数量;
所述设备的存储介质所使用的线程的数量。
在一种可能的设计中,所述部分硬件参数包括如下信息中的至少一种:
所述设备的存储介质的类型;
所述设备的中央处理器的频率;
所述设备的内存的数量;
所述内存的通道数;
所述内存的数量;
所述内存的容量;
所述设备的图形处理器GPU的架构。
在一种可能的设计中,所述预设的性能模型包括如下模型中的至少一种:
所述设备的图形处理GPU的性能模型;
所述设备的中央处理器CPU的性能模型;
所述设备的存储介质的性能模型;
所述设备的内存的性能模型。
上述列举的部分软件参数、部分硬件参数以及性能模型只是一种示例,不应理解为对申请实施例中的影响所述设备的性能的参数以及预设的性能模型的限制。
第二方面,提供一种设备的配置参数的推荐装置,该装置包括处理器,用于实现上述第一方面描述的方法。该装置还可以包括内存,用于存储程序指令和数据。该内存与该处理器耦合,该处理器可以调用并执行该内存中存储的程序指令,用于实现上述第一方面描述的方法中的任意一种方法。该装置还可以通信接口,用于与其他设备进行通信。
在一种可能的设计中,所述通信接口,用于获取用户对设备的需求信息,该需求信息包括用户需要使用的深度学习模型的信息。
所述处理器,用于根据预设的性能模型和获取的需求信息,得到设备的推荐配置参数,其中,该预设的性能模型是根据影响所述设备的性能的参数与设备在使用深度学习模型时的吞吐率之间的关系创建的,该推荐配置参数包括设备的软件推荐配置参数或硬件推荐配置参数。
第三方面,提供一种设备的配置参数的推荐装置,该装置包括获取模块以及推荐模块,这些模块可以执行上述第一方面任一种设计示例中所执行的相应功能。例如:
所述获取模块,用于获取用户对设备的需求信息,所述需求信息包括所述用户需要使用的深度学习模型的信息;
所述推荐模块,用于根据预设的性能模型和所述需求信息,得到所述设备的推荐配置参数,所述预设的性能模型是根据影响所述设备的性能的参数与所述设备在使用所述深度学习模型时的吞吐率之间的关系创建的,所述推荐配置参数包括所述设备的软件推荐配置参数或硬件推荐配置参数。
第四方面,本申请提供了一种计算设备,该计算设备包括存储器和处理器,其中,存储器中存储有程序代码,处理器用于访问所述存储器中的代码以执行第一方面或第一方面的任意一种可能的实现方式提供的方法。
第五方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被计算机执行时,使所述计算机执行第一方面中任意一项所述的方法。该可读存储介质包括但不限于易失性存储器,例如随机访问存储器,非易失性存储器,例如快闪存储器、硬盘(hard disk drive,HDD)、固态硬盘(solid state drive,SSD)。
第六方面,本申请实施例提供一种计算机程序产品,所述计算机程序产品存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被计算机执行时,使所述计算机执行第一方面中任意一项所述的方法。该计算机程序产品可以为一个软件安装包,在需要使用前述第一方面或第一方面的任意可能的实现方式中提供的方法的情况下,可以下载该计算机程序产品并在计算设备上执行该计算机程序产品。
第七方面,本申请提供了一种芯片系统,该芯片系统包括处理器,还可以包括存储器,用于实现第一方面所述的方法。该芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。
上述第二方面至第七方面及其实现方式的有益效果可以参考对第一方面的方法及其实现方式的有益效果的描述。
附图说明
图1为一种人工智能主体框架示意图;
图2为tensor flow的系统架构的示意图;
图3为tensor flow系统的计算流程图;
图4为tensor flow系统的计算流程的物理结构示意图;
图5为本申请实施例提供的设备的配置参数的推荐方法的一种示例的流程图;
图6为本申请实施例提供的获取用户输入的需求信息的一种示例的示意图;
图7为本申请实施例提供的获取用户输入的需求信息的另一种示例的示意图;
图8A~图8C为本申请实施例提供的不同的深度学习模型在不同的批处理大小下的吞吐率的变化情况的示意图;
图9为本申请实施例提供的不同的深度学习模型在不同的GPU并行模式下的加速比的变化情况的示意图;
图10为本申请实施例提供的计算能力模型的创建方式的一种示例的流程图;
图11为本申请实施例提供的设备的配置参数的推荐方法的一种具体示例的示意图;
图12为本申请实施例提供的设备的配置参数的推荐方法输出推荐配置参数的一种示例的示意图;
图13为本申请实施例提供的设备的配置参数的推荐方法的另一种具体示例的示意图;
图14为本申请实施例提供的设备的配置参数的推荐方法的另一种具体示例的示意图;
图15为本申请实施例提供的设备的配置参数的推荐方法的另一种具体示例的示意图;
图16为本申请实施例提供的设备的配置参数的推荐装置的一种示例的结构示意图;
图17为本申请实施例提供的设备的配置参数的推荐装置的另一种示例的结构示意图。
具体实施方式
为了使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施例作进一步地详细描述。
本申请实施例中“多个”是指两个或两个以上,鉴于此,本申请实施例中也可以将“多个”理解为“至少两个”。“至少一个”,可理解为一个或多个,例如理解为一个、两个或更多个。例如,包括至少一个,是指包括一个、两个或更多个,而且不限制包括的是哪几个,例如,包括A、B和C中的至少一个,那么包括的可以是A、B、C、A和B、A和C、B和C、或A和B和C。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,字符“/”,如无特殊说明,一般表示前后关联对象是一种“或”的关系。
除非有相反的说明,本申请实施例提及“第一”、“第二”等序数词用于对多个对象进行区分,不用于限定多个对象的顺序、时序、优先级或者重要程度。
图1示出一种人工智能主体框架示意图,该主体框架描述了人工智能系统总体工作流程,适用于通用的人工智能领域需求。下面从“智能信息链”(水平轴)和“IT价值链”(垂直轴)两个维度对上述人工智能主题框架进行阐述。
“智能信息链”反映从数据的获取到处理的一列过程。举例来说,可以是智能信息感知、智能信息表示与形成、智能推理、智能决策、智能执行与输出的一般过程。在这个过程中,数据经历了“数据—信息—知识—智慧”的凝练过程。“IT价值链”从人智能的底层基础设施、信息(提供和处理技术实现)到系统的产业生态过程,反映人工智能为信息技术产业带来的价值。
(1)基础设施:基础设施为人工智能系统提供计算能力支持,实现与外部世界的沟通,并通过基础平台实现支撑。通过传感器与外部沟通;计算能力由智能芯片(CPU、NPU、GPU、ASIC、FPGA等硬件加速芯片)提供;基础平台包括分布式计算框架及网络等相关的平台保障和支持,可以包括云存储和计算、互联互通网络等。举例来说,传感器和外部沟通获取数据,这些数据提供给基础平台提供的分布式计算系统中的智能芯片进行计算。
(2)数据:基础设施的上一层的数据用于表示人工智能领域的数据来源。数据涉及到图形、图像、语音、文本,还涉及到传统设备的物联网数据,包括已有系统的业务数据以及力、位移、液位、温度、湿度等感知数据。
(3)数据处理:数据处理通常包括数据训练,机器学习,深度学习,搜索,推理,决策等方式。其中,机器学习和深度学习可以对数据进行符号化和形式化的智能信息建模、抽取、预处理、训练等。推理是指在计算机或智能系统中,模拟人类的智能推理方式,依据推理控制策略,利用形式化的信息进行机器思维和求解问题的过程,典型的功能是搜索与匹配。决策是指智能信息经过推理后进行决策的过程,通常提供分类、排序、预测等功能。
(4)通用能力:对数据经过上面提到的数据处理后,进一步基于数据处理的结果可以形成一些通用的能力,比如可以是算法或者一个通用系统,例如,翻译,文本的分析,计算机视觉的处理,语音识别,图像的识别等等。
(5)智能产品及行业应用:智能产品及行业应用指人工智能系统在各领域的产品和应用,是对人工智能整体解决方案的封装,将智能信息决策产品化、实现落地应用,其应用领域主要包括:智能制造、智能交通、智能家居、智能医疗、智能安防、自动驾驶,平安城市,智能终端等。
由图1可知,人工智能系统的运行依赖基础设施,若基础设施的配置过低,则会影响上层的数据处理过程,若基础设施的配置过高,则存在资源浪费,因此,合理地设置基础设施的配置参数显得尤为重要。通常来讲,人工智能系统可以是在某一个设备或者某一个设备集群中运行,因此,在本申请实施例中,人工智能系统的基础设施也可以称为运行人工智能系统的设备。
为了合理地运行人工智能系统的设备的配置参数,一种方式是,通过专家或技术人员的经验,对设备的配置参数进行人工推荐。
以图形处理器(graphic processing unit,GPU)为例,专家或技术人员首先根据人工智能系统的业务需求来选择GPU型号。例如,在高性能计算的场景中,需要使用双精度的GPU;在模型推理场景中,对GPU的精度要求较低,则可以使用精度较低的GPU。在选定GPU的型号之后,专家或技术人员则需要根据具体处理的数据量、使用人群、客户的IT运维能力等,确定搭载该GPU的服务器的组件的配置,该组件可以包括CPU、磁盘、内存等。
然而,随着人工智能系统的不断发展,人工智能系统中用来处理数据的算法模型、设备配置的选项越来越复杂,采用人工推荐方式很可能只能考虑到某一个或者某几个方面,而无法考虑到所有的情况,从而导致该方式的准确性较低。
鉴于此,本申请提供一种设备的配置参数的推荐方法及装置,用以提高选择运行人工智能系统的设备的配置参数的准确性。
为了确定运行人工智能系统的设备的配置参数可以通过特定的算法进行推荐,本申请实施例首先对人工智能系统在设备上的处理流程进行分析。下面,以张量流(tensorflow)为例,来对人工智能系统的处理流程进行具体说明。
tensor flow是一个基于数据流编程的符号数学系统,被广泛应用于人工智能系统的各类机器学习算法的编程实现。图(graph)是tensor flow中的基本计算单元。数据流图用“结点”(nodes)和“线”(edges)的有向图来描述数学计算。“节点”一般用来表示施加的数学操作,或者也可以表示数据输入(feed in)的起点/输出(push out)的终点,或者是读取/写入持久变量(persistent variable)的终点。“线”表示“节点”之间的输入/输出关系。这些数据“线”可以输运“大小可动态调整”的多维数据数组,即“张量”(tensor)。一旦输入端的所有张量准备好,节点将被分配到各种计算设备完成运算。
请参考图2,为tensor flow的系统架构的示意图。如图2所示,tensor flow的系统以客户端API为界,将整个系统分为前端和后端两个部分,其中,前端部分包括客户端,是一个支持多语言(例如,C++、Python、JAVA等)的编程环境,可以提供基于数据流图的各种编程模型,方便客户构造tensor flow的数据流图,实现各种人工智能系统的模型设计。后端部分包括分布式运行时(distributed runtime)、内核实现(kernel implements)、网络层(network layer)和设备层(device layer),负责执行客户端中创建的数据流图。其中,分布式运行时中包括分布式主节点(distributed master)、工作服务(work services)模块以及数据流执行节点(dataflow executor),分布式主节点用于根据客户端中创建的数据流图中的参数,从数据流图中反向遍历,找到所依赖的“最小子图”。然后,分布式主节点负责将该“子图”再次分裂为多个“子图片段”,以便在不同的进程和设备上运行这些“子图片段”。最后,分布式主节点将这些“子图片段”派发给工作服务模块,由工作服务模块调用数据流执行节点来完成“子图片段”的执行过程。
工作服务模块会使用设备层中的GPU/CPU来执行tensor flow的内核运算。同一个工作服务模块所调用的CPU和GPU之间,可以使用异步方式传输数据,例如,可以采用cudaMemcpyAsync技术传输数据;而同一个工作服务模块所调用的多个GPU之间,可以使用直接存储器访问(direct memory access,DMA)技术传输数据。不同节点之间的数据通信及传输,则可以由网络层的远程过程调用(remote procedure call,RPC)和远程直接数据存取(remote direct memory access,RDMA)技术实现。
对于每一个任务,tensor flow都将启动一个工作服务模块进行运算。工作服务模块在接收该任务后,会根据该任务对应的数据流图中节点之间的依赖关系,根据设备当前的可用的硬件环境(GPU/CPU),调用内核实现来完成运算。且,不同的工作服务模块之间还可以进行交互,例如,一个工作服务模块可以将其运算的结果发送给其他工作服务模块,该工作服务模块也可以从其他工作服务模块接收其他工作服务模块运算的结果。
通过上述对tensor flow系统架构中各个模块的工作原理的分析,可以得到如图3所示的tensor flow系统的计算流程图。如图3所示,用户首先会根据业务需求,利用tensorflow系统提供的接口(例如,Python接口)构建对应的程序。然后,当用户运行该程序时,tensor flow系统则通过协议缓存区编译器(protocol buffer complier)对该程序进行编译、序列化等,从而生成tensor flow系统的基本计算单元,即数据流图,然后将该数据流图发送个分布式主节点。分布式主节点通过数据流图进行子图提取、子图切分以及子图优化等步骤,将该数据流图拆分为多个子图,分配给不同的工作服务模块对应的节点,每个节点则按照分布式主节点的调度顺序,依次执行其所分配到的子图,并将执行的结果发送给其他工作服务模块,最终得到该数据流图的执行结果。
由图3所示的计算流程图可知,tensor flow系统的计算流程的逻辑结构可以包括如下三个步骤:数据加载过程、数据处理过程以及模型计算过程。其中,数据加载过程是指,根据用户构建的程序中设定的数据地址,负责将磁盘中对应的数据地址中的数据加载到运行该tensor flow系统的内存当中,供后续的任务进行调用。数据处理过程是指,对加载到内存中的数据进行预处理,例如,为该数据调度线程、核函数等。模型计算过程是指,调用相关的核函数、线程等,利用预处理后的数据对tensor flow系统中运行的人工智能系统的模型进行训练、推理,得到人工智能系统的运行结果。
进一步,将上述逻辑结构与运行tensor flow系统的设备中的硬件进行关联,可以得到如图4所示的tensor flow系统的计算流程的物理结构示意图。数据加载过程是由磁盘根据CPU下发的命令,将数据加载到内存中,主要由磁盘运行;数据处理过程是由CPU执行,一方面,CPU依据程序对加载到内存中的数据进行预处理,例如生成与程序对应的数据流图;另一方面,CPU还需要对tensor flow系统中运行的模型对应的程序进行调度,如线程管理、核函数编译与调用等;模型计算过程则是由GPU根据编译后的数据流图与相关核函数,利用显存中存储的处理好的数据训练模型。此外,在模型计算过程中将出现频繁的、CPU与GPU间的数据传输与参数更新,需要内存提供足够的带宽,以保证数据的高效传输。
可见,人工智能系统的处理流程可以被量化为运行该人工智能系统的设备中磁盘的数据处理过程、CPU的数据处理流程以及GPU的模型计算过程,也就是说,人工智能系统中的各种深度学习模型的性能可以通过对运行该模型的设备的各个组件进行量化,从而只要根据深度学习模型对各个组件创建合理的量化模型,则可以通过该量化模型得到不同深度学习模型对设备的配置参数的需求,实现自动化推荐设备的配置参数的目的,提高推荐的设备的配置参数的准确性。
基于上述理论分析,下面对本申请实施例提供的技术方案进行说明。
请参考图5,为本申请实施例提供的一种设备的配置参数的推荐方法的流程图,该流程图的描述如下:
S501、获取用户对设备的需求信息。
在本申请实施例中,该需求信息包括用户需要使用的深度学习模型,其中,用户需要使用的深度学习模型可以包括模型的名称、模型的类型等信息。
当然,该需求信息中还可以包括其他参数,例如,还可以包括设备的组件所支持的最高配置、待处理的数据的信息以及期望设备所能达到的性能。其中,设备的组件所支持的最高配置可以包括用户所期望的GPU、CPU、内存以及存储设备的最高配置,例如,GPU的最大数量、CPU的最大数量、CPU的最大核数、内存最大通道数,内存最大数量以及存储介质(例如磁盘)的最大容量等;待处理的数据的信息可以包括所处理的数据的总量、数据的格式等;期望设备所能达到的性能可以包括设备在处理数据时所使用的总时长、磁盘预期写入时长等。
具体来讲,执行该方法的装置可以首先在显示屏上显示提示信息,该提示信息用来指示用户输入的需求信息所包括的内容,如图6中的(a)所示,在图6的(a)中显示用户需要输入的需求信息为需要使用的深度学习模块,且在图6的(a)中可以列举出常用的深度学习模型,以方便用户操作,例如在图6的(a)中深度学习模型alexnet、深度学习模型nasnet以及深度学习模型resnet152,然后用户可以通过点击操作,在显示屏上点击所需要使用的深度学习模型,如图6中的(b)所示,从而,执行该方法的装置则根据用户的点击操作获取用户需要使用的深度学习模型。若需求信息还包括其他参数,例如,还包括待处理的数据的信息,则当检测到用户选择所需使用的深度学习模型之后,还可以在显示另一输入界面,如图7所示,该输入界面用于输入待处理的数据的总量以及数据格式,用户根据该提示信息进行输入。可以根据参数的不同显示多个不同输入界面,在此不一一说明。或者,用户也可以根据实际使用需求输入,然后,由执行该方法的装置从用户输入的需求信息中进行选择。在此,不对获取该需求信息的具体方式进行限制。
当然,本申请实施例中的需求信息也可以包括其他内容,本领域技术人员可以根据使用需求进行设置,在此不作限制。
S502、根据预设的性能模型和该需求信息,得到该设备的推荐配置参数。
在本申请实施例中,推荐配置参数包括设备的组件的软件推荐配置参数和/或硬件推荐配置参数。其中,软件配置参数可以包括设备批处理数据时,每个批次处理数据的大小、GPU的运行模块(包括串行模式或者并行模式)、CPU处理数据的线程数目等;硬件配置参数可以包括GPU的高速串行计算机扩展总线标准(peripheral component interconnectexpress,PCIE)的配置、CPU的型号、CPU的频率、内存的容量、内存的数量、磁盘的型号、磁盘阵列(redundant arrays of independent disks,RAID)的规模等。
由前述分析可知,人工智能系统中的各种深度学习模型的性能可以通过对运行该模型的设备的各个组件进行量化,从而对各个组件创建合理的量化模型,对推荐配置参数的准确性有决定性的影响。
在本申请实施例中,该预设的性能模型是根据影响设备的性能的参数与设备在使用所述深度学习模型时的吞吐率之间的关系创建的,也就是说,创建预设的性能模型包括两个方面,第一方面是确定影响设备的性能的参数,第二方面是如何根据该影响设备的性能的参数与设备的吞吐率之间的关系创建性能模型。下面,将对这两个方面分别进行说明。
第一方面,确定影响设备的性能的参数。
在本申请实施例中,影响所述设备的性能的参数,是对所述设备的运算系统的运算流程进行量化分析后,从设备所包括的所有的硬件参数和软件参数中选择的部分硬件参数和部分软件参数,该设备使用该运算系统处理所述待处理的数据。运算系统例如为前述的tensor flow,当然也可以是其他运算系统,在下文中以设备的运行系统为tensor flow为例进行说明。
设备的组件可以包括多种,例如,前述所述的GPU、CPU、磁盘以及内存等,这些组件在设备运行过程中,会产生多种状态特征,本申请实施例中预设的性能模型便是根据这些状态特征创建的。然而,并不是所有的状态特征都对设备的性能有影响,因此,本申请实施例中,基于前述对tensor flow的计算流程的分析、设备的各个组件的工作原理以及计算机体系结构等,对设备中的状态特征进行筛选,然后,可以通过实验确定剩余的状态特征对设备的性能的影响,例如,将其他状态特征固定,改变其中某一个状态特征,若该状态特征改变前后,设备的性能发生变化,则说明该状态特征对设备的性能有影响,这样,可以去掉对设备的性能没有影响的状态特征,从而可以减少建模的复杂度。
作为一种示例,在本申请实施例中,影响设备的性能的部分软件参数可以包括如下信息中的至少一种或多种:
所述设备的图形处理器GPU处理数据的单位数据量;
所述设备的中央处理器CPU处理数据的单位数据量;
所述GPU和/或所述CPU的运行模式,所述运行模式包括并行模型或者非并行模式;
所述CPU所使用的线程的数量;
所述设备的存储介质所使用的线程的数量。
作为一种示例,在本申请实施例中,影响设备的性能的部分硬件参数包括如下信息中的至少一种或多种:
所述设备的存储介质的类型;
所述设备的中央处理器的频率;
所述设备的内存的数量;
所述内存的通道数;
所述内存的数量;
所述内存的容量;
所述设备的图形处理器GPU的架构。
当然,该影响设备的性能的参数还可以包括其他内容,例如可以包括PCIE总线的相关参数、快速通道互联(quick path interconnect,QPI)总线的相关参数。作为一种示例,请参考表1,该影响设备的性能的参数还可以包括PCIE的速度、带宽以及时延,QPI的通道数目、速度等。
表1
本领域技术人员也可以采用其他方式确定影响设备的性能的参数,或者确定出其他影响设备的性能的参数,或者,本领域技术人员也可以直接使用设备所包括的所有的硬件参数和软件参数来创建性能模型,在此不作限制。
第二方面:根据该影响设备的性能的参数与设备的吞吐率之间的关系创建性能模型。
在本申请实施例中,该预设的性能模型可以包括负载约束模型和/或计算能力模型,其中,所述负载约束模型是根据影响所述设备的性能的多个软件参数与所述深度学习模型的吞吐率之间的关系确定的,可以理解为,确定影响设备的性能的参数中的部分软件参数对用户需要运行的深度学习模型的负载的影响;所述计算能力模型是根据影响所述设备的性能的多个硬件参数与所述设备的各个计算组件的性能之间的关系以及所述多个硬件参数之间的关联性确定的,可以理解为,确定影响设备的性能的参数中的部分软、硬件参数对各个组件的计算能力的影响。
下面,分别对负载约束模型和计算能力模型的创建方式进行说明。
1、负载约束模型的创建方式:
为了定量描述软件参数对用户需要运行的深度学习模型的负载的影响,则可以对不同的软件配置下,各个组件的吞吐率的关系进行建模。
下面,以GPU为例,对具体的建模过程进行说明。在下面的示例中,以设备的运算系统为tensor flow,以P100显卡为该设备的显卡配置为例,设计实验并测试各个软件参数对于深度学习模型的吞吐率的影响。
1)批处理大小对于深度学习模型的吞吐率的影响。
为了增加所创建的模型的通用性,首先,需要在单张P100显卡上,测试用户可能使用的所有的深度学习模型在相同批处理大小(batch size)下的吞吐率大小,并进行排序;然后,调整批处理大小,测试每个模型的吞吐率随着批处理大小的变化情况,相同批处理大小下不同模型的吞吐率大小的排序,与各个模型的在不同批处理大小的情况下的吞吐量大小的排序进行对比。从而分析两者之间的关联,从而可以获得批处理大小与深度学习模型的吞吐率的关系。
例如,请参考图8A~图8C,为不同的深度学习模型在不同的批处理大小下的吞吐率的变化情况,其中,图8A为在不同批处理大小下深度学习模型alexnet的吞吐率的变化情况,图8B为在不同批处理大小下深度学习模型nasnet的吞吐率的变化情况,图8C为在不同批处理大小下深度学习模型resnet152的吞吐率的变化情况。由图8A~图8C所示,各个深度学习模型的吞吐率随批处理大小的增大而增加,可见,深度学习模型的吞吐率与批处理大小呈正相关;另外,对图8A~图8C进一步研究,可以得到各个深度学习模型的吞吐率与批处理大小呈对数线性相关。因此,根据上述结论,可以得到深度学习模型与批处理大小之间呈对数正相关。需要说明的是,在图8A~图8C中,横坐标批处理大小的单位为2^n,例如,当横坐标取值为3时,表示2^3。
2)显卡类型对于深度学习模型的吞吐率的影响。
对于每一块不同类型的显卡,可以测试其在不同批处理大小的情况下,与各个不同的深度学习模型的吞吐率之间的关系,从而得到不同的显卡与不同的深度学习模型的吞吐率之间的关系,然后将不同的显卡与不同的深度学习模型的吞吐率之间的关系与显卡本身的物理参数做比较,分析出显卡类型与深度学习模型的吞吐率之间的关系。
3)GPU并行场景对于深度学习模型的吞吐率的影响。
测试每一种深度学习模型在不同GPU并行模式下的吞吐率的比值,即多GPU加速比,从而得到不同并行模式对于不同深度学习模型的加速影响,以确定在不同GPU并行模式下,GPU的数目与深度学习模型的吞吐率之间的关系。
例如,请参考图9,为不同的深度学习模型在不同的GPU并行模式下的加速比的变化情况。在图9中,以深度学习模型包括深度学习模型alexnet、深度学习模型nasnet以及深度学习模型resnet152为例,如图9所示,不同的深度学习模型在不同的GPU并行模式下的加速比均不相同,从而可以得到,不同的深度学习模型对GPU的并行模式具有依赖性。进一步,还可以测试不同的深度学习模型与GPU并行数量的关系,在此不作具体说明,经试验表明,不同的深度学习模型在GPU并行模式下的加速比与GPU并行的数量无关。
4)GPU服务器架构对于深度学习模型的吞吐率的影响。
例如,在GPU数量为双数的情况下,分别测试GPU平均放在桥同侧、两侧或者开关PCIE桥下的不同的深度学习模型的最大吞吐率,从而分析出不同的GPU架构对于深度学习模型的吞吐率的影响。
在执行以上测试之后,可以得到各个软件参数对于深度学习模型的吞吐率各模型的最大吞吐率的影响,从而创建出GPU的软件性能模型。
上述方式是以创建与GPU对应的负载约束模型的一种示例,本领域技术人员也可以采用其他软件参数创建与GPU对应的负载约束模型,在此不作限制。
在上述方式中,通过控制变量的方法设计多种实验,分别测试和分析不同软件配置对于深度学习模型的吞吐率的关系,从而实现定量描述不同软件参数对于GPU负载的关系,从而建立深度学习模型、运算系统(例如tensor flow)和GPU三者间的模型,方便后续的分析。
针对设备的其他组件,可以采用上述相似的方式得到对应的负载约束模型,在此不再赘述。需要说明的是,在采用上述相似的方式得到其他组件的负载约束模型时,具体使用的软件参数可以相同也可以不同。例如,在创建与CPU对应的负载约束模型时,还可以测试线程数目对深度学习模型的吞吐率的影响等,在此不一一说明。
2、计算能力模型的创建方式:
为了实现对指定硬件的性能建模,需要对不同硬件配置(包括硬件参数以及硬件的拓扑结构)和在运算系统下设备的各个组件(例如CPU、GPU、内存、磁盘等)的性能的定量关系进行建模。其中,组件的性能可以通过组件的吞吐率或者组件的运行时间来表示,例如,CPU的运行时间、磁盘的数据读取时间、CPU的吞吐率或者GPU的吞吐率等,在此不作限制。
在创建计算能力模型时,首先,基于所确定的影响设备的性能的部分硬件参数,测试各个硬件参数和/或软件参数(例如待处理的数据的总量、批处理大小等)与组件的性能之间的关系。例如,可以确定在其他硬件参数相同的条件下,GPU的运行时间与待处理的数据的总量之间的变化情况,或者,可以确定在其他硬件参数相同的条件下,CPU的运行时间与批处理大小的变化情况等,或者,可以确定在不同的CPU频率下,线程数目与CPU的吞吐率之间的关系等。其中,批处理大小可以理解为,当深度学习模型是用于处理图片时,该批处理大小为每次处理的图片的尺寸,批处理大小的含义随深度学习模型的不同而发生改变,在此不一一说明。
具体来说,针对每一个硬件参数,可以利用可视化的方式,测试在硬件参数相同的条件下,组件的性能随待处理的数据的总量或批处理大小的变化情况。例如,可以测试在硬件参数相同的条件下,GPU的运行时间随待处理的数据的总量或批处理大小的变化情况。如果在待处理的数据的总量不同的情况下,GPU的运行时间随批处理大小的改变呈现相同的变化,则表明批处理大小对该GPU的性能的影响是稳定的,即批处理大小与GPU的运行时间之间的关系是确定的。或者,如果在批处理大小不同的情况下,GPU的运行时间与待处理的数据的大小的改变呈现相同的变化,则表明待处理的数据的大小对该GPU的性能的影响是稳定的,即待处理的数据的大小与GPU的运行时间之间的关系是确定的。
又例如,如果在待处理的数据的总量不同的情况下,GPU的运行时间随批处理大小的改变呈现关系表现出不同程度的变化趋势,则表明批处理大小对该GPU的性能的影响是不稳定的,则可以利用回归分析对这些关系进行拟合,得到拟合公式1。如果在批处理大小不同的情况下,GPU的运行时间与待处理的数据的大小的改变呈现不同程度的变化趋势,则表明待处理的数据的大小对该GPU的性能的影响是不稳定的,即待处理的数据的大小与GPU的运行时间之间的关系是不确定的,则对这些关系进行拟合,得到拟合公式2。其中,拟合公式1和拟合公式2中的参数是不同的,这表明了待处理的数据的大小与批处理大小存在关联性,会共同影响GPU的最终运行时间。
然后,可以固定待处理的数据的总量,测试在不同硬件参数设定下,组件的性能随批处理大小的变化情况,或者,固定批处理大小,测试在不同硬件参数设定下,组件的性能随待处理的数据的总量的变化情况。如果在不同的硬件参数设定下,组件的性能(例如运行时间)与待处理的数据的总量或是批处理大小的关系没有大的变化,则表示该硬件参数的改变并不会影响组件的性能,可以理解为,若利用回归分析对这些关系进行拟合,得到的拟合公式中的参数是相似的。反之,如果在不同的硬件参数条件下,组件的性能与待处理的数据的大小或是批处理大小的关系存在差别,则说明该硬件参数会对组件的性能产生影响。
基于以上的分析结论,请参考图10,为计算能力模型的创建方式的一种示例的流程图。如图10所示,可以选择某个硬件参数和/或软件参数作为自变量,通过回归分析拟合该参数与组件的性能之间的关系,得到与该参数对应的拟合公式。例如,选择参数1,通过回归分析确定参数1与组件的运行时间之间的关系,从而得到组件的运行时间与参数1的拟合公式1。然后,根据获得的拟合公式,进一步确定该拟合公式中的参数与剩余硬件参数和/或软件参数的关系。例如,在确定拟合公式1之后,确定拟合公式1中的参数与参数2之间的关系,从而根据该关系得到包括拟合公式1的参数和参数2的拟合公式2,这样,通过逐层分析的方式,在每一层指定一个参数,然后分析该参数与上层拟合的公式参数的关系。重复该过程,直到所有的参数均分析完毕,例如根据拟合公式n-1中的参数与参数n之间的关系,得到了以所有参数为自变量,以组件的运行时间为因变量的计算公式,该计算公式则可以理解为该组件的计算能力模型。
采用如图10所示的方式,分别创建所需要的所有的组件的计算能力模型。
可见,在上述技术方案中,通过关联分析、可视化分析、回归分析逐层地分析以及拟合不同的硬件参数和/或软件参数对于组件的性能的影响,从而实现了采用公式的形式定量描绘出不同的硬件参数和/或软件参数与组件的性能的关系的目的,进而可以利用这些公式,理论地推测出深度学习模型在不同硬件参数配置下的吞吐率的变化。
通过上述方式,可以得到与设备的各个组件对应的预设的性能模型,在本申请实施例中,该预设的性能模型包括但不限于如下模型中的至少一种或多种:GPU的性能模型、CPU的性能模型、存储介质的性能模型以及内存的性能模型。当然,本领域技术人员也可以使用需求获取其他组件的性能模型,在此不作限制。
当需要得到设备的推荐配置参数时,则使用前述预设的性能模型进行计算即可。需要说明的是,负载约束模型和计算能力模型可以单独使用,例如,可以只根据负载约束模型确定设备的推荐配置参数;或者,也可以将两者结合使用一起确定设备的推荐配置参数,在此不作限制。作为一种示例,在本申请实施例中,使用预设的性能模型对所述需求信息进行计算,得到所述设备的推荐配置参数的具体步骤包括:首先将需求信息中输入到负载约束模型中,得到所述设备的第一组件的软件推荐配置参数和硬件推荐配置参数;然后,根据所述第一组件的软件推荐配置参数、硬件推荐配置参数以及所述计算能力模型,得到所述设备的其他组件的软件推荐配置参数和硬件推荐配置参数。需要说明的是,第一组件可以是设备所包括的组件中的其中一个组件,例如,若用户需要以GPU性能最优,则第一组件可以是GPU;若用户需要以CPU性能最优,则第一组件可以是CPU,在此不作限制。
具体来讲,预设的性能模型可以只包括针对某一个组件的性能模型,也可以包括针对多个组件的性能模型。当预设的性能模型包括针对多个组件的性能模型时,在获取用户的需求信息后,首先会根据不同的组件所对应的性能模型,将各自所需的参数输入到对应的性能模型中。例如,可以将需求信息中用户需要使用的深度学习模型的信息(包括深度学习模型的名称、类型以及运行模式等)、所期望的GPU的服务器架构、批处理大小等信息作为GPU的性能模型的输入,利用预设的GPU的性能模型,计算出在满足所述需求信息的条件下,GPU吞吐率的理论最大值和其对应的软件推荐配置参数和硬件推荐配置参数。又例如,将需求信息中深度学习模型的运行模式、待处理的数据的信息(例如待处理的数据的原始尺寸、对待处理的数据进行预处理后尺寸等信息)、批处理大小、CPU的频率、CPU的核数等信息作为CPU的性能模型的输入,利用预设的CPU的性能模型,计算出在给定CPU参数下的CPU吞吐率的理论最大值和与其对应的CPU的软件推荐配置参数和硬件推荐配置参数。又例如,将需求信息中的待处理的数据的大小、待处理的数据的读取线程、磁盘的类型、磁盘的数目等信息作为磁盘的性能模型的输入,利用预设的磁盘的性能模型,计算出给定磁盘参数的条件下的磁盘的吞吐率的理论最大值和与其对应的磁盘的软件推荐配置参数和硬件推荐配置参数。又例如,将需求信息中的待处理数据的大小、深度学习模型的参数大小、内存容量、内存个数、内存频率等信息作为内存性能模型的输入,并结合用户对内存高带宽的需求以及预设的内存的性能模型,计算出给定内存参数的条件下的内存的吞吐率的理论最大值和与其对应的内存的软件推荐配置参数和硬件推荐配置参数,从而得到了满足用户需求的GPU、CPU、磁盘以及内存的软、硬件推荐配置参数。
作为一种示例,请参考图11,用户的需求信息可以包括用户需要使用的深度学习模型的名称、GPU的数量、GPU的型号、深度学习模型的技术模式(用于训练的模式或者用于推测的模式)、是否为英伟达链接(NVIDIAlink,NVlink)拓扑、图片大小、图片数量、图片尺寸、是否为技术文件(technology file,TF)格式的数据、套接字(socket)数目,socket支持的内存的个数、socket支持的最大通道数以及期望磁盘写入的时间,然后将需求信息输入到各个组件对应的性能模型中,得到与各个组件对应的软、硬件推荐配置参数。例如,在图11中,将用户需要使用的深度学习模型的名称、GPU的数量、GPU的型号、深度学习模型的技术模式、是否为NVlink拓扑作为GPU相关参数输入到预设的GPU的性能模型中,从而得到GPU的批处理大小、GPU的并行模式以及GPU的PCIE桥的推荐配置参数值;将图片大小、图片数量、图片尺寸、是否为TF格式的数据作为数据相关参数输入到预设的CPU的性能模型中,从而得到CPU的型号、GPU的频率以及处理线程数目的推荐配置参数值;将前述的GPU相关参数、数据相关参数以及内存相关参数(包括socket数目,socket支持的内存的个数、socket支持的最大通道数)输入到预设的内存性能模型中,从而得到内存的个数以及内存容量的推荐配置参数值;将前述的数据相关参数以及期望磁盘写入的时间输入到预设的磁盘性能模型中,从而得到磁盘的型号、磁盘的规模以及读线程的数目的推荐配置参数值。
S503、输出反馈信息。
作为一种示例,该反馈信息中包括前述确定的推荐配置参数。
例如,沿用图11所示的示例,当确定出推荐配置参数后,则可以在执行该方法的装置的显示屏上显示该推荐配置参数,如图12所示。或者,执行该方法的装置中存储有用户的联系方式,例如,用户的手机号码,则也可以将确定的推荐配置参数发送到用户的手机中;或者,也可以将通过语音方式输出该推荐配置参数,在此不作限制。
在一种可能的实现方式中,根据预设的性能模型得到的软、硬件推荐配置参数可能是参数集合,即包括多组满足用户需求的参数。例如,得到的软件推荐配置参数中针对GPU的推荐配置参数中包括软件推荐参数1和软件推荐参数2,相应地,针对CPU的推荐配置参数中包括与GPU的软件推荐参数1对应的CPU的软件推荐参数1,以及,与GPU的软件推荐参数2对应的CPU的软件推荐参数2。针对内存和磁盘也是如此,在此不再赘述。在这种情况下,本申请实施例中的方法还包括:
S504、根据预设的规则,从所述推荐配置参数中确定满足条件的配置参数。
在本申请实施例中,满足条件的配置参数可以理解为最佳配置参数,或者能够是设备的性能达到某一预设阈值的配置参数,在此不作限制。为方便说明,下文中以该满足条件的配置参数为最佳配置参数为例进行说明。该预设的规则为以设备的第二组件的性能最优的规则,该第二组件为所述设备所包括的组件中的其中一个组件,例如可以是满足CPU性能最优的规则,或者满足GPU性能最优的规则或者满足内存性能最优的规则等,在此不一一说明。作为一种示例,可以以满足GPU的性能最优的规则,对根据预设的性能模型得到的内存、CPU、磁盘等软、硬件推荐配置参数进行筛选,给出满足用户需求以及GPU的性能最优的情况下的最终软、硬件推荐配置参数。需要说明的是,第一组件和第二组件可以相同,也可以不同,在此不作限制。
例如,请参考图13,可以在根据预设的性能模型得到的软、硬件推荐配置参数后,根据满足GPU的性能最优的规则,从前述得到的软、硬件推荐配置参数筛选出可以获取最大吞吐率时的GPU的软、硬件最佳配置参数。最后,则根据得出的GPU的软、硬件最佳配置参数,以及GPU的最大吞吐率、批处理大小、图片预处理后的尺寸等信息,推理可以满足GPU配置的CPU、磁盘与内存软、硬件最佳配置参数。
在这种情况下,执行该方法的装置也可以输出该最佳配置参数,例如,可以将该最佳配置参数显示在显示屏上或通过语音方式输入该最佳配置参数等,具体输出方式与步骤S503相似,在此不再赘述。
在一种可能的实现方式中,为了便于用户更加清晰地确定如何对设备的配置参数进行更新,本申请实施例中的方法还包括:
S505、获取所述设备在当前状态下的配置参数,将所述推荐配置参数与所述当前状态下的配置参数进行比较,得到对所述设备的配置参数的优化信息。
在根据预设的性能模型得到设备的推荐配置参数之后,还可以获取所述设备在当前状态下的配置参数,将所述推荐配置参数与所述当前状态下的配置参数进行比较,得到对所述设备的配置参数的优化信息,所述优化信息包括不满足所述需求信息的组件的标识,例如可以包括出不满足用户需求信息的组件,或者该优化信息中可以包括对组件的修改建议。也就是说,还可以对用户已有的配置进行检测、分析,找出当前环境中存在的资源不足或者资源冗余的情况。
例如,请参考图14,设备在当前状态下的配置参数可以包括GPU的型号、GPU的数量、CPU的型号、CPU的频率、CPU处理线程的数目、内存的个数、内存的容量、磁盘的型号、磁盘的规模以及磁盘读线程的数目等信息,然后,将各个组件的软、硬件推荐配置参数和当前状态下的配置参数进行比较,例如,将GPU的软、硬件推荐配置参数与设备在当前状态下的GPU的型号、GPU的数量进行分析比较,从而得到关于GPU的优化信息,该优化信息可以包括GPU的型号、GPU的数目、GPU的批处理大小、并行模式以及PCIE桥的修改建议;将CPU的软、硬件推荐配置参数与设备在当前状态下的CPU的型号、CPU的频率以及CPU处理线程的数目进行分析比较,从而得到关于CPU的优化信息,该优化信息可以包括更改CPU的型号、增大或减小CPU的频率以及增加或减少CPU处理线程的数目的信息;将内存的软、硬件推荐配置参数与设备在当前状态下的内存的个数、内存的容量进行分析比较,从而得到关于内存的优化信息,该优化信息可以包括增加或减少内存的个数以及增大或减小内容的容量的信息;将磁盘的软、硬件推荐配置参数与设备在当前状态下的磁盘的型号、磁盘的规模以及磁盘读线程的数目进行分析比较,从而得到关于磁盘的优化信息,该优化信息可以包括更改磁盘的型号、增大或减小磁盘的规模以及增加或减少磁盘读线程的数目等信息。当然,该优化信息中也可以包括将某个组件当前的配置参数调整到某一个具体参数值,例如,对内存的优化信息中可以包括将内存的个数由当前的取值1调整到取值2,或者,将内存的容量由当前的容量1调整到容量2,其中,取值2和容量2可以是根据内存的软、硬件推荐配置参数计算得到的。对于其他组件的优化信息也可以采用相同的处理方式,在此不一一说明。
在这种情况下,执行该方法的装置也可以输出该优化信息,例如,可以将该优化信息显示在显示屏上或通过语音方式输入该优化信息等,具体输出方式与步骤S503相似,在此不再赘述。
另外,在本申请实施例中,该方法还包括:
S506、获取所述设备的组件在当前配置参数下的第一运行数据,根据所述组件的当前配置参数以及所述第一运行数据,确定所述组件的工作状态,并根据所述组件的工作状态,从所述设备的推荐配置参数确定满足条件的配置参数。
在本申请实施例中,所述工作状态包括所述组件对所述设备的性能的影响程度,或者,该工作状态也可以理解为设备在当前状态下可能存在的性能瓶颈。
具体来讲,在设备在当前配置参数下处于运行状态时,利用监测软件实时监测设备的各个组件的第一运行数据,然后,根据设备的当前配置参数,对采集到的第一运行数据进行统计分析,输出设备在当前状态下可能存在的性能瓶颈。
针对GPU组件,在预设的监控时长内采集到GPU在运行环境中的运行数据,例如,GPU的浮动利用率、现存占用率等信息,结合GPU在当前状态下的配置参数、分析算法以及人工经验等,判断当前GPU是否负载均衡、是否满负载、型号是否可以升级等情况,从而推断出当前GPU所处的工作状态或可能存在的性能瓶颈。
针对CPU组件,以mpstat采集数据与iostat中CPU相关数据作为输入,并提取采集数据中与CPU运行状态相关的字段信息。通过对提取信息的统计处理,获得如最大值、最小值、均值等统计结果;然后,结合不同的CPU之间的统计结果与时间轴上同一CPU的统计结果,抽取更高层次的信息,例如CPU的工作时间占比、CPU的工作或繁忙或空闲的比例;最后,根据预先设定的阈值,结合CPU的当前配置参数以及计算得到的分析结果,判断CPU当前的工作状态或可能存在的性能瓶颈。
针对内存组件,以free()函数与pcm-memory采集的数据作为输入,并提取采集数据中与内存容量、带宽相关的字段信息。基于对free()函数采集的数据的初步统计,如所占内存的最大最小值等,进一步提取内存容量在时间维度上内存的变化量,以此反映用户程序在占有内存上的变化;然后,结合预先设定的阈值,内存在当前状态下的配置参数,判断内存容量是否异常,是否可以有效地支持用户程序的运行。之后,基于pcm-memory采集的数据信息,提取每个时刻不同socket的带宽信息,同时基于运行环境的内存信息,即标准频率、数据位数、内存通道数等信息计算理论带宽峰值;然后,通过实时带宽与理论峰值的比值,判断内存在程序运行过程中的工作状态或可能存在的性能瓶颈。
针对磁盘组件,以iostat采集的数据作为输入,并提取采集数据中与磁盘运行状态相关的字段信息。通过对提取信息的统计处理,获取每种磁盘在用户程序运行过程中的数据概况,如处理I/O请求数目的最大最小值、磁盘工作时间占比等信息;然后,结合预先设定的相关阈值,并结合磁盘在当前状态下的配置参数,判断磁盘当前的工作状态或可能存在的性能瓶颈。
另外,本申请实施例中还可以对其他组件进行分析。例如,针对GPU的服务器的拓扑,可以获取超级通道互联(ultra path interconnect,UPI)信息以及PCIE信息,通过提取在监控时间内各个端口的上下行流量,抽取各个端口的上下行流量的峰值、平均峰值并筛除异常值,依次分析当前各个端口的流量是否过大。同时,根据GPU的服务器的不同的架构,分析与不同的架构相关的端口,通过算法计算和人工经验结合的方式判断是否需要切换服务器的拓扑。又例如,可以结合PCIE交换机(switch)的信息以及UPI信息,通过提取在监控时间内各条UPI的占用率,抽取峰值占用率、平均占用率等特征,结合算法及人工经验分析当前的UPI是否过载。或者,可以结合当前的GPU的服务器的拓扑信息和PCIE Switch的端口流量大小以及人工的经验,判断是否应该切换服务器的拓扑。
当然,对设备的各个组件的工作状态的分析可以不限于上述内容,在此不作限制。
作为一种示例,请参考图15,可以通过监控脚本,获取设备在真实运行环境下各个组件的运行数据,例如,CPU的运行数据可以包括mpstat信息,包括设备的运算系统对CPU的占用信息、运行深度学习模型对CPU的占用信息、CPU的空闲状态以及IO等待时间等;内存的运行数据可以包括已经使用的内存大小、剩余内存大小、缓存大小、每个socket的带宽、系统的总带宽、内存的频率以及数据位数等;磁盘的运行数据可以包括读/写数据的速率、每个读操作的平均耗时(r_await)、每个写操作的平均耗时(w_await)等;GPU的运行数据可以包括:GPU的型号、个数、浮动利用率、switch端口流量大小以及上下行流量、UPI通道占用百分比等。然后,结合各个组件当前的配置参数,分别对每个组件的运行数据进行分析,得到与每个组件对应的分析结果以及工作状态。例如,针对CPU组件,可以得到CPU的分析结果包括:CPU的使用情况,如在程序的运行过程中处于工作状态的时间以及CPU的数量,CPU的占用率等,进而可以得到CPU的工作状态为:CPU频率是否不足或者冗余,处理线程数是否不足或冗余;针对内存组件,可以得到内存的分析结果包括:内存的使用情况,如在程序的运行过程中内存的占用量是否过大,进而可以得到内存的工作状态为:内存的容量是否不足或者冗余,内存的带宽是否空间或繁忙;针对磁盘组件,可以得到磁盘的分析结果包括:磁盘的使用情况,如在程序的运行过程中磁盘的IO压力是否过大,数据处理队列的等待时间是否过长等,进而可以得到磁盘的工作状态为:是否需要更新磁盘的型号、磁盘的规模是否冗余或不足,读线程数目是否冗余或不足;针对PCIE交换机组件,可以得到的分析结果包括:各个交换机的端口的流量是否过大或过小等,进而可以得到PCIE交换机的工作状态为:是否需要切换PCIE交换机的拓扑;针对GPU组件,可以得到GPU的分析结果包括:GPU的使用情况,如GPU的显存占用是否不足,GPU的负载是否不均衡等,进而可以得到GPU的工作状态为:是否需要增加或降低GPU的负载、是否需要更改GPU的型号等。进一步,也可以对上述各个组件的工作状态进行统计,得到一个最终的统计结果,例如,程序的运行过程中内存的占用量的最大值、平均值等,在此不一一说明。
当确定出设备的各个组件的工作状态后,执行该方法的装置可以输出各个组件的工作状态,具体输出方式与步骤S503相似。或者,也可以根据各个组件的工作状态,从所述设备的推荐配置参数确定满足条件的配置参数。例如,以确定满足条件的配置参数为最佳配置参数为例,若确定出设备的CPU是该设备的性能瓶颈,则可以设置用于确定最佳配置参数的预设的规则为以设备的CPU的性能最优的规则,然后根据该预设的规则,从得到的多组推荐配置参数中确定出最佳配置参数,具体过程与步骤S504相似,在此不再赘述。
S507、获取设备的组件在该推荐配置参数下的第二运行数据,并根据该第二运行数据,确定是否对推荐配置参数进行调整。
在本申请实施例中,当获取设备的推荐配置参数后,可以根据该推荐配置参数对设备的组件进行设置,然后对设备的运行数据进行监测,获得设备在推荐配置参数下的第二运行数据,以确定该推荐配置参数是否符合用户需求。具体监测方式与步骤S506中相似,在此不再赘述。
当获取设备在推荐配置参数下的第二运行数据后,则可以对本申请中的推荐方法进行反馈。例如,若设备的第二运行数据表示设备的各个组件都处于正常状态,则可以维持该推荐配置参数;若设备的第二运行数据表示部分组件已经处于异常状态(例如负载较大等),则可以对该推荐配置参数进行调整。例如,第二运行数据表示设备的GPU当前的负载量较大,则说明GPU的配置偏低,则可以更改对GPU的配置参数,例如使用处理能力更强的GPU。对其他组件的推荐配置参数的处理方式与GPU相似,在此不一一说明。
或者,还可以根据第二运行数据,对预设的性能模型进行调整。例如,若设备的第二运行数据表示已经有超过预设数量的组件已经处于异常状态,则说明通过该预设的性能模型得到的推荐配置参数可能无法满足在该深度学习模型下的使用需求,从而,可以采用本申请实施例中步骤S502的方式,重新确定预设的性能模型,以提高该方法的准确性。
当然,本领域技术人员也可以根据第二运行数据,对推荐配置参数或者预设的性能模型进行其他调整,在此不作限制。
当对推荐配置参数进行调整后,也可以将调整后的推荐配置参数显示在显示屏上或通过语音方式输出,具体输出方式与步骤S503相似,在此不再赘述。
需要说明的是,步骤S503~步骤S507为可选步骤,即不是必须要执行的,在图5中以虚线表示。
另外,需要说明的是,在上述描述中,是以对单个设备为例,对配置参数的推荐方法进行的说明,该推荐方法也可以应用在针对设备集群的场景下,例如从对每个单独的设备的配置参数的分析出发,结合去中心化思想,分析并推荐针对设备集群的配置参数。当然,也可以应用在其他场景中,在此不作限制。
上述本申请提供的实施例中,为了实现上述本申请实施例提供的方法中的各功能,设备可以包括硬件结构和/或软件模块,以硬件结构、软件模块、或硬件结构加软件模块的形式来实现上述各功能。上述各功能中的某个功能以硬件结构、软件模块、还是硬件结构加软件模块的方式来执行,取决于技术方案的特定应用和设计约束条件。
图16示出了一种设备的配置参数的推荐装置1600的结构示意图。设备的配置参数的推荐装置1600可以是硬件结构、软件模块、或硬件结构加软件模块。设备的配置参数的推荐装置1600可以由芯片系统实现。本申请实施例中,芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。
设备的配置参数的推荐装置1600可以包括获取模块1601以及推荐模块1602。
获取模块1601可以用于执行图5所示的实施例中的步骤S501、步骤S505和步骤S506,和/或用于支持本文所描述的技术的其它过程。
推荐模块1602可以用于执行图5所示的实施例中的步骤S502~步骤S506,和/或用于支持本文所描述的技术的其它过程。
其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
图16所示的实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,另外,在本申请各个实施例中的各功能模块可以集成在一个处理器中,也可以是单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
如图17所示为本申请实施例提供的设备的配置参数的推荐装置1700,其中,该设备的配置参数的推荐装置1700可以为芯片系统。本申请实施例中,芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。
设备的配置参数的推荐装置1700包括至少一个处理器1720,用于实现或用于支持设备的配置参数的推荐装置1700实现本申请实施例提供的设备的配置参数的推荐方法。示例性地,处理器1720可以根据预设的性能模型和需求信息,得到设备的推荐配置参数,具体参见方法示例中的详细描述,此处不做赘述。
设备的配置参数的推荐装置1700还可以包括至少一个存储器1730,包括内存,用于存储程序指令和/或数据。存储器1730和处理器1720耦合。本申请实施例中的耦合是装置、单元或模块之间的间接耦合或通信连接,可以是电性,机械或其它的形式,用于装置、单元或模块之间的信息交互。处理器1720可能和存储器1730协同操作。处理器1720可能执行存储器1730中存储的程序指令。所述至少一个存储器中的至少一个可以包括于处理器中。
设备的配置参数的推荐装置1700还可以包括通信接口1710,用于通过传输介质使得设备的配置参数的推荐装置1700中的各个器件可以进行通信。
本申请实施例中不限定上述通信接口1710、处理器1720以及存储器1730之间的具体连接介质。本申请实施例在图17中以存储器1730、处理器1720以及通信接口1710之间通过总线1740连接,总线在图17中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图17中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
在本申请实施例中,处理器1720可以是通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
在本申请实施例中,存储器1730可以是非易失性存储器,比如硬盘(hard diskdrive,HDD)或固态硬盘(solid-state drive,SSD)等,还可以是易失性存储器(volatilememory),例如随机存取存储器(random-access memory,RAM)。存储器是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
本申请实施例中还提供了一种计算设备,该计算设备包括存储器和处理器,其中,存储器中存储有程序代码,处理器用于访问所述存储器中的代码以执行图5所示的实施例中的方法。
本申请实施例中还提供一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行图5所示的实施例中的方法。
本申请实施例中还提供一种计算机程序产品,包括指令,当其在计算机上运行时,使得计算机执行图5所示的实施例中的方法。
本申请实施例提供了一种芯片系统,该芯片系统包括处理器,还可以包括存储器,用于实现前述方法中设备的配置参数的推荐装置的功能。该芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。
本申请实施例提供的方法中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、网络设备、用户设备或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,简称DSL)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机可以存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,数字视频光盘(digital video disc,简称DVD))、或者半导体介质(例如,SSD)等。
Claims (23)
1.一种设备的配置参数的推荐方法,其特征在于,包括:
获取用户对设备的需求信息,所述需求信息包括所述用户需要使用的深度学习模型的信息;
根据预设的性能模型和所述需求信息,得到所述设备的推荐配置参数,所述预设的性能模型是根据影响所述设备的性能的参数与所述设备在使用所述深度学习模型时的吞吐率之间的关系创建的,所述推荐配置参数包括所述设备的软件推荐配置参数或硬件推荐配置参数。
2.根据权利要求1所述的方法,其特征在于,所述影响所述设备的性能的参数,是对所述设备的运算系统的运算流程进行量化分析后,从所述设备所包括的所有的硬件参数和软件参数中选择的部分硬件参数和部分软件参数,所述设备使用所述运算系统处理所述待处理的数据。
3.根据权利要求1或2所述的方法,其特征在于,所述预设的性能模型包括负载约束模型,其中,所述负载约束模型是根据影响所述设备的性能的多个软件参数与所述深度学习模型的吞吐率之间的关系确定的。
4.根据权利要求1-3中任一项所述的方法,其特征在于,所述预设的性能模型包括计算能力模型,其中,所述计算能力模型是根据影响所述设备的性能的多个硬件参数和/或所述多个软件参数与所述设备的各个计算组件的性能之间的关系,以及所述多个硬件参数之间的关联性确定的,所述计算组件的性能包括所述计算组件的运行时间或所述计算组件的吞吐率。
5.根据权利要求3所述的方法,其特征在于,根据预设的性能模型和所述需求信息,得到所述设备的推荐配置参数,包括:
将所述需求信息中输入到负载约束模型中,得到所述设备的第一组件的软件推荐配置参数和硬件推荐配置参数,所述第一组件为所述设备所包括的组件中的其中一个组件。
6.根据权利要求5所述的方法,其特征在于,所述预设的性能模型还包括所述计算能力模型,根据预设的性能模型和所述需求信息,得到所述设备的推荐配置参数,还包括:
根据所述第一组件的软件推荐配置参数、所述硬件推荐配置参数以及所述计算能力模型,得到所述设备的其他组件的软件推荐配置参数和硬件推荐配置参数,所述其他组件为所述设备所包括的组件中除所述第一组件外的组件。
7.根据权利要求1-6中任一项所述的方法,其特征在于,所述方法还包括:
根据预设的规则,从所述设备的推荐配置参数中确定满足条件的配置参数,所述预设的规则为以所述设备的第二组件的性能最优的规则,所述第二组件为所述设备所包括的组件中的其中一个组件。
8.根据权利要求1-7中任一项所述的方法,其特征在于,所述方法还包括:
获取所述设备在当前状态下的配置参数;
将所述推荐配置参数与所述当前状态下的配置参数进行比较,得到对所述设备的配置参数的优化信息,所述优化信息包括不满足所述需求信息的组件的标识和/或对所述组件的配置参数的修改建议。
9.根据权利要求1-8中任一项所述的方法,其特征在于,所述方法还包括:
获取所述设备的组件在当前配置参数下的第一运行数据;
根据所述组件的当前配置参数以及所述第一运行数据,确定所述组件的工作状态,所述工作状态包括所述组件对所述设备的性能的影响程度;
根据所述组件的工作状态,从所述设备的推荐配置参数确定满足条件的配置参数。
10.根据权利要求1-9中任一项所述的方法,其特征在于,所述方法还包括:
获取所述设备的组件在所述推荐配置参数下的第二运行数据;
根据所述第二运行数据,确定是否对所述推荐配置参数进行调整。
11.根据权利要求1-10中任一项所述的方法,其特征在于,所述方法还包括:
输出反馈信息,所述反馈信息包括所述设备的推荐配置参数。
12.一种设备的配置参数的推荐装置,其特征在于,包括:
获取模块,用于获取用户对设备的需求信息,所述需求信息包括所述用户需要使用的深度学习模型的信息;
推荐模块,用于根据预设的性能模型和所述需求信息,得到所述设备的推荐配置参数,所述预设的性能模型是根据影响所述设备的性能的参数与所述设备在使用所述深度学习模型时的吞吐率之间的关系创建的,所述推荐配置参数包括所述设备的软件推荐配置参数或硬件推荐配置参数。
13.根据权利要求12所述的装置,其特征在于,所述影响所述设备的性能的参数,是对所述设备的运算系统的运算流程进行量化分析后,从所述设备所包括的所有的硬件参数和软件参数中选择的部分硬件参数和部分软件参数,所述设备使用所述运算系统处理所述待处理的数据。
14.根据权利要求12或13所述的装置,其特征在于,所述预设的性能模型包括负载约束模型,其中,所述负载约束模型是根据影响所述设备的性能的多个软件参数与所述深度学习模型的吞吐率之间的关系确定的。
15.根据权利要求12-14中任一项所述的装置,其特征在于,所述预设的性能模型包括计算能力模型,其中,所述计算能力模型是根据影响所述设备的性能的多个硬件参数和/或所述多个软件参数与所述设备的各个计算组件的性能之间的关系,以及所述多个硬件参数之间的关联性确定的,所述计算组件的性能包括所述计算组件的运行时间或所述计算组件的吞吐率。
16.根据权利要求14所述的装置,其特征在于,所述推荐模块具体用于:
将所述需求信息中输入到负载约束模型中,得到所述设备的第一组件的软件推荐配置参数和硬件推荐配置参数,所述第一组件为所述设备所包括的组件中的其中一个组件。
17.根据权利要求16所述的装置,其特征在于,所述预设的性能模型还包括所述计算能力模型,所述推荐模块还用于:
根据所述第一组件的软件推荐配置参数、所述硬件推荐配置参数以及所述计算能力模型,得到所述设备的其他组件的软件推荐配置参数和硬件推荐配置参数,所述其他组件为所述设备所包括的组件中除所述第一组件外的组件。
18.根据权利要求12-17中任一项所述的装置,其特征在于,所述推荐模块还用于:
根据预设的规则,从所述设备的推荐配置参数中确定满足条件的配置参数,所述预设的规则为以所述设备的第二组件的性能最优的规则,所述第二组件为所述设备所包括的组件中的其中一个组件。
19.根据权利要求12-18中任一项所述的装置,其特征在于,所述推荐模块还用于:
获取所述设备在当前状态下的配置参数;
将所述推荐配置参数与所述当前状态下的配置参数进行比较,得到对所述设备的配置参数的优化信息,所述优化信息包括不满足所述需求信息的组件的标识和/或对所述组件的配置参数的修改建议。
20.根据权利要求12-19中任一项所述的装置,其特征在于,所述推荐模块还用于:
获取所述设备的组件在当前配置参数下的第一运行数据;
根据所述组件的当前配置参数以及所述第一运行数据,确定所述组件的工作状态,所述工作状态包括所述组件对所述设备的性能的影响程度;
根据所述组件的工作状态,从所述设备的推荐配置参数确定满足条件的配置参数。
21.根据权利要求12-20中任一项所述的装置,其特征在于,所述推荐模块还用于:
获取所述设备的组件在所述推荐配置参数下的第二运行数据;
根据所述第二运行数据,确定是否对所述推荐配置参数进行调整。
22.根据权利要求12-21中任一项所述的装置,其特征在于,所述装置还包括:
输出模块,用于输出反馈信息,所述反馈信息包括所述设备的推荐配置参数。
23.一种计算设备,其特征在于,所述计算设备包括处理器和存储器,所述存储器用于存储程序代码,所述处理器用于执行所述程序代码以实现如权利要求1-11任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010873834.9A CN114118433A (zh) | 2020-08-26 | 2020-08-26 | 一种设备的配置参数的推荐方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010873834.9A CN114118433A (zh) | 2020-08-26 | 2020-08-26 | 一种设备的配置参数的推荐方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114118433A true CN114118433A (zh) | 2022-03-01 |
Family
ID=80374243
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010873834.9A Pending CN114118433A (zh) | 2020-08-26 | 2020-08-26 | 一种设备的配置参数的推荐方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114118433A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114911537A (zh) * | 2022-05-10 | 2022-08-16 | 声呐天空资讯顾问有限公司 | 参数配置方法及系统、存储介质 |
CN115225501A (zh) * | 2022-03-08 | 2022-10-21 | 国家电网有限公司信息通信分公司 | 白盒网络设备选型方法及相关设备 |
CN115392592A (zh) * | 2022-10-25 | 2022-11-25 | 浪潮电子信息产业股份有限公司 | 一种存储产品参数配置推荐方法、装置、设备及介质 |
CN117454018A (zh) * | 2023-12-22 | 2024-01-26 | 深圳市康莱米电子股份有限公司 | 一种基于平板电脑的教育平台实现方法及系统 |
CN117667901A (zh) * | 2023-12-25 | 2024-03-08 | 武汉达梦数据技术有限公司 | 一种ceph参数推荐方法、装置、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019037577A1 (en) * | 2017-08-23 | 2019-02-28 | Huawei Technologies Co., Ltd. | AUTOMATIC OPTIMIZATION OF PARAMETERS BY AUTOMATIC LEARNING |
US20190266015A1 (en) * | 2018-02-27 | 2019-08-29 | Microsoft Technology Licensing, Llc | Deep neural network workload scheduling |
CN110378468A (zh) * | 2019-07-08 | 2019-10-25 | 浙江大学 | 一种基于结构化剪枝和低比特量化的神经网络加速器 |
-
2020
- 2020-08-26 CN CN202010873834.9A patent/CN114118433A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019037577A1 (en) * | 2017-08-23 | 2019-02-28 | Huawei Technologies Co., Ltd. | AUTOMATIC OPTIMIZATION OF PARAMETERS BY AUTOMATIC LEARNING |
US20190266015A1 (en) * | 2018-02-27 | 2019-08-29 | Microsoft Technology Licensing, Llc | Deep neural network workload scheduling |
CN110378468A (zh) * | 2019-07-08 | 2019-10-25 | 浙江大学 | 一种基于结构化剪枝和低比特量化的神经网络加速器 |
Non-Patent Citations (2)
Title |
---|
HAIZHOU DU 等: "MonkeyKing: Adaptive Parameter Tuning on Big Data Platforms with Deep Reinforcement Learning", 《BIG DATA》, vol. 8, no. 4, 17 August 2020 (2020-08-17), pages 1 - 21 * |
徐欣冉: "基于TTA架构的神经网络处理机的设计与运用", 《中国优秀硕士学位论文全文数据库信息科技辑》, no. 04, 15 April 2018 (2018-04-15), pages 140 - 158 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115225501A (zh) * | 2022-03-08 | 2022-10-21 | 国家电网有限公司信息通信分公司 | 白盒网络设备选型方法及相关设备 |
CN114911537A (zh) * | 2022-05-10 | 2022-08-16 | 声呐天空资讯顾问有限公司 | 参数配置方法及系统、存储介质 |
CN114911537B (zh) * | 2022-05-10 | 2024-07-12 | Oppo广东移动通信有限公司 | 参数配置方法及系统、存储介质 |
CN115392592A (zh) * | 2022-10-25 | 2022-11-25 | 浪潮电子信息产业股份有限公司 | 一种存储产品参数配置推荐方法、装置、设备及介质 |
CN117454018A (zh) * | 2023-12-22 | 2024-01-26 | 深圳市康莱米电子股份有限公司 | 一种基于平板电脑的教育平台实现方法及系统 |
CN117454018B (zh) * | 2023-12-22 | 2024-03-08 | 深圳市康莱米电子股份有限公司 | 一种基于平板电脑的教育平台实现方法及系统 |
CN117667901A (zh) * | 2023-12-25 | 2024-03-08 | 武汉达梦数据技术有限公司 | 一种ceph参数推荐方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114118433A (zh) | 一种设备的配置参数的推荐方法及装置 | |
US20220391771A1 (en) | Method, apparatus, and computer device and storage medium for distributed training of machine learning model | |
US11061731B2 (en) | Method, device and computer readable medium for scheduling dedicated processing resource | |
US20190279088A1 (en) | Training method, apparatus, chip, and system for neural network model | |
US9766818B2 (en) | Electronic system with learning mechanism and method of operation thereof | |
US11436050B2 (en) | Method, apparatus and computer program product for resource scheduling | |
CN110610449B (zh) | 处理计算任务的方法、设备和计算机程序产品 | |
US20230169351A1 (en) | Distributed training method based on end-to-end adaption, and device | |
CN109918184B (zh) | 图片处理系统、方法及相关装置和设备 | |
US20240054384A1 (en) | Operation-based partitioning of a parallelizable machine learning model network on accelerator hardware | |
US11429434B2 (en) | Elastic execution of machine learning workloads using application based profiling | |
KR20200015829A (ko) | 계산 그래프들 프로세싱 | |
CN110852438A (zh) | 模型生成方法和装置 | |
CN111753948A (zh) | 模型处理方法及相关设备 | |
US10862765B2 (en) | Allocation of shared computing resources using a classifier chain | |
US20210158131A1 (en) | Hierarchical partitioning of operators | |
CN108776833B (zh) | 一种数据处理方法、系统及计算机可读存储介质 | |
CN103713935A (zh) | 一种在线管理Hadoop集群资源的方法和装置 | |
US11562554B1 (en) | Workload reduction for non-maximum suppression operation | |
CN112181613A (zh) | 异构资源分布式计算平台批量任务调度方法及存储介质 | |
US12032571B2 (en) | AI model optimization method and apparatus | |
CN116909748A (zh) | 算力资源分配方法、装置、电子设备及存储介质 | |
CN112753016A (zh) | 神经网络中数据预处理阶段的计算资源的管理方法和装置 | |
US11461662B1 (en) | Compilation time reduction for memory and compute bound neural networks | |
CN114997401B (zh) | 自适应推理加速方法、装置、计算机设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |