Performance test method and device and related equipment

During each round of solution process of the benchmark test program, the non-decomposition matrix block is solved in advance based on the solution indication information, and the problem of waiting for the decomposition matrix block to complete the solution is solved, the execution time of the benchmark test program is optimized, and the overall performance of the computer system is improved.

CN119902981APending Publication Date: 2025-04-29HYGON INFORMATION TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411984377.5
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-12-30
Publication Date
2025-04-29

AI Technical Summary

Technical Problem

In the prior art, the benchmark test program needs to wait for the entire solution of the decomposition matrix block during execution before the non-decomposition matrix block can be solved, resulting in a long wait time and increasing the execution time of the benchmark test program.

Method used

By solving the non-decomposed matrix blocks in line with and column with the decomposed matrix block in advance, based on the solution start time indicated by the solution indication information during each round of solution.

Benefits of technology

The waiting time for solving non-decomposed matrix blocks is reduced, and the time for solving non-decomposed matrix in the benchmark test program is optimized, thereby improving the overall performance of the computer system.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119902981A_ABST
    Figure CN119902981A_ABST
Patent Text Reader

Abstract

The embodiment of the invention provides a performance testing method and device and related equipment, and the method comprises the steps: determining a to-be-tested computer system; executing a benchmark test program on the to-be-tested computer system, wherein the benchmark test program comprises multiple rounds of solving processes of performance test tasks; in the process of executing the benchmark test program, executing each round of solving process on the to-be-tested computer system based on the solving indication information; obtaining a performance test evaluation result of the to-be-tested computer system; wherein the solving indication information is used for indicating the solving starting moment of the non-decomposition matrix block in each round of solving process, the solving starting moment is earlier than the solving completion moment of the decomposition matrix block in the round of solving process, and the non-decomposition matrix block is a matrix block in the same row and the same column as the decomposition matrix block. According to the technical scheme provided by the embodiment of the invention, the execution time of the benchmark test program can be optimized, and the overall performance of a computer system is improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The embodiments of the present application relate to the field of computer technology, and specifically to a performance testing method, apparatus, and related equipment. Background Art

[0002] High Performance LINPACK-Mixed Precision (HPL-MxP), also known as HPL-AI (High Performance LINPACK for Accelerator Introspection), is a performance test program used to evaluate the floating-point computing capabilities of a computer system. The floating-point computing capabilities of a computer system (such as a high-performance computing system) determine its efficiency and speed in processing complex computing tasks. Therefore, the execution time of the benchmark program determines the test efficiency and performance of the benchmark program, and then determines the overall performance of the computer system. In this context, how to provide a technical solution, optimize the execution time of the benchmark program, and improve the overall performance of the computer system has become a technical problem that technical personnel in this field urgently need to solve. Summary of the invention

[0003] In view of this, an embodiment of the present invention provides a performance testing method, apparatus and related equipment to optimize the execution time of a benchmark test program and improve the overall performance of a computer system.

[0004] To achieve the above objectives, the embodiments of the present invention provide the following technical solutions.

[0005] In a first aspect, an embodiment of the present invention provides a performance testing method, including:

[0006] Identify the computer systems to be tested;

[0007] Executing a benchmark test program on the computer system to be tested, wherein the benchmark test program includes a process of solving multiple rounds of performance test tasks;

[0008] and, in the process of executing the benchmark test program, executing each round of the solution process on the computer system to be tested based on the solution instruction information;

[0009] Obtaining a performance test evaluation result of the computer system to be tested;

[0010] Among them, the solution indication information is used to indicate the starting time of solution of the non-decomposed matrix block in each round of solution process, and the solution starting time is earlier than the solution completion time of the decomposed matrix block in this round of solution process. The non-decomposed matrix block is a matrix block in the same row and column as the decomposed matrix block.

[0011] In a second aspect, an embodiment of the present invention provides a performance testing device, including:

[0012] A system determination module, used to determine the computer system to be tested;

[0013] A program execution module, configured to execute a benchmark test program on the computer system to be tested, wherein the benchmark test program includes a solution process for multiple rounds of performance test tasks; and, during the execution of the benchmark test program, executing each round of the solution process on the computer system to be tested based on the solution indication information;

[0014] A result obtaining module is used to obtain the performance test evaluation result of the computer system to be tested;

[0015] Among them, the solution indication information is used to indicate the starting time of solution of the non-decomposed matrix block in each round of solution process, and the solution starting time is earlier than the solution completion time of the decomposed matrix block in this round of solution process. The non-decomposed matrix block is a matrix block in the same row and column as the decomposed matrix block.

[0016] In a third aspect, an embodiment of the present invention provides an electronic device, including a memory and a processor, wherein the memory stores a program, and the processor calls the program stored in the memory to execute the performance testing method as described in the first aspect.

[0017] In a fourth aspect, an embodiment of the present invention provides a storage medium, wherein the storage medium stores a program, and when the program is executed, the performance testing method as described in the first aspect is implemented.

[0018] In a fifth aspect, an embodiment of the present invention provides a computer program product, including a computer program, which implements the performance testing method described in the first aspect when executed by a processor.

[0019] A performance testing method provided by an embodiment of the present invention includes: determining a computer system to be tested; executing a benchmark test program on the computer system to be tested, wherein the benchmark test program includes a solution process for multiple rounds of performance test tasks; and, in the process of executing the benchmark test program, executing each round of the solution process on the computer system to be tested based on solution indication information; and obtaining a performance test evaluation result of the computer system to be tested; wherein the solution indication information is used to indicate the solution start time of a non-decomposed matrix block in each round of the solution process, and the solution start time is earlier than the solution completion time of the decomposed matrix block in the round of the solution process, and the non-decomposed matrix block is a matrix block in the same row and column as the decomposed matrix block.

[0020] It can be seen that the technical solution provided by the embodiment of the present invention can solve the non-decomposed matrix blocks in the same row and column as the decomposed matrix blocks in advance for each round of the solution process in the process of executing the benchmark test program on the computer system based on the solution start time indicated by the solution indication information. Since in the process of executing the benchmark test program, each round of the solution process needs to wait for the decomposed matrix block to be solved as a whole before the non-decomposed matrix blocks in the same row and column as the decomposed matrix block can be solved, a longer waiting time is required when solving the non-decomposed matrix blocks in each round of the solution process, thereby increasing the execution time of the benchmark test program. Therefore, in an embodiment of the present invention, in each round of solving process, the non-decomposed matrix blocks are solved based on the solution start time indicated by the solution indication information. Since the solution start time is earlier than the solution completion time of the decomposed matrix blocks in the round of solving process, the solution time of the non-decomposed matrix in the round of solving process is advanced, thereby avoiding the limitation of waiting for the decomposed matrix blocks to be solved before solving the non-decomposed matrix blocks, reducing the waiting time for solving the non-decomposed matrix blocks, and realizing the optimization of the solution time of solving the non-decomposed matrix in the benchmark test program to optimize the benchmark test program; since the optimization of the solution time of solving the non-decomposed matrix in the benchmark test program is crucial to evaluating and improving the overall performance of the computer system, the performance testing method provided by the embodiment of the present invention can achieve the purpose of optimizing the execution time of the benchmark test program to improve the overall performance of the computer system. BRIEF DESCRIPTION OF THE DRAWINGS

[0021] In order to more clearly illustrate the embodiments of the present invention or the technical solutions in the prior art, the drawings required for use in the embodiments or the description of the prior art will be briefly introduced below. Obviously, the drawings described below are only embodiments of the present invention. For ordinary technicians in this field, other drawings can be obtained based on the provided drawings without paying creative work.

[0022] Figure 1 It is a schematic diagram of the calculation principle of the decomposition process of the benchmark test program provided by an embodiment of the present invention;

[0023] Figure 2 is a flow chart of a performance testing method provided by an embodiment of the present invention;

[0024] Figure 3 It is a schematic diagram of a part of the calculation principle in the process of solving the triangular matrix in the benchmark test program provided by the embodiment of the present invention;

[0025] Figure 4 It is a schematic diagram of another part of the calculation principle in the process of solving the triangular matrix in the benchmark test program provided by the embodiment of the present invention;

[0026] Figure 5It is a schematic diagram of matrix block division in the performance testing method provided by an embodiment of the present invention;

[0027] Figure 6a It is a schematic diagram of implementing the first step of solving the decomposition matrix block in the performance testing method provided by an embodiment of the present invention;

[0028] Figure 6b It is a schematic diagram of implementing the second step of solving the decomposition matrix block in the performance testing method provided by an embodiment of the present invention;

[0029] Figure 6c It is a schematic diagram of implementing the third step of solving the decomposition matrix block in the performance testing method provided by an embodiment of the present invention;

[0030] Figure 6d 1 is a schematic diagram of implementing the fourth step of solving the decomposition matrix block in the performance testing method provided by an embodiment of the present invention;

[0031] Figure 7 It is a schematic diagram of the implementation process of solving a non-decomposed matrix block in the performance testing method provided by an embodiment of the present invention;

[0032] Figure 8a It is a schematic diagram of implementing the first step of the update operation in the performance testing method provided by an embodiment of the present invention;

[0033] Figure 8b It is a schematic diagram of implementing the second step of the update operation in the performance testing method provided by an embodiment of the present invention;

[0034] Figure 8c It is a schematic diagram of implementing the third step of the update operation in the performance testing method provided in an embodiment of the present invention;

[0035] Fig. 9 It is a schematic diagram of the implementation process of solving a non-decomposed matrix without advance processing provided by an embodiment of the present invention;

[0036] Fig.10 It is a schematic diagram of the implementation process of solving the non-decomposed matrix in advance provided by an embodiment of the present invention;

[0037] Fig.11 It is a structural schematic diagram of a performance testing device provided by an embodiment of the present invention. DETAILED DESCRIPTION

[0038] The following will be combined with the drawings in the embodiments of the present invention to clearly and completely describe the technical solutions in the embodiments of the present invention. Obviously, the described embodiments are only part of the embodiments of the present invention, not all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of the present invention.

[0039] With the integration of high-performance computing and artificial intelligence (AI), there is an increasing demand for computer systems that can handle both high-performance computing (HPC) and AI workloads. Therefore, it is very necessary to evaluate the performance of such computer systems.

[0040] The performance of such computer systems is often evaluated using the benchmark program HPL-MxP, also commonly referred to as HPL-AI. HPL-MxP is a benchmark program used to measure the performance of computer systems performing high-performance computing, especially for insights into accelerators. It highlights the convergence of HPC and AI workloads by solving systems of linear equations using mixed-precision algorithms. HPL-MxP leverages an MPI (Message Passing Interface) process grid to balance the load across multiple processors and uses novel mixed-precision algorithms for computation.

[0041] Among them, mixed-precision arithmetic is a technology that uses different precisions (such as 32 bits, 16 bits, or even 8 bits) to improve performance and efficiency.

[0042] HPL-MxP is a variant of HPL (High Performance Linpack Benchmark), which is one of the commonly used benchmarks to measure the performance of computer systems and is usually used to determine the FLOPS (floating-point operations per second) of computer systems. HPL-MxP focuses on the integration of high-performance computing and artificial intelligence. Based on the HPL solution framework, it replaces 64-bit calculations with 32-bit + 16-bit mixed precision calculations, and adds an iterative process to recover the precision loss during the solution process, ensuring that the final solution meets the 64-bit precision requirements.

[0043] To facilitate the understanding of the HPL-MxP execution process, some terms used in the execution of HPL-MxP are first explained.

[0044] Coefficient matrix (N*N): In HPL-MxP, "N" represents the dimension of the coefficient matrix of the dense linear equations in the performance testing task, that is, the size of the N-by-N coefficient matrix. The size of N is directly related to the amount of data that needs to be processed.

[0045] Process: In HPL-MxP, a process refers to an execution unit in parallel computing, usually corresponding to an MPI process.

[0046] Block size (NB*NB): In HPL-MxP, the block size is represented by NB, which is a blocking factor used for partitioning in matrix calculations, affecting the distribution of data and the granularity of calculations.

[0047] When executing HPL-MxP in parallel, the coefficient matrix will be divided into multiple small blocks (i.e., divided into multiple NB*NB size blocks), and each process is responsible for calculating a small block (also called sub-block) in the coefficient matrix. Therefore, the size of "N" affects the size of the sub-block NB obtained by each process, and also affects the workload balance between processes.

[0048] Among them, "NB" is usually much smaller than "N" because "NB" defines the block size when performing matrix operations. In HPL-MxP, the coefficient matrix will be divided into multiple "NB"-sized sub-blocks for processing. Therefore, choosing an appropriate "NB" is crucial to optimizing memory usage and computational efficiency.

[0049] Processes are represented as an array of processes: P×Q, where the value of P×Q (i.e., the number of processes) matches the number of GPU or CPU cores available in the computer system. Each process processes a sub-block of the N-by-N coefficient matrix, and "NB" defines the size of these sub-blocks. Therefore, the choice of the number of processes and "NB" needs to work together to ensure effective parallel computing and load balancing.

[0050] To understand the implementation of the benchmark decomposition process, please refer to Figure 1 , Figure 1 It is a schematic diagram of the calculation principle of the decomposition process of the benchmark test program provided by an embodiment of the present invention.

[0051] like Figure 1 As shown, the input data is a 32-bit floating point number. Figure 1 The coefficient matrix (N*N) shown is the coefficient matrix in the dense linear equation system in the performance test task, and N is the dimension of the coefficient matrix.

[0052] Figure 1 The decomposition process of HPL-Mxp shown can be expressed as:

[0053] First, the diagonal block matrix to be solved is decomposed by LU decomposition to obtain the solution result L1 of the decomposed matrix block. The solution result L1 of the decomposed matrix block is formed by an upper triangular matrix and a lower triangular matrix. In each round of solution process, the diagonal block matrix on the diagonal of the coefficient matrix is ​​started for solution. The solution direction of the performance test task is usually on the diagonal of the coefficient matrix, from the upper left to the lower right. The "decomposed matrix block" described in this article is each diagonal block matrix located on the diagonal of the coefficient matrix in the solution direction.

[0054] Then, according to L1, trsm (triangular solve with matrix) is called to solve the non-decomposition matrix block in the same row and column as the decomposition matrix block, and the solution result of the non-decomposition matrix block is obtained (such as Figure 1 U and L2 shown).

[0055] Then, U and L2 are converted to 16-bit floating points (type conversion is performed), and the converted U and L2 are broadcast to the processes in the same column and row in the coefficient matrix respectively, so that the processes in the same column and row can execute the next round of solution process and perform subsequent mixed precision calculations.

[0056] It should be noted that, unlike the implementation of the HPL decomposition process, there is a constraint when generating the HPL-MxP matrix: the diagonal elements (the values ​​on the diagonal) are the sum of all the off-diagonal elements in each row. This ensures that the diagonal elements are the principal elements, so there is no need for the row swap operation.

[0057] It can be seen that in the commonly used scheme for executing HPL-MxP, the process where the NB*NB diagonal block (decomposition matrix block) is located first completes the LU decomposition of the decomposition matrix block by using a high-performance solver (such as solvers: cuSOLVER and rocSolver); then the solution result L1 of the decomposition matrix block obtained after the decomposition is broadcast to the non-decomposition matrix blocks in the same row and column as the decomposition matrix block to solve the non-decomposition matrix block.

[0058] Among them, the process in the same column as the process where the decomposition matrix block is located receives the solution result of the decomposition matrix block (the upper triangular matrix in the solution result of the decomposition matrix block), and solves the non-decomposition matrix block in the same column. After the solution is completed, the solution result L2 of the non-decomposition matrix block in the same column is converted from single precision (32 bits) to half precision (16 bits), and then row broadcast is performed in the coefficient matrix.

[0059] The process in the same line as the process where the decomposition matrix block is located receives the solution result of the decomposition matrix block (the lower triangular matrix in the solution result of the decomposition matrix block), and solves the non-decomposition matrix block in the same line. After the solution is completed, the solution result U of the non-decomposition matrix block in the same line is converted from single precision to half precision, and then column broadcast is performed in the coefficient matrix.

[0060] That is, in the common implementation scheme of HPL-MxP, the start time of solving the non-decomposed matrix block is after the solution of the decomposed matrix block is completed (i.e., L1 is obtained). Therefore, the start time of solving the non-decomposed matrix block is relatively late, which increases the waiting time for solving the non-decomposed matrix block in HPL-MxP, increases the time to obtain the performance test evaluation results of the computer system to be tested, and reduces the actual computing efficiency of the accelerator (such as GPU, Graphics Processing Unit: graphics processor) in the computer system.

[0061] To solve the above problems, an embodiment of the present invention provides a performance testing method for optimizing a benchmark testing program to improve the overall performance of a computer system.

[0062] Please refer to Figure 2 , Figure 2 It is a flow chart of a performance testing method provided by an embodiment of the present invention.

[0063] like Figure 2 As shown, the method comprises the following steps:

[0064] Step S101, determining a computer system to be tested.

[0065] The computer system to be tested may be the computer system capable of simultaneously processing HPC and AI workloads as described in the aforementioned embodiment.

[0066] The computer system to be tested may include:

[0067] Heterogeneous computing resources: Combining different types of processors such as CPU (central processing unit), GPU, ASIC (Application-Specific Integrated Circuit), FPGA (Field-Programmable Gate Array) to adapt to different types of computing tasks. For example, CPU is suitable for general computing tasks, while GPU or ASIC is suitable for processing large amounts of data in parallel, such as matrix operations commonly used in deep learning.

[0068] Step S102, executing a benchmark test program on the computer system to be tested, wherein the benchmark test program includes a solution process for multiple rounds of performance test tasks; and, during the execution of the benchmark test program, executing each round of the solution process on the computer system to be tested based on solution indication information.

[0069] Among them, the solution indication information is used to indicate the starting time of solution of the non-decomposed matrix block in each round of solution process, and the solution starting time is earlier than the solution completion time of the decomposed matrix block in this round of solution process. The non-decomposed matrix block is a matrix block in the same row and column as the decomposed matrix block.

[0070] The benchmark test program may be the HPL-MxP described in the above embodiment, and the benchmark test program may be executed on an accelerator of the computer system to be tested.

[0071] An accelerator is a hardware device used to accelerate a specific type of computing task. For example, among the heterogeneous computing resources mentioned above, GPU, ASIC, and FPGA are all accelerators.

[0072] In other implementations, the accelerator may also be a DSP (Digital Signal Processor), which is a chip specially designed for fast processing of signal processing algorithms, or a TPU (Tensor Processing Unit), which is a hardware accelerator specially used for machine learning applications.

[0073] Computer systems can be equipped with accelerators to improve their performance when performing specific tasks, such as executing a benchmark program.

[0074] One round of solving process may be: when executing HPL-MxP, a process of starting matrix operation for a process where a decomposition matrix block on a diagonal line is located.

[0075] The decomposition matrix block is as follows Figure 1 The coefficient matrix shown is a diagonal block matrix of each NB*NB on the diagonal.

[0076] The non-decomposed matrix block is Figure 1 As shown, the matrix blocks in the same row as the decomposition matrix block NB*NB, and the matrix blocks in the same column as the decomposition matrix block NB*NB.

[0077] When executing a benchmark test program on a computer system to be tested, the embodiment of the present invention starts solving the non-decomposed matrix blocks in advance for each round of solving process based on the solving start time indicated by the solving indication information.

[0078] Since the solution start time is earlier than the solution completion time of the decomposed matrix block in the current round of solution process, the solution time of the non-decomposed matrix block can be advanced, thereby optimizing the time for solving the non-decomposed matrix block in the benchmark program, thereby improving the overall efficiency of the computer system and improving the overall performance of the computer system.

[0079] Step S103, obtaining the performance test evaluation result of the computer system to be tested.

[0080] The performance test evaluation results may provide quantitative indicators for evaluating the performance of the computer system.

[0081] It can be seen that the technical solution provided by the embodiment of the present invention can solve the non-decomposed matrix blocks in the same row and column as the decomposed matrix blocks in advance for each round of the solution process in the process of executing the benchmark test program on the computer system based on the solution start time indicated by the solution indication information. Since in the process of executing the benchmark test program, each round of the solution process needs to wait for the decomposed matrix block to be solved as a whole before the non-decomposed matrix blocks in the same row and column as the decomposed matrix block can be solved, a longer waiting time is required when solving the non-decomposed matrix blocks in each round of the solution process, thereby increasing the execution time of the benchmark test program. Therefore, in an embodiment of the present invention, in each round of solving process, the non-decomposed matrix blocks are solved based on the solution start time indicated by the solution indication information. Since the solution start time is earlier than the solution completion time of the decomposed matrix blocks in the round of solving process, the solution time of the non-decomposed matrix in the round of solving process is advanced, thereby avoiding the limitation of waiting for the decomposed matrix blocks to be solved before solving the non-decomposed matrix blocks, reducing the waiting time for solving the non-decomposed matrix blocks, and realizing the optimization of the solution time of solving the non-decomposed matrix in the benchmark test program to optimize the benchmark test program; since the optimization of the solution time of solving the non-decomposed matrix in the benchmark test program is crucial to evaluating and improving the overall performance of the computer system, the performance testing method provided by the embodiment of the present invention can achieve the purpose of optimizing the execution time of the benchmark test program to improve the overall performance of the computer system.

[0082] In order to facilitate the computer system to clearly know the starting time for solving the non-decomposed matrix block during the execution of the benchmark test program, in one implementation, solution indication information may be preset.

[0083] Please continue to refer to Figure 2 , the method may further comprise the following steps:

[0084] Step S100, setting solution indication information based on the solution status of the decomposition matrix block in each round of solution process.

[0085] Since the solution indication information is used to indicate the starting time of the solution of the non-decomposed matrix block in the solution process of this round. Based on the above analysis, it can be known that when solving the non-decomposed matrix block, it is necessary to use the solution result L1 of the decomposed matrix block. Therefore, in order to ensure that the matrix solution requirements of the benchmark test program are met while the solution of the non-decomposed matrix block is started in advance, when setting the request indication information, the embodiment of the present invention sets the corresponding solution indication information based on the solution of the decomposed matrix block in the solution process of this round.

[0086] Step S100 may include:

[0087] Determine the matrix dimension of the decomposed matrix block in each round of solution process; divide the decomposed matrix block and the non-decomposed matrix block based on the determined matrix dimension to obtain the divided sub-decomposed matrix block and the divided sub-non-decomposed matrix block; solve the sub-decomposition matrix blocks on each diagonal of the decomposed matrix block according to the solution direction of the performance test task, and use the sub-solution completion time of the sub-decomposition matrix block on each diagonal as the sub-solution starting time for solving the sub-non-decomposition matrix block corresponding to the sub-decomposition matrix block on the diagonal; and set the sub-solution completion time of the sub-decomposition matrix block on the diagonal that completes the solution for the first time as the solution starting time of the non-decomposition matrix block to obtain the solution indication information of the non-decomposition matrix block.

[0088] Since the sub-solution completion time of each sub-decomposition matrix block is respectively used as the sub-solution starting time for solving the sub-non-decomposition matrix blocks in the same row and column as the sub-decomposition matrix block. Since the solutions are sequentially solved in the solution order, the sub-solution completion time of the sub-decomposition matrix block that is solved for the first time is set as the solution starting time of the non-decomposition matrix block, so that in the process of dividing the decomposition matrix block and solving each sub-decomposition matrix block of the decomposition matrix block, based on the sub-solution completion time of the sub-decomposition matrix block that is solved for the first time, the sub-non-decomposition matrix blocks in the same row and column corresponding to the decomposition matrix block can be solved, and the solution time of the non-decomposition matrix block can be solved in advance.

[0089] To facilitate understanding of the implementation principle of the above step S100, the process of using the solution results of the decomposed matrix block to solve the non-decomposed matrix block in the benchmark program is used as an example for explanation. Figure 3 and Figure 4 , Figure 3 This is a schematic diagram of a portion of the calculation principle in the process of solving a triangular matrix in a benchmark test program provided by an embodiment of the present invention. Figure 4 It is a schematic diagram of another part of the calculation principle in the process of solving the triangular matrix in the benchmark test program provided by an embodiment of the present invention.

[0090] In the computational principle of solving the decomposed matrix blocks by HPL-MxP and the computational principle of solving the triangular matrix (trsm) of the non-decomposed matrix blocks, the process of obtaining the solution results of each decomposed matrix block and the solution process of obtaining the solution results of each non-decomposed matrix block are separated; then the separated processes are merged to achieve an efficient decomposition process.

[0091] First, the calculation process of trsm is introduced. Take a lower triangular matrix multiplication "AX=B" as an example, where A is a lower triangular matrix (NB*NB), that is, the coefficient matrices A, B and X to be solved (here, the solution result U of the non-decomposed matrix block with X as the same row is taken as an example) are M*N matrices, where "NB" is equal to "M".

[0092] The triangular matrix solution process is as follows Figure 3 and Figure 4 As shown:

[0093] According to the number of decomposition matrix blocks (i.e., matrix blocks on the diagonal of the coefficient matrix) Aii, the B matrix is ​​split into 4 parts: B1, B2, B3, B4, and the corresponding X to be solved is also split into 4 parts: X1, X2, X3, X4. Among them, i = 1, 2, ..., n, n is determined based on the block size, Figure 3 and Figure 4 In the illustration, n is taken as 4 as an example.

[0094] Since A is a lower triangular matrix, the above calculation formula after splitting "AX=B" can be expressed as:

[0095]

[0096] Therefore, the implementation process when solving X can include the following steps:

[0097] Step 1, solve the inverse of A11 invA11;

[0098] Step 2, solve X1=invA11*B1;

[0099] In step 2, the GEMM (General Matrix to Matrix Multiplication) algorithm can be used. GEMM is a basic operation in linear algebra, which is used to calculate the result of multiplying two matrices.

[0100] Step 3: Substitute the solved X1 into B2, B3 and B4 in the above formula, that is, update B2, B3, B4 by one matrix multiplication to obtain updated B2', B3', B4'. Here, the GEMM algorithm can also be used to update B2, B3, B4.

[0101] Step 4, solve the inverse of A22, invA22;

[0102] Step 5, call the GEMM algorithm to solve X2=invA22*B2′;

[0103] Step 6: Based on the solved X2, call the GEMM algorithm again, and update B3′, B4′ through one matrix multiplication to obtain B3″, B4″.

[0104] Step 7, solve the inverse of A33, invA33;

[0105] Step 8, call the GEMM algorithm to solve X3=invA33*B3″;

[0106] Step 9, according to the solved X3, call the GEMM algorithm again, update B4″ through a matrix multiplication, and obtain B4″′;

[0107] Step 10, solve the inverse of A44 invA44

[0108] Step 11, call the GEMM algorithm to solve X4=invA44*B4″′.

[0109] At this point, the calculations of all Xi, i=1-4 are completed, that is, the solutions of the non-decomposition matrix blocks in each row are completed, and the solution results U of the non-decomposition matrix blocks in the same row are obtained.

[0110] The process of solving the inverse of Aii is the process of obtaining the solution results of each decomposed matrix block. Therefore, from the above process of solving AX=B, each time a row block Xi of the X matrix is ​​calculated, it is only necessary to decompose the inverse of the corresponding small diagonal block Aii in the matrix block A.

[0111] Therefore, the above analysis results are applied to a round of solution process. L1 can be regarded as the solution result of the above triangular matrix A, and the solution results L2 and U of the non-decomposed matrix block can be regarded as X to be solved. Then, the solution of each partition Xi in X only needs to rely on the solution result of a small decomposition matrix block corresponding to the split, without the need for the value of the complete decomposition matrix block (NB*NB).

[0112] Based on the applicability of the above analysis results, an improvement of step S100 is obtained; in the process of calculating the non-decomposition matrix block, the decomposition matrix block can be divided, and the non-decomposition matrix block can be divided in the same way, so that the solution of each divided sub-non-decomposition matrix block only depends on the solution result of the sub-decomposition matrix block after the corresponding decomposition matrix block is divided, thereby advancing the solution process of the non-decomposition matrix block and reducing the waiting time when solving the non-decomposition matrix block.

[0113] The matrix dimension of the decomposition matrix block is NB in ​​the above example. When dividing the decomposition matrix block of NB*NB, it is ensured that it can be divided into integers for the convenience of subsequent calculations.

[0114] Since the non-decomposition matrix block is a matrix block in the same row and column as the decomposition matrix block, after the non-decomposition matrix block in the same row is divided, the number of blocks of the sub-non-decomposition matrix block is equal to the number of row blocks after the decomposition matrix block is divided, and after the non-decomposition matrix block in the same column is divided, the number of blocks of the sub-non-decomposition matrix block is equal to the number of column blocks after the decomposition matrix block is divided.

[0115] Since the solution direction of HPL-MxP is unchanged during the solution process, the decomposition matrix blocks after the division can be used to continue to solve the performance test task in the direction of the solution (along the diagonal of the coefficient matrix, from the upper left to the lower right) for each sub-decomposition matrix block (the sub-decomposition matrix blocks on the diagonal of the decomposition matrix block). When the solution of the first sub-decomposition matrix block is completed according to the solution direction (the sub-solution completion time of the sub-decomposition matrix block that is solved for the first time), the sub-non-decomposition matrix blocks in the same row and column as the first sub-decomposition matrix block can be solved (set as the solution start time of the non-decomposition matrix block), thereby advancing the solution time of the decomposition matrix block.

[0116] In order to facilitate the smooth solution of the decomposed matrix block after the division, the size (NBMIN) of the sub-decomposed matrix block can be determined according to the matrix dimension (NB) of the decomposed matrix block, so as to perform integer division on the decomposed matrix block. Therefore, in one embodiment, the decomposed matrix block and the non-decomposed matrix block are divided based on the determined matrix dimension to obtain the divided sub-decomposed matrix block and the divided sub-non-decomposed matrix block, which may include:

[0117] Based on the row dimension in the determined matrix dimension, performing row division on the decomposed matrix block and a first non-decomposed matrix block in the same row as the decomposed matrix block, and based on the column dimension in the determined matrix dimension, performing column division on the decomposed matrix block and a second non-decomposed matrix block in the same column as the decomposed matrix block;

[0118] Obtain each sub-decomposition matrix block after division, and a first sub-non-decomposition matrix block in the same row and a second sub-non-decomposition matrix block in the same column as the sub-decomposition matrix block on each diagonal line of the decomposition matrix block;

[0119] The method of using the sub-solution completion time of each sub-decomposition matrix block as the sub-solution start time of solving the sub-non-decomposition matrix block corresponding to the sub-decomposition matrix block comprises:

[0120] The sub-solution completion time of the sub-decomposition matrix blocks on each diagonal line is set to the first sub-solution start time of executing the first sub-non-decomposition matrix block in the same row as the sub-decomposition matrix block on the diagonal line, and is set to the second sub-solution start time of executing the second sub-non-decomposition matrix block in the same column as the sub-decomposition matrix block on the diagonal line.

[0121] The row dimension and column dimension in the matrix dimension of the decomposition matrix block are both the size indicated by NB, for example, NB is 256. Then the size of the sub-decomposition matrix block that can be divided into i parts by integer can be selected according to the size of the row dimension and column dimension indicated by NB, that is, in each sub-decomposition matrix block (NBMIN*NBMIN), NBMIN=NB / i, i is the number of sub-decomposition matrix blocks on each row or column in the decomposition matrix block. For example, if i=4, then NBMIN=64. Among them, i=4 means that after the decomposition matrix block is divided, there are 4 sub-decomposition matrix blocks on each row and 4 sub-decomposition matrix blocks on each column, and after the decomposition matrix block is divided, "4×4" sub-decomposition matrix blocks can be obtained.

[0122] By dividing the first non-decomposed matrix block of the same row into the same number of parts i, the first sub-non-decomposed matrix blocks of 4 row blocks can be obtained.

[0123] By dividing the second non-decomposed matrix block in the same column into the same number of parts i, a second sub-non-decomposed matrix block of 4 column blocks can be obtained.

[0124] Based on the divided sub-decomposition matrix blocks, the sub-decomposition matrix blocks are solved in turn according to the solution direction, that is, each sub-decomposition matrix block on the diagonal of the decomposition matrix block is solved. After the solution result of each sub-decomposition matrix block on the diagonal is obtained (the sub-solution completion time), the solution of the first sub-non-decomposition matrix block in the same row as the sub-decomposition matrix block on the diagonal can be started (the first sub-solution start time), and the solution of the second sub-non-decomposition matrix block in the same column (the second sub-solution start time).

[0125] To further understand the partitioning implementation of the decomposed matrix block and the non-decomposed matrix block, in one embodiment, the row partitioning of the decomposed matrix block and the first non-decomposed matrix block in the same row as the decomposed matrix block based on the row dimension in the determined matrix dimension includes:

[0126] Determine sub-row dimensions of the integer-divisible sub-decomposition matrix blocks based on the row dimensions in the determined matrix dimensions;

[0127] Determine the number of rows after the decomposition matrix block is divided based on the sub-row dimension, and determine the number of blocks of the first sub-non-decomposition matrix of the same row based on the sub-row dimension;

[0128] The step of performing column division on the decomposed matrix block and the second non-decomposed matrix block in the same column as the decomposed matrix block based on the column dimension in the determined matrix dimension comprises:

[0129] Determine sub-column dimensions of the integer-divisible sub-decomposition matrix blocks based on the determined column dimensions in the matrix dimensions;

[0130] Determine the number of columns after the decomposition matrix block is divided based on the sub-column dimension, and determine the number of blocks of the second sub-non-decomposition matrix in the same column based on the sub-column dimension;

[0131] The sub-decomposition matrix blocks obtained after the division include:

[0132] Based on the determined number of rows and columns of the decomposition matrix block after division, the number of blocks of the sub-decomposition matrix block after division is determined, and each sub-decomposition matrix block after division is obtained.

[0133] The sub-row dimension may be NBMIN that can divide NB by an integer. For example, when NB is 256, NBMIN may be 64. Then, based on the sub-row dimension NBMIN, the number of sub-blocks that can be divided by an integer (i.e., the aforementioned number of shares i) may be determined to be 256 / 64=4. At the same time, the number of the first sub-non-decomposed matrix blocks in the same row after division is also 4, and the number of the second sub-non-decomposed matrix blocks in the same column after division is also 4.

[0134] The schematic diagram of the divided sub-decomposition matrix block, the first sub-non-decomposition matrix block and the second sub-non-decomposition matrix block can be referred to Figure 5 , Figure 5 It is a schematic diagram of matrix block division in the performance testing method provided in an embodiment of the present invention.

[0135] like Figure 5 As shown, in order to distinguish matrix blocks, the "1" superscript in A1i indicates a decomposed matrix block, the "3" superscript in A3i indicates the first non-decomposed matrix block in the same row as A1i, and the "2" superscript in A2i indicates the second non-decomposed matrix block in the same column as A1i, where i indicates the solution order determined based on the solution direction in each matrix block. Take A11 as an example, where the first superscript "1" indicates that the matrix block to be solved is a sub-decomposed matrix block in the decomposed matrix block, and the second superscript "1" indicates that the sub-decomposed matrix block is the first matrix block to be solved according to the solution order.

[0136] Since the solution order of the decomposition matrix block corresponds to the solution direction, that is, it is executed sequentially from the upper left corner to the lower right corner, therefore, in the first non-decomposition matrix block and the second non-decomposition matrix block, the subscripts indicating the solution order in the first sub-non-decomposition matrix block and the second sub-non-decomposition matrix block after division are the same as the subscripts indicating the solution order in each sub-decomposition matrix block in the decomposition matrix block.

[0137] exist Figure 5 In each of the sub-decomposition matrix blocks after the division shown, after A11 is solved to obtain L11, the first sub-non-decomposition matrix block A31 of the corresponding row can be solved to obtain the first sub-solution result U1 of the first sub-non-decomposition matrix block. At the same time, the second sub-non-decomposition matrix block A21 of the corresponding column is solved to obtain the second sub-solution result L21 of the second sub-non-decomposition matrix block. In order to advance the solution time of the non-decomposition matrix block, the sub-solution completion time of the sub-decomposition matrix block that completes the solution for the first time is set as the solution start time of the non-decomposition matrix block, thereby completing the setting of the solution indication information.

[0138] After the solution indication information is set, during the execution of the benchmark test program, the solution of the non-decomposed matrix block can be performed in advance in each round of the solution process based on the solution start time indicated by the solution indication information. In one embodiment, during the execution of the benchmark test program, performing each round of the solution process on the computer system to be tested based on the solution indication information may include:

[0139] In the process of executing the benchmark test program, each round of solving process is completed in sequence according to the solving direction of the performance test task;

[0140] In each round of solving process, the following operations are performed:

[0141] Obtaining a corresponding sub-solution result based on the sub-decomposition matrix block on the diagonal line that has been solved for the first time determined by the solution indication information;

[0142] Using the sub-solution result, solve the first sub-non-decomposition matrix block in the same row as the sub-decomposition matrix block on the diagonal line to obtain a first sub-solution result;

[0143] And, using the sub-solution result, solving a second sub-non-decomposition matrix block in the same column as the sub-decomposition matrix block on the diagonal line to obtain a second sub-solution result;

[0144] For a non-last sub-non-decomposed matrix block, an unsolved matrix block in the non-decomposed matrix block is updated based on the first sub-solved result and the second sub-solved result;

[0145] Until the sub-solution results of the sub-decomposition matrix blocks on the diagonal that have been solved are followed according to the solution direction, the solution of the first sub-non-decomposition matrix block in the corresponding row and the second sub-non-decomposition matrix block in the same column are completed, and this round of solution process ends.

[0146] Since the solution start time indicated by the solution indication information is set based on the solution completion time of the sub-decomposition matrix block on the diagonal line that is first solved, the sub-decomposition matrix block on the diagonal line that is first solved can be determined based on the solution indication information, and then the sub-solution result of the sub-decomposition matrix block on the diagonal line can be obtained.

[0147] Using the sub-solution results, the first sub-non-decomposition matrix block in the same row as the sub-decomposition matrix block on the diagonal that has been solved for the first time is solved, and the second sub-non-decomposition matrix block in the same column is solved.

[0148] At the same time, based on the above Figure 3 and Figure 4 From the content shown, it can be known that after solving the non-decomposition matrix blocks in the same row and column, the non-decomposition matrix blocks that have not been solved need to be updated. Therefore, after solving the first sub-non-decomposition matrix block and the second sub-non-decomposition matrix block, the sub-non-decomposition matrix blocks that have not been solved in the non-decomposition matrix block: the first sub-non-decomposition matrix block and the second sub-non-decomposition matrix block are updated; and the sub-decomposition matrix blocks on the diagonal line that have been solved for the first time are solved.

[0149] Then continue to execute the next round of the solution process according to the solution direction, that is, according to the solution result of the sub-decomposition matrix block on the next diagonal line, calculate the first sub-non-decomposition matrix block in the same row and the second sub-non-decomposition matrix block in the same column as the sub-decomposition matrix block on the next diagonal line for solution and subsequent update. Until the sub-decomposition matrix block on the last diagonal line indicated by the solution direction is completed, and the sub-solution result of the sub-decomposition matrix block on the last diagonal line is used to complete the solution of the first sub-non-decomposition matrix block in the same row and the second sub-non-decomposition matrix block in the same column, and the execution of this round of the solution process ends.

[0150] Based on the solution concept of HPL-MxP, in the improved algorithm of the embodiment of the present invention, multiple rounds of matrix solution are also performed for each round of solution process, that is, according to the solution of the divided sub-decomposition matrix blocks, the first sub-non-decomposition matrix blocks in the same row as the sub-decomposition matrix blocks on each diagonal line and the second sub-non-decomposition matrix blocks in the same column are solved one by one. Therefore, in order to ensure the complete execution of each round of the solution process, it can be judged whether the execution of the round of solution process is completed according to the number of divided blocks.

[0151] In one embodiment, the step of completing the solution of the first sub-non-decomposition matrix block in the same row and the second sub-non-decomposition matrix block in the same column according to the solution direction based on the sub-solution results of the sub-decomposition matrix blocks on the diagonal that have been solved, and ending the round of solution process, includes:

[0152] According to the solution direction, when it is determined that the number of sub-decomposition matrix blocks on the diagonal that have been solved is equal to the number of sub-decomposition matrix blocks on the diagonal after division, the sub-decomposition matrix blocks on each diagonal are solved;

[0153] According to the solution direction, when it is determined that the number of first sub-non-decomposition matrix blocks of the same row that has been solved is equal to the number of blocks of the first sub-non-decomposition matrix, the solution of the first sub-non-decomposition matrix block is completed;

[0154] And according to the solution direction, when it is determined that the number of the second sub-non-decomposition matrix blocks in the same column that have been solved is equal to the number of blocks of the second sub-non-decomposition matrix, the solution of the second sub-non-decomposition matrix block is completed;

[0155] End this round of solving process.

[0156] Since in the original HPL-MxP, the solution direction indicates the direction from the upper left corner to the lower right corner of the coefficient matrix diagonal, that is, starting from the first decomposition matrix block on the upper left of the coefficient matrix diagonal, and ending with the last decomposition matrix block on the lower right of the diagonal. Therefore, on the basis of following the original solution direction, after dividing each decomposition matrix block, the embodiment of the present invention continues to solve according to the solution direction in each round of the solution process; however, at this time, in the decomposition matrix block in one round of the solution process, the solution direction corresponds to: starting from the first sub-decomposition matrix block on the upper left of the diagonal of the decomposition matrix block, and ending with the last sub-decomposition matrix block on the lower right of the diagonal.

[0157] Based on the above analysis, when judging whether each round of the solving process is completely executed, it can be achieved by judging whether the last sub-decomposition matrix block in the lower right corner has been solved on the diagonal of the decomposition matrix block.

[0158] For example, if the number of blocks is 4, then the second subscript of the sub-decomposition matrix block A1i on the diagonal can be used to determine whether the solution of all the sub-decomposition matrix blocks on the diagonal in the decomposition matrix block has been completed. Similarly, the second subscript A2i of the second sub-non-decomposition matrix block can be used to determine whether the solution of the non-decomposition matrix block in the same column has been completed; and the second subscript A3i of the first sub-non-decomposition matrix block can be used to determine whether the solution of the non-decomposition matrix block in the same row has been completed.

[0159] In order to successfully obtain the sub-solution results of the sub-decomposition matrix blocks on each diagonal line, in one embodiment, before the step of obtaining the corresponding sub-solution results of the sub-decomposition matrix blocks on the diagonal line that are first solved based on the solution indication information, the following may also be included:

[0160] According to the solution direction, each sub-decomposition matrix block on the diagonal in the decomposition matrix block is solved in turn to obtain a sub-solution result corresponding to each sub-decomposition matrix block on the diagonal;

[0161] Among them, when the first sub-decomposition matrix block on the diagonal is solved, the sub-solution result corresponding to the first sub-decomposition matrix block on the diagonal is the sub-solution result of the sub-decomposition matrix block that has been solved for the first time, and when the sub-solution result corresponding to the first sub-decomposition matrix block on the diagonal is obtained, the first sub-non-decomposition matrix in the same row and the second sub-non-decomposition matrix in the same column as the first sub-decomposition matrix on the diagonal are solved.

[0162] In HPL-MxP, the decomposed matrix block is solved before the non-decomposed matrix block is solved. However, in the embodiment of the present invention, the decomposed matrix block and the non-decomposed matrix block are divided. Therefore, when solving the decomposed matrix block, based on the sub-solution results of the sub-decomposed matrix block on each diagonal line, the first sub-non-decomposed matrix block in the same row and the second sub-non-decomposed matrix block in the same column as the sub-decomposed matrix block on the diagonal line can be solved.

[0163] Therefore, when calculating the decomposition matrix blocks after division, when the solution of the first sub-decomposition matrix block A11 on the diagonal is completed, based on the solution indication information set at the time of completion of the sub-solution, the sub-solution result L11 at this time can be used to solve the first sub-non-decomposition matrix block A31 in the same column as A11, and L11 can be used to solve the second sub-non-decomposition matrix block A21 in the same column as A11.

[0164] When solving the sub-decomposition matrix block, it is also a triangular matrix solving process, that is, in the process of solving the sub-decomposition matrix block, it also includes the calculation of the matrix to be solved (that is, the inverse of the sub-decomposition matrix blocks on each diagonal) and the update of the matrix block (updating the unsolved sub-decomposition matrix blocks on the non-diagonal lines based on the inverse of the sub-decomposition matrix blocks on the diagonal lines). Therefore, in one embodiment, according to the solving direction, each sub-decomposition matrix block on the diagonal line in the decomposition matrix block is solved in turn to obtain the sub-solution results corresponding to the sub-decomposition matrix blocks on each diagonal line, including:

[0165] According to the solution direction, based on the position of the sub-decomposition matrix block on the diagonal currently being solved on the diagonal, the solution operation for solving the sub-decomposition matrix block on the diagonal is determined to obtain the sub-solution result of the sub-decomposition matrix block on the diagonal.

[0166] Based on the aforementioned Figure 3 and Figure 4From the explanation of the TRSM calculation principle shown in the figure, it can be known that the sub-decomposition matrix blocks on the diagonal to be solved are located at different positions on the diagonal, and the solution operations are also different. Therefore, the sub-decomposition matrix blocks on the diagonal can be solved according to the positions of the sub-decomposition matrix blocks on the diagonal to ensure the accurate solution of the sub-decomposition matrix blocks on the diagonal.

[0167] Since different solving operations are used when solving sub-decomposition matrix blocks at different positions on the diagonal according to the solving order, in order to fully ensure the accurate solution of the sub-decomposition matrix blocks on the diagonal, in one embodiment, according to the solving direction, according to the position of the sub-decomposition matrix block on the diagonal currently solved on the diagonal, the solving operation for solving the sub-decomposition matrix block on the diagonal is determined, and the sub-solving result of the sub-decomposition matrix block on the diagonal is obtained, including:

[0168] In the process of solving the sub-decomposition matrix blocks on each diagonal line according to the solving direction, for the sub-decomposition matrix blocks on the non-last diagonal line, the following operations are performed:

[0169] Using the solver to solve the sub-decomposition matrix block on the non-last diagonal line, obtaining a diagonal sub-solution result as a sub-solution result of the sub-decomposition matrix block on the non-last diagonal line;

[0170] And, using the diagonal sub-solution result, updating the sub-decomposition matrix blocks in the same row and column as the sub-decomposition matrix block on the non-last diagonal line;

[0171] For the last diagonal sub-factorization matrix block, do the following:

[0172] Solving the sub-decomposition matrix block on the last diagonal line by using a solver, obtaining a diagonal sub-solution result of the sub-decomposition matrix block on the last diagonal line as a sub-solution result of the sub-decomposition matrix block on the last diagonal line;

[0173] Among them, the step of updating the unsolved matrix blocks in the non-decomposition matrix block based on the first sub-solution result and the second sub-solution result is performed synchronously with the step of using the diagonal sub-solution result to update the sub-decomposition matrix blocks in the same row and column as the sub-decomposition matrix block on the non-last diagonal line.

[0174] Since the solution process of the sub-decomposition matrix blocks on the diagonal also adopts the calculation principle of trsm, when solving the sub-decomposition matrix blocks of a decomposition matrix block according to the solution direction, it also includes the matrix solution and update operations. For the solution of the last sub-decomposition matrix block on the diagonal of the decomposition matrix block, since it is in the last position, there is no subsequent update operation.

[0175] by Figure 5 Taking the 4×4 sub-decomposition matrix blocks shown in the figure as an example, the solution process of the decomposition matrix blocks after the division is explained. The solution process of the sub-decomposition matrix blocks after the division can be referred to Figure 6a-6d , Figure 6a 6 is a schematic diagram for implementing the first step of solving the decomposition matrix block in the performance testing method provided in an embodiment of the present invention, 6b is a schematic diagram for implementing the second step of solving the decomposition matrix block in the performance testing method provided in an embodiment of the present invention, 6c is a schematic diagram for implementing the third step of solving the decomposition matrix block in the performance testing method provided in an embodiment of the present invention, and 6d is a schematic diagram for implementing the fourth step of solving the decomposition matrix block in the performance testing method provided in an embodiment of the present invention.

[0176] like Figure 6a As shown, in the first step, according to the solution direction, the solution is started from the first sub-decomposition matrix block A11 on the diagonal of the decomposition matrix block. Since it is not the sub-decomposition matrix block on the last diagonal, when using the solver ( Figure 6a-6d The Solver solver is used as an example to demonstrate) solves the sub-decomposition matrix block A11 on the diagonal line and obtains the diagonal sub-solution result L11 (sub-solution result) of the sub-decomposition matrix block A11; then trsm is called to solve the sub-decomposition matrix blocks on the non-diagonal line in the same row and column as A11; and the result of the trsm solution is used to update the unsolved sub-decomposition matrix blocks by calling GEMM matrix multiplication, that is, in the decomposition matrix block, each sub-decomposition matrix block except the row and column where A11 is located is updated.

[0177] like Figure 6b The shaded area shows the solved area, i.e. the first step Figure 6a The sub-decomposition matrix blocks solved in include: the sub-decomposition matrix blocks on the first diagonal and the sub-decomposition matrix blocks on the off-diagonal lines in the same row and column as the sub-decomposition matrix blocks on the first diagonal line.

[0178] When solving the next sub-decomposition matrix block A12 on the diagonal according to the solution direction, it is still not the last sub-decomposition matrix block on the diagonal. Therefore, the solver is continued to be used to solve A12 to obtain the diagonal sub-solution result L12 of the sub-decomposition matrix block A12 on the diagonal, and then trsm is called to use L12 to solve each sub-decomposition matrix block on the non-diagonal line in the same row and column as A12; GEMM is called to use the result of trsm to update the remaining unsolved sub-decomposition matrix blocks.

[0179] Figure 6c In the same way, the solver is called to solve A13. After obtaining the diagonal sub-solution result L13 of the sub-decomposition matrix block A13 on the diagonal line, trsm is called to use L13 to solve the sub-decomposition matrix blocks on the non-diagonal line in the same row and column as A13; GEMM is called to use the result of trsm to update the remaining unsolved sub-decomposition matrix blocks.

[0180] Figure 6d In the figure, since this is the solution of the last sub-decomposition matrix block A14 on the diagonal, no update operation is involved. At this time, only the solver is called to solve A14, and the diagonal sub-solution result L14 of the sub-decomposition matrix block on the diagonal is obtained as the sub-solution result, completing the entire solution of the decomposition matrix block A1i (i=1, 2, 3, 4).

[0181] When solving a non-decomposed matrix block, the non-decomposed matrix block can be solved in advance based on the solution start time indicated by the solution indication information, and the solution start time is the solution completion time of the sub-decomposed matrix block on the diagonal line that is solved for the first time. Therefore, in the above-mentioned process of solving the sub-decomposed matrix blocks on each diagonal line of the decomposed matrix block, as long as the sub-decomposed matrix block on the diagonal line that is solved for the first time is determined (for example, A11), the sub-non-decomposed matrix blocks in the same row and column can be solved.

[0182] In one embodiment, using the sub-solution result to solve the first sub-non-decomposition matrix block in the same row as the sub-decomposition matrix block on the diagonal line to obtain the first sub-solution result includes:

[0183] The sub-solution result is broadcast to the first non-sub-decomposition matrix block in the same row as the sub-decomposition matrix block on the diagonal line, and the first sub-non-decomposition matrix block in the same row as the sub-decomposition matrix block on the diagonal line is solved based on the sub-solution result to obtain a first sub-solution result.

[0184] According to the solution direction, after completing the solution of a sub-decomposition matrix block on the diagonal, that is, obtaining L1i (i=1, 2, 3, 4), L1i can be used to solve the first sub-non-decomposition matrix block A3i in the same row as A1i, and calculate the first sub-solution result Ui.

[0185] In some other implementations, using the sub-solution result to solve a second sub-non-decomposition matrix block in the same column as the sub-decomposition matrix block on the diagonal to obtain a second sub-solution result includes:

[0186] The sub-solution result is broadcast to the second non-sub-decomposition matrix block in the same column as the sub-decomposition matrix block on the diagonal line, and the second sub-non-decomposition matrix block in the same column as the sub-decomposition matrix block on the diagonal line is solved based on the sub-solution result to obtain a second sub-solution result.

[0187] According to the solution direction, after completing the solution of a sub-decomposition matrix block on the diagonal to obtain L1i (i=4 as an example), L1i can be used to solve the second sub-non-decomposition matrix block A2i in the same column as A1i, and the second sub-solution result L2i can be calculated.

[0188] To facilitate understanding of the solution process of non-decomposition matrix blocks, Figure 6a-6d Taking the schematic diagram of the solution process of the decomposed matrix block shown in FIG. 1 as an example, the solution process of the non-decomposed matrix block is explained.

[0189] Please combine Figure 6a-6d refer to Figure 7 , Figure 7 It is a schematic diagram of the implementation process of solving non-decomposed matrix blocks in the performance testing method provided in an embodiment of the present invention.

[0190] like Figure 7 As shown, according to the solution direction, after calculating the first sub-decomposition matrix block on the diagonal of the decomposition matrix block and obtaining the sub-solution result L11, the first sub-non-decomposition matrix block A31 in the same column as A11 can be solved to obtain the first sub-solution result U1 of A31; at the same time, L11 is used to solve the second sub-non-decomposition matrix block A21 in the same column as A11 to obtain the second sub-solution result L21 of A21.

[0191] The sub-decomposition matrix blocks on the diagonal are solved in sequence according to the solution direction. After obtaining the sub-solution result L12 of A12, the first sub-non-decomposition matrix block A32 in the same column as A12 can be solved to obtain the first sub-solution result U2 of A32; at the same time, L12 is used to solve the second sub-non-decomposition matrix block A22 in the same column as A12 to obtain the second sub-solution result L22 of A22.

[0192] After obtaining the sub-solution result L13 of A13, the first sub-non-decomposition matrix block A33 in the same column as A13 can be solved to obtain the first sub-solution result U3 of A33; at the same time, L13 is used to solve the second sub-non-decomposition matrix block A23 in the same column as A13 to obtain the second sub-solution result L23 of A23.

[0193] After obtaining the sub-solution result L14 of A14, the solution of the first sub-nondecomposable matrix block A34 in the same row as A14 can be performed to obtain the first sub-solution result U4 of A34; at the same time, L14 is used to solve the second sub-nondecomposable matrix block A24 in the same column as A14 to obtain the second sub-solution result L24 of A24.

[0194] After completing the solution of each sub-nondecomposable matrix block, for a non-last sub-nondecomposable matrix block, continue with the update operation. In one implementation, for a non-last sub-nondecomposable matrix block, updating the unsolved matrix blocks in the nondecomposable matrix block based on the first sub-solution result and the second sub-solution result includes:

[0195] For a non-last sub-nondecomposable matrix block, use the first sub-solution result to update the first sub-nondecomposable matrix blocks other than the first sub-nondecomposable matrix block corresponding to the first sub-solution result;

[0196] And use the second sub-solution result to update the second sub-nondecomposable matrix blocks other than the second sub-nondecomposable matrix block corresponding to the second sub-solution result.

[0197] Since the step of updating the unsolved matrix blocks in the nondecomposable matrix block based on the first sub-solution result and the second sub-solution result is executed synchronously with the step of using the diagonal sub-solution results (the sub-solution results of the sub-decomposable matrix blocks on each diagonal) to update the non-diagonal sub-decomposable matrix blocks in the same row and the non-diagonal sub-decomposable matrix blocks in the same column as the sub-decomposable matrix block on the non-last diagonal; that is, after obtaining each L2k and Uk (k < i), for the update operation of the remaining sub-nondecomposable matrix blocks, after completing the solution of the non-diagonal sub-decomposable matrix blocks in the same row and the same column as L1k, it is executed synchronously with the update call GEMM of the remaining unsolved sub-decomposable matrix blocks.

[0198] For the implementation process of the above update, please refer to Figure 8a 、 Figure 8b and Figure 8c , Figure 8a which is the schematic diagram of the implementation of the first step of the update operation in the performance testing method provided by the embodiments of the present invention, Figure 8b which is the schematic diagram of the implementation of the second step of the update operation in the performance testing method provided by the embodiments of the present invention, Figure 8c which is the schematic diagram of the implementation of the third step of the update operation in the performance testing method provided by the embodiments of the present invention.

[0199] As Figure 8a shown, in one round of solution process, the first step may include the following contents:

[0200] 1. Call the solver so that the process where the sub-decomposition matrix block A11 on the diagonal line is located can solve A11 to obtain the sub-solution result L11 (diagonal sub-solution result), and broadcast the sub-solution result L11 to the same process and the same column process.

[0201] 2. The diagonal block process in the decomposition matrix block calculates the sub-decomposition matrix block on the off-diagonal line in the same row and column as A11 ( Figure 8a The diagonal block process is in the same row as the diagonal block process, and the solution of the corresponding first non-decomposed matrix block A31 is performed using the broadcast received L11 to obtain the first sub-solution result U1; the process in the same column as the diagonal block process uses the broadcast received L11 to perform the solution of the corresponding second non-decomposed matrix block A21 to obtain the second sub-solution result L21.

[0202] 3. The diagonal block process, the same row process and the same column process call the GEMM algorithm to update the remaining part, that is, in the decomposition matrix block, update the unsolved sub-decomposition matrix block ( Figure 8a The blank area M1 shown in the figure is used to update the unsolved sub-non-decomposition matrix block ( Figure 8a The blank area M2 is shown).

[0203] The steps of updating the unsolved sub-decomposition matrix blocks and updating the unsolved sub-non-decomposition matrix blocks are performed synchronously.

[0204] like Figure 8b As shown, in a round of solving process, the second step may include the following:

[0205] 1. Call the solver so that the process where the sub-decomposition matrix block A12 on the diagonal is located can solve A12 to obtain the sub-solution result L12, and broadcast the sub-solution result L12 to the same process and the same column process.

[0206] 2. The diagonal block process in the decomposition matrix block calculates the sub-decomposition matrix block on the off-diagonal line in the same row and column as A12 ( Figure 8b The diagonal block process is in the same row as the diagonal block process, and the solution of the corresponding first non-decomposed matrix block A32 is performed using the broadcast received L12 to obtain the first sub-solution result U2; the process in the same column as the diagonal block process uses the broadcast received L12 to perform the solution of the corresponding second non-decomposed matrix block A22 to obtain the second sub-solution result L22.

[0207] 3. The diagonal block process, the same row process and the same column process call the GEMM algorithm to update the remaining part, that is, in the decomposition matrix block, update the unsolved sub-decomposition matrix block ( Figure 8b The blank area M3 shown in the figure) is used to update the unsolved sub-non-decomposition matrix block ( Figure 8bThe blank area M4 is shown).

[0208] The steps of updating the unsolved sub-decomposition matrix blocks and updating the unsolved sub-non-decomposition matrix blocks are performed synchronously.

[0209] like Figure 8c As shown, in a round of solving process, the third step may include the following:

[0210] 1. Call the solver so that the process where the sub-decomposition matrix block A13 on the diagonal is located can solve A13 to obtain the sub-solution result L13, and broadcast the sub-solution result L13 to the same process and the same column process.

[0211] 2. The diagonal block process in the decomposition matrix block calculates the sub-decomposition matrix block on the off-diagonal line in the same row and column as A13 ( Figure 8c The diagonal block process is in the same row as the diagonal block process, and the solution of the corresponding first non-decomposed matrix block A33 is performed using the broadcast received L13 to obtain the first sub-solution result U3; the process in the same column as the diagonal block process uses the broadcast received L13 to perform the solution of the corresponding second non-decomposed matrix block A23 to obtain the second sub-solution result L23.

[0212] 3. The diagonal block process, the same row process and the same column process call the GEMM algorithm to update the remaining part, that is, in the decomposition matrix block, update the unsolved sub-decomposition matrix block ( Figure 8c The blank area M5 shown in the figure) is used to update the unsolved sub-non-decomposition matrix block ( Figure 8c The blank area M6 is shown).

[0213] The steps of updating the unsolved sub-decomposition matrix blocks and updating the unsolved sub-non-decomposition matrix blocks are performed synchronously.

[0214] When solving the last sub-decomposition matrix block on the diagonal in the decomposition matrix block according to the solution direction, the diagonal block process is used to solve the sub-decomposition matrix block A14 on the diagonal to obtain the sub-solution result L14, and broadcast it to the same row process and the same column process.

[0215] The process in the same row as the diagonal block process uses the broadcast received L14 to execute the solution corresponding to the first non-decomposed matrix block A34, and obtains the first sub-solution result U4; the process in the same column as the diagonal block process uses the broadcast received L14 to execute the solution corresponding to the second non-decomposed matrix block A24, and obtains the second sub-solution result L24.

[0216] The above process is a solution implementation in one round of solution process, while multiple rounds of solution process are performed in HPL-MxP. Therefore, in one embodiment, the method may further include:

[0217] For the solution process other than the last round, based on each first sub-solution result obtained in each solution round, the first solution result of the first non-decomposition matrix block in the same row as the decomposition matrix block in the solution process of the solution round is obtained;

[0218] Performing type conversion on the first solution result, and broadcasting the first solution result after type conversion to a next round of solution process adjacent to the current round of solution process according to the solution direction;

[0219] Furthermore, based on each second sub-solution result obtained in each round of solution process, a second solution result of a second non-decomposed matrix block in the same column as the decomposed matrix block in the round of solution process is obtained; and the second solution result is type-converted, and the second solution result after type conversion is row-broadcasted to the next round of solution process adjacent to the current round of solution process according to the solution direction.

[0220] Based on Ui (i=1, 2, 3, 4) solved by each process in the same column, the complete U is obtained, and then type conversion and column broadcasting to the next column in the coefficient matrix are performed; based on L2i (i=1, 2, 3, 4) solved by each process in the same column, the complete L2 is obtained, type conversion and row broadcasting to the next row in the coefficient matrix are performed, so as to complete the solution of the overall coefficient matrix and complete the matrix operations in HPL-MxP.

[0221] To further illustrate the implementation of solving the non-decomposed matrix in advance in the embodiment of the present invention, please refer to Fig. 9 and Fig.10 , Fig. 9 is a schematic diagram of the implementation flow of solving a non-decomposed matrix without advance processing provided by an embodiment of the present invention, Fig.10 It is a schematic diagram of the implementation flow of the advance non-decomposition matrix solution provided by an embodiment of the present invention.

[0222] like Fig. 9 As shown, when solving the non-decomposed matrix block in the original algorithm, it is necessary to wait until the decomposed matrix block NB*NB is fully executed.

[0223] In a round of solving process according to the solving direction, the decomposed matrix block NB*NB is first solved. After obtaining the complete solution result L1, the solution result L1 is broadcasted in rows and columns, that is, L1 is broadcasted to the non-decomposed matrix blocks in the same row and the non-decomposed matrix blocks in the same column as the decomposed matrix block, and trsm is called to solve the solution result U of the non-decomposed matrix block in the same row, and the solution result L2 of the non-decomposed matrix block in the same column; after the type conversion of L2 and U, L2 row broadcast and U column broadcast are performed in the coefficient matrix to execute the next round of solving process, and end this round of solving process.

[0224] When HPL-MxP is executed using the performance testing method provided by the embodiment of the present invention, since the solution indication information indicates the start time of the solution of the non-decomposed matrix block, which is earlier than the solution completion time of the decomposed matrix block, the non-decomposed matrix block is solved in advance.

[0225] like Fig.10 As shown, in the embodiment of the present invention, both the decomposed matrix block and the non-decomposed matrix block are divided. And according to the solution direction, the solution of the first sub-decomposed matrix block on the diagonal of the decomposed matrix block is completed, and after the sub-solution result of the sub-decomposed matrix block on the diagonal is obtained, the sub-non-decomposed matrix block in the same row and column as the first sub-decomposed matrix block on the diagonal can be solved.

[0226] Among them, in the decomposition matrix block (diagonal block matrix), according to the solution direction, the solver is called to complete the solution of the first sub-decomposition matrix block A11 on the diagonal line. After the sub-solution result L11 is obtained, the sub-solution result L11 is broadcast to the diagonal block process in the decomposition matrix block, and each sub-decomposition matrix block on the non-diagonal line is solved. L11 is broadcast to the non-decomposition matrix blocks in the same row and column, and A31 in the same row as A11 and A21 in the same column are solved.

[0227] Therefore, in a non-decomposed matrix block in the same row, trsm can be used to solve the sub-non-decomposed matrix block A31 in the same row as the first sub-decomposition matrix block A11, and obtain the first sub-solution result U1; in a non-decomposed matrix block in the same column, trsm can be used to solve the sub-non-decomposed matrix block A21 in the same row as the first sub-decomposition matrix block A11, and obtain the second sub-solution result L21.

[0228] The execution of the current round of solution process ends until all the sub-decomposition matrix blocks on the diagonal of the decomposition matrix block are solved, all the sub-non-decomposition matrix blocks in the same row of the non-decomposition matrix block are solved, and all the sub-non-decomposition matrix blocks in the same column of the non-decomposition matrix block are solved.

[0229] Whether all sub-decomposed matrix blocks and sub-non-decomposed matrix blocks have been solved can be determined by judging the number of divided matrix blocks.

[0230] like Fig.10 As shown, for a matrix block that is not the last one to be solved (including sub-decomposed matrix blocks and sub-non-decomposed matrix blocks), it includes two steps of trsm solution and GEMM update. For the last matrix block to be solved, it includes the step of trsm solution.

[0231] After completing a round of solution process and obtaining the solution results of each sub-non-decomposition matrix block in this round of solution process, the solution results (L2 and U) of the non-decomposition matrix block are formed, and L2 and U are type-converted, and the converted L2 is row-broadcasted, and the converted U is column-broadcasted.

[0232] The embodiment of the present invention also provides a performance testing device to implement the performance testing method described in the above embodiment. Fig.11 , Fig.11 It is a structural schematic diagram of a performance testing device provided by an embodiment of the present invention.

[0233] like Fig.11 As shown, the device comprises:

[0234] The system determination module 21 is used to determine the computer system to be tested;

[0235] A program execution module 22, configured to execute a benchmark test program on the computer system to be tested, wherein the benchmark test program includes a solution process for multiple rounds of performance test tasks; and, during the execution of the benchmark test program, execute each round of the solution process on the computer system to be tested based on the solution indication information;

[0236] A result obtaining module 23 is used to obtain the performance test evaluation result of the computer system to be tested;

[0237] Among them, the solution indication information is used to indicate the starting time of solution of the non-decomposed matrix block in each round of solution process, and the solution starting time is earlier than the solution completion time of the decomposed matrix block in this round of solution process. The non-decomposed matrix block is a matrix block in the same row and column as the decomposed matrix block.

[0238] Optionally, the device further comprises: a solution indication information setting module 20, configured to set solution indication information based on the solution status of the decomposed matrix block in each round of solution process;

[0239] The solution indication information setting module 20 is used to set the solution indication information based on the solution status of the decomposition matrix block in each round of solution process, including:

[0240] Determine the matrix dimensions of the decomposed matrix blocks in each round of solving;

[0241] Based on the determined matrix dimension, the decomposed matrix block and the non-decomposed matrix block are divided to obtain divided sub-decomposed matrix blocks and divided sub-non-decomposed matrix blocks;

[0242] According to the solution direction of the performance test task, solve the sub-decomposition matrix blocks on each diagonal of the decomposition matrix block, and use the sub-solution completion time of the sub-decomposition matrix blocks on each diagonal as the sub-solution start time of solving the sub-non-decomposition matrix blocks corresponding to the sub-decomposition matrix blocks on the diagonal;

[0243] And, the sub-solution completion time of the sub-decomposition matrix block on the diagonal line that is solved for the first time is set as the solution start time of the non-decomposition matrix block, and the solution indication information of the non-decomposition matrix block is obtained.

[0244] Optionally, the solution indication information setting module 20 is used to divide the decomposed matrix block and the non-decomposed matrix block based on the determined matrix dimension to obtain the divided sub-decomposed matrix blocks and the divided sub-non-decomposed matrix blocks, including:

[0245] Based on the row dimension in the determined matrix dimension, performing row division on the decomposed matrix block and a first non-decomposed matrix block in the same row as the decomposed matrix block, and based on the column dimension in the determined matrix dimension, performing column division on the decomposed matrix block and a second non-decomposed matrix block in the same column as the decomposed matrix block;

[0246] Obtain each sub-decomposition matrix block after division, and a first sub-non-decomposition matrix block in the same row and a second sub-non-decomposition matrix block in the same column as the sub-decomposition matrix block on each diagonal line of the decomposition matrix block;

[0247] The solution indication information setting module 20 is used to use the sub-solution completion time of each sub-decomposition matrix block as the sub-solution start time of solving the sub-non-decomposition matrix block corresponding to the sub-decomposition matrix block, including:

[0248] The sub-solution completion time of the sub-decomposition matrix blocks on each diagonal line is set to the first sub-solution start time of executing the first sub-non-decomposition matrix block in the same row as the sub-decomposition matrix block on the diagonal line, and is set to the second sub-solution start time of executing the second sub-non-decomposition matrix block in the same column as the sub-decomposition matrix block on the diagonal line.

[0249] Optionally, the solution indication information setting module 20 is used to perform row division on the decomposed matrix block and the first non-decomposed matrix block in the same row as the decomposed matrix block based on the row dimension in the determined matrix dimension, including:

[0250] Determine sub-row dimensions of the integer-divisible sub-decomposition matrix blocks based on the row dimensions in the determined matrix dimensions;

[0251] Determine the number of rows after the decomposition matrix block is divided based on the sub-row dimension, and determine the number of blocks of the first sub-non-decomposition matrix of the same row based on the sub-row dimension;

[0252] The solution indication information setting module 20 is used to perform column division on the decomposed matrix block and the second non-decomposed matrix block in the same column as the decomposed matrix block based on the column dimension in the determined matrix dimension, including:

[0253] Determine sub-column dimensions of the integer-divisible sub-decomposition matrix blocks based on the determined column dimensions in the matrix dimensions;

[0254] Determine the number of columns after the decomposition matrix block is divided based on the sub-column dimension, and determine the number of blocks of the second sub-non-decomposition matrix in the same column based on the sub-column dimension;

[0255] The solution indication information setting module 20 is used to obtain each sub-decomposition matrix block after division, including:

[0256] Based on the determined number of rows and columns of the decomposition matrix block after division, the number of blocks of the sub-decomposition matrix block after division is determined, and each sub-decomposition matrix block after division is obtained.

[0257] Optionally, the program execution module 22 is used to execute each round of solution process on the computer system to be tested based on the solution instruction information during the execution of the benchmark test program, including:

[0258] In the process of executing the benchmark test program, each round of solving process is completed in sequence according to the solving direction of the performance test task;

[0259] In each round of solving process, the following operations are performed:

[0260] Obtaining a corresponding sub-solution result based on the sub-decomposition matrix block on the diagonal line that has been solved for the first time determined by the solution indication information;

[0261] Using the sub-solution result, solve the first sub-non-decomposition matrix block in the same row as the sub-decomposition matrix block on the diagonal line to obtain a first sub-solution result;

[0262] And, using the sub-solution result, solving a second sub-non-decomposition matrix block in the same column as the sub-decomposition matrix block on the diagonal line to obtain a second sub-solution result;

[0263] For a non-last sub-non-decomposed matrix block, an unsolved matrix block in the non-decomposed matrix block is updated based on the first sub-solved result and the second sub-solved result;

[0264] Until the sub-solution results of the sub-decomposition matrix blocks on the diagonal that have been solved are followed according to the solution direction, the solution of the first sub-non-decomposition matrix block in the corresponding row and the second sub-non-decomposition matrix block in the same column are completed, and this round of solution process ends.

[0265] Optionally, the program execution module 22 is used to complete the solution of the first sub-non-decomposition matrix block in the same row and the second sub-non-decomposition matrix block in the same column according to the solution direction based on the sub-solution results of the sub-decomposition matrix blocks on the diagonal that have been solved, and end the round of solution process, including:

[0266] According to the solution direction, when it is determined that the number of sub-decomposition matrix blocks on the diagonal that have been solved is equal to the number of sub-decomposition matrix blocks on the diagonal after division, the sub-decomposition matrix blocks on each diagonal are solved;

[0267] According to the solution direction, when it is determined that the number of first sub-non-decomposition matrix blocks of the same row that has been solved is equal to the number of blocks of the first sub-non-decomposition matrix, the solution of the first sub-non-decomposition matrix block is completed;

[0268] And according to the solution direction, when it is determined that the number of the second sub-non-decomposition matrix blocks in the same column that have been solved is equal to the number of blocks of the second sub-non-decomposition matrix, the solution of the second sub-non-decomposition matrix block is completed;

[0269] End this round of solving process.

[0270] Optionally, it also includes:

[0271] A decomposition matrix block solving module is used to solve each sub-decomposition matrix block on the diagonal in the decomposition matrix block in turn according to the solving direction, and obtain sub-solving results corresponding to each sub-decomposition matrix block on the diagonal;

[0272] Among them, when the first sub-decomposition matrix block on the diagonal is solved, the sub-solution result corresponding to the first sub-decomposition matrix block on the diagonal is the sub-solution result of the sub-decomposition matrix block that has been solved for the first time, and when the sub-solution result corresponding to the first sub-decomposition matrix block on the diagonal is obtained, the first sub-non-decomposition matrix in the same row and the second sub-non-decomposition matrix in the same column as the first sub-decomposition matrix on the diagonal are solved.

[0273] Optionally, the decomposition matrix block solving module is used to solve each sub-decomposition matrix block on the diagonal in the decomposition matrix block in sequence according to the solving direction to obtain a sub-solving result corresponding to each sub-decomposition matrix block on the diagonal, including:

[0274] According to the solution direction, based on the position of the sub-decomposition matrix block on the diagonal currently being solved on the diagonal, the solution operation for solving the sub-decomposition matrix block on the diagonal is determined to obtain the sub-solution result of the sub-decomposition matrix block on the diagonal.

[0275] Optionally, the decomposition matrix block solving module is used to determine, according to the solving direction and based on the position of the sub-decomposition matrix block on the diagonal currently being solved on the diagonal, a solving operation for solving the sub-decomposition matrix block on the diagonal, and obtain a sub-solving result of the sub-decomposition matrix block on the diagonal, including:

[0276] In the process of solving the sub-decomposition matrix blocks on each diagonal line according to the solving direction, for the sub-decomposition matrix blocks on the non-last diagonal line, the following operations are performed:

[0277] Using the solver to solve the sub-decomposition matrix block on the non-last diagonal line, obtaining a diagonal sub-solution result as a sub-solution result of the sub-decomposition matrix block on the non-last diagonal line;

[0278] And, using the diagonal sub-solution result, updating the sub-decomposition matrix blocks in the same row and column as the sub-decomposition matrix block on the non-last diagonal line;

[0279] For the last diagonal sub-factorization matrix block, do the following:

[0280] Solving the sub-decomposition matrix block on the last diagonal line by using a solver, obtaining a diagonal sub-solution result of the sub-decomposition matrix block on the last diagonal line as a sub-solution result of the sub-decomposition matrix block on the last diagonal line;

[0281] Among them, the updating of the unsolved matrix blocks in the non-decomposition matrix block based on the first sub-solution result and the second sub-solution result is performed synchronously with the updating of the sub-decomposition matrix blocks in the same row as the sub-decomposition matrix block on the non-last diagonal line and the sub-decomposition matrix blocks in the same column using the diagonal sub-solution result.

[0282] Optionally, the program execution module 22 is used to use the sub-solution result to solve the first sub-non-decomposition matrix block in the same row as the sub-decomposition matrix block on the diagonal line to obtain a first sub-solution result, including:

[0283] The sub-solution result is broadcast to the first non-sub-decomposition matrix block in the same row as the sub-decomposition matrix block on the diagonal line, and the first sub-non-decomposition matrix block in the same row as the sub-decomposition matrix block on the diagonal line is solved based on the sub-solution result to obtain a first sub-solution result.

[0284] Optionally, the program execution module 22 is used to use the sub-solution result to solve the second sub-non-decomposition matrix block in the same column as the sub-decomposition matrix block on the diagonal line to obtain a second sub-solution result, including:

[0285] The sub-solution result is broadcast to the second non-sub-decomposition matrix block in the same column as the sub-decomposition matrix block on the diagonal line, and the second sub-non-decomposition matrix block in the same column as the sub-decomposition matrix block on the diagonal line is solved based on the sub-solution result to obtain a second sub-solution result.

[0286] Optionally, the program execution module 22 is used to update the unsolved matrix blocks in the non-decomposed matrix block based on the first sub-solution result and the second sub-solution result for the non-last sub-non-decomposed matrix block, including:

[0287] For non-last sub-non-decomposition matrix blocks, using the first sub-solution result to update the first sub-non-decomposition matrix blocks except the first sub-non-decomposition matrix blocks corresponding to the first sub-solution result;

[0288] And, using the second sub-solution result, the second sub-non-decomposition matrix blocks other than the second sub-non-decomposition matrix blocks corresponding to the second sub-solution result are updated.

[0289] Optionally, it also includes:

[0290] The first broadcast module 24 is used for obtaining, for a solution process other than the last round, a first solution result of a first non-decomposed matrix block in the same row as the decomposed matrix block in the solution process of ...

[0291] The second broadcast module 25 is used to obtain the second solution result of the second non-decomposed matrix block in the same column as the decomposed matrix block in the round of solution based on each second sub-solution result obtained in each round of solution; and to perform type conversion on the second solution result, and according to the solution direction, broadcast the type-converted second solution result to the next round of solution adjacent to the current round of solution.

[0292] It can be seen that the technical solution provided by the embodiment of the present invention can solve the non-decomposed matrix blocks in the same row and column as the decomposed matrix blocks in advance for each round of the solution process in the process of executing the benchmark test program on the computer system based on the solution start time indicated by the solution indication information. Since in the process of executing the benchmark test program, each round of the solution process needs to wait for the decomposed matrix block to be solved as a whole before the non-decomposed matrix blocks in the same row and column as the decomposed matrix block can be solved, a longer waiting time is required when solving the non-decomposed matrix blocks in each round of the solution process, thereby increasing the execution time of the benchmark test program. Therefore, in an embodiment of the present invention, in each round of solving process, the non-decomposed matrix blocks are solved based on the solution start time indicated by the solution indication information. Since the solution start time is earlier than the solution completion time of the decomposed matrix blocks in the round of solving process, the solution time of the non-decomposed matrix in the round of solving process is advanced, thereby avoiding the limitation of waiting for the decomposed matrix blocks to be solved before solving the non-decomposed matrix blocks, reducing the waiting time for solving the non-decomposed matrix blocks, and realizing the optimization of the solution time of solving the non-decomposed matrix in the benchmark test program to optimize the benchmark test program; since the optimization of the solution time of solving the non-decomposed matrix in the benchmark test program is crucial to evaluating and improving the overall performance of the computer system, the performance testing method provided by the embodiment of the present invention can achieve the purpose of optimizing the execution time of the benchmark test program to improve the overall performance of the computer system.

[0293] An embodiment of the present invention provides an electronic device, such as a terminal device, a server device, or other computer device, including a memory and a processor, wherein the memory stores a program, and the processor calls the program stored in the memory to execute a performance testing method as described in any of the aforementioned embodiments.

[0294] An embodiment of the present invention provides a storage medium, wherein the storage medium stores a program, and when the program is executed, the performance testing method as described in any of the above embodiments is implemented.

[0295] An embodiment of the present invention provides a computer program product, including a computer program, and when the computer program is executed by a processor, the performance testing method as described in any one of the above embodiments is implemented.

[0296] The above describes multiple implementation schemes provided by the embodiments of the present invention. The various optional methods introduced in the implementation schemes can be combined and cross-referenced with each other without conflict, thereby extending a variety of possible implementation schemes, which can all be considered as implementation schemes disclosed and open in the embodiments of the present invention.

[0297] Although the embodiments of the present invention are disclosed above, the present invention is not limited thereto. Any person skilled in the art can make various changes and modifications without departing from the spirit and scope of the present invention. Therefore, the protection scope of the present invention shall be subject to the scope defined by the claims.

Claims

1. A performance testing method, characterized in that: include: Identify the computer systems to be tested; Executing a benchmark test program on the computer system to be tested, wherein the benchmark test program includes a process of solving multiple rounds of performance test tasks; and, in the process of executing the benchmark test program, executing each round of the solution process on the computer system to be tested based on the solution instruction information; Obtaining a performance test evaluation result of the computer system to be tested; Among them, the solution indication information is used to indicate the starting time of solution of the non-decomposed matrix block in each round of solution process, and the solution starting time is earlier than the solution completion time of the decomposed matrix block in this round of solution process. The non-decomposed matrix block is a matrix block in the same row and column as the decomposed matrix block.

2. The performance testing method according to claim 1, characterized in that: Before the step of executing the benchmark test program on the computer system to be tested, the method further includes: setting solution indication information based on the solution status of the decomposed matrix blocks in each round of solution process; The setting of solution indication information based on the solution of the decomposed matrix block in each round of solution process includes: Determine the matrix dimensions of the decomposed matrix blocks in each round of solving; Based on the determined matrix dimension, the decomposed matrix block and the non-decomposed matrix block are divided to obtain divided sub-decomposed matrix blocks and divided sub-non-decomposed matrix blocks; According to the solution direction of the performance test task, solve the sub-decomposition matrix blocks on each diagonal of the decomposition matrix block, and use the sub-solution completion time of the sub-decomposition matrix blocks on each diagonal as the sub-solution start time of solving the sub-non-decomposition matrix blocks corresponding to the sub-decomposition matrix blocks on the diagonal; And, the sub-solution completion time of the sub-decomposition matrix block on the diagonal line that is solved for the first time is set as the solution start time of the non-decomposition matrix block, and the solution indication information of the non-decomposition matrix block is obtained.

3. The performance testing method according to claim 2, characterized in that: The step of dividing the decomposed matrix block and the non-decomposed matrix block based on the determined matrix dimension to obtain the divided sub-decomposed matrix blocks and the divided sub-non-decomposed matrix blocks includes: Based on the row dimension in the determined matrix dimension, performing row division on the decomposed matrix block and a first non-decomposed matrix block in the same row as the decomposed matrix block, and based on the column dimension in the determined matrix dimension, performing column division on the decomposed matrix block and a second non-decomposed matrix block in the same column as the decomposed matrix block; Obtain each sub-decomposition matrix block after division, and a first sub-non-decomposition matrix block in the same row and a second sub-non-decomposition matrix block in the same column as the sub-decomposition matrix block on each diagonal line of the decomposition matrix block; The method of using the sub-solution completion time of each sub-decomposition matrix block as the sub-solution start time of solving the sub-non-decomposition matrix block corresponding to the sub-decomposition matrix block comprises: The sub-solution completion time of the sub-decomposition matrix blocks on each diagonal line is set to the first sub-solution start time of executing the first sub-non-decomposition matrix block in the same row as the sub-decomposition matrix block on the diagonal line, and is set to the second sub-solution start time of executing the second sub-non-decomposition matrix block in the same column as the sub-decomposition matrix block on the diagonal line.

4. The performance testing method according to claim 3, characterized in that: The step of performing row division on the decomposed matrix block and the first non-decomposed matrix block in the same row as the decomposed matrix block based on the row dimension in the determined matrix dimension comprises: Determine sub-row dimensions of the integer-divisible sub-decomposition matrix blocks based on the row dimensions in the determined matrix dimensions; Determine the number of rows after the decomposition matrix block is divided based on the sub-row dimension, and determine the number of blocks of the first sub-non-decomposition matrix of the same row based on the sub-row dimension; The step of performing column division on the decomposed matrix block and the second non-decomposed matrix block in the same column as the decomposed matrix block based on the column dimension in the determined matrix dimension comprises: Determine sub-column dimensions of the integer-divisible sub-decomposition matrix blocks based on the determined column dimensions in the matrix dimensions; Determine the number of columns after the decomposition matrix block is divided based on the sub-column dimension, and determine the number of blocks of the second sub-non-decomposition matrix in the same column based on the sub-column dimension; The sub-decomposition matrix blocks obtained after the division include: Based on the determined number of rows and columns of the decomposition matrix block after division, the number of blocks of the sub-decomposition matrix block after division is determined, and each sub-decomposition matrix block after division is obtained.

5. The performance testing method according to claim 4, characterized in that: In the process of executing the benchmark test program, executing each round of the solution process on the computer system to be tested based on the solution instruction information includes: In the process of executing the benchmark test program, each round of solving process is completed in sequence according to the solving direction of the performance test task; In each round of solving process, the following operations are performed: Obtaining a corresponding sub-solution result based on the sub-decomposition matrix block on the diagonal line that has been solved for the first time determined by the solution indication information; Using the sub-solution result, solve the first sub-non-decomposition matrix block in the same row as the sub-decomposition matrix block on the diagonal line to obtain a first sub-solution result; And, using the sub-solution result, solving a second sub-non-decomposition matrix block in the same column as the sub-decomposition matrix block on the diagonal line to obtain a second sub-solution result; For a non-last sub-non-decomposed matrix block, an unsolved matrix block in the non-decomposed matrix block is updated based on the first sub-solved result and the second sub-solved result; Until the sub-solution results of the sub-decomposition matrix blocks on the diagonal that have been solved are followed according to the solution direction, the solution of the first sub-non-decomposition matrix block in the corresponding row and the second sub-non-decomposition matrix block in the same column are completed, and this round of solution process ends.

6. The performance testing method according to claim 5, characterized in that: The step of solving the first non-decomposed matrix block in the same row and the second non-decomposed matrix block in the same column according to the solving direction based on the sub-solving results of the sub-decomposed matrix blocks on the diagonal lines that have been solved is completed, and the round of solving process is ended includes: According to the solution direction, when it is determined that the number of sub-decomposition matrix blocks on the diagonal that have been solved is equal to the number of sub-decomposition matrix blocks on the diagonal after division, the sub-decomposition matrix blocks on each diagonal are solved; According to the solution direction, when it is determined that the number of first sub-non-decomposition matrix blocks of the same row that has been solved is equal to the number of blocks of the first sub-non-decomposition matrix, the solution of the first sub-non-decomposition matrix block is completed; And according to the solving direction, when it is determined that the number of the solved second sub-non-decomposition matrix blocks in the same column is equal to the number of blocks of the second sub-non-decomposition matrix, the solving of the second sub-non-decomposition matrix blocks is completed; End this round of solving process.

7. The performance testing method according to claim 6, characterized in that: Before the step of obtaining the corresponding sub-solution result of the sub-decomposition matrix block on the diagonal line that has been solved for the first time based on the solution indication information, the step further includes: According to the solution direction, each sub-decomposition matrix block on the diagonal in the decomposition matrix block is solved in turn to obtain a sub-solution result corresponding to each sub-decomposition matrix block on the diagonal; Among them, when the first sub-decomposition matrix block on the diagonal is solved, the sub-solution result corresponding to the first sub-decomposition matrix block on the diagonal is the sub-solution result of the sub-decomposition matrix block that is solved for the first time, and when the sub-solution result corresponding to the first sub-decomposition matrix block on the diagonal is obtained, the first sub-non-decomposition matrix in the same row and the second sub-non-decomposition matrix in the same column as the first sub-decomposition matrix on the diagonal are solved.

8. The performance testing method according to claim 7, characterized in that: According to the solving direction, solving each sub-decomposition matrix block on the diagonal in the decomposition matrix block in turn, and obtaining sub-solving results corresponding to each sub-decomposition matrix block on the diagonal, including: According to the solution direction, based on the position of the sub-decomposition matrix block on the diagonal currently being solved on the diagonal, the solution operation for solving the sub-decomposition matrix block on the diagonal is determined to obtain the sub-solution result of the sub-decomposition matrix block on the diagonal.

9. The performance testing method according to claim 8, characterized in that: According to the solution direction, according to the position of the sub-decomposition matrix block on the diagonal line currently being solved on the diagonal line, determining the solution operation for solving the sub-decomposition matrix block on the diagonal line, and obtaining the sub-solution result of the sub-decomposition matrix block on the diagonal line, including: In the process of solving the sub-decomposition matrix blocks on each diagonal line according to the solving direction, for the sub-decomposition matrix blocks on the non-last diagonal line, the following operations are performed: Using the solver to solve the sub-decomposition matrix block on the non-last diagonal line, obtaining a diagonal sub-solution result as a sub-solution result of the sub-decomposition matrix block on the non-last diagonal line; And, using the diagonal sub-solution result, updating the sub-decomposition matrix blocks in the same row and column as the sub-decomposition matrix block on the non-last diagonal line; For the last diagonal sub-factorization matrix block, do the following: Solving the sub-decomposition matrix block on the last diagonal line by using a solver, obtaining a diagonal sub-solution result of the sub-decomposition matrix block on the last diagonal line as a sub-solution result of the sub-decomposition matrix block on the last diagonal line; Among them, the step of updating the unsolved matrix blocks in the non-decomposition matrix block based on the first sub-solution result and the second sub-solution result is performed synchronously with the step of using the diagonal sub-solution result to update the sub-decomposition matrix blocks in the same row and column as the sub-decomposition matrix block on the non-last diagonal line.

10. The performance testing method according to any one of claims 5 to 9, characterized in that: The using the sub-solution result to solve the first sub-non-decomposition matrix block in the same row as the sub-decomposition matrix block on the diagonal line to obtain the first sub-solution result includes: The sub-solution result is broadcast to the first non-sub-decomposition matrix block in the same row as the sub-decomposition matrix block on the diagonal line, and the first sub-non-decomposition matrix block in the same row as the sub-decomposition matrix block on the diagonal line is solved based on the sub-solution result to obtain a first sub-solution result.

11. The performance testing method according to any one of claims 5 to 9, characterized in that: The using the sub-solution result to solve the second sub-non-decomposition matrix block in the same column as the sub-decomposition matrix block on the diagonal line to obtain the second sub-solution result includes: The sub-solution result is broadcast to the second non-sub-decomposition matrix block in the same column as the sub-decomposition matrix block on the diagonal line, and the second sub-non-decomposition matrix block in the same column as the sub-decomposition matrix block on the diagonal line is solved based on the sub-solution result to obtain a second sub-solution result.

12. The performance testing method according to any one of claims 5 to 9, characterized in that: The updating of the unsolved matrix blocks in the non-decomposed matrix block based on the first sub-solved result and the second sub-solved result for the non-last sub-non-decomposed matrix block comprises: For non-last sub-non-decomposition matrix blocks, using the first sub-solution result to update the first sub-non-decomposition matrix blocks except the first sub-non-decomposition matrix blocks corresponding to the first sub-solution result; And, using the second sub-solution result, the second sub-non-decomposition matrix blocks other than the second sub-non-decomposition matrix blocks corresponding to the second sub-solution result are updated.

13. The performance testing method according to any one of claims 5 to 9, characterized in that: Also includes: For the solution process other than the last round, based on each first sub-solution result obtained in each solution round, the first solution result of the first non-decomposition matrix block in the same row as the decomposition matrix block in the solution process of the solution round is obtained; Performing type conversion on the first solution result, and broadcasting the first solution result after type conversion to a next round of solution process adjacent to the current round of solution process according to the solution direction; Furthermore, based on each second sub-solution result obtained in each round of solution process, a second solution result of a second non-decomposed matrix block in the same column as the decomposed matrix block in the round of solution process is obtained; and the second solution result is type-converted, and the second solution result after type conversion is row-broadcasted to the next round of solution process adjacent to the current round of solution process according to the solution direction.

14. A performance testing device, characterized in that: include: A system determination module, used to determine the computer system to be tested; A program execution module, used for executing a benchmark test program on the computer system to be tested, wherein the benchmark test program includes a solution process of multiple rounds of performance test tasks; and, in the process of executing the benchmark test program, executing each round of the solution process on the computer system to be tested based on the solution instruction information; A result obtaining module is used to obtain the performance test evaluation result of the computer system to be tested; Among them, the solution indication information is used to indicate the starting time of solution of the non-decomposed matrix block in each round of solution process, and the solution starting time is earlier than the solution completion time of the decomposed matrix block in this round of solution process. The non-decomposed matrix block is a matrix block in the same row and column as the decomposed matrix block.

15. The performance testing device according to claim 14, characterized in that: Also includes: A solution indication information setting module, used to set solution indication information based on the solution status of the decomposed matrix block in each round of solution process; The solution indication information setting module is used to set the solution indication information based on the solution status of the decomposition matrix block in each round of solution process, including: Determine the matrix dimensions of the decomposed matrix blocks in each round of solving; Based on the determined matrix dimension, the decomposed matrix block and the non-decomposed matrix block are divided to obtain divided sub-decomposed matrix blocks and divided sub-non-decomposed matrix blocks; According to the solution direction of the performance test task, solve the sub-decomposition matrix blocks on each diagonal of the decomposition matrix block, and use the sub-solution completion time of the sub-decomposition matrix blocks on each diagonal as the sub-solution start time of solving the sub-non-decomposition matrix blocks corresponding to the sub-decomposition matrix blocks on the diagonal; And, the sub-solution completion time of the sub-decomposition matrix block on the diagonal line that is solved for the first time is set as the solution start time of the non-decomposition matrix block, and the solution indication information of the non-decomposition matrix block is obtained.

16. The performance testing device according to claim 15, characterized in that: The solution indication information setting module is used to divide the decomposed matrix block and the non-decomposed matrix block based on the determined matrix dimension to obtain the divided sub-decomposed matrix blocks and the divided sub-non-decomposed matrix blocks, including: Based on the row dimension in the determined matrix dimension, performing row division on the decomposed matrix block and a first non-decomposed matrix block in the same row as the decomposed matrix block, and based on the column dimension in the determined matrix dimension, performing column division on the decomposed matrix block and a second non-decomposed matrix block in the same column as the decomposed matrix block; Obtain each sub-decomposition matrix block after division, and a first sub-non-decomposition matrix block in the same row and a second sub-non-decomposition matrix block in the same column as the sub-decomposition matrix block on each diagonal line of the decomposition matrix block; The solution indication information setting module is used to use the sub-solution completion time of each sub-decomposition matrix block as the sub-solution start time of solving the sub-non-decomposition matrix block corresponding to the sub-decomposition matrix block, including: The sub-solution completion time of the sub-decomposition matrix blocks on each diagonal line is set to the first sub-solution start time of executing the first sub-non-decomposition matrix block in the same row as the sub-decomposition matrix block on the diagonal line, and is set to the second sub-solution start time of executing the second sub-non-decomposition matrix block in the same column as the sub-decomposition matrix block on the diagonal line.

17. The performance testing device according to claim 16, characterized in that: The solution indication information setting module is used to divide the decomposed matrix block and the first non-decomposed matrix block in the same row as the decomposed matrix block into rows based on the row dimension in the determined matrix dimension, including: Determine sub-row dimensions of the integer-divisible sub-decomposition matrix blocks based on the row dimensions in the determined matrix dimensions; Determine the number of rows after the decomposition matrix block is divided based on the sub-row dimension, and determine the number of blocks of the first sub-non-decomposition matrix of the same row based on the sub-row dimension; The solution indication information setting module is used to perform column division on the decomposed matrix block and the second non-decomposed matrix block in the same column as the decomposed matrix block based on the column dimension in the determined matrix dimension, including: Determine sub-column dimensions of the integer-divisible sub-decomposition matrix blocks based on the determined column dimensions in the matrix dimensions; Determine the number of columns after the decomposition matrix block is divided based on the sub-column dimension, and determine the number of blocks of the second sub-non-decomposition matrix in the same column based on the sub-column dimension; The solution indication information setting module is used to obtain each sub-decomposition matrix block after division, including: Based on the determined number of rows and columns of the decomposition matrix block after division, the number of blocks of the sub-decomposition matrix block after division is determined, and each sub-decomposition matrix block after division is obtained.

18. The performance testing device according to claim 17, characterized in that: The program execution module is used to execute each round of the solution process on the computer system to be tested based on the solution instruction information during the execution of the benchmark test program, including: In the process of executing the benchmark test program, each round of solving process is completed in sequence according to the solving direction of the performance test task; In each round of solving process, the following operations are performed: Obtaining a corresponding sub-solution result based on the sub-decomposition matrix block on the diagonal line that has been solved for the first time determined by the solution indication information; Using the sub-solution result, solve the first sub-non-decomposition matrix block in the same row as the sub-decomposition matrix block on the diagonal line to obtain a first sub-solution result; And, using the sub-solution result, solving a second sub-non-decomposition matrix block in the same column as the sub-decomposition matrix block on the diagonal line to obtain a second sub-solution result; For a non-last sub-non-decomposed matrix block, an unsolved matrix block in the non-decomposed matrix block is updated based on the first sub-solved result and the second sub-solved result; Until the sub-solution results of the sub-decomposition matrix blocks on the diagonal that have been solved are followed according to the solution direction, the solution of the first sub-non-decomposition matrix block in the corresponding row and the second sub-non-decomposition matrix block in the same column are completed, and this round of solution process ends.

19. The performance testing device according to claim 18, characterized in that: The program execution module is used to complete the solution of the first sub-non-decomposition matrix block in the same row and the second sub-non-decomposition matrix block in the same column according to the solution direction based on the sub-solution results of the sub-decomposition matrix blocks on the diagonal lines that have been solved, and end the round of solution process, including: According to the solution direction, when it is determined that the number of sub-decomposition matrix blocks on the diagonal that have been solved is equal to the number of sub-decomposition matrix blocks on the diagonal after division, the sub-decomposition matrix blocks on each diagonal are solved; According to the solution direction, when it is determined that the number of first sub-non-decomposition matrix blocks of the same row that has been solved is equal to the number of blocks of the first sub-non-decomposition matrix, the solution of the first sub-non-decomposition matrix block is completed; And according to the solving direction, when it is determined that the number of the solved second sub-non-decomposition matrix blocks in the same column is equal to the number of blocks of the second sub-non-decomposition matrix, the solving of the second sub-non-decomposition matrix blocks is completed; End this round of solving process.

20. The performance testing device according to claim 19, characterized in that: Also includes: A decomposition matrix block solving module is used to solve each sub-decomposition matrix block on the diagonal in the decomposition matrix block in turn according to the solving direction, and obtain sub-solving results corresponding to each sub-decomposition matrix block on the diagonal; Among them, when the first sub-decomposition matrix block on the diagonal is solved, the sub-solution result corresponding to the first sub-decomposition matrix block on the diagonal is the sub-solution result of the sub-decomposition matrix block that is solved for the first time, and when the sub-solution result corresponding to the first sub-decomposition matrix block on the diagonal is obtained, the first sub-non-decomposition matrix in the same row and the second sub-non-decomposition matrix in the same column as the first sub-decomposition matrix on the diagonal are solved.

21. The performance testing device according to claim 20, characterized in that: The decomposition matrix block solving module is used to solve each sub-decomposition matrix block on the diagonal in the decomposition matrix block in turn according to the solving direction to obtain sub-solving results corresponding to the sub-decomposition matrix blocks on the diagonal, including: According to the solution direction, based on the position of the sub-decomposition matrix block on the diagonal currently being solved on the diagonal, the solution operation for solving the sub-decomposition matrix block on the diagonal is determined to obtain the sub-solution result of the sub-decomposition matrix block on the diagonal.

22. The performance testing device according to claim 21, characterized in that: The decomposition matrix block solving module is used to determine the solving operation for solving the sub-decomposition matrix block on the diagonal according to the solving direction and the position of the sub-decomposition matrix block on the diagonal currently being solved on the diagonal, and obtain the sub-solving result of the sub-decomposition matrix block on the diagonal, including: In the process of solving the sub-decomposition matrix blocks on each diagonal line according to the solving direction, for the sub-decomposition matrix blocks on the non-last diagonal line, the following operations are performed: Using the solver to solve the sub-decomposition matrix block on the non-last diagonal line, obtaining a diagonal sub-solution result as a sub-solution result of the sub-decomposition matrix block on the non-last diagonal line; And, using the diagonal sub-solution result, updating the sub-decomposition matrix blocks in the same row and column as the sub-decomposition matrix block on the non-last diagonal line; For the last diagonal sub-factorization matrix block, do the following: Solving the sub-decomposition matrix block on the last diagonal line by using a solver, obtaining a diagonal sub-solution result of the sub-decomposition matrix block on the last diagonal line as a sub-solution result of the sub-decomposition matrix block on the last diagonal line; Among them, the updating of the unsolved matrix blocks in the non-decomposition matrix block based on the first sub-solution result and the second sub-solution result is performed synchronously with the updating of the sub-decomposition matrix blocks in the same row as the sub-decomposition matrix block on the non-last diagonal line and the sub-decomposition matrix blocks in the same column using the diagonal sub-solution result.

23. The performance testing device according to any one of claims 18 to 22, characterized in that: The program execution module is used to solve the first sub-non-decomposition matrix block in the same row as the sub-decomposition matrix block on the diagonal line by using the sub-solution result to obtain the first sub-solution result, including: The sub-solution result is broadcast to the first non-sub-decomposition matrix block in the same row as the sub-decomposition matrix block on the diagonal line, and the first sub-non-decomposition matrix block in the same row as the sub-decomposition matrix block on the diagonal line is solved based on the sub-solution result to obtain a first sub-solution result.

24. The performance testing device according to any one of claims 18 to 22, characterized in that: The program execution module is used to solve the second sub-non-decomposition matrix block in the same column as the sub-decomposition matrix block on the diagonal line by using the sub-solution result to obtain a second sub-solution result, including: The sub-solution result is broadcast to the second non-sub-decomposition matrix block in the same column as the sub-decomposition matrix block on the diagonal line, and the second sub-non-decomposition matrix block in the same column as the sub-decomposition matrix block on the diagonal line is solved based on the sub-solution result to obtain a second sub-solution result.

25. The performance testing device according to any one of claims 18 to 22, characterized in that: The program execution module is used to update the unsolved matrix blocks in the non-decomposed matrix block based on the first sub-solution result and the second sub-solution result for the non-last sub-non-decomposed matrix block, including: For non-last sub-non-decomposition matrix blocks, using the first sub-solution result to update the first sub-non-decomposition matrix blocks except the first sub-non-decomposition matrix blocks corresponding to the first sub-solution result; And, using the second sub-solution result, the second sub-non-decomposition matrix blocks other than the second sub-non-decomposition matrix blocks corresponding to the second sub-solution result are updated.

26. The performance testing device according to any one of claims 18 to 22, characterized in that: Also includes: A first broadcast module is used for obtaining, for a solution process other than the last round, a first solution result of a first non-decomposed matrix block in the same row as the decomposed matrix block in the solution process of ... of the solution of the solution of the solution of the solution of the solution of the solution of the solution of the solution of the solution of the solution of the solution of the solution of the solution of the solution of the solution of the solution of the solution of the solution of the solution of the solution of the solution of the solution of the solution of the solution of the solution of the solution of the solution of the solution of the solution of the solution of the solution of the solution of the solution of the solution of the solution of the solution of the solution of the solution of the solution of the solution of the solution of the solution of the solution of the solution of the solution of the solution of the The second broadcast module is used to obtain the second solution result of the second non-decomposed matrix block in the same column as the decomposed matrix block in the round of solution based on each second sub-solution result obtained in each round of solution; and to perform type conversion on the second solution result, and to broadcast the type-converted second solution result to the next round of solution adjacent to the current round of solution according to the solution direction.

27. An electronic device, characterized in that: It includes a memory and a processor, the memory stores a program, and the processor calls the program stored in the memory to execute the performance testing method according to any one of claims 1 to 13.

28. A storage medium, characterized in that: The storage medium stores a program, and when the program is executed, the performance testing method according to any one of claims 1 to 13 is implemented.

29. A computer program product comprising a computer program, characterized in that When the computer program is executed by a processor, the performance testing method according to any one of claims 1 to 13 is implemented.