Control device, program, and system
The control device optimizes GPU resource allocation between VRAN and RAN AI functions in VRAN systems, addressing resource constraints and congestion by dynamically adjusting based on load thresholds and predictive analytics to enhance service quality.
Patent Information
- Application Number
- JP2023119222
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-07-21
- Publication Date
- 2025-01-31
- Estimated Expiration
- 2043-07-21
AI Technical Summary
Existing VRAN systems face challenges in efficiently executing both VRAN and RAN AI functions due to resource constraints, particularly when CPU and GPU loads are high, leading to potential congestion and reduced service quality.
A control device that dynamically allocates GPU resources between VRAN and RAN AI functions based on load thresholds and predictive analytics, ensuring stable execution and proactive congestion management.
Enhances service quality by stabilizing VRAN functions and enabling efficient RAN AI operations, reducing congestion through dynamic resource allocation and proactive measures like handover of communication terminals.
Smart Images

Figure 2025016144000001_ABST
Abstract
Description
[Technical field]
[0001] The present invention relates to a control device, a program, and a system. [Background technology]
[0002] Patent Document 1 describes a container-based GPU virtualization method and system capable of dynamically allocating and sharing GPU resources. [Prior art document] [Patent documents] [Patent Document 1] Special Publication No. 2020-537197 Summary of the Invention [Means for solving the problem]
[0003] According to one embodiment of the present invention, there is provided a control device. The control device may include a vRAN execution unit that executes a vRAN function, which is a function of a vRAN (Virtual Radio Access Network), using a CPU (Central Processing Unit) resource and a GPU (Graphics Processing Unit) resource. The control device may include a RAN AI execution unit that executes a RAN AI function, which is a function of AI (Artificial Intelligence) related to control of the vRAN, using the GPU resource.
[0004] The control device may include a management unit that controls the allocation of the GPU resources to the vRAN execution unit, out of the vRAN execution unit and the RAN AI execution unit. In the control device, the management unit may monitor the processing load of the GPU when the vRAN execution unit is executing the vRAN function using the CPU and the GPU, and increase the amount of the GPU resources allocated to the RAN AI execution unit when the processing load of the GPU becomes lower than a predetermined threshold.
[0005] In any of the control devices, when the processing load of the vRAN execution unit is higher than a predetermined threshold, the management unit may increase the amount of the GPU resources allocated to the vRAN execution unit when it determines that the processing load of physical layer signal processing by the vRAN execution unit is higher than a predetermined threshold, and may increase the amount of the GPU resources allocated to the RAN AI execution unit when it determines that the processing load of connection processing by the vRAN execution unit in response to a connection request from a mobile communication terminal in the vRAN is higher than a predetermined threshold.
[0006] In any of the control devices, the management unit may increase the amount of the GPU resources allocated to the RAN AI execution unit when the vRAN execution unit is executing the vRAN function using the CPU resources and the GPU resources and it is predicted that the vRAN will become congested.
[0007] Any of the control devices may function as a Near-RT (Real Time) RIC (RAN Intelligent Controller). In the control device, the RAN AI execution unit may use the resources of the GPU to execute inference processing related to the control of the RAN using a trained model acquired from a Non-RT RIC. In the control device, the RAN AI execution unit may update the trained model by executing machine learning using data related to the vRAN.
[0008] Any of the control devices may include a service execution unit that executes, using the GPU, a service providing function that provides services to a mobile communication terminal that accesses the vRAN. In the control device, the management unit may control the allocation of the GPU resources to the vRAN execution unit, the RAN AI execution unit, and the service execution unit in the order of the vRAN execution unit, the RAN AI execution unit, and the service execution unit.
[0009] According to one embodiment of the present invention, there is provided a program, the program may cause a computer to function as the control device.
[0010] According to an embodiment of the present invention, there is provided a system, the system may include the control device, the CPU, and the GPU.
[0011] The above summary of the invention does not list all of the necessary features of the present invention. Also, subcombinations of these features may also be inventions. [Brief description of the drawings]
[0012] [Figure 1] FIG. 1 is an explanatory diagram for explaining a conventional technique. [Diagram 2] FIG. 1 is a diagram illustrating an example of using a GPU for RAN control in the prior art. [Diagram 3] FIG. 2 is an explanatory diagram for explaining an example of the configuration of a control device 100. [Figure 4] FIG. 2 is an explanatory diagram for explaining an example of the configuration of a control device 100. [Diagram 5] FIG. 2 is an explanatory diagram for explaining an example of the configuration of a control device 100. [Figure 6] 2 illustrates an example of a functional configuration of the control device 100. [Figure 7] 1 shows an example of a flow of processing by the control device 100. [Figure 8] An example of a hardware configuration of a computer 1200 functioning as the control device 100 is shown in schematic form. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0013] The present invention will be described below through embodiments of the invention, but the following embodiments do not limit the scope of the invention according to the claims. Furthermore, not all of the combinations of features described in the embodiments are necessarily essential to the solution of the invention.
[0014] Fig. 1 is an explanatory diagram for explaining the conventional technology. Fig. 2 is an assumed diagram assuming that a GPU is used for RAN control in the conventional technology.
[0015] Conventionally, vRAN, which is a virtualized RAN, has been known. In a typical vRAN, signal processing is offloaded to hardware such as an Accelerator (ACC), and vRAN functions (sometimes referred to as vRAN functions) are executed by the CPU and ACC. If you want to execute RAN functions using AI such as RIC (sometimes referred to as RAN AI functions) in addition to the vRAN functions, it is difficult to execute the RAN AI functions by the ACC, so the RAN AI functions will be executed by the CPU.
[0016] 1, for example, a virtualization layer / OS 16 is configured on the CPU 12 and the ACC 14, and the functions of a vRAN 18 and a RAN AI 20 are executed on the virtualization layer / OS 16. The resources of the CPU 12 and the resources of the ACC 14 are allocated to the vRAN 18, and the vRAN 18 is executed by the CPU 12 and the ACC 14. The resources of the CPU 12 are allocated to the RAN AI 20, and the RAN AI 20 is executed by the CPU 12.
[0017] It is possible to use a GPU to reduce the load on the CPU 12 and improve the efficiency of the RAN AI function, but this requires a separate GPU server 22, as shown in Fig. 2. GPUvRAN, which offloads the signal processing of vRAN to a GPU, is known, but the RAN AI function is not taken into consideration in GPUvRAN.
[0018] Fig. 3 illustrates an example of the configuration of the control device 100 according to the present embodiment. The control device 100 in the example illustrated in Fig. 3 includes a CPU 102 and a GPU 104, a virtualization layer / OS 106 is configured on the CPU 102 and the GPU 104, and a function of a vRAN 108 and a function of a RAN AI 110 are executed on the virtualization layer / OS 106. In the control device 100, the vRAN function is executed using the resources of the CPU 102 and the resources of the GPU 104, and the RAN AI function is executed using the resources of the GPU 104.
[0019] The control device 100 may allocate GPU 104 resources preferentially to the vRAN 108 out of the vRAN 108 and the RAN AI 110.
[0020] For example, the control device 100 normally allocates the resources of the CPU 102 and the GPU 104 to the vRAN function to execute the vRAN function, and when the processing load of the GPU 104 becomes lower than a predetermined threshold, increases the amount of the resources of the GPU 104 allocated to the RAN AI 110 to start executing the RAN AI function. This makes it possible to stably execute the vRAN function while executing the RAN AI function when the load of the vRAN function is low. By stably executing the vRAN function, it is possible to provide a stable communication service to a mobile communication terminal accessing the vRAN, while improving service quality by the RAN AI function.
[0021] Also, for example, the control device 100 normally allocates the resources of the CPU 102 and the GPU 104 to the vRAN 108 to execute the vRAN function, and allocates the resources of the GPU 104 to the RAN AI 110 in an amount less than the amount of the resources of the GPU 104 allocated to the vRAN 108 to execute the RAN AI function. Then, when the processing load of the vRAN function becomes lower than a predetermined threshold, the control device 100 increases the amount of the resources of the GPU 104 allocated to the RAN AI 110. This makes it possible to stably execute the vRAN function while improving service quality by the RAN AI function, and to enhance the RAN AI function when the load of the vRAN function is low to contribute to improving service quality.
[0022] Also, for example, the control device 100 normally allocates the resources of the CPU 102 and the GPU 104 to the vRAN function to execute the vRAN function, and predicts whether the vRAN will be congested based on the execution status of the vRAN. When the control device 100 predicts that the vRAN will be congested, it increases the amount of the resources of the GPU 104 allocated to the RAN AI 110 and starts execution of the RAN AI function. Basically, prediction using the RAN AI function is more accurate than prediction based on the execution status of the vRAN, so by executing the RAN AI function, it is possible to predict with higher accuracy whether the vRAN will be congested. When the RAN AI function determines that the vRAN will be congested, the control device 100 executes a countermeasure. As one of the countermeasures, the control device 100 executes an offload process, such as handing over a mobile communication terminal from a wireless communication cell under the vRAN. This can reduce the possibility that the vRAN will be congested and the quality of the wireless communication service provided to the mobile communication terminal will be reduced. As another measure, the control device 100, for example, stops the allocation of resources of the GPU 104 to the RAN AI function and allocates the amount to the vRAN function. This can increase the processing capacity of the vRAN function, prevent congestion from occurring, and contribute to reducing the degree of congestion. The control device 100 may execute measures according to the amount of surplus wireless resources. For example, when the remaining amount of wireless resources is greater than a predetermined threshold, the control device 100 stops the allocation of resources of the GPU 104 to the RAN AI function and allocates the amount to the vRAN function, and when the remaining amount of wireless resources is less than the threshold, the control device 100 executes offload processing such as handing over a mobile communication terminal from a wireless communication cell under the vRAN. When the remaining amount of wireless resources is large, the number of mobile communication terminals that can be accommodated can be increased by allocating the resources of the GPU 104 to the vRAN function, which can contribute to reducing congestion, but even if the remaining amount of wireless resources is small, the number of mobile communication terminals that can be accommodated cannot be increased, and this may not be a measure against congestion. The control device 100 can realize control that takes such circumstances into consideration.
[0023] Also, for example, the control device 100 normally allocates the resources of the CPU 102 and a part of the resources of the GPU 104 to the vRAN 108 to execute the vRAN function, and allocates the resources of the GPU 104 to the RAN AI 110 in an amount less than the amount of the resources of the GPU 104 allocated to the vRAN 108 to execute the RAN AI function. The control device 100 predicts whether the vRAN will be congested by the RAN AI function. When the control device 100 determines that the vRAN will be congested by the RAN AI function, the control device 100 may execute a countermeasure. As one of the countermeasures, the control device 100 executes an offload process such as handing over a mobile communication terminal from a wireless communication cell under the vRAN. As another countermeasure, the control device 100, for example, stops the allocation of the resources of the GPU 104 to the RAN AI function and allocates the amount to the vRAN function. The control device 100 may execute a countermeasure according to the surplus of wireless resources. For example, when the remaining amount of radio resources is greater than a predetermined threshold, the control device 100 stops allocating resources of the GPU 104 to the RAN AI function and allocates that amount to the vRAN function; when the remaining amount of radio resources is less than the threshold, the control device 100 performs offload processing such as handing over a mobile communication terminal from a wireless communication cell under the vRAN.
[0024] Fig. 4 shows an example of the configuration of the control device 100 according to the present embodiment. Here, differences from Fig. 3 will be mainly described. The control device 100 in this example further executes the function of the MEC 112 (sometimes referred to as the MEC function) in addition to the vRAN function and the RAN AI function.
[0025] The MEC function may be an example of a service providing function that provides services to mobile communication terminals that access the vRAN. The service provided by the service providing function may be any service, and examples thereof include, but are not limited to, a service that analyzes various data such as still image data, video data, voice data, text data, and sensor data, a service that executes processing according to the analysis results, an authentication service, and an autonomous driving-related service.
[0026] The control device 100 may allocate resources of the GPU 104 preferentially among the vRAN 108, the RAN AI 110, and the MEC 112 in the order of the vRAN 108, the RAN AI 110, and the MEC 112. That is, the control device 100 may assign the highest priority to the vRAN 108, followed by the RAN AI 110 and then the MEC 112.
[0027] For example, the control device 100 normally allocates the resources of the CPU 102 and the GPU 104 to the vRAN function to execute the vRAN function, and when the processing load of the GPU 104 becomes lower than a predetermined threshold, increases the amount of the GPU 104 resources allocated to the RAN AI 110 to start executing the RAN AI function. Then, when the amount of unused resources of the GPU 104 becomes higher than a predetermined threshold, the control device 100 allocates the resources of the GPU 104 to the MEC 112 to execute the MEC function. This allows the RAN AI function to be executed when the load of the vRAN function is low while stably executing the vRAN function, and the MEC function to be executed when there is still a surplus of resources in the GPU 104. By stably executing the vRAN function, it is possible to provide a stable communication service to a mobile communication terminal that accesses the vRAN, while improving the service quality by the RAN AI function, and also providing the MEC service.
[0028] Also, for example, the control device 100 normally allocates the resources of the CPU 102 and a part of the resources of the GPU 104 to the vRAN 108 to execute the vRAN function, allocates the resources of the GPU 104 less than the amount of the resources of the GPU 104 allocated to the vRAN 108 to the RAN AI 110 to execute the RAN AI function, and allocates the resources of the GPU 104 less than the amount of the resources of the GPU 104 allocated to the RAN AI 110 to the MEC 112 to execute the MEC function. Then, when the processing load of the vRAN function decreases, the control device 100 increases the amount of the resources of the GPU 104 allocated to the RAN AI 110 and the amount of the resources of the GPU 104 allocated to the MEC 112. This makes it possible to stably execute the vRAN function, improve the service quality by the RAN AI function, and provide services by the MEC function, and to strengthen the RAN AI function and the MEC function when the load of the vRAN function is low. The control device 100 may monitor the processing load of the vRAN 108, and when the processing load of the vRAN 108 is higher than a predetermined threshold, reduce the amount of resources of the GPU 104 allocated to the MEC 112 and allocate that amount to the vRAN 108.
[0029] 5 is a schematic diagram showing an example of a configuration of the control device 100 according to the present embodiment. The control device 100 may function as a Near-RT RIC 200. In FIG. 5, the Near-RT RIC 200 is realized by the control device 100.
[0030] 5, the Non-RT RIC 210 is located inside a Service Management and Orchestration (SMO) that manages and orchestrates the RAN. The Non-RT RIC 210 generates and notifies policies related to RAN control, and transmits information to the Near-RT RIC 200. For example, the Non-RT RIC 210 generates a trained model related to RAN control by executing machine learning using data collected from the RAN, and transmits the trained model to the Near-RT RIC 200.
[0031] The Near-RT RIC 200 is located closer to the RAN nodes (O-RU 220, O-DU 230, O-CU 240) than the Non-RT RIC 210, and controls the RAN nodes, controls resources, etc. The Near-RT RIC 200 executes processing with high real-time performance compared to the Non-RT RIC 210.
[0032] The Near-RT RIC200 according to this embodiment executes inference processing related to the control of the RAN using a trained model acquired from the Non-RT RIC210, for example, using the resources of the GPU104. Existing Near-RT RICs do not use a GPU, but the Near-RT RIC200 according to this embodiment has the GPU104 and executes inference processing using the GPU104. The GPU104, which has high parallel processing capabilities, is compatible with inference processing using a trained model, and the Near-RT RIC200 executes inference processing using the GPU104, thereby speeding up the inference processing.
[0033] Under normal circumstances, there is no problem if the Non-RT RIC210 performs learning to generate a trained model, and the Near-RT RIC200 performs inference processing using the trained model. However, since the learning by the Non-RT RIC210 has low real-time characteristics, it may be difficult to respond to changes in the situation in real time. For example, if the Non-RT RIC210 generates a trained model for controlling the vRAN when an event occurs in which the amount of communication by a mobile communication terminal increases, when a similar event occurs, the Near-RT RIC200 performs inference processing using the trained model to control the vRAN, thereby realizing appropriate control. However, the traffic generation situation may change depending on the type, location, scale, etc. of the event, and depending on the event, the trained model may not be able to respond sufficiently. In response to this, the Near-RT RIC200 updates the trained model acquired from the Non-RT RIC210 by performing machine learning using data related to the vRAN collected in real time, for example, and performs inference using the updated trained model. This allows the trained model to be updated to adapt to the traffic conditions in the event that is occurring at the time, contributing to the realization of appropriate control.
[0034] 6 illustrates an example of a functional configuration of the control device 100. The control device 100 includes a CPU 102, a GPU 104, and a control unit 120. The control unit 120 includes a vRAN execution unit 122, a RAN AI execution unit 124, a service execution unit 126, and a management unit 128. The control unit 120 does not necessarily include the service execution unit 126.
[0035] The vRAN execution unit 122 executes the vRAN function. The vRAN execution unit 122 executes the vRAN function using the resources of the CPU 102 and the resources of the GPU 104.
[0036] The RAN AI execution unit 124 executes the RAN AI function. The RAN AI execution unit 124 executes the RAN AI function using the resources of the GPU 104.
[0037] The service execution unit 126 executes a service providing function that provides a service to a mobile communication terminal that accesses the vRAN. The service execution unit 126 executes, for example, an MEC function. The service execution unit 126 executes the service providing function by using the resources of the GPU 104.
[0038] The management unit 128 manages the vRAN executor 122, the RAN AI executor 124, and the service executor 126. The management unit 128 may manage allocation of resources of the CPU 102 and the GPU 104 to the vRAN executor 122, the RAN AI executor 124, and the service executor 126.
[0039] For example, the management unit 128 manages the allocation of GPU 104 resources to the vRAN executor 122 and the RAN AI executor 124 in a manner that gives priority to the vRAN executor 122.
[0040] For example, the management unit 128 monitors the processing load of the GPU 104 when the vRAN execution unit 122 is executing a vRAN function using the CPU 102 and the GPU 104, and when the processing load of the GPU 104 falls below a predetermined threshold, increases the amount of GPU 104 resources allocated to the RAN AI execution unit 124.
[0041] As a specific example, the management unit 128 first allocates resources of the CPU 102 and the GPU 104 to the vRAN executor 122 to execute the vRAN function, and sets the RAN AI executor 124 in a state in which the RAN AI function is not executed. Then, the management unit 128 monitors the processing load of the GPU 104, and when the processing load of the GPU 104 falls below a predetermined threshold, allocates resources of the GPU 104 to the RAN AI executor 124 to cause the RAN AI executor 124 to start executing the RAN AI function.
[0042] As another specific example, the management unit 128 first allocates CPU 102 resources and GPU 104 resources to the vRAN execution unit 122 to execute the vRAN function, and allocates GPU 104 resources to the RAN AI execution unit 124 that are less than the amount allocated to the vRAN execution unit 122 to execute the RAN AI function. Then, the management unit 128 monitors the processing load of the GPU 104, and when the processing load of the GPU 104 falls below a predetermined threshold, adds GPU 104 resources to the RAN AI execution unit 124 to enhance the RAN AI function.
[0043] When the processing load of the vRAN execution unit 122 is higher than a predetermined threshold, the management unit 128 may increase the amount of resources of the GPU 104 allocated to the vRAN execution unit 122 when it is determined that the processing load of the physical layer signal processing by the vRAN execution unit 122 is higher than a predetermined threshold. When the processing load of the vRAN execution unit 122 is higher than a predetermined threshold, the management unit 128 may increase the amount of resources of the GPU 104 allocated to the RAN AI execution unit 124 when it is determined that the processing load of the connection processing by the vRAN execution unit 122 in response to a connection request from a mobile communication terminal in the vRAN is higher than a predetermined threshold. When the processing load of the vRAN execution unit 122 is high due to the high processing load of the physical layer signal processing, strengthening the parallel processing of the vRAN can contribute to reducing the processing load of the vRAN execution unit 122. On the other hand, if the cause of the high processing load of the vRAN execution unit 122 is the high processing load of the connection process, strengthening the parallel processing of the vRAN does not contribute much to reducing the processing load of the vRAN execution unit 122. The management unit 128 can realize management that takes such circumstances into consideration, and can effectively allocate the resources of the GPU 104.
[0044] The management unit 128 may increase the amount of GPU 104 resources allocated to the RAN AI execution unit 124 when the vRAN execution unit 122 is executing a vRAN function using the CPU 102 resources and the GPU 104 resources and it is predicted that the vRAN will become congested.
[0045] As a specific example, the management unit 128 first assigns the resources of the CPU 102 and the GPU 104 to the vRAN execution unit 122 to execute the vRAN function, and sets the RAN AI execution unit 124 to a state in which the RAN AI function is not executed. Then, the management unit 128 predicts whether the vRAN will be congested based on the execution status of the vRAN. The management unit 128 predicts whether the vRAN will be congested, for example, from a traffic pattern in the vRAN. The management unit 128 may predict whether the vRAN will be congested based on the status of multiple vRANs. For example, the management unit 128 predicts that the target vRAN will be congested when the number of handovers of mobile communication terminals from wireless communication cells managed by other vRANs to wireless communication cells managed by the target vRAN is increasing. When the management unit 128 predicts that the vRAN will be congested, it increases the amount of resources of the GPU 104 to be assigned to the RAN AI execution unit 124, and starts the execution of the RAN AI function. When the RAN AI function determines that the vRAN is congested, the management unit 128 executes measures. As one of the measures, the management unit 128 controls to execute offload processing such as handing over a mobile communication terminal from a wireless communication cell under the vRAN. As another measure, the management unit 128 controls to stop the allocation of resources of the GPU 104 to the RAN AI execution unit 124 and allocate the amount to the vRAN execution unit 122. The management unit 128 may execute measures according to the amount of surplus wireless resources in the vRAN. For example, when the remaining amount of wireless resources is greater than a predetermined threshold, the management unit 128 controls to stop the allocation of resources of the GPU 104 to the RAN AI execution unit 124 and allocate the amount to the vRAN execution unit 122, and when the remaining amount of wireless resources is less than the threshold, the management unit 128 controls to execute offload processing such as handing over a mobile communication terminal from a wireless communication cell under the vRAN.
[0046] As another specific example, the management unit 128 first allocates the resources of the CPU 102 and the resources of the GPU 104 to the vRAN execution unit 122 to execute the vRAN function, and allocates the resources of the GPU 104 to the RAN AI execution unit 124 less than the amount allocated to the vRAN execution unit 122 to execute the RAN AI function. The management unit 128 predicts whether the vRAN will be congested by the RAN AI function. When the management unit 128 determines that the vRAN will be congested by the RAN AI function, the management unit 128 may execute a countermeasure. As one of the countermeasures, the management unit 128 controls to execute an offload process such as handing over a mobile communication terminal from a wireless communication cell under the vRAN. As another countermeasure, the management unit 128 controls to stop the allocation of the resources of the GPU 104 to the RAN AI function and allocate the amount to the vRAN function. The management unit 128 may execute a countermeasure according to the surplus of wireless resources. For example, when the remaining amount of radio resources is greater than a predetermined threshold, the management unit 128 stops allocating resources of the GPU 104 to the RAN AI execution unit 124 and allocates the resources to the vRAN execution unit 122 instead. When the remaining amount of radio resources is less than the threshold, the management unit 128 controls the execution of offload processing such as handing over a mobile communication terminal from a wireless communication cell under the vRAN.
[0047] For example, the management unit 128 manages the allocation of GPU 104 resources among the vRAN executor 122, the RAN AI executor 124, and the service executor 126 in the order of the vRAN executor 122, the RAN AI executor 124, and the service executor 126. In other words, the management unit 128 assigns the highest priority to the vRAN executor 122, followed by the RAN AI executor 124, and then the service executor 126.
[0048] For example, the management unit 128 allocates resources of the CPU 102 and resources of the GPU 104 to the vRAN execution unit 122 to execute the vRAN function, and monitors the processing load of the GPU 104. When the processing load of the GPU 104 falls below a predetermined threshold, the management unit 128 increases the amount of resources of the GPU 104 allocated to the RAN AI execution unit 124 to start execution of the RAN AI function. Then, the management unit 128 monitors the amount of unused resources of the GPU 104, and when the amount of unused resources is greater than a predetermined threshold, allocates the resources of the GPU 104 to the service execution unit 126 to execute the service providing function.
[0049] For example, the management unit 128 allocates the resources of the CPU 102 and the resources of the GPU 104 to the vRAN execution unit 122 to execute the vRAN function, allocates the resources of the GPU 104 less than the amount of the resources of the GPU 104 allocated to the vRAN execution unit 122 to the RAN AI execution unit 124 to execute the RAN AI function, and allocates the resources of the GPU 104 less than the amount of the resources of the GPU 104 allocated to the RAN AI execution unit 124 to the service execution unit 126 to execute the service provision function. Then, the management unit 128 monitors the processing load of the vRAN execution unit 122, and when the processing load of the vRAN execution unit 122 is lower than a predetermined threshold, increases the amount of the resources of the GPU 104 allocated to the RAN AI execution unit 124, or increases the amount of the resources of the GPU 104 allocated to the RAN AI execution unit 124 and the service execution unit 126. Furthermore, when the processing load of the vRAN execution unit 122 is higher than a predetermined threshold, the management unit 128 reduces the amount of GPU 104 resources allocated to the service execution unit 126, or to the service execution unit 126 and the RAN AI execution unit 124, and allocates that amount to the vRAN execution unit 122.
[0050] When the control device 100 functions as a Near-RT RIC, the RAN AI execution unit 124 may use the resources of the GPU 104 to execute inference processing related to the control of vRAN using a trained model acquired from a Non-RT RIC. For example, the Non-RT RIC collects various data such as a PM counter (Performance Management counter), FM data (Fault Management data), and TM data (Trace Management data) from a RAN node, and executes machine learning using the collected data to generate a trained model that plays the role of a policy related to RAN control. The control device 100 acquires the trained model from the Non-RT RIC, and executes control of the RAN node using the trained model and the data collected from the RAN node.
[0051] The RAN AI execution unit 124 may update the trained model acquired from the Non-RT RIC by executing machine learning using data related to the vRAN, and execute inference processing using the updated trained model. The RAN AI execution unit 124 may update the trained model acquired from the Non-RT RIC, for example, by fine-tuning the trained model using data related to the vRAN. For example, the RAN AI execution unit 124 updates the trained model acquired from the Non-RT RIC by executing machine learning using various data collected from the RAN node at a shorter period than the Non-RT RIC, and executes control of the RAN node using the updated trained model and the data collected from the RAN node.
[0052] 7 is a schematic diagram showing an example of a processing flow by the control device 100. This diagram shows a schematic diagram of a processing flow when the control device 100 normally executes a vRAN function using the resource of the CPU 102 (sometimes referred to as CPUR) and the resource of the GPU 104 (sometimes referred to as GPUR) and executes a RAN AI function when the processing load of the GPU 104 is low.
[0053] In step (sometimes abbreviated as S) 102, the management unit 128 allocates the CPUR and the GPUR to the vRAN execution unit 122 and causes the vRAN execution unit 122 to execute the vRAN function. The management unit 128 continuously monitors the processing load of the GPU 104.
[0054] In S104, the management unit 128 judges whether or not the processing load of the GPU 104 is lower than a predetermined threshold value. If it is judged that the processing load is not low, the process proceeds to S106, and if it is judged that the processing load is low, the process proceeds to S108.
[0055] In S106, the management unit 128 judges whether or not to end the allocation adjustment process. When the management unit 128 receives an instruction to end the allocation adjustment process from the manager of the control device 100, the management unit 128 judges to end the allocation adjustment process. When the allocation adjustment process is ended, the control device 100 does not execute the RAN AI function or the service providing function, but executes the vRAN function by the vRAN execution unit 122. When it is judged not to end, the process returns to S104.
[0056] In S108, the management unit 128 allocates a GPUR to the RAN AI executor 124 and starts execution of the RAN AI function. The management unit 128 continuously monitors the processing load of the vRAN executor 122.
[0057] In S110, the management unit 128 determines whether or not the processing load of the vRAN executor 122 is higher than a predetermined threshold. If it is determined that the processing load is higher, the process proceeds to S112, and if it is determined that the processing load is not higher, the process proceeds to S114.
[0058] In S114, the management unit 128 judges whether or not to end the allocation adjustment process. If it is judged to end the allocation adjustment process, it ends, and if it is judged not to end the allocation adjustment process, it returns to S110.
[0059] In S112, the management unit 128 causes the RAN AI executor 124 to terminate the execution of the RAN AI function. The management unit 128 may allocate the GPUR allocated to the RAN AI executor 124 to the vRAN executor 122.
[0060] In the above embodiment, the control device 100 has been described mainly as an example in which the control device 100 allocates the resources of the GPU 104 included in the control device 100 to the vRAN function, the RAN AI function, and the service provision function, but this is not limited thereto. The control device 100 may allocate the resources of multiple GPUs 104 that are distributed and arranged to the vRAN function, the RAN AI function, and the service provision function. The control device 100 may use the resources of multiple GPUs 104 that are distributed and arranged in a data center, for example, in consideration of the processing load of the multiple GPUs 104 and the utilization status of the resources.
[0061] 8 is a schematic diagram showing an example of a hardware configuration of a computer 1200 functioning as the control device 100. A program installed in the computer 1200 can cause the computer 1200 to function as one or more "parts" of the device according to the present embodiment, or cause the computer 1200 to execute operations or one or more "parts" associated with the device according to the present embodiment, and / or cause the computer 1200 to execute a process or steps of the process according to the present embodiment. Such a program can be executed by the CPU 1212 to cause the computer 1200 to execute specific operations associated with some or all of the blocks of the flowcharts and block diagrams described herein.
[0062] The computer 1200 according to this embodiment includes a CPU 1212, a GPU 1213, a RAM 1214, and a graphic controller 1216, which are connected to each other by a host controller 1210. The computer 1200 also includes input / output units such as a communication interface 1222, a storage device 1224, a DVD drive 1226, and an IC card drive, which are connected to the host controller 1210 via an input / output controller 1220. The DVD drive 1226 may be a DVD-ROM drive, a DVD-RAM drive, or the like. The storage device 1224 may be a hard disk drive, a solid state drive, or the like. The computer 1200 also includes legacy input / output units such as a ROM 1230 and a keyboard, which are connected to the input / output controller 1220 via an input / output chip 1240.
[0063] The CPU 1212 operates according to a program stored in the ROM 1230 and the RAM 1214, thereby controlling each unit. The graphic controller 1216 acquires image data generated by the CPU 1212 into a frame buffer or the like provided in the RAM 1214 or into itself, and causes the image data to be displayed on the display device 1218.
[0064] The communication interface 1222 communicates with other electronic devices via a network. The storage device 1224 stores programs and data used by the CPU 1212 in the computer 1200. The DVD drive 1226 reads programs or data from a DVD-ROM 1227 or the like and provides the programs or data to the storage device 1224. The IC card drive reads programs and data from an IC card and / or writes programs and data to an IC card.
[0065] The ROM 1230 stores therein a boot program or the like that is executed by the computer 1200 upon activation, and / or a program that depends on the hardware of the computer 1200. The input / output chip 1240 may also connect various input / output units to the input / output controller 1220 via a USB port, a parallel port, a serial port, a keyboard port, a mouse port, and the like.
[0066] The programs are provided by a computer-readable storage medium such as a DVD-ROM 1227 or an IC card. The programs are read from the computer-readable storage medium, installed in the storage device 1224, the RAM 1214, or the ROM 1230, which are also examples of computer-readable storage media, and executed by the CPU 1212. Information processing described in these programs is read by the computer 1200, and brings about cooperation between the programs and the various types of hardware resources described above. An apparatus or method may be constructed by implementing operations or processing of information according to the use of the computer 1200.
[0067] For example, when communication is performed between the computer 1200 and an external device, the CPU 1212 may execute a communication program loaded in the RAM 1214 and instruct the communication interface 1222 to perform communication processing based on the processing described in the communication program. Under the control of the CPU 1212, the communication interface 1222 reads transmission data stored in a transmission buffer area provided in the RAM 1214, the storage device 1224, the DVD-ROM 1227, or a recording medium such as an IC card, and transmits the read transmission data to a network, or writes reception data received from the network to a reception buffer area or the like provided on the recording medium.
[0068] Furthermore, the CPU 1212 may cause all or a necessary portion of a file or database stored in an external recording medium such as the storage device 1224, the DVD drive 1226 (DVD-ROM 1227), an IC card, etc. to be read into the RAM 1214, and perform various types of processing on the data on the RAM 1214. The CPU 1212 may then write back the processed data to the external recording medium.
[0069] Various types of information, such as various types of programs, data, tables, and databases, may be stored in the recording medium and undergo information processing. The CPU 1212 may perform various types of processing on the data read from the RAM 1214, including various types of operations, information processing, conditional judgment, conditional branching, unconditional branching, information search / replacement, etc., as described throughout this disclosure and specified by the instruction sequence of the program, and write back the results to the RAM 1214. The CPU 1212 may also search for information in a file, database, etc. in the recording medium. For example, when a plurality of entries each having an attribute value of a first attribute associated with an attribute value of a second attribute are stored in the recording medium, the CPU 1212 may search for an entry whose attribute value of the first attribute matches a specified condition from among the plurality of entries, read the attribute value of the second attribute stored in the entry, and thereby obtain the attribute value of the second attribute associated with the first attribute that satisfies a predetermined condition.
[0070] The above-described programs or software modules may be stored in a computer-readable storage medium on the computer 1200 or in the vicinity of the computer 1200. In addition, a recording medium such as a hard disk or a RAM provided in a server system connected to a dedicated communication network or the Internet can be used as a computer-readable storage medium, thereby providing the programs to the computer 1200 via the network.
[0071] The blocks in the flowcharts and block diagrams in the present embodiment may represent stages of a process in which an operation is performed or "parts" of an apparatus responsible for performing the operation. Particular stages and "parts" may be implemented by dedicated circuitry, programmable circuitry provided with computer-readable instructions stored on a computer-readable storage medium, and / or a processor provided with computer-readable instructions stored on a computer-readable storage medium. The dedicated circuitry may include digital and / or analog hardware circuits, and may include integrated circuits (ICs) and / or discrete circuits. The programmable circuitry may include reconfigurable hardware circuits, such as, for example, field programmable gate arrays (FPGAs), programmable logic arrays (PLAs), and the like, including AND, OR, XOR, NAND, NOR, and other logical operations, flip-flops, registers, and memory elements.
[0072] A computer-readable storage medium may include any tangible device capable of storing instructions that are executed by a suitable device, such that a computer-readable storage medium having instructions stored thereon comprises an article of manufacture that includes instructions that can be executed to create means for performing the operations specified in the flowcharts or block diagrams. Examples of computer-readable storage media may include electronic storage media, magnetic storage media, optical storage media, electromagnetic storage media, semiconductor storage media, and the like. More specific examples of computer-readable storage media may include floppy disks, diskettes, hard disks, random access memories (RAMs), read-only memories (ROMs), erasable programmable read-only memories (EPROMs or flash memories), electrically erasable programmable read-only memories (EEPROMs), static random access memories (SRAMs), compact disk read-only memories (CD-ROMs), digital versatile disks (DVDs), Blu-ray disks, memory sticks, integrated circuit cards, and the like.
[0073] The computer readable instructions may include either assembler instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, or source or object code written in any combination of one or more programming languages, including object-oriented programming languages such as Smalltalk®, JAVA®, C++, etc., and conventional procedural programming languages such as the “C” programming language or similar programming languages.
[0074] Computer readable instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus, or to a programmable circuit, either locally or over a local area network (LAN), a wide area network (WAN), such as the Internet, etc., to cause the processor of the general purpose computer, special purpose computer, or other programmable data processing apparatus, or to a programmable circuit, to execute the computer readable instructions to generate means for performing the operations specified in the flowcharts or block diagrams. Examples of processors include computer processors, processing units, microprocessors, digital signal processors, controllers, microcontrollers, etc.
[0075] Although the present invention has been described above using the embodiments, the technical scope of the present invention is not limited to the scope described in the above embodiments. It is clear to those skilled in the art that various modifications and improvements can be made to the above embodiments. It is clear from the description of the claims that such modifications and improvements can also be included in the technical scope of the present invention.
[0076] It should be noted that the order of execution of each process, such as operations, procedures, steps, and stages, in the devices, systems, programs, and methods shown in the claims, specifications, and drawings is not specifically stated as "before" or "prior to," and that the process may be performed in any order unless the output of a previous process is used in a later process. Even if the operational flow in the claims, specifications, and drawings is described using "first," "next," etc. for convenience, it does not mean that the process must be performed in this order. [Explanation of symbols]
[0077] 12 CPU, 14 ACC, 16 Virtualization layer / OS, 18 vRAN, 20 RAN AI, 22 GPU server, 24 RAN AI, 100 Control device, 102 CPU, 104 GPU, 106 Virtualization layer / OS, 108 vRAN, 110 RAN AI, 112 MEC, 120 Control unit, 122 vRAN execution unit, 124 RAN AI execution unit, 126 Service execution unit, 128 Management unit, 200 Near-RT RIC, 210 Non-RT RIC, 220 O-RU, 230 O-DU, 240 O-CU, 1200 Computer, 1210 Host controller, 1212 CPU, 1213 GPU, 1214 RAM, 1216 Graphics controller, 1218 Display device, 1220 Input / output controller, 1222 Communication interface, 1224 Storage device, 1230 ROM, 1240 I / O chip
Claims
1. A vRAN execution unit that executes a vRAN function, which is a function of a vRAN (Virtual Radio Access Network), using a CPU (Central Processing Unit) resource and a GPU (Graphics Processing Unit) resource; A RAN AI execution unit that executes a RAN AI function, which is an AI function related to the control of the vRAN, using the resources of the GPU; A control device comprising:
2. A management unit that manages the vRAN execution unit and the RAN AI execution unit so as to preferentially allocate resources of the GPU to the vRAN execution unit. The control device of claim 1 .
3. 3. The control device according to claim 2, wherein the management unit monitors a processing load of the GPU when the vRAN execution unit is executing the vRAN function using the CPU and the GPU, and increases an amount of the GPU resources allocated to the RAN AI execution unit when the processing load of the GPU becomes lower than a predetermined threshold.
4. 3. The control device according to claim 2, wherein the management unit increases an amount of the GPU resources allocated to the vRAN execution unit when it determines that a processing load of a physical layer signal processing by the vRAN execution unit is higher than a predetermined threshold when the processing load of the vRAN execution unit is higher than a predetermined threshold, and increases an amount of the GPU resources allocated to the RAN AI execution unit when it determines that a processing load of a connection processing by the vRAN execution unit in response to a connection request from a mobile communication terminal in the vRAN is higher than a predetermined threshold.
5. The control device according to claim 2, wherein the management unit increases an amount of the GPU resources allocated to the RAN AI execution unit when the vRAN execution unit is executing the vRAN function using the CPU resources and the GPU resources and it is predicted that the vRAN will become congested.
6. The control device functions as a Near-RT RIC (RAN Intelligent Controller), The control device according to claim 1, wherein the RAN AI execution unit uses resources of the GPU to execute inference processing related to control of the vRAN using a trained model acquired from a Non-RT RIC.
7. The control device according to claim 6, wherein the RAN AI execution unit updates the trained model by performing machine learning using data related to the vRAN, and performs the inference process using the updated trained model.
8. A service execution unit that executes a service providing function, which is a function for providing a service to a mobile communication terminal that accesses the vRAN, by using resources of the GPU. Equipped with The control device according to claim 2 , wherein the management unit controls the allocation of the GPU resources to the vRAN execution unit, the RAN AI execution unit, and the service execution unit in the order of the vRAN execution unit, the RAN AI execution unit, and the service execution unit.
9. A program for causing a computer to function as the control device according to claim 1.
10. The control device according to claim 1 ; The CPU; The GPU and A system comprising: