WO2022010064A1 - 전자 장치 및 그의 제어 방법 - Google Patents

전자 장치 및 그의 제어 방법 Download PDF

Info

Publication number
WO2022010064A1
WO2022010064A1 PCT/KR2021/002373 KR2021002373W WO2022010064A1 WO 2022010064 A1 WO2022010064 A1 WO 2022010064A1 KR 2021002373 W KR2021002373 W KR 2021002373W WO 2022010064 A1 WO2022010064 A1 WO 2022010064A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
electronic device
value
processor
determining
Prior art date
Application number
PCT/KR2021/002373
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
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to US17/526,651 priority Critical patent/US20220075437A1/en
Publication of WO2022010064A1 publication Critical patent/WO2022010064A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/329Power saving characterised by the action undertaken by task scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3212Monitoring battery levels, e.g. power saving mode being initiated when battery voltage goes below a certain level
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • 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/22Microcontrol or microprogram arrangements
    • G06F9/28Enhancement of operational speed, e.g. by using several microcontrol devices operating in parallel
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30029Logical and Boolean instructions, e.g. XOR, NOT
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30105Register structure
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/345Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Definitions

  • the present disclosure relates to an electronic device and a method for controlling the same, and more particularly, to an electronic device for determining a calculation method of a data set based on a sparse component included in the data set, and a method for controlling the same.
  • Artificial neural networks that are trained based on machine learning (eg, deep learning) are being developed and used in various fields, and artificial neural networks can learn or infer based on various types of input data.
  • the artificial neural network can learn or infer by performing a multiplication operation on vector data and outputting the data.
  • the artificial neural network can output the result data more efficiently by performing the multiplication operation only on the values other than 0.
  • the present disclosure has been made to solve the above-described problems, and an object of the present disclosure is to determine a calculation method according to a sparse ratio included in a plurality of data sets, and obtain output data using the determined calculation method, and control the same to provide a method.
  • the electronic device obtains first output data by performing an operation between a memory and index data corresponding to a plurality of data sets, and identifies a sparse ratio of the first output data and determining a calculation method corresponding to the identified sparse ratio among a plurality of calculation methods based on whether the identified sparse ratio exceeds a threshold value, and using the determined calculation method for the plurality of data sets a processor to obtain second output data, wherein the processor determines a first method of performing an operation between the plurality of data sets among the plurality of operation methods when the identified sparse ratio exceeds a threshold value, , when the identified sparse ratio is less than or equal to a threshold value, it is possible to identify data corresponding to valid data included in the index data among the plurality of calculation methods, and determine a second method for performing an operation between the identified data. .
  • FIG. 1A is a block diagram schematically illustrating a configuration of an electronic device according to an embodiment of the present disclosure
  • 1B is a diagram for explaining a process in which an electronic device performs an operation on a data set according to an embodiment of the present disclosure
  • 1C is a diagram for explaining a process in which an electronic device performs an operation on a data set based on state information of the electronic device or an urgency level matched to the data set, according to an embodiment of the present disclosure
  • 1D is a diagram for explaining a process in which an electronic device performs an operation on a data set according to an embodiment of the present disclosure
  • 2A is a view for explaining a second method among a plurality of calculation methods according to an embodiment of the present disclosure
  • 2B is a view for explaining a first method among a plurality of calculation methods according to an embodiment of the present disclosure
  • FIG. 3 is a flowchart for explaining a process in which an electronic device determines a threshold value according to an embodiment of the present disclosure
  • FIG. 4 is a flowchart for explaining a process in which an electronic device determines a threshold value according to an embodiment of the present disclosure
  • FIG. 5 is a flowchart illustrating a process in which an electronic device determines an operation method between grouped data according to an embodiment of the present disclosure
  • FIG. 6 is a flowchart illustrating a method of controlling an electronic device according to an embodiment of the present disclosure
  • FIG. 7 is a detailed block diagram illustrating the configuration of an electronic device according to an embodiment of the present disclosure.
  • the present disclosure provides an electronic device that determines a calculation method based on a sparsity ratio of index data corresponding to a plurality of data sets, and obtains output data for a plurality of data sets using the determined calculation method and to a control method thereof.
  • the electronic device identifies valid data to which data to be operated is matched from among valid data included in index data corresponding to the plurality of data sets, , it is possible to increase computational performance by performing an operation between data matched to the identified valid data. That is, it is possible to identify data on which an actual operation is to be performed excluding 0 included in the plurality of data sets, and compressively perform an operation on only the identified data to increase operation performance.
  • the electronic device of the present disclosure may identify a sparse ratio between a plurality of data sets and efficiently obtain output data by changing a calculation method according to the sparse ratio.
  • FIG. 1A is a block diagram illustrating a configuration of an electronic device 100 according to an embodiment of the present disclosure.
  • the electronic device 100 may include a memory 110 and a processor 120 .
  • the configuration shown in FIG. 1A is an exemplary diagram for implementing embodiments of the present disclosure, and appropriate hardware and software configurations at a level obvious to those skilled in the art may be additionally included in the electronic device 100 .
  • the memory 110 may store commands or data related to at least one other component of the electronic device 100 .
  • the memory 110 is accessed by the processor 120 , and reading/writing/modification/deletion/update of data by the processor 120 may be performed.
  • the memory 110 may store an instruction set corresponding to at least one program executable by the processor 120 .
  • An instruction means one action statement that can be directly executed by the processor 120 in a programming language, and is a minimum unit for program execution or operation.
  • the memory 110 may store feature data of data input through an input unit, etc., and the feature data may be a data set implemented in a vector, matrix, or the like.
  • the feature data may include feature data of a voice input through a microphone and feature data of an image acquired through a camera.
  • the memory 110 may store various artificial neural networks.
  • the artificial neural network includes a plurality of layers, and the plurality of layers may include a plurality of data sets (eg, a kernel data set or a weight data set).
  • Examples of artificial neural networks include Convolutional Neural Network (CNN), Deep Neural Network (DNN), Recurrent Neural Network (RNN), Restricted Boltzmann Machine (RBM), Deep Belief Network (DBN), Bidirectional Recurrent Deep Neural Network (BRDNN) and Deep Q-Networks, and the like, and the artificial neural network in the present disclosure is not limited to the above-described example, except as otherwise specified.
  • the memory 110 may store index data corresponding to a data set included in a plurality of layers.
  • the index data is data that can identify whether a weight value mapped to a plurality of elements (or components) of a data set is 0. For example, when the data set is implemented as a 1x9 vector, 9 elements may be included in the data set, and a weight value of 0 or a non-zero weight value may be mapped to each element. And, the index data corresponding to the data set is implemented as a 1x9 vector, and each element is mapped to a value of 0 or 1. And, when a weight value of 0 is mapped to a specific element of the data set, a value of 0 is mapped to a corresponding specific element of the index data.
  • the valid data may mean an element to which one of the elements included in the index data is mapped. Accordingly, when valid data is included in the third element of the index data, it may mean that a weight other than 0 is mapped to the third data in the data set.
  • the memory 110 may be implemented as a non-volatile memory, a volatile memory, a flash-memory, a hard disk drive (HDD), or a solid state drive (SSD).
  • the term "memory” refers to a memory 110, a ROM (not shown) in the processor 120, a RAM (not shown), or a memory card (not shown) mounted in the electronic device 100 (eg, micro SD card, memory stick).
  • the processor 120 may be electrically connected to the memory 110 to control overall operations and functions of the electronic device 100 .
  • the processor 120 may include one or a plurality of processors.
  • one or a plurality of processors 120 is a general-purpose processor such as CPU (Central Processing Unit), AP (Application Processor), DSP (Digital Signal Processor), etc., GPU (Graphics Processing Unit), VPU (Vision Processing Unit), such as It can be a graphics-only processor or an artificial intelligence-only processor such as a Neural Processing Unit (NPU).
  • CPU Central Processing Unit
  • AP Application Processor
  • DSP Digital Signal Processor
  • GPU Graphics Processing Unit
  • VPU Vision Processing Unit
  • It can be a graphics-only processor or an artificial intelligence-only processor such as a Neural Processing Unit (NPU).
  • NPU Neural Processing Unit
  • the processor 120 may obtain index data corresponding to a plurality of data sets. Specifically, the processor 120 may acquire a data set corresponding to data input through the input unit (eg, voice data, natural language data, image data, etc.).
  • data input through the input unit eg, voice data, natural language data, image data, etc.
  • the processor 120 obtains a data set by performing word embedding on text data input through the input unit, or inputs image data or voice data into an artificial intelligence model to obtain image data or voice data.
  • a data set corresponding to the data may be obtained.
  • word embedding may refer to an algorithm for digitizing one word constituting text into a vector or matrix corresponding thereto.
  • the processor 120 may acquire index data corresponding to the acquired data set.
  • the processor 120 may obtain the first output data by performing an operation between the index data corresponding to the plurality of data sets, and identify the sparse ratio of the first output data. The above operation will be described in detail with reference to FIG. 1B.
  • the processor 120 performs an AND operation on the first index data 15 corresponding to the first data set and the second index data 25 corresponding to the second data set ( 30) to obtain first output data.
  • the AND operation is one of bitwise operations that perform a logical operation in bit units, and outputs 1 only when all of the data corresponding to each of the two index data are 1, and outputs 0 in other cases.
  • the processor 120 inputs each of the first index data 15 - 1 and the second index data 25 - 2 including 12 elements to the module 30 that performs an AND operation to perform the first Output data 40 may be obtained.
  • the first index data 15-1 is [0,1,1,0,1,1,1,1,1,0]
  • the second index data 25-2 is [0, 1,1,1,1,1,0,1,0,1,0]
  • the first output data 40 according to the AND operation is [0,1,1,0,1,1,0, 1,0,1,0,0].
  • the processor 120 may identify a sparse ratio of the obtained first output data.
  • the sparse ratio means a ratio of elements to which 0 is mapped among all elements in the first output data. For example, in the first output data 40 , since 6 elements to which 0 is mapped out of a total of 12 elements, the processor 120 may identify the sparse ratio of the first output data as about 50%.
  • the processor 120 may determine a calculation method corresponding to the identified sparse ratio among a plurality of calculation methods based on whether the identified sparse ratio exceeds a threshold value. When the identified sparse ratio is equal to or less than the threshold value, the processor 120 may determine a first method of directly performing an operation between a plurality of data sets among a plurality of operation methods. That is, the first method is a method in which a multiplication operation is performed between weights mapped to each of a plurality of data sets, and output data is obtained by summing result values obtained by the multiplication operation.
  • the processor 120 identifies valid data matching data to be calculated among the index data among a plurality of calculation methods, and performs an operation between data matching the identified valid data.
  • a second method may be determined. That is, the second method identifies valid data matched with data to be operated on on each index data using the first output data, and compressively performs an operation only on data matched with the identified valid data. .
  • the processor 120 may obtain a parameter corresponding to the first output data based on whether a sparse ratio of the first output data exceeds a threshold value. Then, the processor 120 may determine the calculation method by inputting the obtained parameter to the calculation method determining module 50 .
  • the parameter obtained by the processor 120 is a predefined variable to determine the calculation method, and the calculation method determination module 50 is a module that can determine the calculation method differently according to the input parameter.
  • the processor 120 may output a parameter corresponding to the first calculation method and input the output parameter to the calculation method determination module 50 .
  • the processor 120 may determine the first method among the plurality of calculation methods through the calculation method determining module 50 to which the parameter corresponding to the first calculation method is input.
  • the processor 120 may identify that the sparse ratio of the first output data exceeds the threshold. Correspondingly, the processor 120 may output a parameter corresponding to the second calculation method and input the output parameter to the calculation method determination module 50 .
  • the processor 120 may determine the second method among the plurality of calculation methods through the calculation method determining module 50 to which the parameter corresponding to the second calculation method is input.
  • the parameter corresponding to the second calculation method is 0, this is only an example and may be implemented in various ways.
  • the processor 120 when it is determined as the first method among the plurality of calculation methods, controls index data 15 and 25 corresponding to a plurality of data sets and data 10 corresponding to each index data and valid data. 20) may be input to the restoration module 60 to restore a plurality of data sets.
  • the data 10 and 20 corresponding to the valid data may mean compressed data compressed by excluding a sparse component from each of the plurality of data sets. Therefore, if the first data set is [0,12,5,6,0,0,5], data corresponding to valid data among the index data of the first data set, that is, compressed data is [12,5,6] , 5].
  • the restoration module 60 is a module capable of restoring an existing data set based on data corresponding to index data and valid data, and may be expressed as a decompression module.
  • the processor 120 may perform a multiplication operation 80 - 1 between the restored data sets and add all the result values through the summing module 80 - 2 to obtain second output data.
  • a detailed description of the first operation method using the restoration module 60 will be described with reference to FIG. 2B .
  • the processor 120 when it is determined as the second method among the plurality of calculation methods, performs the first output data 40 and data (or compressed data) 10 corresponding to valid data of each index data. .
  • the compression operation module 70 includes a module for identifying valid data information on which an actual operation is performed among index data (or a priority encoder module) and a module for loading data matching valid data to be identified (or a prefix sum module) ) may be included. And, the compression operation module 70 may be expressed as an inner join logic module.
  • the processor 120 through the compression operation module 70, using the first output data 40, the index of the element to which non-zero data is commonly mapped to the first data set and the second data set (index) (or order) can be identified. For example, since 1 is mapped to the 2nd, 3rd, 5th, 6th, 8th, and 10th elements of the first output data, the processor 120 performs the first data set and the second element through the compression operation module 70 .
  • valid data included in index data corresponding to each of the two data sets valid data matched with data to be operated on may be identified as 2nd, 3rd, 5th, 6th, 8th, and 10th valid data.
  • the processor 120 through the compression operation module 70, the valid data (10, 20) included in each index data is matched to the 2, 3, 5, 6, 8, 10th valid data
  • the second output data may be obtained by performing a multiplication operation 80 - 1 between the data and adding all the result values through the summing module 80 - 2 . A detailed description of the second operation method will be described in detail with reference to FIG. 2A .
  • the processor 120 may input the second output data obtained through the summing module 80 - 2 to the output module 90 - 1 .
  • the processor 120 transmits second output data to another component when 1 of parameters obtained through the sparse ratio is input through the output module 90-1, and 0 of the parameters obtained through the sparse ratio is inputted through the output module 90-1.
  • the second output data may be temporarily stored in the buffer control module 90 - 2 .
  • the processor 120 may determine the size of the threshold based on at least one of status information of the electronic device and types of a plurality of data sets. That is, the processor 120 may determine the size of the threshold differently according to the degree of urgency matched to the variable state of the electronic device and the types of the plurality of data sets.
  • the state information of the electronic device may include at least one of a remaining battery amount of the electronic device 100 , a usage amount of the processor 120 , and available resources.
  • the processor 120 may determine the threshold value differently in consideration of both the state information of the electronic device 100 and the degree of urgency matched to the types of the plurality of data sets.
  • the processor 120 determines the size of the threshold value as the first value, and the remaining amount of the battery of the electronic device 100 exceeds the preset value.
  • the processor 120 may determine the magnitude of the threshold value as a second value greater than the first value. That is, when the remaining battery power is small, it may be more important to reduce energy consumption than to improve performance of data set operation. Accordingly, the processor 120 may increase the probability of outputting a parameter value for determining the first method with low energy consumption among the plurality of calculation methods by increasing the threshold value as the battery remaining amount decreases.
  • the processor 120 determines the size of the threshold value as the second value, and when the usage amount of the processor 120 is less than or equal to the preset value , the processor 120 may determine the size of the threshold as a first value smaller than the second value. That is, when the amount of use of the processor 120 exceeds the preset value and the available resources are small, the processor 120 increases the threshold value to determine the first method with low energy consumption among the plurality of calculation methods. You can increase the probability that a value is output.
  • different urgency may be matched for each type of a plurality of data sets. For example, since a data set for processing a user's voice or a data set to be processed for execution of a navigation application must be urgently processed, a high degree of urgency can be matched. On the other hand, since a data set for processing image data and the like does not need to be processed relatively urgently, a relatively low value of urgency can be matched. Accordingly, the processor 120 may identify the matched urgency for each type of the plurality of data sets.
  • the processor 120 determines the size of the threshold as a third numerical value, and when the identified urgency level is less than or equal to the predetermined value, the processor 120 determines the size of the threshold value. may be determined as a fourth value greater than the third value. That is, when the types of the plurality of data sets require a quick (or urgent) response, the processor 120 determines a second method that can increase the operation speed among the plurality of operation methods by reducing the numerical value of the threshold value. It is possible to increase the probability that the parameter value is output.
  • the processor 120 may determine one of the plurality of calculation methods by inputting the plurality of determined parameter sets to the calculation method determining module 50 . For example, when the remaining battery power of the electronic device 100 exceeds a preset value, the processor 120 obtains the first parameter set 40-3 obtained when the threshold value is a first value among the plurality of parameter sets. can be decided As another example, when the degree of urgency matched to the plurality of data sets is less than or equal to a preset value, the processor 120 selects the second parameter set 40 - 4 obtained when the threshold value among the plurality of parameter sets is a second numerical value. can decide
  • the processor 120 may obtain the first output data by performing an operation on only some of the elements included in the first and second index data. It is not necessary to identify an accurate sparse ratio of the first output data in order to determine the calculation method, and the distribution of the sparse component of the data may have locality. In other words, there is a high probability that non-zero data is mapped around non-zero values in the data set. Accordingly, the processor 120 may obtain the first output data by performing an AND operation 95-1 between all elements included in the first and second index data, but adjacent data among the first and second index data may be grouped by a preset size, and data for determining an association method may be output using a representative value of the grouped data. Through the above method, the processor 140 may increase the speed of determining the calculation method.
  • the processor 120 may obtain third output data by performing an operation between the index data including the determined representative value of the grouped data, and identify a sparse ratio of the obtained third output data.
  • the processor 120 may determine a calculation method corresponding to the sparse ratio of the third output data among a plurality of calculation methods based on whether the identified sparse ratio of the third output data exceeds a threshold value.
  • the processor 120 determines a predetermined size for grouping and an operation method between the grouped data based on at least one of the state information of the electronic device and the type of the plurality of data sets, and uses the determined operation method between the grouped data A representative value can be determined by performing an operation.
  • the processor 120 may determine the preset size as the fifth numerical value and determine the operation method between the grouped data by an AND operation. Referring to the operation process of step 95-2, the processor 120 groups each of the first and second index data by 2 bits, and performs an AND operation between the grouped data to determine a representative value.
  • the processor 120 may determine the operation method between the grouped data as an OR operation. Specifically, the processor 120 groups each of the first and second index data into a unit of a predefined size, and performs an OR operation between the grouped data to determine a representative value.
  • the OR operation is one of bitwise operations that perform logical operations in bitwise units, and when all of the data corresponding to each of the two index data are 0, 0 is output, and in other cases, 1 is output. it's an arithmetic
  • the predefined size unit is 2 bits in FIG. 1D, this is only an example, and it goes without saying that the size unit for grouping may be changed by the user.
  • the processor 120 may obtain third output data by performing an operation between the representative values corresponding to the determined first and second index data.
  • the processor 120 may determine a calculation method corresponding to the sparse ratio among a plurality of calculation methods based on whether the obtained sparse ratio of the third output data exceeds a threshold value. That is, when the remaining amount of the battery of the electronic device is equal to or less than a preset value, the processor 120 may determine an OR operation as an operation method between grouped data to increase the probability that a representative value of 1 is obtained. Accordingly, the probability that the sparse ratio of the third output data does not exceed the threshold value may increase, and the probability that the first calculation method which consumes less energy among the plurality of calculation methods is determined may increase.
  • processor 120 Functions related to artificial intelligence applied to an artificial neural network, etc. according to the present disclosure are operated through the processor 120 and the memory 110 .
  • One or a plurality of processors 120 controls to process input data according to a predefined operation rule or artificial intelligence model stored in the memory 110 .
  • the AI-only processor may be designed with a hardware structure specialized for processing a specific AI model.
  • a predefined action rule or artificial intelligence model is characterized in that it is created through learning.
  • being made through learning means that a basic artificial intelligence model is learned using a plurality of learning data by a learning algorithm, so that a predefined action rule or artificial intelligence model set to perform a desired characteristic (or purpose) is created means burden.
  • Such learning may be performed in the device itself on which artificial intelligence according to the present disclosure is performed, or may be performed through a separate server and/or system.
  • Examples of the learning algorithm include, but are not limited to, supervised learning, unsupervised learning, semi-supervised learning, or reinforcement learning.
  • the artificial intelligence model may be composed of a plurality of neural network layers.
  • Each of the plurality of neural network layers has a plurality of weight values, and a neural network operation is performed through an operation between the operation result of a previous layer and the plurality of weights.
  • the plurality of weights of the plurality of neural network layers may be optimized by the learning result of the artificial intelligence model. For example, a plurality of weights may be updated so that a loss value or a cost value obtained from the artificial intelligence model during the learning process is reduced or minimized.
  • FIG. 2A is a diagram for describing a process in which the electronic device 100 obtains output data by using a second calculation method among a plurality of calculation methods, according to an embodiment of the present disclosure.
  • the first index data 200 - 2 and the second index data 210 - 2 are a first data set 200 - 1 and a second data set 210 - 1 ) is index data corresponding to the first data set 200-1 and the second data set 210-1 obtained based on the weight included in the .
  • the first compressed data 200-1 and the second compressed data 210-3 have 0 in each of the first data set 200-1 and the second data set 210-1 except for sparse components. It is data that consists only of weight values.
  • the electronic device 100 uses a compression operation module 70 including a priority encoder module 70-1 and a plurality of prefix sum modules 70-2 and 70-3 to obtain a second Output data can be obtained.
  • the electronic device 100 may identify valid data information corresponding to data on which an actual operation is to be performed using the first output data 220 through the priority encoder module 70-1.
  • the electronic device 100 may identify that an actual operation may be performed between valid data having a 0 th index and data corresponding to valid data having a 5 th index among the first output data 220 .
  • the electronic device 100 receives data corresponding to the data to be actually calculated through the first prefix sum module 70-3 and the second prefix sum module 70-2.
  • Data matching valid data may be identified.
  • the electronic device 100 includes two valid data before valid data having a fifth index in the first index data 200-2 through the first prefix sum module 70-3 can be identified.
  • the first prefix sum module 70-3 includes various operation logic such as adder logic, it is possible to identify the number of valid data before the effective data to be actually calculated during one cycle. . Accordingly, the electronic device 100 may identify, through the first prefix sum module 70 - 3 , that data corresponding to valid data having a fifth index among compressed data is the third data.
  • the electronic device 100 may obtain 16 by performing a multiplication operation between 8, which is the third data of the first compressed data 200-3, and 2, which is the fourth data, of the second compressed data 210-3. have. Meanwhile, through the above-described method, the electronic device 100 may identify that the data to be actually calculated is the first data among the compressed data 220 - 3 and 210 - 3 . Accordingly, the electronic device 100 may obtain 36 by multiplying the first data of each compressed data by 12 and 3. In addition, the electronic device 100 may acquire second output data (eg, 52 ) by adding values (eg, 36 and 16 ) to which a multiplication operation has been performed.
  • second output data eg, 52
  • FIG. 2B is a diagram for describing a process in which the electronic device 100 acquires output data by using a first calculation method among a plurality of calculation methods, according to an embodiment of the present disclosure.
  • FIG. 2B shows that the sparse ratio of first output data obtained by performing an AND operation on index data corresponding to a plurality of data sets exceeds a threshold value, so that the electronic device 100 determines a first operation method from among the plurality of methods assume you did
  • the electronic device 100 restores the first index data 15 corresponding to the first data set and the compressed data 10 corresponding to the first data set to the first operation module 60-1 among the restoration modules. It is possible to obtain a component included in the first data set by inputting to . Then, the electronic device 100 inputs the second index data 25 corresponding to the second data set and the compressed data 20 corresponding to the second data set to the second operation module 60-2 among the restoration modules. Thus, it is possible to obtain a component included in the second data set.
  • the electronic device 100 performs a multiplication operation between the components output from the first operation module 60-1 and the second operation module 60-2, and performs a sum operation between the result values on which the product operation is performed. to obtain the second output data.
  • FIG. 3 is a diagram for explaining a process in which the electronic device 100 determines a threshold value to be compared with a sparse ratio of first output data in order to determine one of a plurality of calculation methods based on state information of the electronic device 100 It is a flowchart.
  • the electronic device 100 may identify whether a numerical value corresponding to the state information of the electronic device exceeds a preset value (S310).
  • the state information of the electronic device 100 means information about a resource required for the electronic device 100 to perform a specific operation, and includes, for example, the remaining battery level of the electronic device and available resources of the processor 120 . can do.
  • the electronic device 100 may identify the current remaining amount of the battery and identify whether the identified remaining amount exceeds a first preset value.
  • the electronic device 100 may identify whether the available resource of the current processor 120 exceeds a second preset value.
  • the available resources of the processor 120 may include resources necessary to perform an operation between a plurality of data sets except for a task currently executed by the processor 120 or a task performed in the background.
  • the first preset value and the second preset value may be changed by a user command.
  • the electronic device 100 may determine the size of the threshold value as the first numerical value (S320). For example, when the remaining amount of the battery exceeds the first preset value and the available resources of the processor 120 exceeds the second preset value, the electronic device 100 determines the threshold value as a relatively small first value. can Accordingly, the probability that the sparse ratio of the first output data exceeds the threshold value may increase. When the sparse ratio exceeds a threshold value, which is a relatively small first numerical value, the electronic device 100 may use a hardware module including additional computation logic to increase computation performance performed between a plurality of data sets.
  • the electronic device 100 may determine a calculation method corresponding to the sparse ratio of the first output data from among a plurality of calculation methods based on the determined threshold value (S340). That is, the electronic device 100 may identify whether the sparse ratio of the first output data exceeds a threshold value determined as one of the first numerical value or the second numerical value.
  • the electronic device 100 determines a first scheme among a plurality of calculation schemes, and when the sparse ratio of the first output data exceeds the threshold value, the electronic device 100 may determine the second method among the plurality of calculation methods.
  • the electronic device 100 may obtain second output data for a plurality of data sets by using the determined calculation method ( S350 ). Since the process in which the electronic device 100 obtains output data using each calculation method has been described above, a redundant description thereof will be omitted.
  • FIG. 4 is a flowchart illustrating a process in which the electronic device 100 determines a threshold value based on the degree of urgency matched to the types of a plurality of data sets, according to an embodiment of the present disclosure.
  • the electronic device 100 may identify the degree of urgency matched to the types of the plurality of data sets (S410). For example, since a data set for processing a user's voice, a data set to be processed for execution of a navigation application, etc. must be urgently processed, a high degree of urgency may be matched to each data set. In addition, since a data set for processing image data or the like does not need to be processed relatively urgently, a relatively low value of urgency can be matched. However, this is only an example, and it goes without saying that the degree of urgency matching the type of each data set may be changed differently by the user.
  • the electronic device 100 may identify whether the identified urgency exceeds a preset value ( S420 ). In this case, of course, the preset value may be changed by the user. When the degree of urgency exceeds the preset value, the electronic device 100 may determine the size of the threshold as the first numerical value (S430). On the other hand, when the degree of urgency is equal to or less than the preset value, the electronic device 100 may determine the size of the threshold as a second value greater than the first value (S440).
  • the electronic device 100 may increase the probability that the sparse ratio of the first output data is higher than the threshold value by determining the threshold value as a relatively small value. Accordingly, the electronic device 100 may use a hardware module including additional operation logic to increase operation performance performed between a plurality of data sets. Meanwhile, if it is identified that there is no need to process the data set relatively urgently, the electronic device 100 may increase the probability that the sparse ratio of the first output data is lower than the threshold value by determining the threshold value as a relatively high value. Accordingly, the electronic device 100 may reduce energy consumption by performing an operation between a plurality of data sets without using a hardware module including additional operation logic.
  • the electronic device 100 may determine a calculation method corresponding to the sparse ratio of the first output data among a plurality of calculation methods based on the determined threshold value ( S450 ). In addition, the electronic device 100 may obtain second output data for a plurality of data sets by using the determined calculation method ( S460 ). Since the descriptions related to steps S450 and S460 have been described above, they will be omitted.
  • FIG. 5 is a diagram for explaining a process of determining, by the electronic device 100, a representative value of grouped data among index data, according to an embodiment of the present disclosure.
  • the electronic device 100 may group adjacent data among index data corresponding to each of the plurality of data sets by a preset size ( S510 ).
  • the size unit for grouping the index data may be a preset value, but this is only an example and it goes without saying that the value may be changed by a user.
  • the electronic device 100 may identify whether a numerical value corresponding to the state information of the electronic device exceeds a preset value (S520). When the numerical value corresponding to the state information of the electronic device exceeds a preset value, the electronic device 100 may determine the operation method between the grouped data as an AND operation (S530). For example, when the remaining battery power of the electronic device exceeds a first preset value and the available resources of the processor 120 exceeds a second preset value, the electronic device 100 performs an AND operation method between the grouped data. It can be determined by calculation.
  • the electronic device 100 may determine the representative value by performing an AND operation between the grouped data. Since the component of index data is 0 or 1, if the operation method is determined as an AND operation, the probability that the result value will be 0 may be higher than when an OR operation is performed. Accordingly, the probability that the sparse ratio of the first output data becomes higher than the threshold value may increase. Accordingly, the electronic device 100 may increase the operation performance performed between the plurality of data sets by using a hardware module including additional operation logic.
  • the electronic device 100 may determine the operation method between the grouped data as an OR operation (S540). For example, when the remaining battery power of the electronic device is less than or equal to a first preset value or when available resources of the processor are less than or equal to a second preset value, the electronic device 100 may determine an operation method between grouped data as an OR operation.
  • the electronic device 100 may determine the representative value by performing an OR operation between the grouped data.
  • an operation method between grouped data is determined as an OR operation, the probability that the result value will be 1 may be higher than when an AND operation is performed. Accordingly, the probability that the sparse ratio of the first output data is lower than the threshold value may increase. Accordingly, the electronic device 100 may reduce energy consumption by performing an operation between a plurality of data sets without using a hardware module including additional operation logic.
  • the electronic device 100 may determine a representative value by performing an operation between the data grouped by the determined operation method (S550). Then, the electronic device 100 may obtain third output data by performing an operation between the index data including the determined representative value (S560).
  • the electronic device 100 may identify a sparse ratio of the third output data and determine one of a plurality of calculation methods based on whether the identified sparse ratio exceeds a threshold value ( S570 ). Since the process of determining the calculation method based on the threshold has been described above, a redundant description will be omitted.
  • FIG. 6 is a diagram for explaining a method of controlling the electronic device 100 according to an embodiment of the present disclosure.
  • the electronic device 100 may obtain first output data by performing an operation between index data corresponding to a plurality of data sets ( S610 ). Specifically, the electronic device 100 may obtain index data corresponding to a plurality of data sets, and perform an AND operation between the obtained index data to obtain first output data.
  • the electronic device 100 may identify the sparse ratio of the first output data ( S620 ). Specifically, the electronic device 100 may identify a ratio of elements mapped with 0 among all elements included in the first output data.
  • the electronic device 100 may identify whether the sparse ratio of the first output data exceeds a threshold value ( S630 ).
  • the threshold value may be a preset value, but this is only an example, and the electronic device 100 may change the threshold value according to the state information of the electronic device 100 or the degree of urgency corresponding to the plurality of data sets.
  • the electronic device 100 may determine a second calculation method among a plurality of calculation methods ( S640 ).
  • the second method is a method of identifying valid data matched with data to be operated on each index data using the first output data, and compressively performing an operation only on data matched with the identified valid data.
  • the electronic device 100 may determine a first calculation method among a plurality of calculation methods ( S650 ).
  • the first operation method is a method of directly performing a multiplication operation between a plurality of data sets.
  • the electronic device 100 may obtain second output data for a plurality of data sets by using the determined calculation method ( S660 ).
  • the electronic device 100 may include a memory 110 , a processor 120 , a communication unit 130 , an input unit 140 , an output unit 150 , and a sensor 160 . Meanwhile, since the memory 110 and the processor 120 have been described in detail with reference to FIGS. 1A to 1D , redundant descriptions will be omitted.
  • the communication unit 130 includes a circuit and may communicate with a server (not shown) or an external device (not shown). Specifically, the processor 120 may receive and transmit various data or information from a server (not shown) or an external device (not shown) connected through the communication unit 130 . In particular, the communication unit 130 may receive input data from an external server or an external device.
  • the communication unit 130 may include various communication modules to communicate with an external device or server.
  • the communication unit 130 may include a wireless communication module, for example, LTE, LTE Advance (LTE-A), CDMA (code division multiple access), WCDMA (wideband CDMA), UMTS (universal mobile telecommunications) system), a cellular communication module using at least one of Wireless Broadband (WiBro), 5th generation (5G), and Global System for Mobile Communications (GSM).
  • the wireless communication module may include, for example, at least one of wireless fidelity (WiFi), Bluetooth, and Bluetooth low energy (BLE).
  • the input unit 140 includes a circuit, and the processor 120 may receive a user command or various data for controlling the operation of the electronic device 100 through the input unit 140 .
  • the input unit 150 may include a touch sensor, a (digital) pen sensor, a pressure sensor, a key, and the like.
  • the touch sensor may use, for example, at least one of a capacitive type, a pressure sensitive type, an infrared type, and an ultrasonic type.
  • the input unit 150 may receive a command for changing the threshold value from the user. That is, the processor 120 may receive a user command for changing the threshold value through the input unit 150 , and may change the threshold value according to the received user command. Accordingly, the processor 120 may determine a calculation method corresponding to the sparse ratio among a plurality of calculation methods based on whether the sparse ratio of the first output data exceeds the changed threshold value.
  • the display 150 may be implemented as a liquid crystal display panel (LCD), organic light emitting diodes (OLED), or the like, and in some cases, may be implemented as a flexible display, a transparent display, or the like. Also, the display 160 may be implemented as a touch screen together with a touch panel. However, it is not limited to the above-described implementation, and the display 150 may be implemented differently depending on the type of the electronic device 100 .
  • LCD liquid crystal display panel
  • OLED organic light emitting diodes
  • the display 150 may display various information under the control of the processor 120 .
  • the display 140 may display a UI for changing the threshold value.
  • the display 140 may display input data input through the input unit 150 and output data obtained by performing an operation between a plurality of data sets.
  • the display 150 may display a message indicating that the remaining battery level of the electronic device 100 or the resource of the processor 120 is less than or equal to a preset value or may display an indicator corresponding thereto.
  • the speaker 160 is configured to output not only various audio data on which various processing operations such as decoding, amplification, and noise filtering have been performed by an audio processing unit (not shown) but also various notification sounds or voice messages.
  • the speaker 160 may output a message indicating that the remaining battery level of the electronic device 100 or the resource of the processor 120 is less than or equal to a preset value in a voice form or may output a notification sound corresponding thereto.
  • the electronic device 100 may determine a calculation method according to the sparse ratio of the data set and obtain output data using the determined calculation method to improve calculation performance and improve energy efficiency. have.
  • expressions such as “have,” “may have,” “include,” or “may include” indicate the presence of a corresponding characteristic (eg, a numerical value, function, operation, or component such as a part). and does not exclude the presence of additional features.
  • expressions such as “A or B,” “at least one of A and/and B,” or “one or more of A or/and B” may include all possible combinations of the items listed together.
  • “A or B,” “at least one of A and B,” or “at least one of A or B” means (1) includes at least one A, (2) includes at least one B; Or (3) it may refer to all cases including both at least one A and at least one B.
  • a component eg, a first component is "coupled with/to (operatively or communicatively)" to another component (eg, a second component);
  • another component eg, a second component
  • the certain element may be directly connected to the other element or may be connected through another element (eg, a third element).
  • a component eg, a first component
  • another component eg, a second component
  • a device configured to may mean that the device is “capable of” with other devices or parts.
  • a coprocessor configured (or configured to perform) A, B, and C may include a processor dedicated to performing the operations (eg, an embedded processor), or executing one or more software programs stored in a memory device. By doing so, it may mean a generic-purpose processor (eg, a CPU or an application processor) capable of performing corresponding operations.
  • the electronic device 100 and the external device include, for example, at least one of a smart phone, a tablet PC, a desktop PC, a laptop PC, a netbook computer, a server, a PDA, a medical device, or a wearable device.
  • the electronic device may include, for example, at least one of a television, a refrigerator, an air conditioner, an air purifier, a set-top box, and a media box (eg, Samsung HomeSyncTM, Apple TVTM, or Google TVTM).
  • Various embodiments of the present disclosure may be implemented as software including instructions stored in a machine-readable storage media readable by a machine (eg, a computer).
  • a device that is called and can operate according to the called command it may include an electronic device (eg, the electronic device 100) according to the disclosed embodiments.
  • the processor directly or A function corresponding to the instruction may be performed using other components under the control of the processor.
  • the instruction may include code generated or executed by a compiler or an interpreter.
  • a device-readable storage medium includes: It may be provided in the form of a non-transitory storage medium, where the 'non-transitory storage medium' does not include a signal and means that it is tangible and data is semi-permanent in the storage medium Alternatively, temporary storage is not distinguished, for example, a 'non-transitory storage medium' may include a buffer in which data is temporarily stored.
  • the method according to various embodiments disclosed in the present disclosure may be included and provided in a computer program product.
  • Computer program products may be traded between sellers and buyers as commodities.
  • the computer program product may be distributed in the form of a machine-readable storage medium (eg, compact disc read only memory (CD-ROM)) or online through an application store (eg, Play StoreTM).
  • an application store eg, Play StoreTM
  • at least a portion of a computer program product eg, a downloadable app
  • a storage medium such as a memory of a server of a manufacturer, a server of an application store, or a relay server, or is temporarily stored can be created with
  • Each of the components may be composed of a singular or a plurality of entities, and some sub-components of the aforementioned sub-components may be omitted, or other sub-components may be various. It may be further included in the embodiment.
  • some components eg, a module or a program
  • operations performed by a module, program, or other component may be sequentially, parallel, repetitively or heuristically executed, or at least some operations may be executed in a different order, omitted, or other operations may be added.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Biomedical Technology (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Complex Calculations (AREA)
  • Power Sources (AREA)

Abstract

전자 장치 및 이의 제어 방법이 개시된다. 본 개시의 전자 장치는 메모리 및 복수의 데이터 셋에 대응되는 인덱스 데이터 간의 연산을 수행하여 제1 출력 데이터를 획득하고, 제1 출력 데이터의 희소 비율을 식별하고, 식별된 희소 비율이 임계값을 초과하는지 여부에 기초하여 복수의 연산 방식 중 식별된 희소 비율에 대응되는 연산 방식을 결정하고, 결정된 연산 방식을 이용하여 복수의 데이터 셋에 대한 제2 출력 데이터를 획득하는 프로세서를 포함할 수 있다.

Description

전자 장치 및 그의 제어 방법
본 개시는 전자 장치 및 이의 제어 방법에 관한 것으로서, 더욱 상세하게는 데이터 셋에 포함된 희소 성분을 바탕으로 데이터 셋의 연산 방식을 결정하는 전자 장치 및 이의 제어 방법에 관한 것이다.
기계 학습(예로, 딥 러닝(Deep learning))을 기반으로 학습되는 인공 신경망은 다양한 분야에서 개발 및 활용되고 있으며, 인공 신경망은 입력되는 다양한 종류의 데이터를 기반으로 하여 학습 또는 추론할 수 있다. 예를 들어, 인공 신경망은 벡터 데이터에 대해 곱 연산을 수행하여 데이터를 출력함으로써 학습 또는 추론할 수 있다.
한편, 0은 어떤 값과 곱 연산을 수행하여 0이 되므로, 0에 대한 곱 연산은 수행할 필요가 없다. 따라서, 곱 연산을 수행할 벡터 데이터에 많은 양의 0이 포함된 경우, 인공 신경망은 0을 제외한 나머지 값에 대해서만 곱 연산을 수행하면 좀 더 효율적으로 결과 데이터를 출력할 수 있다.
따라서, 기존에는 인공 신경망에 각종 연산 모듈을 부가하여 데이터 셋에 포함된 0을 제외한 나머지 데이터에 대해서만 연산을 수행하는 기술이 개발되었다. 다만, 기존 기술의 경우, 인공 신경망에 추가 연산 모듈을 부가하여 압축적으로 데이터에 대해 연산을 수행함으로써 연산 성능을 향상시킬 수 있으나, 에너지 소모량이 증가한다는 단점이 발생하였다. 또한, 기존 방식의 경우, 데이터 셋에 많은 양의 0이 포함되지 않음에도 데이터를 압축하여 연산할 경우, 향상되는 연산 성능에 비해 에너지 소모량이 지나치게 커진다는 한계가 존재하였다.
본 개시는 상술한 문제점을 해결하기 위해 안출된 것으로서, 본 개시의 목적은 복수의 데이터 셋에 포함된 희소 비율에 따라 연산 방식을 결정하고, 결정된 연산 방식으로 출력 데이터를 획득하는 전자 장치 및 이의 제어 방법을 제공함에 있다.
본 개시의 일 실시예에 따른, 전자 장치는 메모리 및 복수의 데이터 셋(data set)에 대응되는 인덱스 데이터 간의 연산을 수행하여 제1 출력 데이터를 획득하고, 상기 제1 출력 데이터의 희소 비율을 식별하고, 상기 식별된 희소 비율이 임계값을 초과하는지 여부에 기초하여 복수의 연산 방식 중 상기 식별된 희소 비율에 대응되는 연산 방식을 결정하고, 상기 결정된 연산 방식을 이용하여 상기 복수의 데이터 셋에 대한 제2 출력 데이터를 획득하는 프로세서;를 포함하고, 상기 프로세서는 상기 식별된 희소 비율이 임계값을 초과하면, 상기 복수의 연산 방식 중 상기 복수의 데이터 셋 간에 연산을 수행하는 제1 방식을 결정하고, 상기 식별된 희소 비율이 임계값 이하면, 상기 복수의 연산 방식 중 상기 인덱스 데이터에 포함된 유효 데이터에 대응되는 데이터를 식별하고, 상기 식별된 데이터 간에 연산을 수행하는 제2 방식을 결정할 수 있다.
본 개시의 일 실시예에 따른, 전자 장치의 제어 방법은 복수의 데이터 셋에 대응되는 인덱스 데이터 간의 연산을 수행하여 제1 출력 데이터를 획득하고, 상기 제1 출력 데이터의 희소 비율을 식별하는 단계, 상기 식별된 희소 비율이 임계값을 초과하는지 여부에 기초하여 복수의 연산 방식 중 상기 식별된 희소 비율에 대응되는 연산 방식을 결정하는 단계, 및 상기 결정된 연산 방식을 이용하여 상기 복수의 데이터 셋에 대한 제2 출력 데이터를 획득하는 단계를 포함하고, 상기 결정하는 단계는, 상기 식별된 희소 비율이 임계값을 초과하면, 상기 복수의 연산 방식 중 상기 복수의 데이터 셋 간에 연산을 수행하는 제1 방식을 결정하고, 상기 식별된 희소 비율이 임계값 이하면, 상기 복수의 연산 방식 중 상기 인덱스 데이터에 포함된 유효 데이터에 대응되는 데이터를 식별하고, 상기 식별된 데이터 간에 연산을 수행하는 제2 방식을 결정하는 단계를 포함할 수 있다.
도 1a 은 본 개시의 일 실시예에 따른, 전자 장치의 구성을 간략히 도시한 블록도,
도 1b는 본 개시의 일 실시예에 따른, 전자 장치가 데이터 셋에 대한 연산을 수행하는 과정을 설명하기 위한 도면,
도 1c는 본 개시의 일 실시예에 따른, 전자 장치가 전자 장치의 상태 정보 또는 데이터 셋에 매칭된 긴급한 정도에 기초하여 데이터 셋에 대한 연산을 수행하는 과정을 설명하기 위한 도면,
도 1d는 본 개시의 일 실시예에 따른, 전자 장치가 데이터 셋에 대한 연산을 수행하는 과정을 설명하기 위한 도면,
도 2a는 본 개시의 일 실시예에 따른, 복수의 연산 방식 중 제2 방식을 설명하기 위한 도면,
도 2b는 본 개시의 일 실시예에 따른, 복수의 연산 방식 중 제1 방식을 설명하기 위한 도면,
도 3은 본 개시의 일 실시에에 따른, 전자 장치가 임계값을 결정하는 과정을 설명하기 위한 순서도,
도 4는 본 개시의 일 실시에에 따른, 전자 장치가 임계값을 결정하는 과정을 설명하기 위한 순서도,
도 5는 본 개시의 일 실시예에 따른, 전자 장치가 그룹핑된 데이터 간의 연산 방식을 결정하는 과정을 설명하기 위한 순서도,
도 6은 본 개시의 일 실시예에 따른, 전자 장치의 제어 방법을 설명하기 위한 순서도,
도 7은 본 개시의 일 실시예에 따른, 전자 장치의 구성을 상세히 도시한 블록도이다.
본 개시는 복수의 데이터 셋(data set)에 대응되는 인덱스 데이터의 희소(sparsity) 비율에 기초하여 연산 방식을 결정하고, 결정된 연산 방식을 이용하여 복수의 데이터 셋에 대한 출력 데이터를 획득하는 전자 장치 및 이의 제어 방법에 관한 것이다.
구체적으로, 복수의 데이터 셋에 희소 성분 즉, 0이 많이 포함된 경우, 전자 장치는 복수의 데이터 셋에 대응되는 인덱스 데이터에 포함된 유효 데이터 중 연산을 수행할 데이터가 매칭된 유효 데이터를 식별하고, 식별된 유효 데이터에 매칭된 데이터 간에 연산을 수행함으로써 연산 성능을 높일 수 있다. 즉, 복수의 데이터 셋에 포함된 0을 제외하고 실제 연산을 수행할 데이터를 식별하고, 식별된 데이터만 압축적으로 연산을 수행하여 연산 성능을 높일 수 있다.
다만, 해당 연산 방식의 경우, 한 번의 사이클(cycle) 내에 복수의 인덱스 데이터에 포함된 유효 데이터 중 실제 연산을 수행할 데이터가 매칭된 유효 데이터를 식별하고, 식별된 유효 데이터가 매칭된 데이터 간에 연산을 수행하기 위해서는 각종 연산 로직(예를 들어, adder 로직, encoder 로직 등)이 포함된 다량의 하드웨어 모듈 등이 필요므로, 에너지 소모량이 증가될 수 있다. 그리고, 복수의 데이터 셋에 희소 성분이 많이 포함되어 있지 않음에도 해당 연산 방식을 수행할 경우, 연산 성능은 크게 증가되지 않으며 에너지 소모량만 비효율적으로 커질 수 있다. 따라서, 본 개시의 전자 장치는 복수의 데이터 셋 간의 희소 비율을 식별하고, 희소 비율에 따라 연산 방식을 달리하여 출력 데이터를 효율적으로 획득할 수 있다.
이하에서는 첨부한 도면을 참조하여 본 개시의 일 실시예에 대하여, 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다.
도 1a는 본 개시의 일 실시예에 따른, 전자 장치(100)의 구성을 도시한 블록도이다. 도 1a에 도시된 바와 같이, 전자 장치(100)는 메모리(110) 및 프로세서(120)를 포함할 수 있다. 다만, 도 1a에 도시된 구성은 본 개시의 실시 예들을 구현하기 위한 예시도이며, 통상의 기술자에게 자명한 수준의 적절한 하드웨어 및 소프트웨어 구성들이 전자 장치(100)에 추가로 포함될 수 있다.
메모리(110)는 전자 장치(100)의 적어도 하나의 다른 구성요소에 관계된 명령 또는 데이터를 저장할 수 있다. 그리고, 메모리(110)는 프로세서(120)에 의해 액세스되며, 프로세서(120)에 의한 데이터의 독취/기록/수정/삭제/갱신 등이 수행될 수 있다.
메모리(110)는 프로세서(120)가 실행할 수 있는 적어도 하나의 프로그램에 대응되는 인스트럭션 집합(instruction set)을 저장할 수 있다. 인스트럭션은 프로그래밍 작성 언어에서 프로세서(120)가 직접 실행할 수 있는 하나의 동작 문장(action statement)를 의미하며, 프로그램의 실행 또는 동작에 대한 최소 단위이다.
메모리(110)는 입력부 등을 통해 입력된 데이터의 특징 데이터를 저장할 수 있으며, 특징 데이터는 벡터, 행렬 등으로 구현된 데이터 셋일 수 있다. 예를 들면, 특징 데이터는 마이크를 통해 입력된 음성의 특징 데이터, 카메라를 통해 획득된 영상의 특징 데이터를 포함할 수 있다.
메모리(110)는 각종 인공 신경망을 저장할 수 있다. 인공 신경망은 복수의 레이어(layer)를 포함하고 있으며, 복수의 레이어에는 복수의 데이터 셋(예를 들어, 커널(kernel) 데이터 셋 또는 가중치 데이터 셋 등)을 포함할 수 있다. 인공 신경망의 예로는, CNN (Convolutional Neural Network), DNN (Deep Neural Network), RNN (Recurrent Neural Network), RBM (Restricted Boltzmann Machine), DBN (Deep Belief Network), BRDNN(Bidirectional Recurrent Deep Neural Network) 및 심층 Q-네트워크 (Deep Q-Networks) 등이 있으며, 본 개시에서의 인공 신경망은 명시한 경우를 제외하고 전술한 예에 한정되지 않는다.
메모리(110)는 복수의 레이어에 포함된 데이터 셋에 대응되는 인덱스(index) 데이터를 저장할 수 있다. 인덱스 데이터는 데이터 셋의 복수의 엘리먼트(또는, 성분)에 맵핑된 가중치 값이 0인지 여부를 식별할 수 있는 데이터이다. 예를 들어, 데이터 셋이 1x9 형태의 벡터로 구현된 경우, 데이터 셋에는 9개의 엘리먼트가 포함될 수 있으며, 각 엘리먼트에는 0 또는 0이 아닌 가중치 값이 맵핑될 수 있다. 그리고, 데이터 셋에 대응되는 인덱스 데이터는 1x9 형태의 벡터로 구현되며, 각 엘리먼트는 0 또는 1인 값으로 맵핑된다. 그리고, 데이터 셋의 특정 엘리먼트에 0인 가중치 값이 맵핑된 경우, 인덱스 데이터의 대응되는 특정 엘리먼트에는 0인 값이 맵핑된다. 그리고, 데이터 셋의 특정 엘리먼트에 0이 아닌 값이 가중치 값이 맵핑된 경우, 인덱스 데이터의 대응되는 특정 엘리먼트에는 1이 맵핑된다. 그리고, 유효 데이터는 인덱스 데이터에 포함된 엘리먼트 중 1이 맵핑된 엘리먼트를 의미할 수 있다. 따라서, 인덱스 데이터 중 3번째 엘리먼트에 유효 데이터가 포함된 경우, 데이터 셋 중 3번째 데이터에 0이 아닌 가중치가 맵핑되었음을 의미할 수 있다.
메모리(110)는 비휘발성 메모리, 휘발성 메모리, 플래시메모리(flash-memory), 하드디스크 드라이브(HDD) 또는 솔리드 스테이트 드라이브(SSD) 등으로 구현될 수 있다. 그리고, 본 개시에서 메모리라는 용어는 메모리(110), 프로세서(120) 내 롬(미도시), 램(미도시) 또는 전자 장치(100)에 장착되는 메모리 카드(미도시)(예를 들어, micro SD 카드, 메모리 스틱)를 포함할 수 있다.
프로세서(120)는 메모리(110)와 전기적으로 연결되어 전자 장치(100)의 전반적인 동작 및 기능을 제어할 수 있다. 본 개시를 설명함에 있어, 프로세서(120)는 프로세서는 하나 또는 복수의 프로세서로 구성될 수 있다. 이때, 하나 또는 복수의 프로세서(120)는 CPU(Central Processing Unit), AP(Application Processor), DSP(Digital Signal Processor) 등과 같은 범용 프로세서, GPU(Graphics Processing Unit), VPU(Vision Processing Unit)와 같은 그래픽 전용 프로세서 또는 NPU(Neural Processing Unit)와 같은 인공지능 전용 프로세서일 수 있다.
프로세서(120)는 복수의 데이터 셋에 대응되는 인덱스 데이터를 획득할 수 있다. 구체적으로, 프로세서(120)는 입력부를 통해 입력된 데이터(예를 들어, 음성 데이터, 자연어 데이터, 이미지 데이터 등)에 대응되는 데이터 셋을 획득할 수 있다.
예를 들어, 프로세서(120)는 입력부를 통해 입력된 텍스트 데이터에 대해 워드 임베딩(word embedding)을 수행하여 데이터 셋을 획득하거나, 이미지 데이터 또는 음성 데이터 등을 인공 지능 모델에 입력하여 이미지 데이터 또는 음성 데이터에 대응되는 데이터 셋을 획득할 수 있다. 한편, 워드 임베딩은 텍스트를 구성하는 하나의 단어를 그에 대응되는 벡터 또는 행렬로 수치화하는 알고리즘을 의미할 수 있다.
프로세서(120)는 획득된 데이터 셋에 대응되는 인덱스 데이터를 획득할 수 있다. 그리고, 프로세서(120)는 복수의 데이터 셋에 대응되는 인덱스 데이터 간의 연산을 수행하여 제1 출력 데이터를 획득하고, 제1 출력 데이터의 희소 비율을 식별할 수 있다. 도 1b를 참조하여 위 동작을 구체적으로 설명하도록 한다.
도 1b에 도시된 바와 같이, 프로세서(120)는 제1 데이터 셋에 대응되는 제1 인덱스 데이터(15)와 제2 데이터 셋에 대응되는 제2 인덱스 데이터(25)을 AND 연산을 수행하는 모듈(30)에 입력하여 제1 출력 데이터를 획득할 수 있다. AND 연산은 비트 단위로 논리 연산을 수행하는 비트 연산(bitwise operation) 중 하나이며, 두 인덱스 데이터 각각에 대응되는 데이터가 모두가 1일 때만 1이 출력되고, 나머지 경우에는 0이 출력되는 연산이다. 예를 들어, 프로세서(120)는 12개의 엘리먼트를 포함하는 제1 인덱스 데이터(15-1) 및 제2 인덱스 데이터(25-2)각각을 AND 연산을 수행하는 모듈(30)에 입력하여 제1 출력 데이터(40)를 획득할 수 있다. 제1 인덱스 데이터(15-1)가 [0,1,1,0,1,1,1,1,1,1,1,0]이고, 제2 인덱스 데이터(25-2)가 [0,1,1,1,1,1,0,1,0,1,0,0]이므로 AND 연산에 따른 제1 출력 데이터(40)는 [0,1,1,0,1,1,0,1,0,1,0,0]이다.
프로세서(120)는 획득된 제1 출력 데이터의 희소 비율을 식별할 수 있다. 희소 비율은 제1 출력 데이터에 전체 엘리먼트 중 0이 매핑되어 있는 엘리먼트의 비율을 의미한다. 예를 들어, 제1 출력 데이터(40)는 전체 12개의 엘리먼트 중 0이 매핑된 엘리먼트가 6개이므로 프로세서(120)는 제1 출력 데이터의 희소 비율을 약 50%로 식별할 수 있다.
프로세서(120)는 식별된 희소 비율이 임계값을 초과하는지 여부에 기초하여 복수의 연산 방식 중 식별된 희소 비율에 대응되는 연산 방식을 결정할 수 있다. 식별된 희소 비율이 임계값 이하인 경우, 프로세서(120)는 복수의 연산 방식 중 복수의 데이터 셋 간에 직접적으로 연산을 수행하는 제1 방식을 결정할 수 있다. 즉, 제1 방식은 복수의 데이터 셋 각각에 매핑되어 있는 가중치간에 곱 연산을 수행하고, 곱 연산이 수행된 결과값끼리 합하여 출력 데이터를 획득하는 방식이다.
식별된 희소 비율이 임계값을 초과하면, 프로세서(120)는 복수의 연산 방식 중 인덱스 데이터 중 연산을 수행할 데이터에 매칭된 유효 데이터를 식별하고, 식별된 유효 데이터에 매칭된 데이터 간에 연산을 수행하는 제2 방식을 결정할 수 있다. 즉, 제2 방식은 제1 출력 데이터를 이용하여 각 인덱스 데이터 상에서 연산을 수행할 데이터가 매칭된 유효 데이터를 식별하고, 식별된 유효 데이터에 매칭된 데이터에 대해서만 압축적으로 연산을 수행하는 방식이다.
구체적으로, 프로세서(120)는 제1 출력 데이터의 희소 비율이 임계값을 초과하는지 여부에 기초하여 제1 출력 데이터에 대응되는 파라미터를 획득할 수 있다. 그리고, 프로세서(120)는 획득된 파라미터를 연산 방식 결정 모듈(50)에 입력하여 연산 방식을 결정할 수 있다. 프로세서(120)가 획득한 파라미터는 연산 방식을 결정하기 위해 기정의된 변수이며, 연산 방식 결정 모듈(50)은 입력된 파라미터에 따라 연산 방식을 다르게 결정할 수 있는 모듈이다.
예를 들어, 도 1b에 도시된 바와 같이, 제1 출력 데이터의 희소 비율이 50%이고 임계값이 80%인 경우, 프로세서(120)는 제1 출력 데이터의 희소 비율이 임계값 이하라는 것을 식별할 수 있다. 이에 대응하여, 프로세서(120)는 제1 연산 방식에 대응되는 파라미터를 출력하고, 출력된 파라미터를 연산 방식 결정 모듈(50)에 입력할 수 있다. 한편, 도 1b에는 제1 연산 방식에 대응되는 파라미터가 1인 것으로 도시되어 있으나, 이는 일 실시에에 불과하며 다양하게 구현될 수 있다. 그리고, 프로세서(120)는 제1 연산 방식에 대응되는 파라미터가 입력된 연산 방식 결정 모듈(50)을 통해 복수의 연산 방식 중 제1 방식을 결정할 수 있다.
또 다른 예로, 제1 출력 데이터의 희소 비율이 50%이고 임계값이 30%인 경우, 프로세서(120)는 제1 출력 데이터의 희소 비율이 임계값 초과한다는 것을 식별할 수 있다. 이에 대응하여, 프로세서(120)는 제2 연산 방식에 대응되는 파라미터를 출력하고, 출력된 파라미터를 연산 방식 결정 모듈(50)에 입력할 수 있다.
그리고, 프로세서(120)는 제2 연산 방식에 대응되는 파라미터가 입력된 연산 방식 결정 모듈(50)을 통해 복수의 연산 방식 중 제2 방식을 결정할 수 있다. 한편, 도 1b에는 제2 연산 방식에 대응되는 파라미터가 0인 것으로 도시되어 있으나, 이는 일 실시에에 불과하며 다양하게 구현될 수 있다.
일 실시예로, 복수의 연산 방식 중 제1 방식으로 결정된 경우, 프로세서(120)는 복수의 데이터 셋에 대응되는 인덱스 데이터(15,25) 및 각 인덱스 데이터 및 유효 데이터에 대응되는 데이터(10,20)를 복원 모듈(60) 에 입력하여 복수의 데이터 셋을 복원할 수 있다.
한편, 각 인덱스 데이터 중 유효 데이터에 대응되는 데이터(10, 20)는 각 복수의 데이터 셋에서 희소 성분을 제외하고 압축한 압축 데이터를 의미할 수 있다. 따라서, 제1 데이터 셋이 [0,12,5,6,0,0,5]이면, 제1 데이터 셋의 인덱스 데이터 중 유효 데이터에 대응되는 데이터, 즉, 압축 데이터는 [12,5,6,5]일 수 있다.
복원 모듈(60)은 인덱스 데이터 및 유효 데이터에 대응되는 데이터를 바탕으로 기존의 데이터 셋을 복원할 수 있는 모듈이며, decompression 모듈로 표현될 수 있다. 그리고, 프로세서(120)는 복원된 데이터 셋 간에 곱 연산(80-1)을 수행하고, 수행된 결과 값을 합산 모듈(80-2)을 통해 모두 더하여 제2 출력 데이터를 획득할 수 있다. 복원 모듈(60)을 활용한 제1 연산 방식에 대한 구체적인 설명은 도 2b를 참조하여 설명하도록 한다.
또 다른 실시예로, 복수의 연산 방식 중 제2 방식으로 결정된 경우, 프로세서(120)는, 제1 출력 데이터(40) 및 각 인덱스 데이터의 유효 데이터에 대응되는 데이터(또는, 압축 데이터)(10,20)를 압축 연산 모듈(70)에 입력하여, 각 인덱스 데이터에 포함된 유효 데이터 중 연산을 수행할 데이터가 매칭된 유효 데이터를 식별할 수 있다.
한편, 압축 연산 모듈(70)은 인덱스 데이터 중 실제 연산이 수행되는 유효 데이터 정보를 식별하는 모듈(또는, priority encoder 모듈) 및 식별될 유효 데이터에 매칭되는 데이터를 로딩하는 모듈(또는, prefix sum 모듈)을 포함할 수 있다. 그리고, 압축 연산 모듈(70)은 inner join logic 모듈로 표현될 수 있다.
구체적으로, 프로세서(120)는, 압축 연산 모듈(70)을 통해, 제1 출력 데이터(40)를 이용하여 제1 데이터 셋 및 제2 데이터 셋에 공통적으로 0이 아닌 데이터가 매핑된 엘리먼트의 인덱스(index)(또는, 순서)를 식별할 수 있다. 예를 들어, 제1 출력 데이터 중 2,3,5,6,8,10번째 엘리먼트에 1이 매핑되어 있으므로, 프로세서(120)는, 압축 연산 모듈(70)을 통해, 제1 데이터 셋 및 제2 데이터 셋 각각에 대응되는 인덱스 데이터에 포함된 유효 데이터 중 연산을 수행할 데이터가 매칭된 유효 데이터는 2,3,5,6,8,10번째 유효 데이터임을 식별할 수 있다.
그리고, 프로세서(120)는, 압축 연산 모듈(70)을 통해, 각 인덱스 데이터에 포함된 유효 데이터(10,20) 중 식별된 2,3,5,6,8,10번째 유효 데이터에 매칭된 데이터 간에 곱 연산(80-1)을 수행하고, 수행된 결과값을 합산 모듈(80-2)을 통해 모두 더하여 제2 출력 데이터를 획득할 수 있다. 제2 연산 방식에 대한 구체적인 설명은 도 2a를 참조하여 구체적으로 설명하도록 한다.
프로세서(120)는 합산 모듈(80-2)을 통해서 획득된 제2 출력 데이터를 출력 모듈(90-1)에 입력할 수 있다. 프로세서(120)는 출력 모듈(90-1)을 통해, 희소 비율을 통해 획득된 파라미터 중 1이 입력되면, 다른 구성 요소로 제2 출력 데이터를 전송하고, 희소 비율을 통해 획득된 파라미터 중 0이 입력되면, 버퍼 제어 모듈(90-2)에 일시적으로 제2 출력 데이터를 보관할 수 있다.
프로세서(120)는 전자 장치의 상태 정보 및 복수의 데이터 셋의 유형 중 적어도 하나에 기초하여 임계값의 크기를 결정할 수 있다. 즉, 프로세서(120)는 전자 장치의 가변적인 상태 및 복수의 데이터 셋의 유형에 매칭된 긴급한 정도에 따라 임계값의 크기를 다르게 결정할 수 있다.
한편, 전자 장치의 상태 정보는 전자 장치(100)의 배터리 잔량, 프로세서(120)의 사용량 또는 가용 리소스 중 적어도 하나를 포함할 수 있다. 그리고, 프로세서(120)는 전자 장치(100)의 상태 정보 및 복수의 데이터 셋의 유형에 매칭된 긴급한 정도를 모두 고려하여 임계값의 크기를 다르게 결정할 수 있다.
일 실시예로, 전자 장치(100)의 배터리 잔량이 기설정된 값을 초과한 경우, 프로세서(120)는 임계값의 크기를 제1 수치로 결정하고, 전자 장치(100)의 배터리의 잔량이 기설정된 값 이하인 경우, 프로세서(120)는 임계값의 크기를 제1 수치보다 큰 제2 수치로 결정할 수 있다. 즉, 배터리 잔량이 적을 경우, 데이터 셋의 연산의 성능 향상보다 에너지 소모를 줄이는 것이 중요할 수 있다. 따라서, 프로세서(120)는 배터리 잔량이 적을수록 임계값의 수치를 크게함으로써 복수의 연산 방식 중 에너지 소모가 적은 제1 방식을 결정하도록 하는 파라미터 값이 출력될 확률을 높일 수 있다.
또 다른 실시예로, 프로세서(120)의 사용량이 기설정된 값을 초과한 경우, 프로세서(120)는 임계값의 크기를 제2 수치로 결정하고, 프로세서(120)의 사용량이 기설정된 값 이하인 경우, 프로세서(120)는 임계값의 크기를 제2 수치보다 작은 제1 수치로 결정할 수 있다. 즉, 프로세서(120)의 사용량이 기설정된 값을 초과하여 가용 리소스가 적을 경우, 프로세서(120)는 임계값의 수치를 크게하여 복수의 연산 방식 중 에너지 소모가 적은 제1 방식을 결정하게 하는 파라미터 값이 출력될 확률을 높일 수 있다.
또 다른 실시예로, 복수의 데이터 셋의 유형별로 서로 다른 긴급한 정도(urgency)가 매칭될 수 있다. 예를 들어, 사용자 음성을 처리하기 위한 데이터 셋 또는 네비게이션 어플리케이션의 수행을 위해 처리될 데이터 셋등은 긴급하게 처리되어야 하므로 높은 값의 긴급한 정도가 매칭될 수 있다. 한편, 이미지 데이터 등을 처리하기 위한 데이터 셋은 비교적 긴급하게 처리될 필요성이 떨어지므로, 비교적 낮은 값의 긴급한 정도가 매칭될 수 있다. 이에 따라, 프로세서(120)는 복수의 데이터 셋의 유형 별로 매칭된 긴급한 정도를 식별할 수 있다.
식별된 긴급한 정도가 기설정된 값을 초과한 경우, 프로세서(120)는 임계값의 크기를 제3 수치로 결정하고, 식별된 긴급한 정도가 기설정된 값 이하인 경우, 프로세서(120)는 임계값의 크기를 제3 수치보다 큰 제4 수치로 결정할 수 있다. 즉, 복수의 데이터 셋의 유형이 빠른(또는, 긴급한) 응답을 요구하는 경우, 프로세서(120)는 임계값의 수치를 작게함으로써 복수의 연산 방식 중 연산 속도가 빨라질 수 있는 제2 방식을 결정하게 하는 파라미터 값이 출력될 확률을 높일 수 있다.
또 다른 실시예로, 도 1c에 도시된 바와 같이, 프로세서(120)는 임계값이 제1 수치일 때 획득할 수 있는 제1 출력 데이터에 대응되는 제1 파라미터 집합(set)(40-3)를 획득하고, 임계값이 제1 수치보다 큰 수치인 제2 수치일 때 획득할 수 있는 제1 출력 데이터에 대응되는 제2 파라미터 집합(40-4)을 획득할 수 있다. 그리고, 프로세서(120)는 전자 장치(100)의 상태 정보 또는 복수의 데이터 셋의 유형 중 적어도 하나에 기초하여 임계값 결정 모듈(55)을 통해 복수의 파라미터 집합(40-3, 40-4) 중 하나를 결정할 수 있다.
프로세서(120)는 결정된 복수의 파라미터 집합을 연산 방식 결정 모듈(50)에 입력하여 복수의 연산 방식 중 하나를 결정할 수 있다. 예를 들어, 전자 장치(100)의 배터리 잔량이 기설정된 값을 초과한 경우, 프로세서(120)는 복수의 파라미터 집합 중 임계값이 제1 수치일 때 획득한 제1 파라미터 집합(40-3)을 결정할 수 있다. 또 다른 예로, 복수의 데이터 셋에 매칭된 긴급한 정도가 기설정된 값 이하인 경우, 프로세서(120)는 복수의 파라미터 집합 중 임계값이 제2 수치일 때 획득된 제2 파라미터 집합(40-4)을 결정할 수 있다.
도 1d에 도시된 바와 같이, 프로세서(120)는 제1 및 제2 인덱스 데이터에 포함된 엘리먼트 중 일부에 대해서만 연산을 수행하여 제1 출력 데이터를 획득할 수 있다. 연산 방식을 결정하기 위하여 정확한 제1 출력 데이터의 희소 비율을 식별할 필요가 없으며, 데이터의 희소 성분의 분포는 지역성을 가질 수 있다. 즉, 데이터 셋에는 0이 아닌 값 주변에는 0이 아닌 데이터가 매핑되어 있을 확률이 높다. 따라서, 프로세서(120)는 제1 및 제2 인덱스 데이터에 포함된 모든 엘리먼트 간에 AND 연산을 수행(95-1)하여 제1 출력 데이터를 획득할 수 있으나, 제1 및 제2 인덱스 데이터 중 인접한 데이터를 기설정된 크기만큼 그룹핑(grouping)하고, 그룹핑된 데이터의 대표 값을 이용하여 연상 방식을 결정할 데이터를 출력할 수 있다. 위 방식을 통해, 프로세서(140)는 연산 방식을 결정하는 속도를 높일 수 있다.
구체적으로, 프로세서(120)는 결정된 그룹핑된 데이터의 대표 값이 포함된 인덱스 데이터간에 연산을 수행하여 제3 출력 데이터를 획득하고, 획득된 제3 출력 데이터의 희소 비율을 식별할 수 있다. 그리고, 프로세서(120)는 식별된 제3 출력 데이터의 희소 비율이 임계값을 초과하는지 여부에 기초하여 복수의 연산 방식 중 제3 출력 데이터의 희소 비율에 대응되는 연산 방식을 결정할 수 있다.
프로세서(120)는, 전자 장치의 상태 정보 및 복수의 데이터 셋의 유형 중 적어도 하나에 기초하여 그룹핑하는 기설정된 크기 및 그룹핑된 데이터 간의 연산 방식을 결정하고, 결정된 연산 방식을 이용하여 그룹핑된 데이터 간의 연산을 수행하여 대표 값을 결정할 수 있다.
예를 들어, 전자 장치의 배터리의 잔량이 기설정된 값을 초과한 경우, 프로세서(120)는 기설정된 크기를 제5 수치로 결정하고, 그룹핑된 데이터 간의 연산 방식을 AND 연산으로 결정할 수 있다. 95-2의 연산 과정을 참조하면, 프로세서(120)는 제1 및 제2 인덱스 데이터 각각을 2bit씩 그룹핑하고, 그룹핑한 데이터 간에 AND 연산을 수행하여 대표 값을 결정할 수 있다.
또 다른 예로, 전자 장치의 배터리의 잔량이 기설정된 값 이하인 경우, 프로세서(120)는 상기 그룹핑된 데이터 간의 연산 방식을 OR 연산으로 결정할 수 있다. 구체적으로, 프로세서(120)는 제1 및 제2 인덱스 데이터 각각을 기정의된 크기단위로 그룹핑하고, 그룹핑한 데이터 간에 OR 연산을 수행하여 대표 값을 결정할 수 있다. 이 때, OR 연산은 비트 단위로 논리 연산을 수행하는 비트 연산(bitwise operation) 중 하나이며, 두 인덱스 데이터 각각에 대응되는 데이터가 모두가 0일 때는, 0이 출력되고 나머지 경우에는 1이 출력되는 연산이다. 그리고, 도 1d에는 기정의된 크기 단위가 2bit인 것으로 도시되어 있으나 이는 일 실시예에 불과하며, 그룹핑하는 크기 단위는 사용자에 의해 변경될 수 있음은 물론이다.
프로세서(120)는 결정된 제1 및 제2 인덱스 데이터에 대응되는 대표 값간에 연산을 수행하여 제3 출력 데이터를 획득할 수 있다. 프로세서(120)는 획득된 제3 출력 데이터의 희소 비율이 임계값을 초과하는지 여부에 기초하여 복수의 연산 방식 중 희소 비율에 대응되는 연산 방식을 결정할 수 있다. 즉, 전자 장치의 배터리의 잔량이 기설정된 값 이하인 경우, 프로세서(120)는 그룹핑한 데이터 간에 연산 방식을 OR 연산으로 결정하여 대표 값을 1이 나올 확률을 높일 수 있다. 이에 따라, 제3 출력 데이터의 희소 비율은 임계값을 초과하지 않게 될 확률을 높아지며, 복수의 연산 방식 중 에너지 소모량이 적은 제1 연산 방식으로 결정될 확률이 높아질 수 있다.
본 개시에 따른 인공 신경망 등에 적용되는 인공지능과 관련된 기능은 프로세서(120)와 메모리(110)를 통해 동작된다. 하나 또는 복수의 프로세서(120)는, 메모리(110)에 저장된 기 정의된 동작 규칙 또는 인공지능 모델에 따라, 입력 데이터를 처리하도록 제어한다. 또는, 하나 또는 복수의 프로세서가 인공지능 전용 프로세서인 경우, 인공지능 전용 프로세서는, 특정 인공지능 모델의 처리에 특화된 하드웨어 구조로 설계될 수 있다.
기 정의된 동작 규칙 또는 인공지능 모델은 학습을 통해 만들어진 것을 특징으로 한다. 여기서, 학습을 통해 만들어진다는 것은, 기본 인공지능 모델이 학습 알고리즘에 의하여 다수의 학습 데이터들을 이용하여 학습됨으로써, 원하는 특성(또는, 목적)을 수행하도록 설정된 기 정의된 동작 규칙 또는 인공지능 모델이 만들어짐을 의미한다. 이러한 학습은 본 개시에 따른 인공지능이 수행되는 기기 자체에서 이루어질 수도 있고, 별도의 서버 및/또는 시스템을 통해 이루어 질 수도 있다.
학습 알고리즘의 예로는, 지도형 학습(supervised learning), 비지도형 학습(unsupervised learning), 준지도형 학습(semi-supervised learning) 또는 강화 학습(reinforcement learning)이 있으나, 전술한 예에 한정되지 않는다.
인공지능 모델은, 복수의 신경망 레이어들로 구성될 수 있다. 복수의 신경망 레이어들 각각은 복수의 가중치들(weight values)을 갖고 있으며, 이전(previous) 레이어의 연산 결과와 복수의 가중치들 간의 연산을 통해 신경망 연산을 수행한다. 복수의 신경망 레이어들이 갖고 있는 복수의 가중치들은 인공지능 모델의 학습 결과에 의해 최적화될 수 있다. 예를 들어, 학습 과정 동안 인공지능 모델에서 획득한 로스(loss) 값 또는 코스트(cost) 값이 감소 또는 최소화되도록 복수의 가중치들이 갱신될 수 있다.
도 2a는 본 개시의 일 실시예에 따른, 전자 장치(100)가 복수의 연산 방식 중 제2 연산 방식을 이용하여 출력 데이터를 획득하는 과정을 설명하기 위한 도면이다.
도 2a의 (a)에 도시된 바와 같이, 제1 인덱스 데이터(200-2) 및 제2 인덱스 데이터(210-2)는 제1 데이터 셋(200-1) 및 제2 데이터 셋(210-1)에 포함된 가중치에 기초하여 획득된 제1 데이터 셋(200-1) 및 제2 데이터 셋(210-1)에 대응되는 인덱스 데이터이다. 그리고, 제1 압축 데이터(200-1) 및 제2 압축 데이터(210-3)은 제1 데이터 셋(200-1) 및 제2 데이터 셋(210-1) 각각에서 희소 성분을 제외하고 0이 아닌 가중치 값으로만 이루어진 데이터이다.
도 2a는 제1 인덱스 데이터(200-2)와 제2 인덱스 데이터(210-2)간에 AND 연산을 수행하여 출력된 제1 출력 데이터(220)의 희소 비율이 임계값을 초과하였으므로 전자 장치(100)가 복수의 방식 중 제2 연산 방식을 결정하였다고 가정한다.
도 1b에 도시된 바와 같이, 전자 장치(100)는 priority encoder 모듈(70-1) 및 복수의 prefix sum 모듈(70-2, 70-3)을 포함한 압축 연산 모듈(70)을 이용하여 제2 출력 데이터를 획득할 수 있다. 구체적으로, 전자 장치(100)는, priority encoder 모듈(70-1)을 통해, 제1 출력 데이터(220)를 이용하여 실제 연산이 수행될 데이터에 대응되는 유효 데이터 정보를 식별할 수 있다. 전자 장치(100)는 제1 출력 데이터(220) 중 0번째 인덱스를 가지는 유효 데이터와 5번째 인덱스를 가지는 유효 데이터에 대응되는 데이터 간에 실제 연산이 수행될 수 있음을 식별할 수 있다.
그리고, 도 2의 (b)를 참조하면, 전자 장치(100)는 제1 prefix sum 모듈(70-3) 및 제2 prefix sum 모듈(70-2)을 통해 실제 연산이 수행될 데이터에 대응되는 유효 데이터와 매칭되는 데이터를 식별할 수 있다. 구체적으로, 전자 장치(100)는, 제1 prefix sum 모듈(70-3)을 통해, 제1 인덱스 데이터(200-2)에는 5번째 인덱스를 가지는 유효 데이터 이전에 2개의 유효 데이터가 포함되어 있음을 식별할 수 있다. 이 때, 제1 prefix sum 모듈(70-3)은 adder 로직 등 다양한 연산 로직을 포함하고 있는 바, 한 번의 cycle이 진행되는 동안 실제 연산이 수행될 유효 데이터 이전의 유효 데이터 개수를 식별할 수 있다. 따라서, 전자 장치(100)는, 제1 prefix sum 모듈(70-3)을 통해, 압축 데이터 중 5번째 인덱스를 가지는 유효 데이터에 대응되는 데이터는 3번째 데이터임을 식별할 수 있다.
이와 마찬 가지로, 전자 장치(100)는, 제2 prefix sum 모듈(70-2)을 통해, 제2 인덱스 데이터(210-2)에는 5번째 인덱스를 가지는 유효 데이터 이전에 3개의 유효 데이터가 포함되어 있음을 식별할 수 있다. 따라서, 전자 장치(100)는, 제2 prefix sum 모듈(70-2)을 통해, 압축 데이터 중 5번째 인덱스를 가지는 유효 데이터에 대응되는 데이터는 4번째 데이터임을 식별할 수 있다.
그리고, 전자 장치(100)는 제1 압축 데이터(200-3)의 3 번째 데이터인 8과 제2 압축 데이터(210-3)의 4 번째 데이터인 2간에 곱 연산을 수행하여 16을 획득할 수 있다. 한편, 상술한 방식을 통해 전자 장치(100)는 실제 연산을 수행할 데이터는 각 압축 데이터(220-3, 210-3) 중 첫 번째 데이터임을 식별할 수 있다. 따라서, 전자 장치(100)는 각 압축 데이터의 첫 번째 데이터인 12와 3을 곱하여 36을 획득할 수 있다. 그리고, 전자 장치(100)는 곱 연산을 수행한 값(예를 들어, 36 및 16)을 더하여 제2 출력 데이터(예를 들어, 52)를 획득할 수 있다.
도 2b는 본 개시의 일 실시예에 따른, 전자 장치(100)가 복수의 연산 방식 중 제1 연산 방식을 이용하여 출력 데이터를 획득하는 과정을 설명하기 위한 도면이다. 도 2b는 복수의 데이터 셋에 대응되는 인덱스 데이터 간이 AND 연산을 수행하여 획득한 제1 출력 데이터의 희소 비율이 임계값을 초과하였으므로, 전자 장치(100)가 복수의 방식 중 제1 연산 방식을 결정하였다고 가정한다.
전자 장치(100)는 복수의 데이터 셋에 대응되는 인덱스 데이터(15,25) 및 각 데이터 셋에 대응되는 압축 데이터(10,20)을 복원 모듈(60)에 입력할 수 있다. 복원 모듈(60)은 복수의 연산 모듈(60-1, 60-2)를 포함할 수 있다. 인덱스 데이터 중 0이 입력되면 각 연산 모듈(60-1, 60-2)은 0을 출력할 수 있고, 인덱스 데이터 중 1(또는, 유효 데이터)가 입력되면, 각 연산 모듈(60-1, 60-2)은 압축 데이터 중 유효 데이터에 대응되는 데이터를 출력할 수 있다.
예를 들어, 전자 장치(100)는 제1 데이터 셋에 대응되는 제1 인덱스 데이터(15) 및 제1 데이터 셋에 대응되는 압축 데이터(10)를 복원 모듈 중 제1 연산 모듈(60-1)에 입력하여 제1 데이터 셋에 포함된 성분을 획득할 수 있다. 그리고, 전자 장치(100)는 제2 데이터 셋에 대응되는 제2 인덱스 데이터(25) 및 제2 데이터 셋에 대응되는 압축 데이터(20)를 복원 모듈 중 제2 연산 모듈(60-2)에 입력하여 제2 데이터 셋에 포함된 성분을 획득할 수 있다.
그리고, 전자 장치(100)는 제1 연산 모듈(60-1) 및 제2 연산 모듈(60-2)에서 출력된 성분간에 곱 연산을 수행하고, 곱 연산이 수행된 결과값간에 합 연산을 수행하여 제2 출력 데이터를 획득할 수 있다.
도 3은 전자 장치(100)가 전자 장치(100)의 상태 정보에 기초하여 복수의 연산 방식 중 하나를 결정하기 위해 제1 출력 데이터의 희소 비율과 비교하는 임계값을 결정하는 과정을 설명하기 위한 순서도이다.
전자 장치(100)는 전자 장치의 상태 정보에 대응되는 수치가 기설정된 값을 초과하였는지 여부를 식별할 수 있다(S310). 여기서, 전자 장치(100)의 상태 정보는 전자 장치(100)가 특정 동작을 수행하기 위해 필요한 리소스에 대한 정보를 의미하며, 예로, 전자 장치의 배터리 잔량, 프로세서(120)의 가용 리소스 등을 포함할 수 있다.
예를 들어, 전자 장치(100)는 현재 배터리 잔량을 식별하고, 식별된 잔량이 제1 기설정된 값을 초과하였는지 여부를 식별할 수 있다. 그리고, 전자 장치(100)는 현재 프로세서(120)의 가용 리스소가 제2 기설정된 값을 초과하였는지 여부를 식별할 수 있다. 이 때, 프로세서(120)의 가용 리소스는 프로세서(120)가 현재 실행하는 작업 또는 백그라운드로 수행하는 작업을 제외하고 복수의 데이터 셋 간의 연산을 수행하기 위해 필요한 리소스를 포함할 수 있다. 제1 기설정된 값 및 제2 기설정된 값은 사용자 명령에 의해 변경될 수 있다.
전자 장치(100)의 상태 정보에 대응되는 수치가 기설정된 값을 초과한다고 식별되면, 전자 장치(100)는 임계값의 크기를 제1 수치로 결정할 수 있다(S320). 예를 들어, 배터리의 잔량이 제1 기설정된 값을 초과하고 프로세서(120)의 가용 리소스가 제2 기설정된 값을 초과하는 경우, 전자 장치(100)는 임계값을 비교적 작은 제1 수치로 결정할 수 있다. 이에 따라, 제1 출력 데이터의 희소 비율이 임계값을 초과할 확률이 높아질 수 있다. 희소 비율이 비교적 작은 제1 수치인 임계값을 초과하면, 전자 장치(100)는 추가 연산 로직을 포함하는 하드웨어 모듈을 이용하여 복수의 데이터 셋 간에 수행되는 연산 성능을 높일 수 있다.
전자 장치(100)의 상태 정보에 대응되는 수치가 기설정된 값 이하라고 식별되면, 전자 장치(100)는 임계값의 크기를 제1 수치보다 큰 제2 수치로 결정할 수 있다(S330). 예를 들어, 배터리의 잔량이 제1 기설정된 값 이하이거나 프로세서(120)의 가용 리소스가 제2 기설정된 값 이하인 경우, 전자 장치(100)는 임계값을 비교적 높은 제2 수치로 결정할 수 있다. 이에 따라, 제1 출력 데이터의 희소 비율이 임계값 이하일 확률이 높아질 수 있다. 희소 비율이 비교적 높은 제2 수치인 임계값 이하이면, 전자 장치(100)는 추가 연산 로직을 포함하는 하드웨어 모듈을 이용하지 않고 복수의 데이터 셋 간에 연산을 수행함으로써 에너지 소모를 줄일 수 있다.
전자 장치(100)는 결정된 임계값에 기초하여 복수의 연산 방식 중 제1 출력 데이터의 희소 비율에 대응되는 연산 방식을 결정할 수 있다(S340). 즉, 전자 장치(100)는 제1 출력 데이터의 희소 비율이 제1 수치 또는 제2 수치 중 하나로 결정된 임계값을 초과하는지 여부를 식별할 수 있다.
제1 출력 데이터의 희소 비율이 임계값 이하이면, 전자 장치(100)는 복수의 연산 방식 중 제1 방식을 결정하고, 제1 출력 데이터의 희소 비율이 임계값을 초과하면, 전자 장치(100)는 복수의 연산 방식 중 제2 방식을 결정할 수 있다.
그리고, 전자 장치(100)는 결정된 연산 방식을 이용하여 복수의 데이터 셋에 대한 제2 출력 데이터를 획득할 수 있다(S350). 전자 장치(100)가 각 연산 방식을 이용하여 출력 데이터를 획득하는 과정은 상술하였으므로 중복되는 설명은 생략하도록 한다.
도 4는 본 개시의 일 실시예에 따른, 전자 장치(100)가 복수의 데이터 셋의 유형에 매칭된 긴급한 정도를 바탕으로 임계값을 결정하는 과정을 설명하기 위한 순서도이다.
우선, 전자 장치(100)는 복수의 데이터 셋의 유형에 매칭된 긴급한 정도를 식별할 수 있다(S410). 예를 들면, 사용자 음성을 처리하기 위한 데이터 셋, 네비게이션 어플리케이션의 수행을 위해 처리될 데이터 셋 등은 긴급하게 처리되어야 하므로 각 데이터 셋에 높은 값의 긴급한 정도가 매칭될 수 있다. 그리고, 이미지 데이터 등을 처리하기 위한 데이터 셋 등은 비교적 긴급하게 처리될 필요가 떨어지므로 비교적 낮은 값의 긴급한 정도가 매칭될 수 있다. 다만, 이는 일 실시예에 불과하며, 각 데이터 셋의 유형에 매칭되는 긴급한 정도는 사용자가 다르게 변경할 수 있음은 물론이다.
그리고, 전자 장치(100)는 식별된 긴급한 정도가 기설정된 값을 초과하는지 여부를 식별할 수 있다(S420). 이 때, 기설정된 값은 사용자에 의해 변경될 수 있음은 물론이다. 긴급한 정도가 기설정된 값을 초과한 경우, 전자 장치(100)는 임계값의 크기를 제1 수치로 결정할 수 있다(S430). 한편, 긴급한 정도가 기설정된 값 이하인 경우, 전자 장치(100)는 임계값의 크기를 제1 수치보다 큰 제2 수치로 결정할 수 있다(S440).
즉, 데이터 셋을 긴급하게 처리해야 한다고 식별되면, 전자 장치(100)는 임계값을 비교적 작은 수치로 결정함으로써 제1 출력 데이터의 희소 비율이 임계값보다 높을 확률을 높일 수 있다. 따라서, 전자 장치(100)는 추가 연산 로직을 포함하는 하드웨어 모듈을 이용하여 복수의 데이터 셋 간에 수행되는 연산 성능을 높일 수 있다. 한편, 데이터 셋을 비교적 긴급하게 처리해야 필요성이 없다고 식별되면, 전자 장치(100)는 임계값을 비교적 높은 수치로 결정함으로써 제1 출력 데이터의 희소 비율이 임계값보다 낮을 확률을 높일 수 있다. 따라서, 전자 장치(100)는 추가 연산 로직을 포함하는 하드웨어 모듈을 이용하지 않고 복수의 데이터 셋 간에 연산을 수행함으로써 에너지 소모를 줄일 수 있다.
그리고, 전자 장치(100)는 결정된 임계값에 기초하여 복수의 연산 방식 중 제1 출력 데이터의 희소 비율에 대응되는 연산 방식을 결정할 수 있다(S450). 그리고, 전자 장치(100)는 결정된 연산 방식을 이용하여 복수의 데이터 셋에 대한 제2 출력 데이터를 획득할 수 있다(S460). S450 및 S460 단계와 관련된 설명은 전술하였으므로 생략하도록 한다.
도 5는 본 개시의 일 실시예에 따른, 전자 장치(100)는 인덱스 데이터 중 그룹핑된 데이터의 대표값을 결정하는 과정을 설명하기 위한 도면이다.
우선, 전자 장치(100)는 복수의 데이터 셋 각각에 대응되는 인덱스 데이터 중 인접한 데이터를 기설정된 크기만큼 그룹핑할 수 있다(S510). 인덱스 데이터를 그룹핑하는 크기 단위는 기설정된 값일 수 있으나 이는 일 실시예에 불과하며 사용자에 의해 값이 달라질 수 있음은 물론이다.
그리고, 전자 장치(100)는 전자 장치의 상태 정보에 대응되는 수치가 기설정된 값을 초과하는지 여부를 식별할 수 있다(S520). 전자 장치의 상태 정보에 대응되는 수치가 기설정된 값 초과인 경우, 전자 장치(100)는 그룹핑된 데이터 간의 연산 방식을 AND 연산으로 결정할 수 있다(S530). 예를 들어, 전자 장치의 배터리 잔량이 제1 기설정된 값을 초과하고 프로세서(120)의 가용 리소스가 제2 기설정된 값을 초과하는 경우, 전자 장치(100)는 그룹핑된 데이터 간의 연산 방식을 AND 연산으로 결정할 수 있다.
즉, 배터리의 잔량 및 프로세서의 가용 리소스가 충분한 경우, 전자 장치(100)는 그룹핑된 데이터 간에 AND 연산을 수행하여 대표값을 결정할 수 있다. 인덱스 데이터의 성분은 0 또는 1이므로 연산 방식을 AND 연산으로 결정할 경우, OR 연산을 수행할 때보다 결과값이 0이 될 확률이 높아질 수 있다. 따라서, 제1 출력 데이터의 희소 비율이 임계값보다 높아질 확률이 높아질 수 있다. 이에 따라, 전자 장치(100)는 추가 연산 로직을 포함하는 하드웨어 모듈을 이용하여 복수의 데이터 셋 간에 수행되는 연산 성능을 높일 수 있다.
전자 장치의 상태 정보에 대응되는 수치가 기설정된 값 이하인 경우, 전자 장치(100)는 그룹핑된 데이터 간의 연산 방식을 OR 연산으로 결정할 수 있다(S540). 예를 들어, 전자 장치의 배터리 잔량이 제1 기설정된 값 이하이거나 프로세서의 가용 리소스가 제2 기설정된 값 이하인 경우, 전자 장치(100)는 그룹핑된 데이터 간의 연산 방식을 OR 연산으로 결정할 수 있다.
즉, 배터리의 잔량 또는 프로세서의 가용 리소스가 충분하지 않은 경우, 전자 장치(100)는 그룹핑된 데이터 간에 OR 연산을 수행하여 대표값을 결정할 수 있다. 그룹핑된 데이터 간의 연산 방식을 OR 연산으로 결정할 경우, AND 연산을 수행할 때보다 결과값이 1이 될 확률이 높아질 수 있다. 따라서, 제1 출력 데이터의 희소 비율이 임계값보다 낮이질 확률이 높아질 수 있다. 이에 따라, 전자 장치(100)는 추가 연산 로직을 포함하는 하드웨어 모듈을 이용하지 않고 복수의 데이터 셋 간에 연산을 수행하여 에너지 소모를 줄일 수 있다.
전자 장치(100)는 결정된 연산 방식으로 그룹핑된 데이터간에 연산을 수행하여 대표값을 결정할 수 있다(S550). 그리고, 전자 장치(100)는 결정된 대표 값이 포함된 인덱스 데이터 간에 연산을 수행하여 제3 출력 데이터를 획득할 수 있다(S560).
그리고, 전자 장치(100)는 제3 출력 데이터의 희소 비율을 식별하고, 식별된 희소 비율이 임계값을 초과하는지 여부에 기초하여 복수의 연산 방식 중 하나를 결정할 수 있다(S570). 임계값에 기초하여 연산 방식을 결정하는 과정은 전술하였으므로 중복되는 설명은 생략하도록 한다.
도 6은 본 개시의 일 실시예에 따른, 전자 장치(100)의 제어 방법을 설명하기 위한 도면이다.
우선, 전자 장치(100)는 복수의 데이터 셋에 대응되는 인덱스 데이터 간에 연산을 수행하여 제1 출력 데이터를 획득할 수 있다(S610). 구체적으로, 전자 장치(100)는 복수의 데이터 셋에 대응되는 인덱스 데이터를 획득하고, 획득된 인덱스 데이터 간에 AND 연산을 수행하여 제1 출력 데이터를 획득할 수 있다.
그리고, 전자 장치(100)는 제1 출력 데이터의 희소 비율을 식별할 수 있다(S620). 구체적으로, 전자 장치(100)는 제1 출력 데이터 상에 포함된 전체 엘리먼트 중 0이 매핑된 엘리먼트의 비율을 식별할 수 있다.
그리고, 전자 장치(100)는 제1 출력 데이터의 희소 비율이 임계값을 초과하는지 여부를 식별할 수 있다(S630). 이 때, 임계값은 기설정된 값일 수 있으나 이는 일 실시예에 불과하며, 전자 장치(100)는 전자 장치(100)의 상태 정보 또는 복수의 데이터 셋에 대응되는 긴급한 정도에 따라 임계값이 변경될 수 있다.
희소 비율이 임계값을 초과한 경우, 전자 장치(100)는 복수의 연산 방식 중 제2 연산 방식으로 결정할 수 있다(S640). 제2 방식은 제1 출력 데이터를 이용하여 각 인덱스 데이터 상에서 연산을 수행할 데이터가 매칭된 유효 데이터를 식별하고, 식별된 유효 데이터에 매칭된 데이터에 대해서만 압축적으로 연산을 수행하는 방식이다.
희소 비율이 임계값을 초과하지 않는 경우, 전자 장치(100)는 복수의 연산 방식 중 제1 연산 방식을 결정할 수 있다(S650). 제1 연산 방식은 복수의 데이터 셋 간에 직접적으로 곱 연산을 수행하는 방식이다.
그리고, 전자 장치(100)는 결정된 연산 방식을 이용하여 복수의 데이터 셋에 대한 제2 출력 데이터를 획득할 수 있다(S660).
도 7은 본 개시의 일 실시예에 따른, 전자 장치(100)의 구성을 상세히 도시한 블록도이다. 도 7에 도시된 바와 같이, 전자 장치(100)는 메모리(110), 프로세서(120), 통신부(130), 입력부(140), 출력부(150) 및 센서(160)를 포함할 수 있다. 한편, 메모리(110) 및 프로세서(120)는 도 1a 내지 도 1d를 참조하여 구체적으로 설명하였으므로 중복되는 설명은 생략하도록 한다.
통신부(130)는 회로를 포함하며, 서버(미도시) 또는 외부 장치(미도시)와의 통신을 수행할 수 있다. 구체적으로, 프로세서(120)는 통신부(130)를 통해 연결된 서버(미도시) 또는 외부 장치(미도시)로부터 각종 데이터 또는 정보를 수신 및 전송할 수 있다. 특히, 통신부(130)는 외부 서버 또는 외부 장치로부터 입력 데이터를 수신할 수 있다.
그리고, 통신부(130)는 외부 장치 또는 서버와 통신을 수행하기 위해 다양한 통신 모듈을 포함할 수 있다. 일 예로, 통신부(130)는 무선 통신 모듈을 포함할 수 있으며, 예를 들면, LTE, LTE-A(LTE Advance), CDMA(code division multiple access), WCDMA(wideband CDMA), UMTS(universal mobile telecommunications system), WiBro(Wireless Broadband), 5G(5th generation) 또는 GSM(Global System for Mobile Communications) 등 중 적어도 하나를 사용하는 셀룰러 통신 모듈을 포함할 수 있다. 또 다른 예로, 무선 통신 모듈은, 예를 들면, WiFi(wireless fidelity), 블루투스, 블루투스 저전력(BLE), 중 적어도 하나를 포함할 수 있다.
입력부(140)는 회로를 포함하며, 프로세서(120)는 입력부(140)를 통해 전자 장치(100)의 동작을 제어하기 위한 사용자 명령 또는 각종 데이터를 수신할 수 있다. 입력부(150)는 터치 센서, (디지털) 펜 센서, 압력 센서, 키 등을 포함할 수 있다. 터치 센서는, 예를 들면, 정전식, 감압식, 적외선 방식, 또는 초음파 방식 중 적어도 하나의 방식을 사용할 수 있다.
특히, 입력부(150)는 사용자로부터 임계값을 변경하는 명령을 수신할 수 있다. 즉, 프로세서(120)는 입력부(150)를 통해 임계값의 수치를 변경하는 사용자 명령을 수신하고, 수신된 사용자 명령에 따라 임계값의 수치를 변경할 수 있다. 따라서, 프로세서(120)는 제1 출력 데이터의 희소 비율이 수치가 변경된 임계값을 초과하는지 여부에 기초하여 복수의 연산 방식 중 희소 비율에 대응되는 연산 방식을 결정할 수 있다.
디스플레이(150)는 LCD(Liquid Crystal Display Panel), OLED(Organic Light Emitting Diodes) 등으로 구현될 수 있으며, 경우에 따라 플렉서블 디스플레이, 투명 디스플레이 등으로 구현되는 것도 가능하다. 그리고, 디스플레이(160)는 터치 패널과 함께 터치 스크린으로도 구현될 수 있다. 그러나 상술한 구현으로 한정되는 것은 아니며, 디스플레이(150)는 전자 장치(100)의 유형에 따라 다르게 구현될 수 있다.
그리고, 디스플레이(150)는 프로세서(120) 제어에 의해 다양한 정보를 표시할 수 있다. 특히, 디스플레이(140)는 임계값을 변경할 수 있는 UI를 표시할 수 있다. 또한, 디스플레이(140)는 입력부(150)를 통해 입력된 입력 데이터 및 복수의 데이터 셋간에 연산을 수행하여 획득된 출력 데이터를 표시할 수 있다. 또한, 디스플레이(150)는 전자 장치(100)의 배터리 잔량이나 프로세서(120)의 리소스가 기설정된 값 이하라는 메시지를 표시하거나 이에 대응되는 인디케이터를 표시할 수 있다.
스피커(160)는 오디오 처리부(미도시)에 의해 디코딩이나 증폭, 노이즈 필터링과 같은 다양한 처리 작업이 수행된 각종 오디오 데이터뿐만 아니라 각종 알림 음이나 음성 메시지를 출력하는 구성이다. 특히, 스피커(160)는 전자 장치(100)의 배터리 잔량이나 프로세서(120)의 리소스가 기설정된 값 이하라는 메시지를 음성 형태로 출력하거나 이에 대응되는 알림음을 출력할 수 있다.
상술한 본 개시의 다양한 실시예에 따라, 전자 장치(100)는 데이터 셋의 희소 비율에 따라 연산 방식을 결정하고, 결정된 연산 방식으로 출력 데이터를 획득함으로써 연산 성능을 향상시키고 에너지 효율성을 제고시킬 수 있다.
한편, 본 개시에 첨부된 도면은 본 개시에 기재된 기술을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 개시의 실시예의 다양한 변경(modifications), 균등물(equivalents), 및/또는 대체물(alternatives)을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다.
본 개시에서, "가진다," "가질 수 있다," "포함한다," 또는 "포함할 수 있다" 등의 표현은 해당 특징(예: 수치, 기능, 동작, 또는 부품 등의 구성요소)의 존재를 가리키며, 추가적인 특징의 존재를 배제하지 않는다.
본 개시에서, "A 또는 B," "A 또는/및 B 중 적어도 하나," 또는 "A 또는/및 B 중 하나 또는 그 이상"등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. 예를 들면, "A 또는 B," "A 및 B 중 적어도 하나," 또는 "A 또는 B 중 적어도 하나"는, (1) 적어도 하나의 A를 포함, (2) 적어도 하나의 B를 포함, 또는 (3) 적어도 하나의 A 및 적어도 하나의 B 모두를 포함하는 경우를 모두 지칭할 수 있다.
본 개시에서 사용된 "제1," "제2," "첫째," 또는 "둘째,"등의 표현들은 다양한 구성요소들을, 순서 및/또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다.
어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "(기능적으로 또는 통신적으로) 연결되어((operatively or communicatively) coupled with/to)" 있다거나 "접속되어(connected to)" 있다고 언급된 때에는, 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제3 구성요소)를 통하여 연결될 수 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 상기 어떤 구성요소와 상기 다른 구성요소 사이에 다른 구성요소(예: 제 3 구성요소)가 존재하지 않는 것으로 이해될 수 있다.
본 개시에서 사용된 표현 "~하도록 구성된(또는 설정된)(configured to)"은 상황에 따라, 예를 들면, "~에 적합한(suitable for)," "~하는 능력을 가지는(having the capacity to)," "~하도록 설계된(designed to)," "~하도록 변경된(adapted to)," "~하도록 만들어진(made to)," 또는 "~를 할 수 있는(capable of)"과 바꾸어 사용될 수 있다. 용어 "~하도록 구성된(또는 설정된)"은 하드웨어적으로 "특별히 설계된(specifically designed to)" 것만을 반드시 의미하지 않을 수 있다. 대신, 어떤 상황에서는, "~하도록 구성된 장치"라는 표현은, 그 장치가 다른 장치 또는 부품들과 함께 "~할 수 있는" 것을 의미할 수 있다. 예를 들면, 문구 "A, B, 및 C를 수행하도록 구성된(또는 설정된) 부프로세서"는 해당 동작을 수행하기 위한 전용 프로세서(예: 임베디드 프로세서), 또는 메모리 장치에 저장된 하나 이상의 소프트웨어 프로그램들을 실행함으로써, 해당 동작들을 수행할 수 있는 범용 프로세서(generic-purpose processor)(예: CPU 또는 application processor)를 의미할 수 있다.
본 개시의 다양한 실시 예들에 따른 전자 장치(100) 및 외부 장치는, 예를 들면, 스마트폰, 태블릿 PC, 데스크탑 PC, 랩탑 PC, 넷북 컴퓨터, 서버, PDA, 의료기기, 또는 웨어러블 장치 중 적어도 하나를 포함할 수 있다. 어떤 실시 예들에서, 전자 장치는, 예를 들면, 텔레비전, 냉장고, 에어컨, 공기 청정기, 셋톱 박스, 미디어 박스(예: 삼성 HomeSyncTM, 애플TVTM, 또는 구글 TVTM) 중 적어도 하나를 포함할 수 있다.
본 개시의 다양한 실시 예들은 기기(machine)(예: 컴퓨터)로 읽을 수 있는 저장 매체(machine-readable storage media에 저장된 명령어를 포함하는 소프트웨어로 구현될 수 있다. 기기는, 저장 매체로부터 저장된 명령어를 호출하고, 호출된 명령어에 따라 동작이 가능한 장치로서, 개시된 실시 예들에 따른 전자 장치(예: 전자 장치(100))를 포함할 수 있다. 상기 명령이 프로세서에 의해 실행될 경우, 프로세서가 직접, 또는 상기 프로세서의 제어하에 다른 구성요소들을 이용하여 상기 명령에 해당하는 기능을 수행할 수 있다. 명령은 컴파일러 또는 인터프리터에 의해 생성 또는 실행되는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, '비일시적은 저장매체'는 신호(signal)를 포함하지 않으며 실재(tangible)한다는 것을 의미할 뿐 데이터가 저장매체에 반영구적 또는 임시적으로 저장됨을 구분하지 않는다. 예로, '비일시적 저장매체'는 데이터가 임시적으로 저장되는 버퍼를 포함할 수 있다.
일 실시 예에 따르면, 본 개시에 개시된 다양한 실시 예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 온라인으로 배포될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품(예로, 다운로더블 앱(downloadable app))의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
다양한 실시 예들에 따른 구성 요소(예: 모듈 또는 프로그램) 각각은 단수 또는 복수의 개체로 구성될 수 있으며, 전술한 해당 서브 구성 요소들 중 일부 서브 구성 요소가 생략되거나, 또는 다른 서브 구성 요소가 다양한 실시 예에 더 포함될 수 있다. 대체적으로 또는 추가적으로, 일부 구성 요소들(예: 모듈 또는 프로그램)은 하나의 개체로 통합되어, 통합되기 이전의 각각의 해당 구성 요소에 의해 수행되는 기능을 동일 또는 유사하게 수행할 수 있다. 다양한 실시 예들에 따른, 모듈, 프로그램 또는 다른 구성 요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱하게 실행되거나, 적어도 일부 동작이 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.

Claims (15)

  1. 전자 장치에 있어서,
    메모리; 및
    복수의 데이터 셋(data set)에 대응되는 인덱스 데이터 간의 연산을 수행하여 제1 출력 데이터를 획득하고, 상기 제1 출력 데이터의 희소(sparsity) 비율을 식별하고,
    상기 식별된 희소 비율이 임계값을 초과하는지 여부에 기초하여 복수의 연산 방식 중 상기 식별된 희소 비율에 대응되는 연산 방식을 결정하고,
    상기 결정된 연산 방식을 이용하여 상기 복수의 데이터 셋에 대한 제2 출력 데이터를 획득하는 프로세서;를 포함하고,
    상기 프로세서는
    상기 식별된 희소 비율이 임계값을 초과하면, 상기 복수의 연산 방식 중 상기 복수의 데이터 셋 간에 연산을 수행하는 제1 방식을 결정하고,
    상기 식별된 희소 비율이 임계값 이하면, 상기 복수의 연산 방식 중 상기 인덱스 데이터에 포함된 유효 데이터에 대응되는 데이터를 식별하고, 상기 식별된 데이터 간에 연산을 수행하는 제2 방식을 결정하는 전자 장치.
  2. 제1항에 있어서,
    상기 프로세서는,
    상기 전자 장치의 상태 정보 및 상기 복수의 데이터 셋의 유형 중 적어도 하나에 기초하여 상기 임계값의 크기를 결정하고,
    상기 크기가 결정된 임계값에 기초하여 상기 복수의 연산 방식 중 상기 식별된 희소 비율에 대응되는 연산 방식을 결정하는 전자 장치.
  3. 제2항에 있어서,
    상기 전자 장치의 상태 정보는 상기 전자 장치의 배터리 잔량, 상기 프로세서의 사용량 중 적어도 하나를 포함하는 것을 특징으로 하는 전자 장치.
  4. 제3항에 있어서,
    상기 프로세서는,
    상기 전자 장치의 배터리 잔량이 기설정된 값을 초과한 경우, 상기 임계값의 크기를 제1 수치로 결정하고,
    상기 배터리의 잔량이 상기 기설정된 값 이하인 경우, 상기 임계값의 크기를 제2 수치로 결정하고,
    상기 제1 수치는 상기 제2 수치보다 작은 수치인 것을 특징으로 하는 전자 장치.
  5. 제3항에 있어서,
    상기 프로세서는,
    상기 복수의 데이터 셋의 유형에 매칭된 긴급한 정도를 식별하고,
    상기 식별된 긴급한 정도가 기설정된 값을 초과한 경우, 상기 임계값의 크기를 제3 수치로 결정하고,
    상기 식별된 긴급한 정도가 기설정된 값 이하인 경우, 상기 임계값의 크기를 제4 수치로 결정하고,
    상기 제3 수치는 상기 제4 수치보다 작은 수치인 것을 특징으로 하는 전자 장치.
  6. 제1항에 있어서,
    상기 프로세서는,
    상기 복수의 데이터 셋 각각에 대응되는 인덱스 데이터 중 인접한 데이터를 기설정된 크기만큼 그룹핑(grouping)하고, 상기 그룹핑된 데이터의 대표 값을 결정하고,
    상기 결정된 대표 값이 포함된 인덱스 데이터간에 연산을 수행하여 제3 출력 데이터를 획득하고, 상기 획득된 제3 출력 데이터의 희소 비율을 식별하고,
    상기 식별된 제3 출력 데이터의 희소 비율이 상기 임계값을 초과하는지 여부에 기초하여 상기 복수의 연산 방식 중 상기 제3 출력 데이터의 희소 비율에 대응되는 연산 방식을 결정하는 전자 장치.
  7. 제6항에 있어서,
    상기 프로세서는,
    상기 전자 장치의 상태 정보 및 상기 복수의 데이터 셋의 유형 중 적어도 하나에 기초하여 상기 그룹핑된 데이터 간의 연산 방식을 결정하고,
    상기 결정된 연산 방식을 이용하여 상기 그룹핑된 데이터 간의 연산을 수행하여 상기 대표 값을 결정하는 전자 장치.
  8. 제7항에 있어서,
    상기 프로세서는,
    상기 전자 장치의 상태 정보 중 상기 전자 장치의 배터리의 잔량이 기설정된 값을 초과한 경우, 상기 그룹핑된 데이터 간의 연산 방식을 AND 연산으로 결정하고,
    상기 전자 장치의 배터리의 잔량이 상기 기설정된 값 이하인 경우, 상기 그룹핑된 데이터 간의 연산 방식을 OR 연산으로 결정하는 전자 장치.
  9. 제1항에 있어서,
    입력부;를 더 포함하고,
    상기 프로세서는,
    상기 임계값의 수치를 변경하는 사용자 명령이 상기 입력부를 통해 입력되면, 상기 사용자 명령에 따라 상기 임계값의 수치를 변경하고,
    상기 식별된 희소 비율이 상기 수치가 변경된 임계값을 초과하는지 여부에 기초하여 복수의 연산 방식 중 상기 식별된 희소 비율에 대응되는 연산 방식을 결정하는 전자 장치.
  10. 제1항에 있어서,
    상기 프로세서는,
    상기 식별된 희소 비율에 대응되는 연산 방식이 상기 제1 방식으로 결정된 경우, 상기 인덱스 데이터 및 상기 유효 데이터에 대응되는 데이터를 이용하여 상기 복수의 데이터 셋을 복원하고,
    상기 복원된 복수의 데이터 셋간의 연산을 수행하여 상기 제2 출력 데이터를 획득하는 전자 장치.
  11. 전자 장치의 제어 방법에 있어서,
    복수의 데이터 셋에 대응되는 인덱스 데이터 간의 연산을 수행하여 제1 출력 데이터를 획득하고, 상기 제1 출력 데이터의 희소(sparsity) 비율을 식별하는 단계;
    상기 식별된 희소 비율이 임계값을 초과하는지 여부에 기초하여 복수의 연산 방식 중 상기 식별된 희소 비율에 대응되는 연산 방식을 결정하는 단계; 및
    상기 결정된 연산 방식을 이용하여 상기 복수의 데이터 셋에 대한 제2 출력 데이터를 획득하는 단계;를 포함하고,
    상기 결정하는 단계는,
    상기 식별된 희소 비율이 임계값을 초과하면, 상기 복수의 연산 방식 중 상기 복수의 데이터 셋 간에 연산을 수행하는 제1 방식을 결정하고,
    상기 식별된 희소 비율이 임계값 이하면, 상기 복수의 연산 방식 중 상기 인덱스 데이터에 포함된 유효 데이터에 대응되는 데이터를 식별하고, 상기 식별된 데이터 간에 연산을 수행하는 제2 방식을 결정하는 단계;를 포함하는 제어 방법.
  12. 제11항에 있어서,
    상기 결정하는 단계는,
    상기 전자 장치의 상태 정보 및 상기 복수의 데이터 셋의 유형 중 적어도 하나에 기초하여 상기 임계값의 크기를 결정하는 단계; 및
    상기 크기가 결정된 임계값에 기초하여 상기 복수의 연산 방식 중 상기 식별된 희소 비율에 대응되는 연산 방식을 결정하는 단계;를 포함하는 제어 방법.
  13. 제12항에 있어서,
    상기 전자 장치의 상태 정보는 상기 전자 장치의 배터리 잔량, 상기 프로세서의 사용량 중 적어도 하나를 포함하는 것을 특징으로 하는 제어 방법.
  14. 제13항에 있어서,
    상기 결정하는 단계는,
    상기 전자 장치의 배터리 잔량이 기설정된 값을 초과한 경우, 상기 임계값의 크기를 제1 수치로 결정하고,
    상기 배터리의 잔량이 상기 기설정된 값 이하인 경우, 상기 임계값의 크기를 제2 수치로 결정하는 단계;를 포함하고,
    상기 제1 수치는 상기 제2 수치보다 작은 수치인 것을 특징으로 하는 제어 방법.
  15. 제13항에 있어서,
    상기 결정하는 단계는,
    상기 복수의 데이터 셋의 유형에 매칭된 긴급한 정도를 식별하는 단계:
    상기 식별된 긴급한 정도가 기설정된 값을 초과한 경우, 상기 임계값의 크기를 제3 수치로 결정하고,
    상기 식별된 긴급한 정도가 기설정된 값 이하인 경우, 상기 임계값의 크기를 제4 수치로 결정하는 단계;를 포함하고,
    상기 제3 수치는 상기 제4 수치보다 작은 수치인 것을 특징으로 하는 제어 방법.
PCT/KR2021/002373 2020-07-10 2021-02-25 전자 장치 및 그의 제어 방법 WO2022010064A1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US17/526,651 US20220075437A1 (en) 2020-07-10 2021-11-15 Electronic apparatus and control method thereof

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020200085425A KR20220007326A (ko) 2020-07-10 2020-07-10 전자 장치 및 그의 제어 방법
KR10-2020-0085425 2020-07-10

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/526,651 Continuation US20220075437A1 (en) 2020-07-10 2021-11-15 Electronic apparatus and control method thereof

Publications (1)

Publication Number Publication Date
WO2022010064A1 true WO2022010064A1 (ko) 2022-01-13

Family

ID=79553303

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2021/002373 WO2022010064A1 (ko) 2020-07-10 2021-02-25 전자 장치 및 그의 제어 방법

Country Status (3)

Country Link
US (1) US20220075437A1 (ko)
KR (1) KR20220007326A (ko)
WO (1) WO2022010064A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11681922B2 (en) * 2019-11-26 2023-06-20 Numenta, Inc. Performing inference and training using sparse neural network

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180050928A (ko) * 2016-11-07 2018-05-16 삼성전자주식회사 컨볼루션 신경망 처리 방법 및 장치
KR20180084289A (ko) * 2017-01-16 2018-07-25 한국전자통신연구원 희소 파라미터를 사용하는 압축 신경망 시스템 및 그것의 설계 방법
US20180293691A1 (en) * 2017-04-09 2018-10-11 Intel Corporation Machine learning sparse computation mechanism
US20190042250A1 (en) * 2018-06-08 2019-02-07 Intel Corporation Variable format, variable sparsity matrix multiplication instruction
US20190042538A1 (en) * 2017-12-13 2019-02-07 Intel Corporation Accelerator for processing data

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180050928A (ko) * 2016-11-07 2018-05-16 삼성전자주식회사 컨볼루션 신경망 처리 방법 및 장치
KR20180084289A (ko) * 2017-01-16 2018-07-25 한국전자통신연구원 희소 파라미터를 사용하는 압축 신경망 시스템 및 그것의 설계 방법
US20180293691A1 (en) * 2017-04-09 2018-10-11 Intel Corporation Machine learning sparse computation mechanism
US20190042538A1 (en) * 2017-12-13 2019-02-07 Intel Corporation Accelerator for processing data
US20190042250A1 (en) * 2018-06-08 2019-02-07 Intel Corporation Variable format, variable sparsity matrix multiplication instruction

Also Published As

Publication number Publication date
US20220075437A1 (en) 2022-03-10
KR20220007326A (ko) 2022-01-18

Similar Documents

Publication Publication Date Title
WO2019047971A1 (zh) 图像识别方法、终端及存储介质
WO2020017898A1 (en) Electronic apparatus and control method thereof
WO2020071854A1 (en) Electronic apparatus and control method thereof
WO2022010064A1 (ko) 전자 장치 및 그의 제어 방법
EP3867824A1 (en) Electronic apparatus and control method thereof
WO2022145611A1 (ko) 전자 장치 및 그 제어 방법
WO2020231151A1 (en) Electronic device and method of controlling thereof
WO2020246724A1 (en) Electronic apparatus and method of performing operations thereof
EP3850623A1 (en) Electronic device and method of controlling thereof
WO2019198900A1 (en) Electronic apparatus and control method thereof
WO2021230470A1 (ko) 전자 장치 및 그 제어 방법
WO2021221256A1 (ko) 전자 장치 및 그의 제어 방법
WO2021015403A1 (en) Electronic apparatus and controlling method thereof
WO2021045434A1 (ko) 전자 장치 및 이의 제어 방법
WO2022145676A1 (ko) 전자 장치 및 이의 제어 방법
WO2022177091A1 (ko) 전자 장치 및 이의 제어 방법
WO2022030805A1 (ko) 데이터 라벨을 자동 교정하는 음성 인식 시스템 및 방법
WO2021054613A1 (en) Electronic device and method for controlling the electronic device thereof
WO2020256339A1 (ko) 전자 장치 및 이의 제어 방법
WO2021118260A1 (en) Electronic apparatus that monitors a safety function and a controlling method thereof
WO2022075600A1 (ko) 전자 장치 및 이의 제어 방법
WO2022177304A1 (ko) 전자 장치 및 이의 제어 방법
WO2022239967A1 (ko) 전자 장치 및 이의 제어 방법
WO2021010651A1 (en) Method and apparatus for artificial intelligence model personalization
WO2022186450A1 (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: 21837794

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21837794

Country of ref document: EP

Kind code of ref document: A1