Control device, program, and system

The control device dynamically allocates GPU resources between VRAN and RAN AI units based on processing loads to prevent congestion and enhance service quality in VRAN systems, addressing the inefficiencies of existing VRAN systems in managing GPU resources for both VRAN and RAN AI functions.

WO2025022859A1PCT designated stage expired Publication Date: 2025-01-30SOFTBANK CORPORATION
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
PCT/JP2024/021672
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-07-21
Filing Date
2024-06-14
Publication Date
2025-01-30

AI Technical Summary

Technical Problem

Current VRAN systems face challenges in efficiently managing GPU resources for both VRAN and RAN AI functions, leading to potential congestion and reduced communication service quality, as they often require separate GPU servers for signal processing and struggle to execute AI functions effectively.

Method used

A control device that dynamically allocates GPU resources between VRAN and RAN AI executive units based on processing load thresholds, prioritizing resource distribution to prevent congestion by increasing GPU resources for RAN AI when VRAN is underloaded and reallocating resources to VRAN when overloaded, while also executing MEC functions.

Benefits of technology

This approach stabilizes VRAN functions, enhances RAN AI performance, and improves communication service quality by accurately predicting and mitigating congestion through dynamic resource allocation, ensuring efficient use of GPU resources.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure JP2024021672_30012025_PF_FP_ABST
    Figure JP2024021672_30012025_PF_FP_ABST
Patent Text Reader

Abstract

The present invention provides a control device comprising: a vRAN execution unit that executes a vRAN function, which is a function of vRAN, by using CPU resources and GPU resources; a RAN AI execution unit that executes a RAN AI function, which is an AI function related to control of the vRAN, by using the GPU resources; and a management unit that manages allocation of the GPU resources to the vRAN execution unit and the RAN AI execution unit. The present invention further provides a system including the control device, the CPU, and the GPU.
Need to check novelty before this filing date? Find Prior Art

Description

Control device, program, and system

[0001] The present invention relates to a control device, a program, and a system.

[0002] Patent Document 1 describes a container-based GPU virtualization method and system that can dynamically allocate and share GPU resources. [Prior art documents] [Patent documents] [Patent document 1] JP-A-2020-537197 General disclosure

[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, using a central processing unit (CPU) resource and a graphics processing unit (GPU) resource. The control device may also include a RAN AI execution unit that executes a RAN AI function, which is an artificial intelligence (AI) function related to control of the vRAN, using the GPU resource.

[0004] The control device may include a management unit configured to control allocation of the GPU resources to the vRAN execution unit with priority given to the vRAN execution unit, between the vRAN execution unit and the RAN AI execution unit. In the control device, the management unit may monitor a processing load of the GPU when the vRAN execution unit is executing the vRAN function using the CPU and the GPU, and increase 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. The management unit may allocate resources of the CPU and the GPU to the vRAN execution unit to cause the vLAN function to be executed, and may monitor the processing load of the GPU while causing the RAN AI execution unit not to execute the RAN AI function, and when the processing load of the GPU becomes lower than a predetermined threshold, may allocate resources of the GPU to the RAN AI execution unit to cause the RAN AI execution unit to start executing the RAN AI function. The management unit may allocate resources of the CPU and the GPU to the vRAN execution unit to execute the vLAN function, allocate resources of the GPU to the RAN AI execution unit in an amount less than that allocated to the vRAN execution unit to execute the RAN AI function, monitor a processing load of the GPU, and, when the processing load of the GPU becomes lower than a predetermined threshold, add resources of the GPU to the RAN AI execution unit to enhance the RAN AI function.

[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 resources of the GPU allocated to the vRAN execution unit if it determines that the processing load of signal processing of a physical layer by the vRAN execution unit is higher than a predetermined threshold, and may increase the amount of resources of the GPU allocated to the RAN AI execution unit if 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 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 predicts that the vRAN will be congested. The management unit may allocate the CPU resources and the GPU resources to the vRAN execution unit to execute the vRAN function and prevent the RAN AI execution unit from executing the RAN AI function, predict whether the vRAN will be congested based on the execution status of the vRAN, and if the vRAN is predicted to be congested, increase the amount of GPU resources allocated to the RAN AI execution unit and start execution of the RAN AI function. The management unit may take measures when the RAN AI function determines that the vRAN will be congested. When the RAN AI function determines that the vRAN will be congested, the management unit may control to execute an offload process to hand over a mobile communication terminal from a wireless communication cell under the vRAN. When the RAN AI function determines that the vRAN will be congested, the management unit may control to stop allocation of GPU resources to the RAN AI execution unit and allocate the resources to the vRAN execution unit. When the RAN AI function determines that the vRAN will be congested, the management unit may execute a measure according to the amount of surplus wireless resources in the vRAN. When the RAN AI function determines that the vRAN is congested, and if the remaining amount of radio resources in the vRAN is greater than a predetermined threshold, the management unit may control to stop allocation of resources of the GPU to the RAN AI execution unit and allocate that amount to the vRAN execution unit, and if the remaining amount of radio resources is less than the threshold, to execute an offload process to hand over a mobile communication terminal from a wireless communication cell under the vRAN.The management unit may allocate the CPU resources and the GPU resources to the vRAN execution unit to execute the vLAN function, allocate the GPU resources to the RAN AI execution unit less than the amount allocated to the vRAN execution unit to execute the RAN AI function, predict whether the vRAN will be congested using the RAN AI function, and execute countermeasures if it determines that the vRAN will be congested. If it determines that the vRAN will be congested, the management unit may control to execute an offload process to hand over a mobile communication terminal from a wireless communication cell under the vRAN. If it determines that the vRAN will be congested, the management unit may stop allocating the GPU resources to the RAN AI function and control to allocate the resources to the vRAN function. When the management unit determines that the vRAN will be congested, the management unit may execute a measure according to an amount of remaining radio resources of the vRAN. When the management unit determines that the vRAN will be congested and the remaining amount of the radio resources is greater than a predetermined threshold, the management unit may stop allocation of resources of the GPU to the RAN AI execution unit and allocate that amount to the vRAN execution unit, and when the remaining amount of the radio resources is less than the threshold, the management unit may control to execute an offload process to hand over a mobile communication terminal from a wireless communication cell under the vRAN.

[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 resources of the GPU to execute inference processing related to 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 performing machine learning using data related to the vRAN. The RAN AI execution unit may execute the inference processing using the updated trained model. The RAN AI execution unit may update the trained model acquired from the non-RT RIC by performing machine learning using various data collected from RAN nodes at a shorter period than the non-RT RIC, and may execute control of the RAN node using the updated trained model and data collected from the RAN node.

[0008] Any of the control devices may include a service execution unit that uses the GPU to execute a service providing function that provides services to mobile communication terminals that access the vRAN. In the control device, the management unit may control the allocation of GPU resources to the vRAN execution unit, the RAN AI execution unit, and the service execution unit in the following order: the vRAN execution unit, the RAN AI execution unit, and the service execution unit. The service execution unit may execute an MEC function. The management unit may allocate resources of the CPU and resources of the GPU to the vRAN execution unit to execute the vRAN function, monitor a processing load of the GPU, and when the processing load of the GPU becomes lower than a predetermined threshold, increase an amount of resources of the GPU allocated to the RAN AI execution unit to start execution of the RAN AI function, monitor an amount of unused resources of the GPU, and when the amount of unused resources is greater than a predetermined threshold, allocate the resources of the GPU to the service execution unit to execute the service providing function. The management unit may allocate resources of the CPU and resources of the GPU to the vRAN execution unit to execute the vRAN function, allocate resources of the GPU less than the amount of resources of the GPU allocated to the vRAN execution unit to the RAN AI execution unit to execute the RAN AI function, allocate resources of the GPU less than the amount of resources of the GPU allocated to the RAN AI execution unit to the service execution unit to execute the service providing function, monitor a processing load on the vRAN execution unit, and, when the processing load on the vRAN execution unit is lower than a predetermined threshold, increase the amount of resources of the GPU allocated to the RAN AI execution unit or increase the amount of resources of the GPU allocated to the RAN AI execution unit and the service execution unit. When the processing load of the vRAN execution unit is higher than a predetermined threshold, the management unit may reduce the amount of resources of the GPU allocated to the service execution unit, or to the service execution unit and the RAN AI execution unit, and allocate that amount to the vRAN execution unit.

[0009] According to one embodiment of the present invention, there is provided a program that may cause a computer to function as the control device.

[0010] According to one embodiment of the present invention, there is provided a system, which 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, and subcombinations of these features may also constitute inventions.

[0012] FIG. 1 is an explanatory diagram for explaining the prior art. FIG. 2 is an assumed diagram assuming that a GPU is used for RAN control in the prior art. FIG. 3 is an explanatory diagram for explaining an example of the configuration of a control device 100. FIG. 4 is an explanatory diagram for explaining an example of the configuration of a control device 100. FIG. 5 is an explanatory diagram for explaining an example of the configuration of a control device 100. FIG. 6 shows an example of the functional configuration of the control device 100. FIG. 7 shows an example of the processing flow by the control device 100. FIG. 8 shows an example of the hardware configuration of a computer 1200 that functions as the control device 100.

[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 as claimed. 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 prior art. Fig. 2 is an assumed diagram assuming that a GPU is used for RAN control in the prior art.

[0015] Conventionally, vRAN, which virtualizes RAN, is known. In a typical vRAN, signal processing is offloaded to hardware such as an ACC (Accelerator), and the vRAN function (sometimes referred to as the vRAN function) is executed by a CPU and the ACC. When it is desired to execute a RAN function (sometimes referred to as the RAN AI function) using AI such as RIC in addition to the vRAN function, it is difficult to execute the RAN AI function by the ACC, so the RAN AI function is 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 conceivable to use a GPU to reduce the load on the CPU 12 and improve the efficiency of the RAN AI function, but this requires the provision of a separate GPU server 22, as illustrated in Fig. 2. GPUvRAN, which offloads vRAN signal processing to a GPU, is known, but GPUvRAN does not take the RAN AI function into consideration.

[0018] Fig. 3 schematically illustrates an example of the configuration of the control device 100 according to this 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 the functions of a vRAN 108 and 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 GPU 104, and the RAN AI function is executed using the resources of the GPU 104.

[0019] The control device 100 may allocate resources of the GPU 104 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 resources of the GPU 104 allocated to the RAN AI 110 and starts execution of the RAN AI function. This allows the vRAN function to be executed stably while allowing the RAN AI function to be executed when the load of the vRAN function is low. By stably executing the vRAN function, stable communication services can be provided to mobile communication terminals accessing the vRAN, and the RAN AI function can improve service quality, etc.

[0021] Furthermore, 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 to the RAN AI 110 an amount of the GPU 104 resources that is less than the amount of the GPU 104 resources 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 GPU 104 resources allocated to the RAN AI 110. This makes it possible to stably execute the vRAN function while improving service quality through the RAN AI function, and to strengthen the RAN AI function when the load of the vRAN function is low to further contribute to improving service quality.

[0022] Furthermore, 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 GPU 104 resources allocated to the RAN AI 110 and starts execution of the RAN AI function. Since predictions using the RAN AI function are generally more accurate than predictions based on the execution status of the vRAN, executing the RAN AI function can more accurately predict whether the vRAN will be congested. When the RAN AI function determines that the vRAN will be congested, the control device 100 executes countermeasures. As one of the countermeasures, the control device 100 executes offload processing, such as handing over a mobile communication terminal from a wireless communication cell under the vRAN. This reduces the possibility that the vRAN will become congested and the quality of the wireless communication service provided to the mobile communication terminal will be degraded. As another measure, the control device 100, for example, stops allocating resources of the GPU 104 to the RAN AI function and allocates the resources to the vRAN function. This increases the processing capacity of the vRAN function, contributing to preventing congestion and reducing the degree of congestion. The control device 100 may also 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 allocating resources of the GPU 104 to the RAN AI function and allocates the resources to the vRAN function. When the remaining amount of wireless resources is less than the threshold, the control device 100 executes an offload process, such as handing over the mobile communication terminal from the wireless communication cell under the vRAN. When the remaining amount of wireless resources is large, allocating the resources of the GPU 104 to the vRAN function can increase the number of mobile communication terminals that can be accommodated, which can contribute to reducing congestion. However, when the remaining amount of wireless resources is small, allocating the resources of the GPU 104 to the vRAN function may not increase the number of mobile communication terminals that can be accommodated, and may not be an effective measure against congestion. The control device 100 can realize control that takes such circumstances into consideration.

[0023] Furthermore, for example, the control device 100 normally allocates the resources of the CPU 102 and a portion of the resources of the GPU 104 to the vRAN 108 to execute the vRAN function, and allocates a smaller amount of the GPU 104 resources to the RAN AI 110 than the amount of the GPU 104 resources allocated to the vRAN 108 to execute the RAN AI function. The control device 100 predicts whether the vRAN will be congested using the RAN AI function. If the RAN AI function determines that the vRAN will be congested, the control device 100 may execute countermeasures. As one countermeasure, 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 allocating the resources of the GPU 104 to the RAN AI function and allocates the resources to the vRAN function. The control device 100 may take 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 allocating resources of the GPU 104 to the RAN AI function and allocates the resources to the vRAN function, and when the remaining amount of wireless 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 this embodiment. Here, differences from Fig. 3 will be mainly described. In this example, the control device 100 further executes the functions 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 services provided by the service providing function may be any services, and examples include, but are not limited to, services that analyze various types of data such as still image data, moving image data, audio data, text data, and sensor data, services that perform processing based on the analysis results, authentication services, and autonomous driving-related services.

[0026] The control device 100 may allocate resources of the GPU 104 to the vRAN 108, the RAN AI 110, and the MEC 112 in the following order with priority: vRAN 108, RAN AI 110, and 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. When the processing load of the GPU 104 becomes lower than a predetermined threshold, the control device 100 increases the amount of GPU 104 resources allocated to the RAN AI 110 and starts 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 vRAN function to be executed stably while the RAN AI function is executed when the load of the vRAN function is low, and the MEC function to be executed when there is still spare GPU 104 resources. By stably executing the vRAN function, stable communication services can be provided to mobile communication terminals accessing the vRAN, and the RAN AI function can improve service quality and provide MEC services.

[0028] Furthermore, for example, under normal circumstances, the control device 100 executes the vRAN function by allocating the resources of the CPU 102 and some of the resources of the GPU 104 to the vRAN 108, executes the RAN AI function by allocating to the RAN AI 110 an amount of the GPU 104 resources that is less than the amount of the GPU 104 resources allocated to the vRAN 108, and executes the MEC function by allocating to the MEC 112 an amount of the GPU 104 resources that is less than the amount of the GPU 104 resources allocated to the RAN AI 110. Then, when the processing load of the vRAN function decreases, the control device 100 increases the amount of the GPU 104 resources allocated to the RAN AI 110 and the amount of the GPU 104 resources allocated to the MEC 112. This makes it possible to stably execute the vRAN function while improving service quality through the RAN AI function and providing services through 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 illustrating an example of the configuration of the control device 100 according to this embodiment. The control device 100 may function as the 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 performs machine learning using data collected from the RAN to generate a trained model related to RAN control and transmits the trained model to the Near-RT RIC 200.

[0031] Compared to the Non-RT RIC 210, the Near-RT RIC 200 is located closer to the RAN nodes (O-RU 220, O-DU 230, O-CU 240) and controls the RAN nodes, resources, etc. Compared to the Non-RT RIC 210, the Near-RT RIC 200 executes processing with high real-time performance.

[0032] The Near-RT RIC 200 according to this embodiment uses, for example, the resources of the GPU 104 to execute inference processing related to RAN control using a trained model acquired from the Non-RT RIC 210. Existing Near-RT RICs do not use a GPU, but the Near-RT RIC 200 according to this embodiment has the GPU 104 and executes inference processing using the GPU 104. The GPU 104, which has high parallel processing capabilities, is well suited to inference processing using a trained model, and the Near-RT RIC 200 can speed up the inference processing by executing inference processing using the GPU 104.

[0033] Under normal circumstances, there is no problem if the Non-RT RIC 210 performs learning to generate a trained model and the Near-RT RIC 200 performs inference processing using the trained model. However, because the learning by the Non-RT RIC 210 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 RIC 210 generates a trained model for controlling vRAN when an event occurs that increases the amount of communication traffic by a mobile communication terminal, when a similar event occurs, the Near-RT RIC 200 can perform inference processing using the trained model to control the vRAN, thereby achieving appropriate control. However, traffic generation conditions can change depending on the type, location, scale, etc. of the event, and depending on the event, the trained model may not be able to adequately respond. In response to this, the Near-RT RIC 200 updates the trained model acquired from the Non-RT RIC 210 by, for example, performing machine learning using data related to vRAN collected in real time, and then performs inference using the updated trained model. This allows the trained model to be updated to match the traffic generation status of an event occurring at that time, thereby contributing to the realization of appropriate control.

[0034] 6 schematically illustrates an example of the 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 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 services to mobile communication terminals that access the vRAN. The service execution unit 126 executes, for example, an MEC function. The service execution unit 126 executes the service providing function 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 resources of the GPU 104 to the vRAN execution unit 122 with priority over the vRAN execution unit 122 and the RAN AI execution unit 124.

[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 increases the amount of GPU 104 resources allocated to the RAN AI execution unit 124 when the processing load of the GPU 104 falls below a predetermined threshold.

[0041] As a specific example, the management unit 128 first allocates resources of the CPU 102 and the GPU 104 to the vRAN execution unit 122 to cause the vRAN function to be executed, and causes the RAN AI execution unit 124 to not 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 becomes lower than a predetermined threshold, allocates resources of the GPU 104 to the RAN AI execution unit 124 and causes the RAN AI execution unit 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. The management unit 128 then 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, and the management unit 128 determines that the processing load of physical layer signal processing by the vRAN execution unit 122 is higher than the predetermined threshold, the management unit 128 may increase the amount of GPU 104 resources allocated to the vRAN execution unit 122. When the processing load of the vRAN execution unit 122 is higher than the predetermined threshold, and the management unit 128 determines that the processing load of 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 the predetermined threshold, the management unit 128 may increase the amount of GPU 104 resources allocated to the RAN AI execution unit 124. When the high processing load of the vRAN execution unit 122 is caused by a high processing load of physical layer signal processing, strengthening the parallel processing of vRAN can contribute to reducing the processing load of the vRAN execution unit 122. On the other hand, if the high processing load of the vRAN execution unit 122 is caused by a 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 resources of the GPU 104.

[0044] When the vRAN execution unit 122 is executing a vRAN function using the resources of the CPU 102 and the resources of the GPU 104, the management unit 128 may increase the amount of resources of the GPU 104 allocated to the RAN AI execution unit 124 if it is predicted that the vRAN will become congested.

[0045] As a specific example, the management unit 128 first allocates 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. The management unit 128 then 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 statuses of multiple vRANs. For example, the management unit 128 predicts that the target vRAN will be congested when there is an increasing trend in handovers of mobile communication terminals from wireless communication cells managed by other vRANs to wireless communication cells managed by the target vRAN. When the management unit 128 predicts that the vRAN will be congested, it increases the amount of GPU 104 resources allocated to the RAN AI execution unit 124 and starts executing the RAN AI function. When the RAN AI function determines that the vRAN will be congested, the management unit 128 executes countermeasures. As one countermeasure, the management unit 128 controls the execution of 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 the execution of an offload process, such as stopping the allocation of GPU 104 resources to the RAN AI execution unit 124 and allocating the resources to the vRAN execution unit 122. The management unit 128 may execute countermeasures 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 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 wireless resources is less than the threshold, 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.

[0046] As another specific example, the management unit 128 first allocates resources of the CPU 102 and the GPU 104 to the vRAN execution unit 122 to execute the vRAN function, and allocates resources of the GPU 104 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. The management unit 128 predicts whether the vRAN will be congested using the RAN AI function. If the RAN AI function determines that the vRAN will be congested, 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 measure, the management unit 128, for example, stops allocation of GPU 104 resources to the RAN AI function and controls allocation of the resources to the vRAN function. The management unit 128 may also 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 management unit 128 stops allocation of GPU 104 resources to the RAN AI execution unit 124 and allocates the resources to the vRAN execution unit 122. 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.

[0047] For example, the management unit 128 manages the allocation of resources of the GPU 104 among the vRAN execution unit 122, the RAN AI execution unit 124, and the service execution unit 126 so as to prioritize the allocation of resources to the vRAN execution unit 122, the RAN AI execution unit 124, and the service execution unit 126 in that order. That is, the management unit 128 assigns the highest priority to the vRAN execution unit 122, followed by the RAN AI execution unit 124, and then the service execution unit 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 the 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 that are 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 that are 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. The management unit 128 then 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 GPU 104 resources allocated to the RAN AI execution unit 124, or increases the amount of GPU 104 resources 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 perform inference processing related to vRAN control using a trained model acquired from the Non-RT RIC. For example, the Non-RT RIC collects various data from RAN nodes, such as a PM counter (Performance Management counter), FM data (Fault Management data), and TM data (Trace Management data), and performs machine learning using the collected data to generate a trained model that plays a role in policy related to RAN control. The control device 100 acquires the trained model from the Non-RT RIC and controls the RAN nodes using the trained model and the data collected from the RAN nodes.

[0051] The RAN AI execution unit 124 may update the trained model acquired from the non-RT RIC by performing machine learning using data related to vRAN, and then execute inference processing using the updated trained model. The RAN AI execution unit 124 may update, for example, the trained model acquired from the non-RT RIC by fine-tuning it using data related to vRAN. For example, the RAN AI execution unit 124 updates the trained model acquired from the non-RT RIC by performing machine learning using various data collected from RAN nodes at a shorter period than the non-RT RIC, and then executes control of the RAN node using the updated trained model and the data collected from the RAN node.

[0052] 7 schematically illustrates an example of a processing flow by the control device 100. Here, the control device 100 normally executes the vRAN function using the resources of the CPU 102 (sometimes referred to as CPUR) and the resources of the GPU 104 (sometimes referred to as GPUR), and the control device 100 executes the 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 CPU R and GP R 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 determines whether the processing load of the GPU 104 is lower than a predetermined threshold. If it is determined that the processing load is not lower, the process proceeds to S106, and if it is determined that the processing load is lower, the process proceeds to S108.

[0055] In S106, the management unit 128 determines whether or not to terminate the allocation adjustment process. If the management unit 128 has received an instruction to terminate the allocation adjustment process from the administrator of the control device 100, the management unit 128 determines to terminate the allocation adjustment process. If the allocation adjustment process is terminated, the control device 100 will execute the vRAN function by the vRAN execution unit 122 without executing the RAN AI function or the service providing function. If it is determined not to terminate, the process returns to S104.

[0056] In S108, the management unit 128 allocates a GPUR to the RAN AI execution unit 124 and starts execution of the RAN AI function. The management unit 128 continuously monitors the processing load of the vRAN execution unit 122.

[0057] In S110, the management unit 128 determines whether 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. If it is determined that the processing load is not higher, the process proceeds to S114.

[0058] In S114, the management unit 128 determines whether or not to end the allocation adjustment process. If it is determined that the allocation adjustment process should be ended, the management unit 128 ends the allocation adjustment process. If it is determined that the allocation adjustment process should not be ended, the management unit 128 returns to S110.

[0059] In S112, the management unit 128 causes the RAN AI execution unit 124 to terminate execution of the RAN AI function. The management unit 128 may allocate the GPUR allocated to the RAN AI execution unit 124 to the vRAN execution unit 122.

[0060] In the above embodiment, the case where the control device 100 allocates the resources of its GPU 104 to the vRAN function, the RAN AI function, and the service provision function has been mainly described as an example, but this is not limiting. The control device 100 may allocate the resources of multiple GPUs 104 that are distributed to the vRAN function, the RAN AI function, and the service provision function. For example, the control device 100 may use the resources of multiple GPUs 104 that are distributed in a data center, taking into account the processing load of the multiple GPUs 104 and the resource usage status.

[0061] 8 schematically illustrates an example of the hardware configuration of a computer 1200 that functions as the control device 100. A program installed on the computer 1200 can cause the computer 1200 to function as one or more "parts" of the device according to the present embodiment, or can cause the computer 1200 to perform operations associated with the device according to the present embodiment or one or more "parts," and / or can cause the computer 1200 to perform a process according to the present embodiment or steps of the process. Such a program can be executed by the CPU 1212 to cause the computer 1200 to perform specific operations associated with some or all of the blocks in 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 graphics controller 1216, which are interconnected by a host controller 1210. The computer 1200 also includes input / output units such as a communications 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 a ROM 1230 and legacy input / output units such as a keyboard, which are connected to the input / output controller 1220 via an input / output chip 1240.

[0063] The CPU 1212 operates according to programs stored in the ROM 1230 and the RAM 1214, thereby controlling each unit. The graphics controller 1216 acquires image data generated by the CPU 1212 into a frame buffer or the like provided in the RAM 1214 or into the graphics controller 1216 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 them 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 programs that depend 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, etc.

[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, RAM 1214, or 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 a method may be configured by implementing operations or processing of information in accordance with the use of the computer 1200.

[0067] For example, when communication is performed between computer 1200 and an external device, CPU 1212 may execute a communication program loaded into RAM 1214 and instruct communication interface 1222 to perform communication processing based on the processing described in the communication program. Under the control of CPU 1212, communication interface 1222 reads transmission data stored in a transmission buffer area provided in RAM 1214, storage device 1224, DVD-ROM 1227, or a recording medium such as an IC card, and transmits the read transmission data to a network, or writes received 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 may 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 on the recording medium and may undergo information processing. The CPU 1212 may perform various types of processing on 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 sequences of the programs, and write the results back to the RAM 1214. The CPU 1212 may also search for information in a file, database, etc. on the recording medium. For example, if multiple entries, each having an attribute value of a first attribute associated with an attribute value of a second attribute, are stored on 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 multiple 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 or near the computer 1200. A recording medium such as a hard disk or RAM provided in a server system connected to a dedicated communication network or the Internet can also 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 embodiments may represent stages of a process in which an operation is performed or "parts" of a device 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 field programmable gate arrays (FPGAs) and programmable logic arrays (PLAs), 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 an appropriate device, such that a computer-readable storage medium having instructions stored thereon comprises an article of manufacture, including 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, magnetic, optical, electromagnetic, and semiconductor storage media. 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 disc read-only memories (CD-ROMs), digital versatile discs (DVDs), Blu-ray discs, 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 locally or over a local area network (LAN), a wide area network (WAN) such as the Internet, to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus, or programmable circuitry, such that the processor or programmable circuitry executes 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 will be apparent to those skilled in the art that various modifications and improvements can be made to the above embodiments. It is clear from the claims that such modifications and improvements can also be included within the technical scope of the present invention.

[0076] It should be noted that the execution order 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," "prior to," etc., and that the processes can be performed in any order unless the output of a previous process is used in a subsequent process. Even if the operational flow in the claims, specifications, and drawings is described using "first," "next," etc. for convenience, this does not mean that the processes must be performed in this order.

[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 input / output chip

Claims

1. A control device comprising: 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; and a RAN AI execution unit that executes a RAN AI function, which is an AI function related to control of the vRAN, using the GPU resource.

2. The control device according to claim 1, further comprising: a management unit configured to manage the allocation of resources of the GPU to the vRAN execution unit with priority given to the vRAN execution unit out of the vRAN execution unit and the RAN AI execution unit.

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. 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 physical layer signal processing by the vRAN execution unit is higher than a predetermined threshold in a case where 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 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 is predicted to become congested while the vRAN execution unit is executing the vRAN function using the CPU resources and the GPU resources.

6. The control device according to claim 1, wherein the control device functions as a Near-RT RIC (RAN Intelligent Controller), and 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 executes the inference process using the updated trained model.

8. The control device according to claim 2, further comprising: a service execution unit that executes a service providing function, which is a function of providing a service to a mobile communication terminal that accesses the vRAN, using resources of the GPU, wherein the management unit controls to allocate the resources of the GPU preferentially to the vRAN execution unit, the RAN AI execution unit, and the service execution unit in that order.

9. A program for causing a computer to function as the control device according to claim 1.

10. A system comprising: the control device according to claim 1; the CPU; and the GPU.

Citation Information

Patent Citations

  • Container-based GPU virtualization method and system

    JP2020537197A