KR20200023660A - Electronic device for controlling performance of at least one processor when providing inference service through deep learning model and operating method thereof - Google Patents
Electronic device for controlling performance of at least one processor when providing inference service through deep learning model and operating method thereof Download PDFInfo
- Publication number
- KR20200023660A KR20200023660A KR1020180094583A KR20180094583A KR20200023660A KR 20200023660 A KR20200023660 A KR 20200023660A KR 1020180094583 A KR1020180094583 A KR 1020180094583A KR 20180094583 A KR20180094583 A KR 20180094583A KR 20200023660 A KR20200023660 A KR 20200023660A
- Authority
- KR
- South Korea
- Prior art keywords
- deep learning
- learning model
- electronic device
- processor
- input data
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Debugging And Monitoring (AREA)
Abstract
Description
본 발명은 딥러닝 모델을 통한 추론 서비스를 제공할 때, 적어도 하나의 프로세서의 성능을 제어하는 전자 장치 및 그의 동작 방법에 대한 것이다.The present invention relates to an electronic device that controls the performance of at least one processor when providing an inference service through a deep learning model, and a method of operating the same.
딥러닝(deep learning)은 사물이나 데이터를 군집화하거나 분류하는 데 이용되는 기술로서, 다층 구조 형태의 신경망(neural network)을 통해 강건(robust)하고 정확(accurate)한 추론(inference)을 가능하게 한다는 점에서 최근 그 쓰임새가 확장되고 있다. 예를 들어, 딥러닝의 신경망에 의해 구동되는 시각적 장면에 대한 이해와 관련된 기술은 증강 현실용 웨어러블 장치, 홈 오토메이션 장치, 카메라 기반의 감시 장치 및 자율 주행 차량과 같은, 가상 물리 시스템(cyber-physical system)에 활발히 적용되고 있다.Deep learning is a technique used to cluster or classify objects or data, and enables robust and accurate inference through multi-layer neural networks. In recent years, its use has been expanded. For example, techniques related to understanding visual scenes driven by neural networks in deep learning include cyber-physical, such as wearable devices for augmented reality, home automation devices, camera-based surveillance and autonomous vehicles. system is being actively applied.
이처럼 딥러닝에 이용되는 신경망은 연속적으로 배치된 복수의 레이어들로 구성될 수 있으며, 복수의 레이어들은 배치된 순서에 따라 레이어 별 연산을 수행한 후 연산 결과를 그 다음에 배치된 레이어로 전달하도록 설정될 수 있다.As such, the neural network used for deep learning may be composed of a plurality of layers arranged in succession, and the plurality of layers perform calculation for each layer according to the order in which the plurality of layers are arranged, and then transfer the calculation result to the next arranged layer. Can be set.
한편, 딥러닝을 통한 추론 과정은 수많은 연산들을 수반하기 때문에, 딥러닝을 이용하여 데이터를 처리하는 전자 장치에는 고성능의 프로세서, 충분한 전력을 공급할 수 있는 전원 장치 및 충분한 저장 공간을 제공할 수 있는 메모리 등이 구비될 필요가 있다. 따라서, 성능, 공급 전력, 저장 공간 등 리소스(resource)가 제한된 모바일 장치에서는 딥러닝의 사용이 제한되는 측면이 있었다.On the other hand, since inference processes through deep learning involve numerous operations, electronic devices that process data using deep learning have high performance processors, power supplies capable of supplying sufficient power, and memory capable of providing sufficient storage space. Etc., it is necessary to be provided. Therefore, the use of deep learning has been limited in mobile devices with limited resources such as performance, power supply, and storage space.
최근에는 모바일 장치에서도 딥러닝에 따른 추론 과정이 원활히 수행될 수 있도록, 리소스를 효율적으로 관리하기 위한 다양한 방법들이 제안되고 있다. 예를 들어, 전자 장치에 하드웨어 기반의 가속기를 적용하는 방법이나, 딥러닝 모델을 압축하여 연산량을 줄이는 방법 등이 제안되고 있으며, 제안된 방법들을 통해 모바일 및 임베디드 장치에서 딥러닝에 따른 추론 과정을 보다 원활하게 수행하는 것이 가능해졌다.Recently, various methods for efficiently managing resources have been proposed so that the reasoning process according to deep learning can be smoothly performed in a mobile device. For example, a method of applying a hardware-based accelerator to an electronic device or a method of reducing a computation amount by compressing a deep learning model has been proposed. Through the proposed methods, the inference process of deep learning in mobile and embedded devices is proposed. It became possible to perform more smoothly.
추론 과정은 딥러닝을 통해 임의의 입력과 대응되는 출력을 획득하는 과정을 의미할 수 있다. 또한, 딥러닝 모델은 추론 과정에 이용될 수 있는 알고리즘으로서, 신경망을 구성하는 복수의 레이어들의 구조를 정의하거나 레이어 별로 수행되는 연산의 매개 변수 또는 가중치를 정의하는데 이용될 수 있다.The inference process may mean a process of obtaining an output corresponding to an arbitrary input through deep learning. In addition, the deep learning model is an algorithm that can be used in an inference process, and can be used to define a structure of a plurality of layers constituting a neural network or define a parameter or weight of an operation performed for each layer.
일 실시 예에 따르면, 딥러닝 모델에 기초하여 정의된 매개 변수 또는 가중치는 트레이닝 과정을 통해 학습(learning), 즉, 갱신될 수 있다. 트레이닝 과정은 많은 연산 처리량을 필요로 하기 때문에 클라우드 등 서버를 통해 수행될 수 있으며, 이를 통해 학습된 딥러닝 모델은 스마트 폰, 감시 카메라, 스마트 스피커 및 자율 주행 차량 등 다양한 모바일 장치들에 제공될 수 있다. 이렇게 하여, 다양한 모바일 장치들에 제공된 딥러닝 모델은 애플리케이션에서 입력된 데이터를 분류하고 결과를 예측하는 추론 과정에 이용될 수 있다.According to an embodiment of the present disclosure, a parameter or weight defined based on the deep learning model may be learned, that is, updated through a training process. Since the training process requires a lot of computational processing, it can be performed through a server such as a cloud, and the deep learning model learned through this can be provided to various mobile devices such as smart phones, surveillance cameras, smart speakers, and autonomous vehicles. have. In this way, deep learning models provided to various mobile devices can be used in the inference process to classify the data input from the application and predict the results.
한편, 추론 과정은 트레이닝 과정에 비해 상대적으로 적은 연산 처리량을 필요로 할 수 있으나 모바일 장치에서 프로세서의 성능 및 공급 가능한 전력량은 한정적일 수밖에 없으므로, 연산에 따른 레이턴시(latency)와 전력 효율성은 추론 과정에서 주요한 성능 지표로 고려될 수 있다. 예를 들어, 모바일 장치에서 실행되는 STT(speech-to-text) 애플리케이션 또는 번역 애플리케이션의 결과값이 추론 과정을 통해 출력되거나 자율 주행에 이용되는 판단의 결과값이 추론 과정을 통해 출력되는 경우, 각각의 결과값은 최대한 빨리 출력될 것을 요청 받을 수 있다. 이 경우, 모바일 장치는 프로세서의 성능을 상향 조정하여 추론 과정에 따른 결과값을 짧은 레이턴시(예: 200 ms)로 출력할 수 있다. 하지만, 이와 동시에 고려되어야 할 사항은 모바일 장치가 공급할 수 있는 전력량으로서, 결과값을 짧은 레이턴시로 출력하기 위해 프로세서의 성능이 상향 조정될 경우 상대적으로 많은 양의 전력이 소모될 수 있기 때문에, 모바일 장치에서 프로세서의 성능을 상향 조정하는 데는 제한이 따를 수밖에 없다. 결국, 모바일 장치에서 추론 과정에 따른 연산이 수행될 때 레이턴시 및 소모 전력은 상호 트레이드 오프(trade off) 관계에 있는 것으로 볼 수 있으며, 이에 따라, 출력되는 결과값 별로 요청되는 최적의 레이턴시를 고려하여 프로세서의 성능이 동적으로 조정될 필요가 있다.On the other hand, the inference process may require relatively less computational throughput than the training process, but the performance and power supply of the processor in the mobile device may be limited, so the latency and power efficiency of the computation may be It can be considered as a major performance indicator. For example, when a result of a speech-to-text (STT) application or a translation application executed on a mobile device is output through an inference process or a result of a judgment used for autonomous driving is output through an inference process, respectively. The result of can be requested to be printed as soon as possible. In this case, the mobile device may increase the performance of the processor and output the result value according to the inference process with a short latency (for example, 200 ms). However, at the same time, it is important to consider that the amount of power that a mobile device can supply is a relatively large amount of power that can be consumed if the performance of the processor is increased to output the result with short latency. Increasing the processor's performance is subject to limitations. As a result, when the calculation according to the inference process is performed in the mobile device, the latency and power consumption may be considered to be in a trade off relationship. Accordingly, in consideration of the optimal latency requested for each output result, The performance of the processor needs to be dynamically adjusted.
나아가, 모바일 장치에서 추론 과정을 이용하여 판단을 수행함에 있어, 매 판단 시 마다 지정된 레이턴시에 따라 일정한 간격으로 결과값이 출력되도록 설정되는 것은 매 판단 시 마다 정확한 결과값이 출력되도록 설정되는 것만큼이나 결과값의 신뢰성 제고 측면에서 중요한 요소일 수 있다. 예컨대, 모바일 장치에서 추론 과정을 이용하여 자율 주행에 필요한 판단을 수행할 때, 매 판단 시 마다 서로 다른 레이턴시에 따라 결과값이 출력된다면, 결과값이 출력되는 시간을 예측하기 어려워 자율 주행의 안정성이 저해될 수 있으며, 이에 따라, 상기 추론 과정에 이용되는 딥러닝 모델은 자율 주행에 필요한 판단을 수행할 때 이용되기 어려울 수 있다.Furthermore, in performing the determination using the inference process in the mobile device, the result values are set to be output at regular intervals according to the specified latency at each determination, as much as the correct result is output at each determination. This may be an important factor in terms of increasing the reliability of the value. For example, when performing a judgment required for autonomous driving using a reasoning process in a mobile device, if the result value is output according to a different latency at each determination, it is difficult to predict the time at which the result value is output. As a result, the deep learning model used in the inference process may be difficult to use when performing the judgment required for autonomous driving.
본 문서에 개시된 다양한 실시 예들은 딥러닝 모델을 이용하여 추론 과정을 수행함에 있어, 추론 과정에 따른 결과값이 출력되는 시점을 예측 가능한 범위 이내로 설정하기 위하여 프로세서의 성능을 동적으로 조정할 수 있는 방법을 제안한다. 예컨대, 일 실시 예에 따른 전자 장치는 출력되는 결과값 별로 요청되는 최적의 레이턴시를 계산하고, 계산된 레이턴시에 따라 결과값이 출력될 수 있도록 전자 장치 내 적어도 하나의 프로세서의 성능을 조정할 수 있다.In various embodiments of the present disclosure, in performing an inference process using a deep learning model, a method of dynamically adjusting a processor's performance in order to set a time point at which a result value according to the inference process is output within a predictable range is provided. Suggest. For example, the electronic device according to an embodiment may calculate an optimal latency requested for each output value and adjust the performance of at least one processor in the electronic device to output the result value according to the calculated latency.
본 문서에 개시된 다양한 실시 예들에 따라 딥러닝 모델을 이용하여 연산을 수행하는 전자 장치는, 입력 데이터가 수신되면 딥러닝 모델을 이용하여 상기 입력 데이터에 대한 연산을 수행하고, 상기 입력 데이터에 대한 연산이 수행될 때 상기 딥러닝 모델에 포함된 복수의 레이어들 중 적어도 하나의 레이어에 미리 할당된 마일스톤 식별자를 식별하는 레이어 관리부, 상기 마일스톤 식별자가 식별되는 것에 응답하여, 상기 입력 데이터에 대한 연산이 시작된 후 상기 마일스톤 식별자가 식별된 시점까지의 소요 시간을 측정하여 저장하고, 상기 저장된 소요 시간 및 미리 설정된 목표 시간을 이용하여 지연 값을 획득하는 성능 확인부, 상기 획득된 지연 값이 미리 설정된 값을 기준으로 하여 임계 범위 내에 있는지 여부를 판단하고, 상기 판단 결과에 기초하여 적어도 하나의 프로세서의 성능을 조정하기 위한 제어 명령을 생성하는 지연 제어부, 상기 생성된 제어 명령에 따라, 상기 전자 장치 내 적어도 하나의 프로세서의 주파수를 변경하는 리소스 관리부, 및 상기 주파수가 변경된 적어도 하나의 프로세서를 통해 상기 입력 데이터에 대한 연산이 속행될 때 종료 식별자가 식별되는 것에 응답하여, 상기 수신된 입력 데이터와 대응되는 출력 데이터로서 상기 종료 식별자가 식별된 시점까지 연산된 데이터를 제공하는 입출력부를 포함할 수 있다. According to various embodiments of the present disclosure, when an electronic device performs an operation using a deep learning model, the electronic device performs an operation on the input data using the deep learning model and receives an operation on the input data. A layer manager for identifying a milestone identifier pre-allocated to at least one of a plurality of layers included in the deep learning model, and in response to the milestone identifier being identified, the operation on the input data is started. A performance checking unit for measuring and storing a time required until the time point at which the milestone identifier is identified, and obtaining a delay value using the stored time required and a predetermined target time; and the obtained delay value is based on a preset value. It is determined whether or not within the threshold range, and based on the determination result A delay controller for generating a control command for adjusting the performance of at least one processor, a resource manager for changing a frequency of at least one processor in the electronic device according to the generated control command, and at least the frequency of which is changed In response to the termination identifier being identified when the operation on the input data is continued through one processor, an input / output for providing the calculated data to the time point at which the termination identifier is identified as output data corresponding to the received input data. It may include wealth.
또한, 본 문서에 개시된 다양한 실시 예들에 따라 딥러닝 모델을 이용하여 연산을 수행하는 전자 장치를 제어하는 방법은, 입력 데이터가 수신되면 딥러닝 모델을 이용하여 상기 입력 데이터에 대한 연산을 수행하는 단계, 상기 입력 데이터에 대한 연산이 수행될 때 상기 딥러닝 모델에 포함된 복수의 레이어들 중 적어도 하나의 레이어에 미리 할당된 마일스톤 식별자를 식별하는 단계, 상기 마일스톤 식별자가 식별되는 것에 응답하여, 상기 입력 데이터에 대한 연산이 시작된 후 상기 마일스톤 식별자가 식별된 시점까지의 소요 시간을 측정하여 저장하는 단계, 상기 저장된 소요 시간 및 미리 설정된 목표 시간을 이용하여 지연 값을 획득하는 단계, 상기 획득된 지연 값이 미리 설정된 값을 기준으로 하여 임계 범위 내에 있는지 여부를 판단하는 단계, 상기 판단 결과에 기초하여 적어도 하나의 프로세서의 성능을 조정하기 위한 제어 명령을 생성하는 단계, 상기 생성된 제어 명령에 따라, 상기 전자 장치 내 적어도 하나의 프로세서의 주파수를 변경하는 단계, 및 상기 주파수가 변경된 적어도 하나의 프로세서를 통해 상기 입력 데이터에 대한 연산이 속행될 때 종료 식별자가 식별되는 것에 응답하여, 상기 입력 데이터와 대응되는 출력 데이터로서 상기 종료 식별자가 식별된 시점까지 연산된 데이터를 제공하는 단계를 포함할 수 있다.Also, according to various embodiments of the present disclosure, a method of controlling an electronic device that performs an operation using a deep learning model may include performing an operation on the input data using a deep learning model when input data is received. Identifying a milestone identifier previously assigned to at least one of a plurality of layers included in the deep learning model when the operation on the input data is performed; and in response to the milestone identifier being identified, the input Measuring and storing the time required until the milestone identifier is identified after the operation on the data is started, acquiring a delay value using the stored time required and a predetermined target time, and obtaining the delay value Determining whether it is within a threshold range based on a preset value Generating a control command for adjusting the performance of at least one processor based on the determination result, changing a frequency of at least one processor in the electronic device according to the generated control command, and the frequency Responsive to identifying an end identifier when the operation on the input data is continued through the at least one processor having changed, providing output data corresponding to the input data until the point at which the end identifier is identified. It may include a step.
본 문서에 개시된 다양한 실시 예들에 따르면, 전자 장치는 딥러닝 모델을 통해 추론 과정을 수행함에 있어 추론 과정에 따른 결과값이 예측 가능한 시간 범위 안에서 출력되도록 설정될 수 있다. 이처럼, 추론 과정에 따른 결과값이 예측 가능한 시간 범위 안에서 출력되도록 설정됨에 따라, 딥러닝 모델을 이용하는 전자 장치의 안정성과 딥러닝에 따른 연산의 신뢰성이 보장될 수 있다.According to various embodiments of the present disclosure, in performing an inference process through a deep learning model, the electronic device may be configured to output a result value according to the inference process within a predictable time range. As such, as the result value according to the inference process is set to be output within a predictable time range, the stability of the electronic device using the deep learning model and the reliability of the operation according to the deep learning can be guaranteed.
또한, 본 문서에 개시된 다양한 실시 예들에 따르면, 전자 장치는 추론 과정에 따른 결과값이 지정된 레이턴시에 따라 출력되도록 하기 위해 적어도 하나의 프로세서의 성능을 동적으로 조정할 수 있다. 이에 따라, 프로세서의 성능이 필요 이상으로 상향 조정되는 경우가 사라지게 됨에 따라, 전자 장치 내 소모 전력을 효율적으로 관리할 수 있다.In addition, according to various embodiments of the present disclosure, the electronic device may dynamically adjust the performance of at least one processor so that a result value according to an inference process is output according to a specified latency. Accordingly, the case in which the performance of the processor is adjusted upward more than necessary disappears, so that power consumption in the electronic device can be managed efficiently.
도 1은 본 발명의 일 실시 예에 따른 전자 장치의 구성을 도시한 도면이다.
도 2는 본 발명의 일 실시 예에 따른 전자 장치에 구비되는 런타임 모듈의 구성을 도시한 도면이다.
도 3은 본 발명의 일 실시 예에 따른 전자 장치에 구비되는 피드백 회로의 구성을 도시한 도면이다.
도 4는 본 발명의 일 실시 예에 따라 딥러닝 모델에 마일스톤 식별자를 할당하는 방법을 설명하기 위한 도면이다.
도 5는 본 발명의 일 실시 예에 따른 전자 장치에서 딥러닝 모델에 마일스톤 식별자를 할당하는 동작을 설명하기 위한 순서도이다.
도 6은 본 발명의 일 실시 예에 따른 전자 장치에서 딥러닝 모델을 통한 추론 과정을 수행할 때, 적어도 하나의 프로세서의 성능을 제어하는 방법을 설명하기 위한 순서도이다.1 is a diagram illustrating a configuration of an electronic device according to an embodiment of the present disclosure.
2 is a diagram illustrating a configuration of a runtime module included in an electronic device according to an embodiment of the present disclosure.
3 is a diagram illustrating a configuration of a feedback circuit included in an electronic device according to an embodiment of the present disclosure.
4 is a diagram for describing a method of allocating a milestone identifier to a deep learning model according to an exemplary embodiment.
5 is a flowchart illustrating an operation of allocating a milestone identifier to a deep learning model in an electronic device according to an embodiment of the present disclosure.
6 is a flowchart illustrating a method of controlling performance of at least one processor when performing an inference process through a deep learning model in an electronic device according to an embodiment of the present disclosure.
본 문서에 개시된 다양한 실시 예들은 본 발명을 특정한 실시 형태로 한정하기 위해 제시된 것이 아니며, 다양한 실시 예들을 통해 소개된 구성요소들은 본 발명의 사상 및 기술 범위에 포함되는 모든 변경 가능한 균등물 내지 대체물을 포함하는 의미로서 제시된 것임을 당업자는 용이하게 이해할 것이다. 또한, 각 도면을 설명함에 있어, 다르게 정의되지 않는 한 기술적이거나 과학적인 용어를 포함해서 본 명세서 상에서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 사람에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있는 것으로 해석될 수 있다. 또한, 본 발명의 목적 및 효과, 그리고 그것들을 달성하기 위한 기술적 구성들은 첨부되는 도면과 함께 상세하게 설명되는 실시 예들을 통해 명확해질 것이다. 본 발명을 설명함에 있어 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우, 그와 관련된 상세한 설명은 생략될 수 있으며, 뒤에 설명되는 용어들은 본 발명에서의 구조, 역할 및 기능 등을 고려하여 정의된 용어들로서 이는 사용자 및 운용자의 의도 또는 관례 등에 따라 기존에 사용되던 의미와 달리 해석될 수 있다.The various embodiments disclosed in this document are not presented to limit the present invention to specific embodiments, and the components introduced through the various embodiments are not limited to all changeable equivalents or substitutes included in the spirit and technical scope of the present invention. It will be readily understood by those skilled in the art that the present invention is presented in the meaning included. In addition, in describing each of the drawings, all terms used in the present specification, including technical or scientific terms, unless otherwise defined, are generally understood by those of ordinary skill in the art. It can be interpreted as having the same meaning. In addition, the objects and effects of the present invention, and the technical configurations for achieving them will be apparent through the embodiments described in detail with the accompanying drawings. In the following description of the present invention, when it is determined that a detailed description of a known function or configuration may unnecessarily obscure the subject matter of the present invention, a detailed description thereof may be omitted, and the terminology described hereinafter will be described in detail. As terms defined in consideration of roles, functions, and the like, they may be interpreted differently from the meanings used in the past according to intentions or customs of users and operators.
본 발명은 이하에서 개시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있음을 밝혀둔다. 본 문서에 개시된 다양한 실시 예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 오로지 특허청구범위에 기재된 청구항의 범주에 의하여 정의될 뿐이다. It is to be understood that the present invention is not limited to the embodiments disclosed below but may be implemented in various different forms. Various embodiments disclosed in this document are provided to make the disclosure of the present invention complete, and to fully inform the scope of the invention to those skilled in the art to which the present invention pertains. It is only defined by the scope of the claims set forth in the scope.
본 문서에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있다는 것을 의미한다. 또한, 본 발명의 다양한 실시 예들에 있어서, 각 구성요소들, 기능 블록들 또는 수단들은 하나 또는 그 이상의 하부 구성요소로 구성될 수 있고, 각 구성요소들이 수행하는 전기, 전자, 기계적 기능들은 전자회로, 집적회로, ASIC(application specific integrated circuit) 등 공지된 다양한 소자들 또는 기계적 요소들로 구현될 수 있으며, 각각 별개로 구현되거나 2 이상이 하나로 통합되어 구현될 수도 있다. In this document, when a part is said to "include" a certain component, it means that it can further include other components, without excluding the other components unless otherwise stated. In addition, in various embodiments of the present disclosure, each component, functional block, or means may be composed of one or more subcomponents, and the electrical, electronic, and mechanical functions performed by each component are electronic circuits. It may be implemented by various known elements or mechanical elements such as an integrated circuit, an application specific integrated circuit (ASIC), and may be implemented separately or two or more may be integrated into one.
한편, 첨부된 블록도의 블록들이나 흐름도의 단계들은 범용 컴퓨터, 특수용 컴퓨터, 휴대용 노트북 컴퓨터, 네트워크 컴퓨터 등 데이터 프로세싱이 가능한 장비의 프로세서나 메모리에 탑재되어 지정된 기능들을 수행하는 컴퓨터 프로그램 인스트럭션들을 의미하는 것으로 해석될 수 있다. 이들 컴퓨터 프로그램 인스트럭션들은 컴퓨터 장치에 구비된 메모리 또는 컴퓨터에서 판독 가능한 메모리에 저장될 수 있기 때문에, 블록도의 블록들 또는 흐름도의 단계들에서 설명된 기능들은 이를 수행하는 인스트럭션 수단을 내포하는 제조물로 생산될 수도 있다. 아울러, 각 블록 또는 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 가능한 실시 예들에서는 블록들 또는 단계들에서 언급된 기능들이 정해진 순서와 달리 실행되는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 실질적으로 동시에 수행되거나, 역순으로 수행될 수 있으며, 경우에 따라 일부 블록들 또는 단계들이 생략된 채로 수행될 수도 있다.Meanwhile, the steps of the blocks or flowcharts in the attached block diagrams refer to computer program instructions that are mounted in a processor or memory of a data processing device such as a general purpose computer, a special purpose computer, a portable notebook computer, a network computer, and perform specified functions. Can be interpreted. Since these computer program instructions may be stored in a memory provided in a computer device or in a computer readable memory, the functions described in the blocks of the block diagram or the steps of the flowchart are produced as an article containing an instruction means for performing this. May be In addition, each block or step may represent a portion of a module, segment, or code that includes one or more executable instructions for executing a specified logical function (s). It should also be noted that in some alternative embodiments, the functions recited in blocks or steps may be executed in a different order. For example, two blocks or steps shown in succession may be performed substantially concurrently or in reverse order, and in some cases, some blocks or steps may be omitted.
도 1은 본 발명의 일 실시 예에 따른 전자 장치의 구성을 도시한 도면이다. 다양한 실시 예들에 따르면, 전자 장치(100)는 애플리케이션(110), 런타임 모듈(120), 프로세서(130), 센서(140), 저장부(150) 및 입출력부(160) 중 적어도 하나를 포함할 수 있다. 여기서, 런타임 모듈(120)은 특정 인스트럭션을 수행하는 모듈을 의미하기 위해 사용되었으며, 상기 모듈들을 통해 수행되는 인스트럭션들은 전자 장치의 프로세서(130)에 의해 수행되는 것으로 이해될 수 있음을 밝혀둔다.1 is a diagram illustrating a configuration of an electronic device according to an embodiment of the present disclosure. According to various embodiments of the present disclosure, the
전자 장치(100)의 애플리케이션(110)은 특정 업무를 수행할 수 있는 프로그램 또는 상기 프로그램이 실행되는 모듈을 의미할 수 있다. 일 실시 예에 따르면, 애플리케이션(110)은 딥러닝 모델을 통한 추론 과정을 호출하거나 추론 과정을 통해 획득된 결과 데이터를 미리 정해진 방식에 따라 사용자에게 제공하는 동작을 수행할 수 있다. 애플리케이션(110)은 입력 데이터가 수신되는 것에 응답하여 추론 과정을 호출하도록 설정될 수 있으며, 호출된 추론 과정은 센서(140)에서 수신되는 데이터에 기초하여 런타임 모듈(120)을 통해 주기적 또는 비주기적으로 수행될 수 있다.The
일 실시 예에 따르면, 애플리케이션(110)은 미리 설정된 QoS(quality of service) 데이터를 참고하여 특정 딥러닝 모델(M)을 호출할 수 있다. 여기서, QoS 데이터란 서비스 품질을 나타내는 지표로서, 상기 지표는 네트워크 또는 프로세서 상에서 일정 정도 이하의 레이턴시나 데이터 손실률 등을 보장하기 위한 용도로 이용될 수 있다. 예컨대, QoS 데이터를 나타내는 Q는 하기 수학식 1과 같이 정의될 수 있다.According to an embodiment of the present disclosure, the
상기 수학식 1에서, d는 딥러닝 모델(M)을 통해 추론 과정을 수행함에 있어, 출력 데이터의 획득이 요청되는 제 1 응답 시간을 나타내는 값일 수 있다. 예컨대, 제 1 응답 시간은 추론 과정이 시작되는 시점부터 종료되는 시점까지의 소요 시간을 의미할 수 있다. 또한, 상기 수학식 1에서, C는 딥러닝 모델(M)에 대한 압축 범위(compression bound)를 나타내는 값일 수 있다.In
일 실시 예에 따르면, 애플리케이션(110)은 미리 설정된 QoS 데이터에 기초하여 딥러닝 모델(M)이 호출되는 경우, QoS 데이터와 함께 딥러닝 모델(M)을 런타임 모듈(120)로 전달할 수 있다.According to an embodiment of the present disclosure, when the deep learning model M is called based on preset QoS data, the
전자 장치(100)의 런타임 모듈(120)은 입출력부(160)를 통해 수신되는 입력 데이터와 애플리케이션(110)으로부터 수신되는 딥러닝 모델을 이용하여, 딥러닝 연산을 수행할 수 있다. 예컨대, 런타임 모듈(120)은 입력 데이터로서 "고양이 사진"이 수신되고 입력 데이터가 무엇인지 묻는 질문 데이터가 식별되는 경우, 식별된 질문 데이터에 대한 답변 데이터를 생성하기 위해 딥러닝 모델에 포함된 복수의 레이어들 중 하나 이상의 레이어들 각각에 정의된 연산 방법을 이용하여 입력 데이터에 대한 연산을 수행할 수 있다. 런타임 모듈(120)은 연산을 수행한 결과로서 "고양이"라는 답변 데이터가 획득할 수 있으며, 획득된 답변 데이터를 입력 데이터의 추론 결과로서 애플리케이션(110)에 전달할 수 있다.The
일 실시 예에 따르면, 런타임 모듈(120)은 애플리케이션(110)으로부터 QoS 데이터 및 딥러닝 모델이 수신되는 경우, QoS 데이터를 확인하여 딥러닝 모델에 대한 압축을 수행할 수 있다. 예를 들어, 런타임 모듈(120)은 QoS 데이터로부터 출력 데이터의 획득이 요청되는 제 1 응답 시간을 확인할 수 있다. 또한, 런타임 모듈(120)은 딥러닝 모델 내 복수의 레이어들 각각을 이용하여 연산을 수행하는데 소요되는 시간을 합산하여 총 소요 시간을 확인할 수 있다. 만약, 총 소요 시간이 제 1 응답 시간을 초과하는 것으로 판단되는 경우, 런타임 모듈(120)은 딥러닝 모델에 대한 압축을 수행하여 딥러닝 모델을 이용한 연산에 소요되는 시간을 줄일 수 있다. According to an embodiment of the present disclosure, when the QoS data and the deep learning model are received from the
일 실시 예에 따르면, 런타임 모듈(120)은 딥러닝 모델을 이용하여 입력 데이터에 대한 연산을 수행하면서 연산이 진행되는 속도를 일정한 간격으로 확인할 수 있으며, 확인 결과에 기초하여 프로세서(130)의 동작 속도를 제어함으로써 연산에 따른 결과 데이터가 목표 시간보다 빨리 또는 늦게 출력되지 않도록 할 수 있다. 예컨대, 런타임 모듈(120)은 딥러닝 모델에 대한 압축을 수행할 때, 딥러닝 모델 내 복수의 레이어들 중 적어도 하나의 레이어에 제 1 마일스톤 식별자를 할당할 수 있다. 이 후 런타임 모듈(120)은 딥러닝 모델을 이용하여 입력 데이터에 대한 연산을 수행하던 중 미리 할당된 제 1 마일스톤 식별자가 확인되면, 연산이 시작된 시점 또는 앞서 다른 마일스톤 식별자가 확인된 시점부터 제 1 마일스톤 식별자가 확인된 시점까지의 연산에 실제로 소요된 시간인 제 2 응답 시간을 측정할 수 있다. 이와 동시에, 런타임 모듈(120)은 연산이 시작된 시점 또는 앞서 다른 마일스톤 식별자가 확인된 시점부터 제 1 마일스톤 식별자가 확인된 시점까지의 연산에 소요되어야 하는 제 1 목표 시간을 확인할 수 있다. 다양한 실시 예들에 따르면, 런타임 모듈(120)은 제 k 시점에 제 2 응답 시간의 제 1 목표 시간에 대한 비율을 지연 값으로서 획득할 수 있으며, 제 k 시점의 지연 값은 하기 수학식 2와 같이 정의될 수 있다.According to an embodiment of the present disclosure, the
만약, 지연 값이 1보다 크다면, 런타임 모듈(120)을 통한 연산은 목표로 설정된 시간보다 느리게 수행되고 있는 것으로 판단될 수 있다. 반면에, 지연 값이 1보다 작다면, 런타임 모듈(120)을 통한 연산은 목표로 설정된 속도보다 빠르게 수행되고 있는 것으로 판단될 수 있다. If the delay value is larger than 1, it may be determined that the operation through the
일 실시 예에 따르면, 런타임 모듈(120)은 연산이 목표로 설정된 속도보다 느리게 수행되고 있는 것으로 판단되는 경우, 연산에 이용되는 프로세서(130)의 동작 속도를 상향 조정할 수 있다. 또한, 런타임 모듈(120)은 연산이 목표로 설정된 시간보다 빠르게 수행되고 있는 것으로 판단되는 경우, 연산에 이용되는 프로세서(130)의 동작 속도를 하향 조정할 수 있다.According to an embodiment of the present disclosure, when it is determined that the operation is being performed slower than the target speed, the
전자 장치(100)의 프로세서(130)는 런타임 모듈(120)에서 수행되는 연산 중 적어도 일부를 처리할 수 있다. 예컨대, 프로세서(130)는 딥러닝 모델 내 복수의 레이어들 중 적어도 하나의 레이어에서 수행되는 연산을 수행한 후, 그 결과 데이터를 런타임 모듈(120)로 제공할 수 있다. 다양한 실시 예들에 따르면, 프로세서(130)는 런타임 모듈(120)을 포함하는 형태로 구현될 수 있으며, 이 경우 런타임 모듈(120)에서 수행되는 모든 인스트럭션들은 프로세서(130)에서 수행되는 것으로 이해될 수 있다.The
일 실시 예에 따르면, 프로세서(130)는 하나 이상의 프로세서들을 포함할 수 있다. 예컨대, 프로세서(130)는 하나 이상의 중앙처리장치(central processing unit, CPU)들 및 하나 이상의 그래픽처리장치(graphics processing unit, GPU)들을 포함할 수 있다. 프로세서(130)는 딥러닝 모델 내 복수의 레이어들 각각의 타입에 기초하여 연산을 수행하는데 필요한 처리장치를 선택할 수 있으며, 선택된 처리장치를 이용하여 연산을 수행할 수 있다. According to an embodiment of the present disclosure, the
일 실시 예에 따르면, 프로세서(130)는 런타임 모듈(120)로부터 동작 속도를 상향 조정하는 것과 대응되는 제어 명령이 수신되는 경우, 수신된 제어 명령과 대응되는 프로세서(130)의 주파수를 상향 조정하여 연산 처리 속도를 높일 수 있다. 반면에, 프로세서(130)는 런타임 모듈(120)로부터 동작 속도를 하향 조정하는 것과 대응되는 제어 명령이 수신되는 경우, 수신된 제어 명령과 대응되는 프로세서(130)의 주파수를 하향 조정하여 연산 처리 속도를 낮출 수 있다. According to an embodiment of the present disclosure, when a control command corresponding to increasing the operation speed is received from the
전자 장치(100)의 센서(140)는 전자 장치(100)의 내부의 작동 상태(예: 전력 또는 온도), 또는 외부의 환경 상태에 대응하는 전기 신호 또는 데이터 값을 생성할 수 있다. 예컨대, 센서(140)는 제스처 센서, 자이로 센서, 기압 센서, 마그네틱 센서, 가속도 센서, 그립 센서, 근접 센서, 컬러 센서, IR(infrared) 센서, 생체 센서, 온도 센서, 습도 센서 및 조도 센서 중 적어도 하나를 포함할 수 있다. 일 실시 예에 따르면, 전자 장치(100)는 자율 주행 차량에 장착된 후 센서(140)로부터 획득되는 입력 데이터를 이용하여 딥러닝 모델을 통한 연산을 수행할 수 있고, 딥러닝 모델을 통한 연산의 결과 값으로 출력 데이터를 생성하여 자율 주행 차량에 제공할 수 있다. The
전자 장치(100)의 저장부(150)는 전자 장치(100)의 적어도 하나의 구성 요소에 의해 사용되는 다양한 데이터를 저장할 수 있다. 여기서, 데이터는 소프트웨어 및 이와 관련된 명령에 대한 입력 데이터 또는 출력 데이터를 포함할 수 있다. 또한, 저장부(150)는 휘발성 메모리 또는 비휘발성 메모리를 포함할 수 있다. 일 실시 예에 따르면, 저장부(150)는 입력 데이터에 대한 연산을 수행할 때 이용될 수 있는 하나 이상의 딥러닝 모델들과 하나 이상의 딥러닝 모델들에 포함된 복수의 레이어들에 대한 정보를 저장할 수 있다. The
전자 장치(100)의 입출력부(160)는 전자 장치(100)의 구성 요소에 사용될 명령 또는 데이터를 전자 장치(100)의 외부(예: 사용자)로부터 수신하거나 외부로 제공할 수 있다. 입출력부(160)는 입력부 및 출력부로 구분될 수 있으며, 입력부는 마우스, 키보드 및 터치 패드를 포함할 수 있고 출력부는 디스플레이 및 스피커를 포함할 수 있다.The input /
도 2는 본 발명의 일 실시 예에 따른 전자 장치에 구비되는 런타임 모듈의 구성을 도시한 도면이다. 다양한 실시 예들에 따르면, 전자 장치(100)는 런타임 모듈(120), 프로세서(130), 저장부(150) 및 입출력부(160) 중 적어도 하나를 포함할 수 있다. 또한, 런타임 모듈(120)은 QoS 관리부(200) 및 실행 관리부(210)를 포함할 수 있다. 또한, QoS 관리부(200)는 모델 압축부(201), 마일스톤 식별자 할당부(203), 성능 확인부(205), 지연 제어부(207) 및 리소스 관리부(209)를 포함할 수 있다. 또한, 실행 관리부(210)는 데이터 전처리부(211), 모델 관리부(213) 및 레이어 관리부(215)를 포함할 수 있다. 또한, 프로세서(130)는 중앙처리장치(220) 및 그래픽처리장치(225)를 포함할 수 있다. 2 is a diagram illustrating a configuration of a runtime module included in an electronic device according to an embodiment of the present disclosure. According to various embodiments of the present disclosure, the
일 실시 예에 따르면, QoS 관리부(200)는 QoS 데이터에 기초하여, 딥러닝 모델을 압축하거나 프로세서(130)의 동작 속도를 제어할 수 있다. 실행 관리부(210)는 딥러닝 모델을 통해 입력 데이터에 대한 연산을 수행하거나 딥러닝 모델 내 적어도 일부의 레이어들에 할당된 마일스톤 식별자를 식별할 수 있다. According to an embodiment of the present disclosure, the QoS manager 200 may compress the deep learning model or control the operation speed of the
QoS 관리부(200)의 모델 압축부(201)는 미리 설정된 QoS 데이터를 통해 확인된 d (딥러닝 모델을 통해 추론 과정을 수행함에 있어, 출력 데이터의 획득이 요청되는 제 1 응답 시간) 및 C (딥러닝 모델에 대한 압축 범위)를 이용하여, 딥러닝 모델에 대한 압축이 필요한 지 여부를 판단할 수 있다. 예컨대, 추론 과정에 대한 호출이 있을 경우, 모델 압축부(201)는 상기 호출에 따라 선택된 딥러닝 모델의 메모리 사용량 및 전자 장치(100)의 가용 메모리의 양을 체크할 수 있으며, 상기 체크 결과에 따라 딥러닝 모델에 대한 압축량을 결정할 수 있다. 한편, 모델 압축부(201)는 딥러닝 모델에 대한 압축을 수행함에 있어, 추론 과정의 정확도가 예기치 않을 정도로 손실되는 것을 방지하기 위하여, 단계적인 압축 방법을 이용할 수 있다. 예컨대, 모델 압축부(201)는 딥러닝 모델에 대한 압축을 할 때, 적절한 순위를 선택함으로써 압축의 수준을 제어할 수 있는 특이값 분해 (singular value decomposition) 기술을 통한 근사 방법을 이용할 수 있다. 또는, 모델 압축부(201)는 딥러닝 모델을 통한 연산에 소요되는 총 소요 시간 및 제 1 응답 시간 간의 비교를 통해 딥러닝 모델에 대한 압축의 수준을 결정할 수 있다. 예컨대, 딥러닝 모델을 통한 연산에 소요되는 총 소요 시간이 제 1 응답 시간보다 긴 것으로 판단되는 경우, 모델 압축부(201)는 총 소요 시간 및 제 1 응답 시간 간의 차이를 계산할 수 있으며 계산 결과에 따라 상기 딥러닝 모델에 대한 압축 수준을 결정할 수 있다. 한편, 모델 압축부(201)는 딥러닝 모델에 대한 압축 수준이 결정되면 이와 대응되는 제어 명령을 생성하고, 생성된 제어 명령을 모델 관리부(213)로 전달할 수 있다. The
QoS 관리부(200)의 마일스톤 식별자 할당부(203)는 압축이 수행된 딥러닝 모델에 대하여 실행 상태나 통신 상태 등을 해석하는 프로파일링을 수행할 수 있다. 일 실시 예에 따르면, 마일스톤 식별자 할당부(203)는 압축이 수행된 딥러닝 모델 내 복수의 레이어들 각각에 대한 동작 시간을 측정할 수 있다. 이어서, 마일스톤 식별자 할당부(203)는 측정된 동작 시간을 이용하여, 목표로 설정된 시간 간격마다 위치한 레이어들에 마일스톤 식별자를 할당하기 위한 제어 명령을 생성할 수 있다. 예컨대, 마일스톤 식별자 할당부(203)는 압축이 수행된 딥러닝 모델을 통한 연산이 시작된 시점부터 100 ms 간격으로 동작되는 레이어들을 식별할 수 있고, 식별된 레이어들 각각에 마일스톤 식별자를 할당하기 위한 제어 명령을 생성할 수 있다. 보다 구체적으로, 마일스톤 식별자 할당부(203)는 연산이 시작된 후 100 ms 이 경과한 시점에 동작하는 제 1 레이어에 제 1 마일스톤 식별자를 할당하고, 이후 또 다시 100 ms 이 경과한 시점에 동작하는 제 2 레이어에 제 2 마일스톤 식별자를 할당하기 위한 제어 명령을 생성할 수 있다. 한편, 마일스톤 식별자 할당부(203)는 마일스톤 식별자를 할당하기 위해 생성된 제어 명령을 모델 관리부(213)로 전달할 수 있다. The
실행 관리부(210)의 데이터 전처리부(211)는 압축이 수행된 딥러닝 모델에 마일스톤 식별자를 할당하는 동작이 완료된 후, 입력 데이터가 외부로부터 수신되는 것에 응답하여, 딥러닝 모델을 통한 연산에 이용될 수 있도록 수신된 입력 데이터의 형식 또는 내용을 수정할 수 있다. The data preprocessor 211 of the execution manager 210 is used for calculation through the deep learning model in response to the input data being received from the outside after the operation of assigning the milestone identifier to the deep learning model in which the compression is performed is completed. The format or content of the received input data can be modified to make it possible.
실행 관리부(210)의 모델 관리부(213)는 모델 압축부(201)로부터 수신된 제어 명령 또는 마일스톤 식별자 할당부(203)로부터 수신된 제어 명령에 기초하여, 딥러닝 모델에 대한 압축을 수행하거나 딥러닝 모델 내 적어도 하나의 레이어에 마일스톤 식별자를 할당할 수 있다.The
실행 관리부(210)의 레이어 관리부(215)는 데이터 전처리부(211)로부터 형식 또는 내용이 수정된 입력 데이터가 수신되면, 상기 압축이 수행된 딥러닝 모델과 상기 수정된 입력 데이터를 이용하여 추론 과정에 따른 연산을 시작할 수 있다. 예컨대, 레이어 관리부(215)는 압축이 수행된 딥러닝 모델 내 복수의 레이어들 각각의 타입과 대응되는 연산 공식을 이용하여 연산을 진행할 수 있다. 이 때, 연산을 진행하는 순서는 딥러닝 모델 내 복수의 레이어들이 배치된 순서에 따라 진행될 수 있다. The
일 실시 예에 따르면, 레이어 관리부(215)는 연산을 진행 중인 레이어에 마일스톤 식별자가 할당되어 있는지 여부를 확인할 수 있다. 만약, 미리 할당된 제 1 마일스톤 식별자가 확인된다면, 레이어 관리부(215)는 연산이 시작된 시점부터 제 1 마일스톤 식별자가 확인된 시점까지 소요된 시간을 측정한 후, 측정된 소요 시간에 대한 제 1 데이터를 QoS 관리부(200)의 성능 확인부(205)로 전달할 수 있다. 이 후, 레이어 관리부(215)는 연산을 속행하여 미리 할당된 제 2 마일스톤 식별자가 확인된다면, 제 1 마일스톤 식별자가 확인된 시점부터 제 2 마일스톤 식별자가 확인된 시점까지 소요된 시간을 측정한 후, 측정된 소요 시간에 대한 제 2 데이터를 앞서와 마찬가지로 QoS 관리부(200)의 성능 확인부(205)로 전달할 수 있다. 레이어 관리부(215)는 종결 식별자가 확인되기 전까지 연산-식별자 확인-소요 시간 측정-측정 값 전달을 반복할 수 있고, 종결 식별자가 확인되는 것에 응답하여 연산을 종료할 수 있다. 레이어 관리부(215)는 연산이 종료되는 경우, 입력 데이터와 대응되는 출력 데이터로서 연산이 종료되는 시점까지 연산된 데이터를 입출력부(160)를 통해 사용자에게 제공할 수 있다. According to an embodiment of the present disclosure, the
QoS 관리부(200)의 성능 확인부(205)는 레이어 관리부(215)로부터 마일스톤 식별자가 확인되는 시점까지의 소요 시간에 대한 데이터가 수신되는 경우, 수신된 데이터를 이용하여 전자 장치(100) 내 적어도 하나의 구성 요소에 대한 성능을 확인할 수 있다. 일 실시 예에 따르면, 미리 할당된 제 1 마일스톤 식별자가 확인되는 것에 응답하여 레이어 관리부(215)로부터 연산이 시작된 시점부터 제 1 마일스톤 식별자가 확인된 시점까지의 소요 시간에 대한 제 1 데이터가 수신되는 경우, 성능 확인부(205)는 수신된 제 1 데이터에 따른 소요 시간과 미리 설정된 목표 시간을 비교하여 지연 값을 획득할 수 있다. 이 때, 지연 값은 수학식 2에 따라 획득될 수 있다. 예컨대, 제 1 데이터에 따른 소요 시간이 120 ms 으로 측정되고, 목표 시간이 100 ms 으로 설정된 경우, 지연 값은 1.2(=120 ms / 100 ms)로 계산될 수 있다. 한편, 이와 같은 방식으로 계산된 지연 값은 성능 확인부(205)에서 지연 제어부(207)로 전달될 수 있다. When the
QoS 관리부(200)의 지연 제어부(207)는 성능 확인부(205)로부터 수신된 지연 값에 기초하여, 실제 연산이 목표로 설정된 속도보다 빠르게 진행되고 있는지 또는 느리게 진행되고 있는지 여부를 판단할 수 있다. 예컨대, 지연 제어부(207)는 지연 값으로 1.2가 수신되는 경우(즉, 지연 값이 1보다 큰 경우), 실제 연산이 목표로 설정된 속도보다 느리게 진행되고 있는 것으로 판단할 수 있다. 반면에, 지연 제어부(207)는 지연 값이 1보다 작은 경우, 실제 연산이 목표로 설정된 속도보다 빠르게 진행되고 있는 것으로 판단할 수 있다. The
일 실시 예에 따르면, 지연 제어부(207)는 실제 연산이 목표로 설정된 속도보다 느리게 진행되고 있는 것으로 판단되면(지연 값이 1보다 큰 경우), 프로세서(130)의 성능을 상향 조정하도록 지시하는 제어 명령을 생성할 수 있다. 반면에, 지연 제어부(207)는 실제 연산이 목표로 설정된 속도보다 빠르게 진행되고 있는 것으로 판단되면(지연 값이 1보다 작은 경우), 프로세서(130)의 성능을 상향 조정하도록 지시하는 제어 명령을 생성할 수 있다. 한편, 지연 제어부(207)는 프로세서의 성능을 상향 조정 또는 하향 조정하도록 지시하는 제어 명령을 생성함에 있어, 하기 표 1과 같이 미리 설정된 임계 범위를 참고할 수 있다. According to an embodiment of the present disclosure, if it is determined that the actual operation is progressing slower than the target speed (when the delay value is greater than 1), the
상기 표 1에서, 제 1 레벨, 제 2 레벨 및 제 3 레벨은 프로세서의 성능을 조정하는 정도(degree)와 관련된 값으로서, 사용자에 의해 미리 설정될 수 있다. 예컨대, 제 1 레벨 상향 조정(또는 하향 조정)은 프로세서의 주파수를 5%만큼 상향 조정(또는 하향 조정)하는 것을 의미할 수 있다. 또는, 제 1 레벨 상향 조정(또는 하향 조정)은 프로세서의 주파수를 50MHz만큼 상향 조정(또는 하향 조정)하는 것을 의미할 수 있다. 예컨대, 앞선 실시 예와 같이, 지연 값이 1.2로 측정되는 경우, 지연 값은 1보다 크므로 상향 조정이 필요한 경우에 해당하고, 1과 지연 값의 차이는 0.2로 계산될 수 있다. 이 경우, 지연 제어부(207)는 상기 표 1에 정의된 바를 참고하여, 프로세서의 성능이 제 2 레벨 상향 조정될 필요가 있는 것으로 판단할 수 있고, 이와 대응되는 제어 명령을 생성할 수 있다. In Table 1, the first level, the second level, and the third level are values related to a degree of adjusting the performance of the processor, and may be preset by the user. For example, the first level upward adjustment (or downward adjustment) may refer to an upward adjustment (or downward adjustment) of the frequency of the processor by 5%. Alternatively, the first level up adjustment (or down adjustment) may mean that the frequency of the processor is adjusted up (or down) by 50 MHz. For example, as described above, when the delay value is measured as 1.2, since the delay value is larger than 1, it corresponds to a case where upward adjustment is required, and the difference between 1 and the delay value may be calculated as 0.2. In this case, the
일 실시 예에 따르면, 지연 제어부(207)는 프로세서(130)의 성능을 상향 조정(또는 하향 조정)하도록 지시하는 제어 명령을 생성함에 있어, PI(proportional integral) 제어기를 통해 근사화된 하기 수학식 3을 이용할 수 있다. According to one embodiment, the
상기 수학식 3에서, speed(k)는 k 시점 이전에 획득된 데이터에 기초하여 k 시점에 필요한 프로세서(130)의 성능을 의미할 수 있다. 예컨데, k-1시점의 프로세서 성능 speed(k-1)보다 k시점의 프로세서의 성능 speed(k)가 10% 큰 경우, 프로세서의 주파수를 10% 증가시켜야 한다. 반대로, speed(k)가 speed(k-1)보다 적은 경우, 프로세서의 주파수를 감소시켜야 한다. 여기서, Kp 및 KI는 실험적으로 획득된 PI 제어기의 이득이고, e(k)는 에러 값으로서 k 시점에 획득된 지연 값과 기준 값의 차이를 의미할 수 있다. 예컨대, k 시점에 획득된 지연 값을 지연값(k)라고 정의하고, 기준 값을 1로 정의하면, e(k)는 1-지연값(k)를 의미할 수 있다.In Equation 3, speed (k) may mean the performance of the
다양한 실시 예들에 따르면, 상기 수학식 3의 Kp 및 KI 는 하기 표 2와 같이 실험적으로 획득될 수 있다.According to various embodiments, K p and K I of Equation 3 may be experimentally obtained as shown in Table 2 below.
상기 표 2에 따르면, 조정이 필요한 프로세서(130)가 중앙처리장치(CPU)인지 그래픽처리장치(GPU)인지에 따라 서로 다른 값들이 획득될 수 있다.According to Table 2, different values may be obtained depending on whether the
QoS 관리부(200)의 리소스 관리부(209)는 지연 제어부(207)에서 생성된 제어 명령에 따라, 전자 장치(100) 내 적어도 하나의 구성 요소의 성능을 제어할 수 있다. 예컨대, 리소스 관리부(209)는 지연 제어부(207)로부터 수신된 제어 명령에 기초하여, 프로세서(130)의 성능을 조정할 수 있다. 이 때, 리소스 관리부(209)는 DVFS (dynamic voltage / frequency scaling)와 같은 튜닝 노브(tunning knob)를 이용하여 프로세서의 성능을 조정할 수 있다.The
프로세서(130)는 리소스 관리부(209)의 제어에 따라, 프로세서(130)에 포함된 중앙처리장치(220) 또는 그래픽처리장치(225)의 성능(예: 주파수)을 조정할 수 있다. 성능이 조정된 프로세서(130)는 레이어 관리부(215)에서 딥러닝 모델에 따른 연산이 수행될 때, 조정 전과 다른 연산 속도를 제공할 수 있다. The
도 3은 본 발명의 일 실시 예에 따른 전자 장치에 구비되는 피드백 회로의 구성을 도시한 도면이다.3 is a diagram illustrating a configuration of a feedback circuit included in an electronic device according to an embodiment of the present disclosure.
일 실시 예에 따르면, 제 k 시점에, 마일스톤 식별자가 식별되는 경우, 성능 확인부(205)는 지연 값인 tard(k)를 획득할 수 있다. 이어서, 지연 제어부(207)는 지연 값과 기준 값으로 설정된 1의 차이인 e(k)를 획득할 수 있다. 지연 제어부(207)는 획득된 e(k)에 기초하여 프로세서(130)의 성능이 조정될 필요가 있는지 여부와, 조정이 필요하다면 어느 정도 조정될 필요가 있는지 여부를 판단할 수 있다. 예컨대, 지연 값이 1.2 인 경우, 지연 제어부(207)는 지연 값이 1보다 크므로 프로세서의 성능이 상향 조정될 필요가 있다고 판단할 수 있다. 이 때, e(k)는 0.2로 확인되는바, 지연 제어부(207)는 최종적으로 프로세서의 성능이 제 2 레벨 상향 조정될 필요가 있는 것으로 결정할 수 있다.According to an embodiment of the present disclosure, when the milestone identifier is identified at the kth time point, the
지연 제어부(207)는 프로세서(130)의 성능을 제 2 레벨 상향 조정하기 위한 제어 명령으로서 을 생성할 수 있고, 생성된 제어 명령을 DVFS 관리부(300)로 전달할 수 있다. The
또한, DVFS 관리부(300)는 지연 제어부(207)로부터 수신된 제어 명령에 대응하여, 프로세서(130) 내 중앙처리장치(220) 및 그래픽처리장치(225) 중 적어도 하나의 주파수를 조정하기 위한 제어 명령으로서 freq(k+1)을 생성할 수 있고, 생성된 제어 명령을 중앙처리장치(220) 및 그래픽처리장치(225) 중 적어도 하나로 전달할 수 있다. 이 후, 조정된 성능에 따라 딥러닝 모델을 통한 연산이 속행될 수 있다.In addition, the
일 실시 예에 따라, 제 k+1 시점에, 마일스톤 식별자가 식별되는 경우, 성능 확인부(205)는 지연 값인 tard(k+1)를 획득할 수 있다. 이어서, 지연 제어부(207)는 지연 값과 기준 값으로 설정된 1의 차이인 e(k+1)를 획득할 수 있으며, 프로세서(130)의 성능을 조정하는 동작을 반복하여 수행할 수 있다. According to an embodiment, when the milestone identifier is identified at the k + 1th time point, the
도 4는 본 발명의 일 실시 예에 따라 딥러닝 모델에 마일스톤 식별자를 할당하는 방법을 설명하기 위한 도면이다.4 is a diagram for describing a method of allocating a milestone identifier to a deep learning model according to an exemplary embodiment.
전자 장치(100)는 "고양이 사진"이 입력 데이터(400)로 수신되는 경우, 딥러닝 모델(420)을 이용하여 입력 데이터(400)에 대한 연산을 수행할 수 있으며, 연산의 결과 데이터(410)로서 "Cat!"을 획득할 수 있다. 한편, 딥러닝 모델(420)은 타입에 따라 서로 다른 연산을 수행하는 복수의 레이어들로 구성될 수 있고, 복수의 레이어들은 미리 설정된 순서에 따라 나열된 형태로 도식화 될 수 있다. When the “cat photo” is received as the
일 실시 예에 따르면, 마일스톤 식별자 할당부(203)는 딥러닝 모델을 통한 연산을 수행하기에 앞서, 딥러닝 모델을 통한 연산에 소요되는 총 소요 시간을 측정할 수 있다. 예컨대, 마일스톤 식별자 할당부(203)는 딥러닝 모델을 통한 연산에 소요되는 총 소요 시간이 300 ms 인 것으로 확인할 수 있다. 이 때, 마일스톤 식별자 할당부(203)는 딥러닝 모델 내 복수의 레이어들 중 마지막 레이어에 종료 식별자를 할당할 수 있다. According to an embodiment, the
또한, 마일스톤 식별자 할당부(203)는 총 소요 시간을 기준으로 하여, 미리 설정된 시간 간격마다 마일스톤 식별자를 할당할 수 있다. 예컨대, 마일스톤 식별자 할당부(203)는 총 소요 시간의 1/3과 대응되는 시점마다 위치한 레이어에 마일스톤 식별자를 할당할 수 있다. 즉, 마일스톤 식별자 할당부(203)는 총 소요 시간의 1/3과 대응되는 시점에 위치한 제 1 레이어(430) 및 2/3과 대응되는 시점에 위치한 제 2 레이어(440) 각각에 제 1 마일스톤 식별자 및 제 2 마일스톤 식별자를 할당할 수 있다. 만약, 총 소요 시간이 300 ms 라면, 제 1 마일스톤 식별자는 연산이 시작된 시점으로부터 100 ms 이 경과한 시점에 연산을 수행하는 제 1 레이어(430)에 할당될 수 있고, 제 2 마일스톤 식별자는 제 1 마일스톤 식별자가 식별된 시점으로부터 100 ms 이 경과한 시점에 연산을 수행하는 제 2 레이어(440)에 할당될 수 있다. In addition, the
도 5는 본 발명의 일 실시 예에 따른 전자 장치에서 딥러닝 모델에 마일스톤 식별자를 할당하는 동작을 설명하기 위한 순서도이다.5 is a flowchart illustrating an operation of allocating a milestone identifier to a deep learning model in an electronic device according to an embodiment of the present disclosure.
단계(500)에서는, 미리 설정된 QoS 데이터를 확인할 수 있다. QoS 데이터는 사용자에 의해 요청되는 서비스 품질을 나타내는 지표로서, 딥러닝 모델을 통한 추론 과정이 수행되기 전에 미리 설정되어 저장될 수 있다.In
단계(510)에서는, 확인된 QoS 데이터에 기초하여, 딥러닝 모델에 대한 압축을 수행할 수 있다. In
단계(520)에서는, 압축이 수행된 딥러닝 모델에 대한 프로파일링을 수행하여, 딥러닝 모델 내 복수의 레이어들 각각에 대한 동작 시간을 측정할 수 있다.In
단계(530)에서는, 측정 결과에 기초하여, 복수의 레이어들 중 적어도 하나의 레이어를 선택하고, 선택된 적어도 하나의 레이어에 마일스톤 식별자를 할당할 수 있다.In
다양한 실시 예들에 따르면, 도 5에 개시된 동작들 중 일부는 생략되거나 복수 회 반복될 수 있다. 또한, 도 5에 개시된 동작들 각각은 일 실시 예로 보는 것이 타당하며, 어느 하나의 동작이 다른 하나의 동작에 종속되는 것으로 제한 해석될 수 없다.According to various embodiments of the present disclosure, some of the operations disclosed in FIG. 5 may be omitted or repeated a plurality of times. In addition, each of the operations disclosed in FIG. 5 may be considered to be an example, and may not be construed as limiting one operation to another operation.
도 6은 본 발명의 일 실시 예에 따른 전자 장치에서 딥러닝 모델을 통한 추론 과정을 수행할 때, 적어도 하나의 프로세서의 성능을 제어하는 방법을 설명하기 위한 순서도이다.6 is a flowchart illustrating a method of controlling performance of at least one processor when performing an inference process through a deep learning model in an electronic device according to an embodiment of the present disclosure.
단계(600)에서는, 입력 데이터가 수신되면, 딥러닝 모델을 이용하여 수신된 입력 데이터에 대한 연산을 수행할 수 있다. In
단계(610)에서는, 종료 식별자가 식별되는지 여부를 판단할 수 있다. 만약, 종료 식별자가 식별되면, 딥러닝 모델을 통한 연산은 종료될 수 있으며, 이 후 단계(660)이 수행될 수 있다. 반면에, 종료 식별자가 식별되지 않는다면, 단계(620)이 수행될 수 있다. In
단계(620)에서는, 마일스톤 식별자가 식별되는지 여부를 판단할 수 있다. 만약, 마일스톤 식별자가 식별되면, 단계(630) 내지 단계(650)이 수행될 수 있다. 반면에, 마일스톤 식별자가 식별되지 않으면, 단계(600)에 따라 딥러닝 모델을 통한 연산이 속행될 수 있다. In
단계(630)에서는, 입력 데이터에 대한 연산이 시작된 후 마일스톤 식별자가 식별된 시점까지의 소요 시간을 측정하여 저장할 수 있다. In
단계(640)에서는, 저장된 소요 시간 및 미리 설정된 목표 시간을 이용하여 지연 값을 획득할 수 있다. In
단계(650)에서는, 지연 값이 미리 설정된 값을 기준으로 임계 범위 내에 있지 않는 것에 응답하여, 적어도 하나의 프로세서의 주파수를 변경할 수 있다. In
단계(660)에서는, 입력 데이터와 대응되는 출력 데이터로서, 종료 식별자가 식별된 시점까지 연산된 데이터를 제공할 수 있다. In
다양한 실시 예들에 따르면, 도 6에 개시된 동작들 중 일부는 생략되거나 복수 회 반복될 수 있다. 또한, 도 6에 개시된 동작들 각각은 일 실시 예로 보는 것이 타당하며, 어느 하나의 동작이 다른 하나의 동작에 종속되는 것으로 제한 해석될 수 없다.According to various embodiments of the present disclosure, some of the operations disclosed in FIG. 6 may be omitted or repeated a plurality of times. In addition, each of the operations disclosed in FIG. 6 may be considered to be an example, and may not be construed as limiting one operation to another operation.
본 문서에 개시된 다양한 실시 예들에 따라 딥러닝 모델을 이용하여 연산을 수행하는 전자 장치는, 입력 데이터가 수신되면 딥러닝 모델을 이용하여 상기 입력 데이터에 대한 연산을 수행하고, 상기 입력 데이터에 대한 연산이 수행될 때 상기 딥러닝 모델에 포함된 복수의 레이어들 중 적어도 하나의 레이어에 미리 할당된 마일스톤 식별자를 식별하는 레이어 관리부, 상기 마일스톤 식별자가 식별되는 것에 응답하여, 상기 입력 데이터에 대한 연산이 시작된 후 상기 마일스톤 식별자가 식별된 시점까지의 소요 시간을 측정하여 저장하고, 상기 저장된 소요 시간 및 미리 설정된 목표 시간을 이용하여 지연 값을 획득하는 성능 확인부, 상기 획득된 지연 값이 미리 설정된 값을 기준으로 하여 임계 범위 내에 있는지 여부를 판단하고, 상기 판단 결과에 기초하여 적어도 하나의 프로세서의 성능을 조정하기 위한 제어 명령을 생성하는 지연 제어부, 상기 생성된 제어 명령에 따라, 상기 전자 장치 내 적어도 하나의 프로세서의 주파수를 변경하는 리소스 관리부, 및 상기 주파수가 변경된 적어도 하나의 프로세서를 통해 상기 입력 데이터에 대한 연산이 속행될 때 종료 식별자가 식별되는 것에 응답하여, 상기 수신된 입력 데이터와 대응되는 출력 데이터로서 상기 종료 식별자가 식별된 시점까지 연산된 데이터를 제공하는 입출력부를 포함할 수 있다. According to various embodiments of the present disclosure, when an electronic device performs an operation using a deep learning model, the electronic device performs an operation on the input data using the deep learning model and receives an operation on the input data. A layer manager for identifying a milestone identifier pre-allocated to at least one of a plurality of layers included in the deep learning model, and in response to the milestone identifier being identified, the operation on the input data is started. A performance checking unit for measuring and storing a time required until the time point at which the milestone identifier is identified, and obtaining a delay value using the stored time required and a predetermined target time; and the obtained delay value is based on a preset value. It is determined whether or not within the threshold range, and based on the determination result A delay controller for generating a control command for adjusting the performance of at least one processor, a resource manager for changing a frequency of at least one processor in the electronic device according to the generated control command, and at least the frequency of which is changed In response to the termination identifier being identified when the operation on the input data is continued through one processor, an input / output for providing the calculated data to the time point at which the termination identifier is identified as output data corresponding to the received input data. It may include wealth.
본 문서에 개시된 다양한 실시 예들에 따라 딥러닝 모델을 이용하여 연산을 수행하는 전자 장치에 있어서, 상기 레이어 관리부는, 상기 복수의 레이어들 중 상기 입력 데이터에 대한 연산을 수행하는데 이용되는 제 1 복수의 레이어들을 선택하고, 상기 선택된 제 1 복수의 레이어들 각각의 타입을 식별하고, 상기 식별된 제 1 복수의 레이어들 각각의 타입과 대응되는 연산 공식을 이용하여 상기 입력 데이터에 대한 연산을 수행할 수 있다. In an electronic device that performs an operation using a deep learning model according to various embodiments of the present disclosure, the layer manager may include a first plurality of layers used to perform an operation on the input data among the plurality of layers. Select layers, identify a type of each of the selected first plurality of layers, and perform an operation on the input data using an operation formula corresponding to each of the identified first plurality of layers. have.
본 문서에 개시된 다양한 실시 예들에 따라 딥러닝 모델을 이용하여 연산을 수행하는 전자 장치는, 미리 설정된 QoS(quality of service) 데이터를 확인하고, 상기 확인된 QoS 데이터에 기초하여 상기 딥러닝 모델에 대한 압축을 수행하는 모델 압축부 및 상기 압축이 수행된 딥러닝 모델에 대한 프로파일링을 수행하여 상기 압축이 수행된 딥러닝 모델 내 상기 복수의 레이어들 각각에 대한 동작 시간을 측정하고, 상기 측정된 동작 시간을 이용하여 상기 복수의 레이어들 중 미리 설정된 시간 간격마다 동작되는 하나 이상의 레이어들을 선택하고, 상기 선택된 하나 이상의 레이어들 각각에 마일스톤 식별자를 할당하는 마일스톤 식별자 할당부를 더 포함할 수 있다. According to various embodiments of the present disclosure, an electronic device that performs an operation using a deep learning model may check preset quality of service (QoS) data and perform an operation on the deep learning model based on the identified QoS data. Profiling the model compression unit performing compression and the deep learning model on which the compression is performed to measure an operation time for each of the plurality of layers in the deep learning model on which the compression is performed, and the measured operation The apparatus may further include a milestone identifier allocator configured to select one or more layers operated at predetermined time intervals from among the plurality of layers and to assign a milestone identifier to each of the selected one or more layers.
본 문서에 개시된 다양한 실시 예들에 따라 딥러닝 모델을 이용하여 연산을 수행하는 전자 장치에 있어서, 상기 성능 확인부는, 상기 저장된 소요 시간의 상기 미리 설정된 목표 시간에 대한 비율을 상기 지연 값으로 획득할 수 있다. In the electronic device performing an operation using a deep learning model according to various embodiments of the present disclosure, the performance checking unit may obtain a ratio of the stored required time to the preset target time as the delay value. have.
본 문서에 개시된 다양한 실시 예들에 따라 딥러닝 모델을 이용하여 연산을 수행하는 전자 장치에 있어서, 상기 지연 제어부는, 상기 획득된 지연 값이 상기 미리 설정된 값인 1보다 작으면서 상기 임계 범위를 벗어난 것으로 판단되는 것에 응답하여, 상기 전자 장치 내 상기 적어도 하나의 프로세서의 성능을 하향 조정하도록 지시하는 제 1 제어 명령을 생성하고, 상기 획득된 지연 값이 상기 미리 설정된 값인 1보다 크면서 상기 임계 범위를 벗어난 것으로 판단되는 것에 응답하여, 상기 전자 장치 내 상기 적어도 하나의 프로세서의 성능을 상향 조정하도록 지시하는 제 2 제어 명령을 생성할 수 있다. In an electronic device performing an operation using a deep learning model according to various embodiments of the present disclosure, the delay controller determines that the obtained delay value is out of the threshold range while being smaller than 1, the preset value. And in response to generating a first control command instructing to downgrade the performance of the at least one processor in the electronic device, wherein the obtained delay value is greater than 1, the preset value, and out of the threshold range. In response to the determination, the second control command may be generated to instruct to increase the performance of the at least one processor in the electronic device.
본 문서에 개시된 다양한 실시 예들에 따라 딥러닝 모델을 이용하여 연산을 수행하는 전자 장치에 있어서, 상기 지연 제어부는, 상기 획득된 지연 값이 상기 임계 범위를 벗어난 정도(degree)를 측정하고, 상기 측정된 정도에 기초하여 상기 적어도 하나의 프로세서의 성능이 하향 조정 또는 상향 조정되는 값을 결정하고, 상기 결정된 값에 따라 상기 제 1 제어 명령 또는 상기 제 2 제어 명령을 생성할 수 있다.In the electronic device performing an operation using a deep learning model according to various embodiments of the present disclosure, the delay controller measures the degree to which the obtained delay value is out of the threshold range and measures the measurement. The first control command or the second control command may be determined according to the determined value based on the determined value.
본 문서에 개시된 다양한 실시 예들에 따라 딥러닝 모델을 이용하여 연산을 수행하는 전자 장치를 제어하는 방법은, 입력 데이터가 수신되면 딥러닝 모델을 이용하여 상기 입력 데이터에 대한 연산을 수행하는 단계, 상기 입력 데이터에 대한 연산이 수행될 때 상기 딥러닝 모델에 포함된 복수의 레이어들 중 적어도 하나의 레이어에 미리 할당된 마일스톤 식별자를 식별하는 단계, 상기 마일스톤 식별자가 식별되는 것에 응답하여, 상기 입력 데이터에 대한 연산이 시작된 후 상기 마일스톤 식별자가 식별된 시점까지의 소요 시간을 측정하여 저장하는 단계, 상기 저장된 소요 시간 및 미리 설정된 목표 시간을 이용하여 지연 값을 획득하는 단계, 상기 획득된 지연 값이 미리 설정된 값을 기준으로 하여 임계 범위 내에 있는지 여부를 판단하는 단계, 상기 판단 결과에 기초하여 적어도 하나의 프로세서의 성능을 조정하기 위한 제어 명령을 생성하는 단계, 상기 생성된 제어 명령에 따라, 상기 전자 장치 내 적어도 하나의 프로세서의 주파수를 변경하는 단계, 및 상기 주파수가 변경된 적어도 하나의 프로세서를 통해 상기 입력 데이터에 대한 연산이 속행될 때 종료 식별자가 식별되는 것에 응답하여, 상기 입력 데이터와 대응되는 출력 데이터로서 상기 종료 식별자가 식별된 시점까지 연산된 데이터를 제공하는 단계를 포함할 수 있다. According to various embodiments of the present disclosure, a method of controlling an electronic device that performs an operation using a deep learning model includes performing an operation on the input data using a deep learning model when input data is received. Identifying a milestone identifier previously assigned to at least one of a plurality of layers included in the deep learning model when an operation on the input data is performed, in response to the milestone identifier being identified, Measuring and storing the time required until the milestone identifier is identified after the operation is started; acquiring a delay value using the stored time duration and a preset target time; and obtaining the predetermined delay value Determining whether it is within a threshold range based on a value, wherein Generating a control command for adjusting the performance of at least one processor based on the determination result, changing a frequency of at least one processor in the electronic device according to the generated control command, and changing the frequency In response to the termination identifier being identified when the operation on the input data is continued via at least one processor, providing the calculated data as output data corresponding to the input data up to the point at which the termination identifier is identified. It may include.
본 문서에 개시된 다양한 실시 예들에 따라 딥러닝 모델을 이용하여 연산을 수행하는 전자 장치를 제어하는 방법에 있어서, 상기 입력 데이터에 대한 연산을 수행하는 단계는, 상기 복수의 레이어들 중 상기 입력 데이터에 대한 연산을 수행하는데 이용되는 제 1 복수의 레이어들을 선택하는 단계, 상기 선택된 제 1 복수의 레이어들 각각의 타입을 식별하는 단계, 및 상기 식별된 제 1 복수의 레이어들 각각의 타입과 대응되는 연산 공식을 이용하여 상기 입력 데이터에 대한 연산을 수행하는 단계를 더 포함할 수 있다. According to various embodiments of the present disclosure, a method of controlling an electronic device that performs an operation using a deep learning model, wherein the performing of the operation on the input data may be performed on the input data of the plurality of layers. Selecting a first plurality of layers that are used to perform an operation on the object, identifying a type of each of the selected first plurality of layers, and an operation corresponding to the type of each of the identified first plurality of layers The method may further include performing an operation on the input data using a formula.
본 문서에 개시된 다양한 실시 예들에 따라 딥러닝 모델을 이용하여 연산을 수행하는 전자 장치를 제어하는 방법은, 미리 설정된 QoS(quality of service) 데이터를 확인하고, 상기 확인된 QoS 데이터에 기초하여 상기 딥러닝 모델에 대한 압축을 수행하는 단계, 상기 압축이 수행된 딥러닝 모델에 대한 프로파일링을 수행하여 상기 압축이 수행된 딥러닝 모델 내 상기 복수의 레이어들 각각에 대한 동작 시간을 측정하는 단계, 상기 측정된 동작 시간을 이용하여 상기 복수의 레이어들 중 미리 설정된 시간 간격마다 동작되는 하나 이상의 레이어들을 선택하는 단계, 및 상기 선택된 하나 이상의 레이어들 각각에 마일스톤 식별자를 할당하는 단계를 더 포함할 수 있다.According to various embodiments of the present disclosure, a method of controlling an electronic device that performs an operation using a deep learning model may include checking a predetermined quality of service (QoS) data and based on the determined QoS data. Performing compression on a running model, performing profiling on the deep learning model on which the compression is performed, and measuring an operation time for each of the plurality of layers in the deep learning model on which the compression is performed, The method may further include selecting one or more layers operated at predetermined time intervals among the plurality of layers using the measured operating time, and assigning a milestone identifier to each of the selected one or more layers.
본 문서에 개시된 다양한 실시 예들에 따라 딥러닝 모델을 이용하여 연산을 수행하는 전자 장치를 제어하는 방법에 있어서, 상기 지연 값을 획득하는 단계는, 상기 저장된 소요 시간의 상기 미리 설정된 목표 시간에 대한 비율을 상기 지연 값으로 획득하는 단계를 더 포함할 수 있다. According to various embodiments of the present disclosure, a method of controlling an electronic device that performs an operation using a deep learning model, wherein the obtaining of the delay value may include a ratio of the stored time to the preset target time. The method may further include obtaining the delay value as the delay value.
본 문서에 개시된 다양한 실시 예들에 따라 딥러닝 모델을 이용하여 연산을 수행하는 전자 장치를 제어하는 방법에 있어서, 상기 제어 명령을 생성하는 단계는, 상기 획득된 지연 값이 상기 미리 설정된 값인 1보다 작으면서 상기 임계 범위를 벗어난 것으로 판단되는 것에 응답하여, 상기 전자 장치 내 상기 적어도 하나의 프로세서의 성능을 하향 조정하도록 지시하는 제 1 제어 명령을 생성하는 단계, 및 상기 획득된 지연 값이 상기 미리 설정된 값인 1보다 크면서 상기 임계 범위를 벗어난 것으로 판단되는 것에 응답하여, 상기 전자 장치 내 상기 적어도 하나의 프로세서의 성능을 상향 조정하도록 지시하는 제 2 제어 명령을 생성하는 단계를 더 포함할 수 있다. According to various embodiments of the present disclosure, a method of controlling an electronic device that performs an operation using a deep learning model may include generating the control command, wherein the obtained delay value is less than 1, the preset value. In response to being determined to be out of the threshold range, generating a first control command instructing to downgrade the performance of the at least one processor in the electronic device, and wherein the obtained delay value is the preset value. And in response to being determined to be greater than 1 and out of the threshold range, generating a second control command instructing to increase the performance of the at least one processor in the electronic device.
본 문서에 개시된 다양한 실시 예들에 따라 딥러닝 모델을 이용하여 연산을 수행하는 전자 장치를 제어하는 방법에 있어서, 상기 제어 명령을 생성하는 단계는, 상기 획득된 지연 값이 상기 임계 범위를 벗어난 정도(degree)를 측정하는 단계, 상기 측정된 정도에 기초하여 상기 적어도 하나의 프로세서의 성능이 하향 조정 또는 상향 조정되는 값을 결정하는 단계, 및 상기 결정된 값에 따라 상기 제 1 제어 명령 또는 상기 제 2 제어 명령을 생성하는 단계를 더 포함할 수 있다. According to various embodiments of the present disclosure, in the method of controlling an electronic device that performs an operation using a deep learning model, the generating of the control command may include the degree to which the obtained delay value is out of the threshold range. degree), determining a value at which the performance of the at least one processor is adjusted down or up based on the measured degree, and according to the determined value, the first control command or the second control. The method may further include generating a command.
본 발명의 일 실시 예에 따라 딥러닝 모델을 이용하여 연산을 수행하는 전자 장치를 제어하는 방법은 컴퓨터와의 결합을 통해 실행시키기 위한 저장매체에 저장된 컴퓨터 프로그램으로 구현될 수 있다.According to an embodiment of the present disclosure, a method of controlling an electronic device that performs an operation using a deep learning model may be implemented as a computer program stored in a storage medium for execution in combination with a computer.
또한, 본 발명의 일 실시 예에 따라 딥러닝 모델을 이용하여 연산을 수행하는 전자 장치를 제어하는 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. In addition, the method for controlling an electronic device performing an operation using the deep learning model according to an embodiment of the present invention may be implemented in the form of program instructions that can be executed by various computer means and recorded in a computer readable medium. have. The computer readable medium may include program instructions, data files, data structures, and the like, alone or in combination. Program instructions recorded on the media may be those specially designed and constructed for the purposes of the present invention, or they may be of the kind well-known and available to those having skill in the computer software arts. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tape, optical media such as CD-ROMs, DVDs, and magnetic disks, such as floppy disks. Magneto-optical media, and hardware devices specifically configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine code generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like.
이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시 예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시 예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. In the present invention as described above has been described by the specific embodiments, such as specific components and limited embodiments and drawings, but this is provided only to help a more general understanding of the present invention, the present invention is not limited to the above embodiments. For those skilled in the art, various modifications and variations are possible from these descriptions.
따라서, 본 발명의 사상은 설명된 실시 예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.Accordingly, the spirit of the present invention should not be limited to the described embodiments, and all of the equivalents or equivalents of the claims as well as the claims to be described later will belong to the scope of the present invention. .
Claims (14)
입력 데이터가 수신되면 딥러닝 모델을 이용하여 상기 입력 데이터에 대한 연산을 수행하고, 상기 입력 데이터에 대한 연산이 수행될 때 상기 딥러닝 모델에 포함된 복수의 레이어들 중 적어도 하나의 레이어에 미리 할당된 마일스톤 식별자를 식별하는 레이어 관리부;
상기 마일스톤 식별자가 식별되는 것에 응답하여, 상기 입력 데이터에 대한 연산이 시작된 후 상기 마일스톤 식별자가 식별된 시점까지의 소요 시간을 측정하여 저장하고, 상기 저장된 소요 시간 및 미리 설정된 목표 시간을 이용하여 지연 값을 획득하는 성능 확인부;
상기 획득된 지연 값이 미리 설정된 값을 기준으로 하여 임계 범위 내에 있는지 여부를 판단하고, 상기 판단 결과에 기초하여 적어도 하나의 프로세서의 성능을 조정하기 위한 제어 명령을 생성하는 지연 제어부;
상기 생성된 제어 명령에 따라, 상기 전자 장치 내 적어도 하나의 프로세서의 주파수를 변경하는 리소스 관리부; 및
상기 주파수가 변경된 적어도 하나의 프로세서를 통해 상기 입력 데이터에 대한 연산이 속행될 때 종료 식별자가 식별되는 것에 응답하여, 상기 수신된 입력 데이터와 대응되는 출력 데이터로서 상기 종료 식별자가 식별된 시점까지 연산된 데이터를 제공하는 입출력부를 포함하는, 딥러닝 모델을 이용하여 연산을 수행하는 전자 장치.
An electronic device that performs a calculation using a deep learning model,
When input data is received, an operation is performed on the input data using a deep learning model, and when the operation is performed on the input data, the data is pre-assigned to at least one layer among a plurality of layers included in the deep learning model. A layer manager for identifying the milestone identifier;
In response to the milestone identifier being identified, measuring and storing the time required from the start of the operation on the input data to the time point when the milestone identifier is identified, and using the stored time and the predetermined target time delay value Performance verification unit to obtain;
A delay controller configured to determine whether the obtained delay value is within a threshold range based on a preset value, and to generate a control command for adjusting the performance of at least one processor based on the determination result;
A resource manager configured to change a frequency of at least one processor in the electronic device according to the generated control command; And
In response to the termination identifier being identified when the operation on the input data is continued through the at least one processor whose frequency has been changed, the output data corresponding to the received input data until the point at which the termination identifier is identified. An electronic device for performing an operation using a deep learning model, including an input and output unit for providing data.
상기 레이어 관리부는,
상기 복수의 레이어들 중 상기 입력 데이터에 대한 연산을 수행하는데 이용되는 제 1 복수의 레이어들을 선택하고, 상기 선택된 제 1 복수의 레이어들 각각의 타입을 식별하고, 상기 식별된 제 1 복수의 레이어들 각각의 타입과 대응되는 연산 공식을 이용하여 상기 입력 데이터에 대한 연산을 수행하는 것을 특징으로 하는, 딥러닝 모델을 이용하여 연산을 수행하는 전자 장치.
The method of claim 1,
The layer manager,
Selecting a first plurality of layers used to perform an operation on the input data among the plurality of layers, identifying a type of each of the selected first plurality of layers, and identifying the first plurality of layers The electronic device performs the operation using the deep learning model, characterized in that the operation on the input data is performed using an operation formula corresponding to each type.
미리 설정된 QoS(quality of service) 데이터를 확인하고, 상기 확인된 QoS 데이터에 기초하여 상기 딥러닝 모델에 대한 압축을 수행하는 모델 압축부; 및
상기 압축이 수행된 딥러닝 모델에 대한 프로파일링을 수행하여 상기 압축이 수행된 딥러닝 모델 내 상기 복수의 레이어들 각각에 대한 동작 시간을 측정하고, 상기 측정된 동작 시간을 이용하여 상기 복수의 레이어들 중 미리 설정된 시간 간격마다 동작되는 하나 이상의 레이어들을 선택하고, 상기 선택된 하나 이상의 레이어들 각각에 마일스톤 식별자를 할당하는 마일스톤 식별자 할당부를 포함하는, 딥러닝 모델을 이용하여 연산을 수행하는 전자 장치.
The method of claim 1,
A model compressing unit which checks predetermined quality of service (QoS) data and compresses the deep learning model based on the identified QoS data; And
Profiling the deep learning model on which the compression is performed to measure an operation time for each of the plurality of layers in the compression deep learning model, and using the measured operating time, the plurality of layers And a milestone identifier allocator for selecting one or more layers operated at predetermined time intervals and allocating a milestone identifier to each of the selected one or more layers.
상기 성능 확인부는,
상기 저장된 소요 시간의 상기 미리 설정된 목표 시간에 대한 비율을 상기 지연 값으로 획득하는 것을 특징으로 하는, 딥러닝 모델을 이용하여 연산을 수행하는 전자 장치.
The method of claim 1,
The performance check unit,
And calculating, as the delay value, a ratio of the stored required time to the preset target time as the delay value.
상기 지연 제어부는,
상기 획득된 지연 값이 상기 미리 설정된 값인 1보다 작으면서 상기 임계 범위를 벗어난 것으로 판단되는 것에 응답하여, 상기 전자 장치 내 상기 적어도 하나의 프로세서의 성능을 하향 조정하도록 지시하는 제 1 제어 명령을 생성하고,
상기 획득된 지연 값이 상기 미리 설정된 값인 1보다 크면서 상기 임계 범위를 벗어난 것으로 판단되는 것에 응답하여, 상기 전자 장치 내 상기 적어도 하나의 프로세서의 성능을 상향 조정하도록 지시하는 제 2 제어 명령을 생성하는 것을 특징으로 하는, 딥러닝 모델을 이용하여 연산을 수행하는 전자 장치.
The method of claim 4, wherein
The delay control unit,
In response to determining that the obtained delay value is out of the threshold range while being less than the preset value of 1, generate a first control command instructing to downgrade the performance of the at least one processor in the electronic device; ,
In response to determining that the obtained delay value is larger than 1, the predetermined value, and out of the threshold range, generating a second control command instructing to increase the performance of the at least one processor in the electronic device. The electronic device for performing an operation using a deep learning model, characterized in that.
상기 지연 제어부는,
상기 획득된 지연 값이 상기 임계 범위를 벗어난 정도(degree)를 측정하고, 상기 측정된 정도에 기초하여 상기 적어도 하나의 프로세서의 성능이 하향 조정 또는 상향 조정되는 값을 결정하고, 상기 결정된 값에 따라 상기 제 1 제어 명령 또는 상기 제 2 제어 명령을 생성하는 것을 특징으로 하는, 딥러닝 모델을 이용하여 연산을 수행하는 전자 장치.
The method of claim 5, wherein
The delay control unit,
Measure a degree to which the obtained delay value is out of the threshold range, and determine a value at which the performance of the at least one processor is adjusted down or up based on the measured amount, and according to the determined value And generating the first control command or the second control command by using a deep learning model.
입력 데이터가 수신되면 딥러닝 모델을 이용하여 상기 입력 데이터에 대한 연산을 수행하는 단계;
상기 입력 데이터에 대한 연산이 수행될 때 상기 딥러닝 모델에 포함된 복수의 레이어들 중 적어도 하나의 레이어에 미리 할당된 마일스톤 식별자를 식별하는 단계;
상기 마일스톤 식별자가 식별되는 것에 응답하여, 상기 입력 데이터에 대한 연산이 시작된 후 상기 마일스톤 식별자가 식별된 시점까지의 소요 시간을 측정하여 저장하는 단계;
상기 저장된 소요 시간 및 미리 설정된 목표 시간을 이용하여 지연 값을 획득하는 단계;
상기 획득된 지연 값이 미리 설정된 값을 기준으로 하여 임계 범위 내에 있는지 여부를 판단하는 단계;
상기 판단 결과에 기초하여 적어도 하나의 프로세서의 성능을 조정하기 위한 제어 명령을 생성하는 단계;
상기 생성된 제어 명령에 따라, 상기 전자 장치 내 적어도 하나의 프로세서의 주파수를 변경하는 단계; 및
상기 주파수가 변경된 적어도 하나의 프로세서를 통해 상기 입력 데이터에 대한 연산이 속행될 때 종료 식별자가 식별되는 것에 응답하여, 상기 입력 데이터와 대응되는 출력 데이터로서 상기 종료 식별자가 식별된 시점까지 연산된 데이터를 제공하는 단계를 포함하는, 딥러닝 모델을 이용하여 연산을 수행하는 전자 장치를 제어하는 방법.
In the method for controlling an electronic device performing a calculation using a deep learning model,
Performing an operation on the input data using a deep learning model when the input data is received;
Identifying a milestone identifier previously assigned to at least one layer of a plurality of layers included in the deep learning model when the operation on the input data is performed;
In response to the milestone identifier being identified, measuring and storing the time required for the milestone identifier to be identified after the operation on the input data starts;
Obtaining a delay value using the stored time required and a preset target time;
Determining whether the obtained delay value is within a threshold range based on a preset value;
Generating a control command for adjusting the performance of at least one processor based on the determination result;
Changing a frequency of at least one processor in the electronic device according to the generated control command; And
Responsive to identifying an end identifier when the operation on the input data is continued through the at least one processor whose frequency has been changed, outputting data calculated up to a point in time when the end identifier is identified as output data corresponding to the input data. A method of controlling an electronic device performing an operation using a deep learning model, comprising: providing a deep learning model.
상기 입력 데이터에 대한 연산을 수행하는 단계는,
상기 복수의 레이어들 중 상기 입력 데이터에 대한 연산을 수행하는데 이용되는 제 1 복수의 레이어들을 선택하는 단계;
상기 선택된 제 1 복수의 레이어들 각각의 타입을 식별하는 단계; 및
상기 식별된 제 1 복수의 레이어들 각각의 타입과 대응되는 연산 공식을 이용하여 상기 입력 데이터에 대한 연산을 수행하는 단계를 더 포함하는 것을 특징으로 하는, 딥러닝 모델을 이용하여 연산을 수행하는 전자 장치를 제어하는 방법.
The method of claim 7, wherein
Performing an operation on the input data,
Selecting a first plurality of layers used to perform an operation on the input data among the plurality of layers;
Identifying a type of each of the selected first plurality of layers; And
Performing an operation on the input data by using an operation formula corresponding to the type of each of the identified first plurality of layers, wherein the operation is performed using the deep learning model. How to control your device.
미리 설정된 QoS(quality of service) 데이터를 확인하고, 상기 확인된 QoS 데이터에 기초하여 상기 딥러닝 모델에 대한 압축을 수행하는 단계;
상기 압축이 수행된 딥러닝 모델에 대한 프로파일링을 수행하여 상기 압축이 수행된 딥러닝 모델 내 상기 복수의 레이어들 각각에 대한 동작 시간을 측정하는 단계;
상기 측정된 동작 시간을 이용하여 상기 복수의 레이어들 중 미리 설정된 시간 간격마다 동작되는 하나 이상의 레이어들을 선택하는 단계; 및
상기 선택된 하나 이상의 레이어들 각각에 마일스톤 식별자를 할당하는 단계를 더 포함하는 것을 특징으로 하는, 딥러닝 모델을 이용하여 연산을 수행하는 전자 장치를 제어하는 방법.
The method of claim 7, wherein
Checking predetermined quality of service (QoS) data and performing compression on the deep learning model based on the identified QoS data;
Profiling the deep learning model on which the compression is performed to measure an operation time of each of the plurality of layers in the compression deep learning model;
Selecting one or more layers operated at predetermined time intervals from among the plurality of layers using the measured operating time; And
And allocating a milestone identifier to each of the selected one or more layers.
상기 지연 값을 획득하는 단계는,
상기 저장된 소요 시간의 상기 미리 설정된 목표 시간에 대한 비율을 상기 지연 값으로 획득하는 단계를 더 포함하는 것을 특징으로 하는, 딥러닝 모델을 이용하여 연산을 수행하는 전자 장치를 제어하는 방법.
The method of claim 7, wherein
Acquiring the delay value,
Obtaining a ratio of the stored required time to the preset target time as the delay value. The method of controlling an electronic device using a deep learning model.
상기 제어 명령을 생성하는 단계는,
상기 획득된 지연 값이 상기 미리 설정된 값인 1보다 작으면서 상기 임계 범위를 벗어난 것으로 판단되는 것에 응답하여, 상기 전자 장치 내 상기 적어도 하나의 프로세서의 성능을 하향 조정하도록 지시하는 제 1 제어 명령을 생성하는 단계; 및
상기 획득된 지연 값이 상기 미리 설정된 값인 1보다 크면서 상기 임계 범위를 벗어난 것으로 판단되는 것에 응답하여, 상기 전자 장치 내 상기 적어도 하나의 프로세서의 성능을 상향 조정하도록 지시하는 제 2 제어 명령을 생성하는 단계를 더 포함하는 것을 특징으로 하는, 딥러닝 모델을 이용하여 연산을 수행하는 전자 장치를 제어하는 방법.
The method of claim 10,
Generating the control command,
In response to determining that the obtained delay value is out of the threshold range while being less than the preset value of 1, generating a first control command instructing to downgrade the performance of the at least one processor in the electronic device. step; And
In response to determining that the obtained delay value is larger than 1, the predetermined value, and out of the threshold range, generating a second control command instructing to increase the performance of the at least one processor in the electronic device. And controlling the electronic device performing the operation using the deep learning model.
상기 제어 명령을 생성하는 단계는,
상기 획득된 지연 값이 상기 임계 범위를 벗어난 정도(degree)를 측정하는 단계;
상기 측정된 정도에 기초하여 상기 적어도 하나의 프로세서의 성능이 하향 조정 또는 상향 조정되는 값을 결정하는 단계; 및
상기 결정된 값에 따라 상기 제 1 제어 명령 또는 상기 제 2 제어 명령을 생성하는 단계를 더 포함하는 것을 특징으로 하는, 딥러닝 모델을 이용하여 연산을 수행하는 전자 장치를 제어하는 방법.
The method of claim 10,
Generating the control command,
Measuring a degree to which the obtained delay value is outside the threshold range;
Determining a value at which the performance of the at least one processor is down-scaled or up-scaled based on the measured degree; And
Generating the first control command or the second control command according to the determined value. The method of controlling an electronic device using the deep learning model.
A computer-readable recording medium having recorded thereon a program for causing a computer to perform the method of any one of claims 7 to 12.
A computer program stored in a storage medium for executing the method of any one of claims 7 to 12 in combination with a computer.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180094583A KR102159953B1 (en) | 2018-08-13 | 2018-08-13 | Electronic device for controlling performance of at least one processor when providing inference service through deep learning model and operating method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180094583A KR102159953B1 (en) | 2018-08-13 | 2018-08-13 | Electronic device for controlling performance of at least one processor when providing inference service through deep learning model and operating method thereof |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20200023660A true KR20200023660A (en) | 2020-03-06 |
KR102159953B1 KR102159953B1 (en) | 2020-09-25 |
Family
ID=69802746
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180094583A KR102159953B1 (en) | 2018-08-13 | 2018-08-13 | Electronic device for controlling performance of at least one processor when providing inference service through deep learning model and operating method thereof |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102159953B1 (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111860758A (en) * | 2020-04-07 | 2020-10-30 | 北京嘀嘀无限科技发展有限公司 | Operation method and device of deep learning model, electronic equipment and medium |
CN111913744A (en) * | 2020-07-15 | 2020-11-10 | 博流智能科技(南京)有限公司 | AI deep learning data processing method and system |
CN112114892A (en) * | 2020-08-11 | 2020-12-22 | 北京奇艺世纪科技有限公司 | Deep learning model obtaining method, loading method and selecting method |
KR20220109826A (en) * | 2021-01-29 | 2022-08-05 | 주식회사 노타 | Method and system for lighting artificial intelligence model |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20050077190A (en) * | 2004-01-27 | 2005-08-01 | 학교법인 건국대학교 | Device and method of computer interface using sensor and artificial intelligence module |
JP2007226587A (en) * | 2006-02-24 | 2007-09-06 | Mitsubishi Electric Corp | Computer resource dynamic controller, computer resource dynamic control system and computer resource dynamic control method |
KR20150016089A (en) * | 2013-08-02 | 2015-02-11 | 안병익 | Neural network computing apparatus and system, and method thereof |
KR20170106338A (en) * | 2015-01-22 | 2017-09-20 | 퀄컴 인코포레이티드 | Model compression and fine-tuning |
-
2018
- 2018-08-13 KR KR1020180094583A patent/KR102159953B1/en active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20050077190A (en) * | 2004-01-27 | 2005-08-01 | 학교법인 건국대학교 | Device and method of computer interface using sensor and artificial intelligence module |
JP2007226587A (en) * | 2006-02-24 | 2007-09-06 | Mitsubishi Electric Corp | Computer resource dynamic controller, computer resource dynamic control system and computer resource dynamic control method |
KR20150016089A (en) * | 2013-08-02 | 2015-02-11 | 안병익 | Neural network computing apparatus and system, and method thereof |
KR20170106338A (en) * | 2015-01-22 | 2017-09-20 | 퀄컴 인코포레이티드 | Model compression and fine-tuning |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111860758A (en) * | 2020-04-07 | 2020-10-30 | 北京嘀嘀无限科技发展有限公司 | Operation method and device of deep learning model, electronic equipment and medium |
CN111860758B (en) * | 2020-04-07 | 2024-05-03 | 北京嘀嘀无限科技发展有限公司 | Deep learning model operation method and device, electronic equipment and medium |
CN111913744A (en) * | 2020-07-15 | 2020-11-10 | 博流智能科技(南京)有限公司 | AI deep learning data processing method and system |
CN112114892A (en) * | 2020-08-11 | 2020-12-22 | 北京奇艺世纪科技有限公司 | Deep learning model obtaining method, loading method and selecting method |
KR20220109826A (en) * | 2021-01-29 | 2022-08-05 | 주식회사 노타 | Method and system for lighting artificial intelligence model |
Also Published As
Publication number | Publication date |
---|---|
KR102159953B1 (en) | 2020-09-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102159953B1 (en) | Electronic device for controlling performance of at least one processor when providing inference service through deep learning model and operating method thereof | |
US11907851B2 (en) | Image description generation method, model training method, device and storage medium | |
JP7266619B2 (en) | Processing image data that captures the device and/or controlling the device based on the installation environment of the device | |
US11521038B2 (en) | Electronic apparatus and control method thereof | |
KR102521054B1 (en) | Method of controlling computing operations based on early-stop in deep neural network | |
EP2919115A2 (en) | Task migration method and apparatus | |
CN116312419A (en) | Adaptive display brightness adjustment | |
EP3714355B1 (en) | Expanding physical motion gesture lexicon for an automated assistant | |
US20220100763A1 (en) | Optimizing job runtimes via prediction-based token allocation | |
US20220114479A1 (en) | Systems and methods for automatic mixed-precision quantization search | |
CN115205925A (en) | Expression coefficient determining method and device, electronic equipment and storage medium | |
KR20210156538A (en) | Method and appratus for processing data using neural network | |
KR102462001B1 (en) | Method, device, and system for optimizing a neural network model to be executed on imbedded device | |
CN116822594A (en) | Model quantization method, model quantization device, electronic apparatus, and medium | |
KR102160092B1 (en) | Method and system for processing image using lookup table and layered mask | |
CN113159318B (en) | Quantification method and device of neural network, electronic equipment and storage medium | |
US11620996B2 (en) | Electronic apparatus, and method of controlling to execute function according to voice command thereof | |
KR102561799B1 (en) | Method and system for predicting latency of deep learning model in device | |
TWI843108B (en) | Dynamic activation sparsity in neural networks | |
KR102462002B1 (en) | Method, device, and system for optimizing a neural network model to be executed on imbedded device | |
KR20200139909A (en) | Electronic apparatus and method of performing operations thereof | |
US11861452B1 (en) | Quantized softmax layer for neural networks | |
US20240256834A1 (en) | Neural network computing system and method of executing neural network model | |
KR102523043B1 (en) | Method, device and system for remotely controlling content of a cloud-based video output device | |
CN113673694B (en) | Data processing method and device, electronic equipment and computer readable storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |