Computing System on a Chip
By designing a multi-layer chip computing system, using multi-layer computing arrays or DSP chips and multi-modules to work together, the problems of low computing efficiency, lack of flexibility and limited task allocation mechanism in the existing technology are solved, and efficient and flexible computing task processing and resource utilization are achieved.
Patent Information
- Application Number
- CN202410428990.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-04-10
- Publication Date
- 2025-04-18
- Estimated Expiration
- 2044-04-10
AI Technical Summary
Existing computing arrays or DSP chips are not computationally efficient and lack flexibility when handling complex tasks, and have limited task allocation and computing restructuring mechanisms, making it difficult to adapt to different application scenarios and algorithm requirements.
A multi-layer chip computing system is designed, using a multi-layer computing array or DSP chip, each layer includes at least a first hierarchical layer and a second hierarchical layer, and each layer computing unit has different computing power and algorithms. The system includes a computing task allocation module, a partial computing task reallocation module, a computing operation execution module, a result transfer and integration module, and a result output module. Through these modules, the reasonable allocation, reallocation, operation, delivery, integration and result output of computing tasks are realized.
Improve computing efficiency and performance, enhance the flexibility of the system, enable it to adapt to different computing tasks and resource situations, make full use of computing resources, and optimize computing efficiency.
Smart Images

Figure CN118245219B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of chip computing technology, and in particular to a chip computing system. Background Art
[0002] In the field of processor and chip computing, computing arrays or DSP (Digital Signal Processing) chips already exist. For example, some existing processors and chips use computing arrays or DSP chip structures to handle computing tasks. Although this technology has made significant progress, it still has some shortcomings and limitations, including the following aspects:
[0003] Low computing efficiency: Since computing tasks usually require a lot of computing resources and computing power, some traditional computing architectures may not be able to achieve more efficient computing when processing complex tasks;
[0004] Lack of flexibility: For example, the design of some chips may be too specialized and only suitable for specific types of tasks, making it difficult to adapt to different application scenarios and algorithm requirements;
[0005] Limited task allocation and computational reorganization: For example, some chips may lack flexible task allocation and reallocation mechanisms, resulting in the inability to fully utilize computing resources and optimize computing efficiency.
[0006] These shortcomings and limitations may limit the application effectiveness of computing arrays or DSP chips in certain application scenarios. Therefore, further improvements are needed to meet the growing needs of artificial intelligence computing. Summary of the invention
[0007] In order to solve one of the above technical problems, the present invention proposes the following technical solution.
[0008] The first aspect of the present invention proposes a chip computing system, wherein the system is based on a computing array or DSP chip with a multi-level design as the core, and each layer of the computing array or DSP chip includes at least a plurality of hierarchical layers including a first hierarchical layer and a second hierarchical layer, wherein the first hierarchical layer includes a first number of computing units, and the second hierarchical layer includes a second number of computing units, the first number is different from the second number, the first hierarchical layer corresponds to a first computing requirement, and the second hierarchical layer corresponds to a second computing requirement, and the computing units of each hierarchical layer have different computing power and algorithms, and the system also includes a computing task allocation module, a partial computing task reallocation module, a computing operation execution module, a result transmission and integration module, and a result output module connected in sequence.
[0009] The computing task allocation module is used to split all computing tasks into multiple partial computing tasks and then allocate them to the corresponding hierarchical computing units, so that the computing units perform the corresponding partial computing tasks; the partial computing task reallocation module is used to readjust the hierarchical layer of any partial computing task, specifically to change the first hierarchical layer of the partial computing task to the second hierarchical layer according to the computing requirements when executing the same partial computing task for the first time; the computing operation execution module is located in each of the hierarchical computing units, and is used to perform the corresponding computing operation at the second time according to the requirements of the partial computing task, so as to realize the processing of the partial computing task and obtain the computing result; the result transmission and integration module is used to transmit the computing result to other computing units after the computing operation execution module performs the computing operation to obtain the computing result, and integrate the computing result to obtain the final result of the computing task; the result output module is used to output the final result of the computing task.
[0010] In addition, the chip computing system according to the above embodiment of the present invention may also have the following additional technical features.
[0011] According to one embodiment of the present invention, the computing task allocation module includes:
[0012] A demand analysis unit, used to perform demand analysis on all the computing tasks to obtain analysis results, wherein the analysis results include the computing resources and algorithm support required for the computing tasks; a capability assessment unit, used to perform capability assessment on each of the computing units to obtain assessment results, wherein the assessment results include the computing capability of the computing unit and the applicable task type; a task allocation unit, used to formulate a task allocation strategy based on the analysis results and the assessment results; a task decomposition unit, used to decompose all computing tasks into multiple partial computing tasks of different granularities according to the task allocation strategy; a partial computing task allocation unit, used to allocate the multiple partial computing tasks to the corresponding hierarchical computing units.
[0013] According to one embodiment of the present invention, the computing task allocation module also includes: a task dynamic adjustment unit, which is used to dynamically adjust the allocation of tasks during the execution of the computing task; a task monitoring and management unit, which is used to monitor the computing status of the computing unit during the execution of the computing task, and perform task management and scheduling based on the monitoring results.
[0014] According to one embodiment of the present invention, the partial computing task includes at least one operation of convolution, activation and pooling of different granularities.
[0015] According to one embodiment of the present invention, the partial computing task reallocation module includes:
[0016] The first task splitting unit is used to split any part of the computing task according to the first splitting requirement to obtain multiple partial computing subtasks, wherein the granularity of the partial computing subtask is smaller than the partial computing task; the first task merging unit is used to merge the multiple partial computing tasks according to the first merging requirement to obtain a merged partial computing task, wherein the granularity of the merged partial computing task is larger than the partial computing task before the merger; the first task reallocation unit is used to reallocate the partial computing subtasks or the merged partial computing tasks to a suitable hierarchical layer according to the calculation results of the computing unit of the previous hierarchical layer and the requirements of the operation of the next hierarchical layer.
[0017] According to one embodiment of the present invention, the first hierarchical layer or the second hierarchical layer includes at least a plurality of computing groups including a first computing group and a second computing group, the first computing group corresponds to a first part of computing subtask requirements, the second computing group corresponds to a second part of computing subtask requirements, and the first part of computing subtask and the second part of computing subtask are both partial computing subtasks with a granularity smaller than that of a partial computing task.
[0018] The partial computing task reallocation module is also used to readjust the computing grouping of any part of the computing subtasks in the same hierarchical layer, and the partial computing task reallocation module also includes:
[0019] A second task splitting unit is used to split a part of the computing subtasks of any computing group of the computing unit in the same hierarchical layer according to a second splitting requirement to obtain a plurality of split partial computing subtasks, wherein the granularity of the split partial computing subtasks is smaller than that of the partial computing subtasks before the splitting. The second task splitting unit is specifically used to split the second partial computing subtask to obtain two split second partial computing subtasks when performing the splitting operation; a second task merging unit is used to merge a plurality of partial computing subtasks in the same hierarchical layer according to a second merging requirement to obtain a merged partial computing subtask, wherein the granularity of the merged partial computing subtask is larger than that of the partial computing subtasks before the merge. The second task merging unit is specifically used to merge part of the second part of the computing subtask with the first part of the computing subtask to obtain a merged partial computing subtask when performing a merging operation; the second task reallocation unit is used to reallocate the split partial computing subtasks or the merged partial computing subtasks to appropriate computing groups within the same hierarchical layer according to the calculation results of the previous hierarchical layer calculation unit and the requirements of the next hierarchical layer operation, and is specifically used to reallocate one of the split second part computing subtasks to the second computing group, and merge another split second part computing subtask with the first part computing subtask and then reallocate it to the first computing group when performing a reallocation operation.
[0020] According to one embodiment of the present invention, the partial computing task reallocation module also includes: a partial task dynamic adjustment unit, which is used to dynamically adjust the allocation of partial computing tasks or partial computing subtasks according to changes in computing resources and computing requirements during the calculation process of partial computing tasks or partial computing subtasks.
[0021] According to one embodiment of the present invention, the computing operation execution module includes:
[0022] An operation scheduling unit is used to schedule some of the computing tasks corresponding to the computing unit according to the execution order and priority; a computing operation execution unit is used to perform computing operations on the input data corresponding to some of the computing tasks at a second time according to the scheduling results and using the internal computing resources of the computing unit, and generate corresponding computing results to realize the processing of some of the computing tasks; an error handling unit is used to monitor whether computing errors occur during the execution of computing operations, and to perform error handling or notify the system administrator at a third time when errors occur, specifically for locating the error location, analyzing the cause of the error, and recording and repairing the error.
[0023] According to one embodiment of the present invention, the result delivery and integration module includes:
[0024] A result delivery unit is used to deliver the calculation result to the upper hierarchical layer or the next hierarchical layer calculation unit in a first manner at a fourth time after the calculation operation is completed, so as to facilitate the execution of subsequent calculation operations; a result integration unit is used to integrate the calculation result in a second manner at a fifth time after the upper hierarchical layer or the next hierarchical layer calculation unit receives the calculation result, so as to obtain the final result of the calculation task; an optimization unit for result delivery and integration is used to optimize the result delivery and integration process in a third manner, and the first manner, the second manner and the third manner are different from each other.
[0025] According to one embodiment of the present invention, the first method adopted by the result delivery unit is at least one of direct transmission, transmission through caching, storage or intermediate medium, the second method adopted by the result integration unit is at least one of addition, average operation, data merging and merge sorting, and the third method includes at least one of distributed computing, parallel computing, asynchronous transmission, caching, preprocessing and data compression.
[0026] The technical solution of the embodiment of the present invention can improve computing efficiency and performance through the reasonable allocation, reallocation, operation, transfer, integration and result output of computing tasks, and has flexibility, which is conducive to the system adapting to different computing tasks. It also has a reallocation mechanism, which is conducive to making full use of computing resources and optimizing computing efficiency. BRIEF DESCRIPTION OF THE DRAWINGS
[0027] Figure 1 FIG. 4 is a block diagram of a chip computing system according to an embodiment of the present invention.
[0028] Figure 2 The diagram is a schematic diagram of cross-granularity merging of some computing tasks according to an embodiment of the present invention. DETAILED DESCRIPTION
[0029] The following will be combined with the drawings in the embodiments of the present invention to clearly and completely describe the technical solutions in the embodiments of the present invention. Obviously, the described embodiments are only part of the embodiments of the present invention, not all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of the present invention.
[0030] Figure 1 FIG. 4 is a block diagram of a chip computing system according to an embodiment of the present invention.
[0031] The chip computing system uses a multi-level computing array or DSP chip as the core. Each layer of computing array or DSP chip includes at least a first hierarchical layer and a second hierarchical layer. The first hierarchical layer includes a first number of computing units, and the second hierarchical layer includes a second number of computing units. The first number is different from the second number (both can be at least one). The first hierarchical layer corresponds to a first computing requirement, and the second hierarchical layer corresponds to a second computing requirement. The computing units of each hierarchical layer have different computing power and algorithms. The levels of each hierarchical layer are different. This hierarchical design (uniformly distributed from high to low) can be flexibly adjusted according to the needs of the computing task. For example, it can be determined according to the type of computing task so that different types of tasks can be executed on appropriate computing units, thereby improving computing efficiency and performance.
[0032] Each computing unit has different levels, and different computing units have different computing power and (supported) algorithms. These computing units can be physical units on hardware or virtual computing units implemented in chips. Each computing unit has a certain computing power and supported algorithms, and can independently perform computing tasks. Therefore, in a chip computing system with a multi-level computing array or DSP chip as the core, through task allocation and reallocation, different computing units can perform different computing tasks according to their computing power and supported algorithms.
[0033] like Figure 1 As shown, the chip computing system also includes a computing task allocation module 1, a partial computing task reallocation module 2, a computing operation execution module 3, a result transmission and integration module 4, and a result output module 5 which are connected in sequence.
[0034] The computing task allocation module 1 is used to split all computing tasks into multiple partial computing tasks and then allocate them to the corresponding hierarchical computing units, so that the computing units execute the corresponding partial computing tasks; the partial computing task reallocation module 2 is used to readjust the hierarchical layer of any partial computing task, specifically to change the first hierarchical layer of the partial computing task to the second hierarchical layer according to the computing requirements when executing the same partial computing task for the first time; the computing operation execution module 3 is located in each hierarchical computing unit, and is used to execute the corresponding computing operation at the second time according to the requirements of the partial computing task, so as to realize the processing of the partial computing task and obtain the computing result; the result transmission and integration module 4 is used to transmit the computing result to other computing units after the computing operation execution module performs the computing operation to obtain the computing result, and integrate the computing result to obtain the final result of the computing task; the result output module 5 is used to output the final result of the computing task.
[0035] The first time and the second time may refer to the time required for reallocation and execution of a certain part of the computing task.
[0036] Specifically, after the system acquires or receives all computing tasks, the computing task allocation module 1 breaks down each computing task into multiple partial computing tasks, and allocates the partial computing tasks to the corresponding computing units at each hierarchical layer based on the requirements of the computing tasks (such as the type), the computing power of the computing unit, and the supported algorithms. Then, the partial computing task reallocation module 2 readjusts the hierarchical layer of any partial computing task on the one hand, thereby realizing the coordination and reallocation of partial computing tasks. Specifically, in the process of processing and operating any computing task, the first hierarchical layer of the partial computing task can be changed to the second hierarchical layer according to the computing requirements, so as to realize the dynamic reallocation of partial computing tasks by changing the computing unit. After the allocation is completed, the computing operation execution module 3 executes the corresponding computing operations at the second time according to the requirements of each task, realizes the processing and operation of the partial computing tasks, and obtains the computing results. After the computing unit performs the computing operation and obtains the computing result, the result transmission and integration module 4 transmits the computing result to other computing units through the internal communication channel, and performs further computing integration in other computing units to obtain the final result of the computing task. The result output module 5 can output the final result according to user needs, thereby realizing the deployment or allocation, reallocation, operation, transmission, integration and output of computing tasks.
[0037] Among them, some computing tasks are computing sub-links disassembled from computing tasks, including but not limited to at least one of the operations of convolution, activation and pooling of different granularities, and the computing networks involved include but are not limited to CNN (Convolutional Neural Network), DNN (Deep Neural Network), SNN (Shallow Neural Network), RNN (Recurrent Neural Network), FCN (Fully Convolutional Networks), Transformer Neural Network, etc. Such a design allows computing tasks to be reasonably allocated and deployed according to the requirements of the tasks (such as characteristics, types, etc.) and the capabilities of the computing units, thereby improving computing efficiency and performance.
[0038] In the embodiment of the present invention, a multi-level computing array or DSP chip is designed, and each computing unit in each level has different hierarchical levels (the levels can be determined according to the requirements of possible computing tasks, such as type, etc.), and has different computing capabilities and algorithm support. The computing tasks can be combined with the requirements of the computing tasks, and the computing tasks can be allocated according to the levels, computing power and algorithms of the computing units to achieve matching of computing power and algorithms. For example, for computing-intensive tasks, they can be allocated to computing units with higher computing power; for tasks with lower computational complexity, they can be allocated to computing units with lower computing power but lower power consumption. This matching of algorithm and computing power can be flexibly adjusted according to the requirements of the task and the status of chip resources to achieve optimal computing resource utilization.
[0039] The computing task allocation module 1 is used to decompose the computing task and reasonably allocate it to different computing units for processing, thereby improving computing efficiency and performance; the partial computing task reallocation module 2 is used to coordinate and reallocate some computing tasks across granularities, thereby achieving allocation optimization and completing a more flexible layer-by-layer hierarchical deconstruction mechanism, which not only improves computing efficiency and performance, but also improves flexibility, is conducive to the system adapting to different application scenarios and algorithms, and computing power requirements, and is conducive to making full use of computing resources and optimizing computing efficiency; the result transmission and integration module 4 ensures that the calculation results obtained by the computing units at each hierarchical layer in the multi-level computing array or DSP can be effectively merged into the final result, thereby achieving global computing task completion and result accuracy.
[0040] The embodiments of the present invention implement a flexible and efficient computing method, which can be optimized according to computing tasks with different requirements and chip computing resources, thereby improving computing efficiency and performance, and supporting diverse artificial intelligence computing tasks, thereby meeting the growing needs of artificial intelligence computing.
[0041] Therefore, the chip computing system of the embodiment of the present invention can improve computing efficiency and performance through the reasonable allocation, reallocation, operation, transfer, integration and result output of computing tasks, and has flexibility, which is conducive to the system adapting to different computing tasks. It also has a reallocation mechanism, which is conducive to making full use of computing resources and optimizing computing efficiency.
[0042] In one embodiment of the present invention, the computing task allocation module 1 includes a demand analysis unit, a capability assessment unit, a task allocation unit, a task decomposition unit and a partial computing task allocation unit.
[0043] A demand analysis unit is used to perform demand analysis on all computing tasks to obtain analysis results, wherein the analysis results include the computing resources, computing power and algorithm support required for the computing tasks; a capability assessment unit is used to perform capability assessment on each computing unit to obtain assessment results, wherein the assessment results include the computing capability of the computing unit and the applicable task type; a task allocation unit is used to formulate a task allocation strategy based on the analysis results and the assessment results; a task decomposition unit is used to decompose all computing tasks into multiple partial computing tasks of different granularities according to the task allocation strategy; a partial computing task allocation unit is used to allocate multiple partial computing tasks to corresponding computing units at each hierarchical layer.
[0044] Furthermore, the computing task allocation module 1 may also include a task dynamic adjustment unit and a task monitoring and management unit.
[0045] The task dynamic adjustment unit is used to dynamically adjust the task allocation during the execution of the computing task; the task monitoring and management unit is used to monitor the computing status of the computing unit during the execution of the computing task, and perform task management and scheduling based on the monitoring results.
[0046] Specifically, the purpose of computing task allocation is to reasonably allocate all computing tasks to different computing units for task processing according to the needs of computing tasks. The specific process of computing task allocation or deployment is described below:
[0047] Computing task demand analysis: First, the demand analysis unit conducts demand analysis on the computing task, which may include requirements on the task type, computing complexity, data scale, etc., so as to obtain the computing resources, computing power, and algorithm support required for the computing task;
[0048] Computing unit capability assessment: The capability assessment unit assesses the capabilities of each computing unit, including computing power, supported algorithms, resource usage, etc., to obtain the computing capability of each computing unit and the applicable computing task type;
[0049] Task allocation strategy formulation: The task allocation unit formulates a suitable task allocation strategy based on the analysis results (task requirements) and evaluation results (computing unit capabilities). For example, for computationally intensive tasks, they can be assigned to computing units with high computing power; for tasks with lower computational complexity, they can be assigned to computing units with lower computing power but lower power consumption. In addition, factors such as the dependency between computing tasks, communication overhead, and load balancing can also be considered to comprehensively select the appropriate computing unit for task allocation;
[0050] Computing task decomposition: The task decomposition unit decomposes all computing tasks into multiple partial computing tasks of different granularities according to the task allocation strategy, such as convolution, activation, pooling and other sub-operations. Appropriate sub-operations can be selected according to the capabilities of the computing unit and task requirements, and assigned to the corresponding computing unit for processing;
[0051] Partial computing task allocation: The partial computing task allocation unit allocates part of the computing tasks to the corresponding computing units for processing according to the computing capabilities of the computing units and the task requirements. This can be achieved through programming or hardware configuration to ensure that each computing unit can perform calculations according to the task requirements and pass the calculation results to the computing units in the next stage;
[0052] Dynamic task adjustment: During the execution of computing tasks, the task dynamic adjustment unit can dynamically adjust tasks according to the real-time computing situation and the utilization of computing resources. For example, if a computing unit has strong computing power, it can be assigned more computing tasks; if a computing unit has weak computing power or tight resources, it can be assigned fewer computing tasks or the tasks can be reallocated to other computing units. Such dynamic task adjustment can help optimize the utilization of computing resources and improve computing efficiency and performance.
[0053] Computing task monitoring and management: During the execution of computing tasks, the task monitoring and management unit needs to perform real-time monitoring and management. Task management and scheduling can be performed by monitoring the computing status, resource utilization, task execution progress and other information of the computing unit. For example, the computing speed and load of the computing unit can be monitored to promptly discover and resolve possible bottlenecks or resource shortages to ensure the smooth execution of computing tasks.
[0054] Task completion and result aggregation: When all partial computing tasks are completed, the task completion and result aggregation unit needs to aggregate the computing results from each computing unit to a central node or output device. This can be achieved through network communication or other means to ensure the integrity and accuracy of the computing results.
[0055] In summary, the computing task allocation module can make full use of the computing power of computing units at different hierarchical levels in a multi-level computing array or DSP chip through reasonable task allocation, decomposition and allocation of some computing tasks, and dynamic task adjustment and task management, thereby improving computing efficiency and performance, thereby solving some limitations and shortcomings in task allocation and resource utilization in traditional computing models.
[0056] In one embodiment of the present invention, the partial computing task reallocation module 2 includes a first task splitting unit, a first task merging unit and a first task reallocation unit.
[0057] The first task splitting unit is used to split any part of the computing task into multiple partial computing subtasks according to the first splitting requirement, wherein the granularity of the partial computing subtasks is smaller than that of the partial computing task.
[0058] The first task merging unit is used to merge multiple partial computing tasks according to a first merging requirement to obtain a merged partial computing task, wherein the granularity of the merged partial computing task is greater than that of the partial computing task before the merger.
[0059] The first task reallocation unit is used to reallocate part of the computing subtasks or the merged part of the computing tasks to a suitable hierarchical layer according to the computing results of the computing unit of the previous hierarchical layer and the requirements of the operation of the next hierarchical layer.
[0060] The first splitting requirement and the first merging requirement refer to the conditions and requirements considered when splitting and merging some computing tasks, respectively, and can be set specifically according to actual needs.
[0061] In one example, the first hierarchical layer or the second hierarchical layer includes multiple computing groups including at least a first computing group and a second computing group, the first computing group corresponds to the first part of the computing subtask requirements, the second computing group corresponds to the second part of the computing subtask requirements, the first part of the computing subtask and the second part of the computing subtask are both partial computing subtasks of smaller granularity, that is, the granularity of the first part of the computing subtask and the second part of the computing subtask are both smaller than the partial computing subtask (the granularity of the partial computing subtask is smaller than the granularity of the partial computing task).
[0062] Furthermore, the partial computing task reallocation module 2 can also be used to readjust the computing grouping of any part of the computing subtasks in the same hierarchical layer.
[0063] The partial computing task reallocation module 2 may further include a second task splitting unit, a second task merging unit and a second task reallocation unit.
[0064] The second task splitting unit is used to split any part of the computing task of the same hierarchical layer computing unit according to the second splitting requirement to obtain multiple split partial computing subtasks, wherein the granularity of the split partial computing subtask is smaller than that of the partial computing subtask before the splitting, that is, the partial computing task is split into multiple smaller granularity partial computing subtasks. For example, taking the second partial computing subtask as an example, the second task splitting unit is specifically used to split the second partial computing subtask to obtain two split second partial computing subtasks when performing the splitting operation, that is, split the second partial subtask into two smaller granularity partial computing subtasks.
[0065] The second task merging unit is used to merge multiple (similar) partial computing subtasks of the same hierarchical computing unit according to the second merging requirement to obtain a merged partial computing subtask, wherein the granularity of the merged partial computing subtask is greater than that of the partial computing subtask before the merger, that is, to merge multiple similar partial computing subtasks into a partial computing subtask of a larger granularity. For example, the second task merging unit is specifically used to merge part of the second partial computing subtask with the first partial computing subtask into a merged partial computing subtask of a larger granularity when performing a merging operation.
[0066] The second task reallocation unit is used to reallocate the split part of the computing subtasks or the merged part of the computing subtasks to the appropriate computing group within the same hierarchical layer according to the computing results of the computing unit of the previous hierarchical layer and the requirements of the operation of the next hierarchical layer. Specifically, when performing the reallocation operation, it is used to reallocate a split second part of the computing subtask to the second computing group, and merge another part of the split second part of the computing subtask with the first part of the computing subtask and then reallocate the resultant part to the first computing group.
[0067] The second splitting requirement and the second merging requirement refer to the conditions and requirements considered when splitting and merging some computing subtasks, respectively, and can be set according to actual needs.
[0068] Furthermore, the partial computing task reallocation module 2 may also include: a partial task dynamic adjustment unit, which is used to dynamically adjust the allocation of partial computing tasks or partial computing subtasks according to changes in computing resources and computing requirements during the calculation process of partial computing tasks or partial computing subtasks.
[0069] Specifically, the embodiment of the present invention introduces a partial computing task reallocation module 2, which is used to coordinate the computing results of the computing units of the previous hierarchical layer across granularity and re-adapt to the operations of the next hierarchical layer and readjust the computing grouping of any part of the computing subtasks in the same hierarchical layer. This module can reorganize (split or merge) part of the computing tasks of the previous hierarchical layer according to task requirements, and send the reorganized data to the computing units of the next hierarchical layer, so as to complete the computing tasks more efficiently, and further realize a more flexible layer-by-layer hierarchical deconstruction mechanism.
[0070] The partial computing task reallocation module 2 readjusts the hierarchical layer of any partial computing task on the one hand, and readjusts (such as merging, etc.) the computing grouping of any partial computing subtask in the same hierarchical layer on the other hand, thereby realizing the coordination and reallocation of partial computing tasks. Specifically, in the process of processing and operating any computing task, the first hierarchical layer of the partial computing task can be changed to the second hierarchical layer according to the computing requirements, and the partial computing task can be split and merged to obtain the split and merged partial computing subtasks, and the split and merged partial computing subtasks are reallocated. For example, the second partial computing subtask is split into a part and another part, and the part of the split second partial computing subtask is reallocated to the second computing grouping, and the other part of the second partial computing subtask is merged with the first partial computing subtask and reallocated to the first computing grouping, so as to realize the dynamic reallocation of partial computing tasks and their partial computing subtasks by changing the computing unit.
[0071] During the calculation process of the first hierarchical layer or the second hierarchical layer, it is possible to monitor in real time whether some of the calculation subtasks meet the splitting requirements or the merging requirements. When the splitting requirements are met, a splitting operation is performed, for example, the second part of the calculation subtask can be split into a second part of the calculation subtask with a smaller granularity; when the merging requirements are met, a merging operation is performed to merge part of the second part of the calculation subtask with the first part of the calculation subtask into a merged partial calculation subtask with a larger granularity.
[0072] The cross-granularity partial computing task reallocation is used to readjust the hierarchical layer of any part of the computing task and the computing group of any hierarchical layer. Taking the readjustment of the hierarchical layer as an example, it can be achieved through the following steps:
[0073] Partial computing task splitting: When a part of the computing task of any computing unit meets the splitting requirements, such as when the part of the computing task is too complex or the computing resources are limited, the task splitting unit can split it into multiple smaller-granularity partial computing tasks, and the first task reallocation unit can reallocate these reorganized partial computing tasks to the computing units of the next hierarchical layer according to the calculation results of the computing units of the previous hierarchical layer and the requirements of the operations of the next hierarchical layer. For example, for a large-scale deep neural network computing task, it can be split into multiple small-scale partial computing tasks, which are calculated by different computing units respectively;
[0074] Merging of partial computing tasks: When the partial computing tasks of any computing unit meet the merging requirements, such as when the partial computing tasks are relatively simple or the computing resources are sufficient, the first task merging unit can merge multiple similar partial computing tasks into a larger-scale partial computing task to reduce communication and computing overhead. Figure 2 As shown, for multiple partial computing tasks A1, A2, A3, A4, A5, A6, A7 and A8 of any computing unit, when the computing resources are sufficient and A1, A2, A3 and A4 are all convolution operations of adjacent pixels, and A5, A6, A7 and A8 are all pooling operations, they can be merged into a larger convolution operation B1 and pooling operation B2, respectively, and can be assigned to the same computing unit by the task allocation unit to execute B1 and B2.
[0075] Partial computing task matching: In the cross-granularity partial computing task reallocation, the calculation results of the computing unit of the previous hierarchical layer and the requirements of the operation of the next hierarchical layer need to be considered to ensure the rationality of task allocation. For example, the most suitable partial computing tasks can be selected for allocation based on the calculation results of the computing unit of the previous hierarchical layer and the input characteristics of the operation of the next hierarchical layer, so as to maximize the use of computing resources and improve computing efficiency.
[0076] Dynamic adjustment of some computing tasks: The reallocation of some computing tasks across granularities can be dynamic, and can be adjusted in real time according to changes in computing resources and task requirements during the computing process. For example, the allocation strategy of some computing tasks can be dynamically adjusted according to information such as the computing status of the computing unit, resource utilization, and task execution progress to adapt to changes in the computing environment;
[0077] The cross-granularity partial computing task reallocation is also used to readjust the computing grouping of any part of the computing subtasks within the same hierarchical layer. The specific steps also include: task splitting and merging, task matching, and dynamic task adjustment, which are specifically implemented through the second task splitting unit, the second task merging unit, and the second task reallocation unit, which will not be repeated here.
[0078] By reallocating partial computing tasks and partial computing subtasks across granularities, the workflow of an embodiment of the present invention can achieve flexible task allocation and resource utilization among different computing units, thereby improving computing efficiency and performance and adapting to different computing tasks and computing resource conditions.
[0079] In one embodiment of the present invention, the computing operation execution module 3 may include an operation scheduling unit, a computing operation execution unit and an error handling unit.
[0080] An operation scheduling unit is used to schedule some of the computing tasks corresponding to the computing unit according to the execution order and priority; a computing operation execution unit is used to perform computing operations on the input data corresponding to some of the computing tasks at a second time according to the scheduling results and using the internal computing resources of the computing unit, and generate corresponding computing results to realize the processing of some of the computing tasks; an error handling unit is used to monitor whether computing errors occur during the execution of computing operations, and to perform error handling or notify the system administrator at a third time when errors occur, specifically for locating the error location, analyzing the cause of the error, and recording and repairing the error.
[0081] The third time may refer to the time required for error processing.
[0082] Specifically, the computing operation execution module 3 performs corresponding computing operations, such as convolution, activation, pooling and other operations, in each computing unit according to task requirements to realize the processing of computing tasks.
[0083] The calculation operation execution includes the following steps:
[0084] Operation scheduling: In the workflow, the operation scheduling units of computing units at all levels execute computing operations in sequence according to the task allocation strategy and computing resource conditions. The computing operations to be executed are scheduled according to the execution order and priority to ensure that each computing unit executes the computing tasks in the predetermined operation order;
[0085] Data transmission: During the execution of computing operations, data transmission between different computing units is involved. The data transmission unit can perform data transmission between the computing unit where it is located and other computing units. For example, the result calculated by the upper-level computing unit needs to be transmitted to the lower-level computing unit as input. Data transmission can be carried out through high-speed data channels or dedicated communication networks to ensure fast data transmission and effective use;
[0086] Execution of computing operations: Once the computing unit obtains the input data required to perform the computing operation, the computing operation execution unit can start to perform the computing operation according to the scheduling result. The specific way of executing the computing operation depends on the nature of the computing task, such as matrix operation, convolution operation, activation function, etc. During the execution of the computing operation, the computing unit will use its internal computing resources, such as processor, memory, etc., to calculate the input data and generate the corresponding calculation results to realize the processing of part of the computing task;
[0087] Result return: After the calculation operation is completed, the calculation unit returns the calculation result to the upper or lower level calculation unit (i.e. the upper hierarchical layer or the lower hierarchical layer calculation unit) for subsequent calculation operations or tasks. The result return can be carried out through the same data transmission channel or network to ensure the timely delivery and accuracy of the calculation results;
[0088] Error handling: During the execution of computing operations, errors may occur, such as computing unit failure, data transmission error, computing error, etc. The error handling unit monitors computing errors in real time, handles errors or notifies the system administrator in the third time when errors occur, and locates the error, analyzes the cause of the error, and records and repairs the error. The workflow needs to have an error handling mechanism that can detect and handle errors that may occur during the execution of computing operations, such as re-executing failed computing operations, repairing errors, or notifying system administrators, etc., to ensure the correct completion of computing tasks and the stability of the system.
[0089] Through the above steps, the embodiment of the present invention can efficiently perform computing operations, realize the allocation and coordination of computing tasks across granularities, thereby improving computing efficiency and performance. At the same time, the error handling mechanism can also ensure the reliable execution of computing tasks and the stability of the system.
[0090] In one embodiment of the present invention, the result delivery and integration module 4 may include a result delivery unit, a result integration unit, and a result delivery and integration optimization unit.
[0091] A result delivery unit is used to deliver the calculation result to the upper hierarchical layer or the next hierarchical layer calculation unit in a first manner at a fourth time after the calculation operation is completed, so as to facilitate the execution of subsequent calculation operations or tasks; a result integration unit is used to integrate the calculation result in a second manner at a fifth time after the upper hierarchical layer or the next hierarchical layer calculation unit receives the calculation result, so as to obtain the final result of the calculation task; an optimization unit for result delivery and integration is used to optimize the result delivery and integration process in a third manner, and the first manner, the second manner and the third manner are different from each other.
[0092] The fourth time and the fifth time may refer to the time required for transmitting and integrating the calculation results, respectively.
[0093] Furthermore, the first method adopted by the result transfer unit may be at least one of direct transmission, transmission through caching, storage or intermediate media, the second method adopted by the result integration unit may be at least one of addition, average operation, data merging and merge sorting, and the third method adopted by the optimization unit for result transfer and integration may include at least one of distributed computing, parallel computing, asynchronous transmission, caching, preprocessing and data compression. The embodiments of the present invention do not impose any restrictions on this.
[0094] Specifically, after receiving the calculation results of the calculation operations of the sub-level calculation units, the result transmission and integration module 4 transmits them to other calculation units through the internal communication channel for further calculation integration, so as to obtain the final result.
[0095] Result delivery and integration includes the following steps:
[0096] Result transfer: At the fourth time after the computing operation is completed, the result transfer unit of the computing unit transfers the computing result to the computing unit of the upper hierarchical layer or the next hierarchical layer through the first method for subsequent computing operations or tasks. The method of result transfer depends on the connection method and communication protocol between the computing units. The first method can be direct data transmission or transfer through cache, storage or other intermediate media. In order to ensure the efficiency and reliability of result transfer, high-speed data channels, transmission protocols and error detection / correction mechanisms can be used;
[0097] Result integration: At the fifth time after receiving the calculation results, the calculation unit of the previous hierarchical layer or the next hierarchical layer needs to integrate the results through the second method, that is, to integrate the settlement results through the result integration unit. Result integration is the process of merging the results calculated by multiple calculation units into the final result. The specific result integration method depends on the nature of the calculation task and the format of the result. The second method can be simple operations such as addition and average, or complex algorithms such as data merging and merge sorting. The result integration process needs to consider the consistency of calculation results and data consistency between calculation units to ensure the accuracy and completeness of the final result.
[0098] Optimization of result delivery and integration: In the workflow, result delivery and integration may become a performance bottleneck, especially in large-scale and high-concurrency computing tasks. Therefore, it is necessary to optimize result delivery and integration through a third method, so the result delivery and integration process is optimized through the optimization unit of result delivery and integration to improve the overall performance of the workflow. For example, the third method can be the use of distributed computing, parallel computing, asynchronous transmission and other technologies to reduce the waiting time and processing time of the delivery and integration process. At the same time, it can also be the use of caching, preprocessing, result compression and other technologies to reduce the amount of data transmission and transmission delay, and improve the efficiency of delivery and integration.
[0099] Through the above steps, the embodiment of the present invention can efficiently transmit and integrate the calculation results, ensuring that the results calculated by the calculation units of each hierarchical layer in the multi-level calculation array or DSP chip can be merged into the final result, thereby achieving the global completion of the calculation task and the accuracy of the result. At the same time, optimizing the result transmission and integration process can also improve the performance and efficiency of the workflow and accelerate the completion speed of the calculation task.
[0100] In one embodiment of the present invention, the result output module 5 can be specifically used to output the final result according to the requirements of the computing task (such as application field, type and property, etc.).
[0101] Specifically, after calculation and integration by a computing system with a multi-level computing array or DSP chip as the core, the final result of the computing task is obtained.
[0102] The final output results include the following aspects:
[0103] The main output of the computing task: Depending on the specific computing task, the final result can be various types of data, such as numerical values, images, text, audio, etc., depending on the application field and requirements of the computing task. For example, for scientific computing tasks, the final result may be the result of numerical calculations, such as physical parameters of simulation calculations, results of statistical analysis, etc.; for image processing tasks, the output result may be a processed image, such as image enhancement, image segmentation, object detection, etc.;
[0104] Format and presentation of results: The final result can be presented in different formats and presentation methods, such as text, images, tables, graphics, etc. The specific format and presentation method depends on the nature of the computing task and the application requirements. For example, for a text generation task, the final result can be the generated text content presented in text format; for an image processing task, the final result can be the processed image saved in image format; for a data analysis task, the final result can be a statistical result in the form of tables, graphics, etc.
[0105] Results display and visualization: To facilitate users to understand and use the output results, the workflow usually provides results display and visualization functions. For example, the final results can be intuitively displayed to users through graphical interfaces, charts, images, etc., so that users can quickly obtain the results of the computing tasks and conduct further analysis and processing;
[0106] Storage and output of results: The final results also need to be stored and output in the workflow so that users can access and use them at any time. Various storage methods can be used, such as memory storage, disk storage, cloud storage, etc., to meet different application scenarios and needs. At the same time, the final results can also be output through files, network interfaces, APIs, etc., which is convenient for users to further process and apply them in other applications.
[0107] Through the above methods, the final results can meet the needs of users and provide users with high-quality and highly visualized computing task results, which is convenient for users to conduct further analysis, application and decision-making.
[0108] Finally, through the above workflow, the embodiment of the present invention realizes a processor chip architecture solution based on layer-by-layer hierarchical deconstruction, which can flexibly and efficiently process different types of computing tasks and improve computing efficiency, flexibility and scalability.
[0109] Based on the above description, it can be known that the embodiment of the present invention realizes a chip computing system based on layer-by-layer hierarchical deconstruction. Specifically, with a multi-level computing array or DSP chip as the core, each layer of the computing array or DSP chip contains at least a plurality of hierarchical layer computing units including the first and second hierarchical layers. The computing power and supported algorithms of different hierarchical layer computing units are different. They can deploy different partial computing tasks according to the overall computing tasks. Different partial computing tasks are computing sub-links disassembled from the corresponding computing units. The computing networks include but are not limited to CNN, DNN, SNN, RNN, FCN, Transformer, etc. The sub-operations mainly include convolution, activation, pooling, etc. of different granularities. Further, the system also supports a cross-granularity partial computing task reallocation module. On the one hand, it is used to readjust the hierarchical layer of any part of the computing task, that is, to coordinate the calculation of the computing unit of the previous hierarchical layer to re-adapt to the operation of the next hierarchical layer. It splits or merges the partial computing tasks of the previous hierarchical layer, but does not perform any specific computing operations, and sends the reorganized data to the computing sub-units matching it in the next hierarchical layer; on the other hand, it is used to readjust the computing grouping of any part of the computing sub-tasks in the same hierarchical layer. This can achieve a more flexible layer-by-layer deconstruction mechanism to complete computing tasks more efficiently.
[0110] In summary, the beneficial effects of the embodiments of the present invention include but are not limited to the following aspects: Efficient multi-level computing array or DSP chip design: A design method for a multi-level computing array or DSP chip is provided, which realizes efficient computing resource utilization and task parallel processing through reasonable computing resource allocation and task scheduling, thereby greatly improving the execution efficiency and computing performance of computing tasks. Flexible computing task deployment: Supports cross-granular computing task reallocation, and can flexibly adjust the deployment of computing tasks between different computing resources according to actual conditions, thereby realizing dynamic management of resources and flexible scheduling, improving the utilization rate of computing resources and the adaptability of the system. Adaptive computing operation execution: According to the characteristics of different computing tasks and the situation of computing resources, the most appropriate computing operation is dynamically selected for execution, thereby optimizing the execution process of computing tasks and improving the efficiency and performance of computing. Efficient result delivery and integration: The results of computing tasks can be quickly delivered to users and integrated and displayed, which is convenient for users to analyze and apply the results, and improves the user experience and work efficiency. Scalable application areas: The workflow of the present invention is flexible and configurable, and can be applied to a variety of computing tasks and application areas, such as scientific computing, data analysis, audio processing, image processing, natural language processing, etc. It has strong versatility and scalability, and can meet the computing needs of different fields. Improve the overall performance of the computing system: Through multi-level computing array or DSP chip design, computing task deployment, adaptive computing operation execution, etc., the resource utilization, computing efficiency, and transmission and integration of computing results of the computing system are comprehensively optimized, thereby improving the overall performance of the computing system and the user experience, and reducing the development and maintenance costs of the computing system. Through the above beneficial effects, the embodiments of the present invention can provide efficient, flexible, adaptive and scalable solutions in computing task processing, and provide users with better computing experience and application effects.
[0111] In the present invention, unless otherwise clearly specified and limited, terms such as "installed", "connected", "connected", "fixed" and the like should be understood in a broad sense. For example, it can be a fixed connection, a detachable connection, or an integrated connection; it can be a mechanical connection or an electrical connection; it can be a direct connection or an indirect connection through an intermediate medium; it can be the internal connection of two elements or the interaction relationship between two elements.
[0112] In the description of this specification, the description with reference to the terms "one embodiment", "some embodiments", "example", "specific example", or "some examples" etc. means that the specific features, structures, materials or characteristics described in conjunction with the embodiment or example are included in at least one embodiment or example of the present invention. In this specification, the schematic representations of the above terms do not necessarily refer to the same embodiment or example. Although the embodiments of the present invention have been shown and described above, it can be understood that the above embodiments are exemplary and cannot be construed as limitations on the present invention, and those of ordinary skill in the art can change, modify, replace and modify the above embodiments within the scope of the present invention.
Claims
1. A chip computing system, characterized in that: The system is based on a computing array or DSP chip with a multi-level design as the core, each layer of the computing array or DSP chip includes at least a plurality of hierarchical layers including a first hierarchical layer and a second hierarchical layer, the first hierarchical layer includes a first number of computing units, the second hierarchical layer includes a second number of computing units, the first number is different from the second number, the first hierarchical layer corresponds to a first computing requirement, the second hierarchical layer corresponds to a second computing requirement, the computing units of each hierarchical layer have different computing power and algorithms, the system also includes a computing task allocation module, a partial computing task reallocation module, a computing operation execution module, a result transmission and integration module, and a result output module connected in sequence; The computing task allocation module is used to split all computing tasks into multiple partial computing tasks and allocate them to corresponding computing units at each hierarchical layer, so that the computing units perform the corresponding partial computing tasks; The partial computing task reallocation module is used to readjust the hierarchical layer of any partial computing task, specifically to change the first hierarchical layer of the partial computing task to the second hierarchical layer according to computing requirements when executing the same partial computing task for the first time; The computing operation execution module is located in each of the hierarchical layer computing units and is used to execute the corresponding computing operation at the second time according to the requirements of the partial computing tasks, so as to realize the processing of the partial computing tasks and obtain the computing results; The result transfer and integration module is used to transfer the calculation result to other calculation units after the calculation operation execution module performs the calculation operation to obtain the calculation result, and integrate the calculation results to obtain the final result of the calculation task; The result output module is used to output the final result of the computing task. The computing task allocation module includes: A demand analysis unit, configured to perform demand analysis on all the computing tasks to obtain analysis results, wherein the analysis results include computing resources and algorithm support required for the computing tasks; A capability evaluation unit, configured to perform capability evaluation on each of the computing units to obtain an evaluation result, wherein the evaluation result includes the computing capability of the computing unit and the applicable task type; A task allocation unit, configured to formulate a task allocation strategy based on the analysis result and the evaluation result; A task decomposition unit, used to decompose all computing tasks into multiple partial computing tasks of different granularities according to the task allocation strategy; A partial computing task allocating unit, used to allocate the plurality of partial computing tasks to the corresponding hierarchical layer computing units; A task dynamic adjustment unit, used for dynamically adjusting the distribution of tasks during the execution of the computing tasks; The task monitoring and management unit is used to monitor the computing status of the computing unit during the execution of the computing task, and to manage and schedule the task according to the monitoring results. The partial computing task reallocation module comprises: A first task splitting unit, configured to split any part of the computing task into a plurality of partial computing subtasks according to a first splitting requirement, wherein the granularity of the partial computing subtasks is smaller than that of the partial computing task; A first task merging unit, configured to merge the plurality of partial computing tasks according to a first merging requirement to obtain a merged partial computing task, wherein the granularity of the merged partial computing task is greater than that of the partial computing task before the merging; The first task reallocation unit is used to reallocate the part of the computing subtasks or the part of the merged computing tasks to a suitable hierarchical layer according to the computing result of the computing unit of the previous hierarchical layer and the demand of the operation of the next hierarchical layer, The first hierarchical layer or the second hierarchical layer includes at least a plurality of computing groups including a first computing group and a second computing group, the first computing group corresponds to a first portion of computing subtask requirements, the second computing group corresponds to a second portion of computing subtask requirements, and the first portion of computing subtasks and the second portion of computing subtasks are both partial computing subtasks with a granularity smaller than that of partial computing tasks; The partial computing task reallocation module is also used to readjust the computing grouping of any part of the computing subtasks in the same hierarchical layer; The partial computing task reallocation module also includes: A second task splitting unit is used to split a part of the computing subtasks of any computing group of the computing units in the same hierarchical layer according to the second splitting requirement to obtain a plurality of split part of the computing subtasks, wherein the granularity of the split part of the computing subtasks is smaller than the part of the computing subtasks before the splitting, and the second task splitting unit is specifically used to split the second part of the computing subtask to obtain two split second part of the computing subtasks when performing the splitting operation; A second task merging unit is used to merge multiple partial computing subtasks in the same hierarchical layer according to a second merging requirement to obtain a merged partial computing subtask, wherein the granularity of the merged partial computing subtask is greater than the partial computing subtask before the merger, and the second task merging unit is specifically used to merge part of the second partial computing subtask with the first partial computing subtask to obtain a merged partial computing subtask when performing the merging operation; The second task reallocation unit is used to reallocate the split part of the computing subtasks or the merged part of the computing subtasks to appropriate computing groups in the same hierarchical layer according to the computing result of the computing unit of the previous hierarchical layer and the requirements of the operation of the next hierarchical layer, and is specifically used to reallocate one of the split second part of the computing subtasks to the second computing group, and to merge another split second part of the computing subtasks with the first part of the computing subtasks and then reallocate them to the first computing group when performing the reallocation operation. The partial computing task reallocation module also includes: The partial task dynamic adjustment unit is used to dynamically adjust the allocation of partial computing tasks or partial computing subtasks according to the changes of computing resources and computing requirements during the computing process of partial computing tasks or partial computing subtasks. The computing operation execution module comprises: An operation scheduling unit is used to schedule some computing tasks corresponding to the computing unit according to the execution order and priority; A computing operation execution unit, configured to execute computing operations on input data corresponding to the partial computing tasks at a second time using computing resources inside the computing unit according to the scheduling result, and generate corresponding computing results to realize processing of the partial computing tasks; The error handling unit is used to monitor whether a computing error occurs during the execution of a computing operation, and to perform error handling or notify the system administrator at a third time when an error occurs. It is specifically used to locate the error, analyze the cause of the error, and record and repair the error.
2. The chip computing system according to claim 1, characterized in that: The partial computing tasks include at least one operation of convolution, activation and pooling of different granularities.
3. The chip computing system according to claim 1 or 2, characterized in that: The result delivery and integration module includes: a result delivery unit, configured to deliver the calculation result to a calculation unit of an upper hierarchical layer or a next hierarchical layer in a first manner at a fourth time after the calculation operation is completed, so as to facilitate the execution of a subsequent calculation operation; A result integration unit is used to integrate the calculation results by the second method at a fifth time after the calculation unit of the upper hierarchical layer or the next hierarchical layer receives the calculation results, so as to obtain a final result of the calculation task; The result delivery and integration optimization unit is used to optimize the result delivery and integration process through a third method, and the first method, the second method and the third method are different from each other.
4. The chip computing system according to claim 3, characterized in that: The first method adopted by the result delivery unit is at least one of direct transmission, transmission through caching, storage or intermediate media, the second method adopted by the result integration unit is at least one of addition, average operation, data merging and merge sorting, and the third method includes at least one of distributed computing, parallel computing, asynchronous transmission, caching, preprocessing and data compression.
Citation Information
Patent Citations
Baseband chip architecture and method for data flow pre-distribution and parallelism degree self-adjustment
CN116382921A
Hierarchical computing power scheduling method, system and equipment and storage medium
CN117707763A