KR20210115863A - 뉴럴 네트워크 모델을 위한 병렬 처리 방법 및 장치 - Google Patents

뉴럴 네트워크 모델을 위한 병렬 처리 방법 및 장치 Download PDF

Info

Publication number
KR20210115863A
KR20210115863A KR1020200032233A KR20200032233A KR20210115863A KR 20210115863 A KR20210115863 A KR 20210115863A KR 1020200032233 A KR1020200032233 A KR 1020200032233A KR 20200032233 A KR20200032233 A KR 20200032233A KR 20210115863 A KR20210115863 A KR 20210115863A
Authority
KR
South Korea
Prior art keywords
layer
metadata
parallel processing
target
information
Prior art date
Application number
KR1020200032233A
Other languages
English (en)
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 KR1020200032233A priority Critical patent/KR20210115863A/ko
Priority to US17/023,496 priority patent/US20210287085A1/en
Priority to CN202011450974.1A priority patent/CN113408693A/zh
Priority to EP21151178.7A priority patent/EP3889842A1/en
Publication of KR20210115863A publication Critical patent/KR20210115863A/ko

Links

Images

Classifications

    • 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
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/213Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/22Matching criteria, e.g. proximity measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/285Selection of pattern recognition techniques, e.g. of classifiers in a multi-classifier system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • G06N3/0454
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/01Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/501Performance criteria
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks

Abstract

뉴럴 네트워크 모델을 위한 병렬 처리 방법 및 장치가 개시된다. 일 실시예에 따르면, 병렬 처리 방법은 대상 레이어의 메타 데이터를 참조 레이어들 각각의 참조 메타 데이터와 비교하여 참조 레이어들 중에 대응 레이어를 선택하고, 대응 레이어에 매칭된 참조 병렬화 전략에 기초하여 대상 레이어에 관한 병렬화 전략을 생성하는 단계들을 포함한다.

Description

뉴럴 네트워크 모델을 위한 병렬 처리 방법 및 장치{METHOD AND APPARTUS OF PARALLEL PROCESSING FOR NEURAL NETWORK MODEL}
아래 실시예들은 뉴럴 네트워크 모델을 위한 병렬 처리 방법 및 장치에 관한 것이다.
인식 프로세스의 기술적 자동화는, 예를 들어, 특수한 계산 구조로서 프로세서로 구현된 뉴럴 네트워크 모델을 통해 구현되었으며, 이는 상당한 훈련 후에 입력 패턴과 출력 패턴 사이에서 계산상 직관적인 매핑을 제공할 수 있다. 이러한 맵핑을 생성하는 훈련된 능력은 신경망의 학습 능력이라 할 수 있다. 더구나, 특화된 훈련으로 인해, 이와 같이 특화되어 훈련된 신경망은, 예를 들어, 훈련하지 않은 입력 패턴에 대하여 비교적 정확한 출력을 발생시키는 일반화 능력을 가질 수 있다. 이러한 뉴럴 네트워크 모델의 트레이닝 및 추론(inference)과 관련된 동작을 처리하고자 할 때, 좀 더 빠르게 결과에 수렴할 수 있는 방안으로 모델 병렬화 및/또는 데이터 병렬화와 같은 방안이 사용될 수 있다.
일 실시예에 따르면, 뉴럴 네트워크 기반의 대상 모델을 위한 병렬 처리 방법은 상기 대상 모델 내의 대상 레이어의 메타 데이터를 추출하는 단계; 상기 대상 레이어의 상기 메타 데이터를 참조 레이어들 각각의 참조 메타 데이터와 비교하여, 상기 대상 레이어와 상기 참조 레이어들 각각 간의 유사도를 측정하는 단계; 상기 유사도에 기초하여, 상기 참조 레이어들 중에 대응 레이어를 선택하는 단계; 및 상기 대응 레이어에 매칭된 참조 병렬화 전략에 기초하여, 상기 대상 레이어에 관한 병렬화 전략을 생성하는 단계를 포함한다.
상기 대응 레이어를 선택하는 상기 단계는 상기 참조 레이어들 중에 상기 대상 레이어의 상기 메타 데이터와 동일한 참조 메타 데이터를 가지는 제1 참조 레이어가 존재하는 경우, 상기 제1 참조 레이어를 상기 대응 레이어로 선택하는 단계; 및 상기 참조 레이어들 중에 상기 제1 참조 레이어가 존재하지 않는 경우, 상기 참조 레이어들 중에 상기 대상 레이어의 상기 메타 데이터와 가장 유사한 참조 메타 데이터를 가지는 제2 참조 레이어를 상기 대응 레이어로 선택하는 단계를 포함할 수 있다.
상기 제2 참조 레이어가 상기 대응 레이어로 선택된 경우, 상기 대상 레이어의 상기 메타 데이터에 대응하는 참조 레이어 정보가 상기 참조 레이어들 각각의 상기 참조 메타 데이터가 저장된 참조 데이터베이스에 추가될 수 있다. 상기 참조 레이어 정보는 링크 정보를 포함할 수 있고, 상기 제2 참조 레이어가 상기 대응 레이어로 선택된 경우, 상기 제2 참조 레이어의 식별 정보가 상기 참조 레이어 정보에 상기 링크 정보로 기록될 수 있다.
상기 병렬 처리 방법은 상기 대상 레이어의 상기 메타 데이터에 대응하는 상기 참조 레이어 정보가 상기 참조 데이터베이스에 추가된 이후에, 상기 대상 레이어의 상기 메타 데이터에 대응하는 새로운 병렬화 전략을 생성하는 단계를 더 포함할 수 있다. 상기 새로운 병렬화 전략의 생성은 상기 대상 레이어에 관한 상기 병렬 처리의 수행과는 독립적으로 수행될 수 있다.
상기 새로운 병렬화 전략의 생성은 상기 대상 레이어의 상기 메타 데이터에 대응하는 상기 참조 레이어 정보를 포함하는, 상기 참조 데이터베이스에 추가된 새로운 참조 레이어 정보의 양이 임계치를 초과하는 경우에 수행될 수 있다. 상기 유사도는 뉴럴 네트워크 기반의 유사도 측정 모델을 이용하여 측정될 수 있고, 상기 새로운 병렬화 전략이 생성된 이후에, 상기 유사도 측정 모델은 상기 새로운 병렬화 전략에 기초하여 재트레이닝될 수 있다.
상기 새로운 병렬화 전략이 생성된 이후에, 상기 참조 레이어 정보의 링크 정보는 빈 상태로 변경될 수 있다. 상기 병렬 처리 방법은 상기 병렬화 전략에 따라 상기 대상 레이어에 관한 동작을 병렬 처리하는 단계를 더 포함할 수 있다.
일 실시예에 따르면, 뉴럴 네트워크 기반의 대상 모델을 위한 병렬 처리 장치는 프로세서; 및 상기 프로세서에서 실행가능한 명령어들을 포함하는 메모리를 포함하고, 상기 명령어들이 상기 프로세서에서 실행되면, 상기 프로세서는 상기 대상 모델 내의 대상 레이어의 메타 데이터를 추출하고, 상기 대상 레이어의 상기 메타 데이터를 참조 레이어들 각각의 참조 메타 데이터와 비교하여, 상기 대상 레이어와 상기 참조 레이어들 각각 간의 유사도를 측정하고, 상기 유사도에 기초하여, 상기 참조 레이어들 중에 대응 레이어를 선택하고, 상기 대응 레이어에 매칭된 참조 병렬화 전략에 기초하여, 상기 대상 레이어에 관한 병렬화 전략을 생성한다.
일 실시예에 따르면, 전자 장치는 프로세서; 및 상기 프로세서에서 실행가능한 명령어들을 포함하는 메모리를 포함하고, 상기 명령어들이 상기 프로세서에서 실행되면, 상기 프로세서는 뉴럴 네트워크 기반의 대상 모델 내의 대상 레이어의 메타 데이터를 추출하고, 상기 대상 레이어의 상기 메타 데이터를 참조 레이어들 각각의 참조 메타 데이터와 비교하여, 상기 대상 레이어와 상기 참조 레이어들 각각 간의 유사도를 측정하고, 상기 유사도에 기초하여, 상기 참조 레이어들 중에 대응 레이어를 선택하고, 상기 대응 레이어에 매칭된 참조 병렬화 전략에 기초하여, 상기 대상 레이어에 관한 병렬화 전략을 생성한다.
도 1은 본 명세서의 일 실시예에 따른 뉴럴 네트워크 모델을 위한 병렬 처리 과정을 개략적으로 나타낸 도면이다.
도 2 및 도 3은 본 명세서의 일 실시예에 따른 병렬 처리 장치의 각 요소의 병렬 처리 동작을 나타낸 도면이다.
도 4는 일 실시예에 따른 동일 참조 레이어의 존재 여부에 따른 병렬화 전략의 채택 과정을 나타낸 동작 흐름도이다.
도 5는 일 실시예에 따른 새로운 병렬화 전략의 생성과 관련된 동작들을 나타낸 동작 흐름도이다.
도 6은 일 실시예에 따른 업데이트 전후의 참조 데이터베이스를 나타낸 도면이다.
도 7은 본 명세서의 일 실시예에 따른 병렬 처리 과정을 전반적으로 나타낸 동작 흐름도이다.
도 8은 본 명세서의 일 실시예에 따른 병렬 처리 장치를 나타낸 블록도이다.
도 9는 본 명세서의 일 실시예에 따른 전자 장치를 나타낸 블록도이다.
아래 개시되어 있는 특정한 구조 또는 기능들은 단지 기술적 개념을 설명하기 위한 목적으로 예시된 것으로서, 아래 개시와는 달리 다른 다양한 형태로 실시될 수 있으며 본 명세서의 실시예들을 한정하지 않는다.
제1 또는 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 이런 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 이해되어야 한다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 해당 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
도 1은 본 명세서의 일 실시예에 따른 뉴럴 네트워크 모델을 위한 병렬 처리 과정을 개략적으로 나타낸 도면이다. 도 1을 참조하면, 병렬 처리 장치(100)는 대상 모델 정보에 기초하여 대상 모델(110)을 위한 병렬화 전략(parallelization strategy)을 생성한다. 병렬 처리 장치(100)는 생성된 병렬화 전략에 기초하여 대상 모델(110)을 위한 병렬 처리(예: 트레이닝 및/또는 추론)를 수행할 수 있다. 예를 들어, 대상 모델(110)은 인공 뉴럴 네트워크(artificial neural network, 이하 간단히 뉴럴 네트워크라고 지칭될 수 있음) 기반일 수 있고, 병렬화 전략에 따라 대상 모델(110)의 트레이닝 및/또는 추론(inference)을 위한 동작들이 병렬적으로 수행될 수 있다.
뉴럴 네트워크는 딥 러닝에 기반하여 비선형적 관계에 있는 입력 데이터 및 출력 데이터를 서로 매핑함으로써 학습의 목적에 따른 동작(예: 객체 인식 동작, 사용자 인증 동작 등)을 수행할 수 있다. 딥 러닝은 빅 데이터 세트로부터 영상 또는 음성 인식과 같은 문제를 해결하기 위한 기계 학습 기법이다. 딥 러닝은 준비된 트레이닝 데이터를 이용하여 뉴럴 네트워크를 트레이닝하면서 에너지가 최소화되는 지점을 찾아가는 최적화 문제 풀이 과정으로 이해될 수 있다.
딥 러닝의 지도식(supervised) 또는 비지도식(unsupervised) 학습을 통해 뉴럴 네트워크의 구조, 혹은 모델에 대응하는 가중치(weight)가 구해질 수 있고, 이러한 가중치를 통해 입력 데이터 및 출력 데이터가 서로 매핑될 수 있다. 뉴럴 네트워크의 폭과 깊이가 충분히 크면 임의의 함수를 구현할 수 있을 만큼의 용량(capacity)을 가질 수 있다. 뉴럴 네트워크가 적절한 트레이닝 과정을 통해 충분히 많은 양의 트레이닝 데이터를 학습하면 최적의 성능을 달성할 수 있다.
아래에서 뉴럴 네트워크나 네트워크 파라미터(예: 웨이트들)가 '미리' 트레이닝 되었다고 표현될 수 있는데, 여기서 '미리'는 뉴럴 네트워크가 '시작'되기 전을 나타낼 수 있다. 뉴럴 네트워크가 '시작'되었다는 것은 뉴럴 네트워크가 추론을 위한 준비가 된 것을 의미할 수 있다. 예를 들어, 뉴럴 네트워크가 '시작'된 것은 뉴럴 네트워크가 메모리에 로드된 것, 혹은 뉴럴 네트워크가 메모리에 로드된 이후 뉴럴 네트워크에 추론을 위한 입력 데이터가 입력된 것을 포함할 수 있다.
뉴럴 네트워크는 복수의 레이어들을 포함할 수 있다. 이 경우, 뉴럴 네트워크는 딥 뉴럴 네트워크(deep neural network, DNN)로 지칭될 수 있다. 복수의 레이어들은 입력 레이어(input layer), 적어도 하나의 히든 레이어(hidden layer), 및 출력 레이어(output layer)를 포함할 수 있다. 대상 모델(110)은 구성요소(111)와 같은 복수의 구성요소들을 포함할 수 있다. 예를 들어, 대상 모델(110)의 복수의 구성요소들은 복수의 레이어들, 복수의 노드들과 같은 뉴럴 네트워크의 구성요소들에 대응할 수 있다. 아래에서 대상 모델(110)의 각 구성요소가 뉴럴 네트워크의 레이어에 대응하는 경우가 설명될 수 있으나, 아래의 설명은 대상 모델(110)의 각 구성요소가 레이어가 아닌 뉴럴 네트워크의 다른 구성요소에 대응하는 경우에도 적용될 수 있다.
뉴럴 네트워크는 완전 연결 네트워크(fully connected network), 컨볼루셔널 뉴럴 네트워크(convolutional neural network, CNN), 리커런트 뉴럴 네트워크(recurrent neural network, RNN)와 같은 다양한 유형의 네트워크들을 포함할 수 있다. 예를 들어, 뉴럴 네트워크 내 복수의 레이어들 중 적어도 일부는 CNN에 해당할 수 있고, 다른 일부는 완전 연결 네트워크에 해당할 수 있다. 또한, 뉴럴 네트워크는 각 유형에 따른 복수의 레이어들을 포함할 수 있다. 예를 들어, 뉴럴 네트워크의 복수의 레이어들은 완전 연결 레이어, 컨볼루션 레이어, 리커런트 레이어와 같은 다양한 유형의 레이어들 중 적어도 하나를 포함할 수 있다.
뉴럴 네트워크 모델의 트레이닝 및 추론과 관련된 동작을 처리하고자 할 때, 좀 더 빠르게 결과에 수렴할 수 있는 방안으로 모델 병렬화 및/또는 데이터 병렬화와 같은 정책이 사용될 수 있다. 병렬 처리, 병렬화 전략은 분산 처리(distributed processing), 분산화 전략(distribution strategy)을 포함하는 개념으로 이해될 수 있다. 모델 병렬화는 뉴럴 네트워크 모델을 나누어 다른 가속기에서 연산하는 방식이며, 데이터 병렬화는 입력으로 주어지는 데이터를 나누어 다른 가속기에서 연산하는 방식이다. 모델 병렬화는 크게 레이어-간의 병렬화(inter-layer parallelism)와 파이프라이닝(pipelining)을 활용한 방식, 및 레이어-내의 병렬화(intra-layer parallelism) 방식으로 나눌 수 있다.
레이어-간의 병렬화는 뉴럴 네트워크 모델에 있는 레이어를 서로 다른 가속기에 할당해 연산하는 방식이며, 레이어-내의 병렬화는 뉴럴 네트워크 모델의 레이어 내부의 값을 서로 다른 가속기에 할당해 연산하는 방식이다. 레이어 내부의 값은 CNN의 경우 커널 웨이트(kernel weight) 및 입력 특징 맵(input feature map)가 될 수 있고, RNN의 경우 RNN레이어를 구성하는 셀(cell)의 가중치(weight) 혹은 계산을 위한 다른 정보가 될 수 있다.
노드(node)들 간의 병렬화 방식도 존재한다. 여기에서의 노드란 네트워크로 연결되어 있는 서버 혹은 다른 종단 단말(end-point equipment)를 의미할 수 있다. 노드들 간의 분산 처리는 뉴럴 네트워크 모델의 가중치들을 분산하여 트레이닝 및 추론하기 위해 수행될 수 있고, 이를 위해 주로 파라미터 공유 방식 혹은 MPI(Message Passing Interface)가 이용될 수 있다. 또한, 이 두 가지를 동시에 사용하는 하이브리드 방식도 존재한다.
이러한 병렬화 방식들을 위한 전략에는 비동기 방식 및 동기 방식이 있을 수 있다. 동기식 학습은 가중치를 학습하는 작업자(worker)들의 작업이 끝나고, 모든 데이터가 모이면 뉴럴 네트워크 모델을 업데이트 하는 방식이다. 비동기식 학습은 각 작업자가 다른 작업자의 행동을 생각하지 않고, 자신의 계산이 종료되면 그 값을 가지고 바로 뉴럴 네트워크 모델을 업데이트 하는 방식이다.
또한, 가중치들의 특성이 밀집한지(dense) 성긴지(sparse)에 따라 전략 적용을 다르게 하는 것도 가능하다. 가중치들이 밀집하다는 것은 가중치 행렬에 0이 희소하게 존재한다는 의미이며, 성기다는 것은 가중치 행렬에 0이 다수로 및/또는 연속하여 존재한다는 의미이다.
이러한 다양한 병렬화 방식/정책들을 실시예에 따른 병렬화 전략을 위한 요소들로 고려될 수 있다. 예를 들어, 병렬화 전략 요소는 레이어-내의 병렬화, 레이어-간의 병렬화와 같은 병렬화 방식; 모델, 레이어, 데이터 등을 나누는 방향(예: 폭(width) 방향, 높이(height) 방향, 채널(channel) 방향, 배치(batch) 방향 등)을 나타내는 분할 차원(partition dimension); 모델, 레이어, 데이터 등을 얼마나 나눌지를 나타내는 분할 수(division number); 병렬 처리를 수행하는 프로세서(예: NPU, GPU, NPU#1, NPU#2 등), 코어(예: NPU core#1, NPU core#5 등)와 같은 처리 장치의 정보; 비동기식, 동기식, 올-리듀스(all-reduce)와 같은 병렬화 알고리즘에 관한 정보를 포함할 수 있다. 실시예에 따른 병렬화 전략 요소는 이것들 이외에도 기존에 각종 논문, 학술 연구 등을 통해 알려진 병렬화와 관련된 다양한 방식/정책들을 포함할 수 있다.
대상 모델(110)을 위한 병렬화 전략은 대상 모델(110)의 트레이닝 및/또는 추론과 관련된 다양한 동작들을 병렬 처리하기 위한 다양한 전략 요소들을 포함할 수 있다. 병렬 처리 장치(100)는 이러한 병렬화 전략을 대상 모델(110)의 각 구성요소 별로 생성할 수 있고, 대상 모델(110)의 트레이닝 및/또는 추론을 위해 병렬화 전략에 기초하여 각 구성요소를 실행할 수 있다.
보다 구체적으로, 병렬 처리 장치(100)는 구성요소(111)의 메타 데이터(112)를 추출하고, 메타 데이터(112)를 참조 데이터베이스(120)의 각 참조정보와 비교하여 참조 데이터베이스(120)의 다양한 참조정보 중에 구성요소(111)에 대응하는 참조 정보(121)를 선택하고, 참조 정보(121)를 이용하여 구성요소(111)를 위한 병렬화 전략을 생성할 수 있다. 참조 데이터 베이스(120)는 다양한 참조 정보를 포함할 수 있다. 각 참조 정보는 구성요소(111)에 대응하는 단위에 대응할 수 있다. 예를 들어, 대상 모델(110)의 각 구성요소가 뉴럴 네트워크의 레이어에 대응하는 경우, 참조 데이터베이스(120)의 각 참조 정보도 뉴럴 네트워크의 레이어에 대응할 수 있다. 이 경우, 각 참조 정보는 참조 레이어 정보로 지칭될 수 있다.
데이터베이스(120)의 각 참조 정보는 참조 메타 데이터, 참조 병렬화 전략 등을 포함할 수 있다. 병렬 처리 장치(100)는 메타 데이터(112)를 각 참조 정보의 참조 메타 데이터와 비교하여 참조 정보(121)를 선택할 수 있다. 이때, 참조 정보(121)는 참조 데이터베이스(120)의 모든 참조 정보 중에 메타 데이터(112)와 가장 유사한 참조 메타 데이터를 가진 것일 수 있다. 예를 들어, 참조 정보(121)의 참조 메타 데이터는 메타 데이터(112)와 동일하거나, 혹은 메타 데이터(112)와 동일하지 않더라도 다른 참조 정보의 참조 메타 데이터에 비해 메타 데이터(112)와 가장 유사할 수 있다.
병렬 처리 장치(100)는 참조 정보(112)의 참조 병렬화 전략에 기초하여 구성요소(111)를 위한 병렬화 전략을 생성할 수 있다. 참조 병렬화 전략은 다양한 병렬화 전략 요소들에 관한 적용 정보를 포함할 수 있다. 예를 들어, 병렬 처리 장치(100)는 참조 정보(112)의 참조 병렬화 전략을 구성요소(111)를 위한 병렬화 전략으로 선택할 수 있다. 그 이후에, 병렬 처리 장치(100)는 생성된 병렬화 전략을 이용하여 구성요소(111)를 위한 병렬 처리(예: 트레이닝 및/또는 추론)를 수행할 수 있다. 병렬 처리 장치(100)는 이와 같은 과정을 대상 모델(110)의 각 구성요소에 관해 반복하여, 각 구성요소들을 위한 병렬화 전략을 생성하고, 각 구성요소들을 위한 병렬 처리를 수행할 수 있다.
기존에 뉴럴 네트워크 모델의 병렬 처리를 최적화하기 위해서는 오프라인(예: 뉴럴 네트워크 모델이 실행되지 않는 시간)에서 시뮬레이터와 모델 프로파일링을 이용하는 것이 필요했다. 뉴럴 네트워크 모델을 트레이닝하거나 추론하는 어플리케이션은 사용자에게 빠른 학습 속도와 응답시간(latency)을 보장해야 하는데, 온라인(예: 뉴럴 네트워크 모델이 실행되는 시간)에서 시뮬레이션과 프로파일링이 진행될 경우 학습 속도와 응답시간이 느려질 수 있기 때문이다.
실시예들에 따르면 병렬 처리 장치(100)는 참조 데이터베이스(120)를 이용하여 학습 속도와 응답시간을 최소화하므로, 런타임(runtime)에서 병렬화 전략을 생성할 수 있다. 예를 들어, 병렬 처리 장치(100)는 자율 주행(automotive vehicle)과 같이 실시간으로 데이터를 추론하거나 학습하는 시스템, 대규모 데이터를 병렬 처리해야 하는 클라우드 및 데이터 센터에 적용될 수 있다. 나아가, 최근 인공지능 기술의 발전에 따라 뉴럴 네트워크 모델 어플리케이션들은 더 커지고 더 다양해지고 있고, 이를 위한 병렬화 전략을 수립하는 것은 더 많은 시간과 노력을 요하게 되었다. 실시예들에 따르면 병렬 처리 장치(100)는 지속적인 업데이트를 통해 새로운 병렬화 전략을 생성해 나가므로, 이러한 크고 다양한 어플리케이션에 대처할 수 있다.
도 2 및 도 3은 본 명세서의 일 실시예에 따른 병렬 처리 장치의 각 요소의 병렬 처리 동작을 나타낸 도면이다. 도 2를 참조하면, 런타임 엔진(220), 참조 데이터 베이스(230), 전략 관리자(240), 및 유사도 측정기(250)의 동작이 도시되어 있다. 런타임 엔진(220), 참조 데이터 베이스(230), 전략 관리자(240), 및 유사도 측정기(250)는 적어도 하나의 하드웨어 모듈, 적어도 하나의 소프트웨어 모듈, 및/또는 이들의 조합으로 구현될 수 있다. 아래에서 병렬 처리와 관련된 동작이 런타임 엔진(220), 참조 데이터 베이스(230), 전략 관리자(240), 및 유사도 측정기(250) 각각의 관점에서 설명되지만, 아래에서 설명되는 동작은 반드시 런타임 엔진(220), 참조 데이터 베이스(230), 전략 관리자(240), 및 유사도 측정기(250)라는 구분된 주체들에 의해 수행되어야 하는 것은 아니다. 예를 들어, 어느 하나의 주체에 의해 수행되는 것으로 설명된 동작이 다른 주체에 의해 수행되는 것이나, 혹은 병렬 처리 장치라는 하나의 통합적인 주체에 의해 이들 동작이 수행되는 것도 가능하다.
런타임 엔진(220)은 입력으로 주어진 대상 모델(210)을 실행시킬 수 있다. 예를 들어, 런타임 엔진(220)은 대상 모델(210)의 트레이닝 및/또는 추론을 위해 대상 모델(210)을 실행시킬 수 있다. 이때, 런타임 엔진(220)은 대상 모델(210)의 각 대상 레이어의 병렬화 전략에 기초하여 대상 모델(210)을 실행시킬 수 있다. 예를 들어, 제1 참조 레이어 정보(231)의 제1 참조 병렬화 전략이 제1 대상 레이어(211)를 위한 병렬화 전략으로 채택되고, 제2 참조 레이어 정보(232)의 제2 참조 병렬화 전략이 제2 대상 레이어(212)를 위한 병렬화 전략으로 채택될 수 있다. 이 경우, 런타임 엔진(220)은 제1 참조 병렬화 전략에 기초하여 제1 대상 레이어(211)를 실행시키고, 제2 참조 병렬화 전략에 기초하여 제2 대상 레이어(212)를 실행시킬 수 있다. 또한, 런타임 엔진(220)은 대상 모델(210) 또는 각 대상 레이어의 실행 시간을 출력할 수 있다. 이러한 실행 시간은 각 병렬화 전략의 성능을 평가하는데 사용될 수 있다.
참조 데이터베이스(230)는 다양한 참조 레이어들 각각에 관한 참조 레이어 정보를 포함할 수 있다. 각 참조 레이어의 참조 레이어 정보는 각 참조 레이어에 관한 참조 메타 데이터 및 참조 병렬화 전략을 포함할 수 있다. 예를 들어, 제1 참조 레이어 정보(231)는 제1 참조 레이어에 대응하는, 제1 참조 메타 데이터 및 제1 참조 병렬화 전략을 포함할 수 있다. 참조 메타 데이터는 참조 레이어의 메타 데이터를 포함할 수 있고, 참조 병렬화 전략은 참조 레이어에 적용된 병렬화 전략 및 해당 병렬화 전략의 성능(예: 실행 시간)을 포함할 수 있다.
일 실시예에 따르면, 과거에 특정 뉴럴 네트워크의 레이어에 관한 병렬화 전략이 생성되었을 수 있다. 이때, 해당 레이어에 관한 방대한 시뮬레이션, 프로파일링 등이 오프라인 상에서 수행되어, 최적의 병렬화 전략이 수립되었을 수 있다. 이후에, 해당 레이어는 제1 참조 레이어로 정의되고, 해당 레이어의 메타 데이터는 제1 참조 메타 데이터로 정의되고, 해당 레이어의 병렬화 전략은 제1 병렬화 전략으로 정의되어, 참조 데이터베이스(230)에 저장될 수 있다.
이와 같이 참조 데이터베이스(230)는 참조 레이어 정보를 위한 초기 데이터로서 오프라인에서 진행됐던 최적의 병렬화 전략과 관련된 데이터를 저장할 수 있다. 이러한 초기 데이터는 병렬화 전략을 업데이트하는 과정에서 새로운 병렬화 전략을 수립하는데 이용될 수 있다. 예를 들어, 참조 레이어들 중에 제1 대상 레이어(211)의 메타 데이터와 동일한 참조 메타 데이터를 가지는 참조 레이어가 존재하지 않는 경우, 제1 대상 레이어(211)의 메타 데이터와 가장 유사한 참조 메타 데이터를 가지는 참조 레이어가 제1 대상 레이어(211)의 대응 레이어로 선택될 수 있다.
이 경우, 선택된 참조 레이어가 제1 대상 레이어(211)와 메타 데이터 상 일치하는 것이 아니므로, 선택된 참조 레이어의 병렬화 전략이 제1 대상 레이어(211)에 최적화된 것으로 볼 수 없다. 따라서, 전략 관리자(240)는 우선 선택된 참조 레이어의 병렬화 전략을 제1 대상 레이어(211)에 적용하더라도, 추후 제1 대상 레이어(211)를 위한 새로운 병렬화 전략을 생성할 수 있다. 예를 들어, 전략 관리자(240)는 제1 대상 레이어(211)에 관한 프로파일링, 시뮬레이션 등을 수행하여 제1 대상 레이어(211)를 위한 최적의 병렬화 전략을 생성할 수 있다.
유사도 측정기(250)는 대상 모델(210)의 각 대상 레이어의 메타 데이터와 참조 데이터 베이스(230)의 각 참조 레이어의 참조 메타 데이터를 비교하여, 각 대상 레이어와 각 참조 레이어 간의 유사도를 측정할 수 있다. 예를 들어, 유사도 측정기(250)는 제1 대상 레이어(211)의 메타 데이터를 추출하고, 이를 제1 참조 레이어 정보(231)의 제1 참조 메타 데이터, 제2 참조 레이어 정보(232)의 제2 참조 메타 데이터, 및 제3 참조 레이어 정보(233)의 제3 참조 메타 데이터와 각각 비교하여, 제1 대상 레이어(211)와 제1 내지 제3 참조 레이어들 각각 간의 유사도를 측정할 수 있다.
예를 들어, 메타 데이터는 입력 데이터, 출력 데이터, 가중치의 특성(예: 사이즈, 성김(sparsity) 등), 및 레이어 유형(예: 완전 연결 레이어, 컨볼루션 레이어, 리커런트 레이어 등)을 포함할 수 있다. 나아가, CNN의 레이어의 경우 메타 데이터는 커널 사이즈, 패딩(padding), 스트라이드(stride)을 포함할 수 있고, RNN의 경우 셀(cell) 정보, 게이트(gate) 정보, 입력 임베딩(embedding)을 포함할 수 있다. 참조 메타 데이터도 이와 같은 항목들에 관한 정보를 포함할 수 있다. 유사도 측정기(250)는 대상 레이어의 메타 데이터와 참조 레이어의 참조 메타 데이터 간에 대응하는 항목들을 비교하여, 대상 레이어와 참조 레이어 간의 유사도를 측정할 수 있다.
전략 관리자(240)는 유사도 측정기(250)에 의해 측정된 유사도에 기초하여, 참조 레이어들 중에 대상 레이어에 대응하는 대응 레이어를 선택하고, 대응 레이어에 매칭된 참조 병렬화 전략에 기초하여, 대상 레이어에 관한 병렬화 전략을 생성할 수 있다. 이때, 전략 관리자(240)는 가장 높은 유사도를 갖는 참조 레이어를 대응 레이어로 선택할 수 있다. 예를 들어, 참조 레이어들 중에 제1 참조 레이어가 제1 대상 레이어(211)와의 유사도가 가장 높은 경우, 전략 관리자(240)는 제1 참조 레이어를 제1 대상 레이어(211)의 대응 레이어로 선택하고, 제1 참조 병렬화 전략에 기초하여 제1 대상 레이어(211)에 관한 병렬화 전략을 생성할 수 있다.
도 3을 참조하면, 대상 모델(310)에 관한 참조 데이터베이스(320), 유사도 측정기(330), 및 전략 관리자(340)의 병렬 처리 동작들이 도시되어 있다. 참조 데이터 베이스(320), 유사도 측정기(330), 및 전략 관리자(340)는 적어도 하나의 하드웨어 모듈, 적어도 하나의 소프트웨어 모듈, 및/또는 이들의 조합으로 구현될 수 있다. 또한, 도 2와 관련하여 언급된 것처럼, 아래에서 설명되는 동작은 반드시 참조 데이터 베이스(320), 유사도 측정기(330), 및 전략 관리자(340)에 의해 구분되어 수행되어야 하는 것은 아니다. 예를 들어, 어느 하나의 주체에 의해 수행되는 것으로 설명된 동작이 다른 주체에 의해 수행되는 것이나, 혹은 병렬 처리 장치라는 하나의 통합적인 주체에 의해 이들 동작이 수행되는 것도 가능하다.
유사도 측정기(330)는 대상 모델(310) 내의 대상 레이어(311)의 메타 데이터(312)를 추출한다. 메타 데이터(312)는 레이어 유형(예: 완전 연결 레이어, 컨볼루션 레이어, 리커런트 레이어 등), 데이터 특성(예: 입력 데이터, 출력 데이터, 가중치의 특성) 등을 포함할 수 있다. 유사도 측정기(330)는 메타 데이터(312)를 각 참조 레이어의 참조 메타 데이터와 비교하여, 대상 레이어(311)와 각 참조 레이어 간의 유사도를 측정할 수 있다. 측정 결과(332)는 대상 레이어(311)와 각 참조 레이어 간의 유사도에 관한 정보를 포함할 수 있다.
일 실시예에 따르면, 유사도 측정기(330)는 뉴럴 네트워크 기반의 유사도 측정 모델(331)을 포함할 수 있다. 유사도 측정 모델(331)은 참조 데이터베이스(320)에 기초하여 미리 트레이닝될 수 있다. 예를 들어, 유사도 측정 모델(331)은 메타 데이터(312)가 입력되면, 메타 데이터(312)를 참조 데이터 베이스(320)의 각 참조 메타 데이터와 비교하고, 대상 레이어(311)와 각 참조 레이어 간의 유사도를 출력하도록, 미리 트레이닝될 수 있다.
일례로, 메타 데이터(312)가 제1 참조 레이어의 제1 참조 메타 데이터와 꽤 유사하고, 제2 참조 레이어의 제2 참조 메타 데이터와 동일하다면, 측정 결과(332)에서 대상 레이어(311)와 제1 참조 레이어 간의 유사도는 0.95와 같이 나타나고, 대상 레이어(311)와 제2 참조 레이어 간의 유사도는 1.0과 같이 나타날 수 있다. 상술된 것처럼, 새로운 병렬화 전략의 생성에 따라 참조 데이터베이스(320)에 새로운 참조 레이어 정보가 추가될 수 있다. 이 경우, 유사도 측정 모델(331)은 일정 조건(예: 추가된 새로운 참조 레이어 정보의 양이 임계치를 초과)에 따라 업데이트될 수 있다.
전략 관리자(340)는 메타 데이터(312), 참조 레이어 정보(321), 및 측정 결과(332) 중 적어도 일부에 기초하여 대상 레이어(311)에 관한 병렬화 전략을 생성할 수 있다. 예를 들어, 참조 레이어들 중에 제1 참조 레이어가 대상 레이어(311)와의 유사도가 가장 높은 경우, 전략 관리자(340)는 제1 참조 레이어를 제1 대상 레이어(311)의 대응 레이어로 선택하고, 제1 참조 병렬화 전략에 기초하여 제1 대상 레이어(311)에 관한 병렬화 전략을 생성할 수 있다.
도 4는 일 실시예에 따른 동일 참조 레이어의 존재 여부에 따른 병렬화 전략의 채택 과정을 나타낸 동작 흐름도이다. 도 4를 참조하면, 단계(410)에서 병렬 처리 장치는 유사도 측정 결과, 참조 레이어 정보, 및 메타 데이터를 획득한다. 예를 들어, 병렬 처리 장치는 유사도 측정 결과는 유사도 측정기로부터 획득할 수 있고, 참조 레이어 정보는 참조 데이터베이스로부터 획득할 수 있고, 메타 데이터는 대상 레이어로부터 획득할 수 있다.
단계(420)에서 병렬 처리 장치는 대상 레이어와 동일한 메타 데이터를 가지는 참조 레이어(이하, 간단히 동일 참조 레이어라고 지칭될 수 있음)가 존재하는지 결정한다. 일 실시예에 따르면, 대상 레이어의 병렬화 전략을 결정함에 있어서, 동일 참조 레이어가 참조 데이터베이스에 존재하는지에 따라 다른 처리 과정이 수행될 수 있다. 동일 참조 레이어가 존재하는 경우, 단계(430)에서 동일 참조 레이어의 참조 병렬화 전략이 채택될 수 있고, 이에 따라 대상 레이어의 병렬화 전략이 결정될 수 있다. 동일 참조 레이어가 존재하지 않는 경우, 단계(440)에서 동일 참조 레이어 대신 대상 레이어와 가장 유사한 참조 레이어(이하, 간단히 최유사 참조 레이어라고 지칭될 수 있음)의 참조 병렬화 전략이 채택될 수 있고, 이에 따라 대상 레이어의 병렬화 전략이 결정될 수 있다.
동일 참조 레이어가 존재하지 않는다는 것은 선택된 참조 병렬화 전략이 대상 레이어에 최적의 것이 아닐 수 있다는 것을 의미할 수 있다. 참조 데이터베이스에 각 참조 레이어를 위한 최적의 병렬화 전략이 존재하는 경우에도, 대상 레이어와 일치하는 참조 레이어가 존재하지 않기 때문에, 아무리 최유사 참조 레이어의 병렬화 전략이라고 해도 이것이 대상 레이어에 최적화된 것이라는 점이 보장되지 않기 때문이다. 따라서, 대상 레이어에 최적인 병렬화 전략을 찾기 위한 작업이 추가로 수행될 수 있다. 다만, 새로운 병렬화 전략을 찾는 작업은 시간이 오래 걸릴 수 있으므로, 우선 최유사 참조 레이어의 병렬화 전략이 대상 레이어에 적용될 수 있고, 새로운 병렬화 전략을 찾는 작업은 차후적으로 수행될 수 있다.
일 실시예에 따르면, 동일 참조 레이어가 존재하지 않는 경우, 병렬 처리 장치는 대상 레이어의 메타 데이터에 대응하는 참조 레이어 정보를 참조 데이터베이스에 추가할 수 있다. 이러한 대상 레이어는 새로운 유형의 메타 데이터의 레이어에 해당하므로, 이러한 대상 레이어를 위한 새로운 전략을 참조 데이터베이스에 구비할 필요가 있기 때문이다. 이때, 일단 새로운 참조 레이어 정보의 참조 병렬화 전략으로 최유사 참조 레이어의 참조 병렬화 전략이 저장될 수 있다. 새로운 참조 레이어 정보의 참조 병렬화 전략은 추후 최적화 과정을 통해 업데이트될 수 있다.
일 실시예에 따르면, 참조 데이터베이스의 각 참조 레이어 정보는 링크 정보를 포함할 수 있다. 어떤 참조 레이어 정보의 참조 병렬화 전략이 해당 참조 레이어 정보의 참조 레이어에 최적화되어 있는 경우, 해당 참조 레이어 정보의 링크 정보는 빈(empty) 상태로 표시될 수 있다. 예를 들어, 초기 데이터에 해당하는 참조 레이어 정보의 링크 정보는 빈 상태로 표시될 수 있다. 만약, 어떤 참조 레이어 정보의 참조 병렬화 전략이 해당 참조 레이어 정보의 참조 레이어에 최적화되어 있지 않은 경우, 해당 참조 레이어 정보의 링크 정보에는 최유사 참조 레이어의 식별 정보가 표시될 수 있다.
상술된 것처럼, 참조 데이터베이스에 동일 참조 레이어를 보유하지 않는 대상 레이어의 경우, 해당 대상 레이어의 참조 레이어 정보가 참조 데이터베이스에 새롭게 추가될 수 있다. 이 경우, 새로운 참조 레이어 정보가 참조 데이터베이스에 추가될 당시 새로운 참조 레이어 정보의 링크 정보에는 대상 레이어의 최유사 참조 레이어의 식별 정보가 표시될 수 있다. 이후에, 해당 대상 레이어를 위해 최적의 병렬화 전략이 새롭게 생성된 경우, 새로운 참조 레이어 정보의 참조 병렬화 전략은 새롭게 생성된 병렬화 전략으로 업데이트될 수 있고, 새로운 참조 레이어 정보의 링크 정보는 빈 상태로 변경될 수 있다.
도 5는 일 실시예에 따른 새로운 병렬화 전략의 생성과 관련된 동작들을 나타낸 동작 흐름도이다. 도 5를 참조하면, 단계(510)에서 병렬 처리 장치는 업데이트 조건의 만족 여부를 결정한다. 예를 들어, 업데이트 조건은 참조 데이터 베이스에 추가된 새로운 참조 레이어 정보의 양(예: 10개의 항목), 이전의 업데이트 이후 경과된 시간(예: 1일, 1주일 등) 등에 기초하여 설정될 수 있다. 이때, 10개, 1일, 1주일과 같은 수치가 임계치로서 설정될 수 있다. 일례로, 참조 데이터 베이스에 새로운 참조 레이어의 항목들이 10개가 추가되는 것이 업데이트 조건일 수 있다. 이 경우, 새로운 참조 레이어의 항목들이 10개가 추가된 이후, 단계들(520, 530, 540)이 수행될 수 있다.
단계(520)에서 병렬 처리 장치는 각 새로운 참조 레이어에 관해 새로운 병렬화 전략을 생성한다. 예를 들어, 병렬 처리 장치는 새로운 참조 레이어에 관한 프로파일링, 시뮬레이션 등을 수행하여 새로운 참조 레이어를 위한 최적의 병렬화 전략을 생성할 수 있다. 이 경우, 기존에 오프라인 프로파일링, 시뮬레이션을 처리하는 것에 비해 배치 처리 단위가 작아질 수 있다. 작은 배치 처리 단위의 프로파일링은 전체 모델에 대한 오프라인 프로파일링, 시뮬레이션이 아니므로 요구되는 시간이 기존의 오프라인 프로파일링, 시뮬레이션에 비해 적을 수 있다.
새로운 병렬화 전략이 생성되면, 병렬 처리 장치는 단계(530)에서 참조 데이터베이스를 업데이트하고, 단계(540)에서 유사도 측정기(예: 유사도 측정 모듈)를 재트레이닝한다. 예를 들어, 병렬 처리 장치는 참조 데이터베이스의 새로운 참조 레이어 정보에 참조 병렬화 전략으로 기록되어 있던 최유사 참조 레이어의 병렬화 전략을 대신하여 새롭게 생성된 병렬화 전략을 기록할 수 있다. 또한, 병렬 처리 장치는 업데이트된 참조 데이터베이스에 기초하여 유사도 측정기를 재트레이닝할 수 있다. 상술된 것처럼, 유사도 측정 모듈은 참조 데이터베이스에 기초하여 트레이닝될 수 있다. 새로운 병렬화 전략의 생성에 따라 참조 데이터베이스가 업데이트되었으므로, 업데이트된 참조 데이터베이스에 기초하여 유사도 측정 모듈이 재트레이닝될 수 있다. 단계(540)이 완료된 이후, 단계(510)이 다시 수행될 수 있다.
새로운 병렬화 전략의 생성과 관련된 도 5의 단계들(510 내지 540)은 대상 레이어의 병렬 처리와 관련된 도 4의 단계들(410 내지 440)과 독립적으로 수행될 수 있다. 예를 들어, 대상 레이어의 병렬 처리가 수행되는 동안, 백그라운드에서 새로운 병렬화 전략의 생성과 관련된 동작이 수행될 수 있다. 또한, 참조 데이터베이스의 업데이트 또는 유사도 측정기의 재트레이닝이 완료되기 전까지, 기존의 참조 데이터베이스에서 병렬화 전략이 선택될 수 있다. 이러한 일련의 동작들의 독립성을 통해 런타임에서 병렬 처리를 수행할 수 있는 속도가 확보될 수 있다. 또한, 업데이트가 완전히 종료되기 전까지 기존의 데이터를 이용함으로써 병렬 처리의 안정성이 유지될 수 있다.
도 6은 일 실시예에 따른 업데이트 전후의 참조 데이터베이스를 나타낸 도면이다. 도 6을 참조하면, 참조 데이터베이스(610)는 업데이트 전의 각 참조 레이어 정보(611 내지 616)를 저장하고, 참조 데이터베이스(620)는 업데이트 후의 각 참조 레이어 정보(631 내지 636)를 저장한다.
각 참조 레이어 정보(611 내지 616, 631 내지 636)는 참조 레이어의 식별 정보(ID#1 내지 ID#6), 참조 메타 데이터(RMD#1 내지 RMD#6), 참조 병렬화 전략(RDP#1 내지 RDP#6), 링크 정보(empty, ID#2, ID#4) 등을 포함할 수 있다. 예를 들어, 제1 참조 레이어 정보(611, 631), 제2 참조 레이어 정보(612, 632), 및 제3 참조 레이어 정보(613, 633)는 초기 데이터에 해당할 수 있다. 상술된 것처럼, 초기 데이터는 시뮬레이팅 및 프로파일링과 같은 과정을 통해 오프라인에서 수립된 병렬화 전략을 포함할 수 있다. 따라서, 제1 참조 레이어 정보(611, 631), 제2 참조 레이어 정보(612, 632), 및 제3 참조 레이어 정보(613, 633)의 링크 정보는 빈 상태로 표시될 수 있다.
또한, 제4 참조 레이어 정보(614) 및 제6 참조 레이어 정보(616)는 동일 참조 레이어의 부존재로 인해 참조 데이터베이스(610)에 새롭게 추가된 것일 수 있다. 따라서, 제4 참조 레이어 정보(614)의 링크 정보로 제2 참조 레이어의 식별 정보(ID#2)가 표시되어 있고, 제4 참조 레이어 정보(614)의 참조 병렬화 전략으로 제2 참조 레이어의 참조 병렬화 전략(RDP#2)이 표시되어 있다. 유사하게, 제6 참조 레이어 정보(616)의 링크 정보로 제4 참조 레이어의 식별 정보(ID#4)가 표시되어 있고, 제6 참조 레이어 정보(616)의 참조 병렬화 전략으로 제2 참조 레이어의 참조 병렬화 전략(RDP#2)이 표시되어 있다. 제4 참조 레이어 정보(614)가 참조 데이터베이스(610)에 추가된 후, 참조 데이터베이스(610)가 업데이트되기 전에, 제6 참조 레이어 정보(616)가 참조 데이터베이스(610)에 추가된 상황으로 이해될 수 있다.
상술된 것처럼, 병렬 처리 장치는 업데이트 조건이 만족됨에 따라 참조 데이터베이스(610)를 업데이트할 수 있다. 예를 들어, 전략 관리자(620)의 시뮬레이터(621)는 제4 참조 레이어 및 제6 참조 레이어를 위한 새로운 병렬화 전략들(RDP#4, RDP#6)을 생성할 수 있고, 병렬 처리 장치는 이들에 근거하여 제4 참조 레이어 정보(614) 및 제6 참조 레이어 정보(616)를 업데이트할 수 있다. 또한, 병렬 처리 장치는 제4 참조 레이어 정보(614) 및 제6 참조 레이어 정보(616)의 링크 정보를 빈 상태로 변경할 수 있다. 제4 참조 레이어 정보(634) 및 제6 참조 레이어 정보(636)는 최종적으로 업데이트된 상태를 나타낸다.
도 7은 본 명세서의 일 실시예에 따른 병렬 처리 과정을 전반적으로 나타낸 동작 흐름도이다. 도 7을 참조하면, 병렬 처리 장치는 단계(710)에서 대상 모델 내의 대상 레이어의 메타 데이터를 추출하고, 단계(720)에서 대상 레이어의 메타 데이터를 참조 레이어들 각각의 참조 메타 데이터와 비교하여, 대상 레이어와 참조 레이어들 각각 간의 유사도를 측정하고, 단계(730)에서 유사도에 기초하여, 참조 레이어들 중에 대응 레이어를 선택하고, 단계(740)에서 대응 레이어에 매칭된 참조 병렬화 전략에 기초하여, 대상 레이어에 관한 병렬화 전략을 생성한다. 그 밖에, 도 1 내지 도 6을 통해 설명된 사항이 병렬 처리 과정에 적용될 수 있다.
도 8은 본 명세서의 일 실시예에 따른 병렬 처리 장치를 나타낸 블록도이다. 도 8을 참조하면, 병렬 처리 장치(800)는 프로세서(810) 및 메모리(820)를 포함한다. 메모리(820)는 프로세서(810)에 연결되고, 프로세서(810)에 의해 실행가능한 명령어들, 프로세서(810)가 연산할 데이터 또는 프로세서(810)에 의해 처리된 데이터를 저장할 수 있다. 메모리(820)는 비일시적인 컴퓨터 판독가능 매체, 예컨대 고속 랜덤 액세스 메모리 및/또는 비휘발성 컴퓨터 판독가능 저장 매체(예컨대, 하나 이상의 디스크 저장 장치, 플래쉬 메모리 장치, 또는 기타 비휘발성 솔리드 스테이트 메모리 장치)를 포함할 수 있다.
프로세서(810)는 도 1 내지 도 7을 참조하여 설명된 하나 이상의 동작을 실행하기 위한 명령어들을 실행할 수 있다. 예를 들어, 프로세서(810)는 대상 모델 내의 대상 레이어의 메타 데이터를 추출하고, 대상 레이어의 메타 데이터를 참조 레이어들 각각의 참조 메타 데이터와 비교하여, 대상 레이어와 참조 레이어들 각각 간의 유사도를 측정하고, 유사도에 기초하여, 참조 레이어들 중에 대응 레이어를 선택하고, 대응 레이어에 매칭된 참조 병렬화 전략에 기초하여, 대상 레이어에 관한 병렬화 전략을 생성할 수 있다.
도 9는 본 명세서의 일 실시예에 따른 전자 장치를 나타낸 블록도이다. 전자 장치(900)는 도 1의 병렬 처리 장치(100) 및/또는 도 8의 병렬 처리 장치(800)를 구조적 및/또는 기능적으로 포함할 수 있다.
도 9를 참조하면, 전자 장치(900)는 프로세서(910), 메모리(920), 카메라(930), 저장 장치(940), 입력 장치(950), 출력 장치(960) 및 네트워크 인터페이스(970)를 포함할 수 있다. 프로세서(910), 메모리(920), 카메라(930), 저장 장치(940), 입력 장치(950), 출력 장치(960) 및 네트워크 인터페이스(970)는 통신 버스(980)를 통해 서로 통신할 수 있다. 예를 들어, 전자 장치(900)는 이동 전화, 스마트 폰, PDA, 넷북, 태블릿 컴퓨터, 랩톱 컴퓨터 등과 같은 모바일 장치, 스마트 워치, 스마트 밴드, 스마트 안경 등과 같은 웨어러블 디바이스, 데스크탑, 서버 등과 같은 컴퓨팅 장치, 텔레비전, 스마트 텔레비전, 냉장고 등과 같은 가전 제품, 도어 락 등과 같은 보안 장치, 스마트 차량 등과 같은 차량의 적어도 일부로 구현될 수 있다.
프로세서(910)는 전자 장치(900) 내에서 실행하기 위한 기능 및 명령어들을 실행한다. 예를 들어, 프로세서(910)는 메모리(920) 또는 저장 장치(940)에 저장된 명령어들을 처리할 수 있다. 프로세서(910)는 도 1 내지 도 8을 통하여 설명된 하나 이상의 동작을 수행할 수 있다.
메모리(920)는 얼굴 검출을 위한 데이터를 저장한다. 메모리(920)는 컴퓨터 판독가능한 저장 매체 또는 컴퓨터 판독가능한 저장 장치를 포함할 수 있다. 메모리(920)는 프로세서(910)에 의해 실행하기 위한 명령어들을 저장할 수 있고, 전자 장치(900)에 의해 소프트웨어 및/또는 애플리케이션이 실행되는 동안 관련 정보를 저장할 수 있다.
카메라(930)는 사진 및/또는 비디오를 촬영할 수 있다. 예를 들어, 카메라(930)는 사용자의 얼굴을 포함하는 얼굴 영상, 사용자의 눈을 포함하는 눈 영상, 사용자의 홍채를 포함하는 홍채 영상 등을 촬영할 수 있다. 일 실시예에 따르면, 카메라(930)는 객체들에 관한 깊이 정보를 포함하는 3D 영상을 제공할 수 있다.
저장 장치(940)는 컴퓨터 판독가능한 저장 매체 또는 컴퓨터 판독가능한 저장 장치를 포함한다. 저장 장치(940)는 대상 모델, 런타임 엔진, 참조 데이터베이스, 전략 관리자, 유사도 측정기와 같은 병렬 처리 과정에서 사용되는 각종 모듈/데이터를 저장할 수 있다. 일 실시예에 따르면, 저장 장치(940)는 메모리(920)보다 더 많은 양의 정보를 저장하고, 정보를 장기간 저장할 수 있다. 예를 들어, 저장 장치(940)는 자기 하드 디스크, 광 디스크, 플래쉬 메모리, 플로피 디스크 또는 이 기술 분야에서 알려진 다른 형태의 비휘발성 메모리를 포함할 수 있다.
입력 장치(950)는 키보드 및 마우스를 통한 전통적인 입력 방식, 및 터치 입력, 음성 입력, 및 이미지 입력과 같은 새로운 입력 방식을 통해 사용자로부터 입력을 수신할 수 있다. 예를 들어, 입력 장치(950)는 키보드, 마우스, 터치 스크린, 마이크로폰, 또는 사용자로부터 입력을 검출하고, 검출된 입력을 전자 장치(900)에 전달할 수 있는 임의의 다른 장치를 포함할 수 있다.
출력 장치(960)는 시각적, 청각적 또는 촉각적인 채널을 통해 사용자에게 전자 장치(900)의 출력을 제공할 수 있다. 출력 장치(960)는 예를 들어, 디스플레이, 터치 스크린, 스피커, 진동 발생 장치 또는 사용자에게 출력을 제공할 수 있는 임의의 다른 장치를 포함할 수 있다. 네트워크 인터페이스(970)는 유선 또는 무선 네트워크를 통해 외부 장치와 통신할 수 있다.
이상에서 설명된 실시예들은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치, 방법 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(Arithmetic Logic Unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(Field Programmable Gate Array), PLU(Programmable Logic Unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.

Claims (20)

  1. 뉴럴 네트워크 기반의 대상 모델을 위한 병렬 처리 방법에 있어서,
    상기 대상 모델 내의 대상 레이어의 메타 데이터를 추출하는 단계;
    상기 대상 레이어의 상기 메타 데이터를 참조 레이어들 각각의 참조 메타 데이터와 비교하여, 상기 대상 레이어와 상기 참조 레이어들 각각 간의 유사도를 측정하는 단계;
    상기 유사도에 기초하여, 상기 참조 레이어들 중에 대응 레이어를 선택하는 단계; 및
    상기 대응 레이어에 매칭된 참조 병렬화 전략에 기초하여, 상기 대상 레이어에 관한 병렬화 전략을 생성하는 단계
    를 포함하는, 병렬 처리 방법.
  2. 제1항에 있어서,
    상기 대응 레이어를 선택하는 상기 단계는
    상기 참조 레이어들 중에 상기 대상 레이어의 상기 메타 데이터와 동일한 참조 메타 데이터를 가지는 제1 참조 레이어가 존재하는 경우, 상기 제1 참조 레이어를 상기 대응 레이어로 선택하는 단계; 및
    상기 참조 레이어들 중에 상기 제1 참조 레이어가 존재하지 않는 경우, 상기 참조 레이어들 중에 상기 대상 레이어의 상기 메타 데이터와 가장 유사한 참조 메타 데이터를 가지는 제2 참조 레이어를 상기 대응 레이어로 선택하는 단계
    를 포함하는, 병렬 처리 방법.
  3. 제2항에 있어서,
    상기 제2 참조 레이어가 상기 대응 레이어로 선택된 경우, 상기 대상 레이어의 상기 메타 데이터에 대응하는 참조 레이어 정보가 상기 참조 레이어들 각각의 상기 참조 메타 데이터가 저장된 참조 데이터베이스에 추가되는,
    병렬 처리 방법.
  4. 제3항에 있어서,
    상기 참조 레이어 정보는 링크 정보를 포함하고,
    상기 제2 참조 레이어가 상기 대응 레이어로 선택된 경우, 상기 제2 참조 레이어의 식별 정보가 상기 참조 레이어 정보에 상기 링크 정보로 기록되는,
    병렬 처리 방법.
  5. 제3항에 있어서,
    상기 병렬 처리 방법은
    상기 대상 레이어의 상기 메타 데이터에 대응하는 상기 참조 레이어 정보가 상기 참조 데이터베이스에 추가된 이후에, 상기 대상 레이어의 상기 메타 데이터에 대응하는 새로운 병렬화 전략을 생성하는 단계
    를 더 포함하는, 병렬 처리 방법.
  6. 제5항에 있어서,
    상기 새로운 병렬화 전략의 생성은 상기 대상 레이어에 관한 상기 병렬 처리의 수행과는 독립적으로 수행되는,
    병렬 처리 방법.
  7. 제5항에 있어서,
    상기 새로운 병렬화 전략의 생성은 상기 대상 레이어의 상기 메타 데이터에 대응하는 상기 참조 레이어 정보를 포함하는, 상기 참조 데이터베이스에 추가된 새로운 참조 레이어 정보의 양이 임계치를 초과하는 경우에 수행되는,
    병렬 처리 방법.
  8. 제5항에 있어서,
    상기 유사도는 뉴럴 네트워크 기반의 유사도 측정 모델을 이용하여 측정되고,
    상기 새로운 병렬화 전략이 생성된 이후에, 상기 유사도 측정 모델은 상기 새로운 병렬화 전략에 기초하여 재트레이닝되는,
    병렬 처리 방법.
  9. 제5항에 있어서,
    상기 새로운 병렬화 전략이 생성된 이후에, 상기 참조 레이어 정보의 링크 정보는 빈 상태로 변경되는,
    병렬 처리 방법.
  10. 제1항에 있어서,
    상기 병렬 처리 방법은
    상기 병렬화 전략에 따라 상기 대상 레이어에 관한 동작을 병렬 처리하는 단계를 더 포함하는,
    병렬 처리 방법.
  11. 제1항 내지 제10항 중 어느 한 항의 방법을 수행하는 명령어들을 포함하는 하나 이상의 프로그램을 저장한 컴퓨터 판독 가능 저장매체.
  12. 뉴럴 네트워크 기반의 대상 모델을 위한 병렬 처리 장치에 있어서,
    프로세서; 및
    상기 프로세서에서 실행가능한 명령어들을 포함하는 메모리
    를 포함하고,
    상기 명령어들이 상기 프로세서에서 실행되면, 상기 프로세서는
    상기 대상 모델 내의 대상 레이어의 메타 데이터를 추출하고, 상기 대상 레이어의 상기 메타 데이터를 참조 레이어들 각각의 참조 메타 데이터와 비교하여, 상기 대상 레이어와 상기 참조 레이어들 각각 간의 유사도를 측정하고, 상기 유사도에 기초하여, 상기 참조 레이어들 중에 대응 레이어를 선택하고, 상기 대응 레이어에 매칭된 참조 병렬화 전략에 기초하여, 상기 대상 레이어에 관한 병렬화 전략을 생성하는,
    병렬 처리 장치.
  13. 제12항에 있어서,
    상기 프로세서는
    상기 참조 레이어들 중에 상기 대상 레이어의 상기 메타 데이터와 동일한 참조 메타 데이터를 가지는 제1 참조 레이어가 존재하는 경우, 상기 제1 참조 레이어를 상기 대응 레이어로 선택하고,
    상기 참조 레이어들 중에 상기 제1 참조 레이어가 존재하지 않는 경우, 상기 참조 레이어들 중에 상기 대상 레이어의 상기 메타 데이터와 가장 유사한 참조 메타 데이터를 가지는 제2 참조 레이어를 상기 대응 레이어로 선택하는,
    병렬 처리 장치.
  14. 제13항에 있어서,
    상기 제2 참조 레이어가 상기 대응 레이어로 선택된 경우, 상기 대상 레이어의 상기 메타 데이터에 대응하는 참조 레이어 정보를 상기 참조 레이어들 각각의 상기 참조 메타 데이터가 저장된 참조 데이터베이스에 추가하는,
    병렬 처리 장치.
  15. 제14항에 있어서,
    상기 참조 레이어 정보는 링크 정보를 포함하고,
    상기 제2 참조 레이어가 상기 대응 레이어로 선택된 경우, 상기 프로세서는 상기 제2 참조 레이어의 식별 정보를 상기 참조 레이어 정보에 상기 링크 정보로 기록하는,
    병렬 처리 장치.
  16. 제14항에 있어서,
    상기 프로세서는
    상기 대상 레이어의 상기 메타 데이터에 대응하는 상기 참조 레이어 정보가 상기 참조 데이터베이스에 추가된 이후에, 상기 대상 레이어의 상기 메타 데이터에 대응하는 새로운 병렬화 전략을 생성하는,
    병렬 처리 장치.
  17. 제16항에 있어서,
    상기 유사도는 뉴럴 네트워크 기반의 유사도 측정 모델을 이용하여 측정되고,
    상기 새로운 병렬화 전략이 생성된 이후에, 상기 유사도 측정 모델은 상기 새로운 병렬화 전략에 기초하여 재트레이닝되는,
    병렬 처리 장치.
  18. 제16항에 있어서,
    상기 유사도는 뉴럴 네트워크 상기 새로운 병렬화 전략이 생성된 이후에, 상기 참조 레이어 정보의 링크 정보는 빈 상태로 변경되는,
    병렬 처리 장치.
  19. 전자 장치에 있어서,
    프로세서; 및
    상기 프로세서에서 실행가능한 명령어들을 포함하는 메모리
    를 포함하고,
    상기 명령어들이 상기 프로세서에서 실행되면, 상기 프로세서는
    뉴럴 네트워크 기반의 대상 모델 내의 대상 레이어의 메타 데이터를 추출하고, 상기 대상 레이어의 상기 메타 데이터를 참조 레이어들 각각의 참조 메타 데이터와 비교하여, 상기 대상 레이어와 상기 참조 레이어들 각각 간의 유사도를 측정하고, 상기 유사도에 기초하여, 상기 참조 레이어들 중에 대응 레이어를 선택하고, 상기 대응 레이어에 매칭된 참조 병렬화 전략에 기초하여, 상기 대상 레이어에 관한 병렬화 전략을 생성하는,
    전자 장치.
  20. 제19항에 있어서,
    상기 프로세서는
    상기 참조 레이어들 중에 상기 대상 레이어의 상기 메타 데이터와 동일한 참조 메타 데이터를 가지는 제1 참조 레이어가 존재하는 경우, 상기 제1 참조 레이어를 상기 대응 레이어로 선택하고,
    상기 참조 레이어들 중에 상기 제1 참조 레이어가 존재하지 않는 경우, 상기 참조 레이어들 중에 상기 대상 레이어의 상기 메타 데이터와 가장 유사한 참조 메타 데이터를 가지는 제2 참조 레이어를 상기 대응 레이어로 선택하고,
    상기 제2 참조 레이어가 상기 대응 레이어로 선택된 경우, 상기 대상 레이어의 상기 메타 데이터에 대응하는 참조 레이어 정보를 상기 참조 레이어들 각각의 상기 참조 메타 데이터가 저장된 참조 데이터베이스에 추가하는,
    전자 장치.
KR1020200032233A 2020-03-16 2020-03-16 뉴럴 네트워크 모델을 위한 병렬 처리 방법 및 장치 KR20210115863A (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020200032233A KR20210115863A (ko) 2020-03-16 2020-03-16 뉴럴 네트워크 모델을 위한 병렬 처리 방법 및 장치
US17/023,496 US20210287085A1 (en) 2020-03-16 2020-09-17 Parallel processing method and apparatus for neutral network model
CN202011450974.1A CN113408693A (zh) 2020-03-16 2020-12-09 识别图像的方法和设备
EP21151178.7A EP3889842A1 (en) 2020-03-16 2021-01-12 Parallel processing method and apparatus for neural network model

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200032233A KR20210115863A (ko) 2020-03-16 2020-03-16 뉴럴 네트워크 모델을 위한 병렬 처리 방법 및 장치

Publications (1)

Publication Number Publication Date
KR20210115863A true KR20210115863A (ko) 2021-09-27

Family

ID=74175672

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200032233A KR20210115863A (ko) 2020-03-16 2020-03-16 뉴럴 네트워크 모델을 위한 병렬 처리 방법 및 장치

Country Status (4)

Country Link
US (1) US20210287085A1 (ko)
EP (1) EP3889842A1 (ko)
KR (1) KR20210115863A (ko)
CN (1) CN113408693A (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20240048152A1 (en) * 2022-08-03 2024-02-08 Arm Limited Weight processing for a neural network
CN115600671B (zh) * 2022-10-20 2023-06-20 北京百度网讯科技有限公司 深度学习框架的数据处理方法、装置、设备和存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8387034B2 (en) * 2005-12-21 2013-02-26 Management Services Group, Inc. System and method for the distribution of a program among cooperating processing elements
EP3570220B1 (en) * 2017-01-13 2023-10-11 KDDI Corporation Information processing method, information processing device, and computer-readable storage medium
EP3673381A1 (en) * 2017-08-25 2020-07-01 Telefonaktiebolaget LM Ericsson (PUBL) Apparatus and method for training a similarity model used to predict similarity between items
WO2021095162A1 (ja) * 2019-11-13 2021-05-20 日本電信電話株式会社 分散深層学習システムおよびデータ転送方法

Also Published As

Publication number Publication date
US20210287085A1 (en) 2021-09-16
CN113408693A (zh) 2021-09-17
EP3889842A1 (en) 2021-10-06

Similar Documents

Publication Publication Date Title
US11741361B2 (en) Machine learning-based network model building method and apparatus
US10565475B2 (en) Generating a machine learning model for objects based on augmenting the objects with physical properties
US11521067B2 (en) Decentralized distributed deep learning
Tong et al. Directed graph contrastive learning
CN111406267A (zh) 使用性能预测神经网络的神经架构搜索
EP4163833A1 (en) Deep neural network model design enhanced by real-time proxy evaluation feedback
US11681913B2 (en) Method and system with neural network model updating
US10732694B2 (en) Power state control of a mobile device
US20200202199A1 (en) Neural network processing method and apparatus based on nested bit representation
KR102293791B1 (ko) 반도체 소자의 시뮬레이션을 위한 전자 장치, 방법, 및 컴퓨터 판독가능 매체
EP3822864A1 (en) Method and apparatus with deep neural network model fusing
KR20210115863A (ko) 뉴럴 네트워크 모델을 위한 병렬 처리 방법 및 장치
CN114072809A (zh) 经由神经架构搜索的小且快速的视频处理网络
KR20220056621A (ko) 매니코어 시스템을 위한 뉴럴 네트워크 모델 처리의 병렬화 방법 및 장치
KR20230108075A (ko) 객체 인식 방법 및 장치
US20220121924A1 (en) Configuring a neural network using smoothing splines
CN117011118A (zh) 模型参数更新方法、装置、计算机设备以及存储介质
US20200257980A1 (en) Training optimization for neural networks with batch norm layers
US20230229570A1 (en) Graph machine learning for case similarity
WO2023122854A1 (zh) 数据处理的方法和装置
CN117999560A (zh) 机器学习模型的硬件感知渐进训练
CN116710974A (zh) 在合成数据系统和应用程序中使用域对抗学习的域适应
KR20230081214A (ko) 뉴럴 네트워크의 분산 학습을 수행하는 학습 방법 및 이를 수행하는 학습 장치
KR20220133567A (ko) 객체 추적 방법 및 장치
US20220222538A1 (en) Method and apparatus with neural network processing

Legal Events

Date Code Title Description
A201 Request for examination