Communication processing device and method, electronic equipment and storage medium
By introducing a communication control module into the GPU processing unit, data transfer requests are dynamically scheduled, which solves the performance degradation problem caused by DMA module and memory connection, and improves system communication efficiency and chip utilization.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-12-29
- Publication Date
- 2026-04-03
AI Technical Summary
In large-scale computing applications, the additional connections between the GPU's DMA module and memory, as well as data caching, reduce the utilization rate of the chip's unit area and decrease the overall system performance.
A communication control module is added to the processing unit of the processing device to reuse the communication interface of the processing unit to send data transfer requests, dynamically schedule the communication traffic of the processing unit, and achieve dynamic balance of traffic on the communication interface.
This improves the communication efficiency between processing units, enhances the overall system performance, and increases the utilization rate of chip unit area.
Smart Images

Figure CN121785981A_ABST
Abstract
Description
Technical Field
[0001] This disclosure relates to the field of computer technology, and in particular to a communication processing apparatus and method, electronic device, and computer-readable storage medium. Background Technology
[0002] In large-scale computing applications, such as those involving large artificial intelligence models, parallel processing is typically achieved using graphics processing units (GPUs) to improve efficiency. The GPU's computing capabilities are provided by processing units within it, such as stream processors (SMs) or processing cores.
[0003] As communication becomes increasingly important in applications, dedicated Direct Memory Access (DMA) modules are typically incorporated into GPUs for this purpose. While DMA is relatively small compared to the GPU area, it still incurs area overhead. Furthermore, the additional connections between DMA and memory, as well as data caching, also contribute to area overhead, resulting in reduced utilization per unit area within the chip and a decline in overall system performance. Summary of the Invention
[0004] This disclosure provides a communication processing apparatus and method, an electronic device, a computer-readable storage medium, and a computer program product.
[0005] In a first aspect, this disclosure provides a communication processing apparatus applied to a first processing unit of a processing device, wherein the first processing unit is one of a plurality of processing units of the processing device, the apparatus comprising a communication control module and a communication interface module, the communication interface module comprising a plurality of communication interfaces.
[0006] The communication control module is configured to: when there is an idle first communication interface in the communication interface module, determine a third processing unit from the plurality of second processing units based on the communication load value of the first processing unit for the plurality of second processing units; select a first fragmentation transfer request for the third processing unit from the transfer request queue of the communication control module, and send the first fragmentation transfer request to the communication interface module; the second processing unit is a processing unit other than the first processing unit among the plurality of processing units of the processing device.
[0007] The communication interface module is configured to send the first fragment transfer request to the third processing unit through the first communication interface.
[0008] Secondly, this disclosure provides a communication processing method applied to a first processing unit of a processing device. The first processing unit is one of a plurality of processing units in the processing device. The communication interface module of the first processing unit includes a plurality of communication interfaces. The method includes: when there is an idle first communication interface, determining a third processing unit from the plurality of second processing units based on the communication load value of the first processing unit for a plurality of second processing units. The second processing units are processing units other than the first processing unit among the plurality of processing units in the processing device; selecting a first fragmentation request for the third processing unit from a fragmentation request queue of the communication control module, and sending the first fragmentation request to the communication interface module; and sending the first fragmentation request to the third processing unit through the first communication interface.
[0009] Thirdly, this disclosure provides an electronic device comprising: at least one processor; and a memory communicatively connected to the at least one processor; wherein the memory stores one or more computer programs executable by the at least one processor, the one or more computer programs being executed by the at least one processor to enable the at least one processor to perform the above-described communication processing method.
[0010] Fourthly, this disclosure provides a computer-readable storage medium having a computer program stored thereon, wherein the computer program, when executed by a processor, implements the above-described communication processing method.
[0011] Fifthly, this disclosure provides a computer program product comprising computer-readable code, or a non-volatile computer-readable storage medium carrying computer-readable code, wherein when the computer-readable code is executed in a processor of an electronic device, the processor in the electronic device performs the above-described communication processing method.
[0012] The embodiments provided in this disclosure include a communication control module for scheduling data transfer requests. When an idle communication interface exists, the module can determine the processing unit to which the request is to be sent based on the communication load value of each processing unit, select the fragmented transfer request for the processing unit from the transfer request queue, and send it to the corresponding processing unit through the communication interface, thereby improving the overall communication efficiency between processing units and improving the overall system performance.
[0013] It should be understood that the description in this section is not intended to identify key or essential features of the embodiments of this disclosure, nor is it intended to limit the scope of this disclosure. Other features of this disclosure will become readily apparent from the following description. Attached Figure Description
[0014] The accompanying drawings are provided to further illustrate the present disclosure and form part of the specification. They are used together with the embodiments of the present disclosure to explain the disclosure and do not constitute a limitation thereof. The above and other features and advantages will become more apparent to those skilled in the art from the detailed description of exemplary embodiments with reference to the accompanying drawings, in which:
[0015] Figure 1 This is a schematic diagram of an electronic device based on related technologies.
[0016] Figure 2 This is a schematic diagram of the structure of a processing device provided in an embodiment of the present disclosure.
[0017] Figure 3 This is a schematic diagram illustrating the processing procedure of a communication control module provided in an embodiment of the present disclosure.
[0018] Figure 4 This is a schematic diagram of the communication process of a processing device provided in an embodiment of this disclosure.
[0019] Figure 5 This is a flowchart of a communication processing method provided in an embodiment of the present disclosure.
[0020] Figure 6 This is a block diagram of an electronic device provided in an embodiment of the present disclosure. Detailed Implementation
[0021] To enable those skilled in the art to better understand the technical solutions of this disclosure, exemplary embodiments of this disclosure are described below with reference to the accompanying drawings, including various details of the embodiments of this disclosure to aid understanding. These should be considered merely exemplary. Therefore, those skilled in the art should recognize that various changes and modifications can be made to the embodiments described herein without departing from the scope and spirit of this disclosure. Similarly, for clarity and conciseness, descriptions of well-known functions and structures are omitted in the following description.
[0022] Where there is no conflict, the various embodiments of this disclosure and the features thereof in the embodiments may be combined with each other.
[0023] As used herein, the term “and / or” includes any and all combinations of one or more related enumerated entries.
[0024] The terminology used herein is for the purpose of describing particular embodiments only and is not intended to limit this disclosure. As used herein, the singular forms “a” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will also be understood that when the terms “comprising” and / or “made of” are used in this specification, the presence of the stated feature, integral, step, operation, element, and / or component is specified, but the presence or addition of one or more other features, integrals, steps, operations, elements, components, and / or groups thereof is not excluded. Words such as “connected” or “linked” are not limited to physical or mechanical connections but can include electrical connections, whether direct or indirect.
[0025] Unless otherwise specified, all terms used herein (including technical and scientific terms) have the same meaning as commonly understood by one of ordinary skill in the art. It will also be understood that terms such as those defined in commonly used dictionaries should be interpreted as having a meaning consistent with their meaning in the context of the relevant art and this disclosure, and will not be interpreted as having an idealized or overly formal meaning, unless expressly so defined herein.
[0026] As mentioned earlier, GPUs are core components in large-scale computing applications. Through general-purpose computing combined with parallel processing, multiple processing units execute tasks simultaneously, improving computational efficiency in general scenarios. In addition to computation units, GPU processing units may also include load / store units for reading data from or writing data to memory.
[0027] Figure 1 This is a schematic diagram of an electronic device based on related technology. (Refer to...) Figure 1 Electronic devices include a central processing unit (CPU), a GPU, a DMA, and memory. The CPU and GPU send data transfer tasks to the DMA, the DMA reads data from or writes data to memory, and the processing results are returned to the CPU or GPU.
[0028] When a GPU has a Direct Memory Access (DMA) module for communication, using DMA communication is more cost-effective in terms of area than using processing units to achieve the same bandwidth communication function, which is beneficial to improving the overall performance of the GPU.
[0029] However, although DMA has a smaller area compared to the GPU, it still incurs area overhead. Furthermore, the DMA is connected to the memory via NOC (Network on Chip), and these additional connections and data caches also incur area overhead. This results in reduced utilization of the chip's unit area, decreased overall system performance, and an inability to fully utilize the chip's performance.
[0030] According to embodiments of this disclosure, a communication processing apparatus is provided, which can add a communication control module for handling data transfer tasks to the processing unit of the processing device. The communication control module reuses the communication interface of the processing unit to send data transfer requests, thereby realizing data reading and writing of the processing unit. It can dynamically schedule the communication traffic of the current processing unit to other processing units in the system, realize dynamic balance of traffic on the communication interface, thereby significantly improving the communication efficiency between processing units with a small area cost, thereby further improving the utilization rate of chip unit area and improving the overall system performance.
[0031] Figure 2 This is a schematic diagram of a processing device provided in an embodiment of this disclosure. (Refer to...) Figure 2 The processing device includes multiple processing units, each processing unit includes a communication processing device, the communication processing device includes a communication control module 21 and a communication interface module 22, and the communication interface module 22 includes multiple communication interfaces (not shown).
[0032] In some possible implementations, the processing device may be, for example, a GPU, a general-purpose graphics processing unit (GPGPU), etc.; the type of processing unit in the processing device varies depending on the processing device, such as a stream multiprocessor (SM), a multiprocessor (MP), etc. This disclosure does not limit the specific type of processing device or the specific type of processing unit in the processing device.
[0033] In some possible implementations, a communication control module (which can be called an ACE (Asynchronous Communication Engine) module) can be added to each processing unit to implement communication scheduling. For ease of distinction, any one of the multiple processing units in the processing device can be called the first processing unit, and the other processing units besides the first processing unit can be called the second processing unit.
[0034] In some possible implementations, the communication processing device further includes a task processing module 23, configured to send the data transfer task from the first processing unit to the second processing unit to the communication control module.
[0035] The communication control module is also configured to generate multiple fragment transport requests for the data transport task and add them to the transport request queue based on the data fragment size.
[0036] For example, the task processing module 23 can be the computing unit that performs the operation in the processing unit. When the task processing module 23 of the first processing unit needs to read data from the storage module of any second processing unit or write data to the storage space of any second processing unit, it can generate a data transfer task (copy task) for the second processing unit and send the data transfer task to the communication control module.
[0037] The data to be transferred can be any type of processing data, such as vertex data, image data, pixel data, etc. in graphics processing; or processing data in neural network models, including text data, image data, audio data, and various intermediate processing data. This disclosure does not restrict the specific data type of the data to be transferred.
[0038] In some possible implementations, after receiving a data transfer task, the communication control module can generate multiple data slice transfer requests for that data transfer task based on the size of the data to be transferred and the pre-set data slice size, and add them to the transfer request queue in the communication control module. The data slice size corresponds to the size of data that the communication interface can send each time, such as 64KB, 256KB, etc. This disclosure does not limit the specific size of the data slices or the number of data slices corresponding to each data transfer task.
[0039] In this way, data transfer tasks can be sent to a dedicated communication control module for splitting, thereby improving the processing efficiency of data transfer tasks.
[0040] In some possible implementations, the communication control module in the first processing unit is configured to: when there is an idle first communication interface in the communication interface module, determine a third processing unit from the multiple second processing units based on the communication load value of the first processing unit for the multiple second processing units; select a first fragment transfer request for the third processing unit from the transfer request queue of the communication control module, and send the first fragment transfer request to the communication interface module.
[0041] The communication interface module is configured to send the first fragment transfer request to the third processing unit through the first communication interface.
[0042] For example, the communication load value of the first processing unit for multiple second processing units can be set in the communication control module, with the initial value of each communication load value being 0. The communication load value can also be called the real-time transmission status indicator (fly OS), which is used to characterize the degree of backlog of communication load on the data path from the first processing unit to the second processing unit. A small communication load value indicates that there is no backlog or a small backlog on the data path between the first and second processing units. This may be because the communication bandwidth of the second processing unit is not full and it can respond to the transfer request of the first processing unit in a timely manner. A large communication load value indicates that there is a backlog or a large backlog on the data path between the first and second processing units. This may be because the communication bandwidth of the second processing unit is full and it cannot respond to the transfer request of the first processing unit in a timely manner.
[0043] In some possible implementations, the communication control module is connected to the communication interface module 22. The communication interface module 22 is, for example, a BIF (Buffer Interface Unit) module in the processing unit, which includes multiple communication interfaces, such as 16 BIF communication interfaces, for communicating with the second processing unit in the system, sending fragment transfer requests to the second processing unit, and receiving response results of fragment transfer requests, such as data fragment write success or read success.
[0044] In some possible implementations, if the communication interface module's communication interface has completed sending the previous fragment transfer request and is available to receive new fragment transfer requests, then the communication interface can be determined to be idle. In this case, the communication interface module will send a corresponding signal to the communication control module. For example, the communication interface module of the first processing unit 0 has 16 communication interfaces: BIF(0, 0), BIF(0, 1), BIF(0, 2), ..., BIF(0, 15). If BIF(0, 2) is idle, the communication interface module will send an enable signal for BIF(0, 2) to the communication control module, for example, a valid value of 1.
[0045] In some possible implementations, when the communication control module receives an enable signal and determines that there is an idle first communication interface in the communication interface module, it queries and compares the communication load values of the first processing unit for multiple second processing units. If the communication load value of a certain second processing unit is large, even if a request is sent to that second processing unit, it will not be able to respond in a timely manner, resulting in a decrease in system communication efficiency. In this case, the second processing unit with the smallest communication load value can be identified as the third processing unit to send the request to, thereby improving communication efficiency.
[0046] In some possible implementations, a first fragment transfer request for the third processing unit can be selected from the transfer request queue of the communication control module, and the first fragment transfer request can be sent to the request buffer (cmd buffer) of the communication control backend (ACE BackEnd, SBE) corresponding to the first communication interface. Accordingly, the communication interface module sends the first fragment transfer request in the request buffer to the third processing unit through the first communication interface.
[0047] According to embodiments of this disclosure, a communication control module for dynamically scheduling data transfer requests is provided. When an idle communication interface exists, the processing unit to which the request is to be sent is determined based on the communication load value of each processing unit. The module selects the fragmented transfer request for the processing unit from the transfer request queue and sends it to the corresponding processing unit through the communication interface, thereby improving the communication efficiency between processing units and improving the overall system performance.
[0048] The communication processing apparatus according to embodiments of the present disclosure will now be described in detail.
[0049] As mentioned earlier, the task processing module 23 can send data transfer tasks to the communication control module. The communication control module generates multiple data fragment transfer requests for the data transfer task based on the size of the data to be transferred and the pre-set data fragment size, and adds these requests to the transfer request queue in the communication control module. Thus, the transfer request queue includes fragment transfer requests from the first processing unit for multiple second processing units.
[0050] In some possible implementations, if the first communication interface of the communication interface module is able to receive a new fragmentation transfer request, it can be determined that the first communication interface is idle and a corresponding enable signal is sent to the communication control module.
[0051] In some possible implementations, the communication control module determines a third processing unit from among the multiple second processing units based on the communication load value of the first processing unit for the multiple second processing units, including: determining the processing unit with the smallest communication load value among the multiple second processing units as the third processing unit.
[0052] In other words, when the communication control module receives an enable signal and determines that there is an idle first communication interface in the communication interface module, it queries the communication load values of the first processing unit for multiple second processing units and compares them to determine the second processing unit with the smallest communication load value. If there is only one second processing unit with the smallest communication load value, then that second processing unit can be directly determined as the third processing unit to send the request.
[0053] In this way, processing units can be selected so that requests can be sent to the selected processing unit, thereby improving the communication efficiency between processing units.
[0054] In some possible implementations, the communication control module determines a third processing unit from the plurality of second processing units based on the communication load value of the first processing unit for the plurality of second processing units, including: determining a fourth processing unit with the smallest communication load value from the plurality of second processing units; and, if there are multiple fourth processing units, determining the third processing unit from the fourth processing units by polling.
[0055] For example, when the communication control module receives an enable signal and determines that there is an idle first communication interface in the communication interface module, it queries the communication load values of multiple second processing units for the first processing unit and compares them to determine the fourth processing unit with the smallest communication load value. If multiple fourth processing units are determined, a selection needs to be made again. In this case, the third processing unit to send the request can be determined from the fourth processing units by polling; or one can be randomly selected from the fourth processing units as the third processing unit to send the request.
[0056] In this way, processing units can be selected so that requests can be sent to the selected processing unit, thereby improving the communication efficiency between processing units.
[0057] In some possible implementations, after determining the third processing unit to which the request to be sent is to be sent, a first fragment transfer request for the third processing unit can be selected from the transfer request queue of the communication control module, and the first fragment transfer request can be sent to the request buffer of the communication control backend SBE corresponding to the first communication interface, so that the first fragment transfer request in the request buffer can be sent to the third processing unit through the first communication interface.
[0058] Figure 3 This is a schematic diagram illustrating the processing procedure of a communication control module provided in an embodiment of this disclosure. (Refer to...) Figure 3 The processing device includes processing units 0 to 7. When the first processing unit is processing unit 0, the second processing unit is processing units 1 to 7.
[0059] In the example, the transport request queue of the communication control module includes fragment transport requests from processing unit 0 to processing units 1-7. Figure 3Fragment transfer requests (1, 0), (1, 1), and (1, 2) are for processing unit 1; fragment transfer requests (2, 0), (2, 1), (2, 2), and (2, 3) are for processing unit 2; ...; fragment transfer requests (7, 0), (7, 1), and (7, 2) are for processing unit 7. The number of fragment transfer requests for each processing unit may be the same or different.
[0060] In the example, the communication control module is configured with communication load values for processing units 1 to 7, i.e. Figure 3 The communication load values are 1 to 7. The communication interface module has 16 communication interfaces BIF(0, 0), BIF(0, 1), BIF(0, 2), ..., BIF(0, 15). Correspondingly, the communication control module is equipped with 16 communication control back-ends SBE, and each SBE has a request buffer.
[0061] In the example, if BIF(0, 2) is idle, the communication interface module sends an enable signal for BIF(0, 2) to the communication control module, for example, a valid value of 1; the communication control module queries the communication load values 1 to 7 and compares them to determine the minimum communication load value. For example, if the communication load value 7 is the minimum, then processing unit 7 is designated as the third processing unit for the request to be sent; the fragmentation request (7, 0) is selected from the fragmentation request queue and sent to the request buffer of SBE2.
[0062] In the example, the fragment transfer request (7,0) in the request buffer of SBE2 is sent to the processing unit 7 through the communication interface BIF(0, 2), completing one processing step of the communication control module.
[0063] In some possible implementations, the communication control module is also configured to increment the communication load value of the third processing unit by 1 when the first fragment transfer request is sent to the first communication interface.
[0064] In other words, after the communication control module sends the first fragment transfer request to the request buffer, it can increment the communication load value for the third processing unit by 1, indicating that a new communication load has been added to the data path from the first processing unit to the third processing unit.
[0065] In this way, the communication load value can more accurately represent the backlog of communication load, improve the accuracy of selecting processing units, and thus improve the communication efficiency between processing units.
[0066] In some possible implementations, the communication control module is further configured to: upon receiving a request response result sent by any second processing unit, decrement the communication load value of the second processing unit by 1, wherein the request response result is the response result of the second fragmentation request sent by the first processing unit to the second processing unit.
[0067] For example, when a second fragment transfer request is sent from the first processing unit to any second processing unit, the storage module of the second processing unit processes the request and returns a response result, such as successful data fragment write or read. Upon receiving the response result, the communication interface module sends it to the communication control module.
[0068] In some possible implementations, when the communication control module receives the request response result from the second processing unit, it can decrement the communication load value for the second processing unit by 1, indicating that the communication load on the data path from the first processing unit to the second processing unit is reduced.
[0069] In this way, the communication load value can more accurately represent the backlog of communication load, improve the accuracy of selecting processing units, and thus improve the communication efficiency between processing units.
[0070] In some possible implementations, the processing device may include multiple processing chips and a switching module between them. A processing chip, also referred to as a processing card, includes at least one processing unit. Processing units within the same processing chip are interconnected via D2D (Die-to-Die), representing direct interconnection between multiple dies within the same package. Processing units of different processing chips are interconnected via C2C (Chip-to-Chip), representing indirect interconnection between independently packaged chips via the switching module. Communication between processing units of different processing chips can be termed cross-card communication. This disclosure does not limit the specific structure of the processing chips or the specific connection methods between them.
[0071] In some possible implementations, the communication interface module sends a first fragment transfer request to the third processing unit through a first communication interface, including: when the third processing unit and the first processing unit are on different processing chips, sending the first fragment transfer request to the switching module through the first communication interface, so that the switching module forwards the first fragment transfer request to the third processing unit.
[0072] Figure 4 This is a schematic diagram of the communication process of a processing device provided in an embodiment of this disclosure.
[0073] Reference Figure 4 If the third processing unit and the first processing unit are on the same processing chip, also known as a local chip, the first fragment transfer request sent by the communication control module of the first processing unit is a D2D fragment transfer request. The first fragment transfer request will be sent directly to the storage module of the third processing unit through the communication interface, such as high bandwidth memory (HBM). The storage module of the third processing unit processes the first fragment transfer request and returns the request response result. When the communication control module of the first processing unit receives the request response result, it decrements the communication load value for the third processing unit by 1 to complete one in-card communication process.
[0074] Reference Figure 4 If the third processing unit and the first processing unit are located on different processing chips, i.e., the first processing unit is on a local chip and the third processing unit is on a remote chip, then the first fragment transfer request sent by the communication control module of the first processing unit is a C2C fragment transfer request. The first fragment transfer request is sent to the inter-card interconnect control buffer (ctrl buffer) through the communication interface, then to the switching module via the inter-card interconnect between the local chip and the switching module, and finally to the storage module of the third processing unit via the inter-card interconnect between the switching module and the remote chip. The inter-card interconnect can be MTLINK, NVLINK, or other inter-card interconnect technologies, and this disclosure does not limit this.
[0075] In some possible implementations, the storage module of the third processing unit processes the first fragment transfer request and returns the request response result according to the data path when the request was sent; when the communication control module of the first processing unit receives the request response result, it decrements the communication load value for the third processing unit by 1, thereby completing one cross-card communication process.
[0076] In this way, intra-card communication and cross-card communication between processing units can be realized. The communication control module controls the overall transmission status of the read and write path OS to adjust the cross-card communication traffic, realize load balancing on the data path of the processing unit, and improve the overall communication efficiency of the system.
[0077] According to the communication processing apparatus of this disclosure, a communication control module for handling data transfer tasks can be added to the processing unit of the processing device. The communication control module reuses the communication interface of the processing unit to send data transfer requests, realizing data read and write operations of the processing unit, thereby achieving intra-card communication and cross-card communication without affecting the original data path. Furthermore, when an idle communication interface exists, the communication control module can determine the processing unit to which the request is to be sent based on the communication load value of each processing unit, select the fragmented transfer request for the processing unit from the transfer request queue, and send it to the corresponding processing unit through the communication interface. This dynamically schedules the data transfer tasks and corresponding communication bandwidth of the current processing unit for other processing units in the system, achieving dynamic balancing of traffic on the communication interface and improving the overall system performance.
[0078] According to the communication processing apparatus of this disclosure, existing data paths are reused to complete cross-card communication, and the increase in area is negligible. This significantly improves the communication efficiency between processing units with a small area cost, thereby increasing the utilization rate of chip unit area.
[0079] According to embodiments of this disclosure, a communication processing method is also provided. The method is applied to a first processing unit of a processing device, wherein the first processing unit is one of a plurality of processing units of the processing device, and the communication interface module of the first processing unit includes a plurality of communication interfaces.
[0080] Figure 5 A flowchart illustrating a communication processing method provided in an embodiment of this disclosure. (Refer to...) Figure 5 The method includes the following steps S51-S53.
[0081] In step S51, if there is an idle first communication interface, a third processing unit is determined from the plurality of second processing units based on the communication load value of the first processing unit for the plurality of second processing units. The second processing unit is the processing unit other than the first processing unit among the plurality of processing units of the processing device.
[0082] In step S52, a first fragment transfer request for the third processing unit is selected from the transfer request queue of the communication control module, and the first fragment transfer request is sent to the communication interface module.
[0083] In step S53, the first fragment transfer request is sent to the third processing unit through the first communication interface.
[0084] In some possible implementations, step S51 includes: determining the processing unit with the smallest communication load value among the plurality of second processing units as the third processing unit.
[0085] In some possible implementations, step S51 includes: determining a fourth processing unit with the smallest communication load value from the plurality of second processing units; and, if there are multiple fourth processing units, determining a third processing unit from the fourth processing units by polling.
[0086] In some possible implementations, the method further includes: obtaining the data transfer task of the first processing unit for the second processing unit; generating multiple fragment transfer requests for the data transfer task according to the data fragment size and adding them to the transfer request queue.
[0087] In some possible implementations, the processing device includes a plurality of processing chips and a switching module between the plurality of processing chips, each processing chip including at least one processing unit, and step S53 includes: when the third processing unit is on a different processing chip than the first processing unit, sending the first fragment transfer request to the switching module through the first communication interface, so that the switching module forwards the first fragment transfer request to the third processing unit.
[0088] In some possible implementations, the method further includes: incrementing the communication load value of the third processing unit by 1 when the first fragmentation request is sent to the first communication interface.
[0089] In some possible implementations, the method further includes: upon receiving a request response result sent by any second processing unit, decrementing the communication load value of the second processing unit by 1, wherein the request response result is the response result of a second fragmentation request sent by the first processing unit to the second processing unit.
[0090] It is understood that the various method embodiments mentioned above in this disclosure can be combined with each other to form combined embodiments without violating the principle and logic. Due to space limitations, this disclosure will not elaborate further. Those skilled in the art will understand that in the above methods of specific implementation, the specific execution order of each step should be determined by its function and possible internal logic.
[0091] In addition, this disclosure also provides electronic devices and computer-readable storage media, all of which can be used to implement the communication processing method provided in this disclosure. The corresponding technical solutions and descriptions are described in the corresponding descriptions in the method section, and will not be repeated here.
[0092] Figure 6 This is a block diagram of an electronic device provided in an embodiment of the present disclosure.
[0093] Reference Figure 6This disclosure provides an electronic device, which includes: at least one processor 701; at least one memory 702; and one or more I / O interfaces 703 connected between the processor 701 and the memory 702; wherein the memory 702 stores one or more computer programs that can be executed by the at least one processor 701, and the one or more computer programs are executed by the at least one processor 701 to enable the at least one processor 701 to perform the above-described communication processing method.
[0094] This disclosure also provides a computer-readable storage medium storing a computer program thereon, wherein the computer program, when executed by a processor, implements the aforementioned communication processing method. The computer-readable storage medium may be volatile or non-volatile.
[0095] This disclosure also provides a computer program product, including computer-readable code, or a non-volatile computer-readable storage medium carrying computer-readable code, wherein when the computer-readable code is run in a processor of an electronic device, the processor in the electronic device performs the above-described communication processing method.
[0096] Those skilled in the art will understand that all or some of the steps, systems, and apparatuses disclosed above, and their functional modules / units, can be implemented as software, firmware, hardware, or suitable combinations thereof. In hardware implementations, the division between functional modules / units mentioned above does not necessarily correspond to the division of physical components; for example, a physical component may have multiple functions, or a function or step may be performed collaboratively by several physical components. Some or all physical components may be implemented as software executed by a processor, such as a central processing unit, digital signal processor, or microprocessor, or as hardware, or as an integrated circuit, such as an application-specific integrated circuit (ASIC). Such software can be distributed on a computer-readable storage medium, which may include computer storage media (or non-transitory media) and communication media (or transient media).
[0097] As is known to those skilled in the art, the term computer storage medium includes volatile and non-volatile, removable and non-removable media implemented in any method or technology for storing information, such as computer-readable program instructions, data structures, program modules, or other data. Computer storage media includes, but is not limited to, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM), static random access memory (SRAM), flash memory or other memory technologies, portable compact disc read-only memory (CD-ROM), digital versatile disc (DVD) or other optical disc storage, magnetic cartridges, magnetic tape, disk storage or other magnetic storage devices, or any other medium that can be used to store desired information and is accessible to a computer. Furthermore, it is known to those skilled in the art that communication media typically contain computer-readable program instructions, data structures, program modules, or other data in modulated data signals such as carrier waves or other transmission mechanisms, and may include any information delivery medium.
[0098] The computer-readable program instructions described herein can be downloaded from computer-readable storage media to various computing / processing devices, or downloaded via a network, such as the Internet, local area network, wide area network, and / or wireless network, to an external computer or external storage device. The network may include copper transmission cables, fiber optic transmission, wireless transmission, routers, firewalls, switches, gateway computers, and / or edge servers. A network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards them to the computer-readable storage media in the respective computing / processing device.
[0099] Computer program instructions used to perform the operations of this disclosure may be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, status setting data, or source code or object code written in any combination of one or more programming languages, including object-oriented programming languages such as Smalltalk, C++, etc., and conventional procedural programming languages such as the "C" language or similar programming languages. The computer-readable program instructions may execute entirely on the user's computer, partially on the user's computer, as a standalone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In cases involving a remote computer, the remote computer may be connected to the user's computer via any type of network—including a local area network (LAN) or a wide area network (WAN)—or may be connected to an external computer (e.g., via the Internet using an Internet service provider). In some embodiments, electronic circuitry, such as programmable logic circuitry, field-programmable gate arrays (FPGAs), or programmable logic arrays (PLAs), is personalized by utilizing the status information of the computer-readable program instructions to implement various aspects of this disclosure.
[0100] The computer program product described herein can be implemented specifically through hardware, software, or a combination thereof. In one alternative embodiment, the computer program product is specifically embodied in a computer storage medium; in another alternative embodiment, the computer program product is specifically embodied in a software product, such as a software development kit (SDK), etc.
[0101] Various aspects of this disclosure are described herein with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of this disclosure. It should be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer-readable program instructions.
[0102] These computer-readable program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing apparatus to produce a machine such that, when executed by the processor of the computer or other programmable data processing apparatus, they create means for implementing the functions / actions specified in one or more blocks of the flowchart and / or block diagram. These computer-readable program instructions can also be stored in a computer-readable storage medium that causes a computer, programmable data processing apparatus, and / or other device to operate in a particular manner; thus, the computer-readable medium storing the instructions comprises an article of manufacture that includes instructions for implementing aspects of the functions / actions specified in one or more blocks of the flowchart and / or block diagram.
[0103] Computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable data processing apparatus, or other device to produce a computer-implemented process, thereby causing the instructions executed on the computer, other programmable data processing apparatus, or other device to perform the functions / actions specified in one or more boxes of a flowchart and / or block diagram.
[0104] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present disclosure. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of an instruction containing one or more executable instructions for implementing a specified logical function. In some alternative implementations, the functions marked in the blocks may occur in a different order than those shown in the drawings. For example, two consecutive blocks may actually be executed substantially in parallel, and they may sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, may be implemented using a dedicated hardware-based system that performs the specified function or action, or using a combination of dedicated hardware and computer instructions.
[0105] Example embodiments have been disclosed herein, and while specific terminology has been used, it is for illustrative purposes only and should be construed as such, and is not intended to be limiting. In some instances, it will be apparent to those skilled in the art that features, characteristics, and / or elements described in connection with particular embodiments may be used alone, or in combination with features, characteristics, and / or elements described in connection with other embodiments, unless otherwise expressly indicated. Therefore, those skilled in the art will understand that various changes in form and detail may be made without departing from the scope of this disclosure as set forth by the appended claims.
Claims
1. A communication processing device, characterized in that, A first processing unit applied to a processing device, wherein the first processing unit is one of a plurality of processing units in the processing device, the device includes a communication control module and a communication interface module, the communication interface module including a plurality of communication interfaces. The communication control module is configured to: when there is an idle first communication interface in the communication interface module, determine a third processing unit from the plurality of second processing units based on the communication load value of the first processing unit for the plurality of second processing units; select a first fragmentation transfer request for the third processing unit from the transfer request queue of the communication control module, and send the first fragmentation transfer request to the communication interface module; the second processing unit is a processing unit other than the first processing unit among the plurality of processing units of the processing device; The communication interface module is configured to send the first fragment transfer request to the third processing unit through the first communication interface.
2. The apparatus according to claim 1, characterized in that, The communication control module determines a third processing unit from among the multiple second processing units based on the communication load value of the first processing unit for the multiple second processing units, including: The processing unit with the smallest communication load value among the plurality of second processing units is determined as the third processing unit.
3. The apparatus according to claim 1, characterized in that, The communication control module determines a third processing unit from among the multiple second processing units based on the communication load value of the first processing unit for the multiple second processing units, including: The fourth processing unit with the smallest communication load value is determined from the plurality of second processing units; When there are multiple fourth processing units, the third processing unit is determined from the fourth processing units by polling.
4. The apparatus according to claim 1, characterized in that, The communication processing device further includes a task processing module, configured to send the data transfer task of the first processing unit for the second processing unit to the communication control module; The communication control module is also configured to generate multiple fragment transport requests for the data transport task and add them to the transport request queue based on the data fragment size.
5. The apparatus according to claim 1, characterized in that, The processing device includes multiple processing chips and an exchange module between the multiple processing chips, and each processing chip includes at least one processing unit. The communication interface module sends the first fragment transfer request to the third processing unit through the first communication interface, including: When the third processing unit and the first processing unit are on different processing chips, the first fragment transfer request is sent to the switching module through the first communication interface, so that the switching module forwards the first fragment transfer request to the third processing unit.
6. The apparatus according to claim 1, characterized in that, The communication control module is also configured to: When the first fragment transfer request is sent to the first communication interface, the communication load value of the third processing unit is incremented by 1.
7. The apparatus according to claim 1, characterized in that, The communication control module is also configured to: Upon receiving a request response result from any second processing unit, the communication load value of the second processing unit is decremented by 1. The request response result is the response result of the second fragmentation request sent by the first processing unit to the second processing unit.
8. A communication processing method, characterized in that, A first processing unit applied to a processing device, wherein the first processing unit is one of a plurality of processing units in the processing device, and the communication interface module of the first processing unit includes a plurality of communication interfaces, the method comprising: In the presence of an idle first communication interface, a third processing unit is determined from the plurality of second processing units based on the communication load value of the first processing unit for the plurality of second processing units. The second processing unit is a processing unit other than the first processing unit among the plurality of processing units of the processing device. Select a first fragment transfer request for the third processing unit from the transfer request queue of the communication control module, and send the first fragment transfer request to the communication interface module; The first fragment transfer request is sent to the third processing unit through the first communication interface.
9. An electronic device, characterized in that, include: At least one processor; as well as A memory communicatively connected to the at least one processor; wherein, The memory stores one or more computer programs that can be executed by the at least one processor, and the one or more computer programs are executed by the at least one processor to enable the at least one processor to perform the communication processing method as described in claim 8.
10. A computer-readable storage medium having a computer program stored thereon, characterized in that, When the computer program is executed by the processor, it implements the communication processing method as described in claim 8.
Citation Information
Patent Citations
Processing unit, processing system and method for inter-chip communication
CN116263752A
Processing system for inter-chip communication and communication method
CN116561047A
Data processing unit for stream processing
CN117348976A
GPU task scheduling method and device, electronic equipment, storage medium and program product
CN119336507A
Rendering task allocation method and device, electronic equipment and storage medium
CN120523610A