A computing device and a signal synchronization method
By configuring the adjacent signal synchronization unit for each execution unit group in the computing device and using broadcast and polling methods to judge the completion of the synchronization task, the problem of long-distance synchronous communication delay caused by the centralized signal synchronization unit is solved, and higher resource utilization and lower area occupation are achieved.
Patent Information
- Application Number
- CN202410296893.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-03-15
- Publication Date
- 2025-05-30
- Estimated Expiration
- 2044-03-15
AI Technical Summary
In the prior art, the centralized signal synchronization unit causes a large delay in long-distance synchronous communication, resulting in low resource utilization.
Using the design of a distributed signal synchronization unit, each execution unit group is configured with a nearby signal synchronization unit. The first execution unit broadcasts the synchronization signal to each signal synchronization unit, and the second execution unit polls the entry recorded in the signal synchronization unit to judge the completion of the synchronization task.
The delay of long-distance synchronous communication is reduced, resource utilization is improved, and its area occupation is reduced by reducing the function of the signal synchronization unit.
Smart Images

Figure CN118132496B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of semiconductor technology, and particularly to a computing device and a signal synchronization method. Background Art
[0002] A global synchronization engine (GSE) is a unit used for signal synchronization among various execution units within a chip. Generally, a chip is configured with a centralized signal synchronization unit, which is located at the edge of the chip. When it synchronizes and communicates with different execution units, due to the different positions of the execution units within the chip, the communication time between each execution unit and the signal synchronization unit varies. There will be a significant delay in the communication between the signal synchronization unit and the execution unit farthest from it. The time cost involved needs to be borne jointly by all the execution units participating in the synchronization task.
[0003] Therefore, there is an urgent need for a solution to reduce the time delay of long-distance synchronous communication. Summary of the Invention
[0004] This application provides a computing device and a signal synchronization method, which can reduce the time delay of long-distance synchronous communication.
[0005] In a first aspect, this application provides a computing device, including multiple execution units that form multiple execution unit groups, with at least one execution unit in each execution unit group, and each execution unit group is configured with a neighboring signal synchronization unit; a first execution unit is configured to broadcast a synchronization signal to each signal synchronization unit; the first execution unit is the execution unit that generates data among the multiple execution units; the synchronization signal indicates that the first execution unit has completed the subtask corresponding to the current synchronization task; the signal synchronization unit is configured to receive the synchronization signals broadcast by each first execution unit and record the completion status of the subtasks corresponding to each first execution unit in the entries of the current synchronization task; a second execution unit is configured to poll and check the entries recorded in the signal synchronization unit corresponding to the execution unit group to which it belongs, and determine whether the current synchronization task is completed; if completed, then execute the next synchronization task; the second execution unit is the execution unit that consumes data among the multiple execution units.
[0006] In the above technical solution, a signal synchronization unit adjacent thereto is configured for each execution unit group. Each second execution unit determines whether the current synchronization task is completed by polling and checking the entries recorded in the signal synchronization unit corresponding to the execution unit group to which it belongs. Since the signal synchronization unit corresponding to the execution unit group to which the second execution unit belongs is located near the second execution unit, the second execution unit can quickly learn about the completion status of the current synchronization task. Compared with a centralized signal synchronization unit, the delay of long-distance synchronization communication can be reduced, thereby improving resource utilization. In addition, by canceling the two functions of each signal synchronization unit for checking whether the synchronization task is completed and sending a synchronization completion signal, and only retaining the function of the signal synchronization unit for recording entries, the area of each signal synchronization unit can be reduced, so that configuring multiple signal synchronization units will not additionally occupy too much area.
[0007] In a possible design, the computing device further includes a low-bandwidth synchronization bus connecting each execution unit and each signal synchronization unit; the first execution unit is configured to broadcast a synchronization signal to each signal synchronization unit through the low-bandwidth synchronization bus.
[0008] In the above technical solution, the first execution unit broadcasts a synchronization signal to each signal synchronization unit through a low-bandwidth synchronization bus to reduce communication costs.
[0009] In a possible design, each execution unit group includes one execution unit; the second execution unit is further configured to reset the entry of the current synchronization task in the signal synchronization unit corresponding to the second execution unit before executing the next synchronization task.
[0010] In the above technical solution, when a signal synchronization unit adjacent thereto is configured for each execution unit, the entry recorded in the signal synchronization unit is only polled and queried by the corresponding one execution unit. When the execution unit learns that the synchronization task is completed, the entry of the synchronization task can be reset.
[0011] In a possible design, each execution unit group includes multiple execution units; the second execution unit is further configured to reset the entry of the current synchronization task in the signal synchronization unit belonging to the execution unit group after determining that all the second execution units belonging to the execution unit group have learned about the entry of the current synchronization task.
[0012] In the above technical solution, when multiple execution units of a unit group share a signal synchronization unit adjacent thereto, the entry recorded in the signal synchronization unit will be polled and queried by multiple second execution units. The entry of the synchronization task can be reset only after all the second execution units learn that the synchronization task is completed, so as to ensure the orderly execution of the synchronization task.
[0013] In a possible design, entries representing synchronization tasks are recorded in the signal synchronization unit; the signal synchronization unit is configured to have the functions of parsing and reading / writing the entries.
[0014] In the above technical solution, the signal synchronization unit only has the functions of parsing and reading / writing the recorded entries. Canceling the two functions of the signal synchronization unit to check whether the synchronization task is completed and sending a synchronization completion signal can reduce the area of the signal synchronization unit, so that configuring multiple signal synchronization units will not additionally occupy too much area.
[0015] In a second aspect, an embodiment of the present application provides a signal synchronization method, which is applied to multiple execution units constituting multiple execution unit groups, and each execution unit group is configured with a neighboring signal synchronization unit. The method includes: the first execution unit broadcasts a synchronization signal to each signal synchronization unit; the first execution unit is the execution unit that produces data among the multiple execution units; the synchronization signal represents that the first execution unit has completed the subtasks corresponding to the current synchronization task; the second execution unit polls and checks the entries recorded in the signal synchronization unit of the execution unit group to which it belongs to determine whether the current synchronization task is completed; if it is completed, the second execution unit executes the next synchronization task; the second execution unit is the execution unit that consumes data among the multiple execution units.
[0016] In a possible design, the first execution unit broadcasts a synchronization signal to each signal synchronization unit, including: the first execution unit broadcasts a synchronization signal to each synchronization unit through a low-bandwidth synchronization bus.
[0017] In a possible design, each execution unit group includes one execution unit; before the second execution unit executes the next synchronization task, it further includes: the second execution unit resets the entry of the current synchronization task in the signal synchronization unit corresponding to the second execution unit.
[0018] In a possible design, each execution unit group includes multiple execution units; before the second execution unit executes the next synchronization task, it further includes: after the second execution unit determines that all second execution units in the execution unit group to which it belongs have learned the entry of the current synchronization task, the second execution unit resets the entry of the current synchronization task in the signal synchronization unit of the execution unit group to which it belongs.
[0019] In a third aspect, an embodiment of the present application provides another signal synchronization method, which is applied to a signal synchronization unit configured for each execution unit group. Each execution unit group includes at least one execution unit. The method includes: the signal synchronization unit receives synchronization signals broadcast by each first execution unit; the first execution unit is an execution unit that produces data among multiple execution units; the synchronization signal indicates that the first execution unit has completed the subtask corresponding to the current synchronization task; the signal synchronization unit records the completion status of the subtasks corresponding to each first execution unit in the entry of the current synchronization task.
[0020] In a fourth aspect, an embodiment of the present application further provides a computer-readable storage medium, in which computer-readable instructions are stored. When a computer reads and executes the computer-readable instructions, the method described in any possible design of the first aspect above is implemented. BRIEF DESCRIPTION OF THE DRAWINGS
[0021] In order to more clearly illustrate the technical solutions in the embodiments of the present application, the following briefly introduces the drawings required for the description of the embodiments. Obviously, the following drawings are only some embodiments of the present application. For those of ordinary skill in the art, other drawings can be obtained based on these drawings without creative efforts.
[0022] Figure 1 It is a schematic diagram of a centralized signal synchronization unit;
[0023] Figure 2 It is a schematic diagram of a cross-node communication scenario;
[0024] Figure 3 It is a schematic structural diagram of a computing device provided by an embodiment of the present application Figure 1 ;
[0025] Figure 4 It is a schematic structural diagram of a computing device provided by an embodiment of the present application Figure 2 ;
[0026] Figure 5 It is a schematic flowchart of a signal synchronization method provided by an embodiment of the present application;
[0027] Figure 6 It is a schematic flowchart of another signal synchronization method provided by an embodiment of the present application. DETAILED DESCRIPTION OF THE EMBODIMENTS
[0028] To make the objectives, technical solutions, and advantages of this application clearer, the following will further describe this application in detail with reference to the accompanying drawings. Obviously, the described embodiments are only a part of the embodiments of this application, rather than all of them. Based on the embodiments in this application, all other embodiments obtained by those of ordinary skill in the art without creative efforts belong to the scope of protection of this application.
[0029] In the embodiments of this application, "a plurality of" means two or more. Terms such as "first" and "second" are only used for the purpose of distinguishing descriptions, and cannot be understood as indicating or implying relative importance, nor can they be understood as indicating or implying an order.
[0030] The signal synchronization unit is a unit used to synchronize signals among various execution units within the chip. The traditional signal synchronization unit mainly includes three parts: synchronous signal reception, data entry synchronization, and synchronous completion signal transmission:
[0031] Synchronous signal reception: The signal synchronization unit receives the synchronous signals (Sync) sent by each execution unit. The synchronous signals of each execution unit carry information such as the serial number (ID) of the execution unit and the synchronous mode of the execution unit. When an execution unit sends a synchronous signal, it means that the execution unit has completed its part.
[0032] Data entry synchronization: A certain number of entries are stored in the signal synchronization unit. Each entry represents a synchronization behavior. The entry will mark which execution units participate in this synchronization task, under what conditions the synchronization task is completed, and to which execution units the synchronous completion signal needs to be sent. After the signal synchronization unit receives the synchronous signals (Sync) sent by each execution unit, it updates the corresponding entry according to the serial number (index) of the synchronization task.
[0033] Synchronous completion signal transmission: When the signal synchronization unit detects that a certain synchronization task recorded in the entry has been completed, it sends a synchronous completion signal (Ack) to the execution unit that needs to receive the synchronous completion signal in this entry.
[0034] Generally, the chip is configured with a centralized signal synchronization unit. The centralized signal synchronization unit is located at the edge of the chip. When it conducts synchronous communication with different execution units, due to the different positions of each execution unit within the chip, the communication time between each execution unit and the signal synchronization unit will vary. There will be a large delay in the communication between the signal synchronization unit and the execution unit that is farthest from the signal synchronization unit.
[0035] The traditional signal synchronization process is as shown in Figure 1 , after each execution unit EU completes its respective task, it sends a synchronous signal Sync to the signal synchronization unit GSE and waits for GSE to reply with a synchronous completion signal Ack to complete the synchronization.
[0036] The distances between each EU and the GSE on the chip are different. The time for the EU farthest from the GSE to send a Sync signal to the GSE and then wait for the GSE to return an Ack signal is much longer than that of the EU closest to the GSE. The time cost involved needs to be borne jointly by all EUs participating in the synchronization task. For example, Figure 1 the time for the EU closest to the GSE to send a Sync signal to the GSE is T close_sync = 0.1t, and the time to wait for the GSE to return an Ack signal is T close_ack = 0.1t; the time for the EU farthest from the GSE to send a Sync signal to the GSE is T far_sync = 1t, and the time to wait for the GSE to return an Ack signal is also T far_ack = 1t. Although the sum of the communication times of the EU closest to the GSE is T close_sync + T close_ack = 0.2t, which is shorter, the GSE will send an Ack signal only after detecting that a synchronization task is completed. Therefore, the EU that finishes the task first needs to wait until it receives the Ack signal before performing the next task. Then, the communication time required for the centralized GSE in one synchronization behavior (involving long-distance EUs and short-distance EUs, and assuming that all EUs send Sync signals simultaneously) is: T centralized = MAX((T close_sync + T close_ack ),(T far_sync + T far_ack )) = T far_sync + T far_ack ≈ 2t.
[0037] In addition, in some scenarios of cross-node communication, the GSE and EU belonging to the same node can communicate directly through interconnection, and the GSE and EU across nodes need to communicate through a PCIe Switch and a CPU. Refer to Figure 2 , Figure 2Taking the GPU on the chip as an example, the GSE and EU on the GPUs 0 to 4 belonging to the same node communicate directly with each other. For cross-node communication, for example, the communication between the GSE on GPU0 and the EU on GPU5, when the EU on GPU5 sends a Sync signal to the GSE on GPU0, it needs to go from the EU on GPU5 through the PCIe-1 line to the PCIe Switch on GPU5, then through the PCIe-2 line to CPU0, then through the PCIE-3 line to the PCIe Switch on GPU0, and finally through the PCIe-4 line to the GSE on GPU0. Similarly, when the GSE on GPU0 sends an Ack signal to the EU on GPU5, it needs to go from the GSE on GPU0 through the PCIe-4 line to the PCIe Switch on GPU0, then through the PCIe-3 line to CPU0, then through the PCIe-2 line to the PCIe Switch on GPU5, and finally through the PCIe-1 line to the EU on GPU5. It can be seen that the cross-node communication path is very long, so the latency of synchronous communication through the centralized GSE is also longer.
[0038] Based on the disadvantages of the above centralized signal synchronization unit, the present application provides a computing device configured with a distributed signal synchronization unit, which can reduce the latency of long-distance synchronous communication.
[0039] Figure 3 Exemplarily shown is a schematic structural diagram of a computing device provided by an embodiment of the present application, as Figure 3 shown, the computing device includes a plurality of execution units constituting a plurality of execution unit groups. The execution units can implement functions such as data transfer, data calculation, or instruction dispatch. Exemplarily shown in the figure are 8 execution unit groups GROUP310, GROUP320,..., GROUP380. Each execution unit group includes at least one execution unit. For example, Figure 3 the execution unit group GROUP310 in it includes execution units EU311-1, EU311-2, EU311-3, etc. Each execution unit group is configured with a neighboring signal synchronization unit. Exemplarily, for example, Figure 3 the execution unit group 310 is configured with a neighboring signal synchronization unit GSE312, and the execution unit group GROUP320 is configured with a neighboring signal synchronization unit GSE322.
[0040] It should be noted that Figure 3This is only an example. This application does not specifically limit the number of execution unit groups and the number of execution units in one execution unit group. This application also does not specifically limit the position of the adjacent signal synchronization units configured for each execution unit group. For example, the signal synchronization units can be located above, below, to the left, to the right, etc. of all the execution units in the execution unit group, or the signal synchronization units can also be located in the middle of the execution units in the execution unit group.
[0041] In the embodiments of this application, the execution units are divided into first execution units and second execution units according to the synchronization mode. Among them, the first execution units are the execution units that produce data among multiple execution units; the second execution units are the execution units that consume data among multiple execution units.
[0042] The first execution units are configured to broadcast synchronization signals to each signal synchronization unit, and the synchronization signals indicate that the first execution units have completed the subtasks corresponding to the current synchronization task.
[0043] The signal synchronization units are configured to receive the synchronization signals broadcast by each first execution unit and record the completion status of the subtasks corresponding to each first execution unit in the entries of the current synchronization task. The signal synchronization units record the entries representing the synchronization tasks, and the signal synchronization units are configured to have the functions of parsing and reading / writing the entries. Among them, a certain number of entries are stored in the signal synchronization units, each entry represents a synchronization task, and which execution units participate in this synchronization task will be marked in the entry. And the signal synchronization units only have the functions of parsing and reading / writing the entries, canceling the two functions of the signal synchronization units to check whether the synchronization task is completed and sending a synchronization completion signal.
[0044] The second execution units are configured to poll and check the entries recorded in the signal synchronization units corresponding to their respective execution unit groups to determine whether the current synchronization task is completed; if completed, execute the next synchronization task.
[0045] In the above technical solution, after the first execution units complete the subtasks corresponding to the current synchronization task, they broadcast synchronization signals to the signal synchronization units corresponding to the unit groups to which the execution units that also execute this synchronization task belong. After each signal synchronization unit receives the synchronization signal, it records in the entry of the current synchronization task that the subtask corresponding to the first execution unit has been completed. Adjacent signal synchronization units are configured for each execution unit group, and each second execution unit determines whether the current synchronization task is completed by polling and checking the entries recorded in the signal synchronization units corresponding to their respective execution unit groups. Since the signal synchronization units corresponding to the execution unit groups to which the second execution units belong are located near the second execution units, the second execution units can quickly learn about the completion status of the current synchronization task. Compared with the centralized signal synchronization units, the delay of long-distance synchronization communication can be reduced, thereby improving resource utilization.
[0046] In addition, by canceling the two functions of each signal synchronization unit to check whether the synchronization task is completed and send a synchronization completion signal, and only retaining the functions of the signal synchronization unit to parse and read entries, the area of each signal synchronization unit can be reduced, so that configuring multiple signal synchronization units will not additionally occupy too much area.
[0047] It should be noted that in a single synchronization task, an execution unit can serve only as an execution unit for producing data or consuming data, or can serve both as an execution unit for producing data and as an execution unit for consuming data.
[0048] Specifically, in one scenario, assume that the execution unit EU0 serves both as an execution unit for producing data and as an execution unit for consuming data. Then, after EU0 finishes the subtask corresponding to the current synchronization task, it broadcasts a synchronization signal to each synchronization unit to inform it that the subtask corresponding to the current synchronization task has been completed. After receiving the synchronization signal broadcast by EU0, the signal synchronization unit records in the entry of the current synchronization task that EU0 has completed. EU0 polls and checks the entries recorded in the signal synchronization unit corresponding to the execution unit group to which EU0 belongs to determine whether the current synchronization task is completed; if completed, it executes the next synchronization task.
[0049] In another scenario, assume that the execution unit EU1 serves only as an execution unit for producing data, and the execution unit EU2 serves only as an execution unit for consuming data. Then, after EU1 finishes the subtask corresponding to the current synchronization task, it broadcasts a synchronization signal to each synchronization unit to inform it that the subtask corresponding to the current synchronization task has been completed. After that, EU1 continues to execute the next synchronization task. After receiving the synchronization signal broadcast by EU1, the signal synchronization unit records in the entry of the current synchronization task that EU1 has completed. EU2 polls and checks the entries recorded in the signal synchronization unit corresponding to the execution unit group to which EU2 belongs to determine whether the current synchronization task is completed; if completed, it executes the next synchronization task.
[0050] In a possible design, the computing device further includes a low-bandwidth synchronization bus 400 connecting each execution unit and each signal synchronization unit. The first execution unit is configured to broadcast a synchronization signal to each signal synchronization unit through the low-bandwidth synchronization bus 400 to reduce the communication cost of the first execution unit broadcasting a synchronization signal to each signal synchronization unit.
[0051] This application does not specifically limit the number of execution units in the execution unit group. When each execution unit group includes one execution unit, the second execution unit is further configured to reset the entry of the current synchronization task in the signal synchronization unit corresponding to the second execution unit before executing the next synchronization task. That is to say, when a neighboring signal synchronization unit is configured for each execution unit, the entry recorded in the signal synchronization unit is only polled by the corresponding execution unit. When the execution unit learns that the synchronization task is completed, the entry of the synchronization task can be reset.
[0052] When each execution unit group includes multiple execution units, the second execution unit is further configured to reset the entry of the current synchronization task in the signal synchronization unit to which it belongs after determining that all the second execution units in the execution unit group to which it belongs have learned the entry of the current synchronization task. That is to say, when multiple execution units in a unit group share a neighboring signal synchronization unit, the entry recorded in the signal synchronization unit will be polled by multiple second execution units. When all the second execution units learn that the synchronization task is completed, the entry of the synchronization task can be reset to ensure the orderly execution of the synchronization task.
[0053] Figure 4 The structural schematic diagram shows that a neighboring signal synchronization unit is configured for each execution unit. Figure 4 In each execution unit EU broadcasts a Sync signal to its respective signal synchronization unit GSE. Assume that the time for EU to broadcast the Sync signal to its respective GSE is T close2close_sync = 0.1t, and the longest time for EU to broadcast the Sync signal to the farthest GSE is T close2far_sync = 1t. The time for each EU to poll its respective signal synchronization unit to learn that the synchronization task is completed is T close_ack = 0.1t. Then, the communication time required for the centralized GSE in one synchronization behavior (assuming that all EUs send Sync signals simultaneously) is: T distributed = MAX((t close2close_sync + t close_ack ),(t close2far_sync + t close_ack ))
[0054] = t close2far_sync + t close_ack ≈ 1.1t
[0055] Compare the maximum time of the centralized GSE and the distributed GSE: T distributed ≈ 1.1t < T centralized ≈ 2.
[0056] It can be seen that the design of the distributed signal synchronization unit can make the time cost of the synchronization behavior more balanced and can save the time cost of one long-distance communication.
[0057] Similarly, in some scenarios of cross-node communication, the design of the distributed signal synchronization unit can also optimize the time of the synchronization behavior. Still taking the Figure 2 communication between the GSE on GPU0 and the EU on GPU5 in [reference] as an example. In the stage of broadcasting the Sync signal, the EU on GPU5 broadcasts the Sync signal to the GSE on GPU0, which needs to go from the EU on GPU5 through the PCIe line to the PCIeSwitch on GPU5, then through the PCIe line to CPU0, then through the PCIe line to the PCIeSwitch on GPU0, and finally through the PCIe line to the GSE on GPU0. The communication time in this stage is the same as that of the centralized GSE. However, the EU on GPU5 does not need to wait for the Ack signal of the GSE on GPU0. The EU on GPU5 only needs to check by polling the polling query of the signal synchronization unit to which it belongs to know whether the synchronization task is completed. No cross-node communication is required in this stage. It can be seen that the distributed signal synchronization unit can also save the time cost of a long-distance communication in the scenario of cross-node communication. Since in the scenario of cross-node communication, the communication time of the GPU across the PCIeSwitch is very long, therefore, compared with the traditional communication method that requires two long-distance communications, this application can save several times or even dozens of times the communication time.
[0058] Figure 5 Exemplarily shows a schematic flow diagram of a signal synchronization method provided by an embodiment of the present application, which is applied to multiple execution units constituting multiple execution unit groups, and each execution unit group is configured with a neighboring signal synchronization unit, as Figure 5 shown, specifically including the following steps:
[0059] Step 501, the first execution unit broadcasts a synchronization signal to each signal synchronization unit.
[0060] Among them, the first execution unit is the execution unit that produces data among the multiple execution units; the synchronization signal indicates that the first execution unit has completed the subtask corresponding to the current synchronization task.
[0061] Step 502, the second execution unit polls and checks the entries recorded in the signal synchronization unit of the execution unit group to which it belongs, and determines whether the current synchronization task is completed; if completed, execute the next synchronization task.
[0062] Among them, the second execution unit is the execution unit that consumes data among the multiple execution units.
[0063] In a possible implementation manner, the first execution unit broadcasts a synchronization signal to each signal synchronization unit, including: the first execution unit broadcasts a synchronization signal to each synchronization unit through a low-bandwidth synchronization bus.
[0064] In a possible implementation, each execution unit group includes one execution unit; before the second execution unit executes the next synchronization task, it further includes: the second execution unit resets the entry of the current synchronization task in the signal synchronization unit corresponding to the second execution unit.
[0065] In a possible implementation, each execution unit group includes multiple execution units; before the second execution unit executes the next synchronization task, it further includes: after the second execution unit determines that all the second execution units in the execution unit group to which it belongs have learned the entry of the current synchronization task, it resets the entry of the current synchronization task in the signal synchronization unit of the execution unit group to which it belongs.
[0066] Figure 6 Exemplarily shown is a schematic flowchart of another signal synchronization method provided by an embodiment of the present application, which is applied to the signal synchronization unit configured for each execution unit group. Each execution unit group includes at least one execution unit, as Figure 6 shown, and specifically includes the following steps:
[0067] Step 601, the signal synchronization unit receives the synchronization signals broadcast by each first execution unit.
[0068] Among them, the first execution unit is the execution unit that produces data among the multiple execution units; the synchronization signal indicates that the first execution unit has completed the subtask corresponding to the current synchronization task.
[0069] Step 602, the signal synchronization unit records the completion status of the subtasks corresponding to each first execution unit in the entry of the current synchronization task.
[0070] Based on the same technical concept, an embodiment of the present application further provides a computer-readable storage medium. The computer-readable storage medium stores a computer-executable program, and the computer-executable program is used to make a computer execute the signal synchronization method listed in any of the above manners.
[0071] Those skilled in the art should understand that the embodiments of the present application can be provided as a method, a system, or a computer program product. Therefore, the present application can adopt the form of a complete hardware embodiment, a complete software embodiment, or an embodiment combining software and hardware aspects. Moreover, the present application can adopt the form of a computer program product 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.
[0072] This application is described with reference to the flowcharts and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the present application. It should be understood that each flow and / or block in the flowchart and / or block diagram can be implemented by computer program instructions, as well as the combination of flows and / or blocks in the flowchart and / or block diagram. These computer program instructions can be provided to the processor of a general-purpose computer, a special-purpose computer, an embedded processor, or other programmable data processing devices to generate a machine, such that the instructions executed by the processor of the computer or other programmable data processing devices generate a means for implementing the functions specified in one flow Figure 1 one flow or multiple flows and / or blocks Figure 1 or a means for implementing the functions specified in multiple blocks.
[0073] These computer program instructions can also be stored in a computer-readable memory that can direct a computer or other programmable data processing device to work in a specific manner, such that the instructions stored in the computer-readable memory generate a manufactured article including an instruction means that implements the functions specified in one flow Figure 1 one flow or multiple flows and / or blocks Figure 1 or a means for implementing the functions specified in multiple blocks.
[0074] These computer program instructions can also be loaded onto a computer or other programmable data processing device, such that a series of operation steps are executed on the computer or other programmable device to generate a computer-implemented process, and thus the instructions executed on the computer or other programmable device provide steps for implementing the functions specified in one flow Figure 1 one flow or multiple flows and / or blocks Figure 1 or a means for implementing the functions specified in multiple blocks.
[0075] Although the preferred embodiments of the present application have been described, those skilled in the art can make additional changes and modifications once they learn the basic creative concepts. Therefore, the appended claims are intended to be construed to include the preferred embodiments as well as all changes and modifications that fall within the scope of the present application.
[0076] Obviously, those skilled in the art can make various changes and modifications to the present application without departing from the spirit and scope of the present application. Thus, if these modifications and variations of the present application fall within the scope of the claims of the present application and their equivalent technologies, the present application is also intended to include these changes and modifications.
Claims
1. A computing device, characterized in that comprising a plurality of execution units constituting a plurality of execution unit groups, each execution unit group comprising at least one execution unit, each execution unit group being configured with a signal synchronization unit, the signal synchronization unit being located near each execution unit of the corresponding execution unit group; The first execution unit is configured to broadcast a synchronization signal to each signal synchronization unit; the first execution unit is an execution unit that produces data among the multiple execution units; the synchronization signal indicates that the first execution unit has completed the subtask corresponding to the current synchronization task; The signal synchronization unit is configured to receive the synchronization signal broadcast by each first execution unit, and record the completion status of the subtask corresponding to each first execution unit in the entry of the current synchronization task; The second execution unit is configured to poll and check the entries recorded in the signal synchronization unit corresponding to the execution unit group to which it belongs, to determine whether the current synchronization task is completed; if completed, execute the next synchronization task; the second execution unit is the execution unit that consumes data among the multiple execution units.
2. The computing device according to claim 1, wherein: The computing device further includes a low bandwidth synchronization bus connecting each execution unit and each signal synchronization unit; The first execution unit is configured to broadcast a synchronization signal to each signal synchronization unit through the low bandwidth synchronization bus.
3. The computing device according to claim 1, wherein: Each execution unit group includes an execution unit; the second execution unit is further configured to reset the entry of the current synchronization task in the signal synchronization unit corresponding to the second execution unit before executing the next synchronization task.
4. The computing device according to claim 1, wherein: Each execution unit group includes multiple execution units; the second execution unit is also configured to reset the entry of the current synchronization task in the signal synchronization unit of the execution unit group after determining that all second execution units of the execution unit group have learned the entry of the current synchronization task.
5. The computing device according to claim 1, wherein: The signal synchronization unit records entries representing synchronization tasks; the signal synchronization unit is configured to have the functions of parsing, reading and writing the entries.
6. A signal synchronization method, characterized in that: Applied to a plurality of execution units constituting a plurality of execution unit groups, each execution unit group is configured with a signal synchronization unit, and the signal synchronization unit is located near each execution unit of the corresponding execution unit group, the method comprises: The first execution unit broadcasts a synchronization signal to each signal synchronization unit; the first execution unit is an execution unit that produces data among the multiple execution units; the synchronization signal indicates that the first execution unit has completed the subtask corresponding to the current synchronization task; The second execution unit polls and checks the entries recorded in the signal synchronization unit of the execution unit group to which it belongs to determine whether the current synchronization task is completed; if completed, the next synchronization task is executed; the second execution unit is an execution unit that consumes data among the multiple execution units.
7. The method according to claim 6, characterized in that The first execution unit broadcasts a synchronization signal to each signal synchronization unit, including: The first execution unit broadcasts a synchronization signal to each synchronization unit via a low-bandwidth synchronization bus.
8. The method according to claim 6, characterized in that Each execution unit group includes an execution unit; before the second execution unit executes the next synchronization task, it also includes: The second execution unit resets the entry of the current synchronization task in the signal synchronization unit corresponding to the second execution unit.
9. The method according to claim 6, characterized in that Each execution unit group includes a plurality of execution units; before the second execution unit executes the next synchronization task, it also includes: After the second execution unit determines that all second execution units in the execution unit group to which it belongs have learned the entry of the current synchronization task, the second execution unit resets the entry of the current synchronization task in the signal synchronization unit of the execution unit group to which it belongs.
10. A signal synchronization method, characterized in that: A signal synchronization unit is applied to each execution unit group, each execution unit group includes at least one execution unit, and the signal synchronization unit is located near each execution unit of the corresponding execution unit group. The method includes: The signal synchronization unit receives synchronization signals broadcast by each first execution unit; the first execution unit is an execution unit that produces data among multiple execution units; the synchronization signal indicates that the first execution unit has completed the subtask corresponding to the current synchronization task; The signal synchronization unit records the completion status of the subtasks corresponding to each first execution unit in the entry of the current synchronization task.
11. A computer-readable storage medium, characterized in that: The method comprises computer-readable instructions, and when a computer reads and executes the computer-readable instructions, the method according to any one of claims 6 to 10 is implemented.
Citation Information
Patent Citations
Command distributor, command distribution method and system, chip, board card and equipment
CN115145638A