A GPU kernel task concurrent scheduling method and system for financial big data
Patent Information
- Application Number
- CN202311797010.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2023-12-25
- Publication Date
- 2026-08-28
- Estimated Expiration
- 2043-12-25
AI Technical Summary
[0005]针对现有技术的以上缺陷或改进需求,本发明提供了一种面向金融大数据的GPU内核任务并发调度方法和系统,其目的在于,解决现有面向金融大数据的GPU任务调度系统由于无法充分利用GPU资源,导致在金融大数据的实时计算场景下计算效率不高,进而导致金融大数据的处理效率较低、处理准确性较差的技术问题
[0027] (1) This invention employs step (1), in which the data packets required by the kernel are transmitted in blocks. This allows the GPU to execute the computation task as soon as it receives the first data block of the data packet, without waiting for all the data to be transmitted completely. This reduces the waiting time and makes full use of the idle resources of the GPU to speed up the execution of the task. At the same time, because steps (2) to (5) are adopted, the resource contention caused by multiple kernels sharing the resources of the GPU when multiple kernels are executed concurrently in one GPU is solved. In step (2), by executing a part of the kernel, the execution information is obtained to analyze whether the kernel is computationally intensive or memory intensive. In step (3), two kernels with the greatest difference in kernel characteristics are selected and paired. In step (4), these two paired kernels are placed in their respective CUDA streams for execution. This reduces the contention for resources and makes fuller use of the GPU's computation and memory resources, making the kernel execution more efficient. Thus, it can solve the technical problem that the existing GPU task scheduling system for financial big data cannot make full use of GPU resources, resulting in low computation efficiency in the real-time computing scenario of financial big data, which leads to low processing efficiency and poor processing accuracy of financial big data.
Smart Images

Figure CN117762629B_ABST
Abstract
Description
Technical Field
[0001] This invention belongs to the field of task scheduling and resource management technology of graphics processing units (GPUs), and more specifically, relates to a GPU kernel task concurrent scheduling method and system for financial big data. Background Technology
[0002] With the rapid growth of data volume in the financial industry, efficient data processing and analysis have become particularly important. The main characteristics of financial big data are its massive volume, high complexity, and stringent requirements for real-time performance and data analysis efficiency. These characteristics make high-performance computing resources (such as GPUs) the ideal choice for handling these data analysis tasks.
[0003] GPUs' high parallel processing capabilities and fast computing speed enable them to effectively handle large-scale datasets while ensuring the real-time nature and accuracy of analysis results. Therefore, the application of GPUs is crucial in the processing and analysis of financial big data, ensuring efficient execution of data processing tasks and accurate results; furthermore, due to their high parallel processing capabilities, GPUs perform particularly well when handling big data tasks.
[0004] However, existing GPU task scheduling systems for financial big data often fail to fully utilize GPU resources, resulting in low computational efficiency in real-time computing scenarios for financial big data (such as real-time transaction analysis and risk assessment), which in turn leads to low processing efficiency and poor processing accuracy for financial big data. Summary of the Invention
[0005] In view of the above-mentioned defects or improvement needs of the existing technology, the present invention provides a GPU kernel task concurrent scheduling method and system for financial big data. The purpose is to solve the technical problem that the existing GPU task scheduling system for financial big data cannot make full use of GPU resources, resulting in low computing efficiency in real-time computing scenarios of financial big data, and thus low processing efficiency and poor processing accuracy of financial big data.
[0006] To achieve the above objectives, according to one aspect of the present invention, a method for concurrent scheduling of GPU kernel tasks in real-time computing for financial big data is provided, comprising the following steps:
[0007] (1) The CPU acquires multiple real-time financial big data analysis tasks submitted by the user. Each real-time financial big data analysis task includes a kernel and its corresponding data. All kernels form a kernel set {kernel1, kernel2, ..., kernel3}. N}, for each kernel iThe corresponding data is divided into blocks to obtain multiple data blocks {block}. i,1 ,block i,2 , ..., block i,Mi}, and send the first block of data from all kernels to the GPU, i.e., send {block} 1,1 ,block 2,1 , ..., block N,1}; where N represents the total number of real-time financial big data analysis tasks, and Mi represents the number of tasks performed on the i-th kernel. i The total number of data blocks obtained after dividing the corresponding data into blocks;
[0008] (2) When the GPU receives block data {block 1,1 ,block 2,1 , ..., block N,1 After that, the kernel corresponding to each data block is used to perform calculations on the data block to obtain the calculation result corresponding to the data block. The CUDA analysis tool interface CUPTI is called to obtain the number of floating-point calculations and the number of global memory reads during the calculation process of the kernel. The ratio of the two is calculated as the operation sensitivity of the kernel. All kernels are sorted in descending order according to the obtained operation sensitivity of all kernels to obtain the kernel sorting result.
[0009] (3) The GPU will operate the kernel, which has the highest sensitivity. max As a computationally intensive kernel, it is different from the kernel with the lowest operation sensitivity. min The two are paired as memory-intensive kernels, where max is the index of the kernel set obtained by the computationally intensive kernel in step (1), and min is the index of the kernel set obtained by the memory-intensive kernel in step (1).
[0010] (4) The CPU transmits all remaining block data of the paired kernel obtained in step (3) to the GPU, that is, it sends {block} max,2 ,block max,3 , ..., block max,Mmax} and {block min,2 ,block min,3 , ..., block min,Mmin};
[0011] (5) The GPU uses the computationally intensive kernel obtained in step (3) to execute the block data {block} from step (4). max,2 ,block max,3 , ..., block max,Mmax}, to obtain the calculation result corresponding to each block of data, aggregate the calculation results of all block data to obtain the first calculation result, and use a memory-intensive kernel to execute the block data {block} obtained in step (4). min,2 ,block min,3 , ..., block min,Mmin The calculation results for each data block are obtained, and the calculation results for all data blocks are aggregated to obtain a second calculation result. The first and second calculation results are then transmitted back to the CPU.
[0012] (6) The GPU removes the paired kernels obtained in step (3) from the kernel sorting results obtained in step (2) to obtain the updated kernel sorting results;
[0013] (7) For all kernels in the updated kernel sorting results, the GPU repeats steps (3) to (6) above until all kernels have been processed.
[0014] Preferably, the size of the data blocks in step (1) is proportional to the bandwidth of the bus between the CPU and the GPU, and preferably equal to 2M.
[0015] Preferably, the floating-point calculation in step (2) is a 32-bit or 64-bit floating-point calculation, depending on the bitness of the operating system on which the CPU and GPU reside.
[0016] Preferably, the process of pairing the two kernels in step (3) is to allocate a CUDA stream for each of the two kernels so as to enable their concurrent execution.
[0017] Preferably, if the total number N of the acquired financial big data real-time analysis tasks is odd, then when steps (3) to (6) are repeated multiple times and only one kernel remains, the CPU transmits all the remaining block data of the kernel to the GPU. The GPU uses the kernel to execute these block data separately to obtain the calculation results corresponding to each block data, aggregates the calculation results of all block data, and sends the aggregated results to the CPU.
[0018] According to another aspect of the present invention, a concurrent scheduling system for GPU kernel tasks in real-time computing of financial big data is provided, comprising:
[0019] The first module, located in the CPU, is used to acquire multiple real-time financial big data analysis tasks submitted by the user. Each real-time financial big data analysis task includes a kernel and its corresponding data. All kernels form a kernel set {kernel1, kernel2, ..., kernel}. N}, for each kernel iThe corresponding data is divided into blocks to obtain multiple data blocks {block}. i,1 ,block i,2 , ..., block i,Mi}, and send the first block of data from all kernels to the GPU, i.e., send {block} 1,1 ,block 2,1 , ..., block N,1}; where N represents the total number of real-time financial big data analysis tasks, and Mi represents the number of tasks performed on the i-th kernel. i The total number of data blocks obtained after dividing the corresponding data into blocks;
[0020] The second module, located in the GPU, is used to process received block data {block} 1,1 ,block 2,1 , ..., block N,1 After that, the kernel corresponding to each data block is used to perform calculations on the data block to obtain the calculation result corresponding to the data block. The CUDA analysis tool interface CUPTI is called to obtain the number of floating-point calculations and the number of global memory reads during the calculation process of the kernel. The ratio of the two is calculated as the operation sensitivity of the kernel. All kernels are sorted in descending order according to the obtained operation sensitivity of all kernels to obtain the kernel sorting result.
[0021] The third module, located in the GPU, is used to process the most sensitive kernel. max As a computationally intensive kernel, it is different from the kernel with the lowest operation sensitivity. min The two are paired as memory-intensive kernels, where max is the index of the computationally intensive kernel in the kernel set obtained by the first module, and min is the index of the memory-intensive kernel in the kernel set obtained by the first module.
[0022] The fourth module, located in the CPU, is used to transmit all remaining blocks of data from the paired kernels obtained by the third module to the GPU, i.e., to send {block}. max,2 ,block max,3 , ..., block max,Mmax} and {block min,2 ,block min,3 , ..., block min,Mmin};
[0023] The fifth module, located within the GPU, is used to execute block data from the fourth module using the computationally intensive kernels acquired by the third module. max,2 ,block max,3, ..., block max,Mmax}, to obtain the calculation result corresponding to each block of data, aggregate the calculation results of all block data to obtain the first calculation result, and use a memory-intensive kernel to execute the block data {block} obtained in step (4). min,2 ,block min,3 , ..., block min,Mmin The calculation results for each data block are obtained, and the calculation results for all data blocks are aggregated to obtain a second calculation result. The first and second calculation results are then transmitted back to the CPU.
[0024] The sixth module, located in the GPU, is used to remove the paired kernels obtained by the third module from the kernel sorting results obtained by the second module, thereby obtaining an updated kernel sorting result.
[0025] The seventh module, located in the GPU, repeats the steps of modules three through six for all kernels in the updated kernel sorting results, until all kernels have been processed.
[0026] In summary, compared with the prior art, the above-described technical solutions conceived by this invention can achieve the following beneficial effects:
[0027] (1) This invention employs step (1), in which the data packets required by the kernel are transmitted in blocks. This allows the GPU to execute the computation task as soon as it receives the first data block of the data packet, without waiting for all the data to be transmitted completely. This reduces the waiting time and makes full use of the idle resources of the GPU to speed up the execution of the task. At the same time, because steps (2) to (5) are adopted, the resource contention caused by multiple kernels sharing the resources of the GPU when multiple kernels are executed concurrently in one GPU is solved. In step (2), by executing a part of the kernel, the execution information is obtained to analyze whether the kernel is computationally intensive or memory intensive. In step (3), two kernels with the greatest difference in kernel characteristics are selected and paired. In step (4), these two paired kernels are placed in their respective CUDA streams for execution. This reduces the contention for resources and makes fuller use of the GPU's computation and memory resources, making the kernel execution more efficient. Thus, it can solve the technical problem that the existing GPU task scheduling system for financial big data cannot make full use of GPU resources, resulting in low computation efficiency in the real-time computing scenario of financial big data, which leads to low processing efficiency and poor processing accuracy of financial big data.
[0028] (2) The present invention achieves higher overall performance by overlapping data transmission and kernel execution time. With the continuous development of GPU architecture, a large number of hardware resources are provided, making hardware parallelism richer.
[0029] (3) This invention solves the technical problem that existing kernel execution methods greatly limit the utilization of GPU hardware resources because all kernels are scheduled in a single CUDA stream, thus failing to fully utilize the huge potential of existing GPU multi-stream support; the core idea of this invention is to coordinate multiple CUDA streams of the kernel to make full use of the hardware parallelism of the GPU. Attached Figure Description
[0030] Figure 1 This is a flowchart of the GPU kernel task concurrent scheduling method for financial big data according to the present invention;
[0031] Figure 2 This is a schematic diagram of data block transmission according to the present invention;
[0032] Figure 3 This is a schematic diagram of the execution process from kernel to CUDA stream in this invention. Detailed Implementation
[0033] To make the objectives, technical solutions, and advantages of this invention clearer, the invention will be further described in detail below with reference to the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are merely illustrative and not intended to limit the invention. Furthermore, the technical features involved in the various embodiments of this invention described below can be combined with each other as long as they do not conflict with each other.
[0034] A kernel is a wrapper function that executes on the GPU. GPU tasks are executed through kernels, and multiple kernels can be executed concurrently using CUDA stream queues. Existing kernel execution schemes for financial big data applications do not fully consider the block size and computational characteristics of kernel tasks, or the relationship between GPU idle resources and CUDA streams. Therefore, this invention proposes a Multi-kernel Multi-flow Slice (MKMS) architecture for heterogeneous computing in CPU-GPU collaboration. The overall process is as follows: Figure 1 As shown, the key idea is to slice the kernel into sub-kernels and distribute them to multiple CUDA streams for concurrent execution. Furthermore, based on the existing environment, the number of CUDA streams is dynamically optimized to the optimal level, taking into account available storage, network, and computing resources, in order to fully utilize the resources within the GPU.
[0035] like Figure 1 As shown, this invention provides a concurrent scheduling method for GPU kernel tasks in real-time computing for financial big data, comprising the following steps:
[0036] (1) The CPU acquires multiple real-time financial big data analysis tasks submitted by the user. Each real-time financial big data analysis task includes a kernel and its corresponding data. All kernels form a kernel set {kernel1, kernel2, ..., kernel3}. N}, for each kernel i The corresponding data is divided into blocks to obtain multiple data blocks {block}. i,1 ,block i,2 , ..., block i,Mi}, and send the first block of data from all kernels to the GPU, i.e., send {block} 1,1 ,block 2,1 , ..., block N,1}; where N represents the total number of real-time financial big data analysis tasks, and Mi represents the number of tasks performed on the i-th kernel. i The total number of data blocks obtained after dividing the corresponding data into blocks;
[0037] Specifically, the size of the data blocks in this step is proportional to the bandwidth of the bus (PCIe or NVLink) between the CPU and GPU, and in this example, it is set to 2M.
[0038] The advantage of step (1) is that each data block is concurrently transmitted to GPU memory through multiple CUDA streams, which improves the efficiency of data transmission. Each data block is assigned a temporary address during allocation, and all temporary addresses are stored in a pre-allocated array of device memory variables, thereby achieving the continuity of kernel data and facilitating the subsequent execution of kernel slices.
[0039] (2) When the GPU receives block data {block 1,1 ,block 2,1 , ..., block N,1 After that, the kernel corresponding to each data block is used to perform calculations on that data block to obtain the calculation result corresponding to that data block. Then, the CUDA Profiling Tools Interface (CUPTI) is called to obtain the number of 32-bit / 64-bit floating-point calculations (which depends on the bitness of the operating system on which the CPU and GPU are located) and the number of global memory reads during the calculation process of that kernel. The ratio of the two is calculated as the operation sensitivity of that kernel. All kernels are sorted in descending order according to the obtained operation sensitivity of all kernels to obtain the kernel sorting result.
[0040] (3) The GPU will operate on the kernel, which has the highest sensitivity. max(It is a computationally intensive kernel) and the kernel with the lowest operational sensitivity. min (It is a memory-intensive kernel) to be paired, where max is the index of the kernel set obtained by the computationally intensive kernel in step (1), and min is the index of the kernel set obtained by the memory-intensive kernel in step (1);
[0041] Specifically, pairing two kernels involves allocating a Compute Unified Device Architecture (CUDA) stream to each kernel to enable concurrent execution.
[0042] (4) The CPU transmits all remaining block data of the paired kernel obtained in step (3) to the GPU, that is, it sends {block} max,2 ,block max,3 , ..., block max,Mmax} and {block min,2 ,block min,3 , ..., block min,Mmin};
[0043] (5) The GPU uses the computationally intensive kernel obtained in step (3) to execute the block data {block} from step (4). max,2 ,block max,3 , ..., block max,Mmax}, to obtain the calculation result corresponding to each block of data, aggregate the calculation results of all block data to obtain the first calculation result, and use a memory-intensive kernel to execute the block data {block} obtained in step (4). min,2 ,block min,3 , ..., block min,Mmin The calculation results for each data block are obtained, the calculation results for all data blocks are aggregated to obtain the second calculation result, and the first and second calculation results are transmitted back to the CPU.
[0044] The advantage of steps (2) to (5) is that two kernels with different operating characteristics can be executed concurrently, reducing resource contention and making fuller use of GPU computing and memory resources, thus making the kernel execution more efficient.
[0045] (6) The GPU removes the paired kernels obtained in step (3) from the kernel sorting results obtained in step (2) to obtain the updated kernel sorting results;
[0046] (7) For all kernels in the updated kernel sorting results, the GPU repeats steps (3) to (6) above until all kernels have been processed.
[0047] It should be noted that if the total number of real-time financial big data analysis tasks (i.e. the total number of kernels) N is odd, then after repeatedly executing the above steps (3) to (6) multiple times until only one kernel remains, the CPU will transfer all the remaining block data of that kernel to the GPU. The GPU will use that kernel to execute these block data individually to obtain the calculation results corresponding to each block data. The calculation results of all block data will be aggregated and the aggregated results will be sent to the CPU.
[0048] like Figure 2 The diagram illustrates the data chunking and transmission method of this invention. In the field of financial big data analysis, this invention provides a method for executing highly complex and computationally intensive tasks on GPUs. This method involves a data flow of three key steps: First, task data is transferred from the host to the GPU device, a process known as Host-to-Device (H2D). Second, the GPU kernel executes (KEX) computation tasks, which is the core of the processing and involves a series of different kernel execution stages, namely KEX1, KEX2, and KEX3, representing kernel segmentation execution. Finally, the processed data is returned to the host through the Device-to-Host (D2H) stage. In terms of data transmission, this invention employs a data chunking approach, dividing the data of each kernel task into multiple blocks. Compared to serial kernel execution, the performance of kernel chunking is significantly improved.
[0049] like Figure 3 As shown, it is a schematic diagram of the execution process from kernel to CUDA flow of this invention. Figure 3 This demonstrates a performance comparison between executing N kernels in a single CUDA stream and executing multiple kernels paired and placed in their respective CUDA streams. Blue boxes represent unpaired kernels, while green and orange boxes represent selected paired kernel pairs that execute concurrently. Compared to executing multiple kernels in a single stream, pairing kernels significantly improves performance.
[0050] In summary, this invention employs step (1), where the kernel is originally executed serially in the GPU. The GPU has to wait for the CPU to transmit the data packets required by the kernel and only starts to perform kernel execution calculations after receiving the complete data packets. This results in the GPU being in an idle waiting state before receiving the data packets, thus underutilizing GPU resources and making the kernel execution efficiency very low. In this step, the data packets required by the kernel are transmitted in blocks, so that the GPU can execute the calculation task as soon as it receives the first data block of the data packet, without having to wait for all the data to be transmitted completely. This reduces the waiting time and makes full use of the idle resources of the GPU to speed up the execution of the task. In addition, this invention employs steps (2) to (5), which solves the problem of resource contention caused by multiple kernels sharing the resources of the GPU when multiple kernels are executed concurrently in one GPU. In step (2), by executing a part of the kernel, the execution information is obtained to analyze whether the kernel is computationally intensive or memory intensive. In step (3), two kernels with the greatest difference in kernel characteristics are selected and paired. In step (4), these two paired kernels are placed in their respective CUDA streams for execution. This can reduce resource contention and make fuller use of the GPU's computing and memory resources, making the kernel execution efficiency higher. Therefore, it can solve the technical problem that existing GPU task scheduling systems for financial big data cannot fully utilize GPU resources, resulting in low computational efficiency in real-time computing scenarios for financial big data, which in turn leads to low processing efficiency and poor processing accuracy of financial big data.
[0051] Those skilled in the art will readily understand that the above description is merely a preferred embodiment of the present invention and is not intended to limit the present invention. Any modifications, equivalent substitutions, and improvements made within the spirit and principles of the present invention should be included within the scope of protection of the present invention.
Claims
1. A concurrent scheduling method for GPU kernel tasks in real-time computing for financial big data, characterized in that, Includes the following steps: (1) The CPU acquires multiple real-time financial big data analysis tasks submitted by the user. Each real-time financial big data analysis task includes a kernel and its corresponding data. All kernels form a kernel set {kernel1, kernel2, ..., kernel3}. N }, for each kernel i The corresponding data is divided into blocks to obtain multiple data blocks {block}. i,1 ,block i,2 , ..., block i,Mi }, and send the first block of data from all kernels to the GPU, i.e., send {block} 1,1 ,block 2,1 , ..., block N ,1}; where N represents the total number of real-time financial big data analysis tasks, and Mi represents the number of tasks for the i-th kernel. i The total number of data blocks obtained after dividing the corresponding data into blocks; (2) When the GPU receives block data {block 1,1 ,block 2,1 , ..., block N,1 After that, the kernel corresponding to each data block is used to perform calculations on the data block to obtain the calculation result corresponding to the data block. The CUDA analysis tool interface CUPTI is called to obtain the number of floating-point calculations and the number of global memory reads during the calculation process of the kernel. The ratio of the two is calculated as the operation sensitivity of the kernel. All kernels are sorted in descending order according to the obtained operation sensitivity of all kernels to obtain the kernel sorting result. (3) The GPU will operate on the kernel, which has the highest sensitivity. max As a computationally intensive kernel, it is different from the kernel with the lowest operation sensitivity. min The two are paired as memory-intensive kernels, where max is the index of the kernel set obtained by the computationally intensive kernel in step (1), and min is the index of the kernel set obtained by the memory-intensive kernel in step (1). (4) The CPU transmits all remaining block data of the paired kernel obtained in step (3) to the GPU, that is, it sends {block} max,2 ,block max,3 , ..., block max,Mmax } and {block min,2 ,block min,3 , ..., block min,Mmin }; (5) The GPU uses the computationally intensive kernel obtained in step (3) to execute the block data {block} from step (4). max,2 ,block max,3 , ..., block max,Mmax }, to obtain the calculation result corresponding to each block of data, aggregate the calculation results of all block data to obtain the first calculation result, and use a memory-intensive kernel to execute the block data {block} obtained in step (4). min,2 ,block min,3 , ..., block min,Mmin The calculation results for each data block are obtained, the calculation results for all data blocks are aggregated to obtain the second calculation result, and the first and second calculation results are transmitted back to the CPU. (6) The GPU removes the paired kernels obtained in step (3) from the kernel sorting results obtained in step (2) to obtain the updated kernel sorting results; (7) For all kernels in the updated kernel sorting results, the GPU repeats steps (3) to (6) above until all kernels have been processed.
2. The concurrent scheduling method for GPU kernel tasks in real-time computing for financial big data according to claim 1, characterized in that, In step (1), the size of the data block is proportional to the bandwidth of the bus between the CPU and the GPU, preferably equal to 2M.
3. The concurrent scheduling method for GPU kernel tasks in real-time computing for financial big data according to claim 1 or 2, characterized in that, In step (2), the floating-point calculation is either 32-bit or 64-bit, depending on the bitness of the operating system on which the CPU and GPU are located.
4. The concurrent scheduling method for GPU kernel tasks in real-time computing for financial big data according to any one of claims 1 to 3, characterized in that, The process of pairing the two kernels in step (3) is to allocate a CUDA stream for each of the two kernels so that they can be executed concurrently.
5. The concurrent scheduling method for GPU kernel tasks in real-time computing for financial big data according to claim 4, characterized in that, If the total number N of the real-time analysis tasks of the acquired financial big data is odd, then when steps (3) to (6) are repeated multiple times and only one kernel remains, the CPU will transfer all the remaining block data of the kernel to the GPU. The GPU will use the kernel to execute these block data separately to obtain the calculation results corresponding to each block data, aggregate the calculation results of all block data, and send the aggregated results to the CPU.
6. A concurrent scheduling system for GPU kernel tasks in real-time computing of financial big data, characterized in that, include: The first module, located in the CPU, is used to acquire multiple real-time financial big data analysis tasks submitted by the user. Each real-time financial big data analysis task includes a kernel and its corresponding data. All kernels form a kernel set {kernel1, kernel2, ..., kernel}. N }, for each kernel i The corresponding data is divided into blocks to obtain multiple data blocks {block}. i,1 ,block i,2 , ..., block i,Mi }, and send the first block of data from all kernels to the GPU, i.e., send {block} 1,1 ,block 2,1 , ..., block N,1 }; where N represents the total number of real-time financial big data analysis tasks, and Mi represents the number of tasks performed on the i-th kernel. i The total number of data blocks obtained after dividing the corresponding data into blocks; The second module, located in the GPU, is used to process received block data {block} 1,1 ,block 2,1 , ..., block N,1 After that, the kernel corresponding to each data block is used to perform calculations on the data block to obtain the calculation result corresponding to the data block. The CUDA analysis tool interface CUPTI is called to obtain the number of floating-point calculations and the number of global memory reads during the calculation process of the kernel. The ratio of the two is calculated as the operation sensitivity of the kernel. All kernels are sorted in descending order according to the obtained operation sensitivity of all kernels to obtain the kernel sorting result. The third module, located in the GPU, is used to process the most sensitive kernel. max As a computationally intensive kernel, it is different from the kernel with the lowest operation sensitivity. min The two are paired as memory-intensive kernels, where max is the index of the computationally intensive kernel in the kernel set obtained by the first module, and min is the index of the memory-intensive kernel in the kernel set obtained by the first module. The fourth module, located in the CPU, is used to transmit all remaining blocks of data from the paired kernels obtained by the third module to the GPU, i.e., to send {block}. max,2 ,block max,3 , ..., block max,Mmax } and {block min,2 ,block min,3 , ..., block min,Mmin }; The fifth module, located within the GPU, is used to execute block data from the fourth module using the computationally intensive kernels acquired by the third module. max,2 ,block max,3 , ..., block max,Mmax }, to obtain the calculation result corresponding to each block of data, aggregate the calculation results of all block data to obtain the first calculation result, and use a memory-intensive kernel to execute the block data {block} obtained in step (4). min,2 ,block min,3 , ..., block min,Mmin The calculation results for each data block are obtained, the calculation results for all data blocks are aggregated to obtain the second calculation result, and the first and second calculation results are transmitted back to the CPU. The sixth module, located in the GPU, is used to remove the paired kernels obtained by the third module from the kernel sorting results obtained by the second module, thereby obtaining an updated kernel sorting result. The seventh module, located in the GPU, repeats the steps of modules three through six for all kernels in the updated kernel sorting results, until all kernels have been processed.
Citation Information
Patent Citations
GPU-based parallel acceleration method for multi-variable password algorithm
CN108510429A
multi-process shared GPU scheduling method, multi-process shared GPU scheduling system and electronic equipment
CN111124691A