Control device, program, and system
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2025-05-30
- Publication Date
- 2026-03-11
AI Technical Summary
Existing vRAN systems struggle to efficiently execute both vRAN and RAN AI functions due to resource constraints, particularly when RAN AI functions are executed by CPUs, leading to instability and suboptimal service quality.
A control device that allocates GPU resources prioritizing vRAN execution, dynamically adjusting allocations based on load thresholds and congestion predictions to stabilize vRAN functions while enabling RAN AI execution when load is low, and implementing countermeasures to prevent congestion.
Stabilizes vRAN functions, enhances service quality through RAN AI execution, and effectively manages resource allocation to prevent congestion, ensuring stable and high-quality communication services.
Smart Images

Figure 00000000_0000_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 that allows dynamic allocation and sharing of 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, 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 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 out of 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.
[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 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 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 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 priority.
[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. [Brief explanation of the drawings]
[0012] [Figure 1] FIG. 1 is an explanatory diagram for explaining a conventional technique. [Figure 2] FIG. 1 is a diagram illustrating an example of using a GPU for RAN control in the prior art. [Figure 3] 2 is an explanatory diagram for explaining an example of the configuration of a control device 100. FIG. [Figure 4] 2 is an explanatory diagram for explaining an example of the configuration of a control device 100. FIG. [Figure 5] 2 is an explanatory diagram for explaining an example of the configuration of a control device 100. FIG. [Figure 6] 2 shows an example of a functional configuration of the control device 100. [Figure 7] 10 shows an example of a processing flow by the control device 100. [Figure 8] 1 shows an example of a hardware configuration of a computer 1200 that functions as the control device 100. DETAILED DESCRIPTION OF THE INVENTION
[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, and 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 version of 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 it is desired 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 using the ACC, so the RAN AI functions are 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 Figure 2. GPUvRAN, which offloads vRAN signal processing to a GPU, is known, but GPUvRAN does not take into account the RAN AI function.
[0018] Fig. 3 schematically illustrates an example of the configuration of a 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 functions are executed using the resources of the CPU 102 and the GPU 104, and the RAN AI functions are executed using the resources of the GPU 104.
[0019] The control device 100 may allocate resources of the GPU 104 to the vRAN 108 with priority over 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 falls below a predetermined threshold, increases the amount of GPU 104 resources allocated to the RAN AI 110 and starts executing 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 on 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 achieve improved 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 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. Then, when the processing load of the vRAN function falls below 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 achieving improved service quality through the RAN AI function, and to further contribute to improved service quality by strengthening the RAN AI function when the load on the vRAN function is low.
[0022] Furthermore, for example, the control device 100 normally allocates 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. If 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 executing 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. If 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 an offload process, such as handing over a mobile communication terminal from a wireless communication cell under the vRAN. This reduces the possibility that the vRAN will be congested and the quality of the wireless communication service provided to the mobile communication terminal will be degraded. As another countermeasure, the control device 100 may, for example, stop allocating GPU 104 resources to the RAN AI function and allocate the resources to the vRAN function. This increases the processing capacity of the vRAN function, preventing congestion and contributing to reducing the degree of congestion. The control device 100 may also implement countermeasures depending on the amount of available radio resources. For example, when the remaining amount of radio resources is greater than a predetermined threshold, the control device 100 stops allocating GPU 104 resources to the RAN AI function and allocates the resources 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. When the remaining amount of radio resources is high, allocating GPU 104 resources to the vRAN function can increase the number of mobile communication terminals that can be accommodated, contributing to reducing congestion. However, when the remaining amount of radio resources is low, allocating GPU 104 resources to the vRAN function may not increase the number of mobile communication terminals that can be accommodated, and may not be an effective countermeasure to 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 part 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 execute countermeasures according to the amount of surplus wireless resources. For example, if the remaining amount of radio resources is greater than a predetermined threshold, the control device 100 stops allocating GPU 104 resources to the RAN AI function and allocates that amount to the vRAN function; if 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 this embodiment. Here, differences from Fig. 3 will be mainly described. The control device 100 in this example 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 provision function that provides services to mobile communication terminals that access the vRAN. The services provided by the service provision function may be any service, and examples include, but are not limited to, services that analyze various types of data such as still image data, video 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 falls below 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. When the amount of unused resources of the GPU 104 exceeds 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 allocates the resources of the CPU 102 and some of the resources of the GPU 104 to the vRAN 108 to execute the vRAN function, 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, and allocates a smaller amount of the GPU 104 resources to the MEC 112 than the amount of the GPU 104 resources allocated to the RAN AI 110 to execute the MEC function. 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, improve service quality through the RAN AI function, and provide services through the MEC function, and to strengthen the RAN AI function and the MEC function when the load on 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, may reduce the amount of resources allocated to the MEC 112 by the GPU 104 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 generates a trained model related to RAN control by performing 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, resources, etc. The Near-RT RIC 200 executes processing with higher real-time performance than the Non-RT RIC 210.
[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 a 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 RIC210 performs learning to generate a trained model and the Near-RT RIC200 performs inference processing using the trained model. However, because learning by the Non-RT RIC210 has low real-time performance, 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 that increases the communication volume of mobile communication terminals, when a similar event occurs, the Near-RT RIC200 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 RIC200 updates the trained model acquired from the Non-RT RIC210 by, for example, performing machine learning using data related to the vRAN collected in real time, and then performs inference using the updated trained model. This allows the trained model to be updated to suit the traffic conditions of the event occurring at that time, 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 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 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 execution unit 122 and the RAN AI execution unit 124 so as to give priority to the vRAN execution unit 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 resources of the GPU 104 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 execution unit 122 to cause it to execute the vRAN function, 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 falls below a predetermined threshold, allocates resources of the GPU 104 to the RAN AI execution unit 124 to cause 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. 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 executor 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 executor 122 is higher than the predetermined threshold, the management unit 128 may increase the amount of GPU 104 resources allocated to the vRAN executor 122. When the processing load of the vRAN executor 122 is higher than the predetermined threshold, and the management unit 128 determines that the processing load of connection processing by the vRAN executor 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 executor 124. When the high processing load of the vRAN executor 122 is caused by the high processing load of physical layer signal processing, strengthening the parallel processing of the vRAN can contribute to reducing the processing load of the vRAN executor 122. On the other hand, if the high processing load of the vRAN execution unit 122 is caused by 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 vRAN functions 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 allocates resources of the CPU 102 and the GPU 104 to the vRAN execution unit 122 to execute the vRAN function, and prevents the RAN AI execution unit 124 from executing the RAN AI function. 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, based on the traffic pattern in the vRAN. The management unit 128 may also 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. If the management unit 128 predicts that the vRAN will be congested, it increases the amount of resources of the GPU 104 allocated to the RAN AI execution unit 124 and starts execution of the RAN AI function. When the RAN AI function determines that the vRAN is congested, the management unit 128 executes countermeasures. As one countermeasure, 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. As another countermeasure, the management unit 128 controls the execution of offload processing, 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 also execute countermeasures depending on 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 the execution of 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 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 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 countermeasures. As one countermeasure, 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. As another countermeasure, 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. As another countermeasure, the management unit 128 stops allocating GPU 104 resources to the RAN AI function and allocates the resources to the vRAN function. The management unit 128 may execute countermeasures depending on the amount of surplus wireless resources. For example, if 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 that amount to the vRAN execution unit 122, and if the remaining amount of radio resources is less than the threshold, the management unit 128 controls to perform 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 so as to prioritize the allocation 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 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 resources of the CPU 102 and resources of the GPU 104 to the vRAN executor 122 to execute the vRAN function, allocates resources of the GPU 104 less than the amount of resources of the GPU 104 allocated to the vRAN executor 122 to the RAN AI executor 124 to execute the RAN AI function, and allocates resources of the GPU 104 less than the amount of resources of the GPU 104 allocated to the RAN AI executor 124 to the service executor 126 to execute the service provision function. The management unit 128 monitors the processing load of the vRAN executor 122, and when the processing load of the vRAN executor 122 is lower than a predetermined threshold, increases the amount of resources of the GPU 104 allocated to the RAN AI executor 124 or increases the amount of resources of the GPU 104 allocated to the RAN AI executor 124 and the service executor 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 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 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 performing machine learning using data related to the vRAN, and perform inference processing using the updated trained model. The RAN AI execution unit 124 may update the trained model acquired from the Non-RT RIC by fine-tuning it 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 performing machine learning using various data collected from the RAN node at a shorter period than the Non-RT RIC, and performs 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. This diagram illustrates a processing flow when 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 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 CPUR and 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 determines whether or not the processing load of the GPU 104 is lower than a predetermined threshold. If it is determined that the processing load is not low, the process proceeds to S106, and if it is determined that the processing load is low, 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 executor 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 executor 124 and causes the RAN AI executor 124 to start executing 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 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 determines whether or not to end the allocation adjustment process. If it is determined that the allocation adjustment process should be ended, the allocation adjustment process is ended, and if it is determined that the allocation adjustment process should not be ended, the process 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 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 consideration 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 functioning as the control device 100. A program installed on the computer 1200 can cause the computer 1200 to function as one or more "units" 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 "units," 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 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 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 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 causes cooperation between the programs and the various types of hardware resources described above. An apparatus or 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 the computer 1200 and an external device, the CPU 1212 may execute a communication program loaded into 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 the 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 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 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, including 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 storage media, magnetic storage media, optical storage media, electromagnetic storage media, semiconductor storage media, etc. More specific examples of computer-readable storage media may include floppy disks, diskettes, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), electrically erasable programmable read-only memory (EEPROM), static random access memory (SRAM), compact disc read-only memory (CD-ROM), digital versatile disc (DVD), Blu-ray disc, memory stick, integrated circuit card, etc.
[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 wide area network (WAN) such as a local area network (LAN), the Internet, etc. 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 later 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. [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 unit, 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 resources of a CPU (Central Processing Unit) and resources of a GPU (Graphics Processing Unit); 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 management unit that manages the allocation of GPU resources to the vRAN execution unit preferentially, out of the vRAN execution unit and the RAN AI execution unit; Equipped with A control device in which the management unit increases the amount of GPU resources allocated to the vRAN execution unit when the remaining amount of radio resources is greater than a predetermined threshold when the vRAN execution unit is executing the vRAN function using the CPU resources and the GPU resources.
2. The control device described in Claim 1, wherein the management unit increases the amount of GPU resources allocated to the vRAN execution unit when the vRAN is predicted to be congested and the remaining amount of wireless resources is greater than a predetermined threshold.
3. The control device according to claim 2, wherein the management unit controls the GPU resources allocated to the RAN AI execution unit to be allocated to the vRAN execution unit when the RAN AI execution unit predicts that the vRAN will be congested and the remaining amount of the radio resources is greater than a predetermined threshold.
4. The control device described in Claim 2, wherein the management unit performs offload processing of mobile communication terminals from wireless communication cells under the vRAN when it is predicted that the vRAN will be congested and the remaining amount of wireless resources is less than a predetermined threshold.
5. The control device according to claim 1, wherein the management unit predicts whether the vRAN will be congested, and when it predicts that the vRAN will be congested, causes the RAN AI execution unit to further predict whether the vRAN will be congested, and when it further predicts that the vRAN will be congested and the remaining amount of the radio resources is greater than a predetermined threshold, controls the GPU resources allocated to the RAN AI execution unit to be allocated to the vRAN execution unit.
6. The control device according to claim 1, wherein the management unit allocates the CPU resources and the GPU resources to the vRAN execution unit to execute the vRAN function, and allocates a smaller amount of the GPU resources to the RAN AI execution unit than that allocated to the vRAN execution unit, so that when the vRAN is predicted to be congested and the remaining amount of radio resources is greater than a predetermined threshold, the GPU resources allocated to the RAN AI execution unit are allocated to the vRAN execution unit.
7. A program for causing a computer to function as the control device according to any one of claims 1 to 6.
8. A control device according to any one of claims 1 to 6; The CPU; The GPU and A system comprising: