Data processing method and system, electronic device, and readable storage medium

By directly connecting clients and servers through heterogeneous device memory and memory interconnection protocols, the problem of low data transmission efficiency in existing technologies is solved, enabling more efficient data transmission and interaction.

WO2025253204A1PCT designated stage Publication Date: 2025-12-11CLOUD INTELLIGENCE ASSETS HOLDING (SINGAPORE) PTE LTD
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
PCT/IB2025/054367
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-06-03
Filing Date
2025-04-28
Publication Date
2025-12-11

AI Technical Summary

Technical Problem

Existing technologies fail to fully utilize the potential of compute fast link (CXL) in data transmission between devices, especially in data interaction between multiple virtual machines, resulting in increased memory consumption and low data transmission efficiency, relying on network transmission mechanisms.

Method used

By using heterogeneous device memory and employing a memory interconnect protocol for data transmission, direct connections are established between the client and server, avoiding costly network round trips and memory copying. Heterogeneous device memory is used to store data to be transmitted and response results, and to store request and response messages, thus achieving efficient data transmission.

Benefits of technology

It improves the efficiency of data transmission between the client and the server, avoids expensive network round trips and memory copying processes, and achieves more efficient data interaction.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure IB2025054367_11122025_PF_FP_ABST
    Figure IB2025054367_11122025_PF_FP_ABST
Patent Text Reader

Abstract

Disclosed in the present disclosure are a data processing method and system, an electronic device, and a readable storage medium. The method comprises: using a heterogeneous device memory to store data to be transmitted sent by a client via a memory interconnect protocol; acquiring a request message corresponding to said data, wherein the request message is used for requesting to transmit said data to a server; sending the request message to the server; using the heterogeneous device memory to store a response result obtained by the server responsive to the request message, wherein the response result is output by the server via the memory interconnect protocol and corresponds to said data; and sending the response result to the client. The present disclosure solves the technical problem of low data transmission efficiency.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] The present disclosure claims priority to Chinese Patent Application No. 202410712069.0, filed on June 3, 2024 with the Chinese Patent Office, entitled "Data processing method, system, electronic device and readable storage medium", the entire content of which is incorporated herein by reference. TECHNICAL FIELD The present disclosure relates to the technical field of data transmission, in particular, to a data processing method, system, electronic device and readable storage medium. BACKGROUND Currently, when performing data transmission between devices, a shared memory technology is mainly used to facilitate the transmission of tensor data (Tensor) within a single physical host. This method is suitable for data interaction between multiple virtual machines running on a physical host. However, although the above method can realize data interaction between multiple virtual machines, it does not fully exploit the potential of Compute Express Link (CXL), such as memory pooling and inter-node access functions, thus increasing memory consumption and relying heavily on existing network transmission mechanisms, resulting in the technical problem of low data transmission efficiency. In view of the above problems, no effective solution has been proposed so far. SUMMARY According to one aspect of the present disclosure, a data processing method is provided, which is applied to a data communication end including a heterogeneous device memory connected to at least one client and at least one server through a memory interconnection protocol. The method includes: storing, by the heterogeneous device memory, to-be-transmitted data sent by the client through the memory interconnection protocol; obtaining a request message corresponding to the to-be-transmitted data, wherein the request message is used to request transmission of the to-be-transmitted data to the server; sending the request message to the server; storing, by the heterogeneous device memory, a response result obtained by the server in response to the request message, wherein the response result is output by the server through the memory interconnection protocol and corresponds to the to-be-transmitted data; and sending the response result to the client. According to one aspect of the present disclosure, a data processing method is provided, which is applied to a data communication end including a heterogeneous device memory connected to at least one client and at least one server through a memory interconnection protocol.The method comprises: storing, by using a heterogeneous device memory, tensor data to be transmitted sent by a client through a memory interconnection protocol; obtaining a request message corresponding to the tensor data to be transmitted, wherein the request message is used to request transmission of the tensor data to be transmitted to a server; sending, in response to a first polling request of the server, the polled request message to the server; storing, by using the heterogeneous device memory, a response result obtained by the server in response to the request message, wherein the response result is output by the server through the memory interconnection protocol and corresponds to the tensor data to be transmitted; and sending, in response to a second polling request of the client, the polled response result to the client, wherein the response result is used to train a target model. According to another aspect of an embodiment of the present disclosure, a data processing apparatus is also provided, comprising: a first storage unit configured to store, by using a heterogeneous device memory, tensor data to be transmitted sent by a client through a memory interconnection protocol; a first obtaining unit configured to obtain a request message corresponding to the tensor data to be transmitted, wherein the request message is used to request transmission of the tensor data to be transmitted to a server; a first sending unit configured to send the request message to the server; a second storage unit configured to store, by using the heterogeneous device memory, a response result obtained by the server in response to the request message, wherein the response result is output by the server through the memory interconnection protocol and corresponds to the tensor data to be transmitted; and a second sending unit configured to send the response result to the client. According to another aspect of an embodiment of the present disclosure, a data processing apparatus is also provided, comprising: a third storage unit configured to store, by using a heterogeneous device memory, tensor data to be transmitted sent by a client through a memory interconnection protocol; a second obtaining unit configured to obtain a request message corresponding to the tensor data to be transmitted, wherein the request message is used to request transmission of the tensor data to be transmitted to a server; a third sending unit configured to send, in response to a first polling request of the server, the polled request message to the server; a fourth storage unit configured to store, by using the heterogeneous device memory, a response result obtained by the server in response to the request message, wherein the response result is output by the server through the memory interconnection protocol and corresponds to the tensor data to be transmitted; and a fourth sending unit configured to send, in response to a second polling request of the client, the polled response result to the client, wherein the response result is used to train a target model.According to another aspect of the embodiments of the present disclosure, a data processing system is also provided, including a data communication end, at least one client and at least one server, wherein the data communication end includes a heterogeneous device memory connected with the at least one client and the at least one server through a memory interconnection protocol respectively, wherein the client is configured to send to-be-transmitted data; the data communication end is configured to store the to-be-transmitted data sent by the client through the memory interconnection protocol by using the heterogeneous device memory; acquire a request message corresponding to the to-be-transmitted data, wherein the request message is used to request to transmit the to-be-transmitted data to the server; send the request message to the server; the server is configured to output a response result corresponding to the to-be-transmitted data through the memory interconnection protocol in response to the request message; wherein the data communication end is configured to store the response result by using the heterogeneous device memory; and send the response result to the client. According to another aspect of the embodiments of the present disclosure, an electronic device is also provided, including a memory storing an executable program; and a processor configured to run the program, wherein the program is configured to execute the data processing method in the embodiments of the present disclosure. According to another aspect of the embodiments of the present disclosure, a computer terminal is also provided, including a memory storing an executable program; and a processor configured to run the program, wherein the program is configured to execute the data processing method in the embodiments of the present disclosure. According to another aspect of the embodiments of the present disclosure, a computer readable storage medium is also provided, including a stored executable program, wherein the executable program is configured to control a device where the computer readable storage medium is located to execute the data processing method in the embodiments of the present disclosure when the executable program is running. According to another aspect of the embodiments of the present disclosure, a computer program product is also provided, including a computer program configured to implement the data processing method in the embodiments of the present disclosure when executed by a processor. According to another aspect of the embodiments of the present disclosure, a computer program product is also provided, including a non-volatile computer readable storage medium, the non-volatile computer readable storage medium storing a computer program, the computer program being configured to implement the data processing method in the embodiments of the present disclosure when executed by a processor. According to another aspect of the embodiments of the present disclosure, a computer program is also provided, the computer program being configured to implement the method in the embodiments of the present disclosure when executed by a processor.In the embodiments of the present disclosure, the data communication end comprises a heterogeneous device memory connected with at least one client end and at least one server through a memory interconnection protocol, and the heterogeneous device memory is used to store the to-be-transmitted data sent by the client end through the memory interconnection protocol; a request message corresponding to the to-be-transmitted data is obtained, wherein the request message is used to request to transmit the to-be-transmitted data to the server; the request message is sent to the server; a response result obtained by the server in response to the request message is stored in the heterogeneous device memory, wherein the response result is output by the server through the memory interconnection protocol and corresponds to the to-be-transmitted data; and the response result is sent to the client end. That is, in the embodiments of the present disclosure, the to-be-transmitted data sent by the client end through the memory interconnection protocol is stored in the heterogeneous device memory, and the response result corresponding to the to-be-transmitted data and output by the server through the memory interconnection protocol in response to the request message is also stored in the heterogeneous device memory, that is, the client end and the server are connected to the same heterogeneous device memory, which can avoid the processes of expensive network round trip, memory copy and data serialization / deserialization, so as to achieve the purpose of more efficient data transmission and data interaction, realize the technical effect of improving the data transmission efficiency between the client end and the server, and further solve the technical problem of low data transmission efficiency. It is easy to note that the above general description and the following detailed description are only for exemplifying and explaining the present disclosure, and do not constitute a limitation on the present disclosure. BRIEF DESCRIPTION OF DRAWINGS The accompanying drawings used in the description of the present disclosure are used to provide a further understanding of the present disclosure, form a part of the present disclosure, and are used to explain the illustrative embodiments of the present disclosure and their description, but do not constitute an improper limitation on the present disclosure.In the drawings: Fig. 1 is a hardware structure block diagram of a computer terminal (or mobile device) for implementing a data processing method according to an embodiment of the present disclosure; Fig. 2 is a structure block diagram of a computing environment according to an embodiment of the present disclosure; Fig. 3 is a structure block diagram of a service mesh according to an embodiment of the present disclosure; Fig. 4 is a flowchart of a data processing method according to an embodiment of the present disclosure; Fig. 5 is a flowchart of another data processing method according to an embodiment of the present disclosure; Fig. 6 is a schematic diagram of a data processing system according to an embodiment of the present disclosure; Fig. 7 is a schematic diagram of the difference between a memory pool already supported in CXL2.0 and coherent memory sharing in CXL3.0 according to an embodiment of the present disclosure; Fig. 8 is a schematic diagram of TensorPipe data communication according to an embodiment of the present disclosure; Fig. 9 is a schematic diagram of a transport layer according to an embodiment of the present disclosure; Fig. 10 is a schematic diagram of a CXL-based TensorPipe according to an embodiment of the present disclosure; Fig. 11 is a schematic diagram of a data processing apparatus according to an embodiment of the present disclosure; Fig. 12 is a schematic diagram of another data processing apparatus according to an embodiment of the present disclosure; Fig. 13 is a structure block diagram of an electronic device according to an embodiment of the present disclosure. DETAILED DESCRIPTION In order to make the personnel in the technical field better understand the present disclosure scheme, the technical scheme in the embodiments of the present disclosure will be described clearly and completely below in conjunction with the drawings in the embodiments of the present disclosure. Obviously, the described embodiments are only a part of the embodiments of the present disclosure, not all. Based on the embodiments in the present disclosure, all other embodiments obtained by a person of ordinary skill in the art without creative labor should belong to the scope of protection of the present disclosure. It should be noted that the terms "first", "second" and the like in the specification and claims of the present disclosure and the above-described drawings are used to distinguish similar objects, and do not necessarily indicate a specific order or a chronological sequence. It should be understood that the data thus used can be interchanged under appropriate circumstances, so that the embodiments of the present disclosure described herein can be implemented in an order other than that illustrated or described herein. Furthermore, the terms "include" and "have" and any variations thereof are intended to cover non-exclusive inclusion, for example, a process, method, system, product or device including a series of steps or units need not be limited to those steps or units clearly listed, but can include other steps or units not clearly listed or inherent to these processes, methods, products or devices.First, some of the names or terms appearing in the description of the embodiments of the present disclosure are applicable to the following explanations: heterogeneous device memory, connected with at least one client and at least one server through a memory interconnection protocol, used to store at least one client request message and at least one server response data generated in response to the client's request data.

[0002] CXL, a memory interconnect protocol, is used for high-bandwidth low-latency device interconnect, aiming to help more efficient transmission of data. Embodiment 1 provides a data processing method according to an embodiment of the present disclosure. It should be noted that the steps shown in the flowchart of the accompanying drawings can be executed in a computer system such as a set of computer executable instructions, and although a logical order is shown in the flowchart, in some cases, the steps shown or described herein can be executed in an order different from that shown. The method provided by the first embodiment of the present disclosure can be executed in a mobile terminal, a computer terminal or similar computing device. FIG. 1 is a hardware structure block diagram of a computer terminal (or mobile device) for implementing a data processing method according to an embodiment of the present disclosure. As shown in FIG. 1, the computer terminal 10 (or mobile device) can include one or more (shown in the figure as 102a, 102b, >, 102n) processors 102 (the processor 102 can include but not limited to a processing device such as a microprocessor MCU or a programmable logic device FPGA, etc.), a memory 104 for storing data, and a transmission device 106 for communication function. In addition, it can also include a display, an input / output interface (I / O interface), a universal serial bus (Un i versa l Ser i a l Bus, abbreviated as USB) port (which can be included as one of the ports of the BUS bus), a network interface, a power supply and / or a camera. Those skilled in the art can understand that the structure shown in FIG. 1 is only schematic, which does not limit the structure of the above-mentioned electronic device. For example, the computer terminal 10 can include more or fewer components than those shown in FIG. 1, or have a different configuration from that shown in FIG. 1. It should be noted that the above-mentioned one or more processors 102 and / or other data processing circuits can be referred to as "data processing circuits" herein. The data processing circuit can be embodied in whole or in part as software, hardware, firmware or any combination thereof. In addition, the data processing circuit can be a single independent processing module, or any one of the other elements combined in whole or in part into the computer terminal 10 (or mobile device). As referred to in the embodiments of the present disclosure, the data processing circuit as a kind of processor control (for example, the selection of variable resistance terminal path connected with the interface) O memory 104 can be used to store software programs and modules of application software, such as program instructions / data storage devices corresponding to the method in the embodiments of the present disclosure. The processor 102 executes the software programs and modules stored in the memory 104, thereby executing various functional applications and data processing, that is, implementing the method in the above embodiments.Memory 104 can include high-speed random access memory, and can also include nonvolatile memory, such as one or more magnetic data storage devices, flash memory, or other nonvolatile solid-state memory. In some examples, memory 104 can further include memory that is remotely located with respect to processor 102, which can be connected to computer terminal 10 through a network. Examples of such networks include, but are not limited to, the Internet, an intranet, a local area network, a mobile communications network, and combinations thereof. Transmission device 106 is configured to receive or transmit data via a network. Particular examples of such networks can include a wireless network provided by a communications provider of computer terminal 10. In one example, transmission device 106 includes a network interface controller (NIC) that can connect to other network devices through a base station to enable communication with the Internet. In one example, transmission device 106 can be a radio frequency (RF) module that is configured to communicate with the Internet through wireless means. A display can be, for example, a touch screen liquid crystal display (LCD) that enables a user to interact with a user interface of computer terminal 10 (or mobile device). The hardware architecture diagram shown in FIG. 1 can serve as an example architecture for computer terminal 10 (or mobile device) as well as for a server, and in an alternative embodiment, FIG. 2 is a block diagram of an architecture of a computing environment according to embodiments of the present disclosure. FIG. 2 illustrates an embodiment in which computer terminal 10 (or mobile device) shown in FIG. 1 is used as a computing node in a computing environment 201. As shown in FIG. 2, computing environment 201 includes a plurality of computing nodes (shown in FIG. 2 as 210-1, 210-2,... ) running on a distributed network. The computing nodes include local processing and memory resources, and end user 202 can remotely run applications or store data in computing environment 201. Applications can be provided as a plurality of services 220-1, 220-2, 220-3, and 220-4 in computing environment 201, representing services "A", "D", "E", and "H", respectively. End user 202 can provide and access the services through a web browser or other software application on a client, and in some embodiments, the provisioning and / or requests of end user 202 can be provided to an entry gateway 230. oThe ingress gateway 230 can include a respective agent to handle provisioning and / or requests for services (one or more services provided in the computing environment 201). The services are provided or deployed according to various virtualization technologies supported by the computing environment 201. In some embodiments, the services can be provided according to virtualization based on virtual machines (VMs), virtualization based on containers, and / or the like. Virtualization based on virtual machines can be to emulate a real computer by initializing a virtual machine to execute programs and applications without directly accessing any actual hardware resources. At the same time of the virtual machine virtualization machine, according to virtualization based on containers, a container can be started to virtualize an entire operating system (OS) so that multiple workloads can run on a single operating system instance. In one embodiment of virtualization based on containers, several containers of a service can be assembled into a pod (e.g., a Kubernetes pod). For example, as shown in FIG. 2, the service 220-2 can be equipped with one or more pods 240-1, 240-2, …, 240-N (collectively, pods). A pod can include an agent 245 and one or more containers 242-1, 242-2, …, 242-M (collectively, containers). The one or more containers in a pod handle requests related to one or more respective functions of the service, and the agent 245 generally controls network functions related to the service, such as routing, load balancing, and the like. Other services can also be equipped with similar pods. In operation, executing a user request from the end user 202 can require invoking one or more services in the computing environment 201, and executing one or more functions of a service can require invoking one or more functions of another service. As shown in FIG. 2, the service “A” 220-1 receives a user request from the end user 202 from the ingress gateway 230, the service “A” 220-1 can invoke the service “D” 220-2, and the service “D” 220-2 can request the service “E” 220-3 to execute one or more functions. The computing environment described above can be a cloud computing environment, where allocation of resources is managed by a cloud service provider, allowing development of functions without considering implementation, tuning, or scaling servers. The computing environment allows developers to execute code that responds to events without building or maintaining complex infrastructure. Instead of scaling a single hardware device to handle potential loads, the services can be split into a set of functions that can automatically scale independently.In another alternative embodiment, FIG. 3 illustrates, in a block diagram, an embodiment of using the computer terminal 10 (or mobile device) shown in FIG. 1 above as a service mesh. FIG. 3 is a block diagram of a structure of a service mesh according to an embodiment of the present disclosure, as shown in FIG. 3, the service mesh 300 is mainly used to facilitate secure and reliable communication between multiple microservices, which refers to breaking an application into multiple smaller services or instances and distributing them to run on different clusters / machines. As shown in FIG. 3, the microservices can include an application service instance B and an application service instance C, the application service instance B and the application service instance C form a functional application layer of the service mesh 300. In an embodiment, the application service instance B runs in the form of a container / process 308 on a machine / workload container group 314 (Pod), and the application service instance C runs in the form of a container / process 310 on a machine / workload container group 316 (Pod). In an embodiment, the application service instance B can be a sending request message service, and the application service instance C can be a receiving response result service corresponding to the request message. As shown in FIG. 3, the application service instance B and a mesh agent (sidedcar) 303 coexist in the machine workload container group 314, and the application service instance C and a mesh agent 305 coexist in the machine workload container 316. The mesh agent 303 and the mesh agent 305 form a data plane layer of the service mesh 300. Among them, the mesh agent 303 and the mesh agent 305 run in the form of a container / process 304, a container / process 306, respectively, can receive a request 312 for a commodity query service, and the mesh agent 303 and the application service instance B can communicate bidirectionally, the mesh agent 305 and the application service instance C can communicate bidirectionally. In addition, the mesh agent 303 and the mesh agent 305 can also communicate bidirectionally. In an embodiment, the network traffic of the application service instance B is all routed to the appropriate destination through the mesh agent 303, and the network traffic of the application service instance C is all routed to the appropriate destination through the mesh agent 305.Note that the network traffic referred to herein includes, but is not limited to, Hyper Text Transfer Protocol (HTTP), Representational State Transfer (REST), Google Remote Procedure Call (gRPC), Redi s, and the like. In one embodiment, the functionality of the extended data plane layer can be implemented by writing custom filters (Filter) for the proxies (Envoy) in the service mesh 300, which can be configured for the service mesh to correctly proxy service traffic, implement service interworking, and service governance. The mesh proxies 303 and 305 can be configured to perform at least one of the following functions: service discovery, health checking, routing, load balancing, authentication and authorization, and observability. As shown in FIG. 3, the service mesh 300 also includes a control plane layer. The control plane layer can be a set of services running in a dedicated namespace, hosted by a hosting control plane component 301 in a machine / Pod 302. As shown in FIG. 3, the hosting control plane component 301 is in bidirectional communication with the mesh proxies 303 and 305. The hosting control plane component 301 is configured to perform some control management functions. For example, the hosting control plane component 301 receives telemetry data transmitted by the mesh proxies 303 and 305, which can further aggregate the telemetry data. The services, hosting control plane component 301 can also provide user-facing application programming interfaces (APIs) to more easily manipulate network behavior, provide configuration data to the mesh proxies 303 and 305, and the like.In the above operating environment, the data processing method as shown in FIG. 4 is provided by the present disclosure, which is applied to a data communication end including a heterogeneous device memory connected with at least one client and at least one server through a memory interconnection protocol. FIG. 4 is a flowchart of a data processing method according to an embodiment of the present disclosure. As shown in FIG. 4, the method can include the following steps: in step S401, using the heterogeneous device memory, storing the to-be-transmitted data sent by the client through the memory interconnection protocol. In the technical solution provided by the above step S401 of the present disclosure, the heterogeneous device memory is connected with at least one client and at least one server through a memory interconnection protocol, and is used to store the request data of at least one client and the response data generated by at least one server in response to the request data of the client. The heterogeneous device memory can be referred to as CXL accessory memory. The memory interconnection protocol is used to indicate the interconnection protocol of CXL cache coherence, and is used for high-bandwidth and low-latency device interconnection, aiming to help more efficient data transmission. Optionally, the to-be-transmitted data can be user-defined request data. In this embodiment, the client and the server can be connected to the same CXL-connected heterogeneous device memory through physical connection or CXL switch, and for each client or server, there are two message queues and corresponding data storage areas in the CXL-connected heterogeneous device memory. The message queue is used to deliver the reference as a request message or a response message, and the data storage area is used to store the original data of the request message / response message. For example, after responding to the to-be-transmitted data sent by the client through the memory interconnection protocol, the to-be-transmitted data can be stored in the data storage area corresponding to the request data in the heterogeneous device memory. In step S402, the request message corresponding to the to-be-transmitted data is obtained. In the technical solution provided by the above step S402 of the present disclosure, after the to-be-transmitted data sent by the client through the memory interconnection protocol is stored in the heterogeneous device memory, the request message corresponding to the to-be-transmitted data can be obtained, and the request message is used to request to transmit the to-be-transmitted data to the server. In this embodiment, the request message can be used to indicate the transmission order of the to-be-transmitted data. As introduced in the above step S401, the heterogeneous device memory includes two message queues. The request message queue includes a plurality of request entries corresponding to the to-be-transmitted data, and the request entry is used to indicate the transmission order of the to-be-transmitted data. Based on this, after the to-be-transmitted data is stored in the heterogeneous device memory through step S401, the request entry corresponding to the to-be-transmitted data can be determined, and then the request entry is appended to the request message queue, and the request entry is taken as the request message corresponding to the to-be-transmitted data.In this step, after storing the to-be-transmitted data into the heterogeneous device memory, the request item corresponding to the to-be-transmitted data can be determined, and the request item is appended to the request message queue to indicate the transmission order of the to-be-transmitted data. The request message queue includes multiple request items corresponding to the to-be-transmitted data, so that the multiple to-be-transmitted data can be transmitted in the correct order. In step S403, the request message is sent to the server. In the technical solution provided by the above step S403 of the present disclosure, after obtaining the request message corresponding to the to-be-transmitted data, the request message can be sent to the server. In this embodiment, the server can send a first polling request, and the first polling request is used to indicate the request message in the polling request message queue. After responding to the first polling request sent by the server, the request message to be polled by the server in the request message queue can be determined according to the first polling request. That is, the request item corresponding to the to-be-transmitted data to be polled by the server is determined according to the first polling request, and the polled request item is sent to the server. For example, the first polling request can be the arrival flag of the request item at the tail of the polling request message queue, that is, the identification information of the last request item in the request message queue. After obtaining the last request item in the request message queue according to the first polling request, the request item can be sent to the server. In step S404, the response result obtained by the server in response to the request message is stored in the heterogeneous device memory. In the technical solution provided by the above step S404 of the present disclosure, since the request message is used to indicate the request item to be polled by the server in the request message queue, based on this, after the request item is sent to the server through step S403. The server can access the to-be-transmitted data corresponding to the request item in the heterogeneous device memory according to the request item, and generate a corresponding response result according to the accessed to-be-transmitted data. That is, the response result is the response data generated by the server corresponding to the to-be-transmitted data, and the response result is output by the server through the memory interconnection protocol. In this embodiment, after the server generates the response result corresponding to the to-be-transmitted data, the server can output the response result through the memory interconnection protocol. After responding to the response result output by the server, the response result can be stored in the data storage area of the heterogeneous device memory. In step S405, the response result is sent to the client. In the technical solution provided by the above step S405 of the present disclosure, after storing the response result in the data storage area of the heterogeneous device memory through step S404, the response result can also be sent to the client, so that the client receives the response result corresponding to the to-be-transmitted data.In the embodiment, after storing the server-generated response result into the heterogeneous device memory, the response entry corresponding to the response result can be determined, and the response entry is appended to the response message queue. Based on this, after receiving the second polling request sent by the client, the response entry corresponding to the response result to be polled by the client can be determined based on the second polling request, and then the response result corresponding to the response entry is determined and sent to the client. The second polling request is used to poll the response message in the response message queue, and the response message is used to indicate the response entry corresponding to the response result stored in the response message queue. In steps S401 to S405, the heterogeneous device memory is used to store the to-be-transmitted data sent by the client through the memory interconnection protocol, and the server response request message is stored, and the response result corresponding to the to-be-transmitted data output through the memory interconnection protocol. That is, the client and the server of the embodiment of the present disclosure are connected to the same heterogeneous device memory, which can avoid the processes of expensive network round trip, memory copy, and data serialization / deserialization, so as to achieve the purpose of more efficient data transmission and data interaction, realize the technical effect of improving the data transmission efficiency between the client and the server, and further solve the technical problem of low data transmission efficiency. As an optional implementation, step S401 uses the heterogeneous device memory to store the to-be-transmitted data sent by the client through the memory interconnection protocol, including: in the heterogeneous device memory, using a service corresponding to a data communication end, determining a first data region corresponding to the client; and storing the to-be-transmitted data of the client monitored in the first data region. In the embodiment, for each client and server, there are two message queues and corresponding data storage regions in the heterogeneous device memory, wherein the message queues include a request message queue of the client sending to-be-transmitted data to the server, and a response message queue of the server sending a response result to the client. The request message queue is used to store a request entry corresponding to the to-be-transmitted data sent by the client to the server, and the response message queue is used to store a response entry corresponding to the response result sent by the server to the client. The request entry in the request message queue is used to indicate the order of the to-be-transmitted data sent by the client to the server, and the response entry in the response message queue is used to indicate the order of the response result sent by the server to the client. The data storage region includes a first data region of the to-be-transmitted data sent by the client to the server, and a second data region of the response result received by the client from the server.Optionally, since the data communication end comprises a server and a client, based on this, the service corresponding to the data communication end can comprise: the client sending to-be-transmitted data through the memory interconnection protocol, or the server generating a response result in response to the to-be-transmitted data. Wherein, the to-be-transmitted data sent by the client through the memory interconnection protocol can be stored in a first data area in the memory of the heterogeneous device, and the response result generated by the server in response to the to-be-transmitted data can be stored in a second data area in the memory of the heterogeneous device. For example, if the service corresponding to the data communication end is that the client sends to-be-transmitted data through the memory interconnection protocol, a first data area corresponding to the client can be determined in the memory of the heterogeneous device, and then the to-be-transmitted data of the detected client is stored in the first data area. As an optional implementation, storing the to-be-transmitted data of the detected client in the first data area comprises: controlling the memory allocator to allocate a first memory for the to-be-transmitted data in the first data area; and storing the to-be-transmitted data in the first memory. In this embodiment, when storing the to-be-transmitted data of the detected client in the first data area, the memory allocator can be controlled to allocate a first memory for the to-be-transmitted data in the first data area, and then the to-be-transmitted data is stored in the first memory. Optionally, by controlling the memory allocator to allocate memory, the problems of memory overflow and data loss can be avoided, so as to help improve the efficiency and security of data management. As an optional implementation, sending a request message to the server comprises: determining address information in the request message, wherein the address information is used to represent the storage position of the to-be-transmitted data in the first memory; and in response to a first polling request of the server, sending the address information in the polled request message to the server. In this embodiment, as described above, the request message can be a request entry corresponding to the to-be-transmitted data in the request message queue, and the request entry is used to indicate the transmission order of the to-be-transmitted data. Wherein, the request entry corresponds to the to-be-transmitted data, based on the request entry, the storage position of the to-be-transmitted data in the first memory can be determined, based on this, the request message in the request message queue can be polled, and then the polled request message is sent to the server. For example, since the address information is included in the request message, based on this, after responding to the first polling request of the server, the address information in the polled request message can be sent to the server, since the address information is used to represent the storage position of the to-be-transmitted data in the first memory, based on this, after receiving the address information in the request message, the server can access the to-be-transmitted data stored in the first memory according to the address information.In this step, address information is added in the request message, based on which, after polling the request message, the address information in the request message can be sent to the server, so that the server can directly access the to-be-transmitted data stored in the first memory according to the address information, simplifying the data acquisition process, reducing unnecessary data processing steps, and improving the response speed of the server. As an optional implementation, step S402, acquiring the request message corresponding to the to-be-transmitted data, includes: in the memory of the heterogeneous device, determining a request message queue corresponding to the client by using a service corresponding to the data communication end; and adding the request message in the request message queue. In this embodiment, the service corresponding to the data communication end includes a request service of the client and a response service of the server, and as known from the foregoing description, the memory of the heterogeneous device includes a request message queue corresponding to the client and a response message queue corresponding to the client. The request message queue is used to store a request entry corresponding to the to-be-transmitted data sent by the client to the server, and the response message queue is used to store a response entry corresponding to a response result sent by the server to the client. Based on this, when the request message corresponding to the to-be-transmitted data is acquired, it can be determined whether the data communication end is the client sending the to-be-transmitted data to the server or the client receiving the response result sent by the server. If the data communication end is the client sending the to-be-transmitted data to the server, the request message queue corresponding to the client can be determined in the memory of the heterogeneous device, and then the request message can be added in the request message queue. The request message can be a request entry. For example, after the request message queue corresponding to the client is determined, a request entry can be added at the tail of the request message queue to add the request message in the request message queue. The request entry is used to indicate the transmission sequence of the to-be-transmitted data of the client. As an optional implementation, after the request message is added in the request message queue, the data processing method further includes: adjusting an initial state of the request message to a first valid state, where the first valid state is used to indicate that the request message is allowed to be polled by the server. In this embodiment, the first valid state is used to indicate that the request message is successfully added to the request message queue, that is, the first valid state is used to indicate the arrival flag of the request message in the request message queue. That is, after the request message is added in the request message queue, the initial state of the request message can be adjusted to the first valid state to indicate that the request message is successfully added to the request message queue, and the server can poll the request message.Optionally, the first valid state can be represented by a number 1, that is, when the initial state of the request message is adjusted to the number 1, it indicates that the request message is successfully added to the request message queue, otherwise, if the initial state of the request message is adjusted to the number 0, it indicates that the request message is not added to the request message queue. Here, only as an example, the representation of the first valid state is not limited. In this step, since the first valid state is used to indicate that the request message is allowed to be polled by the server, based on this, after the request message is added to the request message queue, the initial state of the request message can be adjusted to the first valid state, so as to improve the real-time performance of the message, so that the server can respond to the request of the client in time without having to wait for the client to actively notify, thereby improving the data interaction efficiency. As an optional implementation, step S403, sending the request message to the server, comprising: in the case that the processor reads the request message of the first valid state, responding to the first polling request of the server, sending the polled request message to the server. In this embodiment, before waiting for the polling request of the server, the processor can poll the request message at the tail of the request message queue, wherein, when the state of the request message read by the processor is the first valid state, responding to the first polling request of the server, the polled request message can be sent to the server, so that the server can access the to-be-transmitted data corresponding to the request message. For example, the processor can read the arrival flag in the request entry at the tail of the request message queue, and when the arrival flag is read, responding to the first polling request of the server, the polled request entry can be sent to the server. In this step, during the idle time of waiting for the polling request of the server, the processor can poll and read the request message at the tail of the processing message queue, and thus when responding to the first polling request of the server, the polled request message of the first valid state can be directly sent to the server, so that the server can access the to-be-transmitted data faster, reducing the waiting time of the server, thereby achieving the purpose of speeding up the access of the server to the to-be-transmitted data. As an optional implementation, the data processing method comprises: in response to the change of the initial state of the request message, waking up the processor to read the request message. In this embodiment, when the initial state of the request message changes, the processor is woken up to read the request message. For example, when the initial state of the request message is adjusted to the first valid state, the processor is woken up to read the request message. In this step, when the initial state of the request message changes, the processor is woken up to read the request message in time, which can reduce the low processing efficiency of the processor caused by message backlog.Moreover, the processor is woken up to read the request message only when the initial state of the request message changes, so that the processor resources can be better utilized, and waste of the processor resources caused by keeping the processor in the reading state can be avoided, thereby improving the utilization of the processor resources. Alternatively, the foregoing mainly introduces the process of sending the to-be-transmitted data by the client to the server, and the process of generating the response result corresponding to the to-be-transmitted data by the server after responding to the to-be-transmitted data of the client is further introduced. As an optional implementation, in step S404, the response result obtained by the server in response to the request message is stored in the heterogeneous device memory, including: in the heterogeneous device memory, a second data area corresponding to the client is determined by using a service corresponding to the data communication end; and the response result corresponding to the to-be-transmitted data is stored in the second data area. In this embodiment, as known from the foregoing, the second data area is used to store the response result generated by the server in response to the to-be-transmitted data of the client, and based on this, if it is determined that the data is the response result generated by the server based on the to-be-transmitted data of the client, the second data area corresponding to the client can be determined in the heterogeneous device memory, and the second data area is used to store the response result generated by the server and corresponding to the to-be-transmitted data. For example, the first data area and the second data area are pre-allocated in the heterogeneous device memory, the first data area is used to store the to-be-transmitted data sent by the client to the server, and the second data area is used to store the response result generated by the server in response to the to-be-transmitted data of the client, and based on this, after the server outputs the response result through the memory interconnection protocol, the response result can be stored in the second data area. As an optional implementation, the response result corresponding to the to-be-transmitted data is stored in the second data area, including: the memory allocator is controlled to allocate a second memory for the response result in the second data area; and the response result is stored in the second memory. In this embodiment, when the response result corresponding to the to-be-transmitted data is stored in the second data area, the memory allocator can be controlled to allocate the second memory for the to-be-transmitted data in the second data area, and then the response result is stored in the second memory. Alternatively, the memory allocator is controlled to allocate the memory to store the response result, so that the problems of memory overflow and data loss can be avoided, thereby helping to improve the efficiency and security of data management.As an optional implementation, the data processing method further comprises: determining, in the heterogeneous device memory, a response message queue corresponding to the client by using the service corresponding to the data communication end; adding, in the response message queue, a response message corresponding to the response result, wherein the response message is used to indicate that the server completes generating the response result; and sending the response result to the client, comprising: responding to the second polling request of the client, polling the response message in the response message queue, and sending the response result in the second data area to the client by using the response message. In this embodiment, the response message queue corresponding to the response result generated by the server based on the to-be-transmitted data of the client is included in the heterogeneous device memory. As known from the foregoing description, the service corresponding to the data communication end can be used for the client to send the to-be-transmitted data to the server, or the client to receive the response result sent by the server. Based on this, if the service corresponding to the data communication end is used for the client to receive the response result sent by the server, the response message queue corresponding to the client can be determined in the heterogeneous device memory, and then the response message corresponding to the response result sent by the server can be added in the response message queue. The response message can be a response entry, which is used to indicate the transmission sequence of the response result. Optionally, the second polling request is used to indicate that the client polls the response result generated by the server. Based on this, after receiving the second polling request of the client, the response message in the response message queue can be polled, and then the response result of the response message in the second data area is determined and sent to the client. As an optional implementation, after adding the response message corresponding to the response result in the response message queue, the data processing method further comprises: adjusting the initial state of the response message to a second valid state, wherein the second valid state is used to indicate that the response message is allowed to be polled by the client. In this embodiment, the second valid state is used to indicate that the response message is successfully added to the response message queue, that is, the second valid state is used to indicate the arrival flag of the response message in the response message queue. After adding the response message in the response message queue, the initial state of the response message can be adjusted to the second valid state to indicate that the response message is successfully added to the response message queue, and the client can poll the response message after the response message is successfully added to the response message queue. Optionally, the second valid state can be represented by the number 1, that is, when the initial state of the response message is adjusted to the number 1, it indicates that the response message is successfully added to the response message queue, otherwise, if the initial state of the response message is adjusted to the number 0, it indicates that the response message is not added to the response message queue.In this step, after successfully adding the response message corresponding to the response result to the response message queue, the initial state of the response message can be adjusted to the second valid state in time, realizing effective management of the response message, and after adjusting the initial state of the response message to the second valid state, the client can poll the response message in time, thereby obtaining the response result corresponding to the response message, improving the real-time performance of the response result, reducing the waiting time of the client, and improving the user experience. As an optional implementation, the second polling request of the client is responded to, the response message in the response message queue is polled, and the response result in the second data area is sent to the client by using the response message, including: in the case that the processor reads the response message in the second valid state, the second polling request of the client is responded to, the response message in the response message queue is polled, and the response result in the second data area is sent to the client by using the response message. In this embodiment, the processor can poll the response message queue, and in the case that the state corresponding to the response message in the response message queue polled by the processor is the second valid state, it is indicated that the response message is successfully added to the response message series, at this time, if the second polling request of the client is responded to, the response message in the response message queue can be polled, and the response result corresponding to the response message in the second data area is determined, and then the response result is sent to the client. For example, the processor can poll and read the arrival flag in the response entry at the tail of the response message queue, and when the arrival flag is read, the response result corresponding to the polled response entry can be sent to the client in response to the second polling request of the client. As an optional implementation, the data processing method further includes: in response to the change of the initial state of the response message, the processor is woken up to read the response message. In this embodiment, when the initial state of the response message changes, the processor is woken up to read the response message. For example, when the initial state of the response message is adjusted to the second valid state, the processor is woken up to read the response message. In this step, when the initial state of the response message changes, the processor is woken up to read the response message in time, which can reduce the low processing efficiency of the processor caused by message accumulation. Moreover, the processor is woken up to read the response message only when the initial state of the response message changes, which can better utilize the resources of the processor, avoid resource waste caused by the processor being in a reading state all the time, and thereby improve the utilization rate of the processor resources. As an optional implementation, the data processing method further includes: sending a response notification message to the server, wherein the response notification message is used to indicate the moment when the response message is sent to the client.In the embodiment, the processor is configured to send a response notification message to the server after the server sends the response message to the client, so as to remind the server of the time when the response message reaches the client. For example, after the processor sends the response message to the server in response to the client, and the client receives the response message, the processor can send the response notification message to the server, so as to remind the server of the time when the client receives the response message. As an optional implementation, the data processing method further includes sending a request notification message to the server, wherein the request notification message is used to indicate the time when the request message reaches the server. In the embodiment, the request notification message is used to send the request notification message to the client after the client sends the request message to the server, so as to remind the client of the time when the request message reaches the server. For example, after the processor sends the request message to the server in response to the client, and the server receives the request message, the processor can send the request notification message to the client, so as to remind the client of the time when the server receives the request message. In the above steps, the data to be transmitted sent by the client through the memory interconnection protocol is stored in the heterogeneous device memory, and the response result corresponding to the data to be transmitted output by the server in response to the request message is also stored in the heterogeneous device memory, that is, the client and the server are connected to the same heterogeneous device memory, which can avoid the processes of expensive network round trip, memory copy and data serialization / deserialization, so as to achieve the purpose of more efficient data transmission and data interaction, realize the technical effect of improving the data transmission efficiency between the client and the server, and further solve the technical problem of low data transmission efficiency. In the above running environment, the disclosure provides another data processing method as shown in FIG. 5, which is applied to a data communication end, and the data communication end includes a heterogeneous device memory connected to at least one client and at least one server through a memory interconnection protocol. FIG. 5 is a flowchart of another data processing method according to an embodiment of the disclosure. In step S501, the heterogeneous device memory is used to store the tensor data to be transmitted sent by the client through the memory interconnection protocol. In the technical solution provided by the above step S501 of the disclosure, the heterogeneous device memory is connected to at least one client and at least one server through a memory interconnection protocol, and is used to store the request data of at least one client and the response data generated by at least one server in response to the request data of the client, wherein the heterogeneous device memory can be referred to as a CXL accessory memory. The memory interconnection protocol is used to indicate the interconnection protocol of CXL cache coherence, and is used for high-bandwidth and low-latency device interconnection, and aims to help more efficient data transmission. Optionally, the data to be transmitted can be user-defined request data.In this embodiment, the client and the server can be connected to the same CXL-connected heterogeneous device memory through a physical connection or a CXL switch, and for each client or server, there are two message queues and corresponding data storage areas in the CXL-connected heterogeneous device memory, wherein the message queue is used to deliver the reference as a request message or a response message, and the data storage area is used to store the original data of the request message / response message. For example, after responding to the tensor data to be transmitted sent by the client through the memory interconnection protocol, the tensor data to be transmitted can be stored in the data storage area corresponding to the request message in the heterogeneous device memory. Step S502, obtaining a request message corresponding to the tensor data to be transmitted. In the technical solution provided by the above step S502 of the present disclosure, the request message is used to request to transmit the tensor data to be transmitted to the server. In this embodiment, since the request message queue includes request entries corresponding to multiple request messages, based on this, after storing the tensor data to be transmitted in the heterogeneous device memory through step S501, the request entry corresponding to the tensor data to be transmitted can be determined, and then the request entry is appended to the request message queue, wherein the request entry is used to indicate the transmission order of the tensor data to be transmitted. In this step, after storing the tensor data to be transmitted in the heterogeneous device memory, the request entry corresponding to the tensor data to be transmitted can be determined and appended to the request message queue to indicate the transmission order of the tensor data to be transmitted. The request message queue includes request entries corresponding to multiple request messages, so that the data can be transmitted in the correct order. Step S503, in response to a first polling request of the server, sending the polled request message to the server. In the technical solution provided by the above step S503 of the present disclosure, the first polling request is used to indicate the polling of the request message in the request message queue. In this embodiment, the server can send the first polling request, and after responding to the first polling request sent by the server, the request message to be polled in the request message queue by the server can be determined according to the first polling request, that is, the request entry corresponding to the tensor data to be transmitted to be polled by the server is determined according to the first polling request, and the polled request message is sent to the server. For example, the first polling request can be the arrival flag of the request entry at the tail of the request message queue, that is, the identification information of the last request entry in the request message queue, and after obtaining the last request entry in the request message queue according to the first polling request, the request entry can be sent to the server. Step S504, storing the response result obtained by the server in response to the request message by using the heterogeneous device memory.In the technical scheme provided in the foregoing step S504 of the present disclosure, since the request message is used to indicate the request entry in the request message queue to be polled by the server, based on this, after the request entry is sent to the server through step S503, the server can access the to-be-transmitted tensor data corresponding to the request entry in the heterogeneous device memory according to the request entry, and generate a corresponding response result according to the accessed to-be-transmitted tensor data. The response result is output by the server through the memory interconnection protocol, and corresponds to the to-be-transmitted tensor data. In this embodiment, after the server generates the response result corresponding to the to-be-transmitted tensor data, the server can output the response result through the memory interconnection protocol, and after the response result is output to the server, the response result can be stored in the heterogeneous device memory. Step S505, in response to the second polling request of the client, the polled response result is sent to the client. In the technical scheme provided in the foregoing step S505 of the present disclosure, the second polling request is used to indicate the response message in the response message queue, and the response message is used to indicate the response entry corresponding to the response result stored in the response message queue. In this embodiment, after the response result generated by the server is stored in the heterogeneous device memory, the response entry corresponding to the response result can be determined, and the response entry is appended to the response message queue. Based on this, after the second polling request sent by the client is received, the response entry corresponding to the response result to be polled by the client can be determined based on the second polling request, and then the response result corresponding to the response entry is determined, and the response result is sent to the client. In the foregoing steps S501 to S505, the to-be-transmitted tensor data sent by the client through the memory interconnection protocol is stored in the heterogeneous device memory, and the response result corresponding to the to-be-transmitted tensor data output by the server through the memory interconnection protocol is stored in the heterogeneous device memory, that is, the client and the server are connected to the same heterogeneous device memory, which can avoid the processes of expensive network round trip, memory copying, and data serialization / deserialization, achieves the purpose of more efficient data transmission and data interaction, realizes the technical effect of improving the data transmission efficiency between the client and the server, and further solves the technical problem of low data transmission efficiency. FIG. 6 is a schematic diagram of a data processing system according to an embodiment of the present disclosure. The data processing system 600 includes a data communication end 601, at least one client 602, and at least one server 603, wherein the data communication end 601 includes a heterogeneous device memory connected to the at least one client 602 and the at least one server 603 through a memory interconnection protocol. The client 602 is configured to send to-be-transmitted data.In the embodiment, the to-be-transmitted data can be to-be-transmitted tensor data, which is used to indicate user-defined request data. The client 602 can send the to-be-transmitted data to the data communication end 601. The data communication end 601, connected with at least one client 602, is used to store the to-be-transmitted data sent by the client through a memory interconnection protocol by using a heterogeneous device memory; obtain a request message corresponding to the to-be-transmitted data, wherein the request message is used to request transmission of the to-be-transmitted data to a server 603; and send the request message to the server. In the embodiment, the heterogeneous device memory is connected with at least one client and at least one server through the memory interconnection protocol, and is used to store request data of at least one client and response data generated by at least one server in response to the request data of the client, wherein the heterogeneous device memory can be referred to as a CXL-attached memory. The memory interconnection protocol is used to indicate a CXL cache coherent interconnection protocol, which is used for high-bandwidth and low-latency device interconnection and aims to help more efficient data transmission. Optionally, the to-be-transmitted data can be user-defined request data. The data communication end is used to store the to-be-transmitted data sent by the client through the memory interconnection protocol by using the heterogeneous device memory, and obtain a request message corresponding to the to-be-transmitted data, and then send the request message to the server. The request message is used to request transmission of the to-be-transmitted data to the server. The server 603, connected with the data communication end 601, is used to output a response result corresponding to the to-be-transmitted data through the memory interconnection protocol in response to the request message; wherein the data communication end is used to store the response result by using the heterogeneous device memory; and send the response result to the client. In the embodiment, after responding to the request message, the server can access the to-be-transmitted data corresponding to the first data area of the request message based on the request message, and then generate a response result corresponding to the to-be-transmitted data, and output the response result to the data communication end through the memory interconnection protocol. Optionally, after receiving the response result, the data communication end can store the response result in the heterogeneous device memory, and send the response result to the client. In the embodiment, the data communication end includes a heterogeneous device memory connected with at least one client and at least one server through a memory interconnection protocol, wherein the client is used to send to-be-transmitted data; the data communication end is used to store the to-be-transmitted data sent by the client through the memory interconnection protocol by using the heterogeneous device memory; obtain a request message corresponding to the to-be-transmitted data, wherein the request message is used to request transmission of the to-be-transmitted data to a server; and send the request message to the server; and the server is used to output a response result corresponding to the to-be-transmitted data through the memory interconnection protocol in response to the request message; wherein the data communication end is used to store the response result by using the heterogeneous device memory; and send the response result to the client.That is, the data communication end uses the heterogeneous device memory to store the tensor data to be transmitted sent by the memory interconnection protocol of the client, and uses the heterogeneous device memory to store the response result corresponding to the tensor data to be transmitted output by the memory interconnection protocol of the server in response to the request message, by connecting the client and the server to the same heterogeneous device memory, the expensive network round trip, memory copy and data serialization / deserialization process can be avoided, the purpose of more efficient data transmission and data interaction is achieved, the technical effect of improving the data transmission efficiency between the client and the server is realized, and the technical problem of low data transmission efficiency is solved. Next, the technical solutions of the embodiments of the present disclosure will be further introduced in combination with the preferred embodiments. At present, when data transmission between devices is performed, the shared memory technology is mainly used to promote the transmission of tensor data in a single physical host. This method is suitable for data interaction between multiple virtual machines running on a physical host, but does not fully develop the potential of CXL, such as memory pooling and inter-node access functions, thus the method additionally increases memory consumption and greatly depends on the existing network transmission mechanism, and there is the technical problem of low data transmission efficiency. However, the data processing method of the embodiments of the present disclosure realizes the request of the client, the execution of the server and the response of the client through three steps. In the request stage, the client first writes the user-defined request data into the pre-allocated memory of the data area of the heterogeneous device memory, and the memory is aligned by cache line to realize non-cacheable sharing. Next, the client appends a request entry to the request message queue. Before waiting for the response of the server, the server polls the arrival flag in the request entry at the tail of the request message queue. In the execution stage, when responding to a new request, the server uses the offset in the request entry to process the request. If the server is ready for response data, the response data is written into the pre-allocated memory of the data area of the heterogeneous device memory. In order to reduce memory copy, the server can directly use the pre-allocated memory during execution. In the response stage, the server appends a response entry to the response message queue. Then, the client sending the request message polls the response entry in the response message queue, and when the client confirms that the response message is received, the process is considered to be completed. That is, by setting the heterogeneous device memory to store the request data of the client and the response data of the server, the expensive network round trip, memory copy and data serialization / deserialization process can be avoided, the purpose of more efficient data transmission and data interaction is achieved, the technical effect of improving the data transmission efficiency between the client and the server is realized, and the technical problem of low data transmission efficiency is solved. Next, the memory interconnection protocol is introduced.Memory interconnect protocol is used to indicate the interconnect protocol of CXL cache consistency, used for high bandwidth and low latency device interconnection, aiming to help the efficient operation of the system, especially the system with accelerator. It can be used to connect devices such as processors (Central Processing Unit, CPU for short), accelerators (Accelerator), memory buffers (Memory Buffer, MB for short) and intelligent network interface cards (Network Interface Card, NIC for short), and even used in machine learning, high performance computing and other scenarios. CXL reuses three types of protocols based on PCIE 5.0, which are CXL.io, CXL.cache and CXL.memory.

[0003] CXL.io is a protocol for initialization, linking, detecting devices and enumeration, and registering access. It provides a non-consecutive load / store interface for input / output (Input / Output, I / O for short) devices, similar to PCIE Gen5. CXL.cache is a protocol that defines the interaction between the host (usually CPU) and the device (for example, CXL memory module or accelerator). It allows CXL devices to access data cached in the host memory with low latency.

[0004] CXL.memory is responsible for solving the access of the processor to the internal memory of the device. CXL maintains a consistent memory space between the CPU and the device.

[0005] CXL3.0 protocol as the latest version, its core function, in the ability to support sharing data between different hosts, and can guarantee consistency. Optionally, CXL additional memory is also called host managed device memory (Hard Disk Memory, HDM for short) oCurrently, starting from Linux kernel 5.10, the CXL2.0 driver is gradually merged into Linux upstream. In Linux, the CXL memory device is identified as a new ACPI namespace device (for example, ACPI 0017), and is probed and configured like a typical PCIe device, and messages are delivered through the MMIO mail box. The operating system can obtain the relevant information of the resource on the CXL through the PCIe driver by reading the CXL early description table (CEDT), and then the CXL driver can help the host bridge (HB) to establish the connection point of the memory interleave. Once the kernel memory space is reserved for the CXL attached memory through the CXL driver, both the application and the kernel can access the CXL attached memory. There are multiple utilities that can manage the CXL attached memory, for example, ndctl, cxl and daxctl oWhen running on a CXL-enabled operating system, even without installing a CXL 2.0 driver, developers can identify the memory on CXL using the EF I _MEMORY_SP attribute marked by the B I OS. Then developers can initialize the CXL-attached memory in two modes using daxct I : application-managed memory (e.g., devdax) or system-ram OS kernel-managed memory (e.g., system-ram). In the devdax mode, users can map the CXL-attached memory to the application's virtual memory space directly through the mmap system call. In system-ram, the CXL-attached memory is configured as a "CPU I ess" NUMA node, similar to the t i er~ memory solution for persistent memory. Therefore, developers can freely use the CXL-attached memory by setting memory affinity. Among them, the CXL3.0 standard supports memory sharing of CXL-attached memory pools. FIG. 7 is a schematic diagram of the difference between the memory pool already supported in CXL2.0 and the coherent memory sharing in CXL3.0 according to an embodiment of the present disclosure. As shown in FIG. 7, in CXL2.0, the memory spaces of different devices can build a single remote memory pool, which can be further divided and attached to multiple hosts. The partitioned memory space is attached to the host as a continuous range of host physical addresses. Each host can access the memory allocated to them. However, each partition of the remote memory pool can only be connected to one host, so it cannot provide data sharing functions. In contrast, CXL3.0 allows CXL-attached memory to be shared by all hosts in a coherent domain. Therefore, CXL3.0 provides the ability to share a remote memory pool with multiple hosts. It defines a mechanism to enforce hardware cache coherence between copies of the same data stored on different machines. For example, host a and host b can both access the same partition, for example, partition 2 shown in FIG. 7. In CXL3.0, the device memory exposed from the host and shared among multiple hosts is called structure-connected memory (F I ash-Assoc i ated Memory, FAM for short) oFAM uses port-based routing (PBR) links to support scalable sharing, which is referred to as global FAMo. Global FAM devices currently employ a single link construct that supports multiple host interfaces. This means that the host interface for an incoming CXL.mem request is determined by the source PBR ID field included in the PBR message. Next, TensorPipe, which is used for tensor data transmission in distributed machine learning systems, is introduced.

[0006] TensorPipe is a library designed specifically for machine learning applications, which is used to efficiently transfer tensor data between different machines. In distributed machine learning training scenarios, especially when multiple GPUs and multiple nodes are used, there is a need to efficiently transfer large amounts of data between different devices. The design goal of TensorPipe is to simplify and optimize such cross-device and cross-machine data transfer.

[0007] TensorPipe provides a simple Application Programming Interface (API) o that can transparently handle various hardware and network technologies. For example: CPU, GPU, InfiniBand, and Ethernet. The core advantages of TensorPipe include its asynchronous and non-blocking performance, which means that data transfer can be initiated without blocking computation, thereby improving overall efficiency.

[0008] TensorPipe is usually designed to seamlessly integrate with deep learning frameworks such as PyTorch, but TensorPipe can also be used with other systems. In PyTorch, TensorPipe is used as the underlying communication backend for the remote procedure call framework to support distributed model training and inference. In summary, TensorPipe is designed to meet the high-performance cross-device communication needs in deep learning, and it improves the efficiency of distributed training and inference by reducing latency and improving throughput.

[0009] TensorPipe and zeroMQ communication library, the communication channel between the first client and the second client is abstracted into a pipe (Pipe), and the processes of the two clients write data from one end of the pipe and read data from the other end of the pipe. FIG. 8 is a schematic diagram of TensorPipe data communication according to an embodiment of the present disclosure, as shown in FIG. 8, TensorPipe has two sub-components in the process of transmitting information: a transport component (Transport) and a channel component (Channel). Among them, Transport is mainly responsible for transmitting some control information and metadata (metadata) in the message (Message) between the two clients. For example: the sender, receiver, timestamp and other information of the message, and the payloads. Among them, the payloads are the actual content of the message, that is, the actual content that the user wants to transmit. Since these data are usually small, it is necessary to pursue as low transmission delay as possible, and the channel component (Channel) is mainly responsible for transmitting tensor data in the message (Message). Channel is mainly optimized for high throughput. For example, as shown in FIG. 8, the data transmission between the first client and the second client can be represented by the following steps: step S801, the transport component transmits control information and metadata in the message. In this embodiment, the transport component Transport is mainly responsible for transmitting the control information and metadata (metadata) in the message (Message) of the first client to the second client. Step S802, the transport component receives a response message. In this embodiment, after transmitting the control information and metadata in the message to the second client through step S801, the second client can generate a response message, and then transmit the response message to the first client through the transport component. Step S803, the transport component transmits the payloads. In this embodiment, the transport component can transmit the payloads to be sent by the first client to the second client. Step S804, the channel component transmits tensor data. In this embodiment, the channel component can transmit the tensor data of the first client to the second client.FIG. 9 is a schematic diagram of a transport layer according to an embodiment of the present disclosure. As shown in FIG. 9, the transport mechanisms currently supported by TensorPipe at the transport layer include shared memory (SHM), remote direct memory access (RDMA), and transmission control protocol (TCP). Through the transport layer, a connection object representing a point-to-point communication can be created, which supports basic write and read operations. The initialization of the connection and the implementation of the write / read operations depend on the type of transport employed. For example, RDMA transport utilizes ibverbs to perform the write / read tasks of the connection, while TCP transport relies on the libuv library to perform these operations. FIG. 10 is a schematic diagram of a CXL-based TensorPipe according to an embodiment of the present disclosure. As shown in FIG. 10, the CXL-connected heterogeneous device memory is utilized to avoid expensive network round trips, memory copies, and (de)serialization processes. Multiple clients / servers are connected to the same CXL-connected heterogeneous device memory through physical links or a CXL switch. For each TensorPipe client / server, there are two message queues and the corresponding data areas in the CXL-connected HDM. The two message queues include a request message queue and a response message queue, and the message queues are responsible for delivering references to the request / response buffers, while the data areas store the raw data of the requests / responses. Each entry in the message queue is 64 bits in size, including an embedded reference (offset) to the data area and a one-bit arrival flag. A user-space level memory allocator is used to allocate memory for the request / response data. The memory allocator manages the CXL-connected heterogeneous device memory by mapping the device memory area. The control plane, similar to a conventional remote procedure call (RPC), TensorPipe maintains at least one TensorPipe service on each physical server. When an application is deployed, it connects to such a service, and the service will allocate global addresses for the message queues and data areas in the CXL-connected HDM for the server and the client. Then, the server and the client follow a typical handshake protocol to establish a transport connection.The data plane, TensorPipe, includes three steps: a request by the TensorPipe client, an execution by the TensorPipe server, and a response to the TensorPipe client. The request phase: the client first writes user-defined request data into pre-allocated memory in the data region, which is aligned to the cache line to achieve non-cacheable sharing. Next, the client appends an entry to the request message queue. There is no need to wait for the sending of the next request before waiting for the response of the server. Meanwhile, the server polls the arrival flag in the tail entry of the request message queue. The execution phase: once a new request is received, the server uses the offset in the entry to process the request. If the server is ready with the response data, it writes it into the pre-allocated memory in the data region. To reduce memory copying, the server can directly use the pre-allocated memory during execution. The response phase: the server appends an entry to the response message queue. Then, the client that sent the request polls the entry in the response message queue. When the client confirms the receipt of the response, the process is considered complete. Optionally, the CXL-optimized TensorPipe needs a notification mechanism to inform the client or server when a request / response arrives to ensure that both parties can handle the request / response in time. Based on this, an optimized polling mechanism is used. However, when pursuing low latency, using an interrupt can lead to a high cost. To obtain the effect of low latency that meets the conditions, the polling mechanism can be used on the CXL HDM to detect incoming requests / responses. In this method, the CPU reads the arrival flag of the request / response entry and starts processing when the flag is valid. However, because the arrival flag needs to be read and verified multiple times, the CPU can perform unnecessary repeated work. To reduce the problem of repeated access to the memory location during busy polling, two special functions (monitor and mwait) designed for Intel processors with Streaming SIMD Extensions 3 (SSE3) and their user-mode equivalent instructions (umonitor and umwait) are used. The client / server can use the monitor instruction for the cache line of the circular buffer. Then, the mwait instruction is executed to suspend the work of the CPU, thereby saving energy. When the monitored data is modified by the other party, the CPU is immediately awakened. This method can effectively reduce the use of the CPU and improve the performance of memory polling. Table 1 shows the data transfer delay corresponding to different transmission mechanisms. As shown in Table 1, TensorPipe using CXL as a transmission mechanism has at least 2 times lower latency than using UV library. Compared with SHM transmission that utilizes local shared memory but cannot support inter-node communication, it shows similar performance degradation (only 20%) In the embodiments of the present disclosure, the heterogeneous device memory connected by CXL technology is used to avoid the delay of network transmission, the process of memory copy and data serialization / deserialization, and to realize efficient data interaction. Between multiple clients and servers, the shared memory mechanism connected by physical link or CXL switch is used to efficiently transfer messages and data. Two message queues and corresponding data storage areas are allocated for each client in the CXL connected heterogeneous device memory, wherein the message queue is used to transfer the request / response reference, and the data storage area is used to store the actual request / response data; a memory allocator is used to manage the CXL connected heterogeneous device memory by mapping the device memory area, which reduces memory consumption and improves memory usage efficiency. In order to reduce the delay caused by interrupts, an optimized polling mechanism based on CXL heterogeneous device memory is used to detect incoming requests / responses, thereby reducing the performance overhead caused by processor polling. It should be noted that the user information (including but not limited to user device information, user personal information, etc.) and data (including but not limited to data for analysis, stored data, displayed data, etc.) involved in the present disclosure are all information and data authorized by the user or fully authorized by all parties, and the collection, use and processing of related data need to comply with relevant laws, regulations and standards of relevant countries and regions, and provide corresponding operation portal for user to choose authorization or refusal. It should be noted that for the foregoing method embodiments, in order to simply describe, they are all expressed as a combination of a series of actions, but those skilled in the art should know that the present disclosure is not limited to the action order described, because according to the present disclosure, certain steps can be performed in other orders or simultaneously. Secondly, those skilled in the art should also know that the embodiments described in the specification all belong to preferred embodiments, and the actions and modules involved are not necessarily necessary for the present disclosure. Through the above description of the embodiments, those skilled in the art can clearly understand that the method according to the above embodiments can be realized by means of software plus the necessary general hardware platform, and of course can also be realized by hardware.Based on such understanding, the technical solutions of the present disclosure can be embodied in the form of a software product, and the computer software product is stored in a storage medium (such as a ROM / RAM, a magnetic disk, or an optical disc), and includes a plurality of instructions to cause a terminal device (which can be a mobile phone, a computer, a server, or a network device, etc.) to execute the method described in each embodiment of the present disclosure. According to the embodiments of the present disclosure, a data processing apparatus for implementing the above data processing method is also provided, and FIG. 11 is a schematic diagram of a data processing apparatus according to an embodiment of the present disclosure. As shown in FIG. 11, the data processing apparatus 1100 includes a first storage unit 1101, a first acquisition unit 1102, a first sending unit 1103, a second storage unit 1104, and a second sending unit 1105. oThe first storage unit 1101 is configured to store, by using the heterogeneous device memory, the to-be-transmitted data sent by the client through the memory interconnection protocol; the first obtaining unit 1102 is configured to obtain a request message corresponding to the to-be-transmitted data, wherein the request message is used to request transmission of the to-be-transmitted data to the server; the first sending unit 1103 is configured to send the request message to the server; the second storage unit 1104 is configured to store, by using the heterogeneous device memory, a response result obtained by the server in response to the request message, wherein the response result is output by the server through the memory interconnection protocol and corresponds to the to-be-transmitted data; and the second sending unit 1105 is configured to send the response result to the client. It should be noted that the first storage unit 1101, the first obtaining unit 1102, the first sending unit 1103, the second storage unit 1104, and the second sending unit 1105 correspond to steps S401 to S405 in Embodiment 1, and the five modules have the same instances and application scenarios as the corresponding steps, but are not limited to the content disclosed in Embodiment 1. It should be noted that the modules or units described above can be hardware components or software components stored in a memory (for example, the memory 104) and processed by one or more processors (for example, the processors 102a, 102b, …, 102n), or the modules can be run in the computer terminal 10 provided in Embodiment 1 as part of the device. According to the embodiments of the present disclosure, a data processing apparatus for implementing the data processing method is further provided, and FIG. 12 is a schematic diagram of another data processing apparatus according to an embodiment of the present disclosure. As shown in FIG. 12, the data processing apparatus 1200 includes a third storage unit 1201, a second obtaining unit 1202, a third sending unit 1203, a fourth storage unit 1204, and a fourth sending unit 1205 oThe third storage unit 1201 is configured to store tensor data to be transmitted sent by the client through the memory interconnection protocol by using the heterogeneous device memory; the second acquisition unit 1202 is configured to acquire a request message corresponding to the tensor data to be transmitted, wherein the request message is used to request transmission of the tensor data to be transmitted to the server; the third sending unit 1203 is configured to send the polled request message to the server in response to the first polling request of the server; the fourth storage unit 1204 is configured to store a response result obtained by the server in response to the request message by using the heterogeneous device memory, wherein the response result is output by the server through the memory interconnection protocol and corresponds to the tensor data to be transmitted; and the fourth sending unit 1205 is configured to send the polled response result to the client in response to the second polling request of the client, wherein the response result is used to train the target model. It should be noted that the third storage unit 1201, the second acquisition unit 1202, the third sending unit 1203, the fourth storage unit 1204, and the fourth sending unit 1205 correspond to steps S501 to S505 in Embodiment 1, and the five modules have the same instances and application scenarios as the corresponding steps, but are not limited to the content disclosed in Embodiment 1. It should be noted that the modules or units described above can be hardware components or software components stored in the memory (for example, the memory 104) and processed by one or more processors (for example, the processors 102a, 102b, …, 102n), and the modules can also be run in the computer terminal 10 provided in Embodiment 1 as part of the device. It should be noted that the preferred embodiments involved in the above embodiments of the present disclosure have the same scheme, application scenario, and implementation process as the scheme provided in Embodiment 1, but are not limited to the scheme provided in Embodiment 1. Embodiment 3The memory can be used to store software programs and modules, such as program instructions / modules corresponding to the method and device in the embodiments of the present disclosure. The processor executes various functions and data processing by running the software programs and modules stored in the memory, that is, implements the method in the above embodiments. The memory can include a high-speed random access memory, and can also include a non-volatile memory, such as one or more magnetic storage devices, flash memories, or other non-volatile solid-state memories. In some examples, the memory can further include a memory remotely arranged with respect to the processor, and the remote memory can be connected to the electronic device through a network. Examples of the above network include but are not limited to the Internet, an intranet, a local area network, a mobile communication network, and a combination thereof. The processor can call information and application programs stored in the memory through the transmission device to perform the following steps: storing, by using the heterogeneous device memory, the to-be-transmitted data sent by the client through the memory interconnection protocol; obtaining a request message corresponding to the to-be-transmitted data, wherein the request message is used to request to transmit the to-be-transmitted data to the server; sending the request message to the server; storing, by using the heterogeneous device memory, a response result obtained by the server in response to the request message, wherein the response result is output by the server through the memory interconnection protocol and corresponds to the to-be-transmitted data; and sending the response result to the client. Optionally, the processor can further execute program codes of the following steps: determining, by using a service corresponding to the data communication end in the heterogeneous device memory, a first data area corresponding to the client; and storing, in the first data area, the to-be-transmitted data of the client monitored. Optionally, the processor can further execute program codes of the following steps: controlling the memory allocator to allocate a first memory for the to-be-transmitted data in the first data area; and storing the to-be-transmitted data in the first memory. Optionally, the processor can further execute program codes of the following steps: determining address information in the request message, wherein the address information is used to represent a storage position of the to-be-transmitted data in the first memory; and sending, to the server, the address information in the request message polled in response to a first polling request of the server. Optionally, the processor can further execute program codes of the following steps: determining, by using a service corresponding to the data communication end in the heterogeneous device memory, a request message queue corresponding to the client; and adding the request message in the request message queue. Optionally, the processor can further execute program codes of the following steps: adjusting an initial state of the request message to a first valid state, wherein the first valid state is used to indicate that the request message is allowed to be polled by the server. Optionally, the processor can further execute program codes of the following steps: adjusting an initial state of the request message to a first valid state, wherein the first valid state is used to indicate that the request message is allowed to be polled by the server.Optionally, the processor can further execute program codes of the following steps: in response to the initial state of the response message changing, waking up the processor to read the response message. Optionally, the processor can further execute program codes of the following steps: in the heterogeneous device memory, determining, by using the service corresponding to the data communication end, a second data area corresponding to the client; and storing, in the second data area, the response result corresponding to the to-be-transmitted data. Optionally, the processor can further execute program codes of the following steps: in the heterogeneous device memory, determining, by using the service corresponding to the data communication end, a second data area corresponding to the client; and storing, in the second data area, the response result corresponding to the to-be-transmitted data. Optionally, the processor can further execute program codes of the following steps: in the heterogeneous device memory, determining, by using the service corresponding to the data communication end, a response message queue corresponding to the client; adding, in the response message queue, a response message corresponding to the response result, wherein the response message is used to indicate that the server has completed generating the response result; and sending the response result to the client, including: responding to a second polling request of the client, polling the response message in the response message queue, and sending the response result in the second data area to the client by using the response message. Optionally, the processor can further execute program codes of the following steps: adjusting the initial state of the response message to a second valid state, wherein the second valid state is used to indicate that the response message is allowed to be polled by the client. Optionally, the processor can further execute program codes of the following steps: in the case that the processor reads the response message in the second valid state, responding to a second polling request of the client, polling the response message in the response message queue, and sending the response result in the second data area to the client by using the response message. Optionally, the processor can further execute program codes of the following steps: in response to the initial state of the response message changing, waking up the processor to read the response message. Optionally, the processor can further execute program codes of the following steps: sending a response notification message to the server, wherein the response notification message is used to indicate a time point at which the response message is sent to the client. Optionally, the processor can further execute program codes of the following steps: sending a request notification message to the server, wherein the request notification message is used to indicate a time point at which the request message is sent to the server.According to the embodiment of the present disclosure, the heterogeneous device memory storage client transmits the to-be-transmitted data sent by the memory interconnection protocol, and the heterogeneous device memory storage server responds to the request message and outputs the response result corresponding to the to-be-transmitted data through the memory interconnection protocol, that is, the client and the server are connected to the same heterogeneous device memory, which can avoid the expensive network round trip, memory copy and data serialization / deserialization process, achieve more efficient data transmission and data interaction, realize the technical effect of improving the data transmission efficiency between the client and the server, and further solve the technical problem of low data transmission efficiency. It can be understood by those skilled in the art that the structure shown in FIG. 13 is only schematic, and the electronic device can also be a smart phone (such as an Android phone, an iOS phone, etc.), a palm computer, a mobile Internet device (Mobile Internet Devices, MIDs for short), a tablet computer (Portable Android Device, PAD for short), and other terminal devices. The FIG. 13 does not limit the structure of the above-mentioned electronic device. For example, the electronic device can further include more or fewer components (such as a network interface, a display device, etc.) than those shown in the FIG. 13, or have a different configuration from that shown in the FIG. 13. It can be understood by those skilled in the art that all or part of the steps of the various methods of the above-mentioned embodiments can be completed by programs instructing the related hardware of the terminal device, and the programs can be stored in a computer readable storage medium. The storage medium can include a flash disk, a read-only memory (ROM for short), a random access memory (RAM for short), a magnetic disk or an optical disk, etc. Embodiment 4 The embodiment of the present disclosure also provides a computer readable storage medium. Optionally, in the embodiment, the above-mentioned computer readable storage medium can be used to save the program code executed by the method provided by the above-mentioned embodiment. Optionally, in the embodiment, the above-mentioned storage medium can be located in any one of the electronic devices in the computer network or in any one of the mobile terminals in the mobile terminal group.Optionally, in the embodiment, the computer readable storage medium is configured to store program code for performing the following steps: storing, by using the heterogeneous device memory, the to-be-transmitted data sent by the client through the memory interconnection protocol; obtaining a request message corresponding to the to-be-transmitted data, wherein the request message is used to request transmission of the to-be-transmitted data to the server; sending the request message to the server; storing, by using the heterogeneous device memory, a response result obtained by the server in response to the request message, wherein the response result is output by the server through the memory interconnection protocol and corresponds to the to-be-transmitted data; and sending the response result to the client. Optionally, the computer readable storage medium is further configured to store program code for performing the following steps: determining, in the heterogeneous device memory, a first data area corresponding to the client by using a service corresponding to the data communication end; and storing, in the first data area, the to-be-transmitted data of the client monitored. Optionally, the computer readable storage medium is further configured to store program code for performing the following steps: controlling the memory allocator to allocate a first memory for the to-be-transmitted data in the first data area; and storing the to-be-transmitted data in the first memory. Optionally, the computer readable storage medium is further configured to store program code for performing the following steps: determining address information in the request message, wherein the address information is used to represent a storage location of the to-be-transmitted data in the first memory; and sending, in response to a first polling request of the server, the polled address information in the request message to the server. Optionally, the computer readable storage medium is further configured to store program code for performing the following steps: determining, in the heterogeneous device memory, a request message queue corresponding to the client by using the service corresponding to the data communication end; and adding the request message in the request message queue. Optionally, the computer readable storage medium is further configured to store program code for performing the following steps: adjusting an initial state of the request message to a first valid state, wherein the first valid state is used to indicate that the request message is allowed to be polled by the server. Optionally, the computer readable storage medium is further configured to store program code for performing the following steps: in a case where the processor reads the request message in the first valid state, sending, in response to a first polling request of the server, the polled request message to the server. Optionally, the computer readable storage medium is further configured to store program code for performing the following steps: in response to a change in the initial state of the request message, waking up the processor to read the request message. Optionally, the computer readable storage medium is further configured to store program code for performing the following steps: determining, in the heterogeneous device memory, a second data area corresponding to the client by using the service corresponding to the data communication end; and storing, in the second data area, a response result corresponding to the to-be-transmitted data.Optionally, the computer readable storage medium is further configured to store program code for performing the following steps: controlling the memory allocator to allocate a second memory for the response result in the second data area; and storing the response result in the second memory. Optionally, the computer readable storage medium is further configured to store program code for performing the following steps: determining, in the heterogeneous device memory, a response message queue corresponding to the client by using a service corresponding to the data communication end; adding, in the response message queue, a response message corresponding to the response result, wherein the response message is used to indicate that the server has completed generating the response result; and sending the response result to the client, including: responding to a second polling request of the client, polling the response message in the response message queue, and sending the response result in the second data area to the client by using the response message. Optionally, the computer readable storage medium is further configured to store program code for performing the following steps: adjusting an initial state of the response message to a second valid state, wherein the second valid state is used to indicate that the response message is allowed to be polled by the client. Optionally, the computer readable storage medium is further configured to store program code for performing the following steps: in a case where the processor reads the response message in the second valid state, responding to a second polling request of the client, polling the response message in the response message queue, and sending the response result in the second data area to the client by using the response message. Optionally, the computer readable storage medium is further configured to store program code for performing the following steps: in response to a change in the initial state of the response message, waking up the processor to read the response message. Optionally, the computer readable storage medium is further configured to store program code for performing the following steps: sending a response notification message to the server, wherein the response notification message is used to indicate a time point at which the response message is sent to the client. Optionally, the computer readable storage medium is further configured to store program code for performing the following steps: sending a request notification message to the server, wherein the request notification message is used to indicate a time point at which the request message is sent to the server. According to the embodiments of the present disclosure, the heterogeneous device memory is used to store the to-be-transmitted data sent by the client through the memory interconnection protocol, and the heterogeneous device memory is used to store the response result corresponding to the to-be-transmitted data output by the server through the memory interconnection protocol, that is, the client and the server are connected to the same heterogeneous device memory, which can avoid the processes of expensive network round trip, memory copying, and data serialization / deserialization, achieves the purpose of more efficient data transmission and data interaction, realizes the technical effect of improving the data transmission efficiency between the client and the server, and further solves the technical problem of low data transmission efficiency.Optionally, in the embodiment, the computer program product can include a computer program which, when executed by a processor, implements the method provided by the above embodiment. Embodiment 6 The embodiments of the present disclosure further provide a computer program product. Optionally, the computer program product can include a non-volatile computer readable storage medium, which can be used to store a computer program, and the computer program, when executed by a processor, implements the method provided by the above embodiment. Embodiment 7 The embodiments of the present disclosure further provide a computer program. Optionally, in the embodiment, the computer program, when executed by a processor, implements the method provided by the above embodiment. The above embodiment numbers of the present disclosure are only for description and do not represent advantages or disadvantages of the embodiments. In the above embodiments of the present disclosure, the description of each embodiment has its own focus, and the parts not described in detail in an embodiment can be referred to the related description of other embodiments. In the several embodiments provided by the present disclosure, it should be understood that the disclosed technology can be implemented in other ways. Of course, the described device embodiments are only schematic, for example, the division of units is only a logical function division, and there can be another division manner in actual implementation, for example, a plurality of units or components can be combined or integrated into another system, or some features can be ignored or not executed. In addition, the coupling or direct coupling or communication connection between the units shown or discussed can be indirect coupling or communication connection through some interface, unit or module, and can be electrical or other forms. The units described as separate components can or can not be physically separate, and the components displayed as units can or can not be physical units, that is, they can be located in one place, or can be distributed on a plurality of network units. Some or all of the units can be selected according to actual needs to achieve the purpose of the embodiment scheme. In addition, each functional unit in each embodiment of the present disclosure can be integrated in a processing unit, or each unit can be a physically independent unit, or two or more units can be integrated in a unit. The integrated unit can be implemented in the form of hardware or software function unit. If the integrated unit is implemented in the form of software function unit and sold or used as an independent product, it can be stored in a computer readable storage medium.Based on such understanding, the technical solutions of the present disclosure, essentially or partly, can be embodied in software form, and the computer software products are stored in a storage medium, including several instructions to make a computer device (which can be a personal computer, a server, or a network device, etc.) execute all or part of the steps of the methods according to the various embodiments of the present disclosure. The aforementioned storage medium includes various media, such as a U disk, a Read-Only Memory (ROM), a Random Access Memory (RAM), a mobile hard disk, a magnetic disk, or an optical disk, etc., which can store program codes. The above only describes the preferred embodiments of the present disclosure, and it should be pointed out that, for those skilled in the art, without departing from the principles of the present disclosure, some improvements and refinements can be made, and these improvements and refinements should also be considered as the protection scope of the present disclosure.

Claims

CLAIM 1. A data processing method, wherein, The application is applied to a data communication end, the data communication end comprises a heterogeneous device memory connected with at least one client and at least one server through a memory interconnection protocol, and comprises the following steps: storing, by using the heterogeneous device memory, to-be-transmitted data transmitted by the client through the memory interconnection protocol; obtaining a request message corresponding to the to-be-transmitted data, wherein the request message is used for requesting to transmit the to-be-transmitted data to the server; sending the request message to the server; storing, by using the heterogeneous device memory, a response result obtained by the server in response to the request message, wherein the response result is output by the server through the memory interconnection protocol and corresponds to the to-be-transmitted data; and sending the response result to the client.

2. The method of claim 1, wherein, The step of storing, by using the heterogeneous device memory, to-be-transmitted data transmitted by the client through the memory interconnection protocol comprises the following steps: determining, by using a service corresponding to the data communication end in the heterogeneous device memory, a first data area corresponding to the client; and storing, in the first data area, the to-be-transmitted data of the client monitored.

3. The method of claim 2, wherein, The step of storing, in the first data area, the to-be-transmitted data of the client monitored comprises the following steps: controlling a memory allocator to allocate a first memory for the to-be-transmitted data in the first data area; and storing the to-be-transmitted data in the first memory.

4. The method of claim 3, wherein, The step of sending the request message to the server comprises the following steps: determining address information in the request message, wherein the address information is used for representing a storage position of the to-be-transmitted data in the first memory; and sending, to the server, the address information in the request message polled in response to a first polling request of the server.

5. The method according to any one of claims 1 to 4, wherein, The step of obtaining a request message corresponding to the to-be-transmitted data comprises the following steps: determining, by using a service corresponding to the data communication end in the heterogeneous device memory, a request message queue corresponding to the client; and adding the request message in the request message queue.

6. The method of claim 5, wherein, After the request message is added in the request message queue, the method further comprises the following steps: adjusting an initial state of the request message to a first valid state, wherein the first valid state is used for indicating that the request message is allowed to be polled by the server.

7. The method of claim 6, wherein, The step of sending the request message to the server comprises the following steps: in a case where the processor reads the request message in the first valid state, sending, to the server, the request message polled in response to a first polling request of the server.

8. The method of claim 7, wherein, The method further comprises the following steps: in response to a change in the initial state of the request message, waking up the processor to read the request message. 23 9. The method according to any one of claims 1 to 8, wherein, The method further comprises: determining, in the heterogeneous device memory, a second data area corresponding to the client by using a service corresponding to the data communication end; and storing, in the second data area, the response result corresponding to the to-be-transmitted data.

10. The method of claim 9, wherein, The method further comprises: allocating, by a memory allocator, a second memory for the response result in the second data area; and storing, in the second memory, the response result. 1 1. The method according to claim 9 or 10, wherein, The method further comprises: determining, in the heterogeneous device memory, a response message queue corresponding to the client by using a service corresponding to the data communication end; adding, in the response message queue, a response message corresponding to the response result, wherein the response message is used to indicate that the server has completed generating the response result; and sending the response result to the client, which comprises: polling the response message in the response message queue in response to a second polling request of the client, and sending the response result in the second data area to the client by using the response message.

12. The method of claim 11, wherein, After adding, in the response message queue, the response message corresponding to the response result, the method further comprises: adjusting an initial state of the response message to a second valid state, wherein the second valid state is used to indicate that the response message is allowed to be polled by the client.

13. The method of claim 12, wherein, The method further comprises: polling the response message in the response message queue in response to a second polling request of the client, and sending the response result in the second data area to the client by using the response message, which comprises: polling the response message in the response message queue in response to the second polling request of the client, and sending the response result in the second data area to the client by using the response message, in a case where the processor reads the response message in the second valid state.

14. The method of claim 13, wherein, The method further comprises: waking up the processor to read the response message in response to a change in the initial state of the response message.

15. The method of claim 11, wherein, The method further comprises: sending a response notification message to the server, wherein the response notification message is used to indicate a time point at which the response message is sent to the client.

16. The method according to any one of claims 1 to 15, wherein, The method further comprises: sending a request notification message to the server, wherein the request notification message is used to indicate a time point at which the request message is sent to the server.

17. A data processing method, wherein, The application is applied to a data communication end, the data communication end comprises a heterogeneous device memory connected with at least one client and at least one server through a memory interconnection protocol, and comprises: storing, by using the heterogeneous device memory, tensor data to be transmitted sent by the client through the memory interconnection protocol; obtaining a request message corresponding to the tensor data to be transmitted, wherein the request message is used for requesting to transmit the tensor data to be transmitted to the server; and sending, in response to a first polling request of the server, the polled request message to the server; storing, by using the heterogeneous device memory, a response result obtained by the server in response to the request message, wherein the response result is output by the server through the memory interconnection protocol and corresponds to the tensor data to be transmitted; and sending, in response to a second polling request of the client, the polled response result to the client, wherein the response result is used for training a target model.

18. A data processing system, wherein, The application comprises: a data communication end, at least one client and at least one server, wherein the data communication end comprises a heterogeneous device memory connected with at least one client and at least one server through a memory interconnection protocol, wherein the client is configured to send data to be transmitted; the data communication end is configured to store, by using the heterogeneous device memory, the data to be transmitted sent by the client through the memory interconnection protocol; obtain a request message corresponding to the data to be transmitted, wherein the request message is used for requesting to transmit the data to be transmitted to the server; and send the request message to the server; and the server is configured to output, in response to the request message, a response result corresponding to the data to be transmitted through the memory interconnection protocol; wherein the data communication end is configured to store, by using the heterogeneous device memory, the response result; and send the response result to the client.

19. An electronic device, wherein, The application comprises: a memory storing an executable program; a processor configured to run the program, wherein the program performs the method of any one of claims 1 to 17 when running.

20. A computer-readable storage medium, wherein, The computer readable storage medium comprises a stored executable program, wherein the device where the storage medium is located is controlled to perform the method of any one of claims 1 to 17 when the executable program runs.

21. A computer program product, wherein, The application comprises a computer program, which, when executed by a processor, implements the method of any one of claims 1 to 17.

Citation Information

Patent Citations

  • Data processing method, system and device and readable storage medium

    CN114461568A

  • Neural network training method and device, electronic equipment and storage medium

    CN114925829A

  • Shared memory transmission system and method based on CORBA middleware

    CN116881026A

  • Remote procedure calling method, system and equipment and storage medium

    CN117149454A

  • Data transmission method based on CXL shared memory and related equipment

    CN117992393A