Request processing method and system

By establishing a transmission path between the distributed file system and the graphics processor and selecting the appropriate transmission protocol and sub-path according to the data attributes, the transmission bottleneck and delay problems in the graphics processor data transmission are solved, and efficient data parallel transmission is achieved.

CN119739656BActive Publication Date: 2025-09-23LANGCHAO ELECTRONIC INFORMATION IND CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202412000467.2
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2024-12-31
Publication Date
2025-09-23
Estimated Expiration
2044-12-31

AI Technical Summary

Technical Problem

In the field of graphics processing units (GPUs), existing technologies are prone to transmission bottlenecks during data transmission, especially in multi-task parallel scenarios, where it is difficult to achieve efficient data transmission. In addition, unified transmission protocols cannot provide sufficient low-latency guarantees, affecting the transmission efficiency of data segments.

Method used

By establishing a transmission path between the distributed file system and the graphics processor and dividing it into multiple sub-paths according to the target physical memory address, the target data is divided into segments with different data attributes, and appropriate transmission protocols and sub-paths are selected for parallel transmission, and RDMA technology is used to achieve direct data transmission.

Benefits of technology

It improves the efficiency of data transmission, avoids the inefficiency and delay of the "one-size-fits-all" approach, ensures that data of different types and sizes are transmitted using the most suitable protocol, and improves the flexibility and efficiency of transmission.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119739656B_ABST
    Figure CN119739656B_ABST
Patent Text Reader

Abstract

The present disclosure provides a request processing method and system, relating to the field of data storage. The method comprises: in response to a data operation request, determining a target physical memory address in a graphics processor for target data to be accessed by the data operation request; establishing a transmission path between a distributed file system and a graphics processor based on the target physical memory address; dividing the target data into multiple data segments with different data attributes; selecting corresponding target transmission protocols for the multiple data segments and assigning the multiple data segments to different transmission sub-paths; determining a target location of the target data in a distributed file system based on the data operation request; and transmitting the multiple data segments in parallel from the target location in the distributed file system to the target physical memory address of the graphics processor. The customized transmission method disclosed herein avoids the inefficiency and delay of a "one-size-fits-all" method and improves transmission efficiency.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to the field of data storage, and in particular to a request processing method and system. Background Art

[0002] With the widespread application of graphics processing units (GPUs) in high-performance computing, artificial intelligence training, and graphics rendering, the demand for real-time transmission and efficient processing of large-scale data is increasing.

[0003] However, related technologies can easily create transmission bottlenecks when the transmission path is overloaded, making it difficult to achieve efficient data transmission in multi-tasking scenarios. Furthermore, a "one-size-fits-all" approach using a unified transmission protocol fails to provide sufficient low latency for high-real-time tasks and can also reduce the transmission efficiency of large data segments. Summary of the Invention

[0004] The embodiments of the present disclosure provide a request processing method and system, aiming to solve the problems existing in the above-mentioned background technologies.

[0005] In order to solve the above technical problems, the present disclosure is implemented as follows:

[0006] In a first aspect, an embodiment of the present disclosure provides a request processing method, the method comprising:

[0007] In response to a data operation request, determining a target physical memory address requested in a graphics processor for target data to be accessed by the data operation request;

[0008] Establishing a transmission path between a distributed file system and the graphics processor based on the target physical memory address, wherein the transmission path includes at least one transmission sub-path;

[0009] Dividing the target data into a plurality of data segments with different data attributes, wherein the data attributes include at least: data size, data type and priority;

[0010] selecting corresponding target transmission protocols for the plurality of data segments of the target data according to respective data sizes and data types of the plurality of data segments, and allocating the plurality of data segments to different transmission subpaths based on respective task loads of the at least one transmission subpath and respective priorities of the plurality of data segments;

[0011] Determining a target location of the target data in the distributed file system according to the data operation request;

[0012] Based on the target transmission protocols of the multiple data segments of the target data, the multiple data segments are transmitted in parallel from the target locations in the distributed file system to the target physical memory addresses of the graphics processor through the at least one transmission sub-path.

[0013] Optionally, establishing a transmission path between the distributed file system and the graphics processor based on the target physical memory address includes:

[0014] Determine meta information of an RDMA data transmission request corresponding to the data operation request, where the meta information of the RDMA data transmission request includes at least a target DMA address corresponding to the target physical memory address;

[0015] RDMA programming is performed based on the metadata of the RDMA data transmission request to generate a transmission path between the distributed file system and the graphics processor.

[0016] Optionally, determining the metadata of the RDMA data transmission request corresponding to the data operation request includes:

[0017] Generate a corresponding RDMA data transmission request according to the data operation request;

[0018] Parsing the RDMA data transmission request through the distributed file system to determine a target DMA address corresponding to the graphics processor;

[0019] The transmitting, in parallel, the multiple data segments from the target location in the distributed file system to the target physical memory address of the graphics processor through the at least one transmission sub-path includes: obtaining the multiple data segments of the target data from the target location in the distributed file system; copying the multiple data segments of the target data to the target DMA address; and transmitting, in parallel, the multiple data segments of the target data to the target physical memory address of the graphics processor through the at least one transmission sub-path.

[0020] Optionally, after determining the target physical memory address of the target data to be accessed by the data operation request in the graphics processor, the method further includes:

[0021] Obtaining a first mapping relationship between a physical memory address and a virtual memory address;

[0022] Based on the first mapping relationship, mapping the target physical memory address to a corresponding target virtual memory address;

[0023] The determining of the metadata of the RDMA data transmission request corresponding to the data operation request includes:

[0024] Obtaining a second mapping relationship between the virtual memory address and the DMA address;

[0025] Based on the second mapping relationship, mapping the target virtual memory address to a corresponding target DMA address;

[0026] The target DMA address is determined as the meta-information of the RDMA data transmission request.

[0027] Optionally, selecting corresponding target transmission protocols for the multiple data segments according to the data size and data type of each of the multiple data segments of the target data, and allocating the multiple data segments to different transmission subpaths based on the task load of each of the at least one transmission subpath and the priorities of the multiple data segments, includes:

[0028] Dividing the plurality of data segments of the target data into a first category of data segments and a second category of data segments according to respective data sizes and data types of the plurality of data segments, wherein the data size of the first category of data segments is less than a first preset threshold and the data type is real-time data, and the data size of the second category of data segments is greater than the first preset threshold and the data type is non-real-time data, the real-time data at least including audio and video data or control data, and the non-real-time data at least including file data and backup data;

[0029] determining the User Datagram Protocol as a target transmission protocol for the first type of data segments, and determining the Transmission Control Protocol as a target transmission protocol for the second type of data segments;

[0030] According to the respective priorities of the multiple data segments, the multiple data segments are allocated to different transmission sub-paths, wherein the data segments with a priority higher than the second preset threshold are preferentially allocated to the transmission sub-path with a task load lower than the third preset threshold, and the data segments with a priority lower than the second preset threshold are preferentially allocated to the transmission sub-path with a task load higher than the third preset threshold.

[0031] Optionally, determining a target location of the target data in the distributed file system according to the data operation request includes:

[0032] Parsing the data operation request to obtain the request content of the data operation request;

[0033] Determining a file handle of a file where the target data is located from the request content of the data operation request;

[0034] The distributed file system is traversed according to the file handle to determine the target data and the target location of the target data in the distributed file system.

[0035] Optionally, in response to the data operation request, determining a target physical memory address requested in the graphics processor for target data to be accessed by the data operation request includes:

[0036] Parsing the data operation request to obtain the request content of the data operation request;

[0037] Determining a memory address requested in the graphics processor and a data length of the target data from the request content of the data operation request;

[0038] A corresponding target physical memory address in the graphics processor is determined according to the memory address requested in the graphics processor and the data length of the target data.

[0039] Optionally, after transmitting the plurality of data segments of the target data in parallel from the target locations in the distributed file system to the target physical memory addresses of the graphics processor through the at least one transmission sub-path based on the target transmission protocols of the respective plurality of data segments of the target data, the method further includes:

[0040] Returning a response signal indicating that the request is completed when it is detected that the multiple data segments of the target data are completely transferred to the target physical memory address of the graphics processor;

[0041] In response to the response signal, an execution status of the data operation request is updated.

[0042] In a second aspect, an embodiment of the present disclosure provides a request processing system for executing the steps of a request processing method, comprising: a graphics processor file system driver, a file system client, and a distributed file system; the file system client is deployed with a network card and a graphics processor, and the graphics processor is connected to the distributed file system via the network card;

[0043] The graphics processor file system driver is configured to, in response to a data operation request, determine a target physical memory address in the graphics processor for target data to be accessed by the data operation request;

[0044] The file system client is configured to establish a transmission path between the distributed file system and the graphics processor based on the target physical memory address; and determine a target location of the target data in the distributed file system according to the data operation request;

[0045] The target data is transmitted from a target location in the distributed file system to a target physical memory address of the graphics processor via the transmission path.

[0046] Optionally, the file system client is configured to determine metadata of an RDMA data transmission request corresponding to the data operation request, the metadata of the RDMA data transmission request including at least a target DMA address corresponding to the target physical memory address; and perform RDMA programming based on the metadata of the RDMA data transmission request to generate a transmission path between the distributed file system and the graphics processor.

[0047] The distributed file system is configured to generate a corresponding RDMA data transmission request according to the data operation request; and parse the RDMA data transmission request through the distributed file system to determine a target DMA address corresponding to the graphics processor;

[0048] The distributed file system is further configured to obtain the target data from a target location in the distributed file system; copy the target data to the target DMA address; and transmit the target data to a target physical memory address of the graphics processor via the transmission path.

[0049] The technical solutions provided by the embodiments of the present disclosure bring at least the following beneficial effects:

[0050] This disclosure establishes a transmission path between a distributed file system and a graphics processor, dividing it into multiple subpaths based on the target physical memory address to achieve parallel data transmission. Furthermore, by analyzing the properties of multiple segments of the target data (such as size, data type, and priority), the most appropriate transmission protocol is selected for each segment. This customized transmission method enables data of different types and sizes to be transmitted using the most appropriate protocol, avoiding the inefficiency and delays of a "one-size-fits-all" approach and improving transmission efficiency. BRIEF DESCRIPTION OF THE DRAWINGS

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

[0052] Figure 1 This is a diagram of the data transmission architecture from a traditional distributed file system to a graphics processor;

[0053] Figure 2 This is a flowchart of a request processing method provided by an embodiment of the present disclosure;

[0054] Figure 3 This is a schematic diagram of a data transmission architecture of a request processing system provided based on an embodiment of the present disclosure. DETAILED DESCRIPTION

[0055] Based on the embodiments in the present disclosure, all other embodiments obtained by ordinary technicians in this field without making creative work are within the scope of protection of the present disclosure. In the description of the embodiments of the present disclosure, unless otherwise specified, " / " means or, for example, A / B can mean A or B; "and / or" in this article is only a description of the association relationship of associated objects, indicating that there can be three relationships, for example, A and / or B can mean: A exists alone, A and B exist at the same time, and B exists alone. In the present disclosure, "at least one" refers to one or more, and "more than one" refers to two or more. "At least one of the following items" or similar expressions refers to any combination of these items, including any combination of single items or plural items. For example, at least one of a, b, or c can mean: a, b, c, ab, ac, bc, or abc, where a, b, c can be single or multiple.

[0056] With the rapid development of artificial intelligence and deep learning applications, the size of datasets continues to expand. Traditional data transmission methods can no longer meet modern computing needs, especially in graphics processing unit (GPU) training tasks. In the traditional data transmission process for operation requests, data needs to be transferred from the distributed file system to the central processing unit (CPU), and then from the CPU to the GPU. The multiple data copying and processing steps involved lead to additional latency and performance loss. Especially in large-scale AI training tasks, the time it takes to load data significantly affects the training efficiency of the model.

[0057] Figure 1 This is a diagram of the data transmission architecture from a traditional distributed file system to a graphics processor, such as Figure 1As shown below, using the training of a large-scale AI-generated content (AIGC) model as an example, we will analyze and illustrate how typical checkpoint read and write operations occur during this training process. First, the GPU application obtains a file handle by opening the checkpoint file and calls system memory allocation functions (such as malloc) to request system memory for data caching. Next, the GPU application calls the GPU platform's memory allocation function to free up space in GPU memory for the data cache. The application then initiates a data read request, passing parameters such as the system memory address and data length. This request is received by the virtual file system (VFS) and passed down to the distributed file system driver. The file system client then reads the required data from the service cluster over the network. After retrieving the data, the client returns it to the VFS layer, which then copies the data back to the system memory requested by the GPU application. The GPU application then calls the GPU platform's memory copy function to copy the data from system memory to GPU memory. As can be seen, this entire process involves multiple data copies and CPU involvement, resulting in significant latency and resource consumption, limiting the implementation of efficient data transfer.

[0058] Based on the above problems, this disclosure proposes an improved request processing method. Figure 2 This is a flowchart of a request processing method provided by an embodiment of the present disclosure. Figure 2 As shown, the method includes:

[0059] Step S101, in response to a data operation request, determining a target physical memory address of target data to be accessed by the data operation request in a graphics processor;

[0060] Step S102: establishing a transmission path between the distributed file system and the graphics processor based on the target physical memory address, wherein the transmission path includes at least one transmission sub-path;

[0061] Step S103, dividing the target data into a plurality of data segments with different data attributes, wherein the data attributes include at least: data size, data type and priority;

[0062] Step S104: selecting corresponding target transmission protocols for the multiple data segments according to the data size and data type of each of the multiple data segments of the target data, and allocating the multiple data segments to different transmission subpaths based on the task load of each of the at least one transmission subpath and the priorities of the multiple data segments;

[0063] Step S105: determining a target location of the target data in the distributed file system according to the data operation request;

[0064] Step S106 : Based on the target transmission protocols of the multiple data segments of the target data, the multiple data segments are transmitted in parallel from the target locations in the distributed file system to the target physical memory addresses of the graphics processor through the at least one transmission sub-path.

[0065] In step S101, a GPU application receives a data operation request initiated during model training or inference. In the disclosed embodiment, the GPU application is a program dedicated to executing computationally intensive tasks on the GPU. The data operation request may include the data type and size of the target data to be accessed, as well as the specific operation (e.g., read, write, etc.) on the target data. The target data is the object data that the data operation request accesses or indicates the operation of. The GPU application parses the data operation request to determine the specific characteristics of the target data, including the format (e.g., tensor, matrix), structure (e.g., multidimensional array), and any specific identifiers (e.g., file handles) of the target data. Based on the results of the request parsing, the GPU application calculates the target physical memory address of the target data in the graphics processor. The target physical memory address is the memory address pre-allocated in the graphics processor for the target data and is the address of the memory requested by calling the corresponding memory allocation function. Upon successful memory allocation, a pointer to the allocated memory (i.e., the target physical memory address) is returned.

[0066] In step S102, the target physical memory address determined in step S101 is used to directly identify the target location in the GPU memory as the destination of the data transfer. Specifically, the GPU application calls the corresponding driver interface to obtain memory mapping information related to the target physical memory address, including memory access permissions, size, and type, to ensure that data can be correctly written to the designated memory area. Next, Remote Direct Memory Access (RDMA) technology or other efficient data transfer protocols can be used to establish a direct transmission path to the distributed file system. At this point, network parameters are configured to ensure that data can be transferred from the distributed file system to the GPU memory with high bandwidth and low latency. To further improve the flexibility and efficiency of data transfer, this step divides the transmission path into at least one transmission sub-path, where each transmission sub-path can independently transfer a portion of the data. The transmission sub-paths are divided based on the physical hardware topology (e.g., different network interfaces, multiple DMA channels on the GPU, etc.) or task load distribution (e.g., selecting channels with low occupancy based on current load). This helps to balance task distribution and avoid bottlenecks in a single path.

[0067] Involving step S103, the data in the distributed file system is stored in large blocks, while the GPU receives small blocks of data through a high-performance interface (such as PCIe or NVLink). Therefore, direct transmission of large blocks of data may cause delays and waste of resources. The present disclosure proposes to split it into multiple data segments. Different data segments differ in data type, priority and data size. For example, texture data for real-time rendering tasks needs to be transmitted first, large model parameters need to be segmented and compressed before transmission, and small control data is very sensitive to delay and requires special processing. Data dependencies need to be considered when segmenting. For example, some parts of the model parameters need to be loaded at the same time and cannot be assigned to different paths for asynchronous transmission.

[0068] In this embodiment, the default size of the data block can be set according to the transmission capability of the hardware (such as the memory bandwidth of the GPU). For example, 256KB or 512KB is a block unit. If the data is small (such as control data), it can be directly processed as a single segment without segmentation. Classify the data by data type, such as image data, video stream, control signal, etc., and establish different segments for each. Certain types of data may require special encapsulation (such as encoding or compression), which requires additional operations when segmenting. Assign higher priority segments to tasks with strong real-time requirements (such as video streaming). Non-real-time tasks (such as batch transmission) can be divided into larger segments to optimize bandwidth utilization. After segmentation, each data segment is marked with corresponding attribute information, including data size, data type and priority. The multiple segments are stored as independent units for scheduling and transmission in subsequent steps.

[0069] In step S104, the appropriate target transmission protocol is selected based on the data attributes of the segmented data segments. The data segments are then assigned to different transmission subpaths based on the transmission subpath load and the data segment priority. Each data segment is associated with its target transmission protocol and assigned subpath and recorded in the task scheduling table, providing a basis for the actual transmission in the subsequent step (step S106). Specifically, step S104 includes substeps S1041-S1043:

[0070] Step S1041: Divide the multiple data segments of the target data into a first category of data segments and a second category of data segments according to their respective data sizes and data types, wherein the data size of the first category of data segments is less than a first preset threshold and the data type is real-time data, and the data size of the second category of data segments is greater than the first preset threshold and the data type is non-real-time data, the real-time data includes at least audio and video data or control data, and the non-real-time data includes at least file data and backup data.

[0071] The first type of data segment is real-time data, with a data size less than a first preset threshold and a real-time data type, such as audio and video data (content requiring real-time transmission guarantees) or control data (such as commands and events). The first type of data segment is sensitive to transmission delay and requires low-latency, high-real-time transmission. The second type of data segment is non-real-time data, with a data size greater than the first preset threshold and a non-real-time data type, such as file data (such as documents, images, etc.) or backup data (such as database backups and archived data). The second type of data segment does not require strict real-time performance but requires high throughput and stability.

[0072] Step S1042: Determine the User Datagram Protocol as the target transmission protocol for the first type of data segments, and determine the Transmission Control Protocol as the target transmission protocol for the second type of data segments.

[0073] Based on the classification results, appropriate transport protocols are selected for different types of data segments to ensure that transmission requirements are met. The User Datagram Protocol (UDP) is selected as the target transport protocol for the first type of data segments. UDP offers low overhead, low latency, and the absence of connection establishment, making it suitable for data with high real-time requirements. The Transmission Control Protocol (TCP) is selected as the target transport protocol for the second type of data segments. TCP offers high reliability, including packet retransmission and guaranteed order, making it suitable for large data transmission volumes, such as files or backup data. In other words, the UDP protocol is used for the first type of data segments to ensure real-time performance, while the TCP protocol is used for the second type of data segments to ensure reliability.

[0074] Step S1043, allocating the multiple data segments to different transmission sub-paths according to their respective priorities, wherein the data segments with a priority higher than the second preset threshold are preferentially allocated to the transmission sub-path with a task load lower than the third preset threshold, and the data segments with a priority lower than the second preset threshold are preferentially allocated to the transmission sub-path with a task load higher than the third preset threshold.

[0075] Data segments are assigned to appropriate transmission subpaths based on their priority and the load of the transmission subpath. Data segments with a priority above the second preset threshold (high priority) are assigned to transmission subpaths with a workload below the third preset threshold. This provides faster transmission for high-priority data segments, preventing delays or interruptions caused by excessive load. Data segments with a priority below the second preset threshold (low priority) are assigned to transmission subpaths with a workload above the third preset threshold. This effectively assigns data segments with less real-time requirements to less congested paths, optimizing transmission resource utilization and avoiding waste.

[0076] Step S105 involves parsing the data operation request to extract key information related to the target data, similar to determining the target physical memory address. Based on the parsed information, a query request is sent to the distributed file system. The distributed file system responds to the query request and locates the specific location where the target data is stored based on internal indexes and / or metadata. Once the distributed file system successfully finds the target data, it returns the location of the target data in the file system as the target location of the target data in the distributed file system.

[0077] In step S106, before performing the actual transmission, the following parameters are confirmed for each data segment: target transmission protocol,

[0078] The GPU application establishes a transmission session for each data segment using the corresponding transmission protocol and subpath. Specifically, for the first-category data segments, a connectionless transmission session is established based on their target transmission protocol (UDP). Based on the target transmission protocols of the multiple data segments, the GPU application concurrently transmits the multiple data segments from the target location in the distributed file system to the target physical memory address in the GPU via the corresponding transmission subpath. The GPU application uses multithreading or asynchronous I / O mechanisms to process the transmission of multiple data segments simultaneously. Each thread / asynchronous task corresponds to a transmission subpath and independently handles the transmission of the data segments assigned to that subpath. After confirming the location and access rights of the target data, the GPU application constructs a data transfer request containing specific information about the target data, such as its size, format, target physical memory address, and transmission protocol, such as Remote Direct Memory Access (RDMA). The GPU application initiates the data transfer via at least one transmission subpath of the established transmission path. When using RDMA technology, the application calls the corresponding RDMA API to send a data transfer request to the distributed file system. RDMA utilizes the network interface card (NIC) to directly copy the data from the target location in the distributed file system to the target physical memory address on the GPU without CPU intervention. During the transfer, the load of each subpath is dynamically monitored. When the load of a subpath exceeds a third preset threshold, the segment transfer speed is adjusted or lower-priority data is reassigned to other subpaths. Simultaneously, the GPU application monitors the transfer status to ensure that multiple segments of the target data are successfully transferred to the target physical memory address. This includes checking the transfer completion status, error handling, and retry mechanisms. Once the data transfer is complete, the GPU application receives confirmation from the distributed file system that the multiple segments of the target data have been successfully transferred to the target physical memory address. After the data is successfully transferred and confirmed, the GPU application can immediately begin processing the received target data, such as performing model training or inference operations. The GPU application then uses the data in the target physical memory address to perform the corresponding computational tasks.

[0079] This disclosure establishes a transmission path between a distributed file system and a graphics processor, dividing it into multiple subpaths based on the target physical memory address to achieve parallel data transmission. Furthermore, by analyzing the properties of multiple segments of the target data (such as size, data type, and priority), the most appropriate transmission protocol is selected for each segment. This customized transmission method enables data of different types and sizes to be transmitted using the most appropriate protocol, avoiding the inefficiency and delays of a "one-size-fits-all" approach and improving transmission efficiency.

[0080] In an optional embodiment, in response to a data operation request, determining a target physical memory address requested in a graphics processor for target data to be accessed by the data operation request includes: parsing the data operation request to obtain request content of the data operation request; determining a memory address requested in the graphics processor and a data length of the target data from the request content of the data operation request; and determining a corresponding target physical memory address in the graphics processor based on the memory address requested in the graphics processor and the data length of the target data.

[0081] In one embodiment of the present disclosure, step S101 may include the following steps: when the GPU application receives a data operation request, the data operation request is parsed to extract the specific request content of the request, including but not limited to the data type, data size, operation type, and specific identifier. From the parsed request content, the memory address requested by the target data in the GPU is identified. And the length of the target data, that is, the number of bytes of the target data, is determined. Based on the target memory address and the data length of the target data, the specific physical memory address of the target data in the GPU can be determined. In the memory management of the GPU, the physical memory address is an address pointing to the actual memory area, corresponding to the allocated memory area.

[0082] Suppose a GPU application needs to process image data, where each pixel is represented by 4 bytes (RGBA format). It wishes to load a 1024x768 image into the GPU for processing. The GPU application calls a memory allocation function (such as malloc or other GPU-specific memory allocation functions) to request memory to store the image data. Assume the application requests 1024 * 768 * 4 = 3,145,728 bytes of memory, and assume the GPU allocates virtual memory at address 0x7F000000. When the GPU application needs to operate on this image data, it issues a target data operation request, which includes the memory address requested by the graphics processor (0x1A2B3C4D) and the target data length (3,145,728 bytes). Since the data length is 3,145,728 bytes, the target physical memory address range can be calculated as follows: starting address 0x1A2B3C4D, ending address 0x1A2B3C4D + 3,145,728 - 1 = 0x1A2B3C4D + 0x2F (i.e. 0x1A2B3C4D to 0x1A2B3C4D + 0x2F).

[0083] Through the above steps, it is possible to accurately respond to data operation requests and determine the physical memory address of the target data in the graphics processor, providing necessary support for subsequent data transmission and processing.

[0084] In an optional embodiment, establishing a transmission path between the distributed file system and the graphics processor based on the target physical memory address includes: determining metadata of an RDMA data transmission request corresponding to the data operation request, the metadata of the RDMA data transmission request including at least a target DMA address corresponding to the target physical memory address; and performing RDMA programming based on the metadata of the RDMA data transmission request to generate the transmission path between the distributed file system and the graphics processor.

[0085] In one embodiment of the present disclosure, step S102 may include determining metadata for an RDMA data transfer request corresponding to the data operation request. The metadata for the RDMA data transfer request includes key information required for RDMA transmission, such as the target DMA address and RDMA key. A DMA (Direct Memory Access) address allows data to be transferred directly from the storage device of the distributed file system to the memory of the target device (such as a GPU), bypassing the CPU. In an RDMA request, the DMA address points to the memory of the target device (GPU), which is the final destination of the data transfer. The target DMA address included in the RDMA request indicates the exact location where the data should be written. The target DMA address refers to the specific location where data will be written or read during an RDMA transfer. Therefore, the target DMA address corresponds to the target physical memory address. After determining the metadata for the RDMA data transfer request, RDMA programming is performed. An RDMA connection is established between the distributed file system and the GPU. Specifically, this involves using RDMA-related libraries (such as libibverbs) to initialize the RDMA device, allocate necessary resources, and establish the connection. The target physical memory address and the corresponding DMA address are registered with the RDMA device. This allows the RDMA device to identify these memory areas and allow remote access. Use the RDMA API (for example, ibv_post_send) to configure and submit RDMA data transfer requests. The RDMA engine executes the data transfer based on the RDMA data transfer request. Data is transferred directly from the storage system to the GPU's physical memory without CPU intervention.

[0086] Through the above steps, the transmission path between the distributed file system and the GPU was finally established. Because RDMA allows data to be transferred directly between memories, it avoids multiple copies of data between the CPU and system memory, significantly reducing latency and CPU load.

[0087] In an optional embodiment, determining the target location of the target data in the distributed file system based on the data operation request includes: parsing the data operation request to obtain the request content of the data operation request; determining the file handle of the file where the target data is located from the request content of the data operation request; and traversing the distributed file system based on the file handle to determine the target data and the target location of the target data in the distributed file system.

[0088] In one embodiment of the present disclosure, step S105 may include the following steps: first, the received data operation request is parsed. By parsing the request, the specific content of the request is extracted, including the file handle of the file where the target data to be accessed is located. The file handle is a reference used to uniquely identify a file and is used to quickly locate and access the file. After obtaining the file handle, the validity of the file handle can be further verified to ensure that the file it points to actually exists and is accessible. Once the file handle of the file where the target data is located is determined, the distributed file system is traversed to find the specific location of the target data. The distributed file system is interacted with through the file handle to request metadata about the file where the target data is located. Based on the structural information of the file, each part of each file in the distributed file system (such as data blocks, pages, etc.) is traversed to determine the exact location of the target data. Optionally, the file content can be indexed and located to quickly find the required data.

[0089] During the traversal process, the target location of the target data in the distributed file system is finally determined, which is a specific address or offset pointing to the storage location of the target data on the storage medium.

[0090] By parsing data operation requests, obtaining file handles, and traversing the distributed file system, the target location of the target data in the distributed file system can be effectively determined, laying the foundation for subsequent data transmission and processing.

[0091] In an optional embodiment, after determining the target physical memory address applied for in the graphics processor for the target data required to be accessed by the data operation request, the method further includes: obtaining a first mapping relationship between the physical memory address and the virtual memory address; and mapping the target physical memory address to the corresponding target virtual memory address based on the first mapping relationship.

[0092] In modern computer architectures, especially in computing environments involving GPUs, memory management utilizes a virtual memory mechanism. Virtual memory allows each process (including GPU applications) to use a logically contiguous address space, while the actual physical memory may be fragmented. This disclosure uses address mapping to translate physical memory addresses into virtual memory addresses. It should be understood that virtual memory addresses are the addresses accessed by programs at runtime. Through virtual memory addresses, programs can perceive a contiguous memory space, even if physical memory is fragmented, and even if the program can understand the specific storage location pointed to by the target physical memory address.

[0093] When processing a data operation request, the GPU file system driver parses the data operation request, obtains the request content, including detailed information of the data to be accessed, and determines the target physical memory address applied for in the GPU for the target data to be accessed by the data operation request. The present disclosure pre-configures and maintains a first mapping relationship, which can exist in the form of a form. The first mapping relationship records the relationship between the virtual memory address and the physical memory address of each process. By looking up the mapping table, the first mapping relationship between the physical memory address and the virtual memory address is obtained. Based on the first mapping relationship, the target physical memory address is converted into the target virtual memory address, which can be achieved through a simple lookup operation. The mapped target virtual memory address is used for subsequent data operation requests to ensure that the GPU application can correctly access the required data.

[0094] In an optional embodiment, determining the metadata of the RDMA data transmission request corresponding to the data operation request includes: obtaining a second mapping relationship between a virtual memory address and a DMA address; based on the second mapping relationship, mapping the target virtual memory address to a corresponding target DMA address; and determining the target DMA address as the metadata of the RDMA data transmission request.

[0095] When processing a data operation request, a second mapping relationship between the virtual memory address and the DMA address is obtained. Similar to the first mapping relationship, the second mapping relationship can also be achieved by looking up a mapping table. Based on the second mapping relationship between the virtual memory address and the DMA address, a lookup operation is performed to convert the target virtual memory address into a target DMA address. After the mapping from the virtual memory address to the DMA address is completed, the target DMA address is determined as the metadata of the RDMA data transfer request.

[0096] It should be noted that the two-level mapping (first mapping relationship and second mapping relationship) employed in the embodiments of this disclosure is designed to achieve efficient memory management and data access. Although the target physical memory address, target virtual memory address, and target DMA address all essentially point to the target data's storage location on the GPU, this two-level mapping design is crucial for implementing direct data transfer between a distributed file system and the GPU. First, the first mapping relationship (mapping the target physical memory address to the target virtual memory address) allows each process to logically have its own independent and contiguous memory space. This not only provides memory protection and prevents interference between different processes, but also enables flexible management of physical memory allocation and deallocation. Using virtual memory addresses, programs can assume they are using a contiguous block of memory, even though physical memory may actually be fragmented. This effectively enables programs to understand address references and resolves memory fragmentation. Second, the second mapping relationship (mapping the target virtual memory address to the target DMA address) is designed to optimize data transfer, particularly when using RDMA technology in distributed file systems. DMA addresses are designed specifically for direct memory access, allowing external devices to interact directly with memory without CPU intervention. By mapping virtual memory addresses to DMA addresses, efficient data transfer between GPU memory and external storage is ensured, which not only reduces the latency of data transfer but also improves bandwidth utilization, especially when processing large-scale data sets.

[0097] In an optional implementation, determining the metadata of the RDMA data transmission request corresponding to the data operation request includes: generating a corresponding RDMA data transmission request based on the data operation request; parsing the RDMA data transmission request through the distributed file system to determine the target DMA address corresponding to the graphics processor.

[0098] Taking an RDMA read request as an example, when the GPU needs to read data from the distributed file system (i.e., the data operation request is a read request), a corresponding RDMA read request is generated, containing the source data address, the target data address, and the data length. An RDMA data transfer request clearly indicates the source and destination of the data, laying the foundation for the subsequent transfer process. After receiving the RDMA data transfer request, the distributed file system parses it. It identifies the request type and first recognizes that the request is an RDMA read request, meaning that the GPU needs to read data from the storage system, meaning that the distributed storage system needs to perform a unilateral write operation. Information such as the source data address, the target data address, and the data length are extracted from the RDMA request. As previously mentioned, during the parsing of the RDMA data transfer request, a pre-maintained mapping table is searched based on the target data address to obtain a second mapping relationship between the target virtual memory address and the target DMA address. Through this lookup operation, the target virtual memory address is converted to the target DMA address.

[0099] The transmitting, in parallel, the multiple data segments from the target location in the distributed file system to the target physical memory address of the graphics processor through the at least one transmission sub-path includes: obtaining the multiple data segments of the target data from the target location in the distributed file system; copying the multiple data segments of the target data to the target DMA address; and transmitting, in parallel, the multiple data segments of the target data to the target physical memory address of the graphics processor through the at least one transmission sub-path.

[0100] In one embodiment of the present disclosure, step S106 may include the following steps: the distributed file system accesses the storage device through the network protocol, reads the required target data from the target location, and divides it into multiple data segments. Subsequently, these data segments are copied to the target DMA address, which has been mapped to a memory address that the GPU can directly access. In the previous step, the distributed file system has established a mapping relationship between the target virtual memory address and the target DMA address by parsing the RDMA request and searching the mapping table. During this process, the distributed file system uses the DMA engine to complete the segmented copy of the target data. Thanks to the one-sided write operation capability of the RDMA (Remote Direct Memory Access) protocol, the distributed file system can directly and efficiently transfer multiple data segments of the target data from the target DMA address to the target physical memory address of the GPU without passing through the CPU. The entire data transmission process forms a direct and efficient data flow path, avoiding the intermediate steps in traditional transmission methods and greatly improving transmission efficiency.

[0101] Using the RDMA protocol, data at the target DMA address is directly written unilaterally to the target physical memory address on the GPU. This process is completely transparent to the GPU application; the GPU application does not need to be aware of the data transfer process and can simply access the required data from memory in the normal manner. After the data transfer is complete, the GPU memory will fully store multiple data segments of the target data obtained from the distributed file system. These data segments can be directly used by the GPU application for subsequent computing tasks without additional data processing steps.

[0102] In an optional embodiment, after transmitting the multiple data segments of the target data in parallel from the target location in the distributed file system to the target physical memory address of the graphics processor through the at least one transmission sub-path based on the respective target transmission protocols of the multiple data segments of the target data, the method further includes: upon detecting that the multiple data segments of the target data are completely transmitted to the target physical memory address of the graphics processor, returning a response signal indicating that the request execution is completed; and updating the execution status of the data operation request in response to the response signal.

[0103] After confirming that multiple segments of the target data have been completely transferred to the target physical memory address of the graphics processor, a response signal is returned to the GPU application, indicating that the request has been completed. The response signal can be a simple confirmation message that may include a status code (such as success or failure) and relevant descriptive information. The response signal is sent back to the GPU application that initiated the data request to inform it that the data transfer has been successfully completed. After receiving the response signal, the GPU application updates the execution status of the data operation request to reflect the current operation result. For example, if the response signal indicates that the data transfer was successful, the application updates the status to "Complete"; if the signal indicates failure, it may update the status to "Failed" and perform appropriate error handling.

[0104] The above steps effectively confirm the integrity of data transmission and promptly provide feedback on execution status to the GPU application. This not only improves data transmission reliability but also ensures that subsequent operations are executed in the correct state, thereby improving overall system efficiency and stability.

[0105] In an optional embodiment, the method further includes: implementing a data integrity check during the transmission process, including: generating a checksum of the target data before transmission, and recalculating the checksum of the transmitted data after the transmission is completed; if the checksum matches, confirming the integrity of the target data and updating the corresponding execution status; if it does not match, performing a retransmission operation.

[0106] Before the multiple data segments of the target data are transmitted from the distributed file system, they are pre-processed to generate their checksums. Checksums are a simple and widely used data integrity check method that can quickly help detect errors in data transmission. Subsequently, the multiple data segments of the target data are transmitted from the target location in the distributed file system to the target physical memory address of the graphics processor via at least one transmission sub-path of a pre-established transmission path. After the data is successfully transmitted to the target memory address of the graphics processor, the checksums of the received multiple data segments are recalculated to compare the data before and after the transmission to ensure consistency and verify the data integrity.

[0107] If the recalculated checksum after the transmission completes matches the checksum generated before the transmission, the integrity of the target data transmission process has been guaranteed. At this point, the execution status of the data operation request is updated, and a successful response signal is returned to the upper-layer application, ensuring the closed loop of the request link. If the checksum does not match, it indicates that data corruption or loss occurred during the transmission process. In this case, the retransmission mechanism is automatically triggered to attempt to transmit the data again. This reduces calculation errors and subsequent processing issues caused by transmission errors, and improves the robustness of the request processing process.

[0108] The integrity checking method disclosed in this paper, which implements checksum comparisons during transmission, is an effective error detection and correction strategy. This allows users to be more confident when processing large amounts of data and mitigates the impact of potential errors. It is particularly suitable for data transmission scenarios requiring high reliability, such as modern high-performance computing systems and complex, data-intensive applications.

[0109] Figure 3 This is a diagram of a data transmission architecture of a request processing system provided according to an embodiment of the present disclosure. Figure 3 As shown, the steps for executing a request processing method include: a graphics processor file system driver, a file system client, and a distributed file system; the file system client is deployed with a network card and a graphics processor, and the graphics processor is connected to the distributed file system through the network card;

[0110] The graphics processor file system driver is configured to, in response to a data operation request, determine a target physical memory address in the graphics processor for target data to be accessed by the data operation request;

[0111] The file system client is configured to establish a transmission path between the distributed file system and the graphics processor based on the target physical memory address, wherein the transmission path includes at least one transmission sub-path; divide the target data into a plurality of data segments having different data attributes, wherein the data attributes include at least data size, data type, and priority; select corresponding target transmission protocols for the plurality of data segments based on the data size and data type of each of the plurality of data segments of the target data, and allocate the plurality of data segments to different transmission sub-paths based on the task load of each of the at least one transmission sub-path and the priorities of the plurality of data segments; and determine a target location of the target data in the distributed file system based on the data operation request;

[0112] Based on the target transmission protocols of the multiple data segments of the target data, the multiple data segments are transmitted in parallel from the target locations in the distributed file system to the target physical memory addresses of the graphics processor through the at least one transmission sub-path.

[0113] See Figure 3 This disclosure configures a GPU file system driver (graphics processor file system driver) between the user state and the VFS layer of the compute node. The GPU file system driver is responsible for processing file operation requests from GPU applications and determining the physical address of the target data in the GPU memory, namely the target physical memory address. The file system client, acting as an intermediary between the GPU and the distributed file system, is responsible for establishing a data transmission path and determining the location of the target data in the distributed file system. The network card is used for network communication, connecting the file system client and the distributed file system through a high-speed network layer to ensure data transmission between the two.

[0114] The request processing method provided in the embodiments of the present disclosure can be applied to checkpoint read and write operations based on AIGC large model training. The following uses checkpoint as the target data to be accessed by the data operation request and the data operation request as a read request as an example to illustrate the request processing process of the present disclosure. Figure 3 First, in response to a read request (data operation request) for the checkpoint file (target data), the GPU application calls the operating system's file system interface to open the checkpoint file through a standard file open operation, returning the corresponding file handle as the checkpoint file identifier. Next, the GPU application calls the GPU platform's API to register the file handle with the GPU platform, allowing the GPU platform to identify the relationship between the checkpoint file and GPU computations and provide necessary support for subsequent GPU memory operations.

[0115] The GPU application then requests the GPU's target physical memory address to store the checkpoint file. After successfully requesting the target physical memory address, the GPU application initiates a data read request. The GPU application calls the GPU platform API, passing in the GPU's target physical memory address for the checkpoint file and the length of the data to be read. After receiving the GPU application's data read request, the GPU file system driver processes the target physical memory address. Because the VFS layer supports and understands virtual addresses, and actual hardware memory has different mappings, the GPU file system driver maps the target physical memory address to the corresponding target virtual memory address. At this point, the GPU file system driver initiates a read request to the VFS layer and passes the GPU memory's target virtual memory address and other relevant information to the VFS.

[0116] After receiving a read request from the GPU file system driver, the VFS layer passes the request and parameters down to the distributed file system driver. At this point, the VFS layer is responsible for forwarding the target virtual address of the GPU memory, the data read length, and other information to the distributed file system client (file system client).

[0117] After receiving a read request from the VFS layer, the file system client first calls the GPU file system driver to obtain the DMA address corresponding to the target virtual memory address. The DMA address is used for direct memory access, ensuring that data can be transferred directly to GPU memory via a high-speed channel. The file system client then obtains the RDMA key and other related information from the IB Verbs library. Through RDMA programming, an RDMA connection is established between the file system client and the distributed file system service, and an RDMA read request is initiated to transfer the target data from the distributed file system to the target physical memory.

[0118] After receiving an RDMA read request from a file system client, the distributed file system service first parses the DMA address in the RDMA read request to determine where the data should be stored. The distributed file system service then writes the data unilaterally to the DMA address using the RDMA protocol. Once the data transfer is complete, the distributed file system service sends a completion response to the file system client, indicating that the data has been successfully transferred to GPU memory.

[0119] When the file system client receives the completion response from the distributed file system service, it notifies the GPU file system driver that the data has been successfully copied to GPU memory. At this point, the file system client returns to the VFS layer, which in turn returns to the GPU file system driver layer. The GPU file system driver layer completes the final stage of the data transfer process, ensuring that the GPU application can access the required data.

[0120] Finally, the GPU file system driver returns a message to the GPU application confirming the data read completion. The GPU application can then begin using the data loaded from the distributed file system into GPU memory and continue training. At this point, the GPU application's read request is complete.

[0121] During the checkpoint write phase, the entire process is the reverse of the read phase. The GPU application writes data from GPU memory to the checkpoint file. After coordinated operations between the GPU file system driver, the VFS layer, the file system client, and the distributed file system service, the data is ultimately saved back to the distributed storage system. This is not detailed here.

[0122] As can be seen, in this architecture, the GPU application is responsible for specific training tasks and data processing. The GPU lib library provides GPU-related operation interfaces and functional support. The GPU file system driver handles data exchange between the GPU and the file system. The VFS layer provides a unified file system interface that supports different file systems. The file system client is responsible for communicating with the distributed file system, including the network card, PCIe, and GPU. The distributed file system stores and manages the data required by the GPU.

[0123] The present disclosure also makes corresponding extensions to the GPU lib library, file system client, and distributed file system. The main purpose of extending the GPU lib library is to provide GPU applications with richer functional interfaces to facilitate file reading and writing and GPU memory allocation. Specifically, the GPU lib library will provide a series of APIs that allow GPU applications to directly read and write files. These APIs will simplify the complexity of file operations, allowing developers to process data more conveniently without having to worry about the underlying implementation details. In addition to file operations, the library will also include APIs for GPU memory allocation. These APIs will allow GPU applications to dynamically apply for and release GPU memory as needed, ensuring efficient use of memory. When a GPU application calls these APIs for file reading and writing or memory allocation, the library will initiate a request to the GPU file system driver module. This mechanism ensures that GPU applications can efficiently interact with the file system and obtain the required data and memory resources.

[0124] The file system client extension is designed to enhance its interaction with the GPU file system driver module. The file system client will support interaction with the GPU file system driver module to implement mapping conversions between GPU virtual addresses and GPU physical memory. This function ensures that the system can accurately locate the required memory address during data transfer, thereby improving data access efficiency. The file system client will support and apply RDMA (Remote Direct Memory Access) technology, allowing data to be transferred directly between memories without passing through the CPU, thereby reducing latency and CPU load. When initiating read and write requests, the file system client will control the data to include GPU DMA address information and send this information to the file system service for efficient data transfer.

[0125] The Distributed File System service has been expanded primarily to support RDMA technology, enabling efficient data read and write request processing. The Distributed File System service will be able to respond to data read and write requests from file system clients via RDMA communication. This means that when clients initiate data transfer requests, the file system service can quickly process and respond to these requests. Through one-way RDMA write operations, the Distributed File System service can copy data directly to the GPU's DMA address without requiring CPU transfer.

[0126] In an optional embodiment, the file system client is configured to determine metadata of an RDMA data transmission request corresponding to the data operation request, the metadata of the RDMA data transmission request including at least a target DMA address corresponding to the target physical memory address; and perform RDMA programming based on the metadata of the RDMA data transmission request to generate a transmission path between the distributed file system and the graphics processor.

[0127] The distributed file system is configured to generate a corresponding RDMA data transmission request according to the data operation request; and parse the RDMA data transmission request through the distributed file system to determine a target DMA address corresponding to the graphics processor;

[0128] The distributed file system is further configured to obtain the target data from a target location in the distributed file system; copy the target data to the target DMA address; and transmit the target data to a target physical memory address of the graphics processor via the transmission path.

[0129] In this disclosure, a file system client is responsible for processing data operation requests and determining the metadata for the corresponding RDMA data transfer request. This metadata includes at least the target DMA address corresponding to the target physical memory address. Using this metadata, the file system client performs RDMA programming to establish an efficient data transfer path between the distributed file system and the graphics processing unit (GPU). Specifically, upon receiving a data operation request, the file system client first parses the request and generates a corresponding RDMA data transfer request, which includes the target DMA address information. This ensures that the data can be directly transferred to the GPU's physical memory without CPU intervention. Subsequently, the distributed file system determines the target DMA address required by the GPU based on the RDMA data transfer request and retrieves the required data from the target location in the storage system. Once the data is successfully retrieved, the distributed file system copies the data to the predetermined target DMA address. Using the previously established RDMA transfer path, the target data is rapidly transferred to the GPU's target physical memory address. This process significantly reduces data transmission latency and improves data processing efficiency, enabling the GPU to quickly access and process the required data, thereby enhancing overall system performance, especially for computationally intensive tasks such as large-scale model training. Through the above approach, the present disclosure effectively optimizes the flow of data between the distributed file system and the GPU, reduces the burden on the CPU and improves IO bandwidth.

[0130] Those skilled in the art will appreciate that the embodiments of the present disclosure can be provided as methods, apparatuses, electronic devices, and storage media. Therefore, the embodiments of the present disclosure can take the form of entirely hardware embodiments, entirely software embodiments, or embodiments combining software and hardware aspects. Furthermore, the embodiments of the present disclosure can take the form of a computer program product implemented on one or more computer-readable storage media (including but not limited to magnetic disk storage, CD-ROMs, optical storage, etc.) containing computer-usable program code.

[0131] The embodiments of the present disclosure are described with reference to the flowcharts and / or block diagrams of the methods and systems according to the embodiments of the present disclosure. It should be understood that each process and / or block in the flowchart and / or block diagram, as well as the combination of the processes and / or blocks in the flowchart and / or block diagram, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, an embedded processor, or other programmable data processing terminal device to produce a machine, so that the instructions executed by the processor of the computer or other programmable data processing terminal device generate instructions for implementing the processes in the flowchart and / or block diagram. Figure 1 a process or multiple processes and / or boxes Figure 1These computer program instructions can also be stored in a computer readable memory that can guide a computer or other programmable data processing terminal device to work in a specific way, so that the instructions stored in the computer readable memory produce a product including an instruction device, which implements the functions specified in the process. Figure 1 a process or multiple processes and / or boxes Figure 1 These computer program instructions can also be loaded onto a computer or other programmable data processing terminal device, so that a series of operation steps are executed on the computer or other programmable terminal device to produce a computer-implemented process, thereby providing instructions for implementing the process in the process. Figure 1 a process or multiple processes and / or boxes Figure 1 The steps for the function specified in one or more boxes.

[0132] Although the preferred embodiments of the present disclosure have been described, those skilled in the art may make additional changes and modifications to these embodiments once they are aware of the basic creative concepts. Therefore, the appended claims are intended to be interpreted as including the preferred embodiments and all changes and modifications that fall within the scope of the present disclosure.

[0133] Finally, it should be noted that, in this document, relational terms such as first and second are used solely to distinguish one entity or operation from another, and do not necessarily require or imply any actual relationship or order between these entities or operations. Furthermore, the term "comprising" or any other variant thereof is intended to encompass non-exclusive inclusion, such that a process, method, article, or terminal device comprising a series of elements includes not only those elements but also other elements not explicitly listed, or elements inherent to such process, method, article, or terminal device. Without further limitation, elements defined by the phrase "comprising..." do not preclude the presence of additional identical elements in the process, method, article, or terminal device comprising the elements. The above detailed description of a request processing method and system provided by the present disclosure has been used. Specific examples have been used herein to illustrate the principles and implementation methods of the present disclosure. The description of the above examples is intended only to facilitate understanding of the method and its core concepts. Furthermore, those skilled in the art will appreciate that variations in the specific implementation methods and scope of application are possible based on the concepts of the present disclosure. In summary, the contents of this specification should not be construed as limiting the present disclosure.

Claims

1. A request processing method, characterized in that: The method comprises: In response to a data operation request, determining a target physical memory address requested in a graphics processor for target data to be accessed by the data operation request; Establishing a transmission path between a distributed file system and the graphics processor based on the target physical memory address, wherein the transmission path includes at least one transmission sub-path; Dividing the target data into a plurality of data segments with different data attributes, wherein the data attributes include at least: data size, data type and priority; selecting corresponding target transmission protocols for the plurality of data segments of the target data according to respective data sizes and data types of the plurality of data segments, and allocating the plurality of data segments to different transmission subpaths based on respective task loads of the at least one transmission subpath and respective priorities of the plurality of data segments; Determining a target location of the target data in the distributed file system according to the data operation request; Based on the target transmission protocols of the multiple data segments of the target data, the multiple data segments are transmitted in parallel from the target locations in the distributed file system to the target physical memory addresses of the graphics processor through the at least one transmission sub-path.

2. The method according to claim 1, characterized in that The step of establishing a transmission path between the distributed file system and the graphics processor based on the target physical memory address includes: Determine meta information of an RDMA data transmission request corresponding to the data operation request, where the meta information of the RDMA data transmission request includes at least a target DMA address corresponding to the target physical memory address; RDMA programming is performed based on the metadata of the RDMA data transmission request to generate a transmission path between the distributed file system and the graphics processor.

3. The method according to claim 2, characterized in that The determining of the metadata of the RDMA data transmission request corresponding to the data operation request includes: Generate a corresponding RDMA data transmission request according to the data operation request; Parsing the RDMA data transmission request through the distributed file system to determine a target DMA address corresponding to the graphics processor; The transmitting, in parallel, the plurality of data segments from the target location in the distributed file system to the target physical memory address of the graphics processor through the at least one transmission sub-path includes: Acquire a plurality of data segments of the target data from a target location in the distributed file system; The multiple data segments of the target data are copied to the target DMA address, and the multiple data segments of the target data are transmitted in parallel to the target physical memory address of the graphics processor through the at least one transmission sub-path.

4. The method according to claim 2, characterized in that After determining the target physical memory address of the target data to be accessed by the data operation request in the graphics processor, the method further includes: Obtaining a first mapping relationship between a physical memory address and a virtual memory address; Based on the first mapping relationship, mapping the target physical memory address to a corresponding target virtual memory address; The determining of the metadata of the RDMA data transmission request corresponding to the data operation request includes: Obtaining a second mapping relationship between the virtual memory address and the DMA address; Based on the second mapping relationship, mapping the target virtual memory address to a corresponding target DMA address; The target DMA address is determined as the meta-information of the RDMA data transmission request.

5. The method according to claim 1, wherein The selecting corresponding target transmission protocols for the plurality of data segments according to the data size and data type of each of the plurality of data segments of the target data, and allocating the plurality of data segments to different transmission subpaths based on the task load of each of the at least one transmission subpath and the priorities of the plurality of data segments, includes: Dividing the plurality of data segments of the target data into a first category of data segments and a second category of data segments according to respective data sizes and data types of the plurality of data segments, wherein the data size of the first category of data segments is less than a first preset threshold and the data type is real-time data, and the data size of the second category of data segments is greater than the first preset threshold and the data type is non-real-time data, the real-time data at least including audio and video data or control data, and the non-real-time data at least including file data and backup data; determining the User Datagram Protocol as a target transmission protocol for the first type of data segments, and determining the Transmission Control Protocol as a target transmission protocol for the second type of data segments; According to the respective priorities of the multiple data segments, the multiple data segments are allocated to different transmission sub-paths, wherein the data segments with a priority higher than the second preset threshold are preferentially allocated to the transmission sub-path with a task load lower than the third preset threshold, and the data segments with a priority lower than the second preset threshold are preferentially allocated to the transmission sub-path with a task load higher than the third preset threshold.

6. The method according to claim 1, wherein Determining a target location of the target data in the distributed file system according to the data operation request includes: Parsing the data operation request to obtain the request content of the data operation request; Determining a file handle of a file where the target data is located from the request content of the data operation request; The distributed file system is traversed according to the file handle to determine the target data and the target location of the target data in the distributed file system.

7. The method according to claim 1, characterized in that The step of determining, in response to the data operation request, a target physical memory address requested in the graphics processor for target data to be accessed by the data operation request includes: Parsing the data operation request to obtain the request content of the data operation request; Determining a memory address requested in the graphics processor and a data length of the target data from the request content of the data operation request; A corresponding target physical memory address in the graphics processor is determined according to the memory address requested in the graphics processor and the data length of the target data.

8. The method according to claim 1, characterized in that After transmitting the plurality of data segments of the target data in parallel from target locations in the distributed file system to target physical memory addresses of the graphics processor through the at least one transmission sub-path based on respective target transmission protocols of the plurality of data segments of the target data, the method further includes: Returning a response signal indicating that the request is completed when it is detected that the multiple data segments of the target data are completely transferred to the target physical memory address of the graphics processor; In response to the response signal, an execution status of the data operation request is updated.

9. A request processing system, characterized in that: The steps for executing the request processing method according to any one of claims 1 to 8 include: a graphics processor file system driver, a file system client, and a distributed file system; the file system client is deployed with a network card and a graphics processor, and the graphics processor is connected to the distributed file system via the network card; The graphics processor file system driver is configured to, in response to a data operation request, determine a target physical memory address in the graphics processor for target data to be accessed by the data operation request; The file system client is configured to establish a transmission path between the distributed file system and the graphics processor based on the target physical memory address, wherein the transmission path includes at least one transmission sub-path; divide the target data into a plurality of data segments having different data attributes, wherein the data attributes include at least data size, data type, and priority; select corresponding target transmission protocols for the plurality of data segments based on the data size and data type of each of the plurality of data segments of the target data, and allocate the plurality of data segments to different transmission sub-paths based on the task load of each of the at least one transmission sub-path and the priorities of the plurality of data segments; and determine a target location of the target data in the distributed file system based on the data operation request; Based on the target transmission protocols of the multiple data segments of the target data, the multiple data segments are transmitted in parallel from the target locations in the distributed file system to the target physical memory addresses of the graphics processor through the at least one transmission sub-path.

10. The system according to claim 9, characterized in that The file system client is configured to determine meta information of an RDMA data transmission request corresponding to the data operation request, wherein the meta information of the RDMA data transmission request at least includes a target DMA address corresponding to the target physical memory address; Perform RDMA programming based on the metadata of the RDMA data transmission request to generate a transmission path between the distributed file system and the graphics processor; The distributed file system is configured to generate a corresponding RDMA data transmission request according to the data operation request; and parse the RDMA data transmission request through the distributed file system to determine a target DMA address corresponding to the graphics processor; The distributed file system is further configured to obtain the target data from a target location in the distributed file system; The target data is copied to the target DMA address, and the target data is transmitted to the target physical memory address of the graphics processor through the transmission path.

Citation Information

Patent Citations

  • Network video service method for multi-channel path processing

    CN116916063A

  • Communication request processing method and device, electronic equipment and storage medium

    CN117978877A