CN115934323A - Cloud computing resource calling method and device, electronic equipment and storage medium - Google Patents

Cloud computing resource calling method and device, electronic equipment and storage medium Download PDF

Info

Publication number
CN115934323A
CN115934323A CN202211541332.1A CN202211541332A CN115934323A CN 115934323 A CN115934323 A CN 115934323A CN 202211541332 A CN202211541332 A CN 202211541332A CN 115934323 A CN115934323 A CN 115934323A
Authority
CN
China
Prior art keywords
network card
computing device
data
processed
cloud computing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202211541332.1A
Other languages
Chinese (zh)
Other versions
CN115934323B (en
Inventor
赵二城
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Capitalonline Data Service Co ltd
Original Assignee
Capitalonline Data Service Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Capitalonline Data Service Co ltd filed Critical Capitalonline Data Service Co ltd
Priority to CN202211541332.1A priority Critical patent/CN115934323B/en
Publication of CN115934323A publication Critical patent/CN115934323A/en
Application granted granted Critical
Publication of CN115934323B publication Critical patent/CN115934323B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

The application discloses a method and a device for calling cloud computing resources, electronic equipment and a storage medium, and relates to the technical field of computers. According to the embodiment of the application, the first CPU of the local computing device copies the data to be processed to the first network card communication driving module, and the first network card communication driving module transmits the data to be processed to the second network card communication driving module of the cloud computing device through the network card. The cloud computing device copies the data to be processed to the corresponding processing unit through the second network card communication driving module, returns the processing result to the second network card communication driving module after obtaining the processing result, and sends the processing result to the local computing device through the second network card communication driving module. And the local computing equipment acquires the processing result through the first network card communication driving module and returns the processing result to the first CPU. Therefore, dynamic adjustment and allocation on demand of computing power of different computing resources can be realized, local user cost is further reduced, and data processing efficiency is improved.

Description

Cloud computing resource calling method and device, electronic equipment and storage medium
Technical Field
The application relates to the technical field of computers, in particular to a method and a device for calling cloud computing resources, electronic equipment and a storage medium.
Background
The use of traditional computing resources, such as a Graphics Processing Unit (GPU), requires data transmission between the local computing device and a Central Processing Unit (CPU) through hardware. Such a usage manner cannot dynamically adjust and allocate computing capabilities of different computing resources as needed, and may further cause program stumbling, resource waste, and the like of the local computing device due to mismatching of the computing resources. Our society is currently in the big data era, the total amount of data is explosively increased, and particularly in the fields of artificial intelligence and the like, enough computing resources need to be relied on. The existing method for calling the computing resources is to call the computing resources of the external equipment of the local computing equipment, and has the problems of higher requirements on the storage site, the maintenance cost, the management cost and the like of the external equipment; the external equipment is limited by fields, hardware and the like, so that the computing power of computing resources can not be dynamically adjusted during data processing, and the situation of insufficient computing power or idle computing power can be caused in the case of complex conditions; in addition, chips in the market are in short supply, the arrival period required for purchasing external equipment with high calculation power is generally long, and short-time calculation power shortage and large loss can be caused when calculation power needs to be expanded urgently.
Disclosure of Invention
The embodiment of the application provides a method and a device for calling cloud computing resources, electronic equipment and a storage medium, so as to achieve the purposes of dynamic adjustment and allocation as required of a CPU and the cloud computing resources.
In a first aspect, an embodiment of the present application provides a method for invoking cloud computing resources, which is applied to a local computing device, where a first network card for communicating with a cloud is configured on the local computing device, and the method includes:
copying data to be processed of a first CPU of the local computing device to a first network card communication driving module, and sending the data to be processed to the cloud computing device through the first network card communication driving module;
through the first network card communication driving module, a processing result obtained after the cloud computing device calls a processing unit corresponding to the data to be processed to perform data processing is obtained, and the processing result is returned to the first CPU, wherein the processing unit comprises at least one of a graphic processor, an artificial intelligence processor, a deep learning processor, a general graphic processor, an AI accelerator and a field programmable gate array.
In a second aspect, an embodiment of the present application provides a method for invoking cloud computing resources, which is applied to a cloud computing device, where a second network card for communicating with a local computing device is configured on the cloud computing device, and the method includes:
copying the data to be processed to a corresponding processing unit through a second network card communication driving module, wherein the processing unit comprises at least one of a graphic processor GPU, an artificial intelligence processor NPU, a deep learning processor DPU, a general graphic processor GPGPU, an AI accelerator and a field programmable gate array FPGA;
and acquiring a processing result obtained after the processing unit is called to perform data processing on the data to be processed, and returning the processing result to the second network card communication driving module so as to send the processing result to the local computing equipment through the second network card communication driving module.
In a third aspect, an embodiment of the present application provides a cloud computing resource invoking device, which is deployed in a local computing device, where the local computing device is configured with a first network card for communicating with a cloud, and the invoking device includes:
the data copying module is used for copying data to be processed of a first CPU (central processing unit) of the central processing unit of the local computing equipment to a first network card communication driving module so as to send the data to be processed to the cloud computing equipment through the first network card communication driving module;
the result obtaining module is used for obtaining a processing result obtained after the cloud computing device calls a processing unit corresponding to the data to be processed to perform data processing through the first network card communication driving module, wherein the processing unit comprises at least one of a graphic processor, an artificial intelligence processor, a deep learning processor, a general graphic processor, an AI accelerator and a field programmable gate array;
and the result returning module is used for returning the processing result to the first CPU of the local computing equipment.
In a fourth aspect, an embodiment of the present application provides an invoking device for cloud computing resources, deployed in a cloud computing device, where the cloud computing device is configured with a second network card for communicating with a local computing device, and the invoking device includes:
the data copying module is used for copying the data to be processed to a corresponding processing unit through the second network card communication driving module, and the processing unit comprises at least one of a graphic processor, an artificial intelligence processor, a deep learning processor, a general graphic processor, an AI accelerator or a field programmable logic gate array;
the result acquisition module is used for acquiring a processing result obtained after the processing unit is called to perform data processing on the data to be processed;
and the result returning module is used for returning the processing result to the second network card communication driving module so as to send the processing result to the local computing equipment through the second network card communication driving module.
In a fifth aspect, embodiments of the present application provide a local computing device, including a memory, a processor, and a computer program stored on the memory, where the processor implements the method according to any of the embodiments of the present application when executing the computer program.
In a sixth aspect, an embodiment of the present application provides a cloud computing device, including a memory, a processor, and a computer program stored on the memory, where the processor implements the method according to any embodiment of the present application when executing the computer program.
In a seventh aspect, an embodiment of the present application provides a storage medium readable by a computing device, where a computer program is stored in the storage medium readable by the computing device, and when the computer program is executed by a processor, the method for invoking cloud computing resources according to any embodiment of the present application is implemented.
This application has following advantage:
the cloud computing resources are called through the driving software, and the CPU in the cloud computing equipment can not participate in the resource calling process due to the fact that the communication driving module is added to the cloud computing equipment; meanwhile, the communication driving module is additionally arranged on the local computing equipment, so that when the CPU of the local computing equipment calls the external computing resources, the CPU is not limited by the geographical position of the external computing resources any more, and can call the computing resources at the cloud, thereby achieving the purposes of dynamically adjusting the computing power of different computing resources and allocating the computing resources as required, saving the cost for users and improving the utilization rate of the computing resources.
According to the embodiment of the application, the first CPU of the local computing device copies the data to be processed to the first network card communication driving module, and the first network card communication driving module transmits the data to be processed to the second network card communication driving module of the cloud computing device through the network card. The cloud computing device copies the data to be processed to the corresponding processing unit through the second network card communication driving module, waits for the processing unit to process the data to be processed, obtains the processing result and returns the processing result to the second network card communication driving module, and sends the processing result to the local computing device through the second network card communication driving module. The local computing device obtains the processing result through the first network card communication driving module and returns the processing result to the first CPU, and therefore the process of calling cloud computing resources is completed. In the above scheme, the second CPU in the cloud computing device may not participate in the process of resource invocation.
In the calling process of the computing resources, as the kernel communication driving module and the network card communication driving module are added to the cloud computing device, a second CPU in the cloud computing device can not participate in the resource calling process, and data exchange with the local computing device can be completed only by means of the two driving modules; meanwhile, the kernel communication driving module and the network card communication driving module are added to the local computing equipment, so that when the CPU of the local computing equipment calls the external computing resources, the CPU is not limited by the geographical position of the external computing resources any more, the computing resources at the cloud end can be called, and the original limited computing resources are converted into the computing resources which can be expanded infinitely. Therefore, the computing resources can overcome the limitation of local computing equipment, and the time for calling the computing resources is saved, so that the purposes of dynamically adjusting computing power of different computing resources and allocating the computing resources according to needs are achieved, the user cost is reduced, the utilization rate of the computing resources is improved, and the emergency situation is solved more flexibly.
The foregoing description is only an overview of the technical solutions of the present application, and the following detailed description of the present application is given to enable the technical means of the present application to be more clearly understood and to enable the above and other objects, features, and advantages of the present application to be more clearly understood.
Drawings
In the drawings, like reference characters designate like or similar parts or elements throughout the several views unless otherwise specified. The figures are not necessarily to scale. It is appreciated that these drawings depict only some embodiments in accordance with the disclosure and are not to be considered limiting of its scope.
FIG. 1 is a diagram illustrating an embodiment of a computing resource invocation implemented by a related art;
FIG. 2 is a schematic diagram illustrating an embodiment of a computing resource invocation implementation provided herein;
fig. 3 is a flowchart of a method for invoking cloud computing resources applied to a local computing device according to an embodiment of the present application;
fig. 4 is a flowchart illustrating a method for invoking cloud computing resources applied to a cloud computing device according to an embodiment of the present application;
fig. 5 is a block diagram illustrating a cloud computing resource invoking device deployed in a local computing device according to an embodiment of the present application;
fig. 6 is a block diagram illustrating a cloud computing resource invoking device deployed in a cloud computing device according to an embodiment of the present application;
FIG. 7 is a block diagram of a local computing device electronic device used to implement embodiments of the present application;
fig. 8 is a block diagram of an electronic device of a cloud computing device for implementing embodiments of the present application.
Detailed Description
In the following, only certain exemplary embodiments are briefly described. As those skilled in the art will recognize, the described embodiments may be modified in various different ways, without departing from the spirit or scope of the present application. Accordingly, the drawings and description are to be regarded as illustrative in nature, and not as restrictive.
In order to facilitate understanding of the technical solutions of the embodiments of the present application, the following description is made of related art of the embodiments of the present application. The following related technologies may be arbitrarily combined with the technical solutions of the embodiments of the present application as alternatives, which all belong to the scope of protection of the embodiments of the present application.
In a related art before the present application, when the invocation of the computing resource is implemented, the computing resource of the external device of the local computing device is invoked by the local computing device, as shown in fig. 1, which is a schematic diagram of an approach for implementing the invocation of the computing resource for the related art. A Central Processing Unit (CPU) of the local computing device copies data to be processed to a System Memory (System Memory), the System Memory sends the data to be processed to a GPU Memory (GPU Memory) through a PCI (Peripheral Component Interconnect) bus channel, and a GPU (Graphics Processing Unit, graphics processor) reads the data in the GPU Memory and processes the data, and then feeds back a Processing result to the System Memory through the PCI bus channel again to complete data exchange, thereby achieving a purpose of calling a GPU computing resource of the external device by the local computing device. However, the way that the GPU and the CPU transmit data through the PCI bus channel is limited by various hardware devices, for example, the PCI parallel bus cannot be connected with too many devices, the extensibility is poor, and inter-line interference may be generated when a plurality of local computing devices operate simultaneously, which may cause the system to fail to operate normally; for another example, when the external device GPU is used, the user is required to purchase the GPU physical server first, so that the storage site, the maintenance cost, the management cost and the like of the GPU have higher requirements; secondly, since the calculation power of the GPU is limited by the size of the memory, the calculation power of the CPU and the GPU cannot be dynamically adjusted during data processing, and the situation of insufficient calculation power or idle calculation power can be caused when the scenes such as AI application requiring a large amount of calculation power or idle and busy alternate day and night multiplexing and the like are faced; the chips on the market are in short supply again, the arrival period required for purchasing the GPU with high calculation power is generally long, and if a user urgently needs to purchase the GPU to expand the calculation power, the short-time calculation power shortage can be caused, so that the great loss is brought.
In view of the above, embodiments of the present application provide a new invocation scheme for computing resources, so as to solve all or part of the above technical problems.
The embodiment of the application relates to a cloud computing resource calling method, which is applied to a scene of computing resource calling between local computing equipment and cloud computing equipment, wherein the cloud computing resources are deployed on the cloud computing equipment, the computing power can be conveniently expanded as required, a network card which is communicated with a local computing equipment Client side is deployed on a user side of the cloud computing equipment, the local computing equipment is connected with a cloud side through a public network or a private line, and the Client side of the local computing equipment can be a fat Client side (Rich or Thick Client) or a display form of a Thin Client side (Thin Client) or an intelligent Client side (Smart Client). After logging in an account of the client, the user calls computing resources of the cloud computing device by accessing each entry provided by the client.
The scheme of the embodiment of the application can be applied to various scenes needing to call the computing resources, including but not limited to AI application, block chains and cloud computing, so that the purposes of dynamic adjustment and allocation according to needs of different computing resources are achieved, the cost is further saved, and the efficiency is improved.
In order to more clearly show the method for invoking the computing resource provided in the embodiment of the present application, a specific application example of the scheme of the embodiment of the present application is given as follows, and fig. 2 is a schematic diagram of a scheme for implementing invoking the computing resource provided in the present application. The figure relates to a GPU server and a client server, wherein one or more client servers can be adopted; the operating systems used by the GPU server and the client server are Linux operating systems. The client server and the GPU server communicate with each other through a network card, which may be an RDMA (Remote Direct Memory Access) network card. Firstly, a CPU of a client server copies data to be processed to a System Memory (System Memory), the System Memory copies the data to be processed to a kernel communication driving module nv _ peer _ Memory, then the kernel communication driving module nv _ peer _ Memory copies the data to be processed to a network card communication driving module ofa-kernel, and a network card communication driving module ofa-kernel of the client server transmits the data to be processed to the ofa-kernel of a GPU server through a network card, so that the process of transmitting the data to be processed from the client server to the GPU server is completed; secondly, copying the data to be processed to a GPU memory through a network card communication driving module ofa-kernel of the GPU server, reading the data in the GPU memory by the GPU, processing the data, and feeding back the processing result to the client server through the kernel communication driving module nv _ peer _ memory and the network card communication driving module ofa-kernel of the GPU server to complete data exchange. According to the scheme, the CPU in the GPU server is not required to participate, the time for calling the computing resources can be saved, the computing power of the GPU and the CPU is dynamically adjusted, the GPU computing resources are distributed according to needs, and the utilization rate of the GPU computing resources is improved.
An embodiment of the present application provides a method for calling cloud computing resources, which is applied to a local computing device, where the local computing device is configured with a first network card for communicating with a cloud, and fig. 3 is a flowchart of the method for calling the cloud computing resources applied to the local computing device according to an embodiment of the present application. As shown in fig. 3, the method includes steps S301 to S302:
in step S301, to-be-processed data of the first CPU of the central processing unit of the local computing device is copied to the first network card communication driver module, and the to-be-processed data is sent to the cloud computing device through the first network card communication driver module.
The network card related to the embodiment of the present application may be connected to different computing devices to perform communication on a network, and may be a network card for performing Remote Direct data Access, such as an RDMA (Remote Direct Memory Access) network card. The network interface card is applied to the local computing device and can be recorded as a first network interface card, and the network interface card is applied to the cloud computing device and can be recorded as a second network interface card. The first network card on the local computing device is used for communicating with the second network card on the cloud computing device, and the first network card may be an RDMA (Remote Direct Memory Access) network card or other types of network cards as long as it can communicate with the second network card, which is not limited in this application.
The types of local computing devices involved may include physical machines, virtual machines, or computer systems of multiple servers, client devices, or other suitable types of devices interconnected to one another in a local area network having multiple network devices. For example, the local computing device may be placed in an environment of a company, government agency, school, etc., and the Client of the local computing device may be a Thick Client (Rich or Thick Client), a Thin Client (Thin Client) or a Smart Client (Smart Client). The operating system of the local computing device client may be a Linux operating system, a windows operating system, or the like, which is not limited in this application.
The related data to be processed comes from the local computing equipment and can be user input data received by the local computing equipment and data input by external computing equipment; or various data generated in the local computing device, such as a transaction amount generated by a financial transaction application, etc. Various data types, such as pictures, videos, documents, etc., may be included, or a mixture of multiple types of data may be included, which is not limited in any way by this application.
The related network card communication driving module is a module capable of driving a network card to carry out communication. The first network card communication driving module applied to the local computing device can be marked as a first network card communication driving module, and is a network card communication driving module with performance being adjusted and optimized, so that the first network card communication driving module can drive the first network card to carry out communication, and can carry out data exchange with other driving modules in the local computing device.
In a possible implementation manner, when data to be processed of a first CPU in the local computing device is copied to the first network card communication driver module, the first CPU of the local computing device may copy the data to be processed to an operating system memory; copying the data to be processed to an operating system kernel communication driving module by an operating system memory; and then copying the data to be processed to the first network card communication driving module by the operating system kernel communication driving module. The processing result of the data to be processed after being processed by the computing resource of the cloud computing device can be executed in the opposite direction of the path when the processing result is returned.
In the embodiment of the application, since the first CPU cannot directly copy the data to be processed to the first network card communication driver module, the data to be processed may be copied to the kernel communication driver module of the local computing device that can communicate with the first network card communication driver module through the memory of the operating system, and then the kernel communication driver module copies the data to be processed to the first network card communication driver module, so as to drive the first network card to communicate with the cloud computing device through the first network card communication driver module.
The kernel communication driver module related to the embodiment of the present application is located inside a local computing device system, and is configured to exchange data with a system memory in a local computing device or communicate with other driver modules. The module is a kernel communication driver module with performance tuned, so that the kernel communication driver module can exchange data with the network card communication driver module and can exchange data with a system memory in the local computing device.
The cloud computing device related to the embodiment of the application is configured with a network card which is marked as a second network card, and is also provided with a communication driving module which is marked as a second network card communication driving module, wherein the first network card communication driving module of the local computing device sends the data to be processed to the second network card communication driving module of the cloud computing device; the second network card can skip the second CPU of the central processing unit of the cloud computing device to access the processing unit corresponding to the cloud.
The second network card involved in the method is a network card capable of performing Remote Direct data Access, is configured on the cloud computing device, and is used for communicating with the first network card on the local computing device, and may be an RDMA (Remote Direct Memory Access) network card, or other types of network cards capable of performing Remote Direct data Access. The related second network card communication driving module is a network card communication driving module which is applied to the cloud computing device and is subjected to performance optimization, and the second network card communication driving module can drive the second network card to communicate and can exchange data with other driving modules in the cloud computing device.
The related corresponding Processing units include, but are not limited to, one or more of a Graphics Processing Unit (GPU), an artificial intelligence Processing Unit (NPU), a Deep learning Processing Unit (DPU), a General-purpose Graphics Processing Unit (GPGPU), an AI accelerator, and a Field Programmable Gate Array (FPGA). The processing units can process different parts of the data to be processed sent by one local computing device together, and can also process the data to be processed sent by a plurality of local computing devices respectively; the method and the device can process a single type of data to be processed, for example, the GPU only processes graphics data, and can also process multiple types of data to be processed, for example, the NPU processes both graphics data and document data, which is not limited in this application.
In step S302, a processing result obtained after the cloud computing device calls a processing unit corresponding to the data to be processed to perform data processing is obtained through the first network card communication driver module, and the processing result is returned to the first CPU of the local computing device. The corresponding processing unit may include at least one of a graphics processor, an artificial intelligence processor, a deep learning processor, a general purpose graphics processor, an AI accelerator, and a field programmable gate array.
In a possible implementation manner, when the processing result is returned to the first CPU of the local computing device, the first network card communication driver module may copy the processing result to the operating system kernel communication driver module of the local computing device; copying the processing result to the internal memory of the operating system by the internal core communication driving module of the operating system; and finally copying the processing result to a first CPU of the local computing equipment by the internal memory of the operating system.
In the embodiment of the application, since the first CPU cannot directly read the processing result from the first network card communication driver module, the first CPU can communicate with the first network card communication driver module through the kernel communication driver module, and copy the processing result in the first network card communication driver module to the kernel communication driver module, and then copy the processing result in the operating system memory through the kernel communication driver module, so that the first CPU can read the processing result in the operating system memory. The process is opposite to the path of copying the data to be processed to the first network card communication driving module by the first CPU.
Fig. 4 is a flowchart of a method for invoking cloud computing resources applied to a cloud computing device, where a second network card for communicating with a local computing device is configured on the cloud computing device, in an embodiment of the present application, the method includes steps S401 to S402:
in step S401, the data to be processed is copied to a corresponding processing unit through the second network card communication driver module, where the corresponding processing unit includes at least one of a graphics processor, an artificial intelligence processor, a deep learning processor, a general graphics processor, an AI accelerator, and a field programmable gate array.
The type of local computing device involved in the embodiments of the present application may include a physical machine, a virtual machine, or a computer system of multiple servers, client devices, or other suitable types of devices interconnected with each other in a local area network having multiple network devices. For example, the local computing device may be placed in an environment of a company, a government agency, a school, etc., the Client of the local computing device may be a fat Client (Rich or Thick Client), a Thin Client (Thin Client) or an intelligent Client (Smart Client), and the operating system of the Client of the local computing device may be a Linux operating system, a windows operating system, etc., which is not limited in this application.
The operating system of the related cloud computing device client may be a Linux operating system, a windows operating system, or the like, may be the same as or different from the operating system of the local computing device, and the application does not limit the operating system.
The data to be processed is from the local computing device, and may be user input data received by the local computing device or data input by an external computing device; or various data generated in the local computing device, such as a transaction amount generated by a financial transaction application, etc. Various data types, such as pictures, videos, documents, etc., may be included, and a mixture of multiple types of data may also be included, which is not limited in any way by this application. The second network card related to the embodiment of the present application is a network card capable of performing Remote Direct data Access, is configured on the cloud computing device, and is used for communicating with the first network card on the local computing device, and may be an RDMA (Remote Direct Memory Access) network card, or another type of network card capable of performing Remote Direct data Access.
The related network card communication driving module is a module capable of driving a network card to carry out communication. The network card communication driving module is a network card communication driving module with performance tuned, so that the second network card communication driving module can drive the second network card to communicate, and can exchange data with other driving modules in the cloud computing device.
In a possible implementation manner, when the to-be-processed data is copied to the corresponding processing unit through the second network card communication driver module, the to-be-processed data may be copied to the cloud computing device kernel communication driver module through the second network card communication driver module; copying the data to be processed to the memory of the corresponding processing unit by the cloud computing equipment kernel communication driving module; and then the corresponding processing unit processes the data to be processed in the memory.
Because the second network card communication driver module cannot directly transmit the data to be processed to the corresponding processing unit, the data to be processed can be copied from the second network card communication driver module to the kernel communication driver module through the kernel communication driver module of the cloud computing device, and then copied to the memory of the corresponding processing unit through the kernel communication driver module, so that the computing resource of the corresponding processing unit is called, and the data to be processed in the memory is processed. And the processing result of the corresponding processing unit after processing the data to be processed can be returned to the second network card communication driving module through the opposite direction of the path.
The kernel communication driver module related to the embodiment of the application is located inside the cloud computing device system and used for transferring computing resources inside the cloud computing device system or communicating with other driver modules. The module is a kernel communication driver module with performance tuned, so that the kernel communication driver module can exchange data with the network card communication driver module and can exchange data with the memory of the corresponding processing unit in the cloud computing device.
The related corresponding Processing units include, but are not limited to, one or more of a Graphics Processing Unit (GPU), an artificial intelligence Processing Unit (NPU), a Deep learning Processing Unit (DPU), a General-purpose Graphics Processing Unit (GPGPU), an AI accelerator, and a Field Programmable Gate Array (FPGA). The processing units may process different parts of the to-be-processed data sent by one local computing device together, or may process the to-be-processed data sent by a plurality of local computing devices respectively; the method and the system can process a single type of data to be processed, for example, the GPU only processes graphics data, and can also process multiple types of data to be processed, for example, the NPU processes both graphics data and document data, which is not limited in this application.
In step S402, the cloud computing device obtains a processing result obtained after invoking the corresponding processing unit to perform data processing on the data to be processed, and returns the processing result to the second network card communication driver module, so as to send the processing result to the local computing device through the second network card communication driver module.
In one possible implementation manner, when the cloud computing device obtains a processing result obtained after calling the corresponding processing unit to perform data processing on data to be processed, the corresponding processing unit may copy the processing result to a memory of the processing unit; copying the processing result to a kernel communication driving module of the cloud computing equipment by the memory of the processing unit; and finally copying the processing result to a second network card communication driving module through a kernel communication driving module of the cloud computing device.
Because the corresponding processing unit cannot directly communicate with the second network card communication driver module, the processing result can be copied to the kernel communication driver module from the memory of the corresponding processing unit through the kernel communication driver module of the cloud computing device, and then copied to the second network card communication driver module through the kernel communication driver module. The above path is opposite to the process of copying the data to be processed to the memory of the corresponding processing unit by the second network card communication driving module.
The local computing device related to the embodiment of the application is configured with a first network card, and the second network card communication driving module of the cloud computing device sends the processing result to the first network card communication driving module of the local computing device.
The first network card is used for communicating with a network card (second network card) on the cloud computing device, and the first network card may be an RDMA (Remote Direct Memory Access) network card or other types of network cards as long as it can communicate with the second network card, which is not limited in this application. The second network card involved is a network card capable of performing Remote Direct data Access, is configured on the cloud computing device, and is used for communicating with the first network card on the local computing device, and may be an RDMA (Remote Direct Memory Access) network card, or other types of network cards capable of performing Remote Direct data Access.
The related second network card communication driving module is a network card communication driving module which is applied to the cloud computing device and is subjected to performance optimization, and the second network card communication driving module can drive the second network card to communicate and can exchange data with other driving modules in the cloud computing device.
Corresponding to the application scenario and the method of the method provided by the embodiment of the application, the embodiment of the application further provides a device for calling the cloud computing resource. Fig. 5 is a block diagram illustrating a cloud computing resource invoking device deployed in a local computing device according to an embodiment of the present application, where the data sharing device may include:
the data copying module 501 is configured to copy data to be processed of a first CPU of a central processing unit of the local computing device to a first network card communication driver module, so as to send the data to be processed to the cloud computing device through the first network card communication driver module;
a result obtaining module 502, configured to obtain, through the first network card communication driver module, a processing result obtained after the cloud computing device calls a processing unit corresponding to the to-be-processed data to perform data processing, where the corresponding processing unit includes at least one of a graphics processor, an artificial intelligence processor, a dedicated data processor, a general graphics processor, an AI accelerator, and a field programmable gate array;
a result returning module 503, configured to return the processing result to the first CPU of the local computing device.
In a possible implementation manner, the data copying module 501 may include:
a system memory copy submodule, configured to copy the to-be-processed data to an operating system memory of the local computing device through a first CPU of the local computing device;
the first kernel drive copying submodule is used for copying the data to be processed to a kernel communication drive module of an operating system of the local computing equipment through the memory of the operating system;
and the first communication drive copying submodule is used for copying the data to be processed to the first network card communication drive module through the operating system kernel communication drive module.
In one possible implementation manner, the cloud computing device is configured with a second network card, and the first network card communication driving module sends data to be processed to a second network card communication driving module of the cloud computing device; the second network card can skip a second CPU of the cloud computing device to access the processing unit of the cloud.
In a possible implementation manner, the result returning module 503 may include:
the first communication driving result returning submodule is used for copying the processing result to the kernel communication driving module of the operating system through the first network card communication driving module;
the first kernel driving result returning submodule is used for copying the processing result to the operating system memory through the operating system kernel communication driving module;
and the system memory result returning submodule is used for copying the processing result to a first CPU of the local computing equipment through the operating system memory.
The Processing result is a Processing result obtained after the Processing Unit corresponding to the cloud computing device processes the data to be processed, and the Processing Unit corresponding to the cloud computing device includes, but is not limited to, one or more of a Graphics Processing Unit (GPU), an artificial intelligence processor (NPU), a Deep learning processor (DPU), a General-purpose Graphics Processing Unit (GPGPU), an AI accelerator, and a Field Programmable Gate Array (FPGA).
Corresponding to the application scenario and the method of the method provided by the embodiment of the application, the embodiment of the application further provides a device for calling the cloud computing resource. As shown in fig. 6, which is a block diagram illustrating a cloud computing resource invoking device deployed in a cloud computing device according to an embodiment of the present application, the data sharing device may include:
the data copying module 601 is configured to copy data to be processed sent by the local computing device to a corresponding processing unit through the second network card communication driver module, where the corresponding processing unit includes at least one of a graphics processor, an artificial intelligence processor, a deep learning processor, a general graphics processor, an AI accelerator, and a field programmable gate array;
a result obtaining module 602, configured to obtain a processing result obtained after invoking a corresponding processing unit to perform data processing on the data to be processed;
a result returning module 603, configured to return the processing result to the second network card communication driver module, so as to send the processing result to the local computing device through the second network card communication driver module.
In a possible implementation manner, the data copying module 601 may include:
the second communication driver copying submodule is used for copying the data to be processed to the cloud computing device kernel communication driver module through the second network card communication driver module;
the second kernel drive copying submodule is used for copying the data to be processed to the memory of the corresponding processing unit through the cloud computing device kernel communication drive module;
and the processing unit memory copy submodule is used for carrying out data processing on the data to be processed in the memory of the corresponding processing unit.
In a possible implementation manner, the result obtaining module 602 may include:
the processing unit memory result returning submodule is used for copying the processing result to the memory of the processing unit through the corresponding processing unit;
the second kernel driving result returning submodule is used for copying the processing result to a kernel communication driving module of the cloud computing device through the memory of the processing unit;
and the second communication driving result returning submodule is used for copying the processing result to the second network card communication driving module through the kernel communication driving module of the cloud computing device.
In one possible implementation manner, the local computing device is configured with a first network card, and the second network card communication driver module sends the processing result to the first network card communication driver module of the local computing device.
The functions of each module in each device in the embodiment of the present application can be referred to the corresponding description in the above method, and have corresponding beneficial effects, which are not described herein again.
Corresponding to an application scenario and a method of the method provided in the embodiment of the present application, an embodiment of the present application further provides a local computing device, and fig. 7 is a block diagram of a local computing device electronic device used to implement the embodiment of the present application. As shown in fig. 7, the local computing electronic device includes:
a memory 701 and a processor 702, the memory 701 having stored therein a computer program operable on the processor 702. The processor 702, when executing the computer program, implements the method in the embodiments described above. The number of the memory 701 and the processor 702 may be one or more.
The electronic device further includes:
the communication interface 703 is used for communicating with an external device and performing data interactive transmission.
If the memory 701, the processor 702 and the communication interface 703 are implemented independently, the memory 701, the processor 702 and the communication interface 703 may be connected to each other through a bus and perform communication with each other. The bus may be an Industry Standard Architecture (ISA) bus, a Peripheral Component Interconnect (PCI) bus, an Extended ISA (EISA) bus, or the like. The bus may be divided into an address bus, a data bus, a control bus, etc. For ease of illustration, only one thick line is shown in FIG. 7, but this is not intended to represent only one bus or type of bus.
Optionally, in a specific implementation, if the memory 701, the processor 702, and the communication interface 703 are integrated on a chip, the memory 701, the processor 702, and the communication interface 703 may complete mutual communication through an internal interface.
Corresponding to the application scenario and the method of the method provided in the embodiment of the present application, an embodiment of the present application further provides a cloud computing device, and fig. 8 is a block diagram of an electronic device for implementing the cloud computing device of the embodiment of the present application. As shown in fig. 8, the cloud computing electronic device includes:
a memory 801 and a processor 802, the memory 801 having stored therein computer programs executable on the processor 802. The processor 802, when executing the computer program, implements the methods in the embodiments described above. The number of the memory 801 and the processor 802 may be one or more.
The electronic device further includes:
and a communication interface 803, which is used for communicating with an external device and performing data interactive transmission.
If the memory 801, the processor 802, and the communication interface 803 are implemented independently, the memory 801, the processor 802, and the communication interface 803 may be connected to each other via a bus and communicate with each other. The bus may be an Industry Standard Architecture (ISA) bus, a Peripheral Component Interconnect (PCI) bus, an Extended ISA (EISA) bus, or the like. The bus may be divided into an address bus, a data bus, a control bus, etc. For ease of illustration, only one thick line is shown in FIG. 8, but this is not intended to represent only one bus or type of bus.
Optionally, in an implementation, if the memory 801, the processor 802, and the communication interface 803 are integrated on a chip, the memory 801, the processor 802, and the communication interface 803 may complete communication with each other through an internal interface.
The embodiment of the application provides a computer device readable storage medium, which stores a computer program, and the computer program is executed by a processor to implement the method for calling the cloud computing resource provided in the embodiment of the application.
It should be understood that the processor may be a Central Processing Unit (CPU), other general purpose processor, a Digital Signal Processor (DSP), an Application Specific Integrated Circuit (ASIC), a Field Programmable Gate Array (FPGA) or other Programmable logic device, discrete gate or transistor logic, discrete hardware components, etc. The general purpose processor may be a microprocessor or any conventional processor or the like. It is noted that the processor may be a processor supporting an Advanced reduced instruction set machine (ARM) architecture.
Further, optionally, the memory may include a read-only memory and a random access memory, and may further include a nonvolatile random access memory. The memory may be either volatile memory or nonvolatile memory, or may include both volatile and nonvolatile memory. The non-volatile Memory may include a Read-Only Memory (ROM), a Programmable ROM (PROM), an Erasable PROM (EPROM), an Electrically Erasable PROM (EEPROM), or a flash Memory. Volatile Memory can include Random Access Memory (RAM), which acts as external cache Memory. By way of example, and not limitation, many forms of RAM are available. For example, static Random Access Memory (Static RAM, SRAM), dynamic Random Access Memory (DRAM), synchronous Dynamic Random Access Memory (SDRAM), double Data Rate Synchronous Dynamic Random Access Memory (DDR SDRAM), enhanced SDRAM (ESDRAM), SLDRAM (SLDRAM), and Direct Memory bus RAM (DR RAM).
In the above embodiments, the implementation may be wholly or partially realized by software, hardware, firmware, or any combination thereof. When implemented in software, it may be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions. The procedures or functions according to the present application are generated in whole or in part when the computer program instructions are loaded and executed on a computer. The computer may be a general purpose computer, a special purpose computer, a network of computers, or other programmable device. The computer instructions may be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another computer-readable storage medium.
In the description herein, references to the description of the term "one embodiment," "some embodiments," "an example," "a specific example," or "some examples," etc., mean that a particular feature, structure, material, or characteristic described in connection with the embodiment or example is included in at least one embodiment or example of the application. Furthermore, the particular features, structures, materials, or characteristics described may be combined in any suitable manner in any one or more embodiments or examples. Furthermore, various embodiments or examples and features of different embodiments or examples described in this specification can be combined and combined by one skilled in the art without contradiction.
Furthermore, the terms "first", "second" and "first" are used for descriptive purposes only and are not to be construed as indicating or implying relative importance or implicitly indicating the number of technical features indicated. Thus, a feature defined as "first" or "second" may explicitly or implicitly include at least one such feature. In the description of the present application, "a plurality" means two or more unless specifically limited otherwise.
Any process or method descriptions in flow charts or otherwise described herein may be understood as representing modules, segments, or portions of code which include one or more executable instructions for implementing specific logical functions or steps in the process. And the scope of the preferred embodiments of the present application includes other implementations in which functions may be performed out of the order shown or discussed, including substantially concurrently or in reverse order, depending on the functionality involved.
The logic and/or steps represented in the flowcharts or otherwise described herein, e.g., an ordered listing of executable instructions that can be considered to implement logical functions, can be embodied in any computer-readable medium for use by or in connection with an instruction execution system, apparatus, or device, such as a computer-based system, processor-containing system, or other system that can fetch the instructions from the instruction execution system, apparatus, or device and execute the instructions.
It should be understood that portions of the present application may be implemented in hardware, software, firmware, or a combination thereof. In the above embodiments, various steps or methods may be implemented in software or firmware stored in a memory and executed by a suitable instruction execution system. All or a portion of the steps of the method of the above embodiments may be performed by associated hardware that is instructed by a program, which may be stored in a computer-readable storage medium, that when executed, includes one or a combination of the steps of the method embodiments.
In addition, functional units in the embodiments of the present application may be integrated into one processing module, or each unit may exist alone physically, or two or more units are integrated into one module. The integrated module can be realized in a hardware mode, and can also be realized in a software functional module mode. The integrated module may also be stored in a computer-readable storage medium if it is implemented in the form of a software functional module and sold or used as a separate product. The storage medium may be a read-only memory, a magnetic or optical disk, or the like.
The above description is only for the specific embodiments of the present application, but the scope of the present application is not limited thereto, and any person skilled in the art can easily conceive various changes or substitutions within the technical scope of the present application, and these should be covered by the scope of the present application. Therefore, the protection scope of the present application shall be subject to the protection scope of the claims.

Claims (13)

1. The method for invoking the cloud computing resources is applied to a local computing device, wherein a first network card for communicating with a cloud is configured on the local computing device, and the method comprises the following steps:
copying data to be processed of a first CPU of the local computing device to a first network card communication driving module, so as to send the data to be processed to a cloud computing device through the first network card communication driving module;
through the first network card communication driving module, a processing result obtained after the cloud computing device calls a processing unit corresponding to the data to be processed to perform data processing is obtained, and the processing result is returned to the first CPU, wherein the processing unit comprises at least one of a graphic processor, an artificial intelligence processor, a deep learning processor, a general graphic processor, an AI accelerator and a field programmable gate array.
2. The method of claim 1, wherein copying the data to be processed by the first CPU of the local computing device to the first network card communication driver module comprises:
copying the data to be processed into an operating system memory by a first CPU of the local computing equipment;
the operating system memory copies the data to be processed to the operating system kernel communication driver module;
and the kernel communication driver module of the operating system copies the data to be processed to the first network card communication driver module.
3. The method of claim 1, wherein the cloud computing device is configured with a second network card, and the first network card communication driver module sends the data to be processed to a second network card communication driver module of the cloud computing device;
the second network card may skip a second CPU of the cloud computing device to access the processing unit of the cloud.
4. The method of claim 1, wherein returning the processing result to the first CPU comprises:
the first network card communication driver module copies the processing result to the operating system kernel communication driver module;
the operating system kernel communication driving module copies the processing result to an operating system memory;
and the operating system memory copies the processing result to a first CPU of the local computing equipment.
5. A method for invoking cloud computing resources is applied to a cloud computing device, wherein a second network card for communicating with a local computing device is configured on the cloud computing device, and the method comprises:
copying the data to be processed to a corresponding processing unit through a second network card communication driving module, wherein the processing unit comprises at least one of a graphic processor, an artificial intelligence processor, a deep learning processor, a general graphic processor, an AI accelerator and a field programmable logic gate array;
and acquiring a processing result obtained after the processing unit is called to perform data processing on the data to be processed, and returning the processing result to the second network card communication driving module so as to send the processing result to the local computing equipment through the second network card communication driving module.
6. The method according to claim 5, wherein the copying the data to be processed to the corresponding processing unit through the second network card communication driver module comprises:
the second network card communication driving module copies the data to be processed to the cloud computing device kernel communication driving module;
the cloud computing device kernel communication driving module copies the data to be processed to a memory of the processing unit;
and the processing unit performs data processing on the data to be processed in the memory of the processing unit.
7. The method according to claim 5, wherein the obtaining a processing result obtained after invoking the processing unit to perform data processing on the data to be processed comprises:
the processing unit copies the processing result to the memory of the processing unit;
copying the processing result to a kernel communication driving module of the cloud computing device by the memory of the processing unit;
and copying the processing result to the second network card communication driving module by a kernel communication driving module of the cloud computing device.
8. The method of claim 5, wherein the local computing device is configured with a first network card, and the second network card communication driver module sends the processing result to the first network card communication driver module of the local computing device.
9. A calling device of cloud computing resources is deployed in a local computing device, and is characterized in that a first network card used for communicating with a cloud is configured on the local computing device, and the calling device comprises:
the data copying module is used for copying data to be processed of a first CPU (central processing unit) of the local computing equipment to a first network card communication driving module so as to send the data to be processed to the cloud computing equipment through the first network card communication driving module;
the result obtaining module is used for obtaining a processing result obtained after the cloud computing device calls a processing unit corresponding to the data to be processed to perform data processing through the first network card communication driving module, wherein the processing unit comprises at least one of a graphic processor, an artificial intelligence processor, a deep learning processor, a general graphic processor, an AI accelerator and a field programmable gate array;
and the result returning module is used for returning the processing result to the first CPU of the local computing equipment.
10. An apparatus for invoking cloud computing resources, deployed on a cloud computing device, wherein the cloud computing device is configured with a second network card for communicating with a local computing device, the apparatus comprising:
the data copying module is used for copying the data to be processed to a corresponding processing unit through the second network card communication driving module, and the processing unit comprises at least one of a graphic processor, an artificial intelligence processor, a deep learning processor, a general graphic processor, an AI accelerator and a field programmable gate array;
the result acquisition module is used for acquiring a processing result obtained after the processing unit is called to perform data processing on the data to be processed;
and the result returning module is used for returning the processing result to the second network card communication driving module so as to send the processing result to the local computing equipment through the second network card communication driving module.
11. A local computing device comprising a memory, a processor and a computer program stored on the memory, the processor when executing the computer program implementing the method of any one of claims 1-4.
12. A cloud computing device comprising a memory, a processor, and a computer program stored on the memory, the processor implementing the method of any one of claims 5-8 when executing the computer program.
13. A computing device readable storage medium having stored thereon a computer program which, when executed by a processor, implements the method for invoking the cloud computing resources of any of claims 1-4 or any of claims 5-8.
CN202211541332.1A 2022-12-02 2022-12-02 Cloud computing resource calling method and device, electronic equipment and storage medium Active CN115934323B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211541332.1A CN115934323B (en) 2022-12-02 2022-12-02 Cloud computing resource calling method and device, electronic equipment and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211541332.1A CN115934323B (en) 2022-12-02 2022-12-02 Cloud computing resource calling method and device, electronic equipment and storage medium

Publications (2)

Publication Number Publication Date
CN115934323A true CN115934323A (en) 2023-04-07
CN115934323B CN115934323B (en) 2024-01-19

Family

ID=86650181

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211541332.1A Active CN115934323B (en) 2022-12-02 2022-12-02 Cloud computing resource calling method and device, electronic equipment and storage medium

Country Status (1)

Country Link
CN (1) CN115934323B (en)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101063963A (en) * 2006-04-26 2007-10-31 韩国电子通信研究院 File movement method supporting data zero-copy technique
US20140317219A1 (en) * 2013-04-23 2014-10-23 International Business Machines Corporation Local direct storage class memory access
CN107102957A (en) * 2016-02-22 2017-08-29 深圳市知穹科技有限公司 The method and system that a kind of internal memory based between GPU and NIC is directly exchanged at a high speed
CN113326228A (en) * 2021-07-30 2021-08-31 阿里云计算有限公司 Message forwarding method, device and equipment based on remote direct data storage
CN113472830A (en) * 2020-03-31 2021-10-01 华为技术有限公司 Communication method and device
CN113595807A (en) * 2021-09-28 2021-11-02 阿里云计算有限公司 Computer system, RDMA network card and data communication method

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101063963A (en) * 2006-04-26 2007-10-31 韩国电子通信研究院 File movement method supporting data zero-copy technique
US20140317219A1 (en) * 2013-04-23 2014-10-23 International Business Machines Corporation Local direct storage class memory access
CN107102957A (en) * 2016-02-22 2017-08-29 深圳市知穹科技有限公司 The method and system that a kind of internal memory based between GPU and NIC is directly exchanged at a high speed
CN113472830A (en) * 2020-03-31 2021-10-01 华为技术有限公司 Communication method and device
CN113326228A (en) * 2021-07-30 2021-08-31 阿里云计算有限公司 Message forwarding method, device and equipment based on remote direct data storage
CN113595807A (en) * 2021-09-28 2021-11-02 阿里云计算有限公司 Computer system, RDMA network card and data communication method

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
DAOUD, FERAS .ET: "GPUrdma: GPU-side library for high performance networking from GPU kernels", 《PROCEEDINGS OF THE 6TH INTERNATIONAL WORKSHOP ON RUNTIME AND OPERATING SYSTEMS FOR SUPERCOMPUTERS, (ROSS 2016)》 *
王小峰;时向泉;苏金树;: "一种TCP/IP卸载的数据零拷贝传输方法", 计算机工程与科学, no. 02 *
胡长军等: "基于通用以太网卡的高性能通信库设计实现", 《计算机工程与应用》 *

Also Published As

Publication number Publication date
CN115934323B (en) 2024-01-19

Similar Documents

Publication Publication Date Title
EP0106213B1 (en) Decentralized information processing system and initial program loading method therefor
US20130246554A1 (en) System and method for transmitting complex structures based on a shared memory queue
US20050038941A1 (en) Method and apparatus for accessing a memory
CN108989432B (en) User-mode file sending method, user-mode file receiving method and user-mode file receiving and sending device
CN111163130A (en) Network service system and data transmission method thereof
US20230168953A1 (en) Inter-process communication method and apparatus
CN111881104A (en) NFS server, data writing method and device thereof, and storage medium
CN115470156A (en) RDMA-based memory use method, system, electronic device and storage medium
CN102841814B (en) A kind of Compliance control method of hardware resource, Apparatus and system
CN115934323A (en) Cloud computing resource calling method and device, electronic equipment and storage medium
CN110022341A (en) A kind of data transmission method and relevant device
CN110659143B (en) Communication method and device between containers and electronic equipment
CN108563492B (en) Data acquisition method, virtual machine and electronic equipment
US9990303B2 (en) Sharing data structures between processes by semi-invasive hybrid approach
CN115617537A (en) Data transmission method and device and storage medium
CN114493598A (en) Computing resource management method, device, computer equipment and storage medium
CN102999393B (en) Method, device and electronic equipment that a kind of data are transmitted
CN114281516A (en) Resource allocation method and device based on NUMA attribute
CN115454681B (en) Batch processing program execution method, device and system
CN114064302B (en) Inter-process communication method and device
CN109783191A (en) Management, use and construction method, the device of container mirror image
CN114884947B (en) Cluster management method, device, equipment, storage medium and program
CN116775510B (en) Data access method, device, server and computer readable storage medium
CN116881191B (en) Data processing method, device, equipment and storage medium
CN114721834B (en) Resource allocation processing method, device, equipment, vehicle and medium

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant