A method and device for recommending configuration parameters of a device

By obtaining user demand information and preset performance models, and automatically compute device configuration parameters, the accuracy of the selection of device configuration parameters in AI system is solved, and efficient matching and optimization are achieved in different business scenarios.

CN114118433BActive Publication Date: 2025-01-14HUAWEI TECH CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202010873834.9
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2020-08-26
Publication Date
2025-01-14
Estimated Expiration
2040-08-26

AI Technical Summary

Technical Problem

In different business scenarios, the accuracy of the device configuration parameters that choose to run the AI ​​system is low, and the existing manual recommendation methods are insufficient.

Method used

By obtaining user demand information, using preset performance models, including load constraint models and computing power models, automatically compute the recommended configuration parameters of the device, consider the impact of deep learning models on device performance, filter the parameters that affect performance, and improve the accuracy of recommendations sex.

Benefits of technology

It realizes the equipment configuration parameters that accurately match the requirements of deep learning models in different business scenarios, improves the accuracy of the recommended method, reduces modeling complexity, and improves equipment performance by optimizing configuration parameters.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114118433B_ABST
    Figure CN114118433B_ABST
Patent Text Reader

Abstract

The present application provides a method and apparatus for recommending configuration parameters of a device. In the method, recommended configuration parameters of a device that meet user needs can be automatically calculated based on demand information input by the user. Moreover, since the demand information input by the user includes information about a deep learning model to be used, the calculated recommended configuration parameters take into account the impact of the deep learning model on the performance of the device. In other words, the recommended configuration parameters determined by the above method can be accurately matched to different deep learning models, thereby improving the accuracy of the recommendation method.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of computer technology, and in particular to a method and apparatus for recommending configuration parameters of a device. Background Art

[0002] Artificial intelligence (AI) is the theory, method, technology and application system that uses digital computers or machines or devices controlled by digital computers to simulate, extend and expand human intelligence, perceive the environment, acquire knowledge and use knowledge to obtain the best results. It attempts to understand the essence of intelligence and produce a new intelligent machine that can respond in a similar way to human intelligence. Research in the field of artificial intelligence includes robotics, natural language processing, computer vision, decision-making and reasoning, human-computer interaction, recommendation and search, basic AI theory, etc.

[0003] AI systems in different business scenarios have different configuration requirements for the devices running the AI ​​systems. For example, in the scenario of network search engines, due to the large throughput, the processor of the device running the AI ​​system in this scenario needs to have higher calculation accuracy; in the scenario of teaching demonstrations, since the device needs to be virtualized according to the number of students in the classroom, the processor of the device running the AI ​​system needs to have stronger virtualization capabilities. Therefore, how to select the configuration parameters of the device running the AI ​​system in different business scenarios is an urgent problem to be solved.

[0004] One solution is manual recommendation, whereby the salesperson or technician of the device running the AI ​​system recommends the configuration parameters of the device based on the business scenario and experience. However, the accuracy of manual recommendation is low. Summary of the invention

[0005] The present application provides a method and apparatus for recommending configuration parameters of a device, so as to improve the accuracy of selecting configuration parameters of a device running an AI system.

[0006] In a first aspect, a method for recommending configuration parameters of a device is provided, in which user demand information for the device is first obtained, and the demand information includes information about a deep learning model that the user needs to use. Then, based on a preset performance model and the obtained demand information, recommended configuration parameters of the device are obtained, wherein the preset performance model is created based on a relationship between parameters affecting the performance of the device and the throughput of the device when using the deep learning model, and the recommended configuration parameters include software recommended configuration parameters or hardware recommended configuration parameters of the device.

[0007] In the above technical solution, the recommended configuration parameters of the device that meet the user's needs can be automatically calculated based on the demand information input by the user. Moreover, since the demand information input by the user includes information about the deep learning model to be used, the calculated recommended configuration parameters take into account the impact of the deep learning model on the performance of the device. In other words, the recommended configuration parameters determined by the above method can be accurately matched to different deep learning models, thereby improving the accuracy of the recommendation method.

[0008] In an embodiment of the present application, the demand information may also include other parameters, for example, the maximum configuration supported by the components of the device, information on the data to be processed, and the performance expected to be achieved by the device, etc., which are not limited here.

[0009] In one possible design, the parameters that affect the performance of the device are some hardware parameters and some software parameters selected from all the hardware parameters and software parameters included in the device after quantitative analysis of the operating process of the device's operating system, and the device uses the operating system to process the data to be processed.

[0010] Since the components of the device will generate a variety of parameters during operation, but not all parameters have an impact on the performance of the device, in the above technical solution, the parameters in the device can be screened based on the quantitative analysis of the operation process, and then the parameters that have no impact on the performance of the device can be removed, which can reduce the complexity of subsequent modeling. Moreover, some parameters that have no impact on the performance of the device may also interfere with the aforementioned recommendation method. Therefore, after removing these parameters, the accuracy of the recommendation method in this application can be further improved.

[0011] In one possible design, the preset performance model includes a load constraint model, wherein the load constraint model is determined based on a relationship between multiple software parameters that affect the performance of the device and the throughput rate of the deep learning model.

[0012] In the above technical solution, the relationship between multiple software parameters and the throughput of the deep learning model is used to quantitatively describe the relationship between different software parameters and the load of the device, thereby establishing a model among the deep learning model, the computing system and the throughput of the device, and determining the recommended configuration parameters of the device based on the model.

[0013] In one possible design, the preset performance model includes a computing capability model, wherein the computing capability model is determined based on the relationship between multiple hardware parameters and / or multiple software parameters that affect the performance of the device and the performance of each computing component of the device, and the correlation between the multiple hardware parameters, and the performance of the computing component includes the running time of the computing component or the throughput of the computing component.

[0014] Since different deep learning models have different requirements for the configuration parameters of the device, in the above technical solution, by quantitatively modeling the computing power of each component of the device, the impact of the computing power of various components on the execution of different deep learning models by the device can be measured, thereby improving the accuracy of the recommendation method.

[0015] In a possible design, the methods for obtaining the recommended configuration parameters of the device according to the preset performance model and requirement information may include but are not limited to the following two methods:

[0016] The first method is that if the preset performance model includes a load constraint model, the acquired demand information can be input into the load constraint model to obtain the software recommended configuration parameters and hardware recommended configuration parameters of the first component of the device, where the first component is one of the components included in the device.

[0017] In the above technical solution, the load constraint model can be used to obtain recommended configuration parameters for some components of the equipment, and the calculation method is simple.

[0018] The second method is that if the preset performance model also includes a computing capability model, after obtaining the recommended software configuration parameters and the recommended hardware configuration parameters of the first component according to the load constraint model, the recommended software configuration parameters and the recommended hardware configuration parameters of other components of the device can be obtained according to the recommended software configuration parameters and the recommended hardware configuration parameters of the first component and the computing capability model. The other components are the components included in the device except the first component.

[0019] In the above technical solution, different performances can be combined to obtain configuration parameters for various components of the device.

[0020] In one possible design, after obtaining the recommended configuration parameters of the device, it is also possible to determine configuration parameters that meet the conditions from the recommended configuration parameters of the device according to preset rules, wherein the preset rules are rules based on the optimal performance of the second component of the device, and the second component is one of the components included in the device.

[0021] In the above technical solution, the recommended software and hardware configuration parameters obtained according to the preset performance model may be a parameter set, that is, including multiple groups of parameters that meet user needs. In this case, the multiple groups of configuration parameters can be further screened according to preset rules, and targeted recommendation results for the configuration parameters of the device can be given.

[0022] In one possible design, after obtaining the recommended configuration parameters of the device, the configuration parameters of the device in the current state can also be obtained, and then the recommended configuration parameters are compared with the configuration parameters in the current state to obtain optimization information for the configuration parameters of the device, wherein the optimization information includes the identification of components that do not meet the requirement information and / or suggestions for modifying the configuration parameters of the components.

[0023] In the above technical solution, the recommended configuration parameters are compared with the configuration parameters in the current state to obtain optimization information for the configuration parameters of the device, which may include components that do not meet user demand information, or the optimization information may include modification suggestions for components, or the user's existing configuration may be detected and analyzed to find out the resource shortage or resource redundancy in the current environment, so that the user can more clearly determine how to update the configuration parameters of the device.

[0024] In one possible design, after obtaining the recommended configuration parameters of a device, first operating data of components of the device under current configuration parameters may also be obtained, and then, based on the current configuration parameters of the component and the operating data, a working state of the component may be determined, wherein the working state includes the degree of influence of the component on the performance of the device; and based on the working state of the component, configuration parameters that meet the conditions may be determined from the recommended configuration parameters of the device.

[0025] In the above technical solution, the recommended configuration parameters can also be screened according to the operating data under the current configuration parameters. For example, if it is determined based on the operating data under the current configuration parameters that the CPU of the device is the performance bottleneck of the device, then a rule based on the optimal performance of the CPU of the device can be set to determine the best configuration parameters from the multiple sets of recommended configuration parameters obtained, so that the obtained recommended configuration parameters can meet the actual operating environment of the device.

[0026] In one possible design, after obtaining the recommended configuration parameters of the device, the various components of the device can be set based on the recommended configuration parameters, and then second operating data of the components of the device under the recommended configuration parameters can be obtained. Based on the second operating data, it can be determined whether to adjust the recommended configuration parameters.

[0027] In the above technical solution, the recommended method in this application can be fed back based on the operating data of the device under the recommended configuration parameters to determine whether the recommended configuration parameters meet the user's needs. If the operating data of the device under the recommended configuration parameters indicates that all components of the device are in a normal state, the recommended configuration parameters can be maintained; if the operating data of the device under the recommended configuration parameters indicates that some components are already in an abnormal state (for example, the load is large, etc.), the recommended configuration parameters can be adjusted, or the preset performance model can be adjusted to improve the accuracy of the method.

[0028] In a possible design, after obtaining the recommended configuration parameters of the device, feedback information may also be output, where the feedback information includes the recommended configuration parameters of the device so that the user can obtain the information in a timely manner.

[0029] In one possible design, the partial software parameters include at least one of the following information:

[0030] The unit data volume of data processed by the graphics processing unit GPU of the device;

[0031] The unit data volume of data processed by the central processing unit (CPU) of the device;

[0032] An operation mode of the GPU and / or the CPU, wherein the operation mode includes a parallel mode or a non-parallel mode;

[0033] The number of threads used by the CPU;

[0034] The number of threads used by the storage medium of the device.

[0035] In one possible design, the partial hardware parameters include at least one of the following information:

[0036] the type of storage medium of the device;

[0037] the frequency of the central processing unit of the device;

[0038] the amount of memory of the device;

[0039] The number of channels of the memory;

[0040] the amount of the memory;

[0041] the capacity of the memory;

[0042] The architecture of the graphics processing unit GPU of the device.

[0043] In a possible design, the preset performance model includes at least one of the following models:

[0044] A performance model of the graphics processing GPU of the device;

[0045] A performance model of the central processing unit (CPU) of the device;

[0046] a performance model of a storage medium of the device;

[0047] The performance model of the device's memory.

[0048] The above-listed partial software parameters, partial hardware parameters and performance models are merely examples and should not be construed as limitations on the parameters affecting the performance of the device and the preset performance models in the application embodiments.

[0049] In a second aspect, a device for recommending configuration parameters of a device is provided, the device comprising a processor for implementing the method described in the first aspect. The device may also include a memory for storing program instructions and data. The memory is coupled to the processor, and the processor may call and execute program instructions stored in the memory to implement any one of the methods described in the first aspect. The device may also include a communication interface for communicating with other devices.

[0050] In one possible design, the communication interface is used to obtain user demand information for the device, and the demand information includes information about the deep learning model that the user needs to use.

[0051] The processor is used to obtain recommended configuration parameters of the device based on a preset performance model and the obtained demand information, wherein the preset performance model is created based on the relationship between parameters affecting the performance of the device and the throughput of the device when using a deep learning model, and the recommended configuration parameters include software recommended configuration parameters or hardware recommended configuration parameters of the device.

[0052] In a third aspect, a device configuration parameter recommendation apparatus is provided, the apparatus comprising an acquisition module and a recommendation module, and these modules can perform the corresponding functions performed in any one of the design examples of the first aspect. For example:

[0053] The acquisition module is used to obtain the user's demand information for the device, and the demand information includes the information of the deep learning model that the user needs to use;

[0054] The recommendation module is used to obtain recommended configuration parameters of the device according to a preset performance model and the demand information, wherein the preset performance model is created based on the relationship between parameters affecting the performance of the device and the throughput of the device when using the deep learning model, and the recommended configuration parameters include software recommended configuration parameters or hardware recommended configuration parameters of the device.

[0055] In a fourth aspect, the present application provides a computing device comprising a memory and a processor, wherein the memory stores program code, and the processor is used to access the code in the memory to execute the method provided by the first aspect or any possible implementation of the first aspect.

[0056] In a fifth aspect, an embodiment of the present application provides a computer-readable storage medium, wherein the computer-readable storage medium stores a computer program, wherein the computer program includes program instructions, and when the program instructions are executed by a computer, the computer executes the method described in any one of the first aspects. The readable storage medium includes, but is not limited to, a volatile memory, such as a random access memory, and a non-volatile memory, such as a flash memory, a hard disk drive (HDD), and a solid state drive (SSD).

[0057] In a sixth aspect, an embodiment of the present application provides a computer program product, wherein the computer program product stores a computer program, wherein the computer program includes program instructions, and when the program instructions are executed by a computer, the computer executes any one of the methods described in the first aspect. The computer program product may be a software installation package, and when the method provided in the first aspect or any possible implementation of the first aspect needs to be used, the computer program product may be downloaded and executed on a computing device.

[0058] In a seventh aspect, the present application provides a chip system, which includes a processor and may also include a memory, for implementing the method described in the first aspect. The chip system may be composed of a chip, or may include a chip and other discrete devices.

[0059] The beneficial effects of the above-mentioned second to seventh aspects and their implementation methods can refer to the description of the beneficial effects of the method of the first aspect and its implementation method. BRIEF DESCRIPTION OF THE DRAWINGS

[0060] Figure 1 It is a schematic diagram of an artificial intelligence main framework;

[0061] Figure 2 This is a schematic diagram of the system architecture of tensor flow;

[0062] Figure 3 It is the calculation flow chart of the tensor flow system;

[0063] Figure 4 This is a physical structure diagram of the computing process of the tensor flow system;

[0064] Figure 5A flowchart of an example of a method for recommending configuration parameters of a device provided in an embodiment of the present application;

[0065] Figure 6 A schematic diagram of an example of obtaining demand information input by a user provided in an embodiment of the present application;

[0066] Figure 7 A schematic diagram of another example of obtaining demand information input by a user provided in an embodiment of the present application;

[0067] Figure 8A to Figure 8C A schematic diagram of the changes in throughput of different deep learning models under different batch sizes provided in the embodiments of the present application;

[0068] Fig. 9 A schematic diagram of the changes in the acceleration ratios of different deep learning models in different GPU parallel modes provided in the embodiments of the present application;

[0069] Fig.10 A flowchart of an example of a method for creating a computing capability model provided in an embodiment of the present application;

[0070] Fig.11 A schematic diagram of a specific example of a method for recommending configuration parameters of a device provided in an embodiment of the present application;

[0071] Fig.12 A schematic diagram of an example of outputting recommended configuration parameters for a method for recommending configuration parameters of a device provided in an embodiment of the present application;

[0072] Fig.13 A schematic diagram of another specific example of a method for recommending configuration parameters of a device provided in an embodiment of the present application;

[0073] Fig.14 A schematic diagram of another specific example of a method for recommending configuration parameters of a device provided in an embodiment of the present application;

[0074] Fig.15 A schematic diagram of another specific example of a method for recommending configuration parameters of a device provided in an embodiment of the present application;

[0075] Fig.16 A schematic diagram of an example of a configuration parameter recommendation device for a device provided in an embodiment of the present application;

[0076] Fig.17 A schematic diagram of the structure of another example of a device for recommending configuration parameters of a device provided in an embodiment of the present application. DETAILED DESCRIPTION

[0077] In order to make the purpose, technical solutions and advantages of the embodiments of the present application clearer, the embodiments of the present application will be further described in detail below with reference to the accompanying drawings.

[0078] In the embodiments of the present application, "multiple" refers to two or more than two. In view of this, in the embodiments of the present application, "multiple" can also be understood as "at least two". "At least one" can be understood as one or more, for example, one, two or more. For example, including at least one means including one, two or more, and there is no restriction on which ones are included. For example, including at least one of A, B and C, then A, B, C, A and B, A and C, B and C, or A and B and C may be included. "And / or" describes the association relationship of associated objects, indicating that three relationships may exist. For example, A and / or B can represent: A exists alone, A and B exist at the same time, and B exists alone. In addition, the character " / ", unless otherwise specified, generally indicates that the previously associated objects are in an "or" relationship.

[0079] Unless otherwise specified, the ordinal numbers such as "first" and "second" mentioned in the embodiments of the present application are used to distinguish multiple objects and are not used to limit the order, timing, priority or importance of the multiple objects.

[0080] Figure 1 A schematic diagram of an artificial intelligence main framework is shown, which describes the overall workflow of the artificial intelligence system and is applicable to general artificial intelligence field requirements. The following is an explanation of the above artificial intelligence theme framework from two dimensions: "intelligent information chain" (horizontal axis) and "IT value chain" (vertical axis).

[0081] The "intelligent information chain" reflects a series of processes from data acquisition to processing. For example, it can be a general process of intelligent information perception, intelligent information representation and formation, intelligent reasoning, intelligent decision-making, intelligent execution and output. In this process, data undergoes a condensed process of "data-information-knowledge-wisdom". The "IT value chain" reflects the value that artificial intelligence brings to the information technology industry from the underlying infrastructure of human intelligence, information (providing and processing technology implementation) to the industrial ecological process of the system.

[0082] (1) Infrastructure: Infrastructure provides computing power support for artificial intelligence systems, enables communication with the outside world, and supports it through the basic platform. It communicates with the outside world through sensors; computing power is provided by smart chips (CPU, NPU, GPU, ASIC, FPGA and other hardware acceleration chips); the basic platform includes distributed computing frameworks and networks and other related platform guarantees and support, which can include cloud storage and computing, interconnected networks, etc. For example, sensors communicate with the outside world to obtain data, and these data are provided to the smart chips in the distributed computing system provided by the basic platform for calculation.

[0083] (2) Data: The data on the upper layer of the infrastructure is used to represent the data source in the field of artificial intelligence. The data involves graphics, images, voice, text, and IoT data of traditional devices, including business data of existing systems and perception data such as force, displacement, liquid level, temperature, and humidity.

[0084] (3) Data processing: Data processing usually includes data training, machine learning, deep learning, search, reasoning, decision-making and other methods. Among them, machine learning and deep learning can symbolize and formalize data for intelligent information modeling, extraction, preprocessing, training, etc. Reasoning refers to the process of simulating human intelligent reasoning in a computer or intelligent system, using formalized information for machine thinking and problem solving based on reasoning control strategies, and typical functions are search and matching. Decision-making refers to the process of making decisions after intelligent information is reasoned, usually providing functions such as classification, sorting, and prediction.

[0085] (4) General capabilities: After the data has been processed as mentioned above, some general capabilities can be further formed based on the results of the data processing, such as an algorithm or a general system, for example, translation, text analysis, computer vision processing, speech recognition, image recognition, etc.

[0086] (5) Intelligent products and industry applications: Intelligent products and industry applications refer to the products and applications of artificial intelligence systems in various fields. They are the encapsulation of the overall artificial intelligence solution, which productizes intelligent information decision-making and realizes practical application. Its application areas mainly include: intelligent manufacturing, intelligent transportation, smart home, smart medical care, smart security, autonomous driving, safe city, smart terminal, etc.

[0087] Depend on Figure 1 It can be seen that the operation of the artificial intelligence system depends on the infrastructure. If the configuration of the infrastructure is too low, it will affect the upper-level data processing process. If the configuration of the infrastructure is too high, there will be a waste of resources. Therefore, it is particularly important to reasonably set the configuration parameters of the infrastructure. Generally speaking, the artificial intelligence system can be run in a certain device or a certain device cluster. Therefore, in the embodiments of the present application, the infrastructure of the artificial intelligence system can also be referred to as the device running the artificial intelligence system.

[0088] In order to reasonably run the configuration parameters of the equipment of the artificial intelligence system, one way is to manually recommend the configuration parameters of the equipment based on the experience of experts or technicians.

[0089] Taking the graphic processing unit (GPU) as an example, experts or technicians first select the GPU model based on the business needs of the artificial intelligence system. For example, in high-performance computing scenarios, a double-precision GPU is required; in model reasoning scenarios, the accuracy requirements for the GPU are lower, so a lower-precision GPU can be used. After selecting the GPU model, experts or technicians need to determine the configuration of the components of the server equipped with the GPU based on the specific amount of data processed, the user population, the customer's IT operation and maintenance capabilities, etc. The components may include CPU, disk, memory, etc.

[0090] However, with the continuous development of artificial intelligence systems, the algorithm models used to process data and the equipment configuration options in artificial intelligence systems are becoming more and more complex. The use of manual recommendation methods may only be able to take into account one or several aspects, but not all situations, resulting in lower accuracy of this method.

[0091] In view of this, the present application provides a method and apparatus for recommending configuration parameters of a device, so as to improve the accuracy of selecting configuration parameters of a device running an artificial intelligence system.

[0092] In order to determine that the configuration parameters of the device running the artificial intelligence system can be recommended through a specific algorithm, the embodiment of the present application first analyzes the processing flow of the artificial intelligence system on the device. Below, taking tensorflow as an example, the processing flow of the artificial intelligence system is specifically described.

[0093] Tensor Flow is a symbolic mathematical system based on data flow programming, which is widely used in the programming implementation of various machine learning algorithms in artificial intelligence systems. Graphs are the basic computing units in Tensor Flow. Data flow graphs use directed graphs of "nodes" and "edges" to describe mathematical calculations. "Nodes" are generally used to represent the mathematical operations applied, or they can also represent the starting point of data input (feed in) / the end point of output (push out), or the end point of reading / writing persistent variables (persistent variables). "Lines" represent the input / output relationship between "nodes". These data "lines" can transport "dynamically adjustable" multi-dimensional data arrays, namely "tensors". Once all the tensors on the input end are ready, the nodes will be assigned to various computing devices to complete the calculation.

[0094] Please refer to Figure 2 , is a schematic diagram of the system architecture of tensor flow. Figure 2As shown in the figure, the system of tensor flow is divided into two parts, the front-end and the back-end, with the client API as the boundary. The front-end part includes the client, which is a programming environment that supports multiple languages ​​(for example, C++, Python, JAVA, etc.), and can provide various programming models based on data flow graphs, so that customers can construct data flow graphs of tensor flow and realize the model design of various artificial intelligence systems. The back-end part includes the distributed runtime, kernel implementation, network layer and device layer, which are responsible for executing the data flow graph created in the client. Among them, the distributed runtime includes the distributed master node, the work service module and the data flow executor node. The distributed master node is used to reversely traverse the data flow graph according to the parameters in the data flow graph created in the client to find the "minimum subgraph" it depends on. Then, the distributed master node is responsible for splitting the "subgraph" into multiple "subgraph segments" again so that these "subgraph segments" can be run on different processes and devices. Finally, the distributed master node dispatches these “sub-image segments” to the work service module, and the work service module calls the data flow execution node to complete the execution process of the “sub-image segments”.

[0095] The work service module uses the GPU / CPU in the device layer to execute the kernel operation of tensor flow. Data can be transmitted asynchronously between the CPU and GPU called by the same work service module. For example, cudaMemcpyAsync technology can be used to transmit data. And data can be transmitted between multiple GPUs called by the same work service module using direct memory access (DMA) technology. Data communication and transmission between different nodes can be achieved by remote procedure call (RPC) and remote direct memory access (RDMA) technologies in the network layer.

[0096] For each task, tensor flow will start a work service module to perform calculations. After receiving the task, the work service module will call the kernel implementation to complete the calculation according to the dependencies between the nodes in the data flow graph corresponding to the task and the current available hardware environment (GPU / CPU) of the device. In addition, different work service modules can also interact with each other. For example, a work service module can send the results of its calculations to other work service modules, and the work service module can also receive the results of other work service modules from other work service modules.

[0097] Through the above analysis of the working principles of each module in the tensor flow system architecture, we can get the following Figure 3 The calculation flow chart of the tensor flow system is shown in Figure 1. Figure 3 As shown in the figure, the user will first build the corresponding program according to the business needs using the interface provided by the tensorflow system (for example, the Python interface). Then, when the user runs the program, the tensorflow system compiles and serializes the program through the protocol buffer compiler to generate the basic computing unit of the tensorflow system, namely the data flow graph, and then sends the data flow graph to a distributed master node. The distributed master node performs subgraph extraction, subgraph segmentation, and subgraph optimization on the data flow graph, splits the data flow graph into multiple subgraphs, and assigns them to the nodes corresponding to different work service modules. Each node executes the subgraph assigned to it in turn according to the scheduling order of the distributed master node, and sends the execution results to other work service modules, and finally obtains the execution results of the data flow graph.

[0098] Depend on Figure 3 As shown in the calculation flow chart, the logical structure of the calculation process of the tensor flow system can include the following three steps: data loading process, data processing process and model calculation process. Among them, the data loading process refers to loading the data in the corresponding data address on the disk into the memory running the tensor flow system according to the data address set in the program built by the user, so as to be called by subsequent tasks. The data processing process refers to preprocessing the data loaded into the memory, for example, scheduling threads and kernel functions for the data. The model calculation process refers to calling related kernel functions, threads, etc., and using the preprocessed data to train and infer the model of the artificial intelligence system running in the tensor flow system to obtain the operation results of the artificial intelligence system.

[0099] Furthermore, by associating the above logical structure with the hardware in the device running the tensor flow system, we can get the following Figure 4 The physical structure diagram of the calculation process of the tensor flow system shown in Figure 1 is a diagram of the physical structure of the calculation process of the tensor flow system. The data loading process is mainly operated by the disk, which loads the data into the memory according to the command issued by the CPU; the data processing process is executed by the CPU. On the one hand, the CPU pre-processes the data loaded into the memory according to the program, such as generating a data flow graph corresponding to the program; on the other hand, the CPU also needs to schedule the program corresponding to the model running in the tensor flow system, such as thread management, kernel function compilation and calling, etc.; the model calculation process is the GPU training the model based on the compiled data flow graph and related kernel functions using the processed data stored in the video memory. In addition, during the model calculation process, there will be frequent data transmission and parameter updates between the CPU and GPU, which requires the memory to provide sufficient bandwidth to ensure efficient data transmission.

[0100] It can be seen that the processing flow of the artificial intelligence system can be quantified into the data processing process of the disk, the data processing flow of the CPU, and the model calculation process of the GPU in the device running the artificial intelligence system. In other words, the performance of various deep learning models in the artificial intelligence system can be quantified by quantifying the various components of the device running the model. Therefore, as long as a reasonable quantitative model is created for each component based on the deep learning model, the requirements of different deep learning models for the configuration parameters of the device can be obtained through the quantitative model, thereby achieving the purpose of automatically recommending the configuration parameters of the device and improving the accuracy of the recommended configuration parameters of the device.

[0101] Based on the above theoretical analysis, the technical solution provided in the embodiments of the present application is described below.

[0102] Please refer to Figure 5 , is a flowchart of a method for recommending configuration parameters of a device provided in an embodiment of the present application, and the description of the flowchart is as follows:

[0103] S501: Obtain user demand information for equipment.

[0104] In an embodiment of the present application, the demand information includes a deep learning model that the user needs to use, wherein the deep learning model that the user needs to use may include information such as the name of the model and the type of model.

[0105] Of course, the demand information may also include other parameters, for example, the maximum configuration supported by the components of the device, information about the data to be processed, and the performance that the device is expected to achieve. The maximum configuration supported by the components of the device may include the maximum configuration of the GPU, CPU, memory, and storage device expected by the user, such as the maximum number of GPUs, the maximum number of CPUs, the maximum number of CPU cores, the maximum number of memory channels, the maximum number of memories, and the maximum capacity of storage media (such as disks); the information about the data to be processed may include the total amount of data processed, the format of the data, etc.; the performance that the device is expected to achieve may include the total time used by the device to process data, the expected disk write time, etc.

[0106] Specifically, the device for executing the method may first display prompt information on a display screen, where the prompt information is used to indicate the content of the demand information input by the user, such as Figure 6 As shown in (a) in Figure 6 (a) shows that the user needs to input the required information for the deep learning module to be used, and Figure 6 In (a), commonly used deep learning models can be listed to facilitate user operation, for example, Figure 6 In (a), the deep learning model alexnet, the deep learning model nasnet and the deep learning model resnet152, and then the user can click on the deep learning model to be used on the display screen, such as Figure 6 As shown in (b) of the figure, the device executing the method obtains the deep learning model that the user needs to use according to the user's click operation. If the demand information also includes other parameters, for example, information about the data to be processed, after detecting that the user selects the deep learning model to be used, another input interface can be displayed, such as Figure 7 As shown, the input interface is used to input the total amount and data format of the data to be processed, and the user inputs according to the prompt information. Multiple different input interfaces can be displayed according to different parameters, which are not described one by one here. Alternatively, the user can also input according to actual usage requirements, and then the device executing the method selects from the requirement information input by the user. Here, the specific method of obtaining the requirement information is not limited.

[0107] Of course, the demand information in the embodiment of the present application may also include other content, and those skilled in the art may set it according to usage requirements, which is not limited here.

[0108] S502: Obtain recommended configuration parameters for the device according to a preset performance model and the demand information.

[0109] In an embodiment of the present application, the recommended configuration parameters include software recommended configuration parameters and / or hardware recommended configuration parameters of the components of the device. Among them, the software configuration parameters may include the size of each batch of data processed when the device batches data, the GPU operation module (including serial mode or parallel mode), the number of CPU threads processing data, etc.; the hardware configuration parameters may include the configuration of the GPU's high-speed serial computer expansion bus standard (peripheral component interconnect express, PCIE), the CPU model, the CPU frequency, the memory capacity, the number of memories, the disk model, the size of the disk array (redundant arrays of independent disks, RAID), etc.

[0110] From the above analysis, it can be seen that the performance of various deep learning models in artificial intelligence systems can be quantified by quantifying the various components of the device running the model, thereby creating a reasonable quantization model for each component, which has a decisive influence on the accuracy of the recommended configuration parameters.

[0111] In the embodiment of the present application, the preset performance model is created based on the relationship between the parameters that affect the performance of the device and the throughput of the device when using the deep learning model. That is to say, creating the preset performance model includes two aspects: the first aspect is to determine the parameters that affect the performance of the device, and the second aspect is how to create the performance model based on the relationship between the parameters that affect the performance of the device and the throughput of the device. These two aspects will be described below.

[0112] In the first aspect, the parameters affecting the performance of the device are determined.

[0113] In the embodiment of the present application, the parameters that affect the performance of the device are some hardware parameters and some software parameters selected from all the hardware parameters and software parameters included in the device after quantitative analysis of the operation process of the operation system of the device, and the device uses the operation system to process the data to be processed. The operation system is, for example, the aforementioned tensor flow, and of course, it can also be other operation systems. The following description takes the operation system of the device as tensor flow as an example.

[0114] The components of the device may include multiple types, for example, the aforementioned GPU, CPU, disk, and memory, etc. These components will generate multiple state characteristics during the operation of the device, and the preset performance model in the embodiment of the present application is created based on these state characteristics. However, not all state characteristics have an impact on the performance of the device. Therefore, in the embodiment of the present application, based on the aforementioned analysis of the calculation process of tensor flow, the working principles of each component of the device, and the computer architecture, the state characteristics in the device are screened, and then the impact of the remaining state characteristics on the performance of the device can be determined through experiments. For example, other state characteristics are fixed and one of the state characteristics is changed. If the performance of the device changes before and after the state characteristic is changed, it means that the state characteristic has an impact on the performance of the device. In this way, the state characteristics that have no impact on the performance of the device can be removed, thereby reducing the complexity of modeling.

[0115] As an example, in the embodiment of the present application, some software parameters that affect the performance of the device may include at least one or more of the following information:

[0116] The unit data volume of data processed by the graphics processing unit GPU of the device;

[0117] The unit data volume of data processed by the central processing unit (CPU) of the device;

[0118] An operation mode of the GPU and / or the CPU, wherein the operation mode includes a parallel model or a non-parallel mode;

[0119] The number of threads used by the CPU;

[0120] The number of threads used by the storage medium of the device.

[0121] As an example, in the embodiment of the present application, some hardware parameters that affect the performance of the device include at least one or more of the following information:

[0122] the type of storage medium of the device;

[0123] the frequency of the central processing unit of the device;

[0124] the amount of memory of the device;

[0125] The number of channels of the memory;

[0126] the amount of the memory;

[0127] the capacity of the memory;

[0128] The architecture of the graphics processing unit GPU of the device.

[0129] Of course, the parameters affecting the performance of the device may also include other contents, such as relevant parameters of the PCIE bus and relevant parameters of the quick path interconnect (QPI) bus. As an example, please refer to Table 1, the parameters affecting the performance of the device may also include the speed, bandwidth and latency of the PCIE, the number of channels and speed of the QPI, etc.

[0130] Table 1

[0131]

[0132] A person skilled in the art may also determine the parameters that affect the performance of the device in other ways, or determine other parameters that affect the performance of the device, or a person skilled in the art may directly use all the hardware parameters and software parameters included in the device to create a performance model, which is not limited here.

[0133] The second aspect: creating a performance model according to the relationship between the parameter affecting the performance of the device and the throughput rate of the device.

[0134] In an embodiment of the present application, the preset performance model may include a load constraint model and / or a computing capacity model, wherein the load constraint model is determined based on the relationship between multiple software parameters affecting the performance of the device and the throughput of the deep learning model, which can be understood as determining the influence of some software parameters among the parameters affecting the performance of the device on the load of the deep learning model that the user needs to run; the computing capacity model is determined based on the relationship between multiple hardware parameters affecting the performance of the device and the performance of each computing component of the device and the correlation between the multiple hardware parameters, which can be understood as determining the influence of some software and hardware parameters among the parameters affecting the performance of the device on the computing capacity of each component.

[0135] The following describes how to create a load constraint model and a computing capacity model.

[0136] 1. How to create a load constraint model:

[0137] In order to quantitatively describe the impact of software parameters on the load of the deep learning model that the user needs to run, the relationship between the throughput rates of various components under different software configurations can be modeled.

[0138] Below, we take GPU as an example to explain the specific modeling process. In the following example, we take the computing system of the device as tensor flow and the P100 graphics card as the graphics card configuration of the device as an example to design experiments and test the impact of various software parameters on the throughput of the deep learning model.

[0139] 1) The impact of batch size on the throughput of deep learning models.

[0140] In order to increase the versatility of the created model, first, it is necessary to test the throughput of all deep learning models that users may use under the same batch size on a single P100 graphics card and sort them; then, adjust the batch size, test the throughput of each model as the batch size changes, and compare the sorting of the throughput of different models under the same batch size with the sorting of the throughput of each model under different batch sizes. In this way, the relationship between the two can be analyzed, and the relationship between the batch size and the throughput of the deep learning model can be obtained.

[0141] For example, see Figure 8A to Figure 8C , is the change of throughput of different deep learning models under different batch sizes, where, Fig. 8A To show the changes in the throughput of the deep learning model Alexnet under different batch sizes, Figure 8B To show the changes in the throughput of the deep learning model nasnet under different batch sizes, Figure 8C The throughput of the deep learning model resnet152 changes under different batch sizes. Figure 8A to Figure 8C As shown in Figure 2, the throughput of each deep learning model increases with the increase of batch size. It can be seen that the throughput of the deep learning model is positively correlated with the batch size. Figure 8A to Figure 8C Further research shows that the throughput of each deep learning model is log-linearly correlated with the batch size. Therefore, based on the above conclusions, it can be concluded that there is a log-linear positive correlation between the deep learning model and the batch size. Figure 8A to Figure 8C In the example, the unit of the batch size on the horizontal axis is 2^n. For example, when the horizontal axis value is 3, it means 2^3.

[0142] 2) The impact of graphics card type on the throughput of deep learning models.

[0143] For each different type of graphics card, we can test the relationship between it and the throughput of different deep learning models under different batch sizes, so as to obtain the relationship between different graphics cards and the throughput of different deep learning models. Then, we can compare the relationship between different graphics cards and the throughput of different deep learning models with the physical parameters of the graphics card itself to analyze the relationship between the graphics card type and the throughput of the deep learning model.

[0144] 3) The impact of GPU parallel scenarios on the throughput of deep learning models.

[0145] The throughput ratio of each deep learning model in different GPU parallel modes is tested, that is, the multi-GPU speedup ratio, so as to obtain the acceleration effect of different parallel modes on different deep learning models, and to determine the relationship between the number of GPUs and the throughput of the deep learning model in different GPU parallel modes.

[0146] For example, see Fig. 9 , which shows the changes in the acceleration ratio of different deep learning models under different GPU parallel modes. Fig. 9 In the example, deep learning models include deep learning model alexnet, deep learning model nasnet and deep learning model resnet152. Fig. 9 As shown in the figure, different deep learning models have different acceleration ratios in different GPU parallel modes, so it can be concluded that different deep learning models are dependent on the parallel mode of the GPU. Furthermore, the relationship between different deep learning models and the number of GPU parallels can also be tested. The specific description is not given here. The test shows that the acceleration ratio of different deep learning models in GPU parallel mode is independent of the number of GPU parallels.

[0147] 4) The impact of GPU server architecture on the throughput of deep learning models.

[0148] For example, when the number of GPUs is even, the maximum throughput of different deep learning models is tested when the GPUs are placed on the same side of the bridge, on both sides, or under the switch PCIE bridge, so as to analyze the impact of different GPU architectures on the throughput of deep learning models.

[0149] After performing the above tests, we can obtain the impact of various software parameters on the throughput of the deep learning model and the maximum throughput of each model, thereby creating a software performance model of the GPU.

[0150] The above method is an example of creating a load constraint model corresponding to a GPU. Those skilled in the art may also use other software parameters to create a load constraint model corresponding to a GPU, which is not limited here.

[0151] In the above method, multiple experiments are designed by controlling variables to test and analyze the relationship between different software configurations and the throughput of the deep learning model, so as to quantitatively describe the relationship between different software parameters and GPU load, thereby establishing a model among the deep learning model, the computing system (such as tensor flow) and the GPU to facilitate subsequent analysis.

[0152] For other components of the device, the corresponding load constraint model can be obtained in a similar manner as described above, which will not be described in detail here. It should be noted that when the load constraint model of other components is obtained in a similar manner as described above, the specific software parameters used can be the same or different. For example, when creating a load constraint model corresponding to the CPU, the impact of the number of threads on the throughput of the deep learning model can also be tested, which will not be described one by one here.

[0153] 2. How to create a computing capability model:

[0154] In order to achieve performance modeling of specified hardware, it is necessary to model the quantitative relationship between different hardware configurations (including hardware parameters and hardware topology) and the performance of various components of the device in the computing system (such as CPU, GPU, memory, disk, etc.). The performance of the component can be represented by the throughput of the component or the running time of the component, for example, the running time of the CPU, the data reading time of the disk, the throughput of the CPU or the throughput of the GPU, etc., which are not limited here.

[0155] When creating a computing power model, first, based on the determined hardware parameters that affect the performance of the device, test the relationship between various hardware parameters and / or software parameters (such as the total amount of data to be processed, batch size, etc.) and the performance of the component. For example, it is possible to determine the change between the GPU's running time and the total amount of data to be processed under the same conditions of other hardware parameters, or it is possible to determine the change between the CPU's running time and the batch size under the same conditions of other hardware parameters, or it is possible to determine the relationship between the number of threads and the CPU's throughput at different CPU frequencies. Among them, the batch size can be understood as, when the deep learning model is used to process images, the batch size is the size of the image processed each time, and the meaning of the batch size varies with different deep learning models, which will not be explained here one by one.

[0156] Specifically, for each hardware parameter, a visual method can be used to test how the performance of the component changes with the total amount of data to be processed or the batch size under the same hardware parameter conditions. For example, the running time of the GPU can be tested with the total amount of data to be processed or the batch size under the same hardware parameter conditions. If the running time of the GPU shows the same change with the change of the batch size when the total amount of data to be processed is different, it indicates that the impact of the batch size on the performance of the GPU is stable, that is, the relationship between the batch size and the running time of the GPU is determined. Alternatively, if the running time of the GPU shows the same change with the change of the size of the data to be processed when the batch size is different, it indicates that the impact of the size of the data to be processed on the performance of the GPU is stable, that is, the relationship between the size of the data to be processed and the running time of the GPU is determined.

[0157] For another example, if the running time of the GPU shows a trend of varying degrees as the batch size changes when the total amount of data to be processed is different, it indicates that the effect of the batch size on the performance of the GPU is unstable, and regression analysis can be used to fit these relationships to obtain fitting formula 1. If the running time of the GPU shows a trend of varying degrees as the size of the data to be processed changes when the batch size is different, it indicates that the effect of the size of the data to be processed on the performance of the GPU is unstable, that is, the relationship between the size of the data to be processed and the running time of the GPU is uncertain, and these relationships are fitted to obtain fitting formula 2. Among them, the parameters in fitting formula 1 and fitting formula 2 are different, which indicates that the size of the data to be processed is correlated with the batch size and will jointly affect the final running time of the GPU.

[0158] Then, the total amount of data to be processed can be fixed, and the performance of the component can be tested with different hardware parameter settings, as the batch size changes. Alternatively, the batch size can be fixed, and the performance of the component can be tested with different hardware parameter settings, as the performance of the component can be tested with different hardware parameter settings, as the performance of the component (e.g., running time) does not change significantly with the total amount of data to be processed or the batch size under different hardware parameter settings, indicating that the change in the hardware parameters does not affect the performance of the component. This means that if these relationships are fitted using regression analysis, the parameters in the fitting formula obtained are similar. Conversely, if the performance of the component is different with the size of the data to be processed or the batch size under different hardware parameter conditions, indicating that the hardware parameters will affect the performance of the component.

[0159] Based on the above analysis, please refer to Fig.10, which is a flowchart of an example of how to create a computing capability model. Fig.10 As shown, a certain hardware parameter and / or software parameter can be selected as an independent variable, and the relationship between the parameter and the performance of the component can be fitted through regression analysis to obtain a fitting formula corresponding to the parameter. For example, parameter 1 is selected, and the relationship between parameter 1 and the running time of the component is determined through regression analysis, so as to obtain a fitting formula 1 for the running time of the component and parameter 1. Then, according to the obtained fitting formula, the relationship between the parameter in the fitting formula and the remaining hardware parameters and / or software parameters is further determined. For example, after determining fitting formula 1, the relationship between the parameter in fitting formula 1 and parameter 2 is determined, so as to obtain a fitting formula 2 including the parameters of fitting formula 1 and parameter 2 according to the relationship. In this way, a parameter is specified in each layer by layer analysis, and then the relationship between the parameter and the formula parameter of the upper layer fitting is analyzed. Repeat this process until all parameters are analyzed. For example, according to the relationship between the parameter in the fitting formula n-1 and parameter n, a calculation formula with all parameters as independent variables and the running time of the component as the dependent variable is obtained, and the calculation formula can be understood as the computing capacity model of the component.

[0160] Use Fig.10 In the manner shown, the computing capacity models of all the required components are created separately.

[0161] It can be seen that in the above technical solution, the influence of different hardware parameters and / or software parameters on the performance of the component is analyzed and fitted layer by layer through correlation analysis, visualization analysis, and regression analysis, thereby achieving the purpose of quantitatively describing the relationship between different hardware parameters and / or software parameters and the performance of the component in the form of formulas. These formulas can then be used to theoretically infer the changes in the throughput of the deep learning model under different hardware parameter configurations.

[0162] In the above manner, a preset performance model corresponding to each component of the device can be obtained. In the embodiment of the present application, the preset performance model includes but is not limited to at least one or more of the following models: a performance model of a GPU, a performance model of a CPU, a performance model of a storage medium, and a performance model of a memory. Of course, those skilled in the art can also use the requirements to obtain performance models of other components, which is not limited here.

[0163] When it is necessary to obtain the recommended configuration parameters of the device, the aforementioned preset performance model can be used for calculation. It should be noted that the load constraint model and the computing capacity model can be used separately. For example, the recommended configuration parameters of the device can be determined only according to the load constraint model; or, the two can be used in combination to determine the recommended configuration parameters of the device, which is not limited here. As an example, in an embodiment of the present application, the specific steps of calculating the demand information using the preset performance model to obtain the recommended configuration parameters of the device include: first, inputting the demand information into the load constraint model to obtain the software recommended configuration parameters and hardware recommended configuration parameters of the first component of the device; then, according to the software recommended configuration parameters, hardware recommended configuration parameters and the computing capacity model of the first component, the software recommended configuration parameters and hardware recommended configuration parameters of other components of the device are obtained. It should be noted that the first component can be one of the components included in the device. For example, if the user needs to optimize the GPU performance, the first component can be the GPU; if the user needs to optimize the CPU performance, the first component can be the CPU, which is not limited here.

[0164] Specifically, the preset performance model may include only a performance model for a certain component, or may include performance models for multiple components. When the preset performance model includes performance models for multiple components, after obtaining the user's demand information, the parameters required by each component will first be input into the corresponding performance model according to the performance models corresponding to different components. For example, the information of the deep learning model that the user needs to use in the demand information (including the name, type and operation mode of the deep learning model, etc.), the desired GPU server architecture, batch size and other information can be used as the input of the GPU performance model, and the preset GPU performance model is used to calculate the theoretical maximum value of the GPU throughput and its corresponding software recommended configuration parameters and hardware recommended configuration parameters under the condition of meeting the demand information. For another example, the operation mode of the deep learning model in the demand information, the information of the data to be processed (such as the original size of the data to be processed, the size of the data to be processed after preprocessing, etc.), the batch size, the frequency of the CPU, the number of CPU cores and other information are used as the input of the CPU performance model, and the preset CPU performance model is used to calculate the theoretical maximum value of the CPU throughput under given CPU parameters and the corresponding software recommended configuration parameters and hardware recommended configuration parameters of the CPU. For another example, the size of the data to be processed, the reading thread of the data to be processed, the type of disk, the number of disks and other information in the demand information are used as inputs of the disk performance model, and the preset disk performance model is used to calculate the theoretical maximum value of the disk throughput under the conditions of given disk parameters and the corresponding disk software recommended configuration parameters and hardware recommended configuration parameters. For another example, the size of the data to be processed, the parameter size of the deep learning model, the memory capacity, the number of memories, the memory frequency and other information in the demand information are used as inputs of the memory performance model, and combined with the user's demand for high memory bandwidth and the preset memory performance model, the theoretical maximum value of the memory throughput under the conditions of given memory parameters and the corresponding memory software recommended configuration parameters and hardware recommended configuration parameters are calculated, thereby obtaining the GPU, CPU, disk and memory software and hardware recommended configuration parameters that meet the user's needs.

[0165] As an example, see Fig.11, the user's demand information may include the name of the deep learning model that the user needs to use, the number of GPUs, the model of GPUs, the technical mode of the deep learning model (the mode used for training or the mode used for inference), whether it is an NVIDIA link (NVlink) topology, the image size, the number of images, the image size, whether it is a technology file (TF) format data, the number of sockets, the number of memories supported by the socket, the maximum number of channels supported by the socket, and the expected disk write time. Then the demand information is input into the performance model corresponding to each component to obtain the recommended software and hardware configuration parameters corresponding to each component. For example, in Fig.11 In the example, the name of the deep learning model that the user needs to use, the number of GPUs, the model of the GPU, the technical mode of the deep learning model, and whether it is an NVlink topology are input as GPU-related parameters into the preset GPU performance model, thereby obtaining the recommended configuration parameter values ​​of the GPU batch size, the GPU parallel mode, and the GPU PCIE bridge; the image size, the number of images, the image size, and whether it is TF format data are input as data-related parameters into the preset CPU performance model, thereby obtaining the recommended configuration parameter values ​​of the CPU model, the GPU frequency, and the number of processing threads; the aforementioned GPU-related parameters, data-related parameters, and memory-related parameters (including the number of sockets, the number of memories supported by the socket, and the maximum number of channels supported by the socket) are input into the preset memory performance model, thereby obtaining the recommended configuration parameter values ​​of the number of memories and the memory capacity; the aforementioned data-related parameters and the expected disk write time are input into the preset disk performance model, thereby obtaining the recommended configuration parameter values ​​of the disk model, the disk size, and the number of read threads.

[0166] S503: Output feedback information.

[0167] As an example, the feedback information includes the recommended configuration parameters determined above.

[0168] For example, using Fig.11 In the example shown, after the recommended configuration parameters are determined, the recommended configuration parameters can be displayed on the display screen of the device executing the method, such as Fig.12 Alternatively, if the device executing the method stores the user's contact information, such as the user's mobile phone number, the determined recommended configuration parameters may be sent to the user's mobile phone; or, the recommended configuration parameters may be output by voice, which is not limited here.

[0169] In a possible implementation, the software and hardware recommended configuration parameters obtained according to the preset performance model may be a parameter set, that is, including multiple groups of parameters that meet user needs. For example, the recommended configuration parameters for the GPU in the obtained software recommended configuration parameters include software recommended parameters 1 and software recommended parameters 2. Correspondingly, the recommended configuration parameters for the CPU include software recommended parameters 1 of the CPU corresponding to software recommended parameters 1 of the GPU, and software recommended parameters 2 of the CPU corresponding to software recommended parameters 2 of the GPU. The same is true for memory and disk, which will not be repeated here. In this case, the method in the embodiment of the present application also includes:

[0170] S504: Determine configuration parameters that meet the conditions from the recommended configuration parameters according to preset rules.

[0171] In the embodiment of the present application, the configuration parameters that meet the conditions can be understood as the optimal configuration parameters, or can be the configuration parameters that the performance of the device reaches a certain preset threshold, which is not limited here. For the convenience of explanation, the configuration parameters that meet the conditions are taken as the optimal configuration parameters as an example for explanation below. The preset rule is a rule that the performance of the second component of the device is optimal, and the second component is one of the components included in the device. For example, it can be a rule that satisfies the optimal CPU performance, or a rule that satisfies the optimal GPU performance, or a rule that satisfies the optimal memory performance, etc., which are not explained one by one here. As an example, the recommended configuration parameters of software and hardware such as memory, CPU, disk, etc. obtained according to the preset performance model can be screened to meet the optimal performance rule of the GPU, and the final recommended configuration parameters of software and hardware that meet the user needs and the optimal performance of the GPU are given. It should be noted that the first component and the second component can be the same or different, which is not limited here.

[0172] For example, see Fig.13 After obtaining the recommended software and hardware configuration parameters according to the preset performance model, the optimal software and hardware configuration parameters of the GPU that can achieve the maximum throughput can be screened out from the aforementioned recommended software and hardware configuration parameters according to the rules that meet the GPU's optimal performance. Finally, based on the obtained optimal software and hardware configuration parameters of the GPU, as well as the GPU's maximum throughput, batch size, image preprocessing size and other information, the optimal software and hardware configuration parameters of the CPU, disk and memory that can meet the GPU configuration are inferred.

[0173] In this case, the device executing the method can also output the optimal configuration parameters. For example, the optimal configuration parameters can be displayed on a display screen or input by voice, etc. The specific output method is similar to step S503 and will not be repeated here.

[0174] In a possible implementation, in order to facilitate the user to more clearly determine how to update the configuration parameters of the device, the method in the embodiment of the present application further includes:

[0175] S505: Acquire configuration parameters of the device in the current state, compare the recommended configuration parameters with the configuration parameters in the current state, and obtain optimization information for the configuration parameters of the device.

[0176] After obtaining the recommended configuration parameters of the device according to the preset performance model, the configuration parameters of the device in the current state can also be obtained, and the recommended configuration parameters are compared with the configuration parameters in the current state to obtain optimization information for the configuration parameters of the device, and the optimization information includes the identification of the components that do not meet the demand information, for example, the components that do not meet the user's demand information can be included, or the optimization information can include modification suggestions for the components. In other words, the user's existing configuration can also be detected and analyzed to find out the resource shortage or resource redundancy in the current environment.

[0177] For example, see Fig.14The configuration parameters of the device in the current state may include information such as the model of GPU, the number of GPUs, the model of CPU, the frequency of CPU, the number of CPU processing threads, the number of memories, the capacity of memory, the model of disk, the size of disk, and the number of disk reading threads. Then, the recommended software and hardware configuration parameters of each component are compared with the configuration parameters in the current state. For example, the recommended software and hardware configuration parameters of GPU are analyzed and compared with the model of GPU and the number of GPUs in the current state of the device, so as to obtain optimization information about GPU, and the optimization information may include the model of GPU, the number of GPU, the batch size of GPU, the parallel mode, and the modification suggestion of PCIE bridge; the recommended software and hardware configuration parameters of CPU are compared with the model of CPU, the frequency of CPU, and the C The recommended configuration parameters of the software and hardware of the memory are analyzed and compared with the number of PU processing threads, so as to obtain the optimization information about the CPU, and the optimization information may include the information of changing the model of the CPU, increasing or decreasing the frequency of the CPU, and increasing or decreasing the number of CPU processing threads; the recommended configuration parameters of the software and hardware of the memory are analyzed and compared with the number of memories and the capacity of the memory in the current state of the device, so as to obtain the optimization information about the memory, and the optimization information may include the information of increasing or decreasing the number of memories and increasing or decreasing the capacity of the content; the recommended configuration parameters of the software and hardware of the disk are analyzed and compared with the model of the disk of the device in the current state, the size of the disk, and the number of disk read threads, so as to obtain the optimization information about the disk, and the optimization information may include the information of changing the model of the disk, increasing or decreasing the size of the disk, and increasing or decreasing the number of disk read threads. Of course, the optimization information may also include adjusting the current configuration parameters of a component to a specific parameter value. For example, the optimization information for memory may include adjusting the number of memories from the current value 1 to the value 2, or adjusting the capacity of the memory from the current capacity 1 to the capacity 2, wherein the value 2 and the capacity 2 may be calculated based on the recommended configuration parameters of the software and hardware of the memory. The optimization information of other components may also be processed in the same manner, which will not be described one by one here.

[0178] In this case, the device executing the method can also output the optimization information. For example, the optimization information can be displayed on a display screen or input by voice, etc. The specific output method is similar to step S503 and will not be repeated here.

[0179] In addition, in the embodiment of the present application, the method further includes:

[0180] S506. Obtain first operating data of the component of the device under the current configuration parameters, determine the working state of the component according to the current configuration parameters of the component and the first operating data, and determine configuration parameters that meet the conditions from the recommended configuration parameters of the device according to the working state of the component.

[0181] In the embodiment of the present application, the working state includes the degree of influence of the component on the performance of the device, or the working state can also be understood as a performance bottleneck that may exist in the device in the current state.

[0182] Specifically, when the device is in operation under the current configuration parameters, the monitoring software is used to monitor the first operating data of each component of the device in real time. Then, according to the current configuration parameters of the device, the collected first operating data is statistically analyzed to output the performance bottlenecks that may exist in the device in the current state.

[0183] For GPU components, the operating data of the GPU in the operating environment is collected within the preset monitoring time, such as the floating utilization rate of the GPU, the existing occupancy rate and other information. Combined with the configuration parameters, analysis algorithms and manual experience of the GPU in the current state, it is judged whether the current GPU is load balanced, whether it is fully loaded, whether the model can be upgraded, etc., so as to infer the current working status of the GPU or possible performance bottlenecks.

[0184] For CPU components, we use mpstat collected data and iostat CPU-related data as input, and extract field information related to the CPU running status in the collected data. Through statistical processing of the extracted information, we obtain statistical results such as maximum value, minimum value, and mean value. Then, we combine the statistical results between different CPUs with the statistical results of the same CPU on the timeline to extract higher-level information, such as the proportion of CPU working time, the proportion of CPU working, busy, or idle. Finally, we determine the current working status of the CPU or possible performance bottlenecks based on the pre-set threshold, the current configuration parameters of the CPU, and the calculated analysis results.

[0185] For the memory component, the data collected by the free() function and pcm-memory are used as input, and the field information related to memory capacity and bandwidth in the collected data is extracted. Based on the preliminary statistics of the data collected by the free() function, such as the maximum and minimum values ​​of the occupied memory, the change in memory capacity in the time dimension is further extracted to reflect the changes in the user program's memory occupation; then, combined with the pre-set threshold and the configuration parameters of the memory in the current state, it is judged whether the memory capacity is abnormal and whether it can effectively support the operation of the user program. After that, based on the data information collected by pcm-memory, the bandwidth information of different sockets at each moment is extracted, and the theoretical bandwidth peak value is calculated based on the memory information of the operating environment, that is, the standard frequency, the number of data bits, the number of memory channels, etc.; then, the working state of the memory during the program operation or the possible performance bottleneck is judged by the ratio of the real-time bandwidth to the theoretical peak value.

[0186] For disk components, the data collected by iostat is used as input, and field information related to the disk operation status in the collected data is extracted. Through statistical processing of the extracted information, the data profile of each disk during the operation of the user program is obtained, such as the maximum and minimum values ​​of the number of I / O requests processed, the proportion of disk working time, and other information; then, combined with the pre-set relevant thresholds and the configuration parameters of the disk in the current state, the current working status of the disk or possible performance bottlenecks are judged.

[0187] In addition, other components can also be analyzed in the embodiment of the present application. For example, for the topology of the GPU server, the ultra path interconnect (UPI) information and PCIE information can be obtained, and the uplink and downlink traffic of each port during the monitoring time is extracted, and the peak and average peak values ​​of the uplink and downlink traffic of each port are extracted and the abnormal values ​​are filtered out, and the current traffic of each port is analyzed in turn. Whether it is too large. At the same time, according to the different architectures of the GPU server, the ports related to the different architectures are analyzed, and it is judged whether it is necessary to switch the topology of the server by combining algorithm calculation and manual experience. For another example, the information of the PCIE switch (switch) and the UPI information can be combined, and the peak occupancy rate, average occupancy rate and other features can be extracted by extracting the occupancy rate of each UPI during the monitoring time, and combining the algorithm and manual experience to analyze whether the current UPI is overloaded. Alternatively, it can be combined with the topology information of the current GPU server and the port traffic size of the PCIE Switch and manual experience to determine whether the topology of the server should be switched.

[0188] Of course, the analysis of the working status of each component of the device may not be limited to the above content and is not limited here.

[0189] As an example, see Fig.15 , the monitoring script can be used to obtain the operating data of each component of the device in the real operating environment. For example, the operating data of the CPU may include mpstat information, including the CPU occupancy information of the device's operating system, the CPU occupancy information of the deep learning model, the CPU idle state and IO waiting time, etc.; the operating data of the memory may include the size of the used memory, the remaining memory size, the cache size, the bandwidth of each socket, the total bandwidth of the system, the frequency of the memory and the number of data bits, etc.; the operating data of the disk may include the rate of reading / writing data, the average time of each read operation (r_await), the average time of each write operation (w_await), etc.; the operating data of the GPU may include: the model, number, floating utilization rate, switch port traffic size and upstream and downstream traffic, UPI channel occupancy percentage, etc. Then, combined with the current configuration parameters of each component, the operating data of each component is analyzed separately to obtain the analysis results and working status corresponding to each component. For example, for the CPU component, the analysis results of the CPU can include: CPU usage, such as the time in working state during the running of the program, the number of CPUs, CPU occupancy rate, etc., and then the working state of the CPU can be obtained: whether the CPU frequency is insufficient or redundant, whether the number of processing threads is insufficient or redundant; for the memory component, the analysis results of the memory can include: memory usage, such as whether the memory occupancy is too large during the running of the program, and then the working state of the memory can be obtained: whether the memory capacity is insufficient or redundant, whether the memory bandwidth is empty or busy; for the disk component, the analysis results of the disk can include: disk usage, such as whether the IO pressure of the disk is too high during the running of the program , whether the waiting time of the data processing queue is too long, etc., and then the working status of the disk can be obtained: whether the disk model needs to be updated, whether the disk size is redundant or insufficient, whether the number of read threads is redundant or insufficient; for the PCIE switch component, the analysis results that can be obtained include: whether the traffic of the ports of each switch is too large or too small, etc., and then the working status of the PCIE switch can be obtained: whether the topology of the PCIE switch needs to be switched; for the GPU component, the analysis results of the GPU can be obtained including: the usage of the GPU, such as whether the GPU video memory occupancy is insufficient, whether the GPU load is unbalanced, etc., and then the working status of the GPU can be obtained: whether the GPU load needs to be increased or reduced, whether the GPU model needs to be changed, etc. Further, the working status of each of the above components can also be counted to obtain a final statistical result, for example, the maximum value and average value of the memory occupancy during the program running process, etc., which will not be explained one by one here.

[0190] After determining the working status of each component of the device, the device executing the method can output the working status of each component, and the specific output method is similar to step S503. Alternatively, the configuration parameters that meet the conditions can also be determined from the recommended configuration parameters of the device according to the working status of each component. For example, taking the configuration parameters that meet the conditions as the optimal configuration parameters as an example, if it is determined that the CPU of the device is the performance bottleneck of the device, the preset rules for determining the optimal configuration parameters can be set as the rules with the best performance of the CPU of the device, and then according to the preset rules, the optimal configuration parameters are determined from the multiple sets of recommended configuration parameters obtained. The specific process is similar to step S504 and will not be repeated here.

[0191] S507: Obtain second operating data of the components of the device under the recommended configuration parameters, and determine whether to adjust the recommended configuration parameters according to the second operating data.

[0192] In the embodiment of the present application, after obtaining the recommended configuration parameters of the device, the components of the device can be set according to the recommended configuration parameters, and then the operation data of the device can be monitored to obtain the second operation data of the device under the recommended configuration parameters to determine whether the recommended configuration parameters meet the user's needs. The specific monitoring method is similar to that in step S506 and will not be repeated here.

[0193] After obtaining the second operating data of the device under the recommended configuration parameters, the recommended method in this application can be fed back. For example, if the second operating data of the device indicates that all components of the device are in a normal state, the recommended configuration parameters can be maintained; if the second operating data of the device indicates that some components are already in an abnormal state (for example, the load is large, etc.), the recommended configuration parameters can be adjusted. For example, if the second operating data indicates that the current load of the GPU of the device is large, it means that the configuration of the GPU is low, and the configuration parameters of the GPU can be changed, such as using a GPU with stronger processing power. The processing method for the recommended configuration parameters of other components is similar to that of the GPU, and will not be explained one by one here.

[0194] Alternatively, the preset performance model may be adjusted according to the second operation data. For example, if the second operation data of the device indicates that more than a preset number of components are in an abnormal state, it means that the recommended configuration parameters obtained by the preset performance model may not meet the usage requirements under the deep learning model. Therefore, the preset performance model may be re-determined in the manner of step S502 in the embodiment of the present application to improve the accuracy of the method.

[0195] Of course, those skilled in the art may also make other adjustments to the recommended configuration parameters or the preset performance model according to the second operating data, which is not limited here.

[0196] After the recommended configuration parameters are adjusted, the adjusted recommended configuration parameters may also be displayed on a display screen or output via voice. The specific output method is similar to step S503 and will not be described in detail herein.

[0197] It should be noted that steps S503 to S507 are optional steps, that is, they are not required to be performed. Figure 5 Indicated by dotted line.

[0198] In addition, it should be noted that in the above description, the configuration parameter recommendation method is described by taking a single device as an example. The recommendation method can also be applied to the scenario of a device cluster. For example, starting from the analysis of the configuration parameters of each individual device, combined with the decentralization idea, the configuration parameters for the device cluster are analyzed and recommended. Of course, it can also be applied in other scenarios, which is not limited here.

[0199] In the above embodiments provided by the present application, in order to implement the functions in the methods provided by the above embodiments of the present application, the device may include a hardware structure and / or a software module, and implement the above functions in the form of a hardware structure, a software module, or a hardware structure plus a software module. Whether a function of the above functions is executed in the form of a hardware structure, a software module, or a hardware structure plus a software module depends on the specific application and design constraints of the technical solution.

[0200] Fig.16 The structure diagram of a device configuration parameter recommendation device 1600 is shown. The device configuration parameter recommendation device 1600 can be a hardware structure, a software module, or a hardware structure plus a software module. The device configuration parameter recommendation device 1600 can be implemented by a chip system. In the embodiment of the present application, the chip system can be composed of a chip, or it can include a chip and other discrete devices.

[0201] The device configuration parameter recommendation apparatus 1600 may include an acquisition module 1601 and a recommendation module 1602 .

[0202] The acquisition module 1601 can be used to execute Figure 5 Step S501, step S505 and step S506 in the illustrated embodiment, and / or other processes for supporting the technology described herein.

[0203] The recommendation module 1602 can be used to perform Figure 5 Steps S502 to S506 in the illustrated embodiment, and / or other processes for supporting the technology described herein.

[0204] Among them, all relevant contents of each step involved in the above method embodiment can be referred to the functional description of the corresponding functional module, and will not be repeated here.

[0205] Fig.16 The division of modules in the illustrated embodiments is schematic and is only a logical function division. There may be other division methods in actual implementation. In addition, each functional module in each embodiment of the present application may be integrated into one processor, or may exist physically separately, or two or more modules may be integrated into one module. The above-mentioned integrated modules may be implemented in the form of hardware or in the form of software functional modules.

[0206] like Fig.17 The device configuration parameter recommendation apparatus 1700 provided in the embodiment of the present application is shown, wherein the device configuration parameter recommendation apparatus 1700 may be a chip system. In the embodiment of the present application, the chip system may be composed of a chip, or may include a chip and other discrete devices.

[0207] The device configuration parameter recommendation device 1700 includes at least one processor 1720, which is used to implement or support the device configuration parameter recommendation device 1700 to implement the device configuration parameter recommendation method provided in the embodiment of the present application. Exemplarily, the processor 1720 can obtain the recommended configuration parameters of the device according to the preset performance model and demand information. For details, please refer to the detailed description in the method example, which will not be repeated here.

[0208] The device 1700 for recommending configuration parameters of a device may also include at least one memory 1730, including a memory for storing program instructions and / or data. The memory 1730 is coupled to the processor 1720. The coupling in the embodiment of the present application is an indirect coupling or communication connection between devices, units or modules, which may be electrical, mechanical or other forms, for information exchange between devices, units or modules. The processor 1720 may operate in conjunction with the memory 1730. The processor 1720 may execute program instructions stored in the memory 1730. At least one of the at least one memory may be included in the processor.

[0209] The device configuration parameter recommendation apparatus 1700 may further include a communication interface 1710 for enabling various components in the device configuration parameter recommendation apparatus 1700 to communicate via a transmission medium.

[0210] The specific connection medium between the communication interface 1710, the processor 1720 and the memory 1730 is not limited in the embodiment of the present application. Fig.17 The memory 1730, the processor 1720 and the communication interface 1710 are connected via a bus 1740. Fig.17 The connections between the other components are shown in bold lines, which are only for illustration and are not intended to be limiting. The bus can be divided into an address bus, a data bus, a control bus, etc. For ease of representation, Fig.17 Only one thick line is used in the diagram, but this does not mean that there is only one bus or only one type of bus.

[0211] In the embodiment of the present application, the processor 1720 may be a general-purpose processor, a digital signal processor, an application-specific integrated circuit, a field programmable gate array or other programmable logic device, a discrete gate or transistor logic device, or a discrete hardware component, and may implement or execute the methods, steps, and logic block diagrams disclosed in the embodiment of the present application. The general-purpose processor may be a microprocessor or any conventional processor, etc. The steps of the method disclosed in the embodiment of the present application may be directly embodied as being executed by a hardware processor, or may be executed by a combination of hardware and software modules in the processor.

[0212] In the embodiment of the present application, the memory 1730 may be a non-volatile memory, such as a hard disk drive (HDD) or a solid-state drive (SSD), etc., or a volatile memory (volatile memory), such as a random access memory (RAM). The memory is any other medium that can be used to carry or store the desired program code in the form of instructions or data structures and can be accessed by a computer, but is not limited thereto. The memory in the embodiment of the present application may also be a circuit or any other device that can implement a storage function, for storing program instructions and / or data.

[0213] The present application also provides a computing device, which includes a memory and a processor, wherein the memory stores program code, and the processor is used to access the code in the memory to execute Figure 5 The method in the embodiment shown.

[0214] The present application also provides a computer-readable storage medium including instructions, which, when executed on a computer, causes the computer to execute Figure 5 The method in the embodiment shown.

[0215] The present application also provides a computer program product, including instructions, which, when executed on a computer, causes the computer to execute Figure 5 The method in the embodiment shown.

[0216] The embodiment of the present application provides a chip system, which includes a processor and may also include a memory, for implementing the function of the device configuration parameter recommendation device in the aforementioned method. The chip system may be composed of a chip, or may include a chip and other discrete devices.

[0217] In the method provided in the embodiment of the present application, it can be implemented in whole or in part by software, hardware, firmware or any combination thereof. When implemented using software, it can be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, the process or function described in the embodiment of the present application is generated in whole or in part. The computer can be a general-purpose computer, a special-purpose computer, a computer network, a network device, a user device or other programmable device. The computer instructions may be stored in a computer-readable storage medium, or transmitted from one computer-readable storage medium to another computer-readable storage medium. For example, the computer instructions may be transmitted from one website, computer, server or data center to another website, computer, server or data center via wired (e.g., coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) means. The computer-readable storage medium may be any available medium that can be accessed by a computer or a data storage device such as a server or data center that includes one or more available media integrated therein. The available medium may be a magnetic medium (e.g., a floppy disk, a hard disk, a magnetic tape), an optical medium (e.g., a digital video disc (DVD)), or a semiconductor medium (e.g., an SSD), etc.

Claims

1. A method for recommending configuration parameters of a device, characterized in that: include: Obtaining user demand information for a device, wherein the demand information includes information about a deep learning model that the user needs to use; According to a preset performance model and the demand information, recommended configuration parameters of the device are obtained. The preset performance model is created based on the relationship between parameters affecting the performance of the device and the throughput of the device when using the deep learning model. The recommended configuration parameters include software recommended configuration parameters or hardware recommended configuration parameters of the device.

2. The method according to claim 1, characterized in that: The parameters affecting the performance of the device are some hardware parameters and some software parameters selected from all hardware parameters and software parameters included in the device after quantitative analysis of the operation process of the operation system of the device. The device uses the operation system to process the data to be processed.

3. The method according to claim 1 or 2, characterized in that: The preset performance model includes a load constraint model, wherein the load constraint model is determined based on the relationship between multiple software parameters that affect the performance of the device and the throughput rate of the deep learning model.

4. The method according to any one of claims 1 to 3, characterized in that The preset performance model includes a computing capability model, wherein the computing capability model is determined based on the relationship between multiple hardware parameters and / or multiple software parameters that affect the performance of the device and the performance of each computing component of the device, and the correlation between the multiple hardware parameters, and the performance of the computing component includes the running time of the computing component or the throughput rate of the computing component.

5. The method according to claim 3, characterized in that: According to the preset performance model and the demand information, the recommended configuration parameters of the device are obtained, including: The demand information is input into a load constraint model to obtain software recommended configuration parameters and hardware recommended configuration parameters of a first component of the device, where the first component is one of the components included in the device.

6. The method according to claim 5, characterized in that The preset performance model also includes a computing capability model, and obtaining the recommended configuration parameters of the device according to the preset performance model and the demand information also includes: According to the software recommended configuration parameters of the first component, the hardware recommended configuration parameters and the computing capability model, the software recommended configuration parameters and the hardware recommended configuration parameters of other components of the device are obtained, and the other components are components included in the device except the first component.

7. The method according to any one of claims 1 to 6, characterized in that The method further comprises: According to a preset rule, configuration parameters that meet the conditions are determined from the recommended configuration parameters of the device, and the preset rule is a rule based on the optimal performance of the second component of the device, and the second component is one of the components included in the device.

8. The method according to any one of claims 1 to 7, characterized in that The method further comprises: Obtaining configuration parameters of the device in the current state; The recommended configuration parameters are compared with the configuration parameters in the current state to obtain optimization information for the configuration parameters of the device, wherein the optimization information includes identification of components that do not meet the requirement information and / or modification suggestions for the configuration parameters of the components.

9. The method according to any one of claims 1 to 8, characterized in that The method further comprises: Acquire first operating data of a component of the device under current configuration parameters; Determining a working state of the component according to current configuration parameters of the component and the first operating data, the working state including the degree of influence of the component on the performance of the device; According to the working state of the component, configuration parameters that meet the conditions are determined from the recommended configuration parameters of the device.

10. The method according to any one of claims 1 to 9, characterized in that The method further comprises: Acquire second operating data of the component of the device under the recommended configuration parameters; Determine whether to adjust the recommended configuration parameters according to the second operating data.

11. The method according to any one of claims 1 to 10, characterized in that The method further comprises: Output feedback information, where the feedback information includes recommended configuration parameters of the device.

12. A device for recommending configuration parameters of a device, characterized in that: include: An acquisition module, used to acquire user demand information for a device, wherein the demand information includes information about a deep learning model that the user needs to use; A recommendation module is used to obtain recommended configuration parameters of the device according to a preset performance model and the demand information, wherein the preset performance model is created based on the relationship between parameters affecting the performance of the device and the throughput of the device when using the deep learning model, and the recommended configuration parameters include software recommended configuration parameters or hardware recommended configuration parameters of the device.

13. The device according to claim 12, characterized in that The parameters affecting the performance of the device are some hardware parameters and some software parameters selected from all hardware parameters and software parameters included in the device after quantitative analysis of the operation process of the operation system of the device. The device uses the operation system to process the data to be processed.

14. The device according to claim 12 or 13, characterized in that The preset performance model includes a load constraint model, wherein the load constraint model is determined based on the relationship between multiple software parameters that affect the performance of the device and the throughput rate of the deep learning model.

15. The device according to any one of claims 12 to 14, characterized in that The preset performance model includes a computing capability model, wherein the computing capability model is determined based on the relationship between multiple hardware parameters and / or multiple software parameters that affect the performance of the device and the performance of each computing component of the device, and the correlation between the multiple hardware parameters, and the performance of the computing component includes the running time of the computing component or the throughput rate of the computing component.

16. The device according to claim 14, characterized in that The recommendation module is specifically used for: The demand information is input into a load constraint model to obtain software recommended configuration parameters and hardware recommended configuration parameters of a first component of the device, where the first component is one of the components included in the device.

17. The device according to claim 16, characterized in that The preset performance model also includes a computing capability model, and the recommendation module is further used for: According to the software recommended configuration parameters of the first component, the hardware recommended configuration parameters and the computing capability model, the software recommended configuration parameters and the hardware recommended configuration parameters of other components of the device are obtained, and the other components are components included in the device except the first component.

18. The device according to any one of claims 12 to 17, characterized in that The recommendation module is also used to: According to a preset rule, configuration parameters that meet the conditions are determined from the recommended configuration parameters of the device, and the preset rule is a rule based on the optimal performance of the second component of the device, and the second component is one of the components included in the device.

19. The device according to any one of claims 12 to 18, characterized in that The recommendation module is also used to: Obtaining configuration parameters of the device in the current state; The recommended configuration parameters are compared with the configuration parameters in the current state to obtain optimization information for the configuration parameters of the device, wherein the optimization information includes identification of components that do not meet the requirement information and / or modification suggestions for the configuration parameters of the components.

20. The device according to any one of claims 12 to 19, characterized in that The recommendation module is also used to: Acquire first operating data of a component of the device under current configuration parameters; Determining a working state of the component according to current configuration parameters of the component and the first operating data, the working state including the degree of influence of the component on the performance of the device; According to the working state of the component, configuration parameters that meet the conditions are determined from the recommended configuration parameters of the device.

21. The device according to any one of claims 12 to 20, characterized in that The recommendation module is also used to: Acquire second operating data of the component of the device under the recommended configuration parameters; Determine whether to adjust the recommended configuration parameters according to the second operating data.

22. The device according to any one of claims 12 to 21, characterized in that The device also includes: The output module is used to output feedback information, where the feedback information includes recommended configuration parameters of the device.

23. A computing device, characterized in that The computing device comprises a processor and a memory, wherein the memory is used to store program codes, and the processor is used to execute the program codes to implement the method according to any one of claims 1 to 11.

Citation Information

Patent Citations

  • Deep neural network workload scheduling

    US20190266015A1