Multi-concurrent rendering processing method, device, system, equipment and storage medium

By preloading scene data from multiple clients to video memory on the rendering server and quickly processing the next request after completing one rendering request, the problem of reduced throughput and cost increase caused by the rendering server being exclusively occupied by a single user is solved, and efficient multi-concurrent rendering processing is achieved.

CN119323509BActive Publication Date: 2025-05-02HANGZHOU QUNHE INFORMATION TECHNOLOGIES CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202411866658.0
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2024-12-18
Publication Date
2025-05-02
Estimated Expiration
2044-12-18

AI Technical Summary

Technical Problem

Existing rendering servers are easily exclusive to a single user, resulting in a decrease in overall throughput and an increase in overall cost.

Method used

By obtaining multiple rendering requests, the target GPU is determined, and using the GPU to respond to the initialization request, the scene data is preloaded into memory and then loaded into video memory. After completing a render request, quickly process the next loaded render request.

Benefits of technology

The single-machine multi-concurrent processing logic is implemented, and the target GPU can take into account multiple clients at the same time, reducing the processing time of rendering requests, improving user experience, and reducing overall costs.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119323509B_ABST
    Figure CN119323509B_ABST
Patent Text Reader

Abstract

The present disclosure provides a multi-concurrent rendering processing method, device, system, equipment and storage medium. The method includes: obtaining one or more first rendering requests; determining a target graphics processor GPU that processes one or more first rendering requests; the target GPU currently processes a second rendering request; using the target GPU to respond to an initialization request corresponding to each first rendering request to pre-load the target scene data required for each first rendering request into a memory; loading the target scene data of at least one target request in the one or more first rendering requests from the memory to the video memory; after completing the second rendering request, using the target GPU to call the target scene data of the target request in the video memory to process the target request.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to the field of image processing technology, and in particular to a multi-concurrent rendering processing method, device, system, equipment and storage medium. Background Art

[0002] In existing rendering scenarios, each rendering server is easily monopolized by a single user. In this way, in the case of a single graphics card configuration, if the rendering server is occupied by one user, it cannot provide services to other users, resulting in reduced overall throughput and increased overall costs. Summary of the invention

[0003] The present disclosure provides a multi-concurrent rendering processing method, apparatus, system, device and storage medium to solve or alleviate one or more technical problems in the prior art.

[0004] In a first aspect, the present disclosure provides a multi-concurrent rendering processing method, comprising:

[0005] Obtain one or more first rendering requests; different first rendering requests correspond to different clients;

[0006] Determine a target graphics processor GPU that processes one or more first rendering requests; the target GPU currently processes a second rendering request;

[0007] Using the target GPU to respond to the initialization request corresponding to each first rendering request, so as to preload the target scene data required for each first rendering request into the memory;

[0008] Loading target scene data of at least one target request in the one or more first rendering requests from the memory to the video memory;

[0009] After completing the second rendering request, the target GPU is used and the target scene data in the video memory is called to process the target request.

[0010] In a second aspect, the present disclosure provides a multi-concurrent rendering processing device, comprising:

[0011] A request processing unit, configured to obtain one or more first rendering requests; determine a target graphics processor GPU for processing the one or more first rendering requests; the target GPU currently processing a second rendering request;

[0012] a data preprocessing unit, configured to use the target GPU to respond to an initialization request corresponding to each first rendering request, so as to preload target scene data required for each first rendering request into a memory; and load target scene data of at least one target request in one or more first rendering requests from the memory into a video memory;

[0013] The rendering unit is used to, after completing the second rendering request, utilize the target GPU to call the target scene data of the target request in the video memory to process the target request.

[0014] In a third aspect, the present disclosure provides a multi-concurrent rendering processing system, comprising:

[0015] A scheduling node, configured to obtain one or more first rendering requests; determine a target graphics processor GPU for processing the one or more first rendering requests; the target GPU currently processing a second rendering request;

[0016] The target GPU is used to respond to the initialization request corresponding to each first rendering request to pre-load the target scene data required for each first rendering request into the memory; load the target scene data of at least one target request in the one or more first rendering requests from the memory to the video memory; and call the target scene data of the target request in the video memory after completing the second rendering request to process the target request.

[0017] In a fourth aspect, an electronic device is provided, including:

[0018] at least one processor; and

[0019] a memory communicatively connected to the at least one processor; wherein,

[0020] The memory stores instructions that can be executed by the at least one processor, and the instructions are executed by the at least one processor to enable the at least one processor to execute any method in the embodiments of the present disclosure.

[0021] In a fifth aspect, a non-transitory computer-readable storage medium storing computer instructions is provided, wherein the computer instructions are used to cause the computer to execute any method according to the embodiments of the present disclosure.

[0022] In a sixth aspect, a computer program product is provided, comprising a computer program, which, when executed by a processor, implements any method according to the embodiments of the present disclosure.

[0023] The beneficial effects of the technical solution provided by the present disclosure include at least:

[0024] The disclosed solution implements the multi-concurrency processing logic of a single machine. Multiple clients can be taken into account in the target GPU at the same time. For example, the target scene data of multiple clients can be pre-loaded from the internal memory to the video memory to open the scenes of each client. This makes it easier to quickly process the next rendering request in which the target scene data has been loaded into the video memory after completing a rendering request. In this way, the processing time of the rendering request is reduced while effectively ensuring the rendering experience.

[0025] It should be understood that the content described in this section is not intended to identify the key or important features of the embodiments of the present disclosure, nor is it intended to limit the scope of the present disclosure. Other features of the present disclosure will become easily understood through the following description. BRIEF DESCRIPTION OF THE DRAWINGS

[0026] In the accompanying drawings, unless otherwise specified, the same reference numerals throughout the multiple drawings represent the same or similar parts or elements. These drawings are not necessarily drawn to scale. It should be understood that these drawings only depict some embodiments provided according to the present disclosure and should not be regarded as limiting the scope of the present disclosure.

[0027] Figure 1 This is a schematic flow chart of a multi-concurrent rendering processing method according to an embodiment of the present application. Figure 1 ;

[0028] Figure 2 It is a schematic diagram of a scene in which a rendering node processes rendering requests of multiple clients in the prior art;

[0029] Figure 3 This is a schematic diagram of a single machine multi-concurrency scenario according to an embodiment of the present application;

[0030] Figure 4 This is a schematic flow chart of a multi-concurrent rendering processing method according to an embodiment of the present application. Figure 2 ;

[0031] Figure 5 and Figure 6 is a flowchart of a multi-concurrent rendering processing method in a specific example according to an embodiment of the present application;

[0032] Figure 7 is a structural diagram of a multi-concurrent rendering processing device according to an embodiment of the present application;

[0033] Figure 8 is a structural diagram of a multi-concurrent rendering processing system according to an embodiment of the present application;

[0034] Fig. 9 It is a block diagram of an electronic device used to implement the multi-concurrent rendering processing method of the embodiment of the present disclosure. DETAILED DESCRIPTION

[0035] The following is a description of exemplary embodiments of the present disclosure in conjunction with the accompanying drawings, including various details of the embodiments of the present disclosure to facilitate understanding, which should be considered as merely exemplary. Therefore, it should be recognized by those of ordinary skill in the art that various changes and modifications may be made to the embodiments described herein without departing from the scope of the present disclosure. Similarly, for the sake of clarity and conciseness, the description of well-known functions and structures is omitted in the following description.

[0036] The following is a description of the related technologies of the embodiments of the present disclosure. The following related technologies are optional solutions that can be arbitrarily combined with the technical solutions of the embodiments of the present disclosure, and they all belong to the protection scope of the embodiments of the present disclosure.

[0037] Pixel streaming refers to a technology used to transmit high-quality graphics content in real time on remote devices. For example, running an Unreal Engine application on a cloud server, the rendered video frames and audio streams are transmitted to a browser or mobile device through Web Real Time Communication (WebRTC) in the form of pixel streaming. In other words, the client can receive the rendered video frames and audio streams through the Unreal Engine application without having to render them locally on the client.

[0038] However, a major drawback of the existing Unreal Engine (UE) pixel streaming solution is that each rendering server is easily monopolized by a single user. In this way, in the case of a single graphics card configuration, if the rendering server is occupied by one user, it cannot provide services to other users, resulting in a decrease in overall throughput and an increase in overall costs.

[0039] In addition, since UE's pixel streaming solution relies on WebRTC to push data streams from the server to the client, there are still problems such as high maintenance costs in the actual production environment.

[0040] Based on this, the disclosed solution provides a single-node multi-concurrency rendering solution, which reduces the overall cost while effectively ensuring the user rendering experience.

[0041] Specifically, Figure 1 This is a schematic flow chart of a multi-concurrent rendering processing method according to an embodiment of the present application. Figure 1 The method may be optionally applied to electronic devices, such as personal computers, servers, server clusters, and other electronic devices.

[0042] Further, the method includes at least part of the following contents. Figure 1 As shown, including:

[0043] Step S101: Obtain one or more first rendering requests. For example, obtain one or more first streaming media rendering requests.

[0044] Here, different first rendering requests correspond to different clients.

[0045] Step S102: Determine a target graphics processor GPU that processes one or more first rendering requests. Here, the target GPU currently processes a second rendering request.

[0046] Step S103: utilizing the target GPU to respond to the initialization request corresponding to each first rendering request, so as to pre-load the target scene data required for each first rendering request into the memory.

[0047] For example, in one example, when the target GPU is currently processing a second rendering request, at least one first rendering request that needs to be processed by the target GPU is determined (for example, the scheduling node determines at least one first rendering request that needs to be processed by the target GPU), and further, the target GPU responds to the initialization request corresponding to each first rendering request to pre-load the target scene data required for each first rendering request into the memory.

[0048] Step S104: loading target scene data of at least one target request in the one or more first rendering requests from the memory to the video memory.

[0049] For example, the target GPU is used to load the target scene data of at least one target request in the one or more first rendering requests from the memory to the video memory, thereby providing strong support for the subsequent rapid processing of rendering requests.

[0050] Here, it should be noted that, in actual applications, the number of target requests to be loaded from the internal memory to the video memory can be determined based on the current remaining video memory resources. For example, based on the current remaining video memory resources, the number of target requests to be loaded from the internal memory to the video memory is determined to be N (N is an integer greater than or equal to 2). At this time, the target scene data of each target request in the N target requests can be loaded from the internal memory to the video memory, thereby providing strong support for the subsequent rapid processing of rendering requests.

[0051] In addition, it should be noted that when filtering the target request from one or more first rendering requests, it can be based on implementation requirements, for example, N target requests are determined from the queue storing the rendering requests, etc., and the disclosed solution does not impose any restrictions on this.

[0052] Step S105: after completing the second rendering request, using the target GPU, calling the target scene data of the target request in the video memory to process the target request.

[0053] That is to say, the disclosed solution does not require the client of the second rendering request to exit, and the target GPU can respond to the rendering requests of other clients (for example, the target request described above) in a timely manner. In this way, compared with the existing solution that a client exits before responding to the rendering request of the next client (for example, Figure 2As shown, in the existing solution, when a rendering node (such as a GPU) is processing a rendering request from a client, such as from opening a scene to exiting the scene, it cannot process other rendering requests. For example, client 1 occupies time period 1, client 2 occupies time period 2, and client 3 occupies time period 3. In other words, for one rendering request, the client occupies one rendering node exclusively. The disclosed solution implements the processing logic of single-machine multi-concurrency, such as Figure 3 As shown, the target GPU can take care of multiple clients at the same time. For example, the target scene data of multiple clients can be loaded from the internal memory to the video memory in advance to open the scenes of each client, so as to facilitate the rapid processing of the next rendering request whose target scene data has been loaded into the video memory after completing a rendering request. In this way, the processing time of the rendering request is reduced while effectively ensuring the rendering experience.

[0054] In addition, it should be noted that compared with Figure 2 As shown in the existing solution, the GPU of the disclosed solution can support the simultaneous loading of multiple scene data, which can greatly reduce the time required for a single rendering. At the same time, the time-sharing multiplexing function of the GPU is utilized to solve the monopoly problem of the existing client. On the basis of effectively ensuring the rendering experience, the processing time of the rendering request is reduced, thereby effectively improving the user experience.

[0055] It should be noted that the disclosed solution can be implemented through a rendering system. In this case, the rendering system may include a scheduling node (which may be implemented through a CPU) and multiple rendering nodes (for example, each rendering node may be implemented through a GPU); wherein the scheduling node may be used to respond to rendering requests sent by the client and allocate corresponding rendering nodes to the rendering requests; and the rendering nodes may be used to process rendering requests to obtain rendering results. Based on this, the disclosed solution may specifically include:

[0056] One or more first rendering requests are obtained through a scheduling node, and a target graphics processor GPU that processes the one or more first rendering requests is determined. Here, the target GPU is currently processing a second rendering request. Further, the target GPU responds to an initialization request corresponding to each first rendering request to pre-load the target scene data required for each first rendering request into the memory. Further, the target GPU loads the target scene data of at least one target request in the one or more first rendering requests from the memory to the video memory, and after completing the second rendering request, the target GPU calls the target scene data of the target request in the video memory to process the target request.

[0057] Furthermore, in a specific example, after the scheduling node determines that the target GPU needs to process the one or more first rendering requests, it may also trigger the target GPU to establish a communication link with a client corresponding to each first rendering request.

[0058] Furthermore, after the communication link is established, the target GPU will also receive the rendering instructions sent by the client to execute the target request. At this time, the target GPU will load the target scene data of the target request from the memory to the video memory, and after completing the second rendering request, call the target scene data of the target request in the video memory to process the target request.

[0059] In a specific example, after completing the second rendering request, the target GPU may also clear the scene data of the second rendering request in the video memory, thereby optimizing the resource usage of the system and providing strong support for the subsequent rapid processing of the next rendering request.

[0060] Here, in one example, in order to further improve processing efficiency and enhance user experience, after completing the second rendering request, the target GPU can preferentially call the target scene data of the target request in the video memory to process the target request, and clear the scene data of the second rendering request while calling the target scene data or processing the target request.

[0061] Alternatively, in another example, in order to quickly optimize system resource usage, after completing the second rendering request, the target GPU may preferentially clear the scene data of the second rendering request, and then call the target scene data of the target request in the video memory to process the target request.

[0062] Figure 4 This is a schematic flow chart of a multi-concurrent rendering processing method according to an embodiment of the present application. Figure 2 The method can be optionally applied to electronic devices, such as personal computers, servers, server clusters, and other electronic devices. It can be understood that the above Figure 1 The relevant contents of the method shown can also be applied to this example, and the relevant contents will not be described in detail in this example.

[0063] Further, the method includes at least part of the following contents. Figure 4 As shown, including:

[0064] Step S401: Obtain one or more first rendering requests.

[0065] Step S402: Determine a target graphics processor GPU that processes one or more first rendering requests. Here, the target GPU currently processes a second rendering request.

[0066] Step S403: utilizing the target GPU to respond to the initialization request corresponding to each first rendering request, so as to pre-load the target scene data required for each first rendering request into the memory.

[0067] Step S404: loading target scene data of at least one target request in the one or more first rendering requests from the memory to the video memory.

[0068] For example, the target GPU is used to load the target scene data of at least one target request in the one or more first rendering requests from the memory to the video memory, thereby providing strong support for the subsequent rapid processing of rendering requests.

[0069] Step S405: Determine whether the current remaining video memory resources of the target GPU can process the target request. If it is confirmed that the target request can be processed, execute step S406, otherwise, that is, if it is determined that the target request cannot be processed, execute step S407.

[0070] Step S406: After completing the second rendering request, utilizing the target GPU and calling the target scene data of the target request in the video memory to process the target request.

[0071] Step S407: After completing the second rendering request, release the video memory resources occupied by the second rendering request, for example, clear the scene data of the second rendering request, or, further, release the scene data of other rendering requests that have been processed, so that the target request can be processed normally later. Go to step S408.

[0072] Step S408: After the video memory resources are released, the target GPU is used to call the target scene data of the target request in the video memory to process the target request.

[0073] For example, the above process can be implemented by a rendering system. In this case, based on this, the disclosed solution can specifically include:

[0074] One or more first rendering requests are obtained through a scheduling node, and a target graphics processor GPU for processing the one or more first rendering requests is determined. Here, the target GPU is currently processing a second rendering request. The target GPU responds to the initialization request corresponding to each first rendering request to preload the target scene data required for each first rendering request into the memory. Further, the target GPU loads the target scene data of at least one target request in the one or more first rendering requests from the memory to the video memory. Further, the scheduling node is used to determine whether the current remaining video memory resources of the target GPU can process the target request; after determining that the target request can be processed and the second rendering request is completed, the target GPU is used to call the target scene data of the target request in the video memory to process the target request. Alternatively, if it is determined that the target request cannot be processed, the scheduling node is used to determine whether the second rendering request is completed, and after determining that the second rendering request is completed, the video memory resources occupied by the second rendering request are released, and after the video memory resources are released, the target GPU is used to call the target scene data of the target request in the video memory to process the target request.

[0075] Furthermore, in a specific example, in order to facilitate the GPU to quickly process the next rendering request, the target GPU described in the disclosed solution may also simultaneously establish communication links with the following clients:

[0076] The client corresponding to each first rendering request;

[0077] The client corresponding to the second rendering request.

[0078] It should be noted that if Figure 3 As shown, the disclosed solution can establish communication links with multiple clients at the same time. For example, in this example, when the target GPU has established a communication link with the client of the second rendering request, the target GPU can also establish links with other communication links. Figure 2 As for the existing scheme shown, since the disclosed scheme can establish communication links with multiple clients at the same time, it is possible to pre-load the target scene data of multiple clients from the internal memory to the video memory, so as to open the scenes required by each client in the target GPU in advance, thereby facilitating the target GPU to quickly process the next rendering request in which the target scene data has been loaded into the video memory after completing a rendering request. In other words, since the disclosed scheme can establish communication links with multiple clients at the same time, it is possible to support the simultaneous loading of multiple scene data, thereby providing strong support for effectively reducing the processing time of rendering requests and improving user experience.

[0079] For instance, in a specific example, during the process of the target GPU processing the second rendering request, a communication link is established between the target GPU and one or more clients corresponding to the first rendering request. This provides strong support for the subsequent pre-loading of scene data from the memory to the video memory, and then quickly processing the rendering request.

[0080] Alternatively, in another example, the target GPU may simultaneously establish a communication link with the client of the first rendering request and one or more clients corresponding to the first rendering request.

[0081] It should be noted that the disclosed solution does not impose any specific restrictions on the timing of establishing a communication link, as long as the purpose of simultaneously loading multiple scene data in the disclosed solution can be achieved.

[0082] The present disclosure is further described in detail below with reference to specific examples, specifically:

[0083] The core point of the disclosed solution is to support multiple concurrent rendering tasks on a single node. Compared with the existing real-time rendering, the disclosed solution realizes that a single graphics card can simultaneously support multiple users online in real-time rendering of different scenes. Moreover, combined with the corresponding scheduling system, the disclosed solution can support a large number of users online at the same time to the greatest extent, and perform real-time rendering of different scenes required by different users. At the same time, the client of the disclosed solution can obtain a rendering experience similar to that of a single rendering server.

[0084] The overall process of the disclosed solution is described in detail below with reference to the specific drawings. Specifically, Figure 5 and Figure 6 As shown, the main process includes:

[0085] Step 1: The client starts streaming rendering (corresponding to the first rendering request described above).

[0086] Step 2: The client applies to the authentication server (for example, the authentication server) for a temporary token required for subsequent streaming rendering.

[0087] Step 3: The authentication server determines whether a rendering node (for example, a GPU node) can be allocated to the client based on the client's user information. If the authentication is successful, it is considered that the rendering node is allowed to be allocated to the client, and a temporary token is generated and returned to the client. Otherwise, the process ends.

[0088] Step 4: After the client obtains the temporary token, it carries the temporary token assigned by the authentication server to request the rendering scheduling server (e.g., rendering scheduling server) to allocate an available rendering node; here, the request for requesting the allocation of an available rendering node can be referred to as a node determination request.

[0089] Step 5: The rendering scheduling server selects an appropriate scheduling algorithm to allocate an available rendering node to the client of the node confirmation request according to the overall load of the rendering cluster, for example, allocates a target rendering node, and sends the node identifier of the allocated target rendering node to the client.

[0090] Here, it should be noted that if there is no available rendering node, the node confirmation request can be added to the waiting queue, and the node available event is triggered, for example, and detailed information of the queue is returned to the client, for example, the current queue length and the queue position are sent to the client. Further, when a rendering node releases the connection and a new rendering node is available, the node available event is triggered, such as allocating it to the client, and notifying the corresponding client of the allocation result.

[0091] Furthermore, it should be noted that the node scheduling algorithm includes multiple implementation schemes, which can be configured accordingly through the management background. For example, the default node scheduling algorithm is the minimum connection number algorithm, that is, according to the number of connections actually established by each rendering node, the rendering node with the least current connection number is preferentially selected for allocation. Here, it can be understood that the node scheduling algorithm actually enabled can be dynamically switched according to the background configuration, and the disclosed solution does not limit this.

[0092] Step 6: After the client obtains the node identifier of the target rendering node, it initiates an initialization request to the rendering scheduling server. Here, the initialization request may carry a temporary token and a node identifier.

[0093] Step 7: The rendering scheduling server routes the initialization request to the target rendering node according to the carried node identifier, and at the same time, triggers the target rendering node to establish a communication link with the client.

[0094] Step 8: The target rendering node performs authentication based on the temporary token carried in the initialization request, responds to the initialization request after authentication, and completes the initialization of the rendering instance. For example, the target scene data required by the client (such as the scene data required by the client and the required model material data, etc.) is downloaded from the cloud object storage to the disk of the target rendering node, and loaded into the memory to complete the loading preheating.

[0095] Step 9: The client sends a rendering instruction to the target rendering node to perform streaming media rendering.

[0096] Step 10: The target rendering node completes a reload operation according to the rendering instruction to load the target scene data required by the client from the memory to the video memory.

[0097] Step 11: After processing other rendering instructions, the target rendering node calls the target scene data in the video memory to quickly complete the rendering.

[0098] Step 12: After rendering is completed, the target rendering node clears the target scene data from the video memory.

[0099] For example, in one example, when the target rendering node receives a request from the client to actively exit, it exits and releases the client connection. Alternatively, when the client has not operated for a long time, it exits and releases the client connection.

[0100] The disclosed solution can preload the target scene data from the memory to the video memory, thereby significantly reducing the rendering time of the entire rendering cycle. In the preview scene, the rendering result can be returned within 2 seconds. In addition, the disclosed solution reduces the time of the entire rendering cycle to a minimum possible value by optimizing the overall rendering speed, thereby improving the overall throughput.

[0101] In summary, the disclosed solution has the following effects:

[0102] First, the disclosed solution significantly reduces the cost of real-time rendering products. For example, based on a small number of graphics cards, an experience similar to UE pixel streaming with several times the number of graphics cards can be achieved.

[0103] Second, the hardware cost required by the disclosed solution is lower and more suitable for large-scale processing.

[0104] Third, the disclosed solution is more flexible. For example, a single public Internet Protocol (IP) can support the deployment of multiple rendering nodes. Moreover, the disclosed solution is friendly to network deployment solutions and facilitates rapid expansion.

[0105] Fourth, the disclosed solution is more secure. For example, a special authentication process is added, so that subsequent rendering nodes are directly exposed to users for point-to-point communication with a certain degree of security.

[0106] The disclosed solution provides a multi-concurrent rendering processing device, such as Figure 7 As shown, including:

[0107] The request processing unit 701 is used to obtain one or more first rendering requests; determine a target graphics processor GPU that processes the one or more first rendering requests; the target GPU currently processes a second rendering request;

[0108] The data preprocessing unit 702 is used to use the target GPU to respond to the initialization request corresponding to each first rendering request, so as to pre-load the target scene data required for each first rendering request into the memory; and load the target scene data of at least one target request in the one or more first rendering requests from the memory to the video memory;

[0109] The rendering unit 703 is used to, after completing the second rendering request, use the target GPU to call the target scene data of the target request in the video memory to process the target request.

[0110] In a specific example of the disclosed solution, the rendering unit is specifically used to:

[0111] Determine whether the current remaining video memory resources of the target GPU can process the target request;

[0112] After determining that the target request can be processed and the second rendering request is completed, the target GPU is utilized and the target scene data of the target request in the video memory is called to process the target request.

[0113] In a specific example of the disclosed solution, the rendering unit is specifically used to:

[0114] Determine whether the current remaining video memory resources of the target GPU can process the target request;

[0115] After determining that the target request cannot be processed and the second rendering request is completed, releasing the video memory resources occupied by the second rendering request;

[0116] After the video memory resources are released, the target GPU is used to call the target scene data of the target request in the video memory to process the target request.

[0117] In a specific example of the disclosed solution, the target GPU simultaneously establishes communication links with the following clients:

[0118] The client corresponding to each first rendering request;

[0119] The client corresponding to the second rendering request.

[0120] In a specific example of the disclosed solution, the request processing unit is further used to:

[0121] During the process of the target GPU processing the second rendering request, a communication link is established between the target GPU and one or more clients corresponding to the first rendering request.

[0122] The disclosed solution also provides a multi-concurrent rendering processing system, such as Figure 8 As shown, including:

[0123] The scheduling node 801 is used to obtain one or more first rendering requests; determine a target graphics processor GPU that processes the one or more first rendering requests; the target GPU currently processes a second rendering request;

[0124] The target GPU 802 is used to respond to the initialization request corresponding to each first rendering request to pre-load the target scene data required for each first rendering request into the memory; load the target scene data of at least one target request in one or more first rendering requests from the memory to the video memory; and call the target scene data of the target request in the video memory after completing the second rendering request to process the target request.

[0125] For the description of the specific functions and examples of each unit of the device in the embodiment of the present disclosure, reference can be made to the relevant description of the corresponding steps in the above method embodiment, which will not be repeated here.

[0126] Fig. 9 FIG. 1 is a structural block diagram of an electronic device according to an embodiment of the present disclosure. Fig. 9 As shown, the electronic device includes: a memory 910 and a processor 920, and the memory 910 stores a computer program that can be run on the processor 920. The number of memories 910 and processors 920 can be one or more. The memory 910 can store one or more computer programs. When the one or more computer programs are executed by the electronic device, the electronic device executes the method provided by the above method embodiment. The electronic device may also include: a communication interface 930, which is used to communicate with external devices and perform data exchange transmission.

[0127] If the memory 910, the processor 920 and the communication interface 930 are implemented independently, the memory 910, the processor 920 and the communication interface 930 can be connected to each other through a bus and communicate with each other. The bus can be an Industry Standard Architecture (ISA) bus, a Peripheral Component Interconnect (PCI) bus or an Extended Industry Standard Architecture (EISA) bus. The bus can be divided into an address bus, a data bus, a control bus, etc. For ease of representation, Fig. 9 Only one thick line is used in the diagram, but this does not mean that there is only one bus or only one type of bus.

[0128] Optionally, in a specific implementation, if the memory 910, the processor 920 and the communication interface 930 are integrated on a chip, the memory 910, the processor 920 and the communication interface 930 can communicate with each other through an internal interface.

[0129] It should be understood that the processor may be a central processing unit (CPU), or other general-purpose processors, digital signal processors (DSP), application-specific integrated circuits (ASIC), field programmable gate arrays (FPGA) or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. A general-purpose processor may be a microprocessor or any conventional processor, etc. It is worth noting that the processor may be a processor supporting the Advanced RISC Machines (ARM) architecture.

[0130] Further, optionally, the above-mentioned memory may include a read-only memory and a random access memory, and may also include a non-volatile random access memory. The memory may be a volatile memory or a non-volatile memory, or may include both volatile and non-volatile memories. Among them, the non-volatile memory may include a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or a flash memory. The volatile memory may include a random access memory (RAM), which is used as an external cache. By way of example but not limitation, many forms of RAM are available. For example, static random access memory (SRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDR SDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous link dynamic random access memory (SLDRAM) and direct memory bus random access memory (DR RAM).

[0131] In the above embodiments, it can be implemented in whole or in part by software, hardware, firmware or any combination thereof. When implemented using software, it can 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. When the computer instructions are loaded and executed on a computer, the process or function described in the embodiment of the present disclosure is generated in whole or in part. The computer can be a general-purpose computer, a special-purpose computer, a computer network or other programmable device. The computer instructions can be stored in a computer-readable storage medium, or transmitted from one computer-readable storage medium to another computer-readable storage medium. For example, the computer instructions can be transmitted from a website site, computer, server or data center by wired (for example: coaxial cable, optical fiber, data subscriber line (Digital Subscriber Line, DSL)) or wireless (for example: infrared, Bluetooth, microwave, etc.) mode to another website site, computer, server or data center. The computer-readable storage medium can be any available medium that a computer can access, or a data storage device such as a server or data center that includes one or more available media integrations. The available medium may be a magnetic medium (e.g., a floppy disk, a hard disk, a magnetic tape), an optical medium (e.g., a digital versatile disc (DVD)), or a semiconductor medium (e.g., a solid state disk (SSD)), etc. It is worth noting that the computer-readable storage medium mentioned in the present disclosure may be a non-volatile storage medium, in other words, a non-transient storage medium.

[0132] A person skilled in the art will understand that all or part of the steps to implement the above embodiments may be accomplished by hardware or by instructing related hardware through a program, and the program may be stored in a computer-readable storage medium, and the above-mentioned storage medium may be a read-only memory, a disk or an optical disk, etc.

[0133] In the description of the embodiments of the present disclosure, the description with reference to the terms "one embodiment", "some embodiments", "example", "specific example", or "some examples" means that the specific features, structures, materials or characteristics described in conjunction with the embodiment or example are included in at least one embodiment or example of the present disclosure. Moreover, the specific features, structures, materials or characteristics described may be combined in any one or more embodiments or examples in a suitable manner. In addition, those skilled in the art may combine and combine the different embodiments or examples described in this specification and the features of the different embodiments or examples, unless they are contradictory.

[0134] In the description of the embodiments of the present disclosure, unless otherwise specified, " / " means or, for example, A / B can mean A or B. "And / or" in this article is only a way to describe the association relationship of associated objects, indicating that there can be three relationships, for example, A and / or B can mean: A exists alone, A and B exist at the same time, and B exists alone.

[0135] In the description of the embodiments of the present disclosure, the terms "first" and "second" are used for descriptive purposes only and are not to be understood as indicating or implying relative importance or implicitly indicating the number of the indicated technical features. Thus, a feature defined as "first" or "second" may explicitly or implicitly include one or more of the features. In the description of the embodiments of the present disclosure, unless otherwise specified, "plurality" means two or more.

[0136] The above description is only an exemplary embodiment of the present disclosure and is not intended to limit the present disclosure. Any modifications, equivalent substitutions, improvements, etc. made within the spirit and principles of the present disclosure shall be included in the protection scope of the present disclosure.

Claims

1. A multi-concurrent rendering processing method, comprising: Obtain one or more first rendering requests; Different first rendering requests correspond to different clients; Determine a target graphics processor GPU for processing one or more first rendering requests; The target GPU currently processes a second rendering request; Using the target GPU to respond to the initialization request corresponding to each first rendering request, so as to preload the target scene data required for each first rendering request into the memory; Loading target scene data of at least one target request in the one or more first rendering requests from the memory to the video memory; After completing the second rendering request, the target GPU is used to call the target scene data of the target request in the video memory to process the target request.

2. The method according to claim 1, wherein: After completing the second rendering request, using the target GPU to call the target scene data of the target request in the video memory to process the target request, including: Determine whether the current remaining video memory resources of the target GPU can process the target request; After determining that the target request can be processed and the second rendering request is completed, the target GPU is utilized and the target scene data of the target request in the video memory is called to process the target request.

3. The method according to claim 1, wherein: After completing the second rendering request, using the target GPU to call the target scene data of the target request in the video memory to process the target request, including: Determine whether the current remaining video memory resources of the target GPU can process the target request; After determining that the target request cannot be processed and the second rendering request is completed, releasing the video memory resources occupied by the second rendering request; After the video memory resources are released, the target GPU is used to call the target scene data of the target request in the video memory to process the target request.

4. The method according to any one of claims 1 to 3, wherein: The target GPU also establishes communication links with the following clients: The client corresponding to each first rendering request; The client corresponding to the second rendering request.

5. The method according to claim 4, further comprising: During the process of the target GPU processing the second rendering request, a communication link is established between the target GPU and one or more clients corresponding to the first rendering request.

6. A multi-concurrent rendering processing device, comprising: A request processing unit, configured to obtain one or more first rendering requests; Determine a target graphics processor GPU for processing one or more first rendering requests; The target GPU currently processes a second rendering request; Different first rendering requests correspond to different clients; a data preprocessing unit, configured to utilize the target GPU to respond to an initialization request corresponding to each first rendering request, so as to preload target scene data required for each first rendering request into a memory; Loading target scene data of at least one target request in the one or more first rendering requests from the memory to the video memory; The rendering unit is used to, after completing the second rendering request, utilize the target GPU to call the target scene data of the target request in the video memory to process the target request.

7. The device according to claim 6, wherein: The rendering unit is specifically used for: Determine whether the current remaining video memory resources of the target GPU can process the target request; After determining that the target request can be processed and the second rendering request is completed, the target GPU is utilized and the target scene data of the target request in the video memory is called to process the target request.

8. The device according to claim 6, wherein: The rendering unit is specifically used for: Determine whether the current remaining video memory resources of the target GPU can process the target request; After determining that the target request cannot be processed and the second rendering request is completed, releasing the video memory resources occupied by the second rendering request; After the video memory resources are released, the target GPU is used to call the target scene data of the target request in the video memory to process the target request.

9. The device according to any one of claims 6 to 8, wherein: The target GPU also establishes communication links with the following clients: The client corresponding to each first rendering request; The client corresponding to the second rendering request.

10. The device according to claim 9, wherein: The request processing unit is further used for: During the process of the target GPU processing the second rendering request, a communication link is established between the target GPU and one or more clients corresponding to the first rendering request.

11. A multi-concurrent rendering processing system, comprising: A scheduling node, used to obtain one or more first rendering requests; Determine a target graphics processor GPU for processing one or more first rendering requests; The target GPU currently processes a second rendering request; The target GPU is used to respond to the initialization request corresponding to each first rendering request to preload the target scene data required by each first rendering request into the memory; Loading target scene data of at least one target request in the one or more first rendering requests from the memory to the video memory; It is also used to call the target scene data of the target request in the video memory to process the target request after completing the second rendering request.

12. An electronic device comprising: at least one processor; as well as a memory communicatively connected to the at least one processor; wherein, The memory stores instructions that can be executed by the at least one processor, and the instructions are executed by the at least one processor to enable the at least one processor to perform the method according to any one of claims 1 to 5.

13. A non-transitory computer-readable storage medium storing computer instructions, wherein: The computer instructions are used to cause the computer to execute the method according to any one of claims 1-5.

14. A computer program product, comprising a computer program, which, when executed by a processor, implements the method according to any one of claims 1 to 5.

Citation Information

Patent Citations

  • GPU parallel operation-based image search system and method

    CN110633379A

  • GPU rendering kernel data pre-reading method and device and computer storage medium

    CN111311478A