Cooperative computing method and device

By intelligently allocating computing tasks between mobile terminals and external computing modules, the problem of insufficient computing power in mobile terminal devices is solved, achieving efficient, low-latency, and privacy-preserving collaborative computing, and improving the efficiency of AI task execution.

CN121858263APending Publication Date: 2026-04-14HANGZHOU WEIHENG TECHNOLOGY CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
HANGZHOU WEIHENG TECHNOLOGY CO LTD
Filing Date
2025-11-20
Publication Date
2026-04-14

AI Technical Summary

Technical Problem

In existing technologies, the computing power and storage of mobile terminal devices limit their ability to efficiently execute AI tasks. Cloud offloading poses delays and privacy risks, while local execution is constrained by device computing power, power consumption, and heat dissipation issues, making it difficult to support large-scale complex calculations. Furthermore, existing collaborative computing solutions are ill-suited to dynamic needs.

Method used

By identifying the computing power parameters of external computing modules, the computing tasks are analyzed into a set of steps, and tasks are intelligently allocated between the terminal or external computing modules according to the characteristics of the steps. The computing results are transmitted and merged using a high-speed communication interface to achieve efficient and low-latency collaborative computing.

Benefits of technology

It improves the execution efficiency of AI tasks, reduces energy consumption, solves the problems of unreasonable allocation of computing tasks and low resource utilization efficiency, and realizes collaborative computing with low latency and privacy protection.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121858263A_ABST
    Figure CN121858263A_ABST
Patent Text Reader

Abstract

The invention provides a cooperative computing method and device, which is applied to cooperative execution of computing tasks between a terminal and an external computing power module, and comprises the following steps: identifying the external computing power module, and obtaining computing power parameters of the external computing power module; analyzing the obtained calculation task into a calculation step set; according to the characteristics of each calculation step in the calculation step set, determining to be allocated to an external calculation power module or a local terminal for processing; transmitting calculation steps through a communication interface and executing a calculation task; and combining calculation results in the local and external computing power modules of the terminal and outputting a final result. According to the method, intelligent task allocation and cooperative execution are performed between the mobile phone and the external computing power module, so that the execution efficiency of the AI task is improved, the energy consumption is reduced, and the problems of unreasonable calculation task allocation, relatively high delay and low calculation resource utilization efficiency in the prior art are solved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application belongs to the field of computing power scheduling technology, specifically, it relates to a collaborative computing method and apparatus. Background Technology With the rapid development of artificial intelligence (AI) applications, especially in areas such as large model inference, image recognition, and speech understanding, the computing power and storage of mobile terminal devices, especially mobile phones, are gradually becoming bottlenecks that limit their efficient execution of AI tasks.

[0002] Among existing technical solutions, cloud offloading and local execution each have their own advantages and disadvantages. Cloud offloading sends computational tasks to remote servers or edge computing nodes via the network for execution. While this solves the problem of insufficient device computing power, it also introduces significant latency, privacy risks, and a high dependence on the network, all of which limit its application in AI applications with high real-time requirements. On the other hand, local execution relies entirely on the phone's SoC (System-on-a-Chip) or NPU (Neural Processing Unit). Although this reduces network latency, it is constrained by the device's own computing power, power consumption, and heat dissipation issues, making it difficult to support large-scale and complex AI tasks. This is especially true when inference involves a large amount of computation, where the phone's local computing power is increasingly proving insufficient. Therefore, how to achieve efficient collaborative computing between the phone and external computing modules, improving computing performance while maintaining low latency and privacy protection, has become an urgent problem to be solved.

[0003] While some existing technologies have attempted to enhance computing power by combining external GPUs (Graphics Processing Units) with PCs, these solutions are mostly limited to fixed devices and struggle to adapt to dynamic, mobile computing needs. Furthermore, there are shortcomings in task scheduling and collaboration between computing modules. Therefore, a new method is urgently needed to intelligently schedule tasks between the mobile phone and external computing modules, achieving efficient, low-latency, and privacy-compliant collaborative computing. Summary of the Invention

[0004] This application provides a collaborative computing method and apparatus to at least solve the problems of unreasonable allocation of computing tasks, high latency, and low utilization efficiency of computing resources in the prior art.

[0005] According to the first aspect of this application, a collaborative computing method is provided, applied to the collaborative execution of computing tasks between a terminal and an external computing power module, including: Identify the external computing power module and obtain its computing power parameters; The acquired computational tasks are parsed into a set of computational steps; Based on the characteristics of each computation step in the set of computation steps, determine whether to allocate it to an external computing module or local terminal for processing; The calculation steps are transmitted and the calculation tasks are executed through the communication interface; The calculation results from the local terminal and the external computing power module are merged and the final result is output.

[0006] In one embodiment, obtaining the computing power parameters of the external computing module includes: Obtain the computation types, operator sets, storage capacity, bandwidth information, and computational precision supported by the external computing module.

[0007] In one embodiment, the acquired computation task is parsed into a set of computation steps, including: Analyze the computation graph in the computation task and identify each computation step; The computation steps are initially divided into operator categories and task scheduling to generate a set of computation steps.

[0008] In one embodiment, the computation steps are initially divided into operator categories and task scheduling to generate a set of computation steps, including: Perform computational complexity analysis on each computational step and estimate the computational cost of each step; Based on the data dependencies of each computation step, construct the execution order between computation steps; Based on the memory requirements, access characteristics, and computational requirements of the computation steps, an initial division of operators and task scheduling is performed to generate a set of computation steps.

[0009] In one embodiment, based on the computing capability parameters of the external computing module for each computing step in the set of computing steps, the method for assigning processing to an external computing module or the terminal locally includes: For each computational step, perform computational complexity analysis, evaluate whether it is suitable to be executed in the external computing power module based on computational quantity and computing power parameters, and select computational steps that are suitable to be executed in the external computing power module. For computation steps that are suitable for execution in an external computing module, the decision is made on whether to allocate the step to an external computing module or execute it locally on the terminal, based on the data transfer overhead, memory requirements, and execution latency of each computation step.

[0010] In one embodiment, based on the data transfer overhead, memory requirements, and execution latency of each computation step, an evaluation is made as to whether to allocate the step to an external computing module or execute it locally on the terminal, including: If a computational step is computationally intensive and has low data transmission overhead, then the computational step is assigned to an external computing module for execution. If the computational complexity of the calculation steps is low, the data transmission overhead is high, or the real-time requirements are high, the calculations will be performed locally on the terminal.

[0011] According to a second aspect of this application, a collaborative computing device is also provided, applied to the collaborative execution of computing tasks between a terminal and an external computing power module, comprising: The computing power parameter acquisition unit is used to identify external computing power modules and acquire the computing power parameters of the external computing power modules. The parsing unit is used to parse the acquired computation task into a set of computation steps; The allocation unit is used to determine whether to allocate the computation to the external computing module or the terminal for local processing based on the characteristics of each computation step in the set of computation steps and the computing capability parameters of the external computing module. The transmission execution unit is used to transmit computation steps and execute computation tasks through a communication interface; The output unit is used to merge the calculation results from the local terminal and the external computing power module and output the final result.

[0012] In one embodiment, the parsing unit includes: The identification module is used to parse the computation graph in the computation task and identify each computation step; The partitioning module is used to classify the computation steps by operators and perform preliminary task scheduling, generating a set of computation steps.

[0013] In one embodiment, the partitioning module includes: The computational complexity estimation module is used to perform computational complexity analysis on each computational step and estimate the computational cost of each computational step. The sorting module is used to construct the execution order between computation steps based on the data dependencies of each computation step; The computation step set generation module is used to perform preliminary division of operators and task scheduling based on the memory requirements, access characteristics, and computation requirements of the computation steps, and generate a computation step set.

[0014] In one embodiment, the allocation unit includes: The filtering module is used to perform computational complexity analysis on each computational step, evaluate whether it is suitable to be executed in the external computing power module based on computational quantity and computing power parameters, and filter the computational steps that are suitable to be executed in the external computing power module. The evaluation module is used to evaluate whether to allocate a computation step to an external computing module or execute it locally on the terminal, based on the data transfer overhead, memory requirements, and execution latency of each computation step, for computation steps that are suitable to be executed in an external computing module.

[0015] In one embodiment, the evaluation module includes: An external computing power allocation module is used to allocate a computing step to an external computing power module for execution if the computing step has high computational intensity and low data transmission overhead. The local computing power allocation module is used to execute computational steps locally on the terminal if the computational complexity is low, the data transmission overhead is high, or the real-time requirements are high.

[0016] This application improves the execution efficiency of AI tasks and reduces energy consumption by intelligently allocating and coordinating tasks between a mobile phone and an external computing module. It also solves the problems of unreasonable task allocation, high latency, and low utilization efficiency of computing resources in existing technologies. Attached Figure Description

[0017] To more clearly illustrate the technical solutions in the embodiments of the present invention or the prior art, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present invention. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0018] Figure 1 A flowchart of a collaborative computing method provided in this application.

[0019] Figure 2 This is a flowchart illustrating how the acquired computational task is parsed into a set of computational steps in an embodiment of this application.

[0020] Figure 3 This is a flowchart illustrating the initial division of computation steps into operator categories and task scheduling in the embodiments of this application, generating a set of computation steps.

[0021] Figure 4 This is a flowchart illustrating the method for determining whether data is allocated to an external computing module or processed locally on a terminal, as described in this application.

[0022] Figure 5 This application provides a structural block diagram of a collaborative computing device.

[0023] Figure 6 This is a specific implementation of an electronic device in the embodiments of this application. Detailed Implementation

[0024] The technical solutions of the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of the present invention, and not all embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of the present invention.

[0025] With the rapid development of artificial intelligence (AI) applications, especially in areas such as large model inference, image recognition, and speech understanding, the computing power and storage of mobile terminal devices, especially mobile phones, are gradually becoming bottlenecks that limit their efficient execution of AI tasks.

[0026] Among existing technical solutions, cloud offloading and local execution each have their own advantages and disadvantages. Cloud offloading sends computational tasks to remote servers or edge computing nodes via the network for execution. While this solves the problem of insufficient device computing power, it also introduces significant latency, privacy risks, and a high dependence on the network, all of which limit its application in AI applications with high real-time requirements. On the other hand, local execution relies entirely on the phone's SoC (System-on-a-Chip) or NPU (Neural Processing Unit). Although this reduces network latency, it is constrained by the device's own computing power, power consumption, and heat dissipation issues, making it difficult to support large-scale and complex AI tasks. This is especially true when inference involves a large amount of computation, where the phone's local computing power is increasingly proving insufficient. Therefore, how to achieve efficient collaborative computing between the phone and external computing modules, improving computing performance while maintaining low latency and privacy protection, has become an urgent problem to be solved.

[0027] While some existing technologies have attempted to enhance computing power by combining external GPUs (Graphics Processing Units) with PCs, these solutions are mostly limited to fixed devices and struggle to adapt to dynamic, mobile computing needs. Furthermore, there are shortcomings in task scheduling and collaboration between computing modules. Therefore, a new method is urgently needed to intelligently schedule tasks between the mobile phone and external computing modules, achieving efficient, low-latency, and privacy-compliant collaborative computing.

[0028] To address the aforementioned problems, this application provides a collaborative computing method applied to the collaborative execution of computing tasks between a terminal and an external computing module, such as... Figure 1 As shown, it includes: S101: Identify the external computing module and obtain the computing power parameters of the external computing module; S102: Parse the acquired computation task into a set of computation steps; S103: Based on the characteristics of each calculation step in the set of calculation steps, determine whether to allocate it to an external computing module or local terminal for processing; S104: Transmit calculation steps and execute calculation tasks through the communication interface; S105: Merge the calculation results from the local terminal and the external computing power module and output the final result.

[0029] In one specific embodiment, the terminal device needs to establish a stable physical connection with the external computing module, which can be accomplished through interfaces supporting high-speed data transmission such as USB4, PCIe, or Wi-Fi. When identifying the external computing module, the terminal device communicates with the management unit within the module through a driver program to obtain the module's computing power and various hardware parameters. This information includes not only hardware specifications and computing power, but also the types of computing tasks supported by the module, the types of operators supported (such as matrix multiplication and convolution), the module's storage capacity, computational precision, and communication bandwidth. By obtaining these parameters, the terminal can assess whether the external computing module is suitable for handling the current computing task.

[0030] In one embodiment, obtaining the computing power parameters of the external computing module includes: Obtain the computation types, operator sets, storage capacity, bandwidth information, and computational precision supported by the external computing module.

[0031] In one specific embodiment, the external computing module supports different types of computation in practical applications, such as image processing, speech recognition, and deep learning inference. To ensure efficient execution of computational tasks, the external computing module needs to support specific sets of operators, such as convolution operations, matrix multiplication, fully connected layers, and pooling layers. These operators are common computational foundations, especially in deep learning tasks. The storage capacity of each module determines the amount of data it can process, while bandwidth information determines the efficiency and bandwidth limitations of data transmission. Especially in large-scale data computation tasks, bandwidth significantly impacts performance. The computational precision, such as FP16 or INT8, determines the balance between the precision requirements and computational speed when the external computing module performs operations, enabling it to better cope with different application scenarios.

[0032] In one embodiment, the acquired computational task is parsed into a set of computational steps, such as... Figure 2 As shown, it includes: S201: Analyze the computation graph in the computation task and identify each computation step; S202: Perform operator classification and preliminary task scheduling for the computation steps to generate a set of computation steps.

[0033] In one specific embodiment, computational tasks typically exist in the form of a computation graph, where each node represents a computational step (or operator). The terminal identifies and extracts each computational step by parsing the computation graph. For example, in an image recognition task, the computation graph may contain multiple nodes such as convolution, pooling, and activation functions. Each node represents an operator responsible for performing a specific computational task. The terminal system determines the execution order of computational steps based on the topological relationships of the computation graph, ensuring smooth data and computational flow. By parsing the computation graph, the terminal also classifies operators based on the nature of the computational steps, such as computationally intensive operators (e.g., matrix multiplication, convolution) and lightweight operators (e.g., activation functions, normalization), and performs preliminary task scheduling based on the computational characteristics of different operators.

[0034] In one embodiment, the computation steps are initially divided into operator categories and task scheduling to generate a set of computation steps, such as... Figure 3 As shown, it includes: S301: Perform computational complexity analysis for each computational step and estimate the computational cost of each step; S302: Construct the execution order between computation steps based on the data dependencies of each computation step; S303: Based on the memory requirements, access characteristics, and computational requirements of the computation steps, perform preliminary division of operators for classification and task scheduling, and generate a set of computation steps.

[0035] In one specific embodiment, the primary criterion for determining a computational step is computational complexity analysis. If a computational step has high computational complexity and the external computing power module has sufficient capacity, the step may be assigned to the external computing power module for execution. If the data transfer overhead of a computational step is low, the memory requirement is moderate, and it is not significantly affected by transmission bandwidth, then the step can also be considered for execution by the external computing power module. For steps with low computational complexity, high data transfer overhead, or high real-time requirements, the terminal will choose to execute them locally to reduce latency and meet the real-time requirements of the task. Data transfer overhead and memory requirements are important reference factors. If a computational step involves a large amount of data exchange or large-scale tensor transfer, and data transfer bandwidth and memory are limited, these steps will be preferentially executed locally on the terminal.

[0036] In one embodiment, based on the computing capability parameters of the external computing module for each computing step in the set of computing steps, it is determined whether the processing will be assigned to the external computing module or the local terminal. Figure 4 As shown, it includes: S401: Perform computational complexity analysis on each computation step, evaluate whether it is suitable to be executed in the external computing power module based on the computational amount and computing power parameters, and select computational steps that are suitable to be executed in the external computing power module; S402: In the computation steps that are suitable to be executed in an external computing module, evaluate whether to allocate the step to an external computing module or execute it locally on the terminal, based on the data transfer overhead, memory requirements and execution latency of each computation step.

[0037] In one specific embodiment, computational complexity analysis is a crucial process in this step, typically involving estimating the computational cost of each step to determine its resource requirements. Complex operations (such as convolution and matrix multiplication) have high computational complexity, requiring more computing resources and stronger hardware support. The computational cost of each step is also closely related to the size of the input data; for example, larger input data (such as images and videos) can multiply the computational cost. Through computational complexity analysis, the terminal can identify which steps need to be executed in an external computing module. Furthermore, the data dependencies between computational steps are also very important; only when these dependencies are correctly established can the computational tasks be executed in the correct order.

[0038] In one embodiment, based on the data transfer overhead, memory requirements, and execution latency of each computation step, an assessment is made as to whether the step should be allocated to an external computing module or executed locally on the terminal. Figure 5 As shown, it includes: S501: If the calculation step is computationally intensive and the data transmission overhead is low, then the calculation step shall be assigned to an external computing power module for execution. S502: If the computational complexity of the calculation steps is low, the data transmission overhead is high, or the real-time requirements are high, then the calculations will be performed locally on the terminal.

[0039] In one specific embodiment, the terminal can intelligently select between different computation locations based on the characteristics of each computation step. The computational complexity of a computation step determines whether that step requires the powerful computing resources of an external computing module. For computationally intensive steps, such as matrix multiplication and convolution, the powerful computing capabilities provided by an external computing module can significantly improve execution efficiency. Meanwhile, data transfer overhead and memory requirements are key factors in determining whether to allocate computational tasks to an external computing module. If the data volume is too large and the transmission cost is high, or the memory requirements are too large, an external computing module is the ideal choice. Conversely, if the computational step does not require a large amount of resources in terms of memory and data transfer, and has high real-time requirements, allocating the task for local execution can reduce latency and meet real-time requirements.

[0040] In one embodiment, computation steps are transmitted and computation tasks are executed via a communication interface.

[0041] When transmitting computational steps and executing computational tasks via a communication interface, the terminal selects the most suitable communication interface for data transmission based on the task's execution characteristics. For example, for latency-sensitive tasks, the terminal chooses a low-latency transmission channel, such as PCIe or USB4, to ensure real-time data transmission. For tasks with large data volumes and high transmission overhead, the terminal chooses a high-bandwidth communication channel, such as Wi-Fi 6 or a high-speed USB port, to ensure efficient data transmission. Ensuring data is transmitted through the most suitable channel is crucial for the efficient execution of the entire computational task. Low-latency transmission channels, such as PCIe and USB4, are suitable for transmitting data with high real-time requirements (such as streaming media and real-time image processing). These interfaces provide high-speed data transmission capabilities, enabling data exchange within milliseconds. For computational steps requiring the transmission of large amounts of data (such as parameter updates and large-scale data reading in deep learning training), the high bandwidth of Wi-Fi 6 or high-speed USB ports provides greater transmission capacity, ensuring that performance bottlenecks are not caused by bandwidth limitations.

[0042] In one embodiment, the calculation results from the local terminal and the external computing module are combined and the final result is output.

[0043] When merging the computation results from the local and external computing modules and outputting the final result, the terminal first collects the computation results executed by both modules and merges them sequentially according to the dependencies between computation steps in the computation graph. The result of each computation step serves as the input for the next step, ensuring the continuity and correctness of the entire computation task. Finally, the terminal outputs the merged computation result, completing the entire computation task. During the merging process, the terminal must ensure the correctness of the data and the integrity of the task. The results of each computation step must be merged in the order defined in the computation graph to maintain the consistency of the data flow and computation flow. Through this process, the terminal can ensure that the final output of all computation steps meets expectations, thereby achieving the correct execution of the entire computation task.

[0044] This application improves the execution efficiency of AI tasks and reduces energy consumption by intelligently allocating and coordinating tasks between a mobile phone and an external computing module. It also solves the problems of unreasonable task allocation, high latency, and low utilization efficiency of computing resources in existing technologies.

[0045] Based on the same inventive concept, this application also provides a collaborative computing device that can be used to implement the methods described in the above embodiments, as described in the following embodiments. Since the principle of this collaborative computing device in solving the problem is similar to that of the collaborative computing method, the implementation of the collaborative computing device can refer to the implementation of the collaborative computing method, and repeated details will not be elaborated further. As used below, the terms "unit" or "module" can refer to a combination of software and / or hardware that implements a predetermined function. Although the system described in the following embodiments is preferably implemented in software, hardware implementation, or a combination of software and hardware, is also possible and contemplated.

[0046] This application also provides a collaborative computing device for collaborative execution of computing tasks between a terminal and an external computing module, such as... Figure 5 As shown, it includes: The computing power parameter acquisition unit 501 is used to identify the external computing power module and acquire the computing power parameters of the external computing power module. The parsing unit 502 is used to parse the acquired computation task into a set of computation steps; The allocation unit 503 is used to determine whether to allocate the computation to the external computing module or the terminal for local processing based on the characteristics of each computation step in the set of computation steps and the computing capability parameters of the external computing module. The transmission execution unit 504 is used to transmit calculation steps and execute calculation tasks through a communication interface; Output unit 505 is used to merge the calculation results from the local terminal and the external computing power module and output the final result.

[0047] In one embodiment, the parsing unit includes: The identification module is used to parse the computation graph in the computation task and identify each computation step; The partitioning module is used to classify the computation steps by operators and perform preliminary task scheduling, generating a set of computation steps.

[0048] In one embodiment, the partitioning module includes: The computational complexity estimation module is used to perform computational complexity analysis on each computational step and estimate the computational cost of each computational step. The sorting module is used to construct the execution order between computation steps based on the data dependencies of each computation step; The computation step set generation module is used to perform preliminary division of operators and task scheduling based on the memory requirements, access characteristics, and computation requirements of the computation steps, and generate a computation step set.

[0049] In one embodiment, the allocation unit includes: The filtering module is used to perform computational complexity analysis on each computational step, evaluate whether it is suitable to be executed in the external computing power module based on computational quantity and computing power parameters, and filter the computational steps that are suitable to be executed in the external computing power module. The evaluation module is used to evaluate whether to allocate a computation step to an external computing module or execute it locally on the terminal, based on the data transfer overhead, memory requirements, and execution latency of each computation step, for computation steps that are suitable to be executed in an external computing module.

[0050] In one embodiment, the evaluation module includes: An external computing power allocation module is used to allocate a computing step to an external computing power module for execution if the computing step has high computational intensity and low data transmission overhead. The local computing power allocation module is used to execute computational steps locally on the terminal if the computational complexity is low, the data transmission overhead is high, or the real-time requirements are high.

[0051] Those skilled in the art will understand that embodiments of the present invention can be provided as methods, systems, or computer program products. Therefore, the present invention can take the form of a completely hardware embodiment, a completely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, the present invention can take the form of a computer program product embodied on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code.

[0052] This invention is described with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, special-purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, generate instructions for implementing the flowchart illustrations and / or block diagrams. Figure 1 One or more processes and / or boxes Figure 1 A device that provides the functions specified in one or more boxes.

[0053] These computer program instructions may also be stored in a computer-readable storage medium that can direct a computer or other programmable data processing device to function in a particular manner, such that the instructions stored in the computer-readable storage medium produce an article of manufacture including instruction means, which are implemented in a process Figure 1 One or more processes and / or boxes Figure 1 The function specified in one or more boxes.

[0054] These computer program instructions may also be loaded onto a computer or other programmable data processing equipment to cause a series of operational steps to be performed on the computer or other programmable equipment to produce a computer-implemented process, thereby providing instructions that execute on the computer or other programmable equipment for implementing the process. Figure 1 One or more processes and / or boxes Figure 1 The steps of the function specified in one or more boxes.

[0055] Specific embodiments have been used to illustrate the principles and implementation methods of this invention. The descriptions of the embodiments above are only for the purpose of helping to understand the method and core ideas of this invention. At the same time, for those skilled in the art, there will be changes in the specific implementation methods and application scope based on the ideas of this invention. Therefore, the content of this specification should not be construed as a limitation of this invention.

[0056] This application also provides a specific implementation of an electronic device capable of implementing all the steps in the methods described above. See [link to implementation details]. Figure 6 The electronic device specifically includes the following: Figure 6 This is a schematic diagram of the physical structure of an electronic device provided in an embodiment of this application. The electronic device includes: a processor 601, a memory 602, and a bus 603.

[0057] The processor 601 and the memory 602 communicate with each other via the bus 603.

[0058] The processor 601 is used to call the computer program in the memory 602. When the processor executes the computer program, it implements all the steps in the method in the above embodiments. For example, when the processor executes the computer program, it implements the following steps: S101: Identify the external computing module and obtain the computing power parameters of the external computing module; S102: Parse the acquired computation task into a set of computation steps; S103: Based on the characteristics of each calculation step in the set of calculation steps, determine whether to allocate it to an external computing module or local terminal for processing; S104: Transmit calculation steps and execute calculation tasks through the communication interface; S105: Merge the calculation results from the local terminal and the external computing power module and output the final result.

[0059] Embodiments of this application also provide a computer-readable storage medium capable of implementing all steps of the methods in the above embodiments. The computer-readable storage medium stores a computer program that, when executed by a processor, implements all steps of the methods in the above embodiments. For example, when the processor executes the computer program, it implements the following steps: S101: Identify the external computing module and obtain the computing power parameters of the external computing module; S102: Parse the acquired computation task into a set of computation steps; S103: Based on the characteristics of each calculation step in the set of calculation steps, determine whether to allocate it to an external computing module or local terminal for processing; S104: Transmit calculation steps and execute calculation tasks through the communication interface; S105: Merge the calculation results from the local terminal and the external computing power module and output the final result.

[0060] The various embodiments in this specification are described in a progressive manner. Similar or identical parts between embodiments can be referred to mutually. Each embodiment focuses on its differences from other embodiments. In particular, for hardware + program embodiments, since they are basically similar to method embodiments, the description is relatively simple; relevant parts can be referred to the descriptions in the method embodiments. Although the embodiments in this specification provide the method operation steps as shown in the embodiments or flowcharts, more or fewer operation steps may be included based on conventional or non-inventive means. The order of steps listed in the embodiments is merely one possible execution order among many steps and does not represent the only execution order. In actual device or terminal product execution, the methods can be executed in the order shown in the embodiments or drawings or in parallel (e.g., in a parallel processor or multi-threaded processing environment, or even a distributed data processing environment). The terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, product, or apparatus that includes a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, product, or apparatus. Without further limitations, the presence of other identical or equivalent elements in the process, method, product, or apparatus that includes said elements is not excluded. For ease of description, the above devices are described in terms of function, divided into various modules. Of course, in implementing the embodiments of this specification, the functions of each module can be implemented in one or more software and / or hardware, or the module implementing the same function can be implemented by a combination of multiple sub-modules or sub-units, etc. The device embodiments described above are merely illustrative. For example, the division of units is only a logical functional division; 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 displayed or discussed mutual couplings or direct couplings or communication connections may be through some interfaces; indirect couplings or communication connections between devices or units may be electrical, mechanical, or other forms. This invention is described with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It should be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, special-purpose computer, embedded processor, or other programmable data processing device to produce a machine, such that the instructions, which are executable by the processor of the computer or other programmable data processing device, produce instructions for implementing the process. Figure 1 One or more processes and / or boxes Figure 1 A device that provides the functions specified in one or more boxes.

[0061] Those skilled in the art will understand that the embodiments of this specification can be provided as methods, systems, or computer program products. Therefore, the embodiments of this specification can take the form of entirely hardware embodiments, entirely software embodiments, or embodiments combining software and hardware aspects. Furthermore, the embodiments of this specification can take the form of computer program products implemented on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code. The various embodiments in this specification are described in a progressive manner, and similar or identical parts between embodiments can be referred to mutually. Each embodiment focuses on describing the differences from other embodiments. In particular, for system embodiments, since they are basically similar to method embodiments, the description is relatively simple, and relevant parts can be referred to the description of the method embodiments. In the description of this specification, the reference to the terms "one embodiment," "some embodiments," "example," "specific example," or "some examples," etc., means that a specific feature, structure, material, or characteristic described in connection with that embodiment or example is included in at least one embodiment or example of the embodiments of this specification.

[0062] In this specification, the illustrative expressions of the terms used do not necessarily refer to the same embodiments or examples. Furthermore, those skilled in the art can combine and integrate different embodiments or examples described in this specification, as well as features of different embodiments or examples, without contradiction. The above descriptions are merely embodiments of this specification and are not intended to limit the embodiments of this specification. Various modifications and variations can be made to the embodiments of this specification by those skilled in the art. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principle of the embodiments of this specification should be included within the scope of the claims of the embodiments of this specification.

Claims

1. A cooperative computing method applied to cooperative execution of a computing task between a terminal and an external computing power module, characterized in that, include: Identify the external computing module and obtain its computing power parameters; The acquired computational tasks are parsed into a set of computational steps; Based on the characteristics of each calculation step in the set of calculation steps, it is determined whether the calculation step is assigned to the external computing module or the terminal for local processing. The calculation steps are transmitted and the calculation task is executed via a communication interface; The calculation results from the local terminal and the external computing module are combined and the final result is output.

2. The method of claim 1, wherein, The process of identifying the external computing module and obtaining its computing power parameters includes: Obtain the computation types, operator sets, storage capacity, bandwidth information, and computational precision supported by the external computing module.

3. The method of claim 1, wherein, The process of parsing the acquired computational task into a set of computational steps includes: Analyze the computation graph in the computation task to identify each computation step; The computation steps are initially divided into operator categories and task scheduling to generate a set of computation steps.

4. The method of claim 3, wherein, The preliminary division of the computation steps into operator classification and task scheduling to generate a set of computation steps includes: Perform a computational complexity analysis on each of the computational steps to estimate the computational cost of each step; Based on the data dependencies of each computation step, the execution order between the computation steps is constructed; Based on the memory requirements, access characteristics, and computational requirements of the computational steps, an initial division of operators and task scheduling is performed to generate a set of computational steps.

5. The method of claim 3, wherein, The step of determining which computing power module to allocate to the external computing power module or the terminal for processing based on the characteristics of each computing step in the set of computing steps includes: For each of the calculation steps, a computational complexity analysis is performed. Based on the computational load and the computational capability parameters, it is evaluated whether the calculation steps are suitable for execution in the external computing power module. The calculation steps suitable for execution in the external computing power module are then selected. In the computation steps that are suitable to be executed in the external computing module, an assessment is made as to whether the step should be assigned to the external computing module or executed locally on the terminal, based on the data transmission overhead, memory requirements and execution latency of each computation step.

6. The method of claim 5, wherein, The step of evaluating whether to allocate a computation step to the external computing module or the terminal for local execution based on the data transmission overhead, memory requirements, and execution latency of each computation step includes: If the calculation step is computationally intensive and has low data transmission overhead, then the calculation step is assigned to the external computing module for execution. If the calculation step has low computational complexity, high data transmission overhead, or high real-time requirements, it will be executed locally on the terminal.

7. A cooperative computing device applied to cooperative execution of a computing task between a terminal and an external computing power module, characterized in that, include: A computing power parameter acquisition unit is used to identify the external computing power module and acquire the computing power parameters of the external computing power module. The parsing unit is used to parse the acquired computation task into a set of computation steps; The allocation unit is used to determine whether to allocate the computation to the external computing module or the terminal for local processing based on the characteristics of each computation step in the set of computation steps and the computing capability parameters of the external computing module. A transmission execution unit is used to transmit the computation steps and execute the computation task through a communication interface; The output unit is used to merge the calculation results from the local terminal and the external computing module and output the final result.

8. The Synergy Compute Device of claim 7, wherein, The parsing unit includes: The identification module is used to parse the computation graph in the computation task and identify each of the computation steps; The partitioning module is used to perform operator classification and preliminary task scheduling for the computation steps, generating a set of computation steps.

9. A computer device comprising a memory, a processor, and a computer program stored on the memory and executable on the processor, characterized in that, When the processor executes the computer program, it implements the collaborative computing method according to any one of claims 1 to 6.

10. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores a computer program that, when executed by a processor, implements the collaborative computing method of any one of claims 1 to 6.