Methods, devices, and intelligent driving equipment for accessing computing resources

By centrally developing a set of parallel acceleration algorithms on a central computing platform and dynamically scheduling computing resources according to computing requests, the problems of low computing resource utilization and high development costs are solved, achieving more efficient resource utilization and development.

CN118525269BActive Publication Date: 2026-04-03YINWANG INTELLIGENT TECHNOLOGIES CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-12-14
Publication Date
2026-04-03

AI Technical Summary

Technical Problem

In existing technologies, dividing the computing resources of a central computing platform into different business domains results in low utilization of computing resources and high development efficiency and cost of parallel acceleration algorithms.

Method used

By centrally developing a set of parallel acceleration algorithms on a central computing platform and dynamically scheduling computing resources according to computing requests, multiple business domains can share computing resources, avoiding redundant development.

Benefits of technology

It improves the utilization rate of computing resources and the development efficiency of parallel acceleration algorithms, while reducing development costs.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN118525269B_ABST
    Figure CN118525269B_ABST
Patent Text Reader

Abstract

This application provides a method, apparatus, and intelligent driving device for invoking computing resources. It can be applied to a central computing platform that supports multiple business domains. The central computing platform includes a set of parallel acceleration algorithms and various computing resources, each of which corresponds to N parallel acceleration algorithms, where N is greater than or equal to 1. The method includes: obtaining a computing request initiated by a service to be run in a first business domain, where the first business domain is any one of the multiple business domains; determining the target parallel acceleration algorithm required for the service to be run based on the computing request; invoking the target computing resource corresponding to the target parallel acceleration algorithm from the multiple computing resources; and running the service to be run based on the target computing resource. This application's solution can improve the utilization rate of computing resources on a central computing platform.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of intelligent driving technology, and more specifically, to a method, device, and intelligent driving device for accessing computing resources. Background Technology

[0002] Central computing platforms can integrate computing resources from different business domains, significantly saving resources and costs, and have become the development direction for fields such as intelligent driving, smart homes, and servers. Taking vehicles as an example, a central computing platform can simultaneously provide computing resources for business domains such as intelligent driving, vehicle control, and cockpit.

[0003] Currently, computing resources on the central computing platform are usually divided in advance according to business domains. That is, different business domains correspond to different computing resources, and each business domain can only perform calculations based on the pre-divided computing resources, resulting in low utilization of computing resources. Summary of the Invention

[0004] This application provides a method, apparatus, and intelligent driving device for accessing computing resources, which can improve the utilization rate of computing resources.

[0005] Firstly, a method for invoking computing resources is provided, applied to a central computing platform that supports multiple business domains. The central computing platform includes a set of parallel acceleration algorithms and various computing resources, each of which corresponds to N parallel acceleration algorithms in the set of parallel acceleration algorithms, where N is a positive integer greater than or equal to 1. The method includes: obtaining a computing request initiated by a service to be run in a first business domain, where the first business domain is any one of the multiple business domains; determining the target parallel acceleration algorithm required for the service to be run based on the computing request; invoking the target computing resource corresponding to the target parallel acceleration algorithm from the multiple computing resources; and running the service to be run based on the target computing resource.

[0006] Parallel acceleration algorithms refer to algorithms where each step is calculated synchronously rather than sequentially, thereby improving computation speed.

[0007] Based on the solution proposed in this application, when invoking computing resources, the target parallel acceleration algorithm required for the execution of the service to be run can be determined first through the computing requests of the service to be run. Then, according to the correspondence between the target parallel acceleration algorithm and computing resources, the target computing resource corresponding to the target parallel acceleration algorithm can be invoked from various computing resources on the central computing platform. Based on this invocation method, various computing resources on the central computing platform can be shared by multiple business domains, rather than being dedicated to a single business domain, thereby improving the utilization rate of computing resources.

[0008] In addition, in traditional solutions, based on pre-allocated computing resources, each business domain usually develops and deploys parallel acceleration algorithms independently. This process involves a lot of repetitive development, resulting in low development efficiency and high development costs for parallel acceleration algorithms.

[0009] This application, through the centralized development of parallel acceleration algorithms, configures parallel acceleration algorithms required by multiple business domains into a set of parallel acceleration algorithms. In actual use, the target parallel acceleration algorithm is determined from the set according to the computing request of the business to be run, avoiding the duplication of parallel acceleration algorithm development for each business domain, thereby improving the development efficiency of parallel acceleration algorithms and reducing the development cost of parallel acceleration algorithms.

[0010] In conjunction with the first aspect, in some implementations of the first aspect, the computing request includes an identifier of the service to be run, which includes at least one of the following: a functional safety level identifier corresponding to the service to be run, a data precision identifier, and a computing resource range.

[0011] The scope of computing resources may include the types of computing resources, as well as the number or proportion of computing units (i.e., the required computing power) among the required computing resources.

[0012] The identifier of a service to be run can be understood as the computing requirements of that service. For example, the requirements of a service to be run may include its requirements for data accuracy, functional safety level, and computing resource range. Different services usually correspond to different computing requirements.

[0013] In this application, the parallel acceleration algorithm and computing resources that meet the computing requirements of the service to be run can be adaptively determined based on the identifier of the service to be run. Based on this, different computing resources can be scheduled according to the computing requirements of different services to be run.

[0014] In conjunction with the first aspect, in some implementations of the first aspect, the identifier includes a data precision identifier and a computing resource range. Determining the target parallel acceleration algorithm required for the operation of the service to be run based on the computing request includes: selecting M parallel acceleration algorithms from the set of parallel acceleration algorithms that satisfy the data precision identifier, where M is a positive integer greater than or equal to 1; determining the computing resources corresponding to the M parallel acceleration algorithms; and selecting one or more computing resources that satisfy the computing resource range from the computing resources corresponding to the M parallel acceleration algorithms as the target computing resource.

[0015] In this application, a parallel acceleration algorithm can be determined first based on the data precision identifier. Then, one or more computing resources that meet the computing resource range required by the business to be run can be selected from the computing resources corresponding to the determined parallel acceleration algorithm as target computing resources. This ensures that the determined parallel acceleration algorithm can meet the data precision requirements of the business to be run, and the target computing resources can meet the computing resource range requirements of the business to be run.

[0016] In conjunction with the first aspect, in some implementations of the first aspect, the identifier also includes the functional safety level identifier, and the target parallel acceleration algorithm satisfies the functional safety level corresponding to the functional safety level identifier.

[0017] In this application, the identifier of the service to be run may also include a functional safety level identifier, so that the target parallel acceleration algorithm can meet the functional safety level requirements of the service to be run.

[0018] In conjunction with the first aspect, in some implementations of the first aspect, the central computing platform further includes a cache. Before determining the target parallel acceleration algorithm required for the operation of the service to be run based on the computing request, the method further includes: determining whether the cache contains the computing result corresponding to the computing request; when the cache does not contain the computing result corresponding to the computing request, performing the step of determining the target parallel acceleration algorithm required for the operation of the service to be run based on the computing request.

[0019] This application introduces caching so that when a computation request initiated by a service to be run is obtained, the cache can be checked first to see if the computation result corresponding to the computation request is included. If the computation result is included in the cache, it can be directly obtained from the cache. If the computation result is not included in the cache, the steps described above for determining the target parallel acceleration algorithm required for the service to be run based on the computation request are then executed to avoid redundant computation.

[0020] In conjunction with the first aspect, in some implementations of the first aspect, the central computing platform further includes a cache, and the step of determining the target parallel acceleration algorithm required for the operation of the service to be run based on the computing request includes: when the computing request indicates that data in the cache should not be retrieved, performing the step of determining the target parallel acceleration algorithm required for the operation of the service to be run based on the computing request.

[0021] This application introduces caching so that when a computation request initiated by a service to be run is received and the computation request indicates that data in the cache should be retrieved, the cache can be checked to see if the computation result corresponding to the computation request is included, so as to avoid duplicate computation. When the computation request indicates that the data in the cache should not be retrieved, the step of determining the target parallel acceleration algorithm required for the service to be run based on the computation request can be executed to directly obtain the computation result that meets the requirements of the service to be run.

[0022] In one implementation, the computation request may include a cache identifier, which can be used to indicate whether caching is enabled, disabled, or not. Enabling caching may mean retrieving data from the cache and / or storing the computation result in the cache; disabling caching may mean not retrieving data from the cache and / or not storing the computation result in the cache.

[0023] In conjunction with the first aspect, in some implementations of the first aspect, the cache stores one or more entries, each of which includes a correspondence between a computation function, computation input, and computation result.

[0024] Specifically, the computation function can be the function name or function identifier of a computation function, which refers to the computation function involved in the parallel acceleration algorithm.

[0025] Based on caching, in actual operation, the input data of the calculation involved in the business to be run can be searched in the cache. If the input data is found in the cache, the calculation result corresponding to the input data in the cache can be used as the calculation result required by the business to be run.

[0026] In conjunction with the first aspect, in some implementations of the first aspect, each entry also includes the data precision corresponding to the calculation function.

[0027] In this application, each entry may also include the data precision corresponding to the calculation function, so that when retrieving the calculation result from the cache, it can be determined whether the calculation result meets the requirements based on the data precision in the cache and the data precision required by the business calculation to be run. It should be noted that the calculation result can be retrieved when the data precision required by the business calculation to be run is lower than the data precision in the cache; the calculation result cannot be retrieved when the data precision required by the business calculation to be run is higher than the data precision in the cache.

[0028] In conjunction with the first aspect, in some implementations of the first aspect, when the cache is an intra-domain cache, the capacity of the intra-domain cache is determined based on at least one of the following: the number of times the first business domain calls the parallel acceleration algorithm within a set time period, the number of times the parallel acceleration algorithm is called, the size of the input data of the called parallel acceleration algorithm, and the size of the output data of the called parallel acceleration algorithm; when the cache is an inter-domain cache, the capacity of the inter-domain cache is determined based on at least one of the following: the number of multiple business domains within a set time period, the intra-domain cache capacity of each business domain within the multiple business domains, the number of parallel acceleration algorithms reused by the multiple business domains, the total number of parallel acceleration algorithms called by each business domain, and the computation time of the parallel acceleration algorithms in each business domain.

[0029] Among them, intra-domain cache is the cache corresponding to each business domain in multiple business domains; inter-domain cache is the cache that corresponds to multiple business domains.

[0030] In conjunction with the first aspect, in some implementations of the first aspect, the computing resource includes at least one of the following: scalable vector extension (SVE), graphics processing unit (GPU), digital video pre-processing (DVPP), image signal processor (ISP), artificial intelligence core (AI core), vector core, etc.

[0031] Secondly, a computing resource mobilization device is provided, applied to a central computing platform. This central computing platform supports multiple business domains and includes a set of parallel acceleration algorithms and various computing resources. Each computing resource corresponds to N parallel acceleration algorithms in the set of parallel acceleration algorithms, where N is a positive integer greater than or equal to 1. The device includes: an acquisition module, configured to acquire a computing request initiated by a service to be run in a first business domain, where the first business domain is any one of the multiple business domains; and a processing module, configured to: determine the target parallel acceleration algorithm required for the service to be run based on the computing request; mobilize the target computing resource corresponding to the target parallel acceleration algorithm from the multiple computing resources; and run the service to be run based on the target computing resource.

[0032] In conjunction with the second aspect, in some implementations of the second aspect, the computing request includes an identifier of the service to be run, which includes at least one of the following: a functional safety level identifier corresponding to the service to be run, a data precision identifier, and a computing resource range.

[0033] In conjunction with the second aspect, in some implementations of the second aspect, the identifier includes a data precision identifier and a computing resource range. The processing module is used to: select M parallel acceleration algorithms from the set of parallel acceleration algorithms that satisfy the data precision identifier, where M is a positive integer greater than or equal to 1; and determine the computing resources corresponding to the M parallel acceleration algorithms, and select one or more computing resources that satisfy the computing resource range from the computing resources corresponding to the M parallel acceleration algorithms as the target computing resource.

[0034] In conjunction with the second aspect, in some implementations of the second aspect, the identifier also includes the functional safety level identifier, and the target parallel acceleration algorithm satisfies the functional safety level corresponding to the functional safety level identifier.

[0035] In conjunction with the second aspect, in some implementations of the second aspect, the central computing platform further includes a cache. Before determining the target parallel acceleration algorithm required for the operation of the service to be run based on the computing request, the processing module is further configured to: determine whether the cache contains the computing result corresponding to the computing request; when the cache does not contain the computing result corresponding to the computing request, execute the step of determining the target parallel acceleration algorithm required for the operation of the service to be run based on the computing request.

[0036] In conjunction with the second aspect, in some implementations of the second aspect, the central computing platform also includes a cache, and the processing module is configured to: when the computing request indicates that data in the cache should not be retrieved, perform the step of determining the target parallel acceleration algorithm required for the runtime of the service to be run based on the computing request.

[0037] In conjunction with the second aspect, in some implementations of the second aspect, the cache stores one or more entries, each of which includes a correspondence between a computation function, computation input, and computation result.

[0038] In conjunction with the second aspect, in some implementations of the second aspect, each entry also includes the data precision corresponding to the calculation function.

[0039] In conjunction with the second aspect, in some implementations of the second aspect, when the cache is an intra-domain cache, the capacity of the intra-domain cache is determined based on at least one of the following: the number of times the first business domain calls the parallel acceleration algorithm within a set time period, the number of times the parallel acceleration algorithm is called, the size of the input data of the called parallel acceleration algorithm, and the size of the output data of the called parallel acceleration algorithm; when the cache is an inter-domain cache, the capacity of the inter-domain cache is determined based on at least one of the following: the number of multiple business domains within a set time period, the intra-domain cache capacity of each business domain, the number of parallel acceleration algorithms reused by the multiple business domains, the total number of times the parallel acceleration algorithms are called by each business domain, and the computation time of the parallel acceleration algorithms in each business domain.

[0040] In conjunction with the second aspect, in some implementations of the second aspect, the computing resource includes at least one of SVE, GPU, DVPP, ISP, AI core, vector core, etc.

[0041] Thirdly, a computing resource mobilization device is provided, including an input / output interface, a processor, and a memory. The processor controls the input / output interface to send and receive signals or information, the memory stores a computer program, and the processor retrieves and runs the computer program from the memory, causing the mobilization device to execute a mobilization method as described in the first aspect or any possible implementation thereof.

[0042] Fourthly, a computer-readable medium is provided that stores program code, which, when run on a computer, causes the computer to perform a calling method as described in the first aspect or any possible implementation thereof.

[0043] Fifthly, a computer program product is provided, comprising instructions that, when executed on a computer, execute a method call as described in the first aspect or any possible implementation thereof.

[0044] A sixth aspect provides a computing device comprising: at least one processor and a memory, the at least one processor being coupled to the memory for reading and executing instructions in the memory to perform a calling method as described in the first aspect or any possible implementation thereof.

[0045] In a seventh aspect, a chip is provided, the chip including circuitry for executing a calling method as described in the first aspect or any possible implementation thereof.

[0046] Eighthly, an intelligent driving device is provided, including a calling device as in the second aspect or any possible implementation thereof, or including a calling device as in the third aspect. Attached Figure Description

[0047] Figure 1 This is a functional schematic diagram of the vehicle 100 provided in the embodiments of this application.

[0048] Figure 2 This is a schematic diagram of the system architecture of the central computing platform provided in the embodiments of this application.

[0049] Figure 3 This is a flowchart illustrating the method for invoking computing resources provided in an embodiment of this application.

[0050] Figure 4 This is a schematic diagram of the structure of the computing resource mobilization device provided in the embodiments of this application.

[0051] Figure 5 This is a schematic block diagram of the hardware structure of the computing resource mobilization device provided in the embodiments of this application. Detailed Implementation

[0052] In the description of the embodiments of this application, unless otherwise stated, " / " means "or". For example, A / B can mean A or B. "And / or" in this document describes the relationship between related objects, indicating that there can be three relationships. For example, A and / or B can mean: A exists alone, A and B exist simultaneously, and B exists alone.

[0053] In this application, "at least one" means one or more, and "more than one" means two or more. "At least one of the following" or similar expressions refer to any combination of these items, including any combination of single or multiple items. For example, at least one of a, b, or c can mean: a, b, c, ab, ac, bc, or abc, where a, b, and c can be single or multiple.

[0054] The use of prefixes such as "first" and "second" in this application embodiment is solely for distinguishing different descriptive objects and does not limit the position, order, priority, quantity, or content of the described objects. The use of ordinal numbers and other prefixes to distinguish descriptive objects in this application embodiment does not constitute a limitation on the described objects. The description of the described objects is found in the claims or the context of the embodiments, and the use of such prefixes should not constitute unnecessary restrictions.

[0055] The technical solutions in the embodiments of this application will now be described with reference to the accompanying drawings.

[0056] This application can be applied to intelligent driving devices. These intelligent driving devices can include land vehicles, water vehicles, air vehicles, industrial equipment, agricultural equipment, or entertainment equipment. For example, an intelligent driving device can be a vehicle, which is a broad concept and can include transportation vehicles (such as commercial vehicles, passenger cars, motorcycles, flying cars, trains, etc.), industrial vehicles (such as forklifts, trailers, tractors, etc.), engineering vehicles (such as excavators, bulldozers, cranes, etc.), agricultural equipment (such as lawnmowers, harvesters, etc.), amusement equipment, toy vehicles, etc. This application does not specifically limit the type of vehicle. Furthermore, an intelligent driving device can be an airplane or a ship.

[0057] This solution can also be applied to devices such as servers, smart terminals, smart homes, and automotive embedded devices. For example, it can be applied to smartphones, desktop computers, laptops, tablets, wearable devices, robots, microcontroller units (MCUs), and electronic control units (ECUs).

[0058] The following is combined with Figure 1 Taking vehicles as an example, the application scenarios of this application will be introduced exemplarily.

[0059] Figure 1 This is a functional schematic diagram of the vehicle 100 provided in an embodiment of this application. It should be understood that... Figure 1 The descriptions provided are merely examples, and actual vehicles may vary. For instance... Figure 1 As shown, vehicle 100 may include a perception system 110 and a central computing platform 120.

[0060] The perception system 110 may include one or more sensors for sensing information about the environment surrounding the vehicle 100. For example, the perception system 110 may include a positioning system, which may be a Global Positioning System (GPS), a BeiDou system, or other positioning systems, or an inertial measurement unit (IMU). Alternatively, the perception system 110 may also include one or more of the following: lidar, millimeter-wave radar, ultrasonic radar, and camera devices.

[0061] The central computing platform 120 is used to analyze and process the data sensed by the perception system 110 and to control some or all of the functions of the vehicle 100. The central computing platform 120 may include at least one computing resource (e.g., at least one of SVE, GPU, DVPP, ISP, AI core, vector core, etc.), and each computing resource may include multiple parallel computing units that can provide parallel computing capabilities.

[0062] Taking the business domains of vehicle 100, including intelligent driving, vehicle control, and cockpit domains, as an example, in traditional solutions, the computing resources on the central computing platform 120 are typically divided according to these business domains in advance, and parallel acceleration algorithms are usually developed and deployed independently for each business domain. Based on this traditional approach, computing resources can only be dedicated to the divided business domain. In this case, if the business domain involves few transactions, the utilization rate of the corresponding computing resources will be low, resulting in resource waste. Furthermore, since the parallel computing needs of each business domain are mainly concentrated on mainstream acceleration requirements such as image processing acceleration, point cloud processing acceleration, and basic mathematical acceleration, developing parallel acceleration algorithms independently for each business domain would involve a large amount of repetitive development, leading to low development efficiency and high development costs for parallel acceleration algorithms.

[0063] Based on this, this application improves the utilization rate of computing resources and the development efficiency of parallel acceleration algorithms by centrally developing parallel acceleration algorithms and sharing computing resources, thereby reducing the development cost of parallel acceleration algorithms.

[0064] This application solution can be applied to in-vehicle central computing platforms, as well as computing platforms for servers, smart terminals, smart homes, and in-vehicle embedded devices, without limitation. For ease of understanding, the following description mainly uses an in-vehicle central computing platform as an example.

[0065] Figure 2 This is a schematic diagram of the system architecture of the central computing platform provided in an embodiment of this application. For example... Figure 2 As shown, the central computing platform 200 provided in this application can support multiple business domains 210. Taking a vehicle as an example, these multiple business domains can be business domains such as intelligent driving domain, vehicle control domain, and cockpit domain.

[0066] The central computing platform 200 may include a variety of computing resources 220, such as at least one of the following: SVE, GPU, DVPP, ISP, AI core, vector core, etc.

[0067] The central computing platform 200 can also deploy a set of parallel acceleration algorithms 230, which includes multiple distinct parallel acceleration algorithms developed centrally according to the needs of multiple business domains 210. Compared to traditional solutions that independently develop and deploy parallel acceleration algorithms for each business domain, this application avoids the redundant development and deployment of parallel acceleration algorithms by centrally developing and deploying the set of parallel acceleration algorithms 230 on the central computing platform 200.

[0068] Each of the various computing resources 220 can correspond to N parallel acceleration algorithms in the set of parallel acceleration algorithms 230, where N is a positive integer greater than or equal to 1. It should be understood that different types of computing resources can correspond to the same parallel acceleration algorithms. Optionally, the correspondence between computing resources and parallel acceleration algorithms can be pre-configured on the central computing platform 200.

[0069] Parallel acceleration algorithms refer to algorithms where each step is calculated synchronously, rather than sequentially, thereby improving computational speed. Parallel acceleration algorithms can include image processing algorithms, point cloud processing algorithms, and fundamental mathematical algorithms. Image processing algorithms include, for example, erosion, dilation, and affine algorithms; point cloud processing algorithms include, for example, segmentation, feature point extraction, and clustering algorithms; and fundamental mathematical algorithms include, for example, universal matrix multiplication, matrix inversion, and sine / cosine (sin / cosine) algorithms.

[0070] The central computing platform 200 may also be configured with a cache 240, which may be, for example, an intra-domain cache and / or an inter-domain cache. The intra-domain cache is a cache corresponding to each of the multiple business domains 210; the inter-domain cache is a cache shared by multiple business domains 210. Further details regarding the cache content, cache size determination method, and cache replacement management strategy of the cache 240 are provided below.

[0071] Based on the aforementioned central computing platform 200, the following is combined with... Figure 3 The method for accessing computing resources 220 in the central computing platform 200 is described.

[0072] Figure 3 This is a flowchart illustrating the method for invoking computing resources provided in an embodiment of this application. For example... Figure 3 As shown, the method 300 includes steps S310 to S340, which will be described in detail below.

[0073] S310: Obtain the computing request initiated by the service to be run in the first service domain. The first service domain can be any one of the multiple service domains supported by the central computing platform 200.

[0074] The computation request may include an identifier for the service to be run, which may include at least one of the following: a functional safety level identifier corresponding to the service to be run, a data precision identifier, and a computational resource range; the identifier may also include other resource range identifiers, such as a required bandwidth resource range identifier, a required memory space size identifier, etc.

[0075] It should be understood that the identifier in the computation request can be interpreted as the computational requirements of the service to be executed, such as the service's requirements for data accuracy, functional safety level, and computational resource range. Different services typically correspond to different computational requirements. In this application, based on the identifier of the service to be executed, parallel acceleration algorithms and computational resources that meet the computational requirements of the service can be adaptively determined. In this application, different computational resources can be scheduled based on the computational requirements of different services to be executed.

[0076] The functional safety level label can be any one of the following: automotive safety integration level (ASIL) A, ASIL B, ASIL C, ASIL D, ASIL quality management (QM), or a label that does not specify the functional safety level.

[0077] For example, a data precision identifier could be a data precision that meets 10. -3 Data accuracy meets 10 -4 Data accuracy meets 10 -5 Or any one of the following: an identifier that does not limit the precision of the data.

[0078] The scope of computing resources may include the types of computing resources, or it may include the number or proportion of computing units (i.e., the required computing power) in addition to the types of computing resources.

[0079] S320, based on the computation request, determines the target parallel acceleration algorithm required for the operation of the service to be run.

[0080] In one implementation, when the computation request includes a data precision identifier and a computational resource range identifier, M parallel acceleration algorithms that satisfy the data precision identifier can be selected from the set of parallel acceleration algorithms, where M is a positive integer greater than or equal to 1. Then, the computational resources corresponding to the M parallel acceleration algorithms are determined, and one or more computational resources that satisfy the computational resource range are selected from the computational resources corresponding to the M parallel acceleration algorithms as the target computational resource, so that the determined parallel acceleration algorithms can meet the data precision requirements of the service to be run and the target computational resource can meet the computational resource range requirements of the service to be run.

[0081] Optionally, the correspondence between data precision, parallel acceleration algorithms, and computing resources can be pre-configured so that the target parallel acceleration algorithm and target computing resources can be determined in actual operation by combining the requirements of the business to be run with the correspondence.

[0082] Optionally, when the computation request also includes a functional safety level identifier, the target parallel acceleration algorithm also needs to meet the functional safety level corresponding to the functional safety level identifier.

[0083] In practice, one can first determine the computing resources corresponding to the target parallel acceleration algorithm, and then, based on the computing resource range required by the business to be run, the idle state of the computing resources corresponding to the target parallel acceleration algorithm, and the running speed of the computing resources, determine the computing resources capable of running the business to be run as the target computing resources. It should be understood that the final determined target computing resources can be multiple computing units currently in an idle state within a single computing resource, on which the business to be run can run in parallel; or, the target computing resources can be multiple computing units currently in an idle state across multiple computing resources, on which the business to be run can run in parallel.

[0084] For example, suppose the types of computing resources determined based on the requirements of the service to be run include SVE and DVPP. Among them, 20% of the computing units on SVE are occupied and the remaining computing units can meet the requirements of the service to be run, while 90% of the computing units on DVPP are occupied and the remaining computing units cannot meet the requirements of the service to be run. In order to ensure the operation of the service to be run, SVE can be used as the target computing resource, and the unoccupied computing units on SVE can be called to run the service to be run.

[0085] For example, it is also assumed that the types of computing resources determined based on the requirements of the service to be run include SVE and DVPP, where 20% of the computing units on SVE are occupied and 90% of the computing units on DVPP are occupied. Although the number of computing resources required by the service to be run cannot be met by relying solely on the unoccupied computing units on DVPP, since the algorithm runs faster on DVPP, in actual operation, the unoccupied computing units in SVE and DVPP can be combined to run the service to be run.

[0086] S330 calls the target computing resources corresponding to the target parallel acceleration algorithm from a variety of computing resources.

[0087] S340 runs pending services based on target computing resources.

[0088] Based on the solution proposed in this application, when invoking computing resources, the target parallel acceleration algorithm required for the execution of the service to be run can be determined first through the computing requests of the service to be run. Then, according to the correspondence between the target parallel acceleration algorithm and computing resources, the target computing resource corresponding to the target parallel acceleration algorithm can be invoked from various computing resources on the central computing platform. Based on this invocation method, various computing resources on the central computing platform can be shared and invoked by multiple business domains, rather than being dedicated to a single business domain, thereby improving the utilization rate of computing resources.

[0089] In addition, in traditional solutions, based on pre-allocated computing resources, each business domain usually develops and deploys parallel acceleration algorithms independently. This process involves a lot of repetitive development, resulting in low development efficiency and high development costs for parallel acceleration algorithms.

[0090] This application, through the centralized development of parallel acceleration algorithms, configures parallel acceleration algorithms required by multiple business domains into a set of parallel acceleration algorithms. In actual use, the target parallel acceleration algorithm is determined from the set according to the computing request of the business to be run, avoiding the duplication of parallel acceleration algorithm development for each business domain, thereby improving the development efficiency of parallel acceleration algorithms and reducing the development cost of parallel acceleration algorithms.

[0091] Optionally, when the central computing platform 200 includes intra-domain cache and inter-domain cache, upon receiving a computing request initiated by a service to be run, it can first determine whether the cache contains the computing result corresponding to the computing request. If the cache contains the computing result, it can be directly retrieved from the cache. If the cache does not contain the computing result corresponding to the computing request, the step of determining the target parallel acceleration algorithm required for the service to be run based on the computing request (i.e., step S320) is then executed to avoid redundant computation. Alternatively, when a computing request initiated by a service to be run is received and the computing request indicates that data in the cache should be retrieved, it can be checked whether the cache contains the computing result corresponding to the computing request to avoid redundant computation. If the computing request indicates that data in the cache should not be retrieved, the step of determining the target parallel acceleration algorithm required for the service to be run based on the computing request (i.e., step S320) can be executed to directly obtain the computing result that meets the requirements of the service to be run.

[0092] In one implementation, the computation request may further include a cache identifier, which can be used to indicate whether caching is enabled, disabled, or not. Enabling caching may mean retrieving data from the cache and / or storing the computation result in the cache; disabling caching may mean not retrieving data from the cache and / or not storing the computation result in the cache.

[0093] The cache can store one or more entries, each of which can include a correspondence between a computation function, computation input, and computation result. Specifically, the computation function can be the function name or function identifier, referring to the computation function involved in the parallel acceleration algorithm. Based on the cache, in practice, the computation input data involved in the business to be run can be searched in the cache. If the input data is found in the cache, the computation result corresponding to that input data can be used as the computation result required by the business to be run.

[0094] Optionally, each entry in the cache may also include the data precision corresponding to the calculation function, so that when retrieving the calculation result from the cache, it can be determined whether the calculation result meets the requirements based on the data precision in the cache and the data precision required by the business calculation to be run. It should be noted that the calculation result can be retrieved when the data precision required by the business calculation to be run is lower than the data precision in the cache; the calculation result cannot be retrieved when the data precision required by the business calculation to be run is higher than the data precision in the cache.

[0095] The capacity of the domain cache can be determined based on at least one of the following: the number of times the business domain calls the parallel acceleration algorithm within a set time period, the number of times the parallel acceleration algorithm is called, the size of the input data of the called parallel acceleration algorithm, and the size of the output data of the called parallel acceleration algorithm.

[0096] The capacity of the inter-domain cache can be determined based on at least one of the following: the number of multiple business domains within a set time period, the intra-domain cache capacity of each business domain within the multiple business domains, the number of parallel acceleration algorithms reused by multiple business domains, the total number of parallel acceleration algorithms called by each business domain, and the computation time of the parallel acceleration algorithms in each business domain.

[0097] Because cache capacity is limited, insufficient cache space may occur during the caching process. Therefore, this application proposes that when cache space is insufficient, entries in the cache can be replaced and updated using any one of the following replacement principles: Least Recently Used (LRU), First In First Out (FIFO), or priority replacement algorithm. It should be understood that for intra-domain caching, different business domains can employ different replacement methods.

[0098] The priority of each entry in the intra-domain cache and / or inter-domain cache can be determined based on at least one of the following: the priority of the business function corresponding to the calculation function, the priority of the calculation function, the functional safety level of the business function corresponding to the calculation function, the calculation time of the calculation function, the accuracy requirement of the calculation function, the call duration of the calculation function, the priority of the computing resources corresponding to the calculation function, and the size of the computing resources required for the calculation function to run. For the priority of each entry in the inter-domain cache, it can also be determined based on the number of business domains that depend on the calculation function.

[0099] After the pending business is completed based on the target computing resources, the calculation results can be returned to the first business domain, and the calculation results can be executed through the first business domain.

[0100] Figure 4 This is a schematic diagram of the structure of a computing resource mobilization device provided in an embodiment of this application. The device 400 is applied to a central computing platform that supports multiple business domains. The central computing platform includes a set of parallel acceleration algorithms and various computing resources. Each computing resource corresponds to N parallel acceleration algorithms, where N is a positive integer greater than or equal to 1. The device 400 includes an acquisition module 410 and a processing module 420.

[0101] The acquisition module 410 is used to: acquire the computing request initiated by the service to be run in the first business domain, wherein the first business domain is any one of the plurality of business domains.

[0102] The processing module 420 is used to: determine the target parallel acceleration algorithm required for the operation of the service to be run based on the computing request; call the target computing resource corresponding to the target parallel acceleration algorithm from a variety of computing resources; and run the service to be run based on the target computing resource.

[0103] Optionally, the computing request may include an identifier of the service to be run, which may include at least one of the following: a functional safety level identifier corresponding to the service to be run, a data precision identifier, and a computing resource range.

[0104] Optionally, when the identifier includes a data precision identifier and a computing resource range, the processing module 410 can be used to: select M parallel acceleration algorithms from the set of parallel acceleration algorithms that satisfy the data precision identifier, where M is a positive integer greater than or equal to 1; and determine the computing resources corresponding to the M parallel acceleration algorithms, and select one or more computing resources that satisfy the computing resource range from the computing resources corresponding to the M parallel acceleration algorithms as the target computing resource.

[0105] Optionally, when the identifier includes a functional safety level identifier, the target parallel acceleration algorithm can satisfy the functional safety level corresponding to the functional safety level identifier.

[0106] Optionally, the central computing platform may also include a cache. Before determining the target parallel acceleration algorithm required for the operation of the service to be run based on the computing request, the processing module 410 may also be used to: determine whether the cache contains the computing result corresponding to the computing request; when the cache does not contain the computing result corresponding to the computing request, perform the step of determining the target parallel acceleration algorithm required for the operation of the service to be run based on the computing request.

[0107] Optionally, the central computing platform may also include a cache, and the processing module 410 may be used to: when a computing request indicates that data in the cache should not be retrieved, perform the step of determining the target parallel acceleration algorithm required for the operation of the service to be run based on the computing request.

[0108] Optionally, the cache may store one or more entries, each of which may include a correspondence between a calculation function, calculation inputs, and calculation results.

[0109] Optionally, each entry may also include the data precision corresponding to the calculation function.

[0110] Optionally, when the cache is an intra-domain cache, the capacity of the intra-domain cache can be determined based on at least one of the following: the number of times the first business domain calls the parallel acceleration algorithm within a set time period, the number of times the parallel acceleration algorithm is called, the size of the input data of the called parallel acceleration algorithm, and the size of the output data of the called parallel acceleration algorithm.

[0111] Optionally, when the cache is an inter-domain cache, the capacity of the inter-domain cache can be determined based on at least one of the following: the number of multiple business domains within a set time period, the intra-domain cache capacity of each business domain within the multiple business domains, the number of parallel acceleration algorithms reused by multiple business domains, the total number of parallel acceleration algorithms called by each business domain, and the computation time of the parallel acceleration algorithms in each business domain.

[0112] Optionally, computing resources may include at least one of SVE, GPU, DVPP, ISP, AI core, vector core, etc.

[0113] Figure 5 This is a schematic block diagram of the hardware structure of the computing resource retrieval device provided in this application embodiment. Optionally, the device 500 can specifically be a computer device. The device 500 includes a memory 510, a processor 520, and a communication interface 530. The memory 510, processor 520, and communication interface 530 can be interconnected via a bus.

[0114] The memory 510 may be a read-only memory (ROM), a static storage device, a dynamic storage device, or a random access memory (RAM). The memory 510 may store a program, and when the program stored in the memory 510 is executed by the processor 520, the processor 520 is used to execute the various steps of the calling method 300 of the embodiments of this application.

[0115] The processor 520 may be a general-purpose central processing unit (CPU), a microprocessor, an application-specific integrated circuit (ASIC), a GPU, or one or more integrated circuits, used to execute relevant programs to implement the calling method 300 of the method embodiment of this application.

[0116] The processor 520 can also be an integrated circuit chip with signal processing capabilities. In implementation, the calling method 300 of this application can be accomplished through the integrated logic circuitry in the hardware of the processor 520 or through software instructions.

[0117] The communication interface 530 uses transceiver devices, such as, but not limited to, transceivers, to enable communication between the device 500 and other devices or communication networks.

[0118] This application also provides a computer-readable storage medium including instructions that, when executed on a computer, cause the computer to perform the above-described invocation method 300.

[0119] This application also provides a computer program product containing instructions that, when executed on a computer, execute the aforementioned invocation method 300.

[0120] This application also provides a computing device, including: at least one processor and a memory, the at least one processor being coupled to the memory for reading and executing instructions in the memory to perform the above-described invocation method 300.

[0121] This application embodiment also provides a chip, which includes a processor and a data interface. The processor reads instructions stored in the memory through the data interface and executes the above-mentioned calling method 300, or the chip executes the above-mentioned calling method 300 through hardware circuitry.

[0122] This application also provides an intelligent driving device, including the aforementioned calling device 400 and / or device 500.

[0123] Those skilled in the art will recognize that the units and algorithm steps of the various examples described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are implemented in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.

[0124] Those skilled in the art will understand that, for the sake of convenience and brevity, the specific working processes of the systems, devices, and units described above can be referred to the corresponding processes in the foregoing method embodiments, and will not be repeated here.

[0125] In the several embodiments provided in this application, it should be understood that the disclosed systems, apparatuses, and methods can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative; for instance, the division of units is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be through some interfaces; the indirect coupling or communication connection between apparatuses or units may be electrical, mechanical, or other forms.

[0126] The units described as separate components may or may not be physically separate. The components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the units can be selected to achieve the purpose of this embodiment according to actual needs.

[0127] In addition, the functional units in the various embodiments of this application can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit.

[0128] The above description is merely a specific embodiment of this application, but the scope of protection of this application is not limited thereto. Any variations or substitutions that can be easily conceived by those skilled in the art within the scope of the technology disclosed in this application should be included within the scope of protection of this application. Therefore, the scope of protection of this application should be determined by the scope of the claims.

Claims

1. A method for invoking computing resources, characterized in that, The method is applied to a central computing platform that supports multiple business domains. The central computing platform includes a set of parallel acceleration algorithms and various computing resources. Each of the various computing resources corresponds to N parallel acceleration algorithms in the set of parallel acceleration algorithms, where N is a positive integer greater than or equal to 1. The method includes: Obtain a computing request initiated by a service to be run in a first business domain, wherein the first business domain is any one of the plurality of business domains, and the computing request includes an identifier of the service to be run, the identifier including a data precision identifier and a computing resource range; Select M target parallel acceleration algorithms from the set of parallel acceleration algorithms that satisfy the data precision identifier, where M is a positive integer greater than or equal to 1; Determine the computing resources corresponding to the M target parallel acceleration algorithms, and select one or more computing resources that satisfy the range of computing resources from the computing resources corresponding to the M target parallel acceleration algorithms as target computing resources; The service to be run is executed based on the target computing resources.

2. The method according to claim 1, characterized in that, The identifier also includes a functional safety level identifier, and the target parallel acceleration algorithm satisfies the functional safety level corresponding to the functional safety level identifier.

3. The method according to claim 1 or 2, characterized in that, The central computing platform further includes a cache, and before selecting M target parallel acceleration algorithms that satisfy the data precision identifier from the set of parallel acceleration algorithms, the method further includes: Determine whether the cache contains the computation result corresponding to the computation request. If the cache does not contain the computation result corresponding to the computation request, select the M target parallel acceleration algorithms that satisfy the data precision identifier from the set of parallel acceleration algorithms.

4. The method according to claim 1 or 2, characterized in that, The central computing platform also includes a cache, and the selection of M target parallel acceleration algorithms that satisfy the data precision identifier from the set of parallel acceleration algorithms includes: When the computation request indicates that the data in the cache should not be retrieved, the M target parallel acceleration algorithms that satisfy the data precision identifier are selected from the set of parallel acceleration algorithms.

5. The method according to claim 3, characterized in that, The cache stores one or more entries, each of which includes a calculation function, a calculation input, and a correspondence between the calculation result and the calculation result.

6. The method according to claim 5, characterized in that, Each entry also includes the data precision corresponding to the calculation function.

7. The method according to claim 3, characterized in that: When the cache is an intra-domain cache, the capacity of the intra-domain cache is determined based on at least one of the following within a set time period: the number of times the first business domain calls the parallel acceleration algorithm, the number of times the parallel acceleration algorithm is called, the size of the input data of the called parallel acceleration algorithm, and the size of the output data of the called parallel acceleration algorithm. When the cache is an inter-domain cache, the capacity of the inter-domain cache is determined based on at least one of the following: the number of domains in the multiple business domains within a set time period, the intra-domain cache capacity of each business domain in the multiple business domains, the number of parallel acceleration algorithms reused by the multiple business domains, the total number of parallel acceleration algorithms called by each business domain, and the computation time of the parallel acceleration algorithms in each business domain.

8. The method according to claim 1 or 2, characterized in that, The computing resources include at least one of the following: Scalable Vector Extension (SVE), Graphics Processor (GPU), Digital Vision Preprocessor (DVPP), Image Processor (ISP), Artificial Intelligence (AI) core, and Vector Core.

9. A device for accessing computing resources, characterized in that, The device is applied to a central computing platform that supports multiple business domains. The central computing platform includes a set of parallel acceleration algorithms and various computing resources. Each of the various computing resources corresponds to N parallel acceleration algorithms in the set of parallel acceleration algorithms, where N is a positive integer greater than or equal to 1. The device includes: The acquisition module is used to acquire a computing request initiated by a service to be run in a first business domain, wherein the first business domain is any one of the plurality of business domains, and the computing request includes an identifier of the service to be run, wherein the identifier includes a data precision identifier and a computing resource range; Processing module, used for: Select M target parallel acceleration algorithms from the set of parallel acceleration algorithms that satisfy the data precision identifier, where M is a positive integer greater than or equal to 1; Determine the computing resources corresponding to the M target parallel acceleration algorithms, and select one or more computing resources that satisfy the range of computing resources from the computing resources corresponding to the M target parallel acceleration algorithms as target computing resources; The service to be run is executed based on the target computing resources.

10. The apparatus according to claim 9, characterized in that, The identifier also includes a functional safety level identifier, and the target parallel acceleration algorithm satisfies the functional safety level corresponding to the functional safety level identifier.

11. The apparatus according to claim 9 or 10, characterized in that, The central computing platform also includes a cache, and before selecting M target parallel acceleration algorithms that satisfy the data precision identifier from the set of parallel acceleration algorithms, the processing module is further configured to: Determine whether the cache contains the computation result corresponding to the computation request. If the cache does not contain the computation result corresponding to the computation request, select the M target parallel acceleration algorithms that satisfy the data precision identifier from the set of parallel acceleration algorithms.

12. The apparatus according to claim 9 or 10, characterized in that, The central computing platform also includes a cache, and the processing module is used for: When the computation request indicates that the data in the cache should not be retrieved, M target parallel acceleration algorithms that satisfy the data precision identifier are selected from the set of parallel acceleration algorithms.

13. The apparatus according to claim 11, characterized in that, The cache stores one or more entries, each of which includes a calculation function, a calculation input, and a correspondence between the calculation result and the calculation result.

14. The apparatus according to claim 13, characterized in that, Each entry also includes the data precision corresponding to the calculation function.

15. The apparatus according to claim 11, characterized in that: When the cache is an intra-domain cache, the capacity of the intra-domain cache is determined based on at least one of the following within a set time period: the number of times the first business domain calls the parallel acceleration algorithm, the number of times the parallel acceleration algorithm is called, the size of the input data of the called parallel acceleration algorithm, and the size of the output data of the called parallel acceleration algorithm. When the cache is an inter-domain cache, the capacity of the inter-domain cache is determined based on at least one of the following: the number of domains in the multiple business domains within a set time period, the intra-domain cache capacity of each business domain in the multiple business domains, the number of parallel acceleration algorithms reused by the multiple business domains, the total number of parallel acceleration algorithms called by each business domain, and the computation time of the parallel acceleration algorithms in each business domain.

16. The apparatus according to claim 9 or 10, characterized in that, The computing resources include at least one of the following: Scalable Vector Extension (SVE), Graphics Processor (GPU), Digital Vision Preprocessor (DVPP), Image Processor (ISP), Artificial Intelligence (AI) core, and Vector Core.

17. A device for accessing computing resources, characterized in that, The device includes an input / output interface, a processor, and a memory. The processor controls the input / output interface to send and receive signals or information. The memory stores a computer program. The processor retrieves and runs the computer program from the memory, causing the retrieval device to perform the retrieval method as described in any one of claims 1 to 8.

18. An intelligent driving device, characterized in that, Includes the calling device as described in any one of claims 9 to 17.

Citation Information

Patent Citations

  • Task scheduling method based on improved firework algorithm under CMP framework

    CN110533152A

  • Cloud computing resource scheduling method based on improved fireworks algorithm

    CN115454568A