WO2024053910A1 - 기계학습 모델에 적합한 가속기를 선택하는 장치 및 방법 - Google Patents

기계학습 모델에 적합한 가속기를 선택하는 장치 및 방법 Download PDF

Info

Publication number
WO2024053910A1
WO2024053910A1 PCT/KR2023/012439 KR2023012439W WO2024053910A1 WO 2024053910 A1 WO2024053910 A1 WO 2024053910A1 KR 2023012439 W KR2023012439 W KR 2023012439W WO 2024053910 A1 WO2024053910 A1 WO 2024053910A1
Authority
WO
WIPO (PCT)
Prior art keywords
accelerator
machine learning
learning model
delay time
accelerators
Prior art date
Application number
PCT/KR2023/012439
Other languages
English (en)
French (fr)
Inventor
이현수
김정배
석진웅
이은택
이하석
김무영
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from KR1020220118702A external-priority patent/KR20240035269A/ko
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Publication of WO2024053910A1 publication Critical patent/WO2024053910A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means

Definitions

  • the following embodiments are intended to provide an appropriate accelerator for a machine learning model.
  • CPU central processing unit
  • applications that require fast response such as cameras, request calculations to an accelerator chipset that has a faster calculation speed than the CPU.
  • accelerators currently in use include central processing units (CPUs), graphics processing units (GPUs), neural processing units (NPUs), and digital signal processors (DSPs). etc.
  • CPUs central processing units
  • GPUs graphics processing units
  • NPUs neural processing units
  • DSPs digital signal processors
  • the choice of accelerator is decided by the programmer when creating the application code.
  • GPU is used, and when the accelerator to be used for one's application can be specified, DSP or NPU is used to speed up computation. .
  • an accelerator to perform each of the operations included in the machine learning model can be selected by considering the speed measured in the idle state of each accelerator according to the operation and the utilization rate of each accelerator.
  • An accelerator selection method includes the following operations (512; 612): classifying a machine learning model into operation units when receiving a machine learning model; Checking the operation delay time of each accelerator 140 for each operation included in the machine learning model by referring to the delay time table (514; 614); And an operation (516; 618) of selecting an accelerator to perform each operation included in the machine learning model by considering the operation delay time of each of the accelerators 140 for each operation included in the machine learning model. there is.
  • An electronic device comprising: a volatile memory that stores a delay time table; and a processor, wherein the processor, the accelerator selection device, receives the machine learning model, divides it into operation units, and performs operations on each of the accelerators 140 for each operation included in the machine learning model by referring to the delay time table.
  • Check the delay time check the current state information of each of the accelerators 140, and considering the current state of each of the accelerators 140, each of the accelerators 140 for each operation included in the machine learning model.
  • the accelerator with the smallest current operation delay time can be selected for each operation included in the machine learning model.
  • 1 is a diagram illustrating the configuration of an accelerator selection device according to an embodiment.
  • FIG. 2 is a diagram illustrating the flow of messages for selecting an accelerator in an accelerator selection device according to an embodiment.
  • Figure 3 is a diagram illustrating an example of dividing a machine learning model into operation units in the machine learning model analysis unit of an accelerator selection device according to an embodiment.
  • FIG. 4 is a diagram illustrating an example in which an accelerator is selected for operations of a machine learning model by an accelerator selection device according to an embodiment.
  • Figure 5 is a flowchart illustrating the flow of selecting an accelerator in an accelerator selection device according to an embodiment.
  • FIG. 6 is a flowchart illustrating a flow of selecting an accelerator in consideration of the state of the accelerator in an accelerator selection device according to an embodiment.
  • FIG. 7 is a flowchart illustrating a flow of calculating a current operation delay time and selecting an accelerator for an operation in an accelerator selection device according to an embodiment.
  • FIG. 8 is a flowchart illustrating a flow of selecting an accelerator in consideration of a case where the accelerator is not changed in an accelerator selection device according to an embodiment.
  • FIG. 9 is a flowchart illustrating a flow of selecting an accelerator in an accelerator selection device according to an embodiment, considering the number of times the accelerator is changed and the case of not changing the accelerator.
  • Figure 10 is a flowchart showing the flow of generating a delay time table in an accelerator selection device according to an embodiment.
  • FIG. 11 is a block diagram of an electronic device in a network environment according to an embodiment.
  • first, second, A, B, (a), and (b) may be used. These terms are only used to distinguish the component from other components, and the nature, sequence, or order of the component is not limited by the term.
  • a component is described as being “connected,” “coupled,” or “connected” to another component, that component may be directly connected or connected to that other component, but there is no need for another component between each component. It should be understood that may be “connected,” “combined,” or “connected.”
  • 1 is a diagram illustrating the configuration of an accelerator selection device according to an embodiment.
  • the accelerator selection device 110 includes a delay time table generation unit 111, a machine learning model analysis unit 112, an operation confirmation unit 113, an accelerator status check unit 114, and an accelerator selection unit ( 115).
  • the accelerator selection device 110 may be included in a central processing unit (CPU) 141.
  • CPU central processing unit
  • the delay time table generator 111 when the accelerators 140 are in an idle state, the delay time table generator 111 performs a training machine learning model including all types of operations for each accelerator 140 to perform each operation. You can calculate the operation delay time for each accelerator.
  • the accelerators 140 include a central processing unit (CPU) 141, a graphics processing unit (GPU) 142, a neural network processing unit (NPU) 143, and a digital processing unit (NPU) 143. It may include at least one of a signal processor (DSP; digital signal processor).
  • DSP digital signal processor
  • the delay time table may be configured as shown in the example in ⁇ Table 1> below.
  • Operation 1 operation 2 ... Operation N CPU 100 20 ... 20 GPU 50 30 ... 20 NPU 10 N/A ... 100
  • the delay time table generator 111 may generate a delay time table including the operation delay time for each accelerator for each operation and store the generated delay time table in the storage unit 130.
  • the machine learning model analysis unit 112 when the machine learning model analysis unit 112 receives a machine learning model from the application 102, it can classify it into operation units.
  • Figure 3 is a diagram illustrating an example of dividing a machine learning model into operation units in the machine learning model analysis unit of an accelerator selection device according to an embodiment.
  • the machine learning model analysis unit 112 may divide the machine learning model 310 into a plurality of operations 320. At this time, the operation may represent a unit of function that constitutes a machine learning model.
  • the operation confirmation unit 113 may check the operation delay time of each of the accelerators 140 for each operation included in the machine learning model by referring to the delay time table.
  • the accelerator status checker 114 may check the current status information of each of the accelerators 140.
  • the current state information of each of the accelerators 140 may include the usage rate of each of the accelerators 140.
  • the current state information of each of the accelerators 140 may further include the current temperature of each of the accelerators 140.
  • the accelerator selection unit 115 calculates the current operation delay time of each of the accelerators 140 for each operation included in the machine learning model in consideration of the current state of each of the accelerators 140, and calculates the current operation delay time of each of the accelerators 140. (140) Considering each current state, the accelerator with the smallest current operation delay can be selected for each operation included in the machine learning model.
  • the accelerator selection unit 115 may calculate the current operation delay time through ⁇ Equation 1> below.
  • L(o) is the current operation delay time of operation (o)
  • S(o) is the operation delay time of operation (o) in the corresponding accelerator retrieved from the latency table
  • U(o) is the current operation delay time of the corresponding accelerator. It is the utilization rate
  • w is the weight
  • a represents the bias value.
  • the accelerator selection unit 115 may select the accelerator with the smallest current operation delay time for each operation included in the machine learning model through ⁇ Equation 2> below.
  • L C (o) is the current operation delay time of operation (o) when the accelerator is a central processing unit (C)
  • L G (o) is the current operation delay time of operation (o) when the accelerator is a graphics processing unit (G).
  • G is the current operation delay time
  • L N (o) is the current operation delay time of operation (o) when the accelerator is a neural network processing unit (N).
  • FIG. 4 is a diagram illustrating an example in which an accelerator is selected for operations of a machine learning model by an accelerator selection device according to an embodiment.
  • all operations of the machine learning model are performed by the NPU (410)
  • all operations of the machine learning model are performed in a single accelerator in the conventional manner.
  • the accelerator selection device 110 selects an accelerator for each operation of the machine learning model, and as a result of frequent accelerator conversion, if the overhead of accelerator conversion becomes too high, it does not convert the accelerator and uses the existing method. All operations of all machine learning models can be performed at acceleration of .
  • two accelerators may be used to perform operations of the machine learning model while converting the accelerator.
  • the accelerator selection device 110 usually uses argmax, softmax, and nms for operations that the CPU performs faster than the NPU. If these operations are performed by the CPU rather than the NPU, the overall computation speed can be increased.
  • the accelerator selection device 110 may allow the CPU to additionally perform a mean operation that requires many bits when calculating.
  • the accelerator of the CPU and GPU is used to convert the accelerator to improve the machine learning model. It may be a method of performing an operation.
  • the accelerator selection unit 115 may estimate the delay time of the machine learning model when an operation included in the machine learning model is performed with the selected accelerator. To be more specific, the accelerator selection unit 115 may calculate the current operation delay time when performed with the selected accelerator for each operation included in the machine learning model. Additionally, the accelerator selection unit 115 may calculate the first value by adding up the current operation delay times of each operation included in the machine learning model. In addition, the accelerator selection unit 115 may calculate a second value by multiplying the number of accelerator conversions by a preset conversion time to perform each operation included in the machine learning model with the selected accelerator. Additionally, the accelerator selection unit 115 may add the first value and the second value to estimate the delay time of the machine learning model when performing an operation included in the machine learning model with the selected accelerator. At this time, the preset conversion time may be a conversion time previously confirmed through experiment.
  • the accelerator selection unit 115 may estimate the delay time of the machine learning model when all operations included in the machine learning model are performed without conversion in each of the accelerators 140. To be more specific, the accelerator selection unit 115 may calculate the current operation delay time for each accelerator 140 when performed with one accelerator for each operation included in the machine learning model. In addition, the accelerator selection unit 115 adds up the current operation delay time of each operation included in the machine learning model and calculates the delay time of the machine learning model when all operations included in the machine learning model are performed in one accelerator. It can be estimated for each field (140).
  • the accelerator selection unit 115 selects the machine learning model if the delay time of the machine learning model when performed without converting the accelerator is shorter than the delay time of the machine learning model when performed with the selected accelerator. You can select the accelerator with the lowest current operation delay time for each operation included in .
  • the accelerator selection unit 115 does not convert the accelerator if the delay time of the machine learning model when performed without converting the accelerator is shorter than the delay time of the machine learning model when performed with the selected accelerator.
  • the accelerator that has the shortest latency of the machine learning model when performed without the machine learning model can be selected as the accelerator for all operations included in the machine learning model.
  • the accelerator selection unit 115 may check whether conversion of the accelerator occurs more than a preset number of times when performing an operation included in the machine learning model with the selected accelerator. Additionally, if the accelerator conversion occurs more than a preset number of times when performing the operation included in the machine learning model with the selected accelerator, the accelerator selection unit 115 selects the machine when performing the operation included in the machine learning model with the selected accelerator. The delay time of the learning model can be estimated. Additionally, the accelerator selection unit 115 can estimate the delay time of the machine learning model when all operations included in the machine learning model are performed without conversion in each of the accelerators 140.
  • the accelerator selection unit 115 is configured to operate without converting the accelerator.
  • the accelerator with the shortest latency of the machine learning model can be selected as the accelerator for all operations included in the machine learning model.
  • the accelerator selection unit 115 performs the operation included in the machine learning model with the selected accelerator if conversion of the accelerator does not occur more than a preset number of times. You can decide to do it.
  • the accelerator selection unit 115 may exclude the accelerators 140 from performing an operation if the current temperature of each of the accelerators 140 is higher than a preset temperature for each accelerator 140.
  • the accelerator selection unit 115 may transmit the final selection result of the accelerator for each operation included in the machine learning model to the machine learning model analysis unit 112.
  • the machine learning model analysis unit 112 when the machine learning model analysis unit 112 receives the accelerator selection result for each operation included in the machine learning model from the accelerator selection unit 115, it selects each operation included in the machine learning model. You can request execution with the selected accelerator.
  • the delay time table generator 111 and the accelerator status checker 114 may communicate with the accelerators 140 through a hardware abstraction layer (HAL) 120. .
  • HAL hardware abstraction layer
  • FIG. 2 is a diagram illustrating the flow of messages for selecting an accelerator in an accelerator selection device according to an embodiment.
  • the machine learning model analysis unit 112 receives the machine learning model from the application 102 (210), it divides it into operation units and provides operation information to the accelerator selection unit 115. (212).
  • the accelerator selection unit 115 when receiving operation information of the machine learning model, transmits the operation name to the operation confirmation unit 113 (214), and selects each operation from the operation confirmation unit 113. Delay time can be received (216).
  • the accelerator selection unit 115 requests the status of the accelerators 140 from the accelerator status check unit 114 (218), and receives the status of the accelerators 140 from the accelerator status check unit 114. You can receive information about (220).
  • the accelerator selection unit 115 receives the operation delay time of each operation from the operation confirmation unit 113.
  • an accelerator corresponding to each operation of the machine learning model is selected, and the selected results are transmitted to the machine learning model analysis unit 112. It can be done (222).
  • the machine learning model analysis unit 112 may generate a partition table using the selected result received from the accelerator selection unit 115 (224).
  • the partition table may be configured to include information on the operations constituting the machine learning model and the accelerator corresponding to each of the operations.
  • the machine learning model analysis unit 112 may request that the operation of the machine learning model be performed by the corresponding accelerator according to the partition table (226).
  • Figure 5 is a flowchart illustrating the flow of selecting an accelerator in an accelerator selection device according to an embodiment.
  • the accelerator selection device 110 when the accelerator selection device 110 receives a machine learning model, it can classify it into operation units (512).
  • the accelerator selection device 110 may check the operation delay time of each accelerator 140 for each operation included in the machine learning model by referring to the delay time table (514).
  • the accelerator selection device 110 may select an accelerator to perform each operation included in the machine learning model by considering the operation delay time of each of the accelerators 140 for each operation included in the machine learning model. (516).
  • the accelerator selection device 110 may request that operations included in the machine learning model be performed by the selected accelerator (518).
  • FIG. 6 is a flowchart illustrating a flow of selecting an accelerator in consideration of the state of the accelerator in an accelerator selection device according to an embodiment.
  • the accelerator selection device 110 when the accelerator selection device 110 receives a machine learning model, it can classify it into operation units (612).
  • the accelerator selection device 110 may check the operation delay time of each accelerator 140 for each operation included in the machine learning model by referring to the delay time table (614).
  • the accelerator selection device 110 may check the current state information of each of the accelerators 140 (616). At this time, the current state information of each of the accelerators 140 may include the usage rate of each of the accelerators 140. According to one embodiment, the current state information of each of the accelerators 140 may further include the current temperature of each of the accelerators 140.
  • the accelerator selection device 110 may select an accelerator to perform each operation included in the machine learning model by considering the current state of each of the accelerators 140 (618).
  • the accelerator selection device 110 may exclude the accelerator from performing the operation.
  • the accelerator selection device 110 may request that operations included in the machine learning model be performed by the selected accelerator (620).
  • FIG. 7 is a flowchart illustrating a flow of calculating a current operation delay time and selecting an accelerator for an operation in an accelerator selection device according to an embodiment.
  • the accelerator selection device 110 may calculate the current operation delay time of each of the accelerators 140 for each operation included in the machine learning model by considering the current state of each of the accelerators 140 (710). ). At this time, the accelerator selection device 110 can calculate the current operation delay time through ⁇ Equation 1> below.
  • L(o) is the current operation delay time of operation (o)
  • S(o) is the operation delay time of operation (o) in the corresponding accelerator retrieved from the latency table
  • U(o) is the current operation delay time of the corresponding accelerator. It is the utilization rate
  • w is the weight
  • a represents the bias value.
  • the accelerator selection device 110 may consider the current state of each of the accelerators 140 and select the accelerator with the smallest current operation delay time for each operation included in the machine learning model (712).
  • the accelerator selection device 110 can select the accelerator with the smallest current operation delay time for each operation included in the machine learning model through ⁇ Equation 2> below.
  • L C (o) is the current operation delay time of operation (o) when the accelerator is a central processing unit (C)
  • L G (o) is the current operation delay time of operation (o) when the accelerator is a graphics processing unit (G).
  • G is the current operation delay time
  • L N (o) is the current operation delay time of operation (o) when the accelerator is a neural network processing unit (N).
  • FIG. 8 is a flowchart illustrating a flow of selecting an accelerator in consideration of a case where the accelerator is not changed in an accelerator selection device according to an embodiment.
  • the accelerator selection device 110 may calculate the current operation delay time of each of the accelerators 140 for each operation included in the machine learning model by considering the current state of each of the accelerators 140 (810). ).
  • the accelerator selection device 110 may consider the current state of each of the accelerators 140 and select the accelerator with the smallest current operation delay time for each operation included in the machine learning model (812).
  • the accelerator selection device 110 may estimate the delay time of the machine learning model when an operation included in the machine learning model is performed with the selected accelerator (814). To describe operation 814 in more detail, the accelerator selection device 110 may calculate the current operation delay time when performed with the selected accelerator for each operation included in the machine learning model. Additionally, the accelerator selection device 110 may calculate the first value by adding up the current operation delay times of each operation included in the machine learning model. In addition, the accelerator selection device 110 may calculate a second value by multiplying the number of accelerator conversions by a preset conversion time to perform each operation included in the machine learning model with the selected accelerator. Additionally, the accelerator selection device 110 may add the first value and the second value to estimate the delay time of the machine learning model when performing an operation included in the machine learning model with the selected accelerator.
  • the accelerator selection device 110 may estimate the delay time of the machine learning model when all operations included in the machine learning model are performed without conversion in each of the accelerators 140 (816). .
  • the accelerator selection device 110 determines the current operation delay time when performed with one accelerator for each operation included in the machine learning model among the accelerators. (140) It can be calculated by star.
  • the accelerator selection device 110 adds up the current operation delay times of each operation included in the machine learning model and calculates the delay time of the machine learning model when all operations included in the machine learning model are performed in one accelerator. It can be estimated for each field (140).
  • the accelerator selection device 110 selects the shortest method among the delay times of the machine learning model estimated in operations 814 and 816 (818). That is, if the delay time of the machine learning model when performed without converting the accelerator is shorter than the delay time of the machine learning model when performed with the selected accelerator, the accelerator selection device 110 is operated without converting the accelerator.
  • the accelerator with the shortest latency of the machine learning model can be selected as the accelerator for all operations included in the machine learning model.
  • FIG. 9 is a flowchart illustrating a flow of selecting an accelerator in an accelerator selection device according to an embodiment, considering the number of times the accelerator is changed and the case of not changing the accelerator.
  • the accelerator selection device 110 may consider the current state of each of the accelerators 140 and calculate the current operation delay time of each of the accelerators 140 for each operation included in the machine learning model (910). ).
  • the accelerator selection device 110 may consider the current state of each of the accelerators 140 and select the accelerator with the smallest current operation delay time for each operation included in the machine learning model (912).
  • the accelerator selection device 110 may check whether conversion of the accelerator occurs more than a preset number of times when performing an operation included in a machine learning model with the selected accelerator (914).
  • the accelerator selection device 110 can estimate the delay time of the machine learning model when performing the operation included in the machine learning model with the selected accelerator ( 916).
  • the accelerator selection device 110 may calculate the current operation delay time when performed with the selected accelerator for each operation included in the machine learning model. Additionally, the accelerator selection device 110 may calculate the first value by adding up the current operation delay times of each operation included in the machine learning model. In addition, the accelerator selection device 110 may calculate a second value by multiplying the number of accelerator conversions by a preset conversion time to perform each operation included in the machine learning model with the selected accelerator. Additionally, the accelerator selection device 110 may add the first value and the second value to estimate the delay time of the machine learning model when performing an operation included in the machine learning model with the selected accelerator.
  • the accelerator selection device 110 may estimate the delay time of the machine learning model when all operations included in the machine learning model are performed without conversion in each of the accelerators 140 (918). .
  • the accelerator selection device 110 determines the current operation delay time when performed with one accelerator for each operation included in the machine learning model among the accelerators. (140) It can be calculated by star.
  • the accelerator selection device 110 adds up the current operation delay time of each operation included in the machine learning model and calculates the delay time of the machine learning model when all operations included in the machine learning model are performed in one accelerator. It can be estimated for each field (140).
  • the accelerator selection device 110 selects the shortest method among the delay times of the machine learning model estimated in operations 916 and 918 (920). That is, if the delay time of the machine learning model when performed without converting the accelerator is shorter than the delay time of the machine learning model when performed with the selected accelerator, the accelerator selection device 110 is operated without converting the accelerator.
  • the accelerator with the shortest latency of the machine learning model can be selected as the accelerator for all operations included in the machine learning model.
  • the accelerator selection device 110 may determine to perform the operation included in the machine learning model with the accelerator selected for each (922).
  • Figure 10 is a flowchart showing the flow of generating a delay time table in an accelerator selection device according to an embodiment.
  • the accelerator selection device 110 can check whether it is booting or in an idle state (1010).
  • the accelerator selection device 110 displays the delay time table. You can check whether it exists (1012).
  • the accelerator selection device 110 can calculate the operation delay time for each accelerator for each operation by performing a machine learning model for training, including all types of operations, for each accelerator. There is (1014).
  • the accelerator selection device 110 may generate a delay time table including operation delay times for each accelerator for each operation (1016).
  • FIG. 11 is a block diagram of an electronic device in a network environment according to an embodiment.
  • communication is performed with the electronic device 1102 through the electronic device 1101 in the network environment 1100, or with the electronic device 1104 through the second network 1199 (e.g., a long-distance wireless communication network). Alternatively, it may communicate with at least one of the servers 1108. According to one embodiment, the electronic device 1101 may communicate with the electronic device 1104 through the server 1108.
  • the electronic device 1101 includes a processor 1120, a memory 1130, an input module 1150, an audio output module 1155, a display module 1160, an audio module 1170, and a sensor module ( 1176), interface 1177, connection terminal 1178, haptic module 1179, camera module 1180, power management module 1188, battery 1189, communication module 1190, subscriber identification module 1196. , or may include an antenna module 1197.
  • at least one of these components eg, the connection terminal 1178) may be omitted, or one or more other components may be added to the electronic device 1101.
  • some of these components e.g., sensor module 1176, camera module 1180, or antenna module 1197) are integrated into one component (e.g., display module 1160). It can be.
  • the processor 1120 executes software (e.g., program 1140) to operate at least one other component (e.g., hardware or software component) of the electronic device 1101 connected to the processor 1120. It can be controlled and various data processing or operations can be performed. According to one embodiment, as at least part of data processing or computation, the processor 1120 stores commands or data received from another component (e.g., sensor module 1176 or communication module 1190) in volatile memory 1132. The commands or data stored in the volatile memory 1132 can be processed, and the resulting data can be stored in the non-volatile memory 1134.
  • software e.g., program 1140
  • the processor 1120 stores commands or data received from another component (e.g., sensor module 1176 or communication module 1190) in volatile memory 1132.
  • the commands or data stored in the volatile memory 1132 can be processed, and the resulting data can be stored in the non-volatile memory 1134.
  • the processor 1120 may include a main processor 1121 (e.g., a central processing unit or an application processor) or an auxiliary processor 1123 that can operate independently or together (e.g., a graphics processing unit, a neural network processing unit ( It may include a neural processing unit (NPU), an image signal processor, a sensor hub processor, or a communication processor).
  • a main processor 1121 e.g., a central processing unit or an application processor
  • auxiliary processor 1123 e.g., a graphics processing unit, a neural network processing unit ( It may include a neural processing unit (NPU), an image signal processor, a sensor hub processor, or a communication processor.
  • the electronic device 1101 includes a main processor 1121 and a auxiliary processor 1123
  • the auxiliary processor 1123 may be set to use lower power than the main processor 1121 or be specialized for a designated function. You can.
  • the auxiliary processor 1123 may be implemented separately from the main processor 1121 or as part of it.
  • the auxiliary processor 1123 may, for example, act on behalf of the main processor 1121 while the main processor 1121 is in an inactive (e.g., sleep) state, or while the main processor 1121 is in an active (e.g., application execution) state. ), together with the main processor 1121, at least one of the components of the electronic device 1101 (e.g., the display module 1160, the sensor module 1176, or the communication module 1190) At least some of the functions or states related to can be controlled.
  • coprocessor 1123 e.g., image signal processor or communication processor
  • may be implemented as part of another functionally related component e.g., camera module 1180 or communication module 1190. there is.
  • the auxiliary processor 1123 may include a hardware structure specialized for processing artificial intelligence models.
  • Artificial intelligence models can be created through machine learning. For example, such learning may be performed in the electronic device 1101 itself on which the artificial intelligence model is performed, or may be performed through a separate server (e.g., server 1108).
  • Learning algorithms may include, for example, supervised learning, unsupervised learning, semi-supervised learning, or reinforcement learning, but It is not limited.
  • An artificial intelligence model may include multiple artificial neural network layers.
  • Artificial neural networks include deep neural network (DNN), convolutional neural network (CNN), recurrent neural network (RNN), restricted boltzmann machine (RBM), belief deep network (DBN), bidirectional recurrent deep neural network (BRDNN), It may be one of deep Q-networks or a combination of two or more of the above, but is not limited to the examples described above.
  • artificial intelligence models may additionally or alternatively include software structures.
  • At least one or a combination of the processor 1120, the main processor 1121, and the auxiliary processor 1123 may perform the operations of the accelerator selection device 110, HAL 120, and accelerators 140 of FIG. 1. .
  • the memory 1130 may store various data used by at least one component (eg, the processor 1120 or the sensor module 1176) of the electronic device 1101. Data may include, for example, input data or output data for software (e.g., program 1140) and instructions related thereto.
  • Memory 1130 may include volatile memory 1132 or non-volatile memory 1134.
  • the memory 1130 may store a delay time table by performing the operation of the storage unit 130 of FIG. 1.
  • the program 1140 may be stored as software in the memory 1130 and may include, for example, an operating system 1142, middleware 1144, or application 1146.
  • the input module 1150 may receive commands or data to be used in a component of the electronic device 1101 (e.g., the processor 1120) from outside the electronic device 1101 (e.g., a user).
  • the input module 1150 may include, for example, a microphone, mouse, keyboard, keys (eg, buttons), or digital pen (eg, stylus pen).
  • the sound output module 1155 may output sound signals to the outside of the electronic device 1101.
  • the sound output module 1155 may include, for example, a speaker or receiver. Speakers can be used for general purposes such as multimedia playback or recording playback.
  • the receiver can be used to receive incoming calls. According to one embodiment, the receiver may be implemented separately from the speaker or as part of it.
  • the display module 1160 can visually provide information to the outside of the electronic device 1101 (eg, a user).
  • the display module 1160 may include, for example, a display, a hologram device, or a projector, and a control circuit for controlling the device.
  • the display module 1160 may include a touch sensor configured to detect a touch, or a pressure sensor configured to measure the intensity of force generated by the touch.
  • the audio module 1170 can convert sound into an electrical signal or, conversely, convert an electrical signal into sound. According to one embodiment, the audio module 1170 acquires sound through the input module 1150, the sound output module 1155, or an external electronic device (e.g., directly or wirelessly connected to the electronic device 1101). Sound may be output through an electronic device 1102 (e.g., speaker or headphone).
  • an electronic device 1102 e.g., speaker or headphone
  • the sensor module 1176 detects the operating state (e.g., power or temperature) of the electronic device 1101 or the external environmental state (e.g., user state) and generates an electrical signal or data value corresponding to the detected state. can do.
  • the sensor module 1176 includes, for example, a gesture sensor, a gyro sensor, an air pressure sensor, a magnetic sensor, an acceleration sensor, a grip sensor, a proximity sensor, a color sensor, an IR (infrared) sensor, a biometric sensor, It may include a temperature sensor, humidity sensor, or light sensor.
  • the interface 1177 may support one or more designated protocols that can be used to directly or wirelessly connect the electronic device 1101 to an external electronic device (eg, the electronic device 1102).
  • the interface 1177 may include, for example, a high definition multimedia interface (HDMI), a universal serial bus (USB) interface, an SD card interface, or an audio interface.
  • HDMI high definition multimedia interface
  • USB universal serial bus
  • SD card interface Secure Digital Card
  • connection terminal 1178 may include a connector through which the electronic device 1101 can be physically connected to an external electronic device (eg, the electronic device 1102).
  • the connection terminal 1178 may include, for example, an HDMI connector, a USB connector, an SD card connector, or an audio connector (eg, a headphone connector).
  • the haptic module 1179 can convert electrical signals into mechanical stimulation (e.g., vibration or movement) or electrical stimulation that the user can perceive through tactile or kinesthetic senses.
  • the haptic module 1179 may include, for example, a motor, a piezoelectric element, or an electrical stimulation device.
  • the camera module 1180 can capture still images and moving images.
  • the camera module 1180 may include one or more lenses, image sensors, image signal processors, or flashes.
  • the power management module 1188 can manage power supplied to the electronic device 1101. According to one embodiment, the power management module 1188 may be implemented as at least a part of, for example, a power management integrated circuit (PMIC).
  • PMIC power management integrated circuit
  • the battery 1189 may supply power to at least one component of the electronic device 1101.
  • the battery 1189 may include, for example, a non-rechargeable primary cell, a rechargeable secondary cell, or a fuel cell.
  • Communication module 1190 provides a direct (e.g., wired) communication channel or wireless communication channel between the electronic device 1101 and an external electronic device (e.g., electronic device 1102, electronic device 1104, or server 1108). It can support establishment and communication through established communication channels. Communication module 1190 operates independently of processor 1120 (e.g., an application processor) and may include one or more communication processors that support direct (e.g., wired) communication or wireless communication.
  • processor 1120 e.g., an application processor
  • the communication module 1190 may be a wireless communication module 1192 (e.g., a cellular communication module, a short-range wireless communication module, or a global navigation satellite system (GNSS) communication module) or a wired communication module 1194 (e.g., : LAN (local area network) communication module, or power line communication module) may be included.
  • a wireless communication module 1192 e.g., a cellular communication module, a short-range wireless communication module, or a global navigation satellite system (GNSS) communication module
  • GNSS global navigation satellite system
  • wired communication module 1194 e.g., : LAN (local area network) communication module, or power line communication module
  • the corresponding communication module is a first network 1198 (e.g., a short-range communication network such as Bluetooth, wireless fidelity (WiFi) direct, or infrared data association (IrDA)) or a second network 1199 (e.g., legacy It may communicate with an external electronic device 1104 through a telecommunication network such as a cellular network, a 5G network, a next-generation communication network, the Internet, or a computer network (e.g., LAN or WAN).
  • a telecommunication network such as a cellular network, a 5G network, a next-generation communication network, the Internet, or a computer network (e.g., LAN or WAN).
  • a telecommunication network such as a cellular network, a 5G network, a next-generation communication network, the Internet, or a computer network (e.g., LAN or WAN).
  • a telecommunication network such as a cellular network, a 5G network, a next-generation communication network
  • the wireless communication module 1192 uses subscriber information (e.g., International Mobile Subscriber Identifier (IMSI)) stored in the subscriber identification module 1196 to communicate within a communication network such as the first network 1198 or the second network 1199.
  • subscriber information e.g., International Mobile Subscriber Identifier (IMSI)
  • IMSI International Mobile Subscriber Identifier
  • the wireless communication module 1192 may support 5G networks and next-generation communication technologies after 4G networks, for example, NR access technology (new radio access technology).
  • NR access technology provides high-speed transmission of high-capacity data (eMBB (enhanced mobile broadband)), minimization of terminal power and access to multiple terminals (mMTC (massive machine type communications)), or high reliability and low latency (URLLC (ultra-reliable and low latency). -latency communications)) can be supported.
  • the wireless communication module 1192 may support high frequency bands (e.g., mmWave bands), for example, to achieve high data rates.
  • the wireless communication module 1192 uses various technologies to secure performance in high frequency bands, for example, beamforming, massive array multiple-input and multiple-output (MIMO), and full-dimensional multiplexing. It can support technologies such as input/output (FD-MIMO: full dimensional MIMO), array antenna, analog beam-forming, or large scale antenna.
  • the wireless communication module 1192 may support various requirements specified in the electronic device 1101, an external electronic device (e.g., electronic device 1104), or a network system (e.g., second network 1199).
  • the wireless communication module 1192 supports peak data rate (e.g., 20 Gbps or more) for realizing eMBB, loss coverage (e.g., 164 dB or less) for realizing mmTC, or U-plane latency (e.g., 164 dB or less) for realizing URLLC.
  • peak data rate e.g., 20 Gbps or more
  • loss coverage e.g., 164 dB or less
  • U-plane latency e.g., 164 dB or less
  • the antenna module 1197 may transmit or receive signals or power to or from the outside (e.g., an external electronic device).
  • the antenna module 1197 may include an antenna including a radiator made of a conductor or a conductive pattern formed on a substrate (eg, PCB).
  • the antenna module 1197 may include a plurality of antennas (eg, an array antenna). In this case, at least one antenna suitable for a communication method used in a communication network such as the first network 1198 or the second network 1199 is, for example, connected to the plurality of antennas by the communication module 1190. can be selected. Signals or power may be transmitted or received between the communication module 1190 and an external electronic device through the selected at least one antenna.
  • other components eg, radio frequency integrated circuit (RFIC) in addition to the radiator may be additionally formed as part of the antenna module 1197.
  • RFIC radio frequency integrated circuit
  • the antenna module 1197 may form a mmWave antenna module.
  • a mmWave antenna module includes a printed circuit board, an RFIC disposed on or adjacent to a first side (e.g., bottom side) of the printed circuit board and capable of supporting a designated high frequency band (e.g., mmWave band); And a plurality of antennas (e.g., array antennas) disposed on or adjacent to the second side (e.g., top or side) of the printed circuit board and capable of transmitting or receiving signals in the designated high frequency band. can do.
  • a mmWave antenna module includes a printed circuit board, an RFIC disposed on or adjacent to a first side (e.g., bottom side) of the printed circuit board and capable of supporting a designated high frequency band (e.g., mmWave band); And a plurality of antennas (e.g., array antennas) disposed on or adjacent to the second side (e.g., top or side) of the
  • peripheral devices e.g., bus, general purpose input and output (GPIO), serial peripheral interface (SPI), or mobile industry processor interface (MIPI)
  • signal e.g. commands or data
  • commands or data may be transmitted or received between the electronic device 1101 and the external electronic device 1104 through the server 1108 connected to the second network 1199.
  • Each of the external electronic devices 1102 or 1104 may be of the same or different type as the electronic device 1101.
  • all or part of the operations performed in the electronic device 1101 may be executed in one or more of the external electronic devices 1102, 1104, or 1108.
  • the electronic device 1101 needs to perform a certain function or service automatically or in response to a request from a user or another device, the electronic device 1101 does not execute the function or service on its own.
  • one or more external electronic devices may be requested to perform at least part of the function or service.
  • One or more external electronic devices that have received the request may execute at least part of the requested function or service, or an additional function or service related to the request, and transmit the result of the execution to the electronic device 1101.
  • the electronic device 1101 may process the result as is or additionally and provide it as at least part of a response to the request.
  • cloud computing distributed computing, mobile edge computing (MEC), or client-server computing technology can be used.
  • the electronic device 1101 may provide an ultra-low latency service using, for example, distributed computing or mobile edge computing.
  • the external electronic device 1104 may include an Internet of Things (IoT) device.
  • Server 1108 may be an intelligent server using machine learning and/or neural networks.
  • the external electronic device 1104 or server 1108 may be included in the second network 1199.
  • the electronic device 1101 may be applied to intelligent services (e.g., smart home, smart city, smart car, or healthcare) based on 5G communication technology and IoT-related technology.
  • the accelerator selection method includes the following operations 512 and 612: classifying a machine learning model into operation units upon receiving a machine learning model; An operation of checking the operation delay time of each accelerator 140 for each operation included in the machine learning model by referring to the delay time table (514; 614); And an operation (516; 618) of selecting an accelerator to perform each operation included in the machine learning model by considering the operation delay time of each of the accelerators 140 for each operation included in the machine learning model. there is.
  • the accelerator selection method may further include operations 518 and 620 of performing operations included in the machine learning model with each selected accelerator.
  • the accelerators 140 include a central processing unit (CPU) 141, a graphics processing unit (GPU) 142, and a neural network processing unit. It may include at least one of a Neural Processing Unit (NPU) 143 and a digital signal processor (DSP).
  • CPU central processing unit
  • GPU graphics processing unit
  • DSP digital signal processor
  • the accelerator selection method may further include an operation 616 of checking current state information of each of the accelerators 140.
  • the operation of selecting an accelerator to perform each operation included in the machine learning model (618) is to select the accelerator in the machine learning model by considering the current state of each of the accelerators 140.
  • an operation 710 of calculating the current operation delay time of each of the accelerators 140 for each operation included in the machine learning model by considering the current state of each of the accelerators 140; 810; 910) can calculate the current operation delay time through ⁇ Equation 1> below.
  • L(o) is the current operation delay time of operation (o)
  • S(o) is the operation delay time of operation (o) in the corresponding accelerator retrieved from the latency table
  • U(o) is the current operation delay time of the corresponding accelerator. It is the utilization rate
  • w is the weight
  • a represents the bias value.
  • the current state information of each of the accelerators 140 may include the usage rate of each of the accelerators 140.
  • the current state information of each of the accelerators 140 may include the usage rate of each of the accelerators 140 and the current temperature of each of the accelerators 140.
  • the operation 618 of selecting an accelerator to perform each operation included in the machine learning model determines the current temperature of each of the accelerators 140 for each accelerator 140. If the temperature is above a preset temperature, it can be excluded from the accelerator to perform the operation.
  • the operation 618 of selecting an accelerator to perform each operation included in the machine learning model is performed when the accelerator performs the operation included in the machine learning model with the selected accelerator.
  • the delay time of the machine learning model when performed without converting the accelerator is shorter than the delay time of the machine learning model when performed with the selected accelerator, the delay time of the machine learning model when performed without converting the accelerator is shorter.
  • It may include an operation 818 of selecting the accelerator with the shortest delay time as the accelerator for all operations included in the machine learning model.
  • the operation (814; 916) of estimating the delay time of the machine learning model when performing the operation included in the machine learning model with the selected accelerator is included in the machine learning model.
  • An operation of calculating a second value by multiplying the number of accelerator conversions by a preset conversion time to perform each operation included in the machine learning model with the selected accelerator It may include adding the first value and the second value to estimate a delay time of the machine learning model when an operation included in the machine learning model is performed with a selected accelerator.
  • the accelerator selection method when all operations included in the machine learning model are performed without conversion in each of the accelerators 140.
  • the operation (816; 918) of estimating the delay time of the machine learning model involves calculating the current operation delay time for each of the accelerators 140 when performed with one accelerator for each operation included in the machine learning model. movement; And the delay time of the machine learning model when all operations included in the machine learning model are performed in one accelerator is calculated by adding up the current operation delay time of each operation included in the machine learning model to the accelerators 140. It may include actions to estimate each star.
  • the operation 618 of selecting an accelerator to perform each operation included in the machine learning model involves converting the accelerator when performing the operation included in the machine learning model with the selected accelerator.
  • the operation 618 of selecting an accelerator to perform each operation included in the machine learning model involves converting the accelerator when performing the operation included in the machine learning model with the selected accelerator.
  • An operation to check whether this occurs more than a preset number of times (914); And if the conversion of the accelerator does not occur more than a preset number of times when performing the operation included in the machine learning model with the selected accelerator, determining to perform the operation included in the machine learning model with the selected accelerator for each (922) ) may include.
  • the accelerator selection method is, when the accelerators 140 are in an idle state, a machine learning model for training including all types of operations is performed for each accelerator, and the operation delay time for each accelerator is calculated.
  • an electronic device includes a volatile memory that stores a delay time table; and a processor, wherein the processor, the accelerator selection device, receives the machine learning model, divides it into operation units, and performs operations on each of the accelerators 140 for each operation included in the machine learning model by referring to the delay time table.
  • Check the delay time check the current state information of each of the accelerators 140, and considering the current state of each of the accelerators 140, each of the accelerators 140 for each operation included in the machine learning model.
  • the accelerator with the smallest current operation delay time can be selected for each operation included in the machine learning model.
  • the processor may calculate the current operation delay time through ⁇ Equation 1> below.
  • L(o) is the current operation delay time of operation (o)
  • S(o) is the operation delay time of operation (o) in the corresponding accelerator retrieved from the latency table
  • U(o) is the current operation delay time of the corresponding accelerator. It is the utilization rate
  • w is the weight
  • a represents the bias value.
  • the processor estimates the delay time of the machine learning model when performing the operation included in the machine learning model with the selected accelerator, and executes all operations included in the machine learning model through the accelerators.
  • the delay time of the machine learning model when performed without conversion is estimated, and the delay time of the machine learning model when performed with the selected accelerator is greater than the delay time of the machine learning model when performed without converting the accelerator. If the model has a shorter delay time, the accelerator with the shortest delay time of the machine learning model when performed without converting the accelerator can be selected as the accelerator for all operations included in the machine learning model.
  • the processor calculates the current operation delay time when performed with the selected accelerator for each operation included in the machine learning model, and the current operation delay time for each operation included in the machine learning model.
  • a first value is calculated by adding all of the above, and a second value is calculated by multiplying the number of accelerator conversions by a preset conversion time to perform each operation included in the machine learning model with the selected accelerator, and the first value and the second value can be added to estimate the delay time of the machine learning model when performing an operation included in the machine learning model with the selected accelerator.
  • the processor calculates the current operation delay time when performed with one accelerator for each operation included in the machine learning model for each of the accelerators 140, and includes it in the machine learning model.
  • the delay time of the machine learning model when all operations included in the machine learning model are performed in one accelerator can be estimated for each of the accelerators 140 by adding up the current operation delay time of each operation.
  • the processor when the accelerators 140 are in an idle state, the processor performs a machine learning model for training, including all types of operations, for each accelerator and calculates the operation delay time for each accelerator for each operation. It is possible to calculate and create the delay time table including the operation delay time for each accelerator for each operation.
  • the method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded on a computer-readable medium.
  • the computer-readable medium may store program instructions, data files, data structures, etc., singly or in combination.
  • Program instructions recorded on the medium may be specially designed and configured for the embodiment or may be known and available to those skilled in the art of computer software.
  • Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic media such as floptical disks.
  • program instructions include machine language code, such as that produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter, etc.
  • the hardware devices described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.
  • Software may include a computer program, code, instructions, or a combination of one or more of these, which may configure a processing unit to operate as desired, or may be processed independently or collectively. You can command the device.
  • Software and/or data may be used on any type of machine, component, physical device, virtual equipment, computer storage medium or device to be interpreted by or to provide instructions or data to a processing device. , or may be permanently or temporarily embodied in a transmitted signal wave.
  • Software may be distributed over networked computer systems and stored or executed in a distributed manner.
  • Software and data may be stored on one or more computer-readable recording media.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Neurology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Feedback Control In General (AREA)

Abstract

본 개시는 기계학습 모델에 적합한 가속기를 선택하는 장치 및 방법에 관한 것으로, 오퍼레이션에 따른 가속기들 각각의 유휴 상태에서 측정된 속도와 가속기들 각각의 사용률을 고려해서 기계학습 모델에 포함된 오퍼레이션들 각각을 수행할 가속기를 선택할 수 있다..

Description

기계학습 모델에 적합한 가속기를 선택하는 장치 및 방법
이하의 일 실시 예들은 기계학습(machine learning) 모델에 적절한 가속기를 제공하기 위한 것입니다.
기계학습 모델(machine learning model)의 연산 시 보통 중앙연산처리장치(CPU; Central Processing Unit)를 사용한다. 그러나 카메라와 같이 빠른 응답을 필요로 하는 어플리케이션은 CPU보다 연산 속도가 빠른 가속기 칩셋(chipset)에 연산 요청을 하여 계산하도록 한다.
현재 사용되고 있는 가속기 종류는 중앙연산처리장치(CPU; Central Processing Unit), 그래픽스 처리장치(GPU; Graphics Processing Unit), 신경망 처리장치(NPU; Neural Processing Unit) 및 디지털 신호 처리기(DSP; digital signal processor) 등이 있다.
보통 가속기를 선택하는 것은 어플리케이션 코드를 제작할 당시 프로그래머에 의해 결정되며, 범용적으로 사용할 경우에는 GPU, 자신의 어플리케이션이 사용될 가속기를 특정할 수 있는 경우에는 DSP 나 NPU를 사용하여 연산 속도를 빠르게 하기도 한다.
일반적으로, 프로그래머는 CPU 외의 가속기를 사용시 코드를 제작할 당시 고정(static)되게 결정(GPU, NPU 등)한다.
실행 중(Run time)에 가속기를 결정을 하는 경우에도 가속기의 존재 여부 및 가속기의 기본적인 응답만으로 판단하기 때문에 최적의 가속기를 사용을 고려하지는 못한다.
예를 들어, GPU가 많이 사용되고 있는 상황(game 동작 등)에서 GPU를 사용하는 AI 기능을 사용하게 된다면 AI 기능도 응답이 느릴 것이고, 기존 사용하던 프로그램도 동작이 원활하지 않을 수 있다.
최근 사용성 높은 대화면 기기가 다양하게 등장하며 멀티태스킹 활용에 대한 수요가 커졌고, AR기기와 VR기기가 점차 상용화 됨에 따라 NPU와 GPU의 동시 사용 수요가 크게 늘어났다. 그로 인해 가속기의 부하는 높아졌고, 이러한 상황에서 현재와 같이 고정되게 가속기를 결정한다면 높아진 부하로 인해 전류소모와 성능하락이 동반될 수 있다.
기존 기계학습 모델의 연산에서는 하나의 가속기에서만 연산을 수행하거나, 특정 가속기에서 연산 수행을 하지 못하는 경우에만 다른 가속기로 대체(fallback) 처리를 해서 사용하고 있다. 기계학습 모델 내의 여러 가지 오퍼레이션들은 가속기의 종류에 따라서 속도나 소모전류 등의 특성이 다른데 이 다른 점들을 고려하지 않고 하나의 가속기를 선택하여 연산을 수행해서 기계학습 모델의 연산 수행에 비효율적인 면이 존재한다.
일 실시예에 따르면, 오퍼레이션에 따른 가속기들 각각의 유휴 상태에서 측정된 속도와 가속기들 각각의 사용률을 고려해서 기계학습 모델에 포함된 오퍼레이션들 각각을 수행할 가속기를 선택할 수 있다.
일 실시예에 따른 가속기 선택 방법은, 기계학습 모델을 수신하면 오퍼레이션 단위로 구분하는 동작(512; 612); 지연시간 테이블을 참조해서 상기 기계학습 모델에 포함된 오퍼레이션 별로 가속기들(140) 각각의 오퍼레이션 지연시간을 확인하는 동작(514; 614); 및 상기 기계학습 모델에 포함된 오퍼레이션 별로 상기 가속기들(140) 각각의 오퍼레이션 지연시간을 고려해서 상기 기계학습 모델에 포함된 오퍼레이션 각각을 수행할 가속기를 선택하는 동작(516; 618)을 포함할 수 있다.
일 실시예에 따른 전자 장치(electronic device)에 있어서, 지연시간 테이블을 저장하는 휘발성 메모리(volatile memory); 및 프로세서를 포함하고, 상기 프로세서는, 가속기 선택 장치는, 기계학습 모델을 수신하면 오퍼레이션 단위로 구분하고, 지연시간 테이블을 참조해서 상기 기계학습 모델에 포함된 오퍼레이션 별로 가속기들(140) 각각의 오퍼레이션 지연시간을 확인하고, 상기 가속기들(140) 각각의 현재 상태 정보를 확인하고, 상기 가속기들(140) 각각의 현재 상태를 고려해서 상기 기계학습 모델에 포함된 오퍼레이션 별로 가속기들(140) 각각의 현재 오퍼레이션 지연시간을 계산하고, 상기 가속기들(140) 각각의 현재 상태를 고려해서 상기 기계학습 모델에 포함된 오퍼레이션 별로 상기 현재 오퍼레이션 지연시간이 가장 작은 가속기를 선택할 수 있다.
도 1은 일 실시 예에 따른 가속기 선택 장치의 구성을 도시한 도면이다.
도 2는 일 실시 예에 따른 가속기 선택 장치에서 가속기를 선택하기 위한 메시지의 흐름을 도시한 도면이다.
도 3은 일 실시 예에 따른 가속기 선택 장치의 기계학습 모델 분석부에서 기계학습 모델을 오퍼레이션 단위로 구분한 예를 도시한 도면이다.
도 4는 일 실시 예에 따른 가속기 선택 장치에 의해서 기계학습 모델의 오퍼레이션들에 가속기가 선택된 예를 도시한 도면이다.
도 5는 일 실시 예에 따른 가속기 선택 장치에서 가속기를 선택하는 흐름을 도시한 흐름도이다.
도 6은 일 실시 예에 따른 가속기 선택 장치에서 가속기의 상태를 고려해서 가속기를 선택하는 흐름을 도시한 흐름도이다.
도 7은 일 실시 예에 따른 가속기 선택 장치에서 현재 오퍼레이션 지연시간을 계산하고 오퍼레이션의 가속기를 선택하는 흐름을 도시한 흐름도이다.
도 8은 일 실시 예에 따른 가속기 선택 장치에서 가속기를 변경하지 않는 경우를 고려해서 가속기를 선택하는 흐름을 도시한 흐름도이다.
도 9는 일 실시 예에 따른 가속기 선택 장치에서 가속기를 변경하는 횟수와 가속기를 변경하지 않는 경우를 고려해서 가속기를 선택하는 흐름을 도시한 흐름도이다.
도 10은 일 실시 예에 따른 가속기 선택 장치에서 지연시간 테이블을 생성하는 흐름을 도시한 흐름도이다.
도 11은 일 실시예에 따른 네트워크 환경 내의 전자 장치의 블록도이다.
이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 그러나, 실시예들에는 다양한 변경이 가해질 수 있어서 특허출원의 권리 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 실시예들에 대한 모든 변경, 균등물 내지 대체물이 권리 범위에 포함되는 것으로 이해되어야 한다.
실시예에서 사용한 용어는 단지 설명을 목적으로 사용된 것으로, 한정하려는 의도로 해석되어서는 안 된다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
또한, 실시 예의 구성 요소를 설명하는 데 있어서, 제1, 제2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.
어느 하나의 실시 예에 포함된 구성요소와, 공통적인 기능을 포함하는 구성요소는, 다른 실시 예에서 동일한 명칭을 사용하여 설명하기로 한다. 반대되는 기재가 없는 이상, 어느 하나의 실시 예에 기재한 설명은 다른 실시 예에도 적용될 수 있으며, 중복되는 범위에서 구체적인 설명은 생략하기로 한다.
이하에서는, 본 개시의 일 실시 예에 따른 기계학습 모델에 적합한 가속기를 선택하는 장치 및 방법을 첨부된 도 1 내지 도 11을 참조하여 상세히 설명한다.
도 1은 일 실시 예에 따른 가속기 선택 장치의 구성을 도시한 도면이다.
도 1을 참조하면, 가속기 선택 장치(110)는 지연시간 테이블 생성부(111), 기계학습 모델 분석부(112), 오퍼레이션 확인부(113), 가속기 상태 확인부(114) 및 가속기 선택부(115)를 포함하여 구성될 수 있다.
일 실시 예에 따르면, 가속기 선택 장치(110)는 중앙연산처리장치(CPU; Central Processing Unit)(141)에 포함되어 구성될 수도 있다.
일 실시 예에 따르면, 지연시간 테이블 생성부(111)는 가속기들(140)이 유휴 상태일 때, 모든 종류의 오퍼레이션을 포함하는 훈련용 기계학습 모델을 모든 가속기들(140) 별로 수행하여 오퍼레이션 각각에 대한 가속기 별 오퍼레이션 지연시간을 계산할 수 있다. 가속기들(140)은 중앙연산처리장치(CPU; Central Processing Unit)(141), 그래픽스 처리장치(GPU; Graphics Processing Unit)(142), 신경망 처리장치(NPU; Neural Processing Unit)(143) 및 디지털 신호 처리기(DSP; digital signal processor) 중에서 적어도 하나를 포함할 수 있다.
일 실시 예에 따르면, 지연시간 테이블은 아래 <표 1>의 예와 같이 구성될 수 있다.
오퍼레이션 1 오퍼레이션 2 오퍼레이션 N
CPU 100 20 20
GPU 50 30 20
NPU 10 N/A 100
일 실시 예에 따르면, 지연시간 테이블 생성부(111)는 오퍼레이션 각각에 대한 가속기 별 오퍼레이션 지연시간을 포함하는 지연시간 테이블을 생성하고, 생성된 지연시간 테이블을 저장부(130)에 저장할 수 있다.
일 실시 예에 따르면, 기계학습 모델 분석부(112)는 어플리케이션(102)로부터 기계학습 모델을 수신하면 오퍼레이션 단위로 구분할 수 있다.
도 3은 일 실시 예에 따른 가속기 선택 장치의 기계학습 모델 분석부에서 기계학습 모델을 오퍼레이션 단위로 구분한 예를 도시한 도면이다.
도 3을 참조하면, 기계학습 모델 분석부(112)는 기계학습 모델(machine learning model)(310)을 복수의 오퍼레이션(320)으로 구분할 수 있다. 이때, 오퍼레이션은 기계학습 모델을 구성하는 기능의 단위를 나타낼 수 있다.
다시 도 1의 설명으로 돌아와서, 오퍼레이션 확인부(113)는 지연시간 테이블을 참조해서 기계학습 모델에 포함된 오퍼레이션 별로 가속기들(140) 각각의 오퍼레이션 지연시간을 확인할 수 있다.
일 실시 예에 따르면, 가속기 상태 확인부(114)는 가속기들(140) 각각의 현재 상태 정보를 확인할 수 있다. 가속기들(140) 각각의 현재 상태 정보는 가속기들(140) 각각의 사용률을 포함할 수 있다. 일 실시예에 따르면, 가속기들(140) 각각의 현재 상태 정보는 가속기들(140) 각각의 현재 온도를 추가로 더 포함할 수 있다.
일 실시 예에 따르면, 가속기 선택부(115)는 가속기들(140) 각각의 현재 상태를 고려해서 기계학습 모델에 포함된 오퍼레이션 별로 가속기들(140) 각각의 현재 오퍼레이션 지연시간을 계산하고, 가속기들(140) 각각의 현재 상태를 고려해서 기계학습 모델에 포함된 오퍼레이션 별로 현재 오퍼레이션 지연시간이 가장 작은 가속기를 선택할 수 있다.
일 실시 예에 따르면, 가속기 선택부(115)는 아래 <수학식 1>을 통해서 현재 오퍼레이션 지연시간을 계산할 수 있다.
[수학식 1]
L(o) = S(o)U(o)w + a
여기서, L(o)는 오퍼레이션(o)의 현재 오퍼레이션 지연시간이고, S(o)는 지연시간 테이블에서 검색된 해당 가속기에서 오퍼레이션(o)의 오퍼레이션 지연시간이고, U(o)는 해당 가속기의 현재 사용률이고, w는 가중치이고, a는 바이어스 값을 나타낸다.
일 실시 예에 따르면, 가속기 선택부(115)는 아래 <수학식 2>를 통해서 기계학습 모델에 포함된 오퍼레이션 별로 현재 오퍼레이션 지연시간이 가장 작은 가속기를 선택할 수 있다.
[수학식 2]
min(LC(o), LG(o), LN(o))
여기서, LC(o)는 가속기가 중앙연산처리장치(C)인 경우 오퍼레이션(o)의 현재 오퍼레이션 지연시간이고, LG(o)는 가속기가 그래픽스 처리장치(G)인 경우 오퍼레이션(o)의 현재 오퍼레이션 지연시간이고, LN(o)는 가속기가 신경망 처리장치(N)인 경우 오퍼레이션(o)의 현재 오퍼레이션 지연시간이다.
도 4는 일 실시 예에 따른 가속기 선택 장치에 의해서 기계학습 모델의 오퍼레이션들에 가속기가 선택된 예를 도시한 도면이다.
도 4를 참조하면, 가속기들(140)의 상태에 따라서, 기계학습 모델의 오퍼레이션들은 다양한 가속기들의 조합에 의해서 동작될 수 있음을 확인할 수 있다.
NPU에 의해서 기계학습 모델의 모든 오퍼레이션이 수행되는 경우(410)는 기존의 방식으로 하나의 가속기에서 기계학습 모델의 모든 오퍼레이션을 수행하는 방식이다. 410에서 가속기 선택 장치(110)는 기계학습 모델의 오퍼레이션 각각에 대한 가속기를 선택한 결과, 가속기의 변환이 빈번하여, 가속기 변환의 오버헤드가 지나치게 높아지면, 가속기를 변환하지 않고, 기존의 방식으로 하나의 가속에서 모든 기계학습 모델의 모든 오퍼레이션을 수행할 수 있다.
CPU와 NPU에 의해서 기계학습 모델의 모든 오퍼레이션이 수행되는 경우(420, 440)는 두개의 가속기를 사용하여 가속기를 변환하면서 기계학습 모델의 오퍼레이션을 수행하는 방식일 수 있다.
420에서 가속기 선택 장치(110)는 보통 CPU가 NPU 보다 수행속도가 빠른 오퍼레이션들은 argmax, softmax, nms 로 이 오퍼레이션들을 NPU 보다 CPU에서 수행하게 한다면 전체적인 연산 속도가 빠르게 할 수 있다.
440에서 가속기 선택 장치(110)는 NPU의 사용률이 높은 경우 계산할 때 많은 비트를 요구하는 mean의 오퍼레이션을 추가로 CPU에서 수행하도록 할 수 있다.
CPU와 GPU에 의해서 기계학습 모델의 모든 오퍼레이션이 수행되는 경우(430)는 NPU의 사용률이 높아 NPU에서 해당 동작을 수행할 수 없으면, CPU와 GPU의 가속기를 사용하여 가속기를 변환하면서 기계학습 모델의 오퍼레이션을 수행하는 방식일 수 있다.
다시 도 1의 설명으로 돌아와서, 가속기 선택부(115)는 기계학습 모델에 포함된 오퍼레이션을 선택된 가속기로 수행할 때의 기계학습 모델의 지연시간을 추정할 수 있다. 보다 구체적으로 설명하면, 가속기 선택부(115)는 기계학습 모델에 포함된 오퍼레이션 각각에 대해서 선택된 가속기로 수행할 때의 현재 오퍼레이션 지연시간을 계산할 수 있다. 그리고, 가속기 선택부(115)는 기계학습 모델에 포함된 오퍼레이션 각각의 현재 오퍼레이션 지연시간을 모두 합하여 제1 값을 계산할 수 있다. 그리고, 가속기 선택부(115)는 기계학습 모델에 포함된 오퍼레이션 각각에 대해서 선택된 가속기로 수행하기 위해서 가속기를 변환한 횟수에 기설정된 변환시간을 곱하여 제2 값을 계산할 수 있다. 그리고, 가속기 선택부(115)는 제1 값과 제2 값을 더하여 기계학습 모델에 포함된 오퍼레이션을 선택된 가속기로 수행할 때의 기계학습 모델의 지연시간을 추정할 수 있다. 이때, 기설정된 변환시간은 사전에 실험에 의해서 확인한 변환시간일 수 있다.
일 실시 예에 따르면, 가속기 선택부(115)는 기계학습 모델에 포함된 모든 오퍼레이션을 가속기들(140) 각각에서 변환하지 않고 수행할 때의 기계학습 모델의 지연시간을 추정할 수 있다. 보다 구체적으로 설명하면, 가속기 선택부(115)는 기계학습 모델에 포함된 오퍼레이션 각각에 대해서 하나의 가속기로 수행할 때의 현재 오퍼레이션 지연시간을 가속기들(140) 별로 계산할 수 있다. 그리고, 가속기 선택부(115)는 기계학습 모델에 포함된 오퍼레이션 각각의 현재 오퍼레이션 지연시간을 모두 합하여 기계학습 모델에 포함된 모든 오퍼레이션을 하나의 가속기에서 수행할 때의 기계학습 모델의 지연시간을 가속기들(140) 별로 추정할 수 있다.
일 실시 예에 따르면, 가속기 선택부(115)는 선택된 가속기로 수행할 때의 기계학습 모델의 지연시간 보다 가속기를 변환하지 않고 수행할 때의 기계학습 모델의 지연시간이 더 짧지 않으면, 기계학습 모델에 포함된 오퍼레이션 별로 현재 오퍼레이션 지연시간이 가장 작은 가속기를 선택할 수 있다.
일 실시 예에 따르면, 가속기 선택부(115)는 선택된 가속기로 수행할 때의 기계학습 모델의 지연시간 보다 가속기를 변환하지 않고 수행할 때의 기계학습 모델의 지연시간이 더 짧으면, 가속기를 변환하지 않고 수행할 때의 기계학습 모델의 지연시간이 가장 짧은 가속기를 기계학습 모델에 포함된 모든 오퍼레이션의 가속기로 선택할 수 있다.
일 실시 예에 따르면, 가속기 선택부(115)는 기계학습 모델에 포함된 오퍼레이션을 선택된 가속기로 수행할 때 가속기의 변환이 기설정된 횟수 이상 발생하는지 확인할 수 있다. 그리고, 가속기 선택부(115)는 기계학습 모델에 포함된 오퍼레이션을 선택된 가속기로 수행할 때 가속기의 변환이 기설정된 횟수 이상 발생하면, 기계학습 모델에 포함된 오퍼레이션을 선택된 가속기로 수행할 때의 기계학습 모델의 지연시간을 추정할 수 있다. 그리고, 가속기 선택부(115)는 기계학습 모델에 포함된 모든 오퍼레이션을 가속기들(140) 각각에서 변환하지 않고 수행할 때의 기계학습 모델의 지연시간을 추정할 수 있다. 그리고, 가속기 선택부(115)는 선택된 가속기로 수행할 때의 기계학습 모델의 지연시간 보다 가속기를 변환하지 않고 수행할 때의 기계학습 모델의 지연시간이 더 짧으면, 가속기를 변환하지 않고 수행할 때의 기계학습 모델의 지연시간이 가장 짧은 가속기를 기계학습 모델에 포함된 모든 오퍼레이션의 가속기로 선택할 수 있다. 이때, 가속기 선택부(115)는 기계학습 모델에 포함된 오퍼레이션을 선택된 가속기로 수행할 때 가속기의 변환이 기설정된 횟수 이상 발생하지 않으면, 기계학습 모델에 포함된 오퍼레이션을 각각에 대해 선택된 가속기로 수행하도록 결정할 수 있다.
일 실시 예에 따르면, 가속기 선택부(115)는 가속기들(140) 각각의 현재 온도가 가속기들(140) 별로 기설정된 온도 이상이면, 오퍼레이션을 수행할 가속기에서 배제할 수 있다.
일 실시 예에 따르면, 가속기 선택부(115)는 기계학습 모델에 포함된 오퍼레이션 각각에 대한 가속기의 최종 선택 결과를 기계학습 모델 분석부(112)로 송신할 수 있다.
일 실시 예에 따르면, 기계학습 모델 분석부(112)는 가속기 선택부(115)로부터 기계학습 모델에 포함된 오퍼레이션 각각에 대한 가속기의 선택 결과를 수신하면, 기계학습 모델에 포함된 오퍼레이션을 각각에 대해 선택된 가속기로 수행을 요청할 수 있다.
일 실시 예에 따르면, 지연시간 테이블 생성부(111) 및 가속기 상태 확인부(114)는 하드웨어 추상화 계층(HAL; hardware abstraction layer)(120)을 통해서 가속기들(140)과 통신을 수행할 수 있다.
도 2는 일 실시 예에 따른 가속기 선택 장치에서 가속기를 선택하기 위한 메시지의 흐름을 도시한 도면이다.
도 2를 참조하면, 기계학습 모델 분석부(112)는 어플리케이션(102)로부터 기계학습 모델을 수신하면(210), 오퍼레이션 단위로 구분하고, 오퍼레이션 정보를 가속기 선택부(115)로 제공할 수 있다(212).
일 실시 예에 따르면, 가속기 선택부(115)는 기계학습 모델의 오퍼레이션 정보를 수신하면, 오퍼레이션 확인부(113)로 오퍼레이션 이름을 송신하고(214), 오퍼레이션 확인부(113)로부터 오퍼레이션 각각의 오퍼레이션 지연시간을 수신할 수 있다(216).
일 실시 예에 따르면, 가속기 선택부(115)는 가속기 상태 확인부(114)로 가속기들(140)의 상태를 요청하고(218), 가속기 상태 확인부(114)로부터 가속기들(140)의 상태에 관한 정보를 수신할 수 있다(220).
일 실시 예에 따르면, 가속기 선택부(115)는 오퍼레이션 확인부(113)로부터 오퍼레이션 각각의 오퍼레이션 지연시간과
가속기 상태 확인부(114)로부터 수신한 가속기들(140)의 상태에 관한 정보를 고려해서 기계학습 모델의 오퍼레이션 각각에 대응하는 가속기를 선택하고, 선택된 결과를 기계학습 모델 분석부(112)로 송신할 수 있다(222).
일 실시 예에 따르면,기계학습 모델 분석부(112)는 가속기 선택부(115)로부터 수신된 선택된 결과를 이용해서 파티션 테이블을 생성할 수 있다(224). 이때, 파티션 테이블은 기계학습 모델을 구성하는 오퍼레이션들과 오퍼레이션들 각각에 대응하는 가속기의 정보를 포함하여 구성될 수 있다.
일 실시 예에 따르면,기계학습 모델 분석부(112)는 파티션 테이블에 따라 기계학습 모델의 오퍼레이션을 각각에 대응하는 가속기로 수행을 요청할 수 있다(226).
이하, 상기와 같이 구성된 본 개시에 따른 방법을 아래에서 도면을 참조하여 설명한다.
도 5는 일 실시 예에 따른 가속기 선택 장치에서 가속기를 선택하는 흐름을 도시한 흐름도이다.
도 5를 참조하면, 가속기 선택 장치(110)는 기계학습 모델을 수신하면 오퍼레이션 단위로 구분할 수 있다(512).
일 실시예에 따르면, 가속기 선택 장치(110)는 지연시간 테이블을 참조해서 기계학습 모델에 포함된 오퍼레이션 별로 가속기들(140) 각각의 오퍼레이션 지연시간을 확인할 수 있다(514).
일 실시예에 따르면, 가속기 선택 장치(110)는 기계학습 모델에 포함된 오퍼레이션 별로 가속기들(140) 각각의 오퍼레이션 지연시간을 고려해서 기계학습 모델에 포함된 오퍼레이션 각각을 수행할 가속기를 선택할 수 있다(516).
일 실시예에 따르면, 가속기 선택 장치(110)는 기계학습 모델에 포함된 오퍼레이션을 각각에 대해 선택된 가속기로 수행을 요청할 수 있다(518)
도 6은 일 실시 예에 따른 가속기 선택 장치에서 가속기의 상태를 고려해서 가속기를 선택하는 흐름을 도시한 흐름도이다.
도 6을 참조하면, 가속기 선택 장치(110)는 기계학습 모델을 수신하면 오퍼레이션 단위로 구분할 수 있다(612).
일 실시예에 따르면, 가속기 선택 장치(110)는 지연시간 테이블을 참조해서 기계학습 모델에 포함된 오퍼레이션 별로 가속기들(140) 각각의 오퍼레이션 지연시간을 확인할 수 있다(614).
일 실시예에 따르면, 가속기 선택 장치(110)는 가속기들(140) 각각의 현재 상태 정보를 확인할 수 있다(616). 이때, 가속기들(140) 각각의 현재 상태 정보는 가속기들(140) 각각의 사용률을 포함할 수 있다. 일 실시예에 따르면, 가속기들(140) 각각의 현재 상태 정보는 가속기들(140) 각각의 현재 온도를 추가로 더 포함할 수 있다.
일 실시예에 따르면, 가속기 선택 장치(110)는 가속기들(140) 각각의 현재 상태를 고려해서 기계학습 모델에 포함된 오퍼레이션 각각을 수행할 가속기를 선택할 수 있다(618).
일 실시예에 따르면, 618동작에서 가속기 선택 장치(110)는 가속기들(140) 각각의 현재 온도가 가속기들(140) 별로 기설정된 온도 이상이면, 오퍼레이션을 수행할 가속기에서 배제할 수 있다.
일 실시예에 따르면, 가속기 선택 장치(110)는 기계학습 모델에 포함된 오퍼레이션을 각각에 대해 선택된 가속기로 수행을 요청할 수 있다(620).
도 7은 일 실시 예에 따른 가속기 선택 장치에서 현재 오퍼레이션 지연시간을 계산하고 오퍼레이션의 가속기를 선택하는 흐름을 도시한 흐름도이다.
도 7을 참조하면, 가속기 선택 장치(110)는 가속기들(140) 각각의 현재 상태를 고려해서 기계학습 모델에 포함된 오퍼레이션 별로 가속기들(140) 각각의 현재 오퍼레이션 지연시간을 계산할 수 있다(710). 이때, 가속기 선택 장치(110)는 아래 <수학식 1>을 통해서 현재 오퍼레이션 지연시간을 계산할 수 있다.
[수학식 1]
L(o) = S(o)U(o)w + a
여기서, L(o)는 오퍼레이션(o)의 현재 오퍼레이션 지연시간이고, S(o)는 지연시간 테이블에서 검색된 해당 가속기에서 오퍼레이션(o)의 오퍼레이션 지연시간이고, U(o)는 해당 가속기의 현재 사용률이고, w는 가중치이고, a는 바이어스 값을 나타낸다.
일 실시예에 따르면, 가속기 선택 장치(110)는 가속기들(140) 각각의 현재 상태를 고려해서 기계학습 모델에 포함된 오퍼레이션 별로 현재 오퍼레이션 지연시간이 가장 작은 가속기를 선택할 수 있다(712).
이때, 가속기 선택 장치(110)는 아래 <수학식 2>을 통해서 기계학습 모델에 포함된 오퍼레이션 별로 현재 오퍼레이션 지연시간이 가장 작은 가속기를 선택할 수 있다.
[수학식 2]
min(LC(o), LG(o), LN(o))
여기서, LC(o)는 가속기가 중앙연산처리장치(C)인 경우 오퍼레이션(o)의 현재 오퍼레이션 지연시간이고, LG(o)는 가속기가 그래픽스 처리장치(G)인 경우 오퍼레이션(o)의 현재 오퍼레이션 지연시간이고, LN(o)는 가속기가 신경망 처리장치(N)인 경우 오퍼레이션(o)의 현재 오퍼레이션 지연시간이다.
도 8은 일 실시 예에 따른 가속기 선택 장치에서 가속기를 변경하지 않는 경우를 고려해서 가속기를 선택하는 흐름을 도시한 흐름도이다.
도 8을 참조하면, 가속기 선택 장치(110)는 가속기들(140) 각각의 현재 상태를 고려해서 기계학습 모델에 포함된 오퍼레이션 별로 가속기들(140) 각각의 현재 오퍼레이션 지연시간을 계산할 수 있다(810).
일 실시예에 따르면, 가속기 선택 장치(110)는 가속기들(140) 각각의 현재 상태를 고려해서 기계학습 모델에 포함된 오퍼레이션 별로 현재 오퍼레이션 지연시간이 가장 작은 가속기를 선택할 수 있다(812).
일 실시예에 따르면, 가속기 선택 장치(110)는 기계학습 모델에 포함된 오퍼레이션을 선택된 가속기로 수행할 때의 기계학습 모델의 지연시간을 추정할 수 있다(814). 814동작을 보다 구체적으로 설명하면, 가속기 선택 장치(110)는 기계학습 모델에 포함된 오퍼레이션 각각에 대해서 선택된 가속기로 수행할 때의 현재 오퍼레이션 지연시간을 계산할 수 있다. 그리고, 가속기 선택 장치(110)는 기계학습 모델에 포함된 오퍼레이션 각각의 현재 오퍼레이션 지연시간을 모두 합하여 제1 값을 계산할 수 있다. 그리고, 가속기 선택 장치(110)는 기계학습 모델에 포함된 오퍼레이션 각각에 대해서 선택된 가속기로 수행하기 위해서 가속기를 변환한 횟수에 기설정된 변환시간을 곱하여 제2 값을 계산할 수 있다. 그리고, 가속기 선택 장치(110)는 제1 값과 제2 값을 더하여 기계학습 모델에 포함된 오퍼레이션을 선택된 가속기로 수행할 때의 기계학습 모델의 지연시간을 추정할 수 있다.
일 실시예에 따르면, 가속기 선택 장치(110)는 기계학습 모델에 포함된 모든 오퍼레이션을 가속기들(140) 각각에서 변환하지 않고 수행할 때의 기계학습 모델의 지연시간을 추정할 수 있다(816). 816동작을 보다 구체적으로 설명하면, 가속기 선택 장치(110)는 그리고, 가속기 선택 장치(110)는 기계학습 모델에 포함된 오퍼레이션 각각에 대해서 하나의 가속기로 수행할 때의 현재 오퍼레이션 지연시간을 가속기들(140) 별로 계산할 수 있다. 그리고, 가속기 선택 장치(110)는 기계학습 모델에 포함된 오퍼레이션 각각의 현재 오퍼레이션 지연시간을 모두 합하여 기계학습 모델에 포함된 모든 오퍼레이션을 하나의 가속기에서 수행할 때의 기계학습 모델의 지연시간을 가속기들(140) 별로 추정할 수 있다.
일 실시예에 따르면, 가속기 선택 장치(110)는 814동작과 816동작에서 추정한 기계학습 모델의 지연시간들 중에서 가장 짧은 방안을 선택한다(818). 즉, 가속기 선택 장치(110)는 선택된 가속기로 수행할 때의 기계학습 모델의 지연시간 보다 가속기를 변환하지 않고 수행할 때의 기계학습 모델의 지연시간이 더 짧으면, 가속기를 변환하지 않고 수행할 때의 기계학습 모델의 지연시간이 가장 짧은 가속기를 기계학습 모델에 포함된 모든 오퍼레이션의 가속기로 선택할 수 있다.
도 9는 일 실시 예에 따른 가속기 선택 장치에서 가속기를 변경하는 횟수와 가속기를 변경하지 않는 경우를 고려해서 가속기를 선택하는 흐름을 도시한 흐름도이다.
도 9를 참조하면, 가속기 선택 장치(110)는 가속기들(140) 각각의 현재 상태를 고려해서 기계학습 모델에 포함된 오퍼레이션 별로 가속기들(140) 각각의 현재 오퍼레이션 지연시간을 계산할 수 있다(910).
일 실시예에 따르면, 가속기 선택 장치(110)는 가속기들(140) 각각의 현재 상태를 고려해서 기계학습 모델에 포함된 오퍼레이션 별로 현재 오퍼레이션 지연시간이 가장 작은 가속기를 선택할 수 있다(912).
일 실시예에 따르면, 가속기 선택 장치(110)는 기계학습 모델에 포함된 오퍼레이션을 선택된 가속기로 수행할 때 가속기의 변환이 기설정된 횟수 이상 발생하는지 확인할 수 있다(914).
914동작의 확인결과 가속기의 변환이 기설정된 횟수 이상 발생하면, 가속기 선택 장치(110)는 기계학습 모델에 포함된 오퍼레이션을 선택된 가속기로 수행할 때의 기계학습 모델의 지연시간을 추정할 수 있다(916). 916동작을 보다 구체적으로 설명하면, 가속기 선택 장치(110)는 기계학습 모델에 포함된 오퍼레이션 각각에 대해서 선택된 가속기로 수행할 때의 현재 오퍼레이션 지연시간을 계산할 수 있다. 그리고, 가속기 선택 장치(110)는 기계학습 모델에 포함된 오퍼레이션 각각의 현재 오퍼레이션 지연시간을 모두 합하여 제1 값을 계산할 수 있다. 그리고, 가속기 선택 장치(110)는 기계학습 모델에 포함된 오퍼레이션 각각에 대해서 선택된 가속기로 수행하기 위해서 가속기를 변환한 횟수에 기설정된 변환시간을 곱하여 제2 값을 계산할 수 있다. 그리고, 가속기 선택 장치(110)는 제1 값과 제2 값을 더하여 기계학습 모델에 포함된 오퍼레이션을 선택된 가속기로 수행할 때의 기계학습 모델의 지연시간을 추정할 수 있다.
일 실시예에 따르면, 가속기 선택 장치(110)는 기계학습 모델에 포함된 모든 오퍼레이션을 가속기들(140) 각각에서 변환하지 않고 수행할 때의 기계학습 모델의 지연시간을 추정할 수 있다(918). 918동작을 보다 구체적으로 설명하면, 가속기 선택 장치(110)는 그리고, 가속기 선택 장치(110)는 기계학습 모델에 포함된 오퍼레이션 각각에 대해서 하나의 가속기로 수행할 때의 현재 오퍼레이션 지연시간을 가속기들(140) 별로 계산할 수 있다. 그리고, 가속기 선택 장치(110)는 기계학습 모델에 포함된 오퍼레이션 각각의 현재 오퍼레이션 지연시간을 모두 합하여 기계학습 모델에 포함된 모든 오퍼레이션을 하나의 가속기에서 수행할 때의 기계학습 모델의 지연시간을 가속기들(140) 별로 추정할 수 있다.
일 실시예에 따르면, 가속기 선택 장치(110)는 916동작과 918동작에서 추정한 기계학습 모델의 지연시간들 중에서 가장 짧은 방안을 선택한다(920). 즉, 가속기 선택 장치(110)는 선택된 가속기로 수행할 때의 기계학습 모델의 지연시간 보다 가속기를 변환하지 않고 수행할 때의 기계학습 모델의 지연시간이 더 짧으면, 가속기를 변환하지 않고 수행할 때의 기계학습 모델의 지연시간이 가장 짧은 가속기를 기계학습 모델에 포함된 모든 오퍼레이션의 가속기로 선택할 수 있다.
914동작의 확인결과 가속기의 변환이 기설정된 횟수 이상 발생하지 않으면, 가속기 선택 장치(110)는 기계학습 모델에 포함된 오퍼레이션을 각각에 대해 선택된 가속기로 수행하도록 결정할 수 있다(922).
도 10은 일 실시 예에 따른 가속기 선택 장치에서 지연시간 테이블을 생성하는 흐름을 도시한 흐름도이다.
도 10을 참조하면, 가속기 선택 장치(110)는 부팅 또는 유휴 상태인지 여부를 확인할 수 있다(1010).
1010동작의 확인결과 가속기 선택 장치(110)가 부팅을 해서 가속기들(140)이 유휴 상태이거나, 또는 가속기들(140)에서 수행하는 명령이 없어서 유휴 상태이면 가속기 선택 장치(110)는 지연시간 테이블이 존재하는지 여부를 확인할 수 있다(1012).
1012동작의 확인결과 지연시간 테이블이 존재하지 않으면, 가속기 선택 장치(110)는 모든 종류의 오퍼레이션을 포함하는 훈련용 기계학습 모델을 모든 가속기 별로 수행하여 오퍼레이션 각각에 대한 가속기 별 오퍼레이션 지연시간을 계산할 수 있다(1014).
일 실시예에 따르면, 가속기 선택 장치(110)는 오퍼레이션 각각에 대한 가속기 별 오퍼레이션 지연시간을 포함하는 지연시간 테이블을 생성할 수 있다(1016).
도 10의 지연시간 테이블을 생성하는 동작은 한 번만 수행하면 되기 때문에 가속기 선택 장치(110)가 최초 부팅할 때 한 번만 수행할 수도 있다.
도 11은 일 실시예에 따른 네트워크 환경 내의 전자 장치의 블록도이다.
도 11을 참조하면, 네트워크 환경(1100)에서 전자 장치(1101)를 통하여 전자 장치(1102)와 통신하거나, 또는 제2 네트워크(1199)(예: 원거리 무선 통신 네트워크)를 통하여 전자 장치(1104) 또는 서버(1108) 중 적어도 하나와 통신할 수 있다. 일실시예에 따르면, 전자 장치(1101)는 서버(1108)를 통하여 전자 장치(1104)와 통신할 수 있다. 일실시예에 따르면, 전자 장치(1101)는 프로세서(1120), 메모리(1130), 입력 모듈(1150), 음향 출력 모듈(1155), 디스플레이 모듈(1160), 오디오 모듈(1170), 센서 모듈(1176), 인터페이스(1177), 연결 단자(1178), 햅틱 모듈(1179), 카메라 모듈(1180), 전력 관리 모듈(1188), 배터리(1189), 통신 모듈(1190), 가입자 식별 모듈(1196), 또는 안테나 모듈(1197)을 포함할 수 있다. 어떤 실시예에서는, 전자 장치(1101)에는, 이 구성요소들 중 적어도 하나(예: 연결 단자(1178))가 생략되거나, 하나 이상의 다른 구성요소가 추가될 수 있다. 어떤 실시예에서는, 이 구성요소들 중 일부들(예: 센서 모듈(1176), 카메라 모듈(1180), 또는 안테나 모듈(1197))은 하나의 구성요소(예: 디스플레이 모듈(1160))로 통합될 수 있다.
프로세서(1120)는, 예를 들면, 소프트웨어(예: 프로그램(1140))를 실행하여 프로세서(1120)에 연결된 전자 장치(1101)의 적어도 하나의 다른 구성요소(예: 하드웨어 또는 소프트웨어 구성요소)를 제어할 수 있고, 다양한 데이터 처리 또는 연산을 수행할 수 있다. 일실시예에 따르면, 데이터 처리 또는 연산의 적어도 일부로서, 프로세서(1120)는 다른 구성요소(예: 센서 모듈(1176) 또는 통신 모듈(1190))로부터 수신된 명령 또는 데이터를 휘발성 메모리(1132)에 저장하고, 휘발성 메모리(1132)에 저장된 명령 또는 데이터를 처리하고, 결과 데이터를 비휘발성 메모리(1134)에 저장할 수 있다. 일실시예에 따르면, 프로세서(1120)는 메인 프로세서(1121)(예: 중앙 처리 장치 또는 어플리케이션 프로세서) 또는 이와는 독립적으로 또는 함께 운영 가능한 보조 프로세서(1123)(예: 그래픽 처리 장치, 신경망 처리 장치(NPU: neural processing unit), 이미지 시그널 프로세서, 센서 허브 프로세서, 또는 커뮤니케이션 프로세서)를 포함할 수 있다. 예를 들어, 전자 장치(1101)가 메인 프로세서(1121) 및 보조 프로세서(1123)를 포함하는 경우, 보조 프로세서(1123)는 메인 프로세서(1121)보다 저전력을 사용하거나, 지정된 기능에 특화되도록 설정될 수 있다. 보조 프로세서(1123)는 메인 프로세서(1121)와 별개로, 또는 그 일부로서 구현될 수 있다.
보조 프로세서(1123)는, 예를 들면, 메인 프로세서(1121)가 인액티브(예: 슬립) 상태에 있는 동안 메인 프로세서(1121)를 대신하여, 또는 메인 프로세서(1121)가 액티브(예: 어플리케이션 실행) 상태에 있는 동안 메인 프로세서(1121)와 함께, 전자 장치(1101)의 구성요소들 중 적어도 하나의 구성요소(예: 디스플레이 모듈(1160), 센서 모듈(1176), 또는 통신 모듈(1190))와 관련된 기능 또는 상태들의 적어도 일부를 제어할 수 있다. 일실시예에 따르면, 보조 프로세서(1123)(예: 이미지 시그널 프로세서 또는 커뮤니케이션 프로세서)는 기능적으로 관련 있는 다른 구성요소(예: 카메라 모듈(1180) 또는 통신 모듈(1190))의 일부로서 구현될 수 있다. 일실시예에 따르면, 보조 프로세서(1123)(예: 신경망 처리 장치)는 인공지능 모델의 처리에 특화된 하드웨어 구조를 포함할 수 있다. 인공지능 모델은 기계 학습을 통해 생성될 수 있다. 이러한 학습은, 예를 들어, 인공지능 모델이 수행되는 전자 장치(1101) 자체에서 수행될 수 있고, 별도의 서버(예: 서버(1108))를 통해 수행될 수도 있다. 학습 알고리즘은, 예를 들어, 지도형 학습(supervised learning), 비지도형 학습(unsupervised learning), 준지도형 학습(semi-supervised learning) 또는 강화 학습(reinforcement learning)을 포함할 수 있으나, 전술한 예에 한정되지 않는다. 인공지능 모델은, 복수의 인공 신경망 레이어들을 포함할 수 있다. 인공 신경망은 심층 신경망(DNN: deep neural network), CNN(convolutional neural network), RNN(recurrent neural network), RBM(restricted boltzmann machine), DBN(deep belief network), BRDNN(bidirectional recurrent deep neural network), 심층 Q-네트워크(deep Q-networks) 또는 상기 중 둘 이상의 조합 중 하나일 수 있으나, 전술한 예에 한정되지 않는다. 인공지능 모델은 하드웨어 구조 이외에, 추가적으로 또는 대체적으로, 소프트웨어 구조를 포함할 수 있다.
프로세서(1120), 메인 프로세서(1121) 또는 보조 프로세서(1123) 중에서 적어도 하나 또는 조합은 도 1의 가속기 선택 장치(110), HAL(120), 및 가속기들(140)의 동작을 수행할 수 있다.
메모리(1130)는, 전자 장치(1101)의 적어도 하나의 구성요소(예: 프로세서(1120) 또는 센서 모듈(1176))에 의해 사용되는 다양한 데이터를 저장할 수 있다. 데이터는, 예를 들어, 소프트웨어(예: 프로그램(1140)) 및, 이와 관련된 명령에 대한 입력 데이터 또는 출력 데이터를 포함할 수 있다. 메모리(1130)는, 휘발성 메모리(1132) 또는 비휘발성 메모리(1134)를 포함할 수 있다. 메모리(1130)는 도 1의 저장부(130)의 동작을 수행하여 지연시간 테이블을 저장할 수 있다.
프로그램(1140)은 메모리(1130)에 소프트웨어로서 저장될 수 있으며, 예를 들면, 운영 체제(1142), 미들 웨어(1144) 또는 어플리케이션(1146)을 포함할 수 있다.
입력 모듈(1150)은, 전자 장치(1101)의 구성요소(예: 프로세서(1120))에 사용될 명령 또는 데이터를 전자 장치(1101)의 외부(예: 사용자)로부터 수신할 수 있다. 입력 모듈(1150)은, 예를 들면, 마이크, 마우스, 키보드, 키(예: 버튼), 또는 디지털 펜(예: 스타일러스 펜)을 포함할 수 있다.
음향 출력 모듈(1155)은 음향 신호를 전자 장치(1101)의 외부로 출력할 수 있다. 음향 출력 모듈(1155)은, 예를 들면, 스피커 또는 리시버를 포함할 수 있다. 스피커는 멀티미디어 재생 또는 녹음 재생과 같이 일반적인 용도로 사용될 수 있다. 리시버는 착신 전화를 수신하기 위해 사용될 수 있다. 일실시예에 따르면, 리시버는 스피커와 별개로, 또는 그 일부로서 구현될 수 있다.
디스플레이 모듈(1160)은 전자 장치(1101)의 외부(예: 사용자)로 정보를 시각적으로 제공할 수 있다. 디스플레이 모듈(1160)은, 예를 들면, 디스플레이, 홀로그램 장치, 또는 프로젝터 및 해당 장치를 제어하기 위한 제어 회로를 포함할 수 있다. 일실시예에 따르면, 디스플레이 모듈(1160)은 터치를 감지하도록 설정된 터치 센서, 또는 상기 터치에 의해 발생되는 힘의 세기를 측정하도록 설정된 압력 센서를 포함할 수 있다.
오디오 모듈(1170)은 소리를 전기 신호로 변환시키거나, 반대로 전기 신호를 소리로 변환시킬 수 있다. 일실시예에 따르면, 오디오 모듈(1170)은, 입력 모듈(1150)을 통해 소리를 획득하거나, 음향 출력 모듈(1155), 또는 전자 장치(1101)와 직접 또는 무선으로 연결된 외부 전자 장치(예: 전자 장치(1102))(예: 스피커 또는 헤드폰)를 통해 소리를 출력할 수 있다.
센서 모듈(1176)은 전자 장치(1101)의 작동 상태(예: 전력 또는 온도), 또는 외부의 환경 상태(예: 사용자 상태)를 감지하고, 감지된 상태에 대응하는 전기 신호 또는 데이터 값을 생성할 수 있다. 일실시예에 따르면, 센서 모듈(1176)은, 예를 들면, 제스처 센서, 자이로 센서, 기압 센서, 마그네틱 센서, 가속도 센서, 그립 센서, 근접 센서, 컬러 센서, IR(infrared) 센서, 생체 센서, 온도 센서, 습도 센서, 또는 조도 센서를 포함할 수 있다.
인터페이스(1177)는 전자 장치(1101)가 외부 전자 장치(예: 전자 장치(1102))와 직접 또는 무선으로 연결되기 위해 사용될 수 있는 하나 이상의 지정된 프로토콜들을 지원할 수 있다. 일실시예에 따르면, 인터페이스(1177)는, 예를 들면, HDMI(high definition multimedia interface), USB(universal serial bus) 인터페이스, SD카드 인터페이스, 또는 오디오 인터페이스를 포함할 수 있다.
연결 단자(1178)는, 그를 통해서 전자 장치(1101)가 외부 전자 장치(예: 전자 장치(1102))와 물리적으로 연결될 수 있는 커넥터를 포함할 수 있다. 일실시예에 따르면, 연결 단자(1178)는, 예를 들면, HDMI 커넥터, USB 커넥터, SD 카드 커넥터, 또는 오디오 커넥터(예: 헤드폰 커넥터)를 포함할 수 있다.
햅틱 모듈(1179)은 전기적 신호를 사용자가 촉각 또는 운동 감각을 통해서 인지할 수 있는 기계적인 자극(예: 진동 또는 움직임) 또는 전기적인 자극으로 변환할 수 있다. 일실시예에 따르면, 햅틱 모듈(1179)은, 예를 들면, 모터, 압전 소자, 또는 전기 자극 장치를 포함할 수 있다.
카메라 모듈(1180)은 정지 영상 및 동영상을 촬영할 수 있다. 일실시예에 따르면, 카메라 모듈(1180)은 하나 이상의 렌즈들, 이미지 센서들, 이미지 시그널 프로세서들, 또는 플래시들을 포함할 수 있다.
전력 관리 모듈(1188)은 전자 장치(1101)에 공급되는 전력을 관리할 수 있다. 일실시예에 따르면, 전력 관리 모듈(1188)은, 예를 들면, PMIC(power management integrated circuit)의 적어도 일부로서 구현될 수 있다.
배터리(1189)는 전자 장치(1101)의 적어도 하나의 구성요소에 전력을 공급할 수 있다. 일실시예에 따르면, 배터리(1189)는, 예를 들면, 재충전 불가능한 1차 전지, 재충전 가능한 2차 전지 또는 연료 전지를 포함할 수 있다.
통신 모듈(1190)은 전자 장치(1101)와 외부 전자 장치(예: 전자 장치(1102), 전자 장치(1104), 또는 서버(1108)) 간의 직접(예: 유선) 통신 채널 또는 무선 통신 채널의 수립, 및 수립된 통신 채널을 통한 통신 수행을 지원할 수 있다. 통신 모듈(1190)은 프로세서(1120)(예: 어플리케이션 프로세서)와 독립적으로 운영되고, 직접(예: 유선) 통신 또는 무선 통신을 지원하는 하나 이상의 커뮤니케이션 프로세서를 포함할 수 있다. 일실시예에 따르면, 통신 모듈(1190)은 무선 통신 모듈(1192)(예: 셀룰러 통신 모듈, 근거리 무선 통신 모듈, 또는 GNSS(global navigation satellite system) 통신 모듈) 또는 유선 통신 모듈(1194)(예: LAN(local area network) 통신 모듈, 또는 전력선 통신 모듈)을 포함할 수 있다. 이들 통신 모듈 중 해당하는 통신 모듈은 제1 네트워크(1198)(예: 블루투스, WiFi(wireless fidelity) direct 또는 IrDA(infrared data association)와 같은 근거리 통신 네트워크) 또는 제2 네트워크(1199)(예: 레거시 셀룰러 네트워크, 5G 네트워크, 차세대 통신 네트워크, 인터넷, 또는 컴퓨터 네트워크(예: LAN 또는 WAN)와 같은 원거리 통신 네트워크)를 통하여 외부의 전자 장치(1104)와 통신할 수 있다. 이런 여러 종류의 통신 모듈들은 하나의 구성요소(예: 단일 칩)로 통합되거나, 또는 서로 별도의 복수의 구성요소들(예: 복수 칩들)로 구현될 수 있다. 무선 통신 모듈(1192)은 가입자 식별 모듈(1196)에 저장된 가입자 정보(예: 국제 모바일 가입자 식별자(IMSI))를 이용하여 제1 네트워크(1198) 또는 제2 네트워크(1199)와 같은 통신 네트워크 내에서 전자 장치(1101)를 확인 또는 인증할 수 있다.
무선 통신 모듈(1192)은 4G 네트워크 이후의 5G 네트워크 및 차세대 통신 기술, 예를 들어, NR 접속 기술(new radio access technology)을 지원할 수 있다. NR 접속 기술은 고용량 데이터의 고속 전송(eMBB(enhanced mobile broadband)), 단말 전력 최소화와 다수 단말의 접속(mMTC(massive machine type communications)), 또는 고신뢰도와 저지연(URLLC(ultra-reliable and low-latency communications))을 지원할 수 있다. 무선 통신 모듈(1192)은, 예를 들어, 높은 데이터 전송률 달성을 위해, 고주파 대역(예: mmWave 대역)을 지원할 수 있다. 무선 통신 모듈(1192)은 고주파 대역에서의 성능 확보를 위한 다양한 기술들, 예를 들어, 빔포밍(beamforming), 거대 배열 다중 입출력(massive MIMO(multiple-input and multiple-output)), 전차원 다중입출력(FD-MIMO: full dimensional MIMO), 어레이 안테나(array antenna), 아날로그 빔형성(analog beam-forming), 또는 대규모 안테나(large scale antenna)와 같은 기술들을 지원할 수 있다. 무선 통신 모듈(1192)은 전자 장치(1101), 외부 전자 장치(예: 전자 장치(1104)) 또는 네트워크 시스템(예: 제2 네트워크(1199))에 규정되는 다양한 요구사항을 지원할 수 있다. 일실시예에 따르면, 무선 통신 모듈(1192)은 eMBB 실현을 위한 Peak data rate(예: 20Gbps 이상), mMTC 실현을 위한 손실 Coverage(예: 164dB 이하), 또는 URLLC 실현을 위한 U-plane latency(예: 다운링크(DL) 및 업링크(UL) 각각 0.5ms 이하, 또는 라운드 트립 1ms 이하)를 지원할 수 있다.
안테나 모듈(1197)은 신호 또는 전력을 외부(예: 외부의 전자 장치)로 송신하거나 외부로부터 수신할 수 있다. 일실시예에 따르면, 안테나 모듈(1197)은 서브스트레이트(예: PCB) 위에 형성된 도전체 또는 도전성 패턴으로 이루어진 방사체를 포함하는 안테나를 포함할 수 있다. 일실시예에 따르면, 안테나 모듈(1197)은 복수의 안테나들(예: 어레이 안테나)을 포함할 수 있다. 이런 경우, 제1 네트워크(1198) 또는 제2 네트워크(1199)와 같은 통신 네트워크에서 사용되는 통신 방식에 적합한 적어도 하나의 안테나가, 예를 들면, 통신 모듈(1190)에 의하여 상기 복수의 안테나들로부터 선택될 수 있다. 신호 또는 전력은 상기 선택된 적어도 하나의 안테나를 통하여 통신 모듈(1190)과 외부의 전자 장치 간에 송신되거나 수신될 수 있다. 어떤 실시예에 따르면, 방사체 이외에 다른 부품(예: RFIC(radio frequency integrated circuit))이 추가로 안테나 모듈(1197)의 일부로 형성될 수 있다.
일 실시예에 따르면, 안테나 모듈(1197)은 mmWave 안테나 모듈을 형성할 수 있다. 일실시예에 따르면, mmWave 안테나 모듈은 인쇄 회로 기판, 상기 인쇄 회로 기판의 제1 면(예: 아래 면)에 또는 그에 인접하여 배치되고 지정된 고주파 대역(예: mmWave 대역)을 지원할 수 있는 RFIC, 및 상기 인쇄 회로 기판의 제2 면(예: 윗 면 또는 측 면)에 또는 그에 인접하여 배치되고 상기 지정된 고주파 대역의 신호를 송신 또는 수신할 수 있는 복수의 안테나들(예: 어레이 안테나)을 포함할 수 있다.
상기 구성요소들 중 적어도 일부는 주변 기기들간 통신 방식(예: 버스, GPIO(general purpose input and output), SPI(serial peripheral interface), 또는 MIPI(mobile industry processor interface))을 통해 서로 연결되고 신호(예: 명령 또는 데이터)를 상호간에 교환할 수 있다.
일실시예에 따르면, 명령 또는 데이터는 제2 네트워크(1199)에 연결된 서버(1108)를 통해서 전자 장치(1101)와 외부의 전자 장치(1104)간에 송신 또는 수신될 수 있다. 외부의 전자 장치(1102, 또는 1104) 각각은 전자 장치(1101)와 동일한 또는 다른 종류의 장치일 수 있다. 일실시예에 따르면, 전자 장치(1101)에서 실행되는 동작들의 전부 또는 일부는 외부의 전자 장치들(1102, 1104, 또는 1108) 중 하나 이상의 외부의 전자 장치들에서 실행될 수 있다. 예를 들면, 전자 장치(1101)가 어떤 기능이나 서비스를 자동으로, 또는 사용자 또는 다른 장치로부터의 요청에 반응하여 수행해야 할 경우에, 전자 장치(1101)는 기능 또는 서비스를 자체적으로 실행시키는 대신에 또는 추가적으로, 하나 이상의 외부의 전자 장치들에게 그 기능 또는 그 서비스의 적어도 일부를 수행하라고 요청할 수 있다. 상기 요청을 수신한 하나 이상의 외부의 전자 장치들은 요청된 기능 또는 서비스의 적어도 일부, 또는 상기 요청과 관련된 추가 기능 또는 서비스를 실행하고, 그 실행의 결과를 전자 장치(1101)로 전달할 수 있다. 전자 장치(1101)는 상기 결과를, 그대로 또는 추가적으로 처리하여, 상기 요청에 대한 응답의 적어도 일부로서 제공할 수 있다. 이를 위하여, 예를 들면, 클라우드 컴퓨팅, 분산 컴퓨팅, 모바일 에지 컴퓨팅(MEC: mobile edge computing), 또는 클라이언트-서버 컴퓨팅 기술이 이용될 수 있다. 전자 장치(1101)는, 예를 들어, 분산 컴퓨팅 또는 모바일 에지 컴퓨팅을 이용하여 초저지연 서비스를 제공할 수 있다. 다른 실시예에 있어서, 외부의 전자 장치(1104)는 IoT(internet of things) 기기를 포함할 수 있다. 서버(1108)는 기계 학습 및/또는 신경망을 이용한 지능형 서버일 수 있다. 일실시예에 따르면, 외부의 전자 장치(1104) 또는 서버(1108)는 제2 네트워크(1199) 내에 포함될 수 있다. 전자 장치(1101)는 5G 통신 기술 및 IoT 관련 기술을 기반으로 지능형 서비스(예: 스마트 홈, 스마트 시티, 스마트 카, 또는 헬스 케어)에 적용될 수 있다.
일 실시예에 따르면, 가속기 선택 방법은, 기계학습 모델을 수신하면 오퍼레이션 단위로 구분하는 동작(512; 612); 지연시간 테이블을 참조해서 상기 기계학습 모델에 포함된 오퍼레이션 별로 가속기들(140) 각각의 오퍼레이션 지연시간을 확인하는 동작(514; 614); 및 상기 기계학습 모델에 포함된 오퍼레이션 별로 상기 가속기들(140) 각각의 오퍼레이션 지연시간을 고려해서 상기 기계학습 모델에 포함된 오퍼레이션 각각을 수행할 가속기를 선택하는 동작(516; 618)을 포함할 수 있다.
일 실시예에 따르면, 가속기 선택 방법은, 상기 기계학습 모델에 포함된 오퍼레이션을 각각에 대해 선택된 가속기로 수행하는 동작(518; 620)을 더 포함할 수 있다.
일 실시예에 따르면, 가속기 선택 방법에서 상기 가속기들(140)은, 중앙연산처리장치(CPU; Central Processing Unit)(141), 그래픽스 처리장치(GPU; Graphics Processing Unit)(142), 신경망 처리장치(NPU; Neural Processing Unit)(143) 및 디지털 신호 처리기(DSP; digital signal processor) 중에서 적어도 하나를 포함할 수 있다.
일 실시예에 따르면, 가속기 선택 방법은, 상기 가속기들(140) 각각의 현재 상태 정보를 확인하는 동작(616)을 더 포함할 수 있다.
일 실시예에 따르면, 가속기 선택 방법에서 상기 기계학습 모델에 포함된 오퍼레이션 각각을 수행할 가속기를 선택하는 동작은(618), 상기 가속기들(140) 각각의 현재 상태를 고려해서 상기 기계학습 모델에 포함된 오퍼레이션 별로 가속기들(140) 각각의 현재 오퍼레이션 지연시간을 계산하는 동작(710; 810; 910); 및 상기 가속기들(140) 각각의 현재 상태를 고려해서 상기 기계학습 모델에 포함된 오퍼레이션 별로 상기 현재 오퍼레이션 지연시간이 가장 작은 가속기를 선택하는 동작(712; 812; 912)을 포함할 수 있다.
일 실시예에 따르면, 가속기 선택 방법에서 상기 가속기들(140) 각각의 현재 상태를 고려해서 상기 기계학습 모델에 포함된 오퍼레이션 별로 가속기들(140) 각각의 현재 오퍼레이션 지연시간을 계산하는 동작(710; 810; 910)은, 아래 <수학식 1>을 통해서 상기 현재 오퍼레이션 지연시간을 계산할 수 있다.
[수학식 1]
L(o) = S(o)U(o)w + a
여기서, L(o)는 오퍼레이션(o)의 현재 오퍼레이션 지연시간이고, S(o)는 지연시간 테이블에서 검색된 해당 가속기에서 오퍼레이션(o)의 오퍼레이션 지연시간이고, U(o)는 해당 가속기의 현재 사용률이고, w는 가중치이고, a는 바이어스 값을 나타낸다.
일 실시예에 따르면, 가속기 선택 방법에서 상기 가속기들(140) 각각의 현재 상태 정보는, 상기 가속기들(140) 각각의 사용률을 포함할 수 있다.
일 실시예에 따르면, 가속기 선택 방법에서 상기 가속기들(140) 각각의 현재 상태 정보는, 상기 가속기들(140) 각각의 사용률과 상기 가속기들(140) 각각의 현재 온도를 포함할 수 있다.
일 실시예에 따르면, 가속기 선택 방법에서 상기 기계학습 모델에 포함된 오퍼레이션 각각을 수행할 가속기를 선택하는 동작(618)은, 상기 가속기들(140) 각각의 현재 온도가 상기 가속기들(140) 별로 기설정된 온도 이상이면, 오퍼레이션을 수행할 가속기에서 배제할 수 있다.
일 실시예에 따르면, 가속기 선택 방법에서 상기 기계학습 모델에 포함된 오퍼레이션 각각을 수행할 가속기를 선택하는 동작(618)은, 상기 기계학습 모델에 포함된 오퍼레이션을 선택된 가속기로 수행할 때의 상기 기계학습 모델의 지연시간을 추정하는 동작(814); 상기 기계학습 모델에 포함된 모든 오퍼레이션을 상기 가속기들(140) 각각에서 변환하지 않고 수행할 때의 상기 기계학습 모델의 지연시간을 추정하는 동작(816); 및 선택된 가속기로 수행할 때의 상기 기계학습 모델의 지연시간 보다 가속기를 변환하지 않고 수행할 때의 상기 기계학습 모델의 지연시간이 더 짧으면, 가속기를 변환하지 않고 수행할 때의 상기 기계학습 모델의 지연시간이 가장 짧은 가속기를 상기 기계학습 모델에 포함된 모든 오퍼레이션의 가속기로 선택하는 동작(818)을 포함할 수 있다.
일 실시예에 따르면, 가속기 선택 방법에서 상기 기계학습 모델에 포함된 오퍼레이션을 선택된 가속기로 수행할 때의 상기 기계학습 모델의 지연시간을 추정하는 동작(814; 916)은, 상기 기계학습 모델에 포함된 오퍼레이션 각각에 대해서 선택된 가속기로 수행할 때의 현재 오퍼레이션 지연시간을 계산하는 동작; 상기 기계학습 모델에 포함된 오퍼레이션 각각의 현재 오퍼레이션 지연시간을 모두 합하여 제1 값을 계산하는 동작; 상기 기계학습 모델에 포함된 오퍼레이션 각각에 대해서 선택된 가속기로 수행하기 위해서 가속기를 변환한 횟수에 기설정된 변환시간을 곱하여 제2 값을 계산하는 동작; 상기 제1 값과 상기 제2 값을 더하여 상기 기계학습 모델에 포함된 오퍼레이션을 선택된 가속기로 수행할 때의 상기 기계학습 모델의 지연시간을 추정하는 동작을 포함할 수 있다.
일 실시예에 따르면, 가속기 선택 방법에서 제1항 내지 제2항 중 어느 한 항에 있어서, 상기 기계학습 모델에 포함된 모든 오퍼레이션을 상기 가속기들(140) 각각에서 변환하지 않고 수행할 때의 상기 기계학습 모델의 지연시간을 추정하는 동작(816; 918)은, 상기 기계학습 모델에 포함된 오퍼레이션 각각에 대해서 하나의 가속기로 수행할 때의 현재 오퍼레이션 지연시간을 상기 가속기들(140) 별로 계산하는 동작; 및 상기 기계학습 모델에 포함된 오퍼레이션 각각의 현재 오퍼레이션 지연시간을 모두 합하여 상기 기계학습 모델에 포함된 모든 오퍼레이션을 하나의 가속기에서 수행할 때의 상기 기계학습 모델의 지연시간을 상기 가속기들(140) 별로 추정하는 동작을 포함할 수 있다.
일 실시예에 따르면, 가속기 선택 방법에서 상기 기계학습 모델에 포함된 오퍼레이션 각각을 수행할 가속기를 선택하는 동작(618)은, 상기 기계학습 모델에 포함된 오퍼레이션을 선택된 가속기로 수행할 때 가속기의 변환이 기설정된 횟수 이상 발생하는지 확인하는 동작(914); 상기 기계학습 모델에 포함된 오퍼레이션을 선택된 가속기로 수행할 때 가속기의 변환이 기설정된 횟수 이상 발생하면, 상기 기계학습 모델에 포함된 오퍼레이션을 선택된 가속기로 수행할 때의 상기 기계학습 모델의 지연시간을 추정하는 동작(916); 상기 기계학습 모델에 포함된 모든 오퍼레이션을 상기 가속기들(140) 각각에서 변환하지 않고 수행할 때의 상기 기계학습 모델의 지연시간을 추정하는 동작(918); 및 선택된 가속기로 수행할 때의 상기 기계학습 모델의 지연시간 보다 가속기를 변환하지 않고 수행할 때의 상기 기계학습 모델의 지연시간이 더 짧으면, 가속기를 변환하지 않고 수행할 때의 상기 기계학습 모델의 지연시간이 가장 짧은 가속기를 상기 기계학습 모델에 포함된 모든 오퍼레이션의 가속기로 선택하는 동작(920)을 포함할 수 있다.
일 실시예에 따르면, 가속기 선택 방법에서 상기 기계학습 모델에 포함된 오퍼레이션 각각을 수행할 가속기를 선택하는 동작(618)은, 상기 기계학습 모델에 포함된 오퍼레이션을 선택된 가속기로 수행할 때 가속기의 변환이 기설정된 횟수 이상 발생하는지 확인하는 동작(914); 및 상기 기계학습 모델에 포함된 오퍼레이션을 선택된 가속기로 수행할 때 가속기의 변환이 기설정된 횟수 이상 발생하지 않으면, 상기 기계학습 모델에 포함된 오퍼레이션을 각각에 대해 선택된 가속기로 수행하도록 결정하는 동작(922)을 포함할 수 있다.
일 실시예에 따르면, 가속기 선택 방법은, 상기 가속기들(140)이 유휴 상태일 때, 모든 종류의 오퍼레이션을 포함하는 훈련용 기계학습 모델을 모든 가속기 별로 수행하여 오퍼레이션 각각에 대한 가속기 별 오퍼레이션 지연시간을 계산하는 동작(1014); 및 오퍼레이션 각각에 대한 가속기 별 오퍼레이션 지연시간을 포함하는 상기 지연시간 테이블을 생성하는 동작(1016)을 더 포함할 수 있다.
일 실시예에 따르면, 전자 장치(electronic device)는, 지연시간 테이블을 저장하는 휘발성 메모리(volatile memory); 및 프로세서를 포함하고, 상기 프로세서는, 가속기 선택 장치는, 기계학습 모델을 수신하면 오퍼레이션 단위로 구분하고, 지연시간 테이블을 참조해서 상기 기계학습 모델에 포함된 오퍼레이션 별로 가속기들(140) 각각의 오퍼레이션 지연시간을 확인하고, 상기 가속기들(140) 각각의 현재 상태 정보를 확인하고, 상기 가속기들(140) 각각의 현재 상태를 고려해서 상기 기계학습 모델에 포함된 오퍼레이션 별로 가속기들(140) 각각의 현재 오퍼레이션 지연시간을 계산하고, 상기 가속기들(140) 각각의 현재 상태를 고려해서 상기 기계학습 모델에 포함된 오퍼레이션 별로 상기 현재 오퍼레이션 지연시간이 가장 작은 가속기를 선택할 수 있다.
일 실시예에 따르면, 상기 프로세서는, 아래 <수학식 1>을 통해서 상기 현재 오퍼레이션 지연시간을 계산할 수 있다.
[수학식 1]
L(o) = S(o)U(o)w + a
여기서, L(o)는 오퍼레이션(o)의 현재 오퍼레이션 지연시간이고, S(o)는 지연시간 테이블에서 검색된 해당 가속기에서 오퍼레이션(o)의 오퍼레이션 지연시간이고, U(o)는 해당 가속기의 현재 사용률이고, w는 가중치이고, a는 바이어스 값을 나타낸다.
일 실시예에 따르면, 상기 프로세서는, 상기 기계학습 모델에 포함된 오퍼레이션을 선택된 가속기로 수행할 때의 상기 기계학습 모델의 지연시간을 추정하고, 상기 기계학습 모델에 포함된 모든 오퍼레이션을 상기 가속기들(140) 각각에서 변환하지 않고 수행할 때의 상기 기계학습 모델의 지연시간을 추정하고, 선택된 가속기로 수행할 때의 상기 기계학습 모델의 지연시간 보다 가속기를 변환하지 않고 수행할 때의 상기 기계학습 모델의 지연시간이 더 짧으면, 가속기를 변환하지 않고 수행할 때의 상기 기계학습 모델의 지연시간이 가장 짧은 가속기를 상기 기계학습 모델에 포함된 모든 오퍼레이션의 가속기로 선택할 수 있다.
일 실시예에 따르면, 상기 프로세서는, 상기 기계학습 모델에 포함된 오퍼레이션 각각에 대해서 선택된 가속기로 수행할 때의 현재 오퍼레이션 지연시간을 계산하고, 상기 기계학습 모델에 포함된 오퍼레이션 각각의 현재 오퍼레이션 지연시간을 모두 합하여 제1 값을 계산하고, 상기 기계학습 모델에 포함된 오퍼레이션 각각에 대해서 선택된 가속기로 수행하기 위해서 가속기를 변환한 횟수에 기설정된 변환시간을 곱하여 제2 값을 계산하고, 상기 제1 값과 상기 제2 값을 더하여 상기 기계학습 모델에 포함된 오퍼레이션을 선택된 가속기로 수행할 때의 상기 기계학습 모델의 지연시간을 추정할 수 있다.
일 실시예에 따르면, 상기 프로세서는, 상기 기계학습 모델에 포함된 오퍼레이션 각각에 대해서 하나의 가속기로 수행할 때의 현재 오퍼레이션 지연시간을 상기 가속기들(140) 별로 계산하고, 상기 기계학습 모델에 포함된 오퍼레이션 각각의 현재 오퍼레이션 지연시간을 모두 합하여 상기 기계학습 모델에 포함된 모든 오퍼레이션을 하나의 가속기에서 수행할 때의 상기 기계학습 모델의 지연시간을 상기 가속기들(140) 별로 추정할 수 있다.
일 실시예에 따르면, 상기 프로세서는, 상기 가속기들(140)이 유휴 상태일 때, 모든 종류의 오퍼레이션을 포함하는 훈련용 기계학습 모델을 모든 가속기 별로 수행하여 오퍼레이션 각각에 대한 가속기 별 오퍼레이션 지연시간을 계산하고, 오퍼레이션 각각에 대한 가속기 별 오퍼레이션 지연시간을 포함하는 상기 지연시간 테이블을 생성할 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 저장할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.

Claims (15)

  1. 기계학습 모델을 수신하면 오퍼레이션 단위로 구분하는 동작(512; 612);
    지연시간 테이블을 참조해서 상기 기계학습 모델에 포함된 오퍼레이션 별로 가속기들(140) 각각의 오퍼레이션 지연시간을 확인하는 동작(514; 614); 및
    상기 기계학습 모델에 포함된 오퍼레이션 별로 상기 가속기들(140) 각각의 오퍼레이션 지연시간을 고려해서 상기 기계학습 모델에 포함된 오퍼레이션 각각을 수행할 가속기를 선택하는 동작(516; 618)
    을 포함하는 가속기 선택 방법.
  2. 제1항에 있어서,
    상기 기계학습 모델에 포함된 오퍼레이션을 각각에 대해 선택된 가속기로 수행하는 동작(518; 620)
    을 더 포함하는 가속기 선택 방법.
  3. 제1항 내지 제2항 중 어느 한 항에 있어서,
    상기 가속기들(140)은,
    중앙연산처리장치(CPU; Central Processing Unit)(141), 그래픽스 처리장치(GPU; Graphics Processing Unit)(142), 신경망 처리장치(NPU; Neural Processing Unit)(143) 및 디지털 신호 처리기(DSP; digital signal processor)
    중에서 적어도 하나를 포함하는
    가속기 선택 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 가속기들(140) 각각의 현재 상태 정보를 확인하는 동작(616)
    을 더 포함하고,
    상기 기계학습 모델에 포함된 오퍼레이션 각각을 수행할 가속기를 선택하는 동작은(618),
    상기 가속기들(140) 각각의 현재 상태를 고려해서 상기 기계학습 모델에 포함된 오퍼레이션 별로 가속기들(140) 각각의 현재 오퍼레이션 지연시간을 계산하는 동작(710; 810; 910); 및
    상기 가속기들(140) 각각의 현재 상태를 고려해서 상기 기계학습 모델에 포함된 오퍼레이션 별로 상기 현재 오퍼레이션 지연시간이 가장 작은 가속기를 선택하는 동작(712; 812; 912)
    을 포함하는 가속기 선택 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 가속기들(140) 각각의 현재 상태를 고려해서 상기 기계학습 모델에 포함된 오퍼레이션 별로 가속기들(140) 각각의 현재 오퍼레이션 지연시간을 계산하는 동작(710; 810; 910)은,
    아래 <수학식 1>을 통해서 상기 현재 오퍼레이션 지연시간을 계산하는
    가속기 선택 방법.
    [수학식 1]
    L(o) = S(o)U(o)w + a
    여기서, L(o)는 오퍼레이션(o)의 현재 오퍼레이션 지연시간이고, S(o)는 지연시간 테이블에서 검색된 해당 가속기에서 오퍼레이션(o)의 오퍼레이션 지연시간이고, U(o)는 해당 가속기의 현재 사용률이고, w는 가중치이고, a는 바이어스 값을 나타낸다.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서,
    상기 가속기들(140) 각각의 현재 상태 정보는,
    상기 가속기들(140) 각각의 사용률을 포함하는
    가속기 선택 방법.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서,
    상기 가속기들(140) 각각의 현재 상태 정보는,
    상기 가속기들(140) 각각의 사용률과 상기 가속기들(140) 각각의 현재 온도를 포함하는
    을 포함하는 가속기 선택 방법.
  8. 제1항 내지 제7항 중 어느 한 항에 있어서,
    상기 기계학습 모델에 포함된 오퍼레이션 각각을 수행할 가속기를 선택하는 동작(618)은,
    상기 가속기들(140) 각각의 현재 온도가 상기 가속기들(140) 별로 기설정된 온도 이상이면, 오퍼레이션을 수행할 가속기에서 배제하는
    가속기 선택 방법.
  9. 제1항 내지 제8항 중 어느 한 항에 있어서,
    상기 기계학습 모델에 포함된 오퍼레이션 각각을 수행할 가속기를 선택하는 동작(618)은,
    상기 기계학습 모델에 포함된 오퍼레이션을 선택된 가속기로 수행할 때의 상기 기계학습 모델의 지연시간을 추정하는 동작(814);
    상기 기계학습 모델에 포함된 모든 오퍼레이션을 상기 가속기들(140) 각각에서 변환하지 않고 수행할 때의 상기 기계학습 모델의 지연시간을 추정하는 동작(816); 및
    선택된 가속기로 수행할 때의 상기 기계학습 모델의 지연시간 보다 가속기를 변환하지 않고 수행할 때의 상기 기계학습 모델의 지연시간이 더 짧으면, 가속기를 변환하지 않고 수행할 때의 상기 기계학습 모델의 지연시간이 가장 짧은 가속기를 상기 기계학습 모델에 포함된 모든 오퍼레이션의 가속기로 선택하는 동작(818)
    을 포함하는 가속기 선택 방법.
  10. 제1항 내지 제9항 중 어느 한 항에 있어서,
    상기 기계학습 모델에 포함된 오퍼레이션을 선택된 가속기로 수행할 때의 상기 기계학습 모델의 지연시간을 추정하는 동작(814; 916)은,
    상기 기계학습 모델에 포함된 오퍼레이션 각각에 대해서 선택된 가속기로 수행할 때의 현재 오퍼레이션 지연시간을 계산하는 동작;
    상기 기계학습 모델에 포함된 오퍼레이션 각각의 현재 오퍼레이션 지연시간을 모두 합하여 제1 값을 계산하는 동작;
    상기 기계학습 모델에 포함된 오퍼레이션 각각에 대해서 선택된 가속기로 수행하기 위해서 가속기를 변환한 횟수에 기설정된 변환시간을 곱하여 제2 값을 계산하는 동작;
    상기 제1 값과 상기 제2 값을 더하여 상기 기계학습 모델에 포함된 오퍼레이션을 선택된 가속기로 수행할 때의 상기 기계학습 모델의 지연시간을 추정하는 동작
    을 포함하는 가속기 선택 방법.
  11. 제1항 내지 제10항 중 어느 한 항에 있어서,
    상기 기계학습 모델에 포함된 모든 오퍼레이션을 상기 가속기들(140) 각각에서 변환하지 않고 수행할 때의 상기 기계학습 모델의 지연시간을 추정하는 동작(816; 918)은,
    상기 기계학습 모델에 포함된 오퍼레이션 각각에 대해서 하나의 가속기로 수행할 때의 현재 오퍼레이션 지연시간을 상기 가속기들(140) 별로 계산하는 동작; 및
    상기 기계학습 모델에 포함된 오퍼레이션 각각의 현재 오퍼레이션 지연시간을 모두 합하여 상기 기계학습 모델에 포함된 모든 오퍼레이션을 하나의 가속기에서 수행할 때의 상기 기계학습 모델의 지연시간을 상기 가속기들(140) 별로 추정하는 동작
    을 포함하는 가속기 선택 방법.
  12. 제1항 내지 제11항 중 어느 한 항에 있어서,
    상기 기계학습 모델에 포함된 오퍼레이션 각각을 수행할 가속기를 선택하는 동작(618)은,
    상기 기계학습 모델에 포함된 오퍼레이션을 선택된 가속기로 수행할 때 가속기의 변환이 기설정된 횟수 이상 발생하는지 확인하는 동작(914);
    상기 기계학습 모델에 포함된 오퍼레이션을 선택된 가속기로 수행할 때 가속기의 변환이 기설정된 횟수 이상 발생하면, 상기 기계학습 모델에 포함된 오퍼레이션을 선택된 가속기로 수행할 때의 상기 기계학습 모델의 지연시간을 추정하는 동작(916);
    상기 기계학습 모델에 포함된 모든 오퍼레이션을 상기 가속기들(140) 각각에서 변환하지 않고 수행할 때의 상기 기계학습 모델의 지연시간을 추정하는 동작(918); 및
    선택된 가속기로 수행할 때의 상기 기계학습 모델의 지연시간 보다 가속기를 변환하지 않고 수행할 때의 상기 기계학습 모델의 지연시간이 더 짧으면, 가속기를 변환하지 않고 수행할 때의 상기 기계학습 모델의 지연시간이 가장 짧은 가속기를 상기 기계학습 모델에 포함된 모든 오퍼레이션의 가속기로 선택하는 동작(920)
    을 포함하는 가속기 선택 방법.
  13. 제1항 내지 제12항 중 어느 한 항에 있어서,
    상기 기계학습 모델에 포함된 오퍼레이션 각각을 수행할 가속기를 선택하는 동작(618)은,
    상기 기계학습 모델에 포함된 오퍼레이션을 선택된 가속기로 수행할 때 가속기의 변환이 기설정된 횟수 이상 발생하는지 확인하는 동작(914); 및
    상기 기계학습 모델에 포함된 오퍼레이션을 선택된 가속기로 수행할 때 가속기의 변환이 기설정된 횟수 이상 발생하지 않으면, 상기 기계학습 모델에 포함된 오퍼레이션을 각각에 대해 선택된 가속기로 수행하도록 결정하는 동작(922)
    을 포함하는 가속기 선택 방법.
  14. 제1항 내지 제13항 중 어느 한 항에 있어서,
    상기 가속기들(140)이 유휴 상태일 때, 모든 종류의 오퍼레이션을 포함하는 훈련용 기계학습 모델을 모든 가속기 별로 수행하여 오퍼레이션 각각에 대한 가속기 별 오퍼레이션 지연시간을 계산하는 동작(1014); 및
    오퍼레이션 각각에 대한 가속기 별 오퍼레이션 지연시간을 포함하는 상기 지연시간 테이블을 생성하는 동작(1016)
    을 더 포함하는 가속기 선택 방법.
  15. 전자 장치(electronic device)에 있어서,
    지연시간 테이블을 저장하는 휘발성 메모리(volatile memory); 및
    프로세서를 포함하고,
    상기 프로세서는,
    기계학습 모델을 수신하면 오퍼레이션 단위로 구분하고,
    상기 지연시간 테이블을 참조해서 상기 기계학습 모델에 포함된 오퍼레이션 별로 가속기들(140) 각각의 오퍼레이션 지연시간을 확인하고,
    상기 가속기들(140) 각각의 현재 상태 정보를 확인하고,
    상기 가속기들(140) 각각의 현재 상태를 고려해서 상기 기계학습 모델에 포함된 오퍼레이션 별로 가속기들(140) 각각의 현재 오퍼레이션 지연시간을 계산하고, 상기 가속기들(140) 각각의 현재 상태를 고려해서 상기 기계학습 모델에 포함된 오퍼레이션 별로 상기 현재 오퍼레이션 지연시간이 가장 작은 가속기를 선택하는
    전자 장치.
PCT/KR2023/012439 2022-09-08 2023-08-22 기계학습 모델에 적합한 가속기를 선택하는 장치 및 방법 WO2024053910A1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR20220114262 2022-09-08
KR10-2022-0114262 2022-09-08
KR10-2022-0118702 2022-09-20
KR1020220118702A KR20240035269A (ko) 2022-09-08 2022-09-20 기계학습 모델에 적합한 가속기를 선택하는 장치 및 방법

Publications (1)

Publication Number Publication Date
WO2024053910A1 true WO2024053910A1 (ko) 2024-03-14

Family

ID=90191388

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2023/012439 WO2024053910A1 (ko) 2022-09-08 2023-08-22 기계학습 모델에 적합한 가속기를 선택하는 장치 및 방법

Country Status (1)

Country Link
WO (1) WO2024053910A1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200019854A1 (en) * 2017-02-24 2020-01-16 Samsung Electronics Co., Ltd. Method of accelerating execution of machine learning based application tasks in a computing device
KR102076257B1 (ko) * 2015-10-28 2020-02-11 구글 엘엘씨 계산 그래프들 프로세싱
JP2020512639A (ja) * 2017-03-24 2020-04-23 グーグル エルエルシー 強化学習を用いたデバイス配置最適化
KR20210127538A (ko) * 2020-04-14 2021-10-22 주식회사 모레 딥러닝 작업을 이기종 가속기에서 처리하는 방법 및 이러한 방법을 수행하는 클러스터 시스템
JP2022092618A (ja) * 2020-12-10 2022-06-22 インターナショナル・ビジネス・マシーンズ・コーポレーション ニューラルネットワークを最適化する方法、コンピュータシステム、コンピュータプログラム(ディープラーニングアーキテクチャのための時間推定手段)

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102076257B1 (ko) * 2015-10-28 2020-02-11 구글 엘엘씨 계산 그래프들 프로세싱
US20200019854A1 (en) * 2017-02-24 2020-01-16 Samsung Electronics Co., Ltd. Method of accelerating execution of machine learning based application tasks in a computing device
JP2020512639A (ja) * 2017-03-24 2020-04-23 グーグル エルエルシー 強化学習を用いたデバイス配置最適化
KR20210127538A (ko) * 2020-04-14 2021-10-22 주식회사 모레 딥러닝 작업을 이기종 가속기에서 처리하는 방법 및 이러한 방법을 수행하는 클러스터 시스템
JP2022092618A (ja) * 2020-12-10 2022-06-22 インターナショナル・ビジネス・マシーンズ・コーポレーション ニューラルネットワークを最適化する方法、コンピュータシステム、コンピュータプログラム(ディープラーニングアーキテクチャのための時間推定手段)

Similar Documents

Publication Publication Date Title
WO2022025693A1 (ko) 무선 통신 시스템에서의 멀티 세션에 대한 스케줄링 방법 및 이를 지원하는 전자 장치
WO2022177343A1 (ko) 지오펜스를 설정하기 위한 전자 장치 및 이의 동작 방법
WO2023128219A1 (ko) 외부 전자 장치들과의 연결을 제어하기 위한 전자 장치 및 방법
WO2022177162A1 (ko) 어플리케이션의 모델 파일을 초기화하는 프로세서 및 이를 포함하는 전자 장치
WO2022158763A1 (ko) 외부 전자 장치와의 통신 연결을 수립하는 전자 장치 및 이의 동작 방법
WO2024053910A1 (ko) 기계학습 모델에 적합한 가속기를 선택하는 장치 및 방법
WO2022154349A1 (ko) 배터리 잔여량에 기초하여 전자 장치를 제어하는 방법 및 그 전자 장치
WO2024019330A1 (ko) 블루투스 환경에서 전파 출력 제어 장치 및 방법
WO2023063580A1 (ko) 무선 통신 수행 방법 및 이를 지원하는 전자 장치
WO2024117501A1 (ko) 송신 전력을 제어하기 위한 전자 장치 및 전자 장치의 동작 방법
WO2023153752A1 (ko) 태스크에 메모리 자원을 할당하는 전자 장치 및 전자 장치의 동작 방법
WO2024191052A1 (ko) 절전 기능에 관한 사용자 인터페이스를 제공하기 위한 전자 장치 및 그 동작 방법
WO2024053886A1 (ko) 피드백을 위한 신호를 송신하기 위한 전자 장치 및 방법
WO2021085996A1 (ko) 신경망의 커널들을 정렬하는 전자 장치 및 이의 동작 방법
WO2022173260A1 (ko) 부품을 제어하기 위한 방법 및 이를 지원하는 전자 장치
WO2023054842A1 (ko) 무선 통신을 이용한 측위 방법 및 이를 지원하는 전자 장치
WO2023277364A1 (ko) 블루투스 통신을 사용하는 전자 장치와 이의 동작 방법
WO2023063593A1 (ko) Ips(indoor positioning system)를 수행하기 위한 채널을 결정하는 전자 장치 및 위치 결정 시스템
WO2022092539A1 (ko) 사용자 모델을 관리하는 전자 장치 및 이의 동작 방법
WO2022211267A1 (ko) 데이터 처리 시스템 및 데이터 처리 장치의 동작 방법
WO2024117854A1 (ko) Dc/dc 컨버터를 제어하는 전자 장치 및 이의 동작 방법
WO2023101295A1 (ko) 복수의 코어를 사용하여 운영체제를 부팅하는 전자 장치 및 그의 동작 방법
WO2024029717A1 (ko) 프로세스 관리 장치 및 방법
WO2023146104A1 (ko) 무선 충전 가이드 제공 방법 및 이를 수행하는 전자 장치
WO2024039054A1 (ko) 복수의 외부 전자 장치를 포함하는 네트워크 관리 장치 및 그 방법

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 23863386

Country of ref document: EP

Kind code of ref document: A1