Data packeting methods, systems, and computing devices for gpu architectures

By adopting an iterative data grouping method, combined with communication awareness and load balancing, the challenge of data partitioning in multi-GPU parallel computing is solved, and an effective trade-off between load balancing and communication overhead is achieved, thereby improving computing performance and bandwidth utilization.

CN122152374APending Publication Date: 2026-06-05NAT SUPERCOMPUTING WUXI CENT +1

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
NAT SUPERCOMPUTING WUXI CENT
Filing Date
2026-05-11
Publication Date
2026-06-05

AI Technical Summary

Technical Problem

In multi-GPU parallel computing, how to efficiently and reasonably partition data to achieve computational load balancing and control communication overhead is a challenge, especially in complex unstructured CFD computing, where existing technologies struggle to simultaneously balance computational load balancing and communication costs.

Method used

An iterative data grouping method is adopted. By dynamically evaluating load balancing and communication overhead, a comprehensive score model using relaxed constraints, communication flags, load differences, and penalty coefficients is used to gradually allocate sub-grids to GPU groups, limit inter-group communication overhead within a specific threshold, and achieve load balancing based on this.

Benefits of technology

It significantly shortens computation time, reduces the time overhead of the preprocessing stage, and makes full use of the high-bandwidth bus, achieving co-optimization of hardware and software, and is suitable for multi-GPU parallel computing of various grid types.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122152374A_ABST
    Figure CN122152374A_ABST
Patent Text Reader

Abstract

The application provides a data grouping method, system and computing device for GPU architecture, and relates to the technical field of parallel computing.The method gradually distributes sub-grids to different GPU groups in an iterative manner, and dynamically evaluates load balancing and communication overhead during the distribution process to realize a final grouping scheme.The method gives up the calculation cost of finding an absolute global optimal solution, limits the inter-group communication overhead to a specific threshold by relaxing the constraint condition, and realizes load balancing under the premise.The method does not depend on a specific CFD grid type, adopts multi-element scoring and threshold constraint, and when the number of GPU cluster nodes increases, the grouping algorithm can still maintain high execution speed and excellent parallel speedup ratio.In addition to the CFD field, it can also be migrated to other scientific and engineering computing fields such as electromagnetic field simulation, finite element analysis and other grid communication dependent fields.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of parallel computing technology, and in particular to a data grouping method, system and computing device for GPU architecture. Background Technology

[0002] With the rapid development of computational fluid dynamics (CFD), modern industry and scientific research have increasingly higher requirements for the accuracy and scale of flow field simulations. Especially when dealing with unstructured CFD calculations of complex geometries, which are often accompanied by large and irregular mesh sizes, the computing power of a single computer or a single processor is far from meeting the needs of practical engineering.

[0003] Unstructured meshes refer to meshes where internal points within a mesh region do not have fixed adjacent cells. Node distribution is flexible, making them suitable for regions of arbitrary shape and complexity, including various shapes such as tetrahedrons, rhombuses, or hexahedrons. To accelerate the solution of such large-scale unstructured mesh CFD problems, multi-GPU parallel computing has become a mainstream trend in high-performance computing. In multi-GPU parallel computing, the core step is to divide the large overall computational domain into multiple smaller computational task regions and distribute these sub-mesh areas to the various GPUs within the cluster nodes for computation. NVIDIA's multi-GPUs achieve high-speed interconnection through NVLink technology, breaking through the bandwidth bottleneck of the traditional PCIe bus and providing bidirectional transmission bandwidth far exceeding that of PCIe (NVLink 3.0 bandwidth can reach up to 600 GB / s).

[0004] However, in multi-GPU parallel computing architectures, to fully leverage the hardware performance of all GPUs, achieve optimal parallel scalability, and reduce overall computation time, a key issue arises: how to efficiently and reasonably partition the data.

[0005] From a mathematical perspective, this subgrid grouping problem essentially falls under the category of the graph partitioning problem in combinatorial optimization. This problem has been theoretically proven to be NP-hard (a non-deterministic, polynomial-time, non-constructive problem). This means that as the grid size increases, there is no universal algorithm that can find the absolute global optimum in polynomial time.

[0006] In actual iterative computation, the sub-grids are not completely independent; they have data dependencies at their spatial boundaries. Therefore, the computation of sub-grids allocated to different GPUs inevitably involves frequent boundary data exchange (i.e., communication between grid cells, faces, and points in adjacent regions after grid partitioning). This requires that the data partitioning strategy not only focus on the uniformity of computational task allocation but also consider and control the communication costs caused by data splitting.

[0007] In summary, designing an approximate optimization partitioning strategy that can both ensure balanced computational load and effectively control communication overhead on a multi-GPU hardware platform with high-speed interconnect characteristics is a technical challenge that urgently needs to be addressed in this field. Summary of the Invention

[0008] To address the aforementioned problems, this invention proposes a data grouping method, system, and computing device for GPU architectures. It employs an iterative approach to progressively allocate subgrids to different GPU groups, dynamically evaluating load balancing and communication overhead during the allocation process to achieve the final grouping scheme. This method abandons the computational cost of finding the absolute global optimum, focusing instead on limiting inter-group communication overhead to a specific threshold by relaxing constraints, and achieving load balancing as much as possible under this premise.

[0009] To achieve the above objectives, this invention proposes a data grouping method for GPU architecture, comprising the following steps: S1. Extract key information of all subgrids to be grouped, including the grid load of the subgrids to be grouped and the communication volume between the subgrids to be grouped and other subgrids; S2. Based on the aforementioned key information, calculate in parallel the allocation score for each sub-grid when it is assigned to each GPU group. Communication identifier Load difference With load penalty coefficient The calculation formula is determined together as follows: ; S3. Select the subgrid with the highest allocation score and its corresponding GPU group, assign the subgrid to the GPU group, and mark the subgrid as allocated. S4. Iterate through S2 to S3 until all subgrids are assigned.

[0010] As a preferred embodiment, the communication identifier bit This is a binary value, and its value depends on how well group g compares to other groups after subgrid x is incorporated into GPU group g. Are the communication volumes between them all less than or equal to the corresponding communication thresholds? The expression is as follows: If any group exists This causes the communication volume to exceed the communication threshold. If group g is different from all other groups, then CommFlag is set to 0; Traffic All are less than or equal to the communication threshold. If so, CommFlag is set to 1.

[0011] As a preferred embodiment, the preset communication threshold includes an upper communication limit and a lower communication limit. The upper communication limit is determined by the GPU hardware interconnect bandwidth and the preset communication time limit, and the lower communication limit is determined by the bandwidth utilization rate.

[0012] As a preferred embodiment, the load difference is used to characterize how close the load of the GPU group is to the average load after the subgrid is incorporated into the GPU group; the smaller the load difference, the higher the assigned score. The calculation formula is as follows: In the formula, It is an absolute value function, used to ensure that the calculation result is non-negative; This represents the load of the SubGrid x to be assigned; This indicates the current load of GPU group g; This indicates the average load; Gridnum indicates the total number of grid cells.

[0013] As a preferred embodiment, the load penalty coefficient The calculation formula is as follows: In the formula, This indicates taking the larger number within the parentheses; the load penalty coefficient ranges from [0,1]. When the current load of the GPU group does not exceed the average load, the load penalty coefficient is positive, and the smaller the load, the larger the load penalty coefficient; when the current load of the GPU group exceeds the average load, the load penalty coefficient is 0.

[0014] Furthermore, this invention proposes a data grouping system that can automatically execute the aforementioned data grouping method for GPU architecture. Specifically, the system includes an information extraction module, a score calculation module, an allocation execution module, and an iteration control module. Wherein: The information extraction module is used to extract the grid load and communication volume of all subgrids to be grouped; the score calculation module is used to calculate the allocation score of each subgrid to each GPU group in parallel; the allocation execution module is used to allocate the subgrid to the GPU group with the highest allocation score and mark the allocation status; the iteration control module is used to control the iterative execution of score calculation and subgrid allocation until all subgrids are allocated.

[0015] As a preferred embodiment, the score calculation module integrates a communication threshold determination unit, a load difference calculation unit, and a load penalty coefficient calculation unit. The communication threshold determination unit receives the communication volume output by the information extraction module, determines and outputs a communication identifier bit based on a preset communication threshold, and the load difference calculation unit receives the grid load and the current GPU group load output by the information extraction module, calculates and outputs the load difference. The load penalty coefficient calculation unit receives the load difference and the average load output by the load difference calculation unit, calculates and outputs the load penalty coefficient, and the score calculation module calculates and outputs the assigned score based on the communication identifier bit, the load difference, and the load penalty coefficient.

[0016] Furthermore, the present invention also proposes a GPU parallel computing device, which includes a memory, a processor, and a computer program stored in the memory and executable on the processor. When the processor executes the computer program, it implements the steps of the above-described data grouping method for GPU architecture.

[0017] Furthermore, this invention also proposes applications of the aforementioned data grouping method for GPU architecture, including: applications in computational fluid dynamics scenarios, applications in electromagnetic field simulation scenarios, and applications in finite element analysis scenarios.

[0018] Compared with the prior art, the present invention has at least the following beneficial effects: (1) The present invention adopts a strategy of exchanging a small load unevenness for a significant reduction in communication overhead, strictly controlling the communication time within the expected range, eliminating the bottleneck effect from the perspective of global optimization, and significantly shortening the total time of a single iteration.

[0019] (2) The present invention adopts a heuristic dynamic scoring model and a greedy allocation strategy. Each allocation only requires low-complexity scoring and state updates, which greatly reduces the time overhead of the data preprocessing stage.

[0020] (3) This invention innovatively introduces a dynamic communication threshold range directly related to the hardware interconnection mechanism. This not only prevents communication congestion, but also ensures that the transmitted data blocks have sufficient size to make full use of the high-bandwidth bus, thus achieving perfect hardware and software coordination.

[0021] (4) The algorithm of this invention is theoretically independent of a specific CFD mesh type, so it can be used for both structured and unstructured meshes. At the same time, by adopting multivariate scoring and threshold constraints, the grouping algorithm can still maintain high execution speed and excellent parallel speedup ratio when the number of GPU cluster nodes increases. Attached Figure Description

[0022] Figure 1 This is a flowchart illustrating the implementation of a data grouping method for GPU architecture. Detailed Implementation

[0023] In the following description, numerous specific details are set forth in order to provide a more thorough understanding of the invention. However, it will be apparent to those skilled in the art that the invention can be practiced without one or more of these details. In other instances, certain technical features well-known in the art have not been described in order to avoid obscuring the invention.

[0024] A comprehensive analysis of the current state of data partitioning in multi-GPU parallel computing reveals several significant drawbacks in existing technologies: (1) One-sided pursuit of load balancing while ignoring the constraints of communication overhead: Traditional mesh partitioning strategies often focus only on how to distribute computational tasks (number of mesh cells) absolutely evenly among the GPUs in order to achieve theoretical load balancing. However, in multi-GPU environments, especially in complex unstructured CFD computations, there is a large amount of boundary data exchange between sub-mesh. If closely connected computational regions are fragmented simply to evenly divide the mesh, it will lead to a surge in communication overhead between devices. This excessively high communication overhead will seriously offset or even exceed the performance improvement brought by load balancing, becoming a bottleneck restricting parallel efficiency.

[0025] (2) The computational cost of pursuing the global optimal solution is too high: The subgrid grouping problem is essentially a graph balancing partitioning problem, which is an NP-hard problem. Some existing partitioning algorithms attempt to find the global optimal load balancing scheme, which is impractical in actual large-scale computationally intensive applications. It will consume huge computational resources and preprocessing time, thus losing the original intention of accelerating the computation.

[0026] (3) Failure to fully integrate and utilize the high-speed interconnect characteristics of modern hardware: Existing grouping methods are usually hardware-independent and do not fully utilize the extremely high bidirectional transmission bandwidth between cards in multi-GPU systems (such as the NVIDIA A100 equipped with NVLink technology). This results in the partitioning scheme being unable to perceive the actual communication bandwidth: on the one hand, if the amount of communication data partitioned is too small, the transmission bandwidth of NVLink cannot be fully utilized, which may instead cause a new imbalance in the computing load between GPUs; on the other hand, without reasonable communication threshold constraints, the communication time will get out of control.

[0027] This invention is primarily aimed at solving the problem of multi-GPU parallel computing on unstructured grids in the field of CFD, that is, how to reasonably and efficiently group the computing tasks of subgrids (hereinafter referred to as SubGrid) and allocate them to each GPU to achieve the best parallel computing scalability.

[0028] Specifically, this invention aims to solve the following technical challenges: (1) The partitioning algorithm designed to achieve load balancing of computing tasks in each partition will lead to increased communication overhead due to the increase in boundary data of each partition. In traditional multi-GPU parallel computing, the focus is often only on ensuring the balance of computing load (grid size) of each GPU, while ignoring the data communication overhead between devices. In fact, the boundary communication overhead between devices is also a huge bottleneck restricting parallel performance. The technical problem to be solved by this invention is how to achieve an effective trade-off and balance between load balancing between GPUs and reducing communication overhead.

[0029] (2) Principle of Global Optimal Allocation of Computational Tasks. Grouping subgrid blocks belongs to the graph equilibrium partitioning problem in the field of combinatorial optimization, which has been theoretically proven to be an NP-hard problem. This means that in practical large-scale unstructured CFD and other computationally intensive applications, it is impractical to use general algorithms to find the absolute global optimal grouping scheme, which would consume huge computational resources and time. Therefore, it is necessary to solve how to quickly obtain an efficient grouping scheme through appropriate approximate optimization strategies (such as relaxing constraints).

[0030] (3) How to fully utilize the hardware characteristics of high-speed interconnect between GPU cards. For example, GPUs of NVIDIA Ampere and later architectures all support NVLink high-speed interconnect technology, which has high bidirectional transmission bandwidth. Existing partitioning schemes often do not model the hardware network transmission bandwidth and expected communication time overhead, and cannot design different communication algorithms according to different data volumes. This results in either too little communication data to fully utilize NVLink bandwidth, or too much communication volume to offset the performance improvement brought by load balancing.

[0031] To address the shortcomings of the existing technologies, this invention aims to provide a data grouping method based on communication awareness and load balancing to maximize the performance of multi-GPU parallel computing, specifically including: Balancing Load Balancing and Communication Overhead: Breaking away from the limitations of traditional approaches that focus solely on load balancing, the core objective of this invention is to simultaneously consider and balance load balancing between sub-grid blocks and communication overhead. By allowing a certain degree of load imbalance, the communication overhead between groups is strictly constrained within a given threshold range, thereby achieving an optimal balance between the two and obtaining the best overall performance.

[0032] This invention proposes an efficient approximate optimization strategy (dynamic grouping algorithm): Addressing the difficulty of solving NP-hard problems, this invention abandons the pursuit of an unrealistic global optimal solution. Instead, it leverages the high bandwidth of hardware to relax constraints and designs an iterative dynamic grouping algorithm. This algorithm quickly and dynamically completes subgrid allocation by calculating a comprehensive score including communication identifier bits, load difference, and load penalty coefficient, significantly reducing the computational cost of the grouping process.

[0033] Fully utilize the bandwidth characteristics of the underlying hardware: This invention establishes a dynamic communication threshold (including an upper limit T determined based on NVLink bandwidth and a preset communication time limit). max And the lower limit T determined based on bandwidth utilization. min This ensures that data communication does not slow down the overall computing due to excessive overhead, while also having enough data volume to fully utilize the high-speed interconnect bus and achieve efficient use of hardware resources.

[0034] Example 1: This embodiment provides a data grouping method for GPU architecture. It employs an iterative approach, progressively allocating subgrids to different GPU groups and dynamically evaluating load balancing and communication overhead during the allocation process to achieve the final grouping scheme. This method abandons the computational cost of finding the absolute global optimum, limiting inter-group communication overhead to a specific threshold by relaxing constraints, and achieving load balancing as much as possible under this premise.

[0035] The specific implementation steps of this method are as follows: Figure 1 As shown, for all input SubGrid x, the algorithm can perform parallel computation by scheduling GPU threads. The core steps of the algorithm are as follows: Step 1: Information Extraction. First, for each SubGrid x to be grouped, extract its key information, including: (1) Grid load: Indicates the number of grid cells contained in the SubGrid, used to evaluate the size of the computational load.

[0036] (2) Communication with other SubGrids: Record the estimated communication between this SubGrid and all other SubGrids. This can be estimated in advance by analyzing the adjacency relationships of the grids.

[0037] Step 2: Score Calculation (Score(x,g)). For each SubGrid x to be grouped, the algorithm calculates the score (Score(x,g)) in parallel when assigning it to different GPU groups g. The formula for calculating the score (Score(x,g)) is as follows: The score calculation formula takes into account the following three key factors: (1) Communication flag (CommFlag): used to determine whether assigning the SubGrid subgrid x to GPU group g will violate the communication threshold constraint. The calculation method of CommFlag is as follows: CommFlag is a binary value, and its value depends on the condition of group g relative to all other groups after the subgrid x is incorporated into GPU group g. Are the communication volumes between them all less than or equal to the corresponding communication thresholds? If any group exists If the communication volume exceeds the threshold, CommFlag is set to 0, indicating that assigning x to group g would violate the communication constraint. In this case, the score Score(x,g) is also 0, and the SubGrid subgrid x cannot be merged into group g. Conversely, if group g is connected to all other groups... Traffic All within the communication threshold If it is inside, then CommFlag is set to 1.

[0038] (2) Load difference ( ): Used to evaluate how close the load of a GPU group is to the average load after a SubGrid x is incorporated into the GPU group g. The calculation formula is as follows: The load of the SubGrid x to be assigned. The smaller the value, the closer the group is to the average load, and the more balanced the overall load is across groups. Average load is the average grid load per GPU, calculated by dividing the total grid size (GridNum) by the number of GPU groups (n). This is an absolute value function, its purpose is to convert negative numbers into positive numbers, ensuring that the calculation result is non-negative. In order to... The value is in the range [0,1], and the formula divides it by the total grid size GridNum. In the fraction calculation, (1- The higher the score, the smaller the load difference (i.e., the more balanced the load) the allocation scheme.

[0039] (3) Load penalty coefficient ( To prevent certain GPU groups from being overloaded by SubGrid during iterative grouping, this application introduces a load penalty coefficient. . The calculation formula is as follows: Load penalty coefficient The value range is [0,1]. When the current load of GPU group g... Less than average load hour, The value is positive, and the smaller the load, the better. The larger the value, the easier it is to assign a new SubGrid to groups with lower loads. When the load of group g exceeds the average load... hour, The value is truncated to 0, at which point the score Score(x,g) is also 0, and the algorithm will no longer consider assigning a new SubGrid to this group. Load penalty coefficient. The design aims to prioritize assigning SubGrids to groups with low grid load and avoid excessive load within groups, thereby further improving overall load balance.

[0040] Step 3: SubGrid Allocation and Iteration. After calculating the score Score(x,g) of each SubGrid x allocated to all GPU groups g, the algorithm selects the allocation scheme with the highest score, i.e.: Find the one that can get the maximum score and its corresponding GPU group ,Will Assigned to group After allocation, Marked as processed, it will not be considered for allocation in the next iteration.

[0041] Step 4: Iterate and repeat. Repeat steps 2 and 3, calculate the scores of the remaining unassigned SubGrids, and assign them until all SubGrids have been assigned.

[0042] The iterative dynamic grouping algorithm described above can gradually distribute all SubGrids to different GPU groups, ultimately resulting in a grouping scheme that comprehensively considers communication awareness and load balancing. This dynamic grouping strategy can better adapt to the complexity and irregularity of unstructured grids and effectively improve the performance of multi-GPU parallel CFD computation.

[0043] Example 2: This embodiment discloses a data grouping system, which consists of an information extraction module, a score calculation module, an allocation execution module, and an iteration control module.

[0044] The information extraction module is used to extract the grid load and communication volume of all subgrids to be grouped; the score calculation module is used to calculate the allocation score of each subgrid to each GPU group in parallel; the allocation execution module is used to allocate the subgrid to the GPU group with the highest allocation score and mark the allocation status; the iteration control module is used to control the iterative execution of score calculation and subgrid allocation until all subgrids are allocated.

[0045] The score calculation module integrates a communication threshold determination unit, a load difference calculation unit, and a load penalty coefficient calculation unit. The communication threshold determination unit receives the communication volume output by the information extraction module, determines and outputs the communication identifier bit based on the preset communication threshold, and the load difference calculation unit receives the grid load and the current GPU group load output by the information extraction module, calculates and outputs the load difference, and the load penalty coefficient calculation unit receives the load difference and the average load output by the load difference calculation unit, calculates and outputs the load penalty coefficient, and the score calculation module calculates and outputs the assigned score based on the communication identifier bit, the load difference, and the load penalty coefficient.

[0046] The system can automatically execute the data grouping method for GPU architecture disclosed in Embodiment 1 above, which will not be elaborated here.

[0047] Example 3: The logical ideas behind the methods disclosed in the above embodiments can be implemented, in whole or in part, through software, hardware, firmware, or any other combination. When implemented in software, the above embodiments can be implemented, in whole or in part, as a computer program product and run on a GPU parallel computing device. A computer program product includes one or more computer instructions or computer programs. When the computer instructions or computer program are loaded or executed on a computer, all or part of the processes or functions described in the embodiments of this application are generated. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions can be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another. For example, the computer instructions can be transmitted from one website, computer, server, or data center to another website, computer, server, or data center via wired (e.g., infrared, wireless, microwave, etc.) means. The computer-readable storage medium can be any available medium that a computer can access or a data storage device such as a server or data center that includes one or more sets of available media. The available medium can be a magnetic medium (e.g., floppy disk, hard disk, magnetic tape), an optical medium (e.g., DVD), or a semiconductor medium. A semiconductor medium can be a solid-state drive.

[0048] In summary, the core of this invention lies in abandoning the traditional single objective of pursuing absolute load balancing and instead adopting a heuristic strategy of co-optimizing communication and load. The actual transmission bandwidth and expected maximum communication time of the underlying hardware NVLink are used as inputs to establish a dynamic communication threshold range, which serves as a hard constraint for data partitioning. A sub-grid allocation scoring formula is proposed. This model comprehensively considers the benefits of internalizing communication (converting external communication into internal communication), the current load difference, and the dynamic load penalty coefficient (a resistance term that amplifies exponentially when node load is too high). It avoids the enormous overhead of solving the NP-hard graph partitioning problem and achieves rapid iteration under a locally optimal greedy strategy through the aforementioned scoring model. The load status and communication matrix of each GPU are updated immediately after each allocation, achieving near-optimal partitioning results with extremely low preprocessing costs.

[0049] In summary, the solution disclosed in this embodiment can overcome the communication wall bottleneck and significantly reduce the overall solution time. Existing technologies excessively pursue absolute computational load balance, leading to over-cutting of the boundary mesh and generating numerous cross-GPU communication requirements. This invention employs a strategy of trading minimal load unevenness for a significant reduction in communication overhead, strictly controlling communication time within the expected range. From a globally optimal perspective, it eliminates the bottleneck effect and significantly shortens the total time for a single iteration.

[0050] The scheme disclosed in this embodiment is hardware-aware driven, resulting in high bus bandwidth utilization. Existing grouping algorithms are typically hardware-insensitive and cannot detect bandwidth differences between different GPU architectures. This invention innovatively introduces a dynamic communication threshold range directly related to hardware interconnection mechanisms (such as NVLink and PCIe). This not only prevents communication congestion but also ensures that the transmitted data blocks are of sufficient size to fully utilize the high-bandwidth bus, achieving perfect hardware and software collaboration.

[0051] The above-described scheme disclosed in this embodiment has strong versatility and scalability. The algorithm of this invention theoretically does not depend on a specific CFD mesh type, therefore it can be used with both structured and unstructured meshes. Furthermore, by employing multivariate scoring and threshold constraints, the grouping algorithm maintains high execution speed and excellent parallel speedup ratio even as the number of GPU cluster nodes increases. Besides the CFD field, it can also be smoothly transferred to other scientific and engineering computing fields that rely on mesh communication, such as electromagnetic field simulation and finite element analysis.

[0052] The preferred embodiments of the present invention disclosed above are merely illustrative of the invention. These preferred embodiments do not exhaustively describe all details, nor do they limit the invention to any specific implementation. Clearly, many modifications and variations can be made based on the content of this specification. This specification selects and specifically describes these embodiments to better explain the principles and practical applications of the invention, thereby enabling those skilled in the art to better understand and utilize the invention. The invention is limited only by the claims and their full scope and equivalents.

Claims

1. A data grouping method for GPU architecture, characterized in that, Includes the following steps: S1. Extract key information of all subgrids to be grouped, including the grid load of the subgrids to be grouped and the communication volume between the subgrids to be grouped and other subgrids; S2. Based on the aforementioned key information, calculate in parallel the allocation score for each sub-grid when it is assigned to each GPU group. Communication identifier Load difference With load penalty coefficient The calculation formula is determined together as follows: ; S3. Select the subgrid with the highest allocation score and its corresponding GPU group, assign the subgrid to the GPU group, and mark the subgrid as allocated. S4. Iterate through S2 to S3 until all subgrids are assigned.

2. The data grouping method for GPU architecture according to claim 1, characterized in that, The communication identifier bit This is a binary value, and its value depends on how well group g compares to other groups after subgrid x is incorporated into GPU group g. Are the communication volumes between them all less than or equal to the preset communication threshold? The expression is as follows: If any group exists This causes the communication volume to exceed the communication threshold. If group g is different from all other groups, then CommFlag is set to 0; Traffic All are less than or equal to the communication threshold. If so, CommFlag is set to 1.

3. The data grouping method for GPU architecture according to claim 2, characterized in that, The preset communication threshold includes an upper limit and a lower limit. The upper limit is determined by the GPU hardware interconnect bandwidth and the preset communication time limit, and the lower limit is determined by the bandwidth utilization rate.

4. The data grouping method for GPU architecture according to claim 3, characterized in that, The load difference is used to characterize how close the load of the GPU group is to the average load after the subgrid is incorporated into the GPU group; the smaller the load difference, the higher the assigned score. The calculation formula is as follows: In the formula, It is an absolute value function, used to ensure that the calculation result is non-negative; This represents the load of the SubGrid x to be assigned; This indicates the current load of GPU group g; This indicates the average load; Gridnum indicates the total number of grid cells.

5. The data grouping method for GPU architecture according to claim 4, characterized in that, The load penalty coefficient The calculation formula is as follows: In the formula, This indicates taking the larger number within the parentheses; the load penalty coefficient ranges from [0,1]. When the current load of the GPU group does not exceed the average load, the load penalty coefficient is positive, and the smaller the load, the larger the load penalty coefficient; when the current load of the GPU group exceeds the average load, the load penalty coefficient is 0.

6. A data grouping system for automatically executing the data grouping method for GPU architecture as described in any one of claims 1 to 5, characterized in that, include: The information extraction module is used to extract the grid load and communication traffic of all subgrids to be grouped. The score calculation module is used to calculate the assigned score for each subgrid to each GPU group in parallel; The allocation execution module is used to assign subgrids to the GPU group with the highest allocation score and mark the allocated status; The iterative control module is used to control the iterative execution of score calculation and subgrid allocation until all subgrids are allocated.

7. The data packetization system according to claim 6, characterized in that, The score calculation module integrates a communication threshold determination unit, a load difference calculation unit, and a load penalty coefficient calculation unit; The communication threshold determination unit receives the communication volume output by the information extraction module, determines and outputs the communication identifier bit based on the preset communication threshold; The load difference calculation unit receives the grid load output by the information extraction module and the current GPU group load, calculates and outputs the load difference; The load penalty coefficient calculation unit receives the load difference and average load output by the load difference calculation unit, calculates and outputs the load penalty coefficient; The score calculation module calculates and outputs the allocation score based on the communication identifier, load difference, and load penalty coefficient.

8. A GPU parallel computing device, characterized in that, It includes a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor executes the computer program to implement the steps of the method according to any one of claims 1 to 5.