Data transmission method and device based on VRB protocol learning model

By using the RDMA interface for data transmission in the video network environment, the problems of data transmission efficiency and security in the video network are solved, and efficient and secure data processing performance is achieved.

CN119946012APending Publication Date: 2025-05-06VISIONVERA INFORMATION TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202510057870.0
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-01-14
Publication Date
2025-05-06

AI Technical Summary

Technical Problem

How to effectively use RDMA technology for data transmission in visual networking is an urgent problem to be solved.

Method used

After establishing a visual network connection with the server, the call application layer module sends read or write work requests through the RDMA interface. The user-state driver converts the destination IP address to obtain the target IPv6 address. The kernel-state driver parses the virtual memory address and performs data encapsulation processing, and sends the target data packet to the server through the visual network protocol stack.

Benefits of technology

It realizes the unsensed data transmission of RDMA technology in visual networking, improves data processing performance, and improves data security through visual networking.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119946012A_ABST
    Figure CN119946012A_ABST
Patent Text Reader

Abstract

The invention provides a data transmission method and device based on a VRB protocol learning model. The method comprises the following steps: after an articulated naturality web connection with a server is established, calling an application layer module to send a reading work request through an RDMA interface; calling the user mode driver to convert a destination IP address in the reading work request to obtain a target IPv6 address corresponding to the articulated naturality web number of the server; and calling the kernel mode driver to read specified data from a pre-registered virtual memory according to a virtual memory address obtained by analyzing the reading work request, packaging the specified data to obtain a target data packet, and sending the target data packet to the server through an articulated naturality web protocol stack according to the target IPv6 address, and sending the target data packet to the server, analyzing the target data packet by the server to obtain the specified data, and writing the specified data into a specified address of a virtual memory in the server.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of data isolation technology, and in particular to a data transmission method and device based on a VRB protocol learning model. Background Art

[0002] RDMA (Remote Direct Memory Access) is an ultra-high-speed network memory access technology that can bypass the traditional operating system kernel to achieve efficient data transmission. As deep learning models become more and more complex and the number of model parameters increases, a single GPU (Graphic Processing Unit) server is increasingly unable to meet the model parameter size storage requirements and training iteration speed requirements. Distributed multi-machine and multi-card training has basically become a necessity. As the underlying communication technology in the era of large models of AI (Artificial Intelligence), RDMA networks need to play a more important role.

[0003] How to use RDMA technology for data transmission in visual networking is an urgent problem to be solved. Summary of the invention

[0004] In view of the above problems, embodiments of the present application are proposed to provide a data transmission method and device based on a VRB protocol learning model that overcomes the above problems or at least partially solves the above problems.

[0005] In a first aspect, an embodiment of the present application provides a data transmission method based on a VRB protocol learning model, which is applied to a client, wherein the client includes: an application layer module, a user state driver, and a kernel state driver, and the method includes:

[0006] After establishing a visual network connection with the server, calling the application layer module to send a read work request through the RDMA interface;

[0007] Calling the user-mode driver to convert the destination IP address in the read work request to obtain the target IPv6 address corresponding to the visual network number of the server;

[0008] The kernel-mode driver is called to read designated data from a pre-registered virtual memory according to the virtual memory address obtained by parsing the read work request, the designated data is encapsulated and processed to obtain a target data packet, and the target data packet is sent to the server through the visual networking protocol stack according to the target IPv6 address, so that the server can parse the target data packet, obtain the designated data, and write the designated data to the designated address of the virtual memory in the server.

[0009] In a second aspect, an embodiment of the present application provides a data transmission method based on a VRB protocol learning model, which is applied to a client, wherein the client includes: an application layer module, a user state driver, and a kernel state driver, and the method includes:

[0010] After establishing a visual network connection with the server, calling the application layer module to send a write work request through the RDMA interface;

[0011] Calling the user-mode driver to convert the destination IP address in the write work request to obtain the target IPv6 address corresponding to the visual network number of the server;

[0012] Calling the kernel-mode driver to obtain the remote virtual address and data length of the server according to parsing the write work request, generating an RDMA read request, and sending the RDMA read request to the server according to the target IPv6 address through the visual networking protocol stack, so that the server parses the RDMA read request to obtain the remote virtual address and the data length, and reads the specified data from the virtual memory of the server according to the remote virtual address and the data length;

[0013] The kernel-mode driver is called to obtain a target data packet corresponding to the designated data sent by the server through the visual networking protocol stack, and the designated data obtained by parsing the target data packet is written into the local virtual memory.

[0014] In a third aspect, an embodiment of the present application provides a data transmission device based on a VRB protocol learning model, which is applied to a client, wherein the client includes: an application layer module, a user state driver, and a kernel state driver, and the device includes:

[0015] A read request sending module, used to call the application layer module to send a read work request through the RDMA interface after establishing a visual network connection with the server;

[0016] A target address acquisition module is used to call the user state driver to convert the destination IP address in the read work request to obtain the target IPv6 address corresponding to the visual network number of the server;

[0017] A data sending module is used to call the kernel-mode driver to read specified data from a pre-registered virtual memory according to the virtual memory address obtained by parsing the read work request, encapsulate and process the specified data to obtain a target data packet, and send the target data packet to the server through the visual networking protocol stack according to the target IPv6 address, so that the server can parse the target data packet, obtain the specified data, and write the specified data to the specified address of the virtual memory in the server.

[0018] In a fourth aspect, an embodiment of the present application provides a data transmission device based on a VRB protocol learning model, which is applied to a client, wherein the client includes: an application layer module, a user state driver, and a kernel state driver, and the device includes:

[0019] A write request sending module, used to call the application layer module to send a write work request through the RDMA interface after establishing a visual network connection with the server;

[0020] A target IPv6 address acquisition module is used to call the user-mode driver to convert the destination IP address in the write work request to obtain the target IPv6 address corresponding to the visual network number of the server;

[0021] A read request sending module, used for calling the kernel-mode driver to obtain the remote virtual address and data length of the server according to the analysis of the write work request, generating an RDMA read request, and sending the RDMA read request to the server according to the target IPv6 address through the visual networking protocol stack, so that the server can parse the RDMA read request to obtain the remote virtual address and the data length, and read the specified data from the virtual memory of the server according to the remote virtual address and the data length;

[0022] The designated data writing module is used to call the kernel-mode driver to obtain the target data packet corresponding to the designated data sent by the server through the visual networking protocol stack, and write the designated data obtained by parsing the target data packet into the local virtual memory.

[0023] In a fifth aspect, an embodiment of the present application provides an electronic device, including:

[0024] one or more processors; and

[0025] One or more machine-readable media having instructions stored thereon, when executed by the one or more processors, enable the apparatus to perform any of the above-mentioned data transmission methods based on the VRB protocol learning model.

[0026] In a sixth aspect, an embodiment of the present application provides a computer-readable storage medium, which stores a computer program that enables a processor to execute any of the data transmission methods based on the VRB protocol learning model described above.

[0027] The embodiments of the present application include the following advantages:

[0028] The solution provided by the embodiment of the present application is to call the application layer module to send a read work request through the RDMA interface after establishing a visual network connection with the server. The user-state driver is called to convert the destination IP address in the read work request to obtain the target IPv6 address corresponding to the visual network number of the server. The kernel-state driver is called to read the specified data from the pre-registered virtual memory according to the virtual memory address obtained by parsing the read work request, encapsulate the specified data, obtain the target data packet, and send the target data packet to the server according to the target IPv6 address through the visual network protocol stack, so that the target data packet is parsed by the server to obtain the specified data, and write the specified data to the specified address of the virtual memory in the server. The embodiment of the present application converts the destination IP address in the read work request through the user-state driver to obtain the target IPv6 address corresponding to the visual network number of the server, thereby ensuring that the application layer module can use the RDMA interface without perception, achieving the purpose of using RDMA technology for data transmission in the visual network, improving data processing performance, and improving data security through visual network transmission. BRIEF DESCRIPTION OF THE DRAWINGS

[0029] Figure 1 A flowchart of a data transmission method based on a VRB protocol learning model provided in an embodiment of the present application;

[0030] Figure 2 A flowchart of a method for sending a read work request provided in an embodiment of the present application;

[0031] Figure 3 A flowchart of a method for reading specified data provided in an embodiment of the present application;

[0032] Figure 4 A flowchart of a method for sending a data packet provided in an embodiment of the present application;

[0033] Figure 5 A flowchart of another data transmission method based on a VRB protocol learning model provided in an embodiment of the present application;

[0034] Figure 6 A flowchart of a method for writing specified data provided in an embodiment of the present application;

[0035] Figure 7 A schematic diagram of a virtual address and a physical address conversion provided in an embodiment of the present application;

[0036] Figure 8 An architecture diagram of a deep learning model supported by the VRB protocol provided in an embodiment of the present application;

[0037] Fig. 9A structural diagram of a data transmission device based on a VRB protocol learning model provided in an embodiment of the present application;

[0038] Fig.10 A structural diagram of another data transmission device based on a VRB protocol learning model provided in an embodiment of the present application. DETAILED DESCRIPTION

[0039] In order to make the above-mentioned objects, features and advantages of the present application more obvious and easy to understand, the present application is further described in detail below in conjunction with the accompanying drawings and specific implementation methods.

[0040] Reference Figure 1 , shows a flow chart of the steps of a data transmission method based on a VRB protocol learning model provided by an embodiment of the present application, which is applied to a client, and the client includes: an application layer module, a user state driver, and a kernel state driver. Figure 1 As shown, the data transmission method based on the VRB protocol learning model may include: step 101, step 102 and step 103.

[0041] Step 101: After establishing a visual network connection with the server, call the application layer module to send a read work request through the RDMA interface.

[0042] The embodiments of the present application can be applied to a client that joins the visual network, that is, the execution subject is the client, and the client may include: an application layer module, a user-mode driver, and a kernel-mode driver.

[0043] Before the client and the server perform data transmission, a visual network connection can be established with the server. When the devices on the client and the server are started, their visual network protocol stacks must first complete the entry into the visual network. Apply for entry into the visual network according to the configured MAC address and obtain the visual network number. Convert the obtained visual network number into an IPv6 address, and set the network card IPv6 address and IPv4 address. It can be understood that the IPv6 address of the set network card can be the same as the IPv6 address obtained by converting the visual network number. The connection establishment process for the client and the server to perform data transmission through the visual network can include the following steps:

[0044] 1. The application layer modules of the client and server call the memory registration interface of the RDMA API, which contains the PD (Protection Domain) pointer, the actual starting virtual address, the actual length, and the L_key (local key) and R_key (remote key) related to permissions. Then it will enter the user mode driver through callback.

[0045] 2. The client user-state driver receives the connection information, determines the network port device information used, and the IP address used. If it is an IPv4 address, it needs to be switched to an IPv6 address information. When the user-state driver registers the MR (Memory Region), the framework function is used to implement the conversion of the interaction between the user-state driver and the kernel-state driver.

[0046] 3. After receiving the data, the client kernel driver first detects the data and records the length of the MR, the starting virtual address, and the permissions. Then the data calls the visual networking protocol stack.

[0047] 4. The client's video network protocol stack obtains the data, first converts the target IPv6 address into a video network number, determines the legitimacy of the target address, and then applies to establish a video call with the target address.

[0048] 5. The video networking protocol stack on the server side obtains the videophone application, determines its videophone resources, allocates idle resources, and returns the videophone channel to the client.

[0049] 6. The client's video networking protocol stack receives the videophone channel, then encapsulates the RDMA connection request and sends data.

[0050] 7. The server receives the connection request information from the networking protocol stack, extracts the RDMA data, sends it to the kernel driver for data processing, and extracts the remote MR information. Finally, the information is sent to the user driver, and the application layer module of the server returns the IPv6 message confirmation information for the IPv6 connection request.

[0051] 8. The client-side visual networking protocol stack receives the confirmation information, extracts the confirmation information and sends it to the kernel-mode driver, which then sends it to the user-mode driver and finally to the application layer module. The application layer module obtains the confirmation information and responds to the Reply message with a Ready to Use (RTU) message. During the connection initialization process, the client's working state changes from the initial ready to send state to the ready to receive state.

[0052] After the connection is initiated, the application layer module on the client can start the RDMA write or read process for data transfer.

[0053] When performing data reading operations, the application layer module can be called to send a read work request through the RDMA interface. Figure 2 This is described in detail as follows.

[0054] Reference Figure 2 , shows a flowchart of a method for sending a read work request provided by an embodiment of the present application. Figure 2As shown, the method for sending a read work request may include: step 201, step 202 and step 203.

[0055] Step 201: Call the application layer module to obtain local virtual memory information and remote virtual memory information through the RDMA interface, wherein the local virtual memory information includes: the starting virtual address, data length and local virtual memory key of the client's virtual memory, and the remote virtual memory information includes: the remote virtual address and remote virtual memory key of the server.

[0056] In this example, the application layer module can be called to obtain local virtual memory information and remote virtual memory information through the RDMA interface. The local virtual memory information may include: the starting virtual address, data length and local virtual memory key of the client's virtual memory, and the remote virtual memory information may include: the remote virtual address and remote virtual memory key of the server.

[0057] The starting virtual address is the starting position for reading data in the client virtual memory, the data length is the length of the data read from the starting virtual address, and the local virtual memory key is a key used for security verification to ensure that only authorized users or processes can access this memory.

[0058] The remote virtual address is the target location for storing data in the server virtual memory, and the remote virtual memory key is a security verification key.

[0059] Step 202: Generate the read work request according to the local virtual memory information, the remote virtual memory information and the destination IP address of the server.

[0060] After obtaining the local virtual memory information and the remote virtual memory information, a read work request may be generated according to the local virtual memory information, the remote virtual memory information and the destination IP address of the server.

[0061] Step 203: Send the read work request to the user mode driver.

[0062] Then, a read work request can be sent to the user mode driver.

[0063] The embodiment of the present application uses RDMA technology to bypass the operating system kernel and directly transmit data between user-mode applications, which can significantly reduce the delay and overhead of data transmission. Since RDMA can directly handle data transmission, it reduces the involvement of the CPU in the data transmission process, thereby improving the overall performance and resource utilization of the system.

[0064] After the application layer module is called to send a read work request through the RDMA interface, step 102 is executed.

[0065] Step 102: Call the user-mode driver to convert the destination IP address in the read work request to obtain the target IPv6 address corresponding to the visual network number of the server.

[0066] After the user-mode driver receives the read work request sent by the application layer module, first, the target IP address in the read work request can be converted to the target IPv6 address corresponding to the visual network number of the server.

[0067] The embodiment of the present application converts the destination IP address in the read work request into the target IPv6 address corresponding to the visual network number of the server through a user-mode driver, thereby ensuring that the communicating parties can transmit data in accordance with the protocols and rules of the visual network.

[0068] After calling the user-mode driver to convert the destination IP address in the read work request and obtaining the target IPv6 address corresponding to the visual network number of the server, execute step 103.

[0069] Step 103: Call the kernel-mode driver to read specified data from the pre-registered virtual memory according to the virtual memory address obtained by parsing the read work request, encapsulate and process the specified data to obtain a target data packet, and send the target data packet to the server through the visual networking protocol stack according to the target IPv6 address, so that the server can parse the target data packet, obtain the specified data, and write the specified data to the specified address of the virtual memory in the server.

[0070] After calling the user-mode driver to convert the destination IP address in the read work request and obtain the target IPv6 address corresponding to the server's visual network number, the kernel-mode driver can be called to parse the read work request to obtain the virtual memory address and read the specified data from the pre-registered virtual memory according to the virtual memory address. Figure 3 This is described in detail as follows.

[0071] Reference Figure 3 , shows a flowchart of a method for reading specified data provided by an embodiment of the present application. Figure 3 As shown, the designated data reading method may include: step 301, step 302 and step 303.

[0072] Step 301: calling the kernel-mode driver to parse the read work request, and obtaining the starting virtual address, data length and local virtual memory key of the local virtual memory.

[0073] In this embodiment, the user state driver transmits the read work request to the kernel state driver, which is responsible for parsing the request and extracting the starting virtual address of the local virtual memory, the data length and the local virtual memory key.

[0074] Step 302: Verify the local virtual memory key to obtain a verification result.

[0075] The kernel-mode driver uses a mechanism (such as key storage or encryption algorithm) to verify the extracted local virtual memory key. This verification process is designed to ensure that the request is legitimate and that the requester has the right to access the specified local virtual memory area, that is, to verify the legitimacy of the request and data access rights.

[0076] Step 303: When the verification result indicates that the verification is passed, the designated data is read from the local virtual memory according to the starting virtual address and the data length.

[0077] If the verification result indicates that the verification is passed, that is, the key is valid and the requester has access rights, then the kernel-mode driver will continue to perform the next step, that is, if the verification is passed, the kernel-mode driver reads the specified data from the local virtual memory according to the starting virtual address and data length. This process usually involves direct access to the memory, and because it is performed in the kernel mode, it has higher permissions and efficiency.

[0078] The embodiment of the present application can realize an efficient, safe and reliable data reading function by calling a kernel-mode driver to parse a read work request, verifying a local virtual memory key, and reading specified data from the local virtual memory.

[0079] After reading the specified data from the virtual memory MR, the specified data can be encapsulated and processed to obtain the target data packet. Then, the target data packet can be sent to the server according to the target IPv6 address through the visual network protocol stack. The specific implementation process can be combined with Figure 4 This is described in detail as follows.

[0080] Reference Figure 4 , shows a flowchart of a method for sending a data packet provided by an embodiment of the present application. Figure 4 As shown, the data packet sending method may include: step 401, step 402 and step 403.

[0081] Step 401: Obtain the remote virtual address and remote virtual memory key of the server.

[0082] In this embodiment, when performing data packet encapsulation, the remote virtual address and remote virtual memory key of the server can be obtained, and the remote virtual address and remote virtual memory key can be obtained by parsing the read work request by the kernel mode driver.

[0083] Step 402: Encapsulate the designated data, the remote virtual address and the remote virtual memory key to obtain the target data packet.

[0084] Furthermore, the designated data, the remote virtual address and the remote virtual memory key may be encapsulated to obtain a target data packet.

[0085] Step 403: Send the target data packet to the server according to the target IPv6 address through the visual networking protocol stack, so that the kernel state driver of the server parses the target data packet to obtain the specified data, the remote virtual address and the remote virtual memory key, and after the remote virtual memory key is verified, write the specified data into the virtual memory of the server according to the remote virtual address.

[0086] The target data packet is sent to the server according to the target IPv6 address through the visual networking protocol stack, and the target data packet is parsed by the kernel-mode driver of the server to obtain the specified data, remote virtual address and remote virtual memory key, and after the remote virtual memory key is verified, the specified data is written into the virtual memory of the server according to the remote virtual address. In this example, the visual networking protocol stack can convert the target IPv6 address into the visual networking number of the server, and encapsulate the specified data to generate a target data packet that complies with the visual networking protocol. At the same time, specific protocol headers can be added to the data packet. These headers contain key information such as the destination information of the data packet (such as the visual networking number), source address information, length of the data packet, protocol type, etc.

[0087] The data transmission method based on the VRB protocol learning model provided in the embodiment of the present application is to call the application layer module to send a read work request through the RDMA interface after establishing a visual network connection with the server. The user state driver is called to convert the destination IP address in the read work request to obtain the target IPv6 address corresponding to the visual network number of the server. The kernel state driver is called to read the specified data from the pre-registered virtual memory according to the virtual memory address obtained by parsing the read work request, encapsulate the specified data, obtain the target data packet, and send the target data packet to the server according to the target IPv6 address through the visual network protocol stack, so that the target data packet is parsed by the server to obtain the specified data, and write the specified data to the specified address of the virtual memory in the server. The embodiment of the present application converts the destination IP address in the read work request through the user state driver to obtain the target IPv6 address corresponding to the visual network number of the server, thereby ensuring that the application layer module can use the RDMA interface without perception, achieving the purpose of using RDMA technology for data transmission in the visual network, improving data processing performance, and improving data security through visual network transmission.

[0088] Reference Figure 5 , shows a flowchart of another data transmission method based on the VRB protocol learning model provided by an embodiment of the present application, which is applied to a client, and the client includes: an application layer module, a user state driver, and a kernel state driver. Figure 5 As shown, the data transmission method based on the VRB protocol learning model may include: step 501, step 502, step 503 and step 504.

[0089] Step 501: After establishing a visual network connection with the server, call the application layer module to send a write work request through the RDMA interface.

[0090] The embodiments of the present application can be applied to a client that joins the visual network, that is, the execution subject is the client, and the client may include: an application layer module, a user-mode driver, and a kernel-mode driver.

[0091] Before the client and the server perform data transmission, a visual network connection with the server can be established first. When the devices of the client and the server are started, their visual network protocol stacks must first complete the entry into the visual network. Apply for entry into the visual network according to the configured MAC address, and obtain the visual network number. Convert the obtained visual network number into an IPv6 address, and set the network card IPv6 address and IPv4 address. It can be understood that the IPv6 address of the set network card can be the same as the IPv6 address obtained by converting the visual network number. For the connection establishment process for data transmission between the client and the server through the visual network, reference can be made to the description of step 101 of the above embodiment, and this embodiment will not be repeated here.

[0092] After establishing a visual network connection with the server, the application layer module can be called to send a write work request through the RDMA interface. The write work request can include the remote virtual memory information and local virtual memory information of the server to indicate the data read from the server and the address of the data written to the local virtual memory.

[0093] After the application layer module is called to send the write work request through the RDMA interface, step 502 is executed.

[0094] Step 502: Call the user-mode driver to convert the destination IP address in the write work request to obtain the target IPv6 address corresponding to the visual network number of the server.

[0095] After calling the application layer module to send a write work request through the RDMA interface, the user-mode driver can be called to convert the destination IP address in the write work request to obtain the target IPv6 address corresponding to the visual network number of the server.

[0096] The embodiment of the present application converts the destination IP address written in the work request into the target IPv6 address corresponding to the visual network number of the server through a user-mode driver, thereby ensuring that the communicating parties can transmit data in accordance with the protocols and rules of the visual network.

[0097] After calling the user-mode driver to convert the destination IP address in the write work request to obtain the target IPv6 address corresponding to the visual network number of the server, execute step 503.

[0098] Step 503: Call the kernel-mode driver to obtain the remote virtual address and data length of the server according to the analysis of the write work request, generate an RDMA read request, and send the RDMA read request to the server according to the target IPv6 address through the visual networking protocol stack, so that the server can parse the RDMA read request to obtain the remote virtual address and the data length, and read the specified data from the virtual memory of the server according to the remote virtual address and the data length.

[0099] After calling the user-state driver to convert the destination IP address in the write work request to obtain the target IPv6 address corresponding to the visual network number of the server, the user-state driver can send the write work request to the kernel-state driver.

[0100] After receiving the write work request, the kernel-mode driver can parse the write work request to obtain the remote virtual address and data length of the server. The remote virtual address refers to the starting address of the data read in the virtual memory of the server, and the data length refers to the length of the data read from the virtual memory of the server.

[0101] Then, an RDMA read request can be generated according to the remote virtual address and data length of the server, and the RDMA read request can be sent to the server according to the target IPv6 address through the visual networking protocol stack, so that the server can parse the RDMA read request to obtain the remote virtual address and data length, and read the specified data from the virtual memory of the server according to the remote virtual address and data length. Among them, the visual networking protocol stack can convert the target IPv6 address into the visual networking number of the server, and encapsulate the visual networking number with the RDMA read request and send it.

[0102] Step 504: Call the kernel-mode driver to obtain the target data packet corresponding to the designated data sent by the server through the visual networking protocol stack, and write the designated data obtained by parsing the target data packet into the local virtual memory.

[0103] After the kernel-mode driver obtains the target data packet corresponding to the specified data sent by the server through the visual networking protocol stack, the target data packet can be parsed to obtain the specified data and the specified data can be written into the local virtual memory. Specifically, the virtual memory key can be verified first, and the data writing operation can be performed after the verification passes. Figure 6 This is described in detail as follows.

[0104] Reference Figure 6 , shows a flowchart of a method for writing specified data provided by an embodiment of the present application. Figure 6 As shown, the designated data writing method may include: step 601 , step 602 , step 603 and step 604 .

[0105] Step 601: Parse the target data packet to obtain the specified data and the local virtual memory key.

[0106] In this embodiment, after the kernel-mode driver obtains the target data packet sent by the server, it can parse the target data packet to obtain the specified data and the local virtual memory key.

[0107] Step 602: Verify the local virtual memory key to obtain a verification result.

[0108] After parsing the target data packet to obtain the local virtual memory key, the local virtual memory key can be verified. The purpose of the verification is to confirm whether the key is valid, that is, whether the corresponding operation (such as writing data) is allowed to be executed to obtain a verification result.

[0109] Step 603: When the verification result indicates that the local virtual memory key verification has passed, determine the physical address corresponding to the virtual address obtained by the kernel-mode driver parsing the write work request according to the address mapping table generated when the virtual memory is registered.

[0110] When the verification result indicates that the local virtual memory key verification has passed, the physical address corresponding to the virtual address obtained by the kernel-mode driver in parsing the write work request is determined according to the address mapping table generated when the virtual memory is registered.

[0111] In the specific implementation, the kernel-mode driver of the client registers the MR Buffer (a channel for transmitting data information between software and hardware) to generate an "address translation table". This table mainly converts the VA in the WQE (Work Queue Entry) sent by the local user / the VA in the remote message into PA and then reads and writes it into the memory. This embodiment uses the "page" of memory management to record the translation table. The conversion process between VA and PA can be as follows: Figure 7 As shown, the memory management page includes: Virtual Pages and Physical Pages. Since the virtual address of MR is continuous, there is no need to record the PA (Physical Address) mapping of each VA (Virtual Address). It is only necessary to record the starting VA and the addresses of all physical pages mapped to the Buffer, which is sufficient to complete the address conversion.

[0112] After determining the physical address corresponding to the virtual address obtained by the kernel-mode driver parsing the write work request according to the address mapping table generated when registering the virtual memory, step 604 is executed.

[0113] Step 604: Write the designated data into the local virtual memory according to the physical address.

[0114] After determining the physical address corresponding to the virtual address obtained by the kernel-mode driver parsing the write work request, the specified data can be written into the local virtual memory according to the physical address, thereby completing the process of the client obtaining data from the server.

[0115] Next, combine Figure 8 The data transmission process between the client and the server is described in detail.

[0116] like Figure 8 As shown, the application layer module is the deep learning model. Both the client and the server include the deep learning model, user-mode driver, and kernel-mode driver. When the client sends data to the server, the process may include:

[0117] 1. Prepare data. The client's deep learning model needs to prepare the data in the local memory to be written to the server's memory, which is the payload.

[0118] 2. Send a work request. The client's deep learning model sends the request data, which contains the local MR information, including the starting virtual address, length, and L_key of the memory. The peer MR information includes the remote virtual address and the corresponding MR's R_key.

[0119] 3. Parse the work request entity. The kernel driver layer extracts MR related information, takes data from the memory and puts it into the data packet to be sent.

[0120] 4. Assemble and send the message. First, send a write request message to the server. The request message carries the memory virtual address of the remote node, the remote authority Rkey, and the Payload length.

[0121] 5. After receiving the message, the server will parse and verify its content to ensure that the operation is safe and legal.

[0122] 6. After the payload is written into the memory and the verification is passed and the final PA is obtained, the server kernel driver can write the payload in the message into the memory. Once the RDMA write operation is completed, the server's deep learning model will receive a notification of the completion of the job through the completion queue.

[0123] After completing the data transmission, the server can notify the client to indicate that the data transmission is completed. The client receives the data transmission completion notification and sends the end connection information to the server. Then release the workspace information, memory information, close event information, channel information, etc. After receiving the disconnection information, the server can release the workspace information, memory information, close event information, channel information, etc., and disconnect the visual network connection with the server.

[0124] The data transmission method based on the VRB protocol learning model provided in the embodiment of the present application is to call the application layer module to send a write work request through the RDMA interface after establishing a visual network connection with the server. The user-mode driver is called to convert the destination IP address in the write work request to obtain the target IPv6 address corresponding to the visual network number of the server. The kernel-mode driver is called to obtain the remote virtual address and data length of the server according to the parsed write work request, generate an RDMA read request, and send the RDMA read request to the server according to the target IPv6 address through the visual network protocol stack, so that the server can parse the RDMA read request to obtain the remote virtual address and data length, and read the specified data from the virtual memory of the server according to the remote virtual address and data length. The kernel-mode driver is called to obtain the target data packet corresponding to the specified data sent by the server through the visual network protocol stack, and the specified data obtained by parsing the target data packet is written into the local virtual memory. The embodiment of the present application converts the destination IP address in the read work request through a user-mode driver to obtain the target IPv6 address corresponding to the visual network number of the server, thereby ensuring that the application layer module can use the RDMA interface without perception, thereby achieving the purpose of using RDMA technology for data transmission in the visual network, improving data processing performance, and improving data security through visual network transmission.

[0125] It should be noted that, for the method embodiments, for the sake of simplicity, they are all described as a series of action combinations, but those skilled in the art should be aware that the embodiments of the present application are not limited by the described action sequence, because according to the embodiments of the present application, certain steps can be performed in other sequences or simultaneously. Secondly, those skilled in the art should also be aware that the embodiments described in the specification are all preferred embodiments, and the actions involved are not necessarily required by the embodiments of the present application.

[0126] Reference Fig. 9 , shows a structural diagram of a data transmission device based on a VRB protocol learning model provided by an embodiment of the present application, which is applied to a client, and the client includes: an application layer module, a user state driver, and a kernel state driver. Fig. 9 As shown, the data transmission device 900 based on the VRB protocol learning model may include the following modules:

[0127] A read request sending module 910 is used to call the application layer module to send a read work request through the RDMA interface after establishing a visual network connection with the server;

[0128] The target address acquisition module 920 is used to call the user state driver to convert the destination IP address in the read work request to obtain the target IPv6 address corresponding to the visual network number of the server;

[0129] The data sending module 930 is used to call the kernel-mode driver to read the specified data from the pre-registered virtual memory according to the virtual memory address obtained by parsing the read work request, encapsulate and process the specified data to obtain the target data packet, and send the target data packet to the server through the visual networking protocol stack according to the target IPv6 address, so that the server can parse the target data packet, obtain the specified data, and write the specified data to the specified address of the virtual memory in the server.

[0130] Optionally, the read request sending module includes:

[0131] A virtual memory information acquisition unit, configured to call the application layer module to acquire local virtual memory information and remote virtual memory information through the RDMA interface, wherein the local virtual memory information includes: a starting virtual address, a data length, and a local virtual memory key of the virtual memory of the client, and the remote virtual memory information includes: a remote virtual address and a remote virtual memory key of the server;

[0132] A read request generating unit, configured to generate the read work request according to the local virtual memory information, the remote virtual memory information and the destination IP address of the server;

[0133] A read request sending unit is used to send the read work request to the user mode driver.

[0134] Optionally, the data sending module includes:

[0135] A read request parsing unit, used for calling the kernel-mode driver to parse the read work request and obtain a starting virtual address, a data length and a local virtual memory key of the local virtual memory;

[0136] A verification result obtaining unit, used to verify the local virtual memory key and obtain a verification result;

[0137] The designated data reading unit is used to read the designated data from the local virtual memory according to the starting virtual address and the data length when the verification result indicates that the verification is passed.

[0138] Optionally, the data sending module includes:

[0139] A remote information acquisition unit, used to acquire the remote virtual address and remote virtual memory key of the server;

[0140] A target data packet acquisition unit, used for encapsulating the designated data, the remote virtual address and the remote virtual memory key to obtain the target data packet;

[0141] A data sending unit is used to send the target data packet to the server according to the target IPv6 address through the visual networking protocol stack, so that the kernel state driver of the server parses the target data packet to obtain the specified data, the remote virtual address and the remote virtual memory key, and after the remote virtual memory key is verified, write the specified data into the virtual memory of the server according to the remote virtual address.

[0142] The data transmission device based on the VRB protocol learning model provided in the embodiment of the present application, after establishing a visual network connection with the server, calls the application layer module to send a read work request through the RDMA interface. Call the user state driver to convert the destination IP address in the read work request to obtain the target IPv6 address corresponding to the visual network number of the server. Call the kernel state driver to read the specified data from the pre-registered virtual memory according to the virtual memory address obtained by parsing the read work request, encapsulate the specified data, obtain the target data packet, and send the target data packet to the server according to the target IPv6 address through the visual network protocol stack, so that the target data packet is parsed by the server to obtain the specified data, and write the specified data to the specified address of the virtual memory in the server. The embodiment of the present application converts the destination IP address in the read work request through the user state driver to obtain the target IPv6 address corresponding to the visual network number of the server, thereby ensuring that the application layer module can use the RDMA interface without perception, achieving the purpose of using RDMA technology for data transmission in the visual network, improving data processing performance, and improving data security through visual network transmission.

[0143] Reference Fig.10 , shows a structural diagram of another data transmission device based on the VRB protocol learning model provided by an embodiment of the present application, which is applied to a client, and the client includes: an application layer module, a user state driver, and a kernel state driver. Fig.10 As shown, the data transmission device 1000 based on the VRB protocol learning model may include the following modules:

[0144] A write request sending module 1001 is used to call the application layer module to send a write work request through the RDMA interface after establishing a visual network connection with the server;

[0145] The target IPv6 address acquisition module 1002 is used to call the user state driver to convert the destination IP address in the write work request to obtain the target IPv6 address corresponding to the visual network number of the server;

[0146] A read request sending module 1003 is used to call the kernel-mode driver to obtain the remote virtual address and data length of the server according to the analysis of the write work request, generate an RDMA read request, and send the RDMA read request to the server according to the target IPv6 address through the visual networking protocol stack, so that the server can parse the RDMA read request to obtain the remote virtual address and the data length, and read the specified data from the virtual memory of the server according to the remote virtual address and the data length;

[0147] The designated data writing module 1004 is used to call the kernel-mode driver to obtain the target data packet corresponding to the designated data sent by the server through the visual networking protocol stack, and write the designated data obtained by parsing the target data packet into the local virtual memory.

[0148] Optionally, the designated data writing module includes:

[0149] A data packet parsing unit, used for parsing the target data packet to obtain the specified data and the local virtual memory key;

[0150] A memory key verification unit, used to verify the local virtual memory key and obtain a verification result;

[0151] a physical address determining unit, configured to determine, when the verification result indicates that the local virtual memory key verification has passed, a physical address corresponding to the virtual address obtained by the kernel-mode driver parsing the write work request according to an address mapping table generated when the virtual memory is registered;

[0152] The designated data writing unit is used to write the designated data into the local virtual memory according to the physical address.

[0153] The data transmission device based on the VRB protocol learning model provided in the embodiment of the present application, after establishing a visual network connection with the server, calls the application layer module to send a write work request through the RDMA interface. Call the user-mode driver to convert the destination IP address in the write work request to obtain the target IPv6 address corresponding to the visual network number of the server. Call the kernel-mode driver to obtain the remote virtual address and data length of the server according to the parsed write work request, generate an RDMA read request, and send the RDMA read request to the server according to the target IPv6 address through the visual network protocol stack, so that the server can parse the RDMA read request to obtain the remote virtual address and data length, and read the specified data from the virtual memory of the server according to the remote virtual address and data length. Call the kernel-mode driver to obtain the target data packet corresponding to the specified data sent by the server through the visual network protocol stack, and write the specified data obtained by parsing the target data packet into the local virtual memory. The embodiment of the present application converts the destination IP address in the read work request through a user-mode driver to obtain the target IPv6 address corresponding to the visual network number of the server, thereby ensuring that the application layer module can use the RDMA interface without perception, thereby achieving the purpose of using RDMA technology for data transmission in the visual network, improving data processing performance, and improving data security through visual network transmission.

[0154] As for the device embodiment, since it is basically similar to the method embodiment, the description is relatively simple, and the relevant parts can be referred to the partial description of the method embodiment.

[0155] In an embodiment of the present application, an electronic device is also provided. The electronic device may include one or more processors, and one or more machine-readable media storing instructions thereon, the instructions being, for example, application programs. When the instructions are executed by the one or more processors, the processors execute any of the above-mentioned data transmission methods based on the VRB protocol learning model.

[0156] In an embodiment of the present application, a non-transitory computer-readable storage medium is also provided, on which a computer program is stored, and the program can be executed by a processor of an electronic device to implement any of the above-mentioned data transmission methods based on the VRB protocol learning model. For example, the non-transitory computer-readable storage medium can be a ROM, a random access memory (RAM), a CD-ROM, a magnetic tape, a floppy disk, an optical data storage device, etc.

[0157] The various embodiments in this specification are described in a progressive manner, and each embodiment focuses on the differences from other embodiments. The same or similar parts between the various embodiments can be referenced to each other.

[0158] Those skilled in the art will appreciate that the embodiments of the present application can be provided as methods, devices, or computer program products. Therefore, the present application can adopt the form of a complete hardware embodiment, a complete software embodiment, or an embodiment in combination with software and hardware. Moreover, the present application can adopt the form of a computer program product implemented on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code.

[0159] The embodiments of the present application are described with reference to the flowcharts and / or block diagrams of the methods, terminal devices (systems), and computer program products according to the embodiments of the present application. It should be understood that each process and / or box in the flowchart and / or block diagram, as well as the combination of the processes and / or boxes 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 generate 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 1 A device that provides the functions specified in a block or multiple blocks.

[0160] These computer program instructions may also be stored in a computer readable memory capable of directing a computer or other programmable data processing terminal device to operate in a specific manner, so that the instructions stored in the computer readable memory produce a manufactured product including an instruction device, which implements the process Figure 1 A process or multiple processes and / or boxes Figure 1 A function specified in one or more boxes.

[0161] These computer program instructions can also be loaded into a computer or other programmable data processing terminal device so that a series of operating steps are executed on the computer or other programmable terminal device to produce a computer-implemented process, so that the instructions executed on the computer or other programmable terminal device provide for implementing the process. Figure 1 A process or multiple processes and / or boxes Figure 1 The steps for the functions specified in one or more boxes.

[0162] Although the preferred embodiments of the present application have been described, those skilled in the art may make additional changes and modifications to these embodiments once they have learned the basic creative concept. 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 embodiments of the present application.

[0163] Finally, it should be noted that, in this article, relational terms such as first and second, etc. are only used to distinguish one entity or operation from another entity or operation, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Moreover, the terms "include", "comprise" or any other variants thereof are intended to cover non-exclusive inclusion, so that a process, method, article or terminal device including a series of elements includes not only those elements, but also other elements not explicitly listed, or also includes elements inherent to such process, method, article or terminal device. In the absence of further restrictions, the elements defined by the sentence "comprise a ..." do not exclude the existence of other identical elements in the process, method, article or terminal device including the elements.

[0164] The above is a detailed introduction to a data transmission method, device, electronic device and storage medium based on a VRB protocol learning model provided by the present application. Specific examples are used in this article to illustrate the principles and implementation methods of the present application. The description of the above embodiments is only used to help understand the method and core idea of ​​the present application. At the same time, for a person skilled in the art, according to the idea of ​​the present application, there will be changes in the specific implementation method and application scope. In summary, the content of this specification should not be understood as a limitation on the present application.

Claims

1. A data transmission method based on a VRB protocol learning model, applied to a client, the client comprising: Application layer module, user state driver and kernel state driver, characterized in that the method includes: After establishing a visual network connection with the server, calling the application layer module to send a read work request through the RDMA interface; Calling the user-mode driver to convert the destination IP address in the read work request to obtain the target IPv6 address corresponding to the visual network number of the server; The kernel-mode driver is called to read designated data from a pre-registered virtual memory according to the virtual memory address obtained by parsing the read work request, the designated data is encapsulated and processed to obtain a target data packet, and the target data packet is sent to the server through the visual networking protocol stack according to the target IPv6 address, so that the server can parse the target data packet, obtain the designated data, and write the designated data to the designated address of the virtual memory in the server.

2. The method according to claim 1, characterized in that The calling of the application layer module to send a read work request through the RDMA interface includes: Calling the application layer module to obtain local virtual memory information and remote virtual memory information through the RDMA interface, wherein the local virtual memory information includes: the starting virtual address, data length and local virtual memory key of the virtual memory of the client, and the remote virtual memory information includes: the remote virtual address and remote virtual memory key of the server; Generate the read work request according to the local virtual memory information, the remote virtual memory information and the destination IP address of the server; Sending the read work request to the user mode driver.

3. The method according to claim 1, characterized in that The calling of the kernel-mode driver to read the specified data from the pre-registered virtual memory according to the virtual memory address obtained by parsing the read work request includes: Calling the kernel-mode driver to parse the read work request to obtain the starting virtual address, data length and local virtual memory key of the local virtual memory; Verifying the local virtual memory key to obtain a verification result; When the verification result indicates that the verification is passed, the designated data is read from the local virtual memory according to the starting virtual address and the data length.

4. The method according to claim 1, characterized in that: The encapsulating and processing the designated data to obtain a target data packet, and sending the target data packet to the server according to the target IPv6 address through the visual networking protocol stack, includes: Obtaining a remote virtual address and a remote virtual memory key of the server; Encapsulating the designated data, the remote virtual address and the remote virtual memory key to obtain the target data packet; The target data packet is sent to the server according to the target IPv6 address through the visual networking protocol stack, and the target data packet is parsed by the kernel state driver of the server to obtain the specified data, the remote virtual address and the remote virtual memory key, and after the remote virtual memory key is verified, the specified data is written into the virtual memory of the server according to the remote virtual address.

5. A data transmission method based on a VRB protocol learning model, applied to a client, the client comprising: Application layer module, user state driver and kernel state driver, characterized in that the method includes: After establishing a visual network connection with the server, calling the application layer module to send a write work request through the RDMA interface; Calling the user-mode driver to convert the destination IP address in the write work request to obtain the target IPv6 address corresponding to the visual network number of the server; Calling the kernel-mode driver to obtain the remote virtual address and data length of the server according to parsing the write work request, generating an RDMA read request, and sending the RDMA read request to the server according to the target IPv6 address through the visual networking protocol stack, so that the server parses the RDMA read request to obtain the remote virtual address and the data length, and reads the specified data from the virtual memory of the server according to the remote virtual address and the data length; The kernel-mode driver is called to obtain a target data packet corresponding to the designated data sent by the server through the visual networking protocol stack, and the designated data obtained by parsing the target data packet is written into the local virtual memory.

6. The method according to claim 5, characterized in that Writing the designated data obtained by parsing the target data packet into the local virtual memory includes: Parsing the target data packet to obtain the specified data and the local virtual memory key; Verifying the local virtual memory key to obtain a verification result; When the verification result indicates that the local virtual memory key verification has passed, determining, according to the address mapping table generated when the virtual memory is registered, a physical address corresponding to the virtual address obtained by the kernel-mode driver parsing the write work request; According to the physical address, the designated data is written into the local virtual memory.

7. A data transmission device based on a VRB protocol learning model, applied to a client, the client comprising: Application layer module, user mode driver and kernel mode driver, characterized in that the device comprises: A read request sending module, used to call the application layer module to send a read work request through the RDMA interface after establishing a visual network connection with the server; A target address acquisition module is used to call the user state driver to convert the destination IP address in the read work request to obtain the target IPv6 address corresponding to the visual network number of the server; A data sending module is used to call the kernel-mode driver to read specified data from a pre-registered virtual memory according to the virtual memory address obtained by parsing the read work request, encapsulate and process the specified data to obtain a target data packet, and send the target data packet to the server through the visual networking protocol stack according to the target IPv6 address, so that the server can parse the target data packet, obtain the specified data, and write the specified data to the specified address of the virtual memory in the server.

8. A data transmission device based on a VRB protocol learning model, applied to a client, the client comprising: Application layer module, user mode driver and kernel mode driver, characterized in that the device comprises: A write request sending module, used to call the application layer module to send a write work request through the RDMA interface after establishing a visual network connection with the server; A target IPv6 address acquisition module is used to call the user-mode driver to convert the destination IP address in the write work request to obtain the target IPv6 address corresponding to the visual network number of the server; A read request sending module, used for calling the kernel-mode driver to obtain the remote virtual address and data length of the server according to the analysis of the write work request, generating an RDMA read request, and sending the RDMA read request to the server according to the target IPv6 address through the visual networking protocol stack, so that the server can parse the RDMA read request to obtain the remote virtual address and the data length, and read the specified data from the virtual memory of the server according to the remote virtual address and the data length; The designated data writing module is used to call the kernel-mode driver to obtain the target data packet corresponding to the designated data sent by the server through the visual networking protocol stack, and write the designated data obtained by parsing the target data packet into the local virtual memory.

9. An electronic device, characterized in that: include: one or more processors; and One or more machine-readable media having instructions stored thereon, when executed by the one or more processors, enable the apparatus to perform the data transmission method based on the VRB protocol learning model as claimed in any one of claims 1 to 6.

10. A computer-readable storage medium, characterized in that: The computer program stored therein enables the processor to execute the data transmission method based on the VRB protocol learning model as described in any one of claims 1 to 6.