KR20230049468A - 복수의 서브 그래프들에 대한 인공 신경망 연산을 수행하는 인공 신경망 모듈 및 이의 동작 방법 - Google Patents

복수의 서브 그래프들에 대한 인공 신경망 연산을 수행하는 인공 신경망 모듈 및 이의 동작 방법 Download PDF

Info

Publication number
KR20230049468A
KR20230049468A KR1020210132679A KR20210132679A KR20230049468A KR 20230049468 A KR20230049468 A KR 20230049468A KR 1020210132679 A KR1020210132679 A KR 1020210132679A KR 20210132679 A KR20210132679 A KR 20210132679A KR 20230049468 A KR20230049468 A KR 20230049468A
Authority
KR
South Korea
Prior art keywords
neural network
hardware
network module
artificial neural
subgraph
Prior art date
Application number
KR1020210132679A
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 KR1020210132679A priority Critical patent/KR20230049468A/ko
Priority to US17/950,449 priority patent/US20230105810A1/en
Priority to EP22197953.7A priority patent/EP4163791A1/en
Priority to CN202211207619.0A priority patent/CN115965063A/zh
Priority to TW111137764A priority patent/TW202324212A/zh
Publication of KR20230049468A publication Critical patent/KR20230049468A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • 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
    • 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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • 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
    • 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/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • 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
    • 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
    • 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/02Knowledge representation; Symbolic representation
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Biophysics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Neurology (AREA)
  • Feedback Control In General (AREA)
  • Time Recorders, Dirve Recorders, Access Control (AREA)
  • Traffic Control Systems (AREA)
  • Power Sources (AREA)

Abstract

일실시예에 따르면, 복수의 서브 그래프들에 대한 인공 신경망 연산을 수행하는 인공 신경망 모듈의 동작 방법은 상기 복수의 서브 그래프들 중 대상 서브 그래프에 대응하여 리소스 결정 트리거를 생성하는 단계, 상기 리소스 결정 트리거에 응답하여 상기 대상 서브 그래프에 할당되는 하드웨어 및 구동 리소스(resource) 설정에 대한 제어 신호를 생성하는 단계, 상기 제어 신호에 응답하여 상기 대상 서브 그래프에 할당되는 하드웨어 및 구동 리소스 설정 중 적어도 하나를 변경하는 단계, 및 상기 변경된 하드웨어 및 구동 리소스 설정에 기초하여 상기 대상 서브 그래프에 대한 연산을 수행하는 단계를 포함할 수 있다.

Description

복수의 서브 그래프들에 대한 인공 신경망 연산을 수행하는 인공 신경망 모듈 및 이의 동작 방법{An artificial neural network module for performing an artificial neural network operation on a plurality of subgraphs and an operating method thereof}
본 개시의 기술적 사상은 인공 신경망 모듈에 관한 것으로, 더욱 상세하게는, 복수의 서브 그래프들로 구성된 학습 모델의 연산을 수행하는 인공 신경망 및 이의 동작 방법에 관한 것이다.
인공 신경망(artificial neural network; ANN)은 생물학적 뇌를 모델링한 컴퓨터 과학적 아키텍쳐(computational architecture)를 참조한다. 인공 신경망에 기초하여 딥러닝(deep learning) 또는 기계 학습(machine learning) 등이 구현될 수 있다. 최근 인공 신경망을 이용하여 처리해야 할 연산이 비약적으로 증가함에 따라, 인공 신경망을 이용한 연산 처리를 효율적으로 수행하기 위한 필요성이 요구되고 있다.
본 개시의 기술적 사상이 해결하려는 과제는, 상황에 따라 효율적으로 뉴럴 네트워크 연산을 수행할 하드웨어를 할당하는 방법을 제공하는 데에 있다.
일실시예에 따르면, 복수의 서브 그래프들에 대한 인공 신경망 연산을 수행하는 인공 신경망 모듈의 동작 방법은 상기 복수의 서브 그래프들 중 대상 서브 그래프에 대응하여 리소스 결정 트리거를 생성하는 단계, 상기 리소스 결정 트리거에 응답하여 상기 대상 서브 그래프에 할당되는 하드웨어 및 구동 리소스(resource) 설정에 대한 제어 신호를 생성하는 단계, 상기 제어 신호에 응답하여 상기 대상 서브 그래프에 할당되는 하드웨어 및 구동 리소스 설정 중 적어도 하나를 변경하는 단계, 및 상기 변경된 하드웨어 및 구동 리소스 설정에 기초하여 상기 대상 서브 그래프에 대한 연산을 수행하는 단계를 포함할 수 있다.
아울러, 복수의 서브 그래프들에 대한 인공 신경망 연산을 수행하는 인공 신경망 모듈은 클락 신호에 기초하여 상기 복수의 서브 그래프들 중 대상 서브 그래프에 대응되는 리소스 결정 트리거를 생성하는 태스크 스케쥴러, 상기 리소스 결정 트리거에 응답하여 상기 대상 서브 그래프에 할당되는 하드웨어 및 구동 리소스(resource) 설정에 대한 제어 신호를 생성하는 컨트롤 매니저, 및 상기 제어 신호에 응답하여 상기 대상 서브 그래프에 할당되는 하드웨어 및 구동 리소스 설정 중 적어도 하나를 변경하는 디스패처(dispatcher)를 포함할 수 있다.
일실시예에 따르면, 복수의 서브 그래프들에 대한 인공 신경망 연산을 수행하는 전자 장치는 상기 서브 그래프들에 대응되는 연산을 수행하는 컴퓨팅 장치, 상기 컴퓨팅 장치로 데이터를 제공하고, 상기 컴퓨팅 장치에 의해 생성된 데이터를 수신하는 입출력 장치, 상기 서브 그래프들 중 대상 서브 그래프에 대응되는 리소스 결정 트리거에 응답하여 상기 컴퓨팅 장치 및 상기 입출력 장치에 대한 할당 및 구동 리소스(resource) 설정 중 적어도 하나를 변경하는 인공 신경망 모듈을 포함할 수 있다.
본 개시의 기술적 사상에 따른 인공 신경망 모듈은 복수의 서브 그래프들로 구성된 학습 모델에 대해 연산할 때, 복수의 서브 그래프들 중 적어도 일부 서브 그래프에서 연산 처리에 할당된 하드웨어 및 구동 리소스 설정을 변경할 수 있으므로, 하나의 입력 데이터를 처리할 때에도 효율적으로 연산을 수행할 수 있다.
본 개시의 예시적 실시예들에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 아니하며, 언급되지 아니한 다른 효과들은 이하의 기재로부터 본 개시의 예시적 실시예들이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 도출되고 이해될 수 있다. 즉, 본 개시의 예시적 실시예들을 실시함에 따른 의도하지 아니한 효과들 역시 본 개시의 예시적 실시예들로부터 당해 기술분야의 통상의 지식을 가진 자에 의해 도출될 수 있다.
도 1은 본 개시의 실시예에 따른 전자 장치의 구성을 도시한 블록도이다.
도 2는 일실시예에 따른 인공 신경망 모듈을 도시한 블록도이다.
도 3은 일실시예에 따른 인공 신경망 매니저를 도시한 블록도이다.
도 4는 일실시예에 따라 대상 서브 그래프에 대해 인공 신경망 연산을 수행하는 방법을 도시한 흐름도이다.
도 5는 일실시예에 따라 복수의 서브 그래프들로 구분된 학습 모델을 도시한 블록도이다.
도 6은 일실시예에 따른 서브 그래프에 대응되어 생성되는 리소스 결정 트리거 및 변경되는 주파수, 제어 전압을 도시한 타이밍도이다.
도 7은 일실시예에 따라 예상 레이턴시에 따라 리소스 결정 트리거를 출력하는 시간을 결정하는 방법을 도시한 흐름도이다.
도 8은 일실시예에 따라 예상 레이턴시가 적용된 리소스 결정 트리거를 도시한 타이밍도이다.
도 9는 일실시예에 따라 메타 데이터에 기초하여 대상 서브 그래프에 대해 서로 다른 설정을 적용하는 방법을 도시한 흐름도이다.
도 10은 일실시예에 따라 결정된 하드웨어에 대해 구동 리소스 설정을 결정하는 방법을 도시한 흐름도이다.
이하, 첨부한 도면을 참조하여 본 개시의 실시 예에 대해 상세히 설명한다.
도 1은 본 개시의 실시예에 따른 전자 장치의 구성을 도시한 블록도이다.
도 1은 본 개시의 예시적인 실시예에 따른 전자 장치를 나타내는 블록도이다.
도 1의 전자 장치(100)은 뉴럴 네트워크를 기초로 입력 데이터를 실시간으로 분석하여 유효한 정보를 추출하고, 추출된 정보를 기초로 상황 판단을 하거나 또는 전자 장치(100)에 탑재되는 전자 장치의 구성들을 제어할 수 있다.
도 1의 전자 장치(100)은 모바일 장치에 채용되는 애플리케이션 프로세서(Application Processor, AP)일 수 있다. 또는, 도 1의 전자 장치(100)은 컴퓨팅 시스템에 해당하거나, 드론(drone), 첨단 운전자 보조 시스템(Advanced Drivers Assistance System; ADAS) 등과 같은 로봇 장치, 스마트 TV, 스마트 폰, 의료 장치, 모바일 장치, 영상 표시 장치, 계측 장치, IoT(Internet of Things) 장치 등에 해당될 수 있다. 이하에서는, 도 1의 전자 장치(100)이 애플리케이션 프로세서(AP)에 해당하는 것으로 가정된다.
도 1을 참조하면, 전자 장치(100)은 프로세서(110), 뉴럴 네트워크 모듈(120), 연산 장치(130), RAM(140)(Random Access Memory), 메모리(150), 및 프로파일러(160)를 포함할 수 있다. 일 실시예에 있어서, 전자 장치(100)의 구성들 중 적어도 일부는 하나의 반도체 칩에 탑재될 수 있다. 프로세서(110), 뉴럴 네트워크 모듈(120), 연산 장치(130), RAM(140), 메모리(150), 및 프로파일러(160) 각각은 데이터 버스를 통해 데이터를 송수신할 수 있다.
전자 장치(100)이 뉴럴 네트워크 연산 기능을 수행하는 점에서, 전자 장치(100)은 뉴럴 네트워크 시스템을 포함하는 것으로 정의될 수 있다. 뉴럴 네트워크 시스템은 뉴럴 네트워크 동작과 관련하여, 전자 장치(100)에 구비되는 구성들 중 적어도 일부를 포함할 수 있다. 일 예로서, 도 1에는 뉴럴 네트워크 시스템이 프로세서(110), 뉴럴 네트워크 모듈(120), 연산 장치(130)를 포함하는 것으로 예시되었으나 이에 국한될 필요가 없다. 예컨대, 뉴럴 네트워크 동작에 관여되는 다른 다양한 종류의 구성들이 뉴럴 네트워크 시스템에 포함되는 것으로 정의되어도 무방할 것이다.
프로세서(110)는 전자 장치(100)의 전반적인 동작을 제어한다. 프로세서(110)는 하나의 프로세서 코어(Single Core)를 포함하거나, 복수의 프로세서 코어들(Multi-Core)을 포함할 수 있다. 프로세서(110)는 메모리(150)에 저장된 프로그램들 및/또는 데이터를 처리 또는 실행할 수 있다. 일 실시예에 있어서, 프로세서(110)는 메모리(150)에 저장된 프로그램들을 실행함으로써, 뉴럴 네트워크 모듈(120) 및 연산 장치(130)의 기능을 제어할 수 있다.
RAM(140)은 프로그램들, 데이터, 또는 명령들(instructions)을 일시적으로 저장할 수 있다. 예컨대 메모리(150)에 저장된 프로그램들 및/또는 데이터는 프로세서(110)의 제어 또는 부팅 코드에 따라 RAM(140)에 일시적으로 저장될 수 있다. RAM(140)은 DRAM(Dynamic RAM) 또는 SRAM(Static RAM) 등의 메모리로 구현될 수 있다.
메모리(150)는 전자 장치(100)을 제어하는 제어 명령어코드, 제어 데이터 또는 사용자 데이터를 저장할 수 있다. 메모리(150)는 휘발성 메모리(volatile memory) 또는 불휘발성 메모리(nonvolatile memory) 중 적어도 하나를 포함할 수 있다. 예를 들어, 메모리(150)는 DRAM, SRAM, embedded DRAM 등으로 구현될 수 있다.
아울러, 본 개시의 실시예에 따른 메모리(150)는 하나의 뉴럴 네트워크 모델을 구성하는 복수의 서브 그래프들로 구성된 모델 데이터가 저장될 수 있고, 서브 그래프마다 메타 데이터가 매핑되어 저장될 수 있다. 다른 실시예에 따르면, 메모리(150)는 하드웨어에 대응되는 구동 리소스 설정을 저장할 수 있고, 예시적으로, 하드웨어마다 설정된 상황별 구동 리소스 설정을 저장할 수 있다. 이하에서는, 복수의 서브 그래프들은 하나의 뉴럴 네트워크 모델로 구성되는 것으로 설명될 수 있다.
뉴럴 네트워크 모듈(120)은 다양한 종류의 뉴럴 네트워크를 기초로 뉴럴 네트워크 기반 태스크들을 수행할 수도 있다. 뉴럴 네트워크에서 요구되는 연산들은 연산 장치(130)에서 실행될 수 있다. 뉴럴 네트워크 모듈(120)은 수행 결과로서 정보 신호를 생성할 수 있다. 정보 신호는 음성 인식 신호, 사물 인식 신호, 영상 인식 신호, 생체 정보 인식 신호 등과 같은 다양한 종류의 인식 신호 중 하나를 포함할 수 있다. 본 발명에서 뉴럴 네트워크 모듈(120)은 인공 신경망 모듈로 지칭될 수도 있다.
뉴럴 네트워크는 GoogLeNet, AlexNet, VGG Network 등과 같은 CNN(Convolution Neural Network), R-CNN(Region with Convolution Neural Network), RPN(Region Proposal Network), RNN(Recurrent Neural Network), S-DNN(Stacking-based deep Neural Network), S-SDNN(State-Space Dynamic Neural Network), Deconvolution Network, DBN(Deep Belief Network), RBM(Restricted Boltzman Machine), Fully Convolutional Network, LSTM(Long Short-Term Memory) Network, Classification Network 등 다양한 종류의 뉴럴 네트워크 모델들을 포함할 수 있으나 이에 제한되지 않는다. 또한, 하나의 태스크를 수행하는 뉴럴 네트워크는 서브 뉴럴 네트워크들을 포함할 수 있으며, 서브 뉴럴 네트워크들은 이종의 뉴럴 네트워크 모델로 구현될 수 있다.
한편, 전자 장치(100)는 다양한 종류의 애플리케이션들을 실행할 수 있으며, 애플리케이션들은 뉴럴 네트워크 모듈(120)에 동종 또는 이종의 뉴럴 네트워크 기반 태스크들의 수행을 요청할 수 있다. 이때, 태스크들의 수행을 위한 이종의 뉴럴 네트워크들이 동일한 서브 뉴럴 네트워크(즉, 동일한 뉴럴 네트워크 모델)를 포함하거나 또는 동일한 연산 그룹을 포함할 경우, 뉴럴 네트워크 모듈(120)은 이종의 뉴럴 네트워크들 실행 과정에서, 상기 서브 뉴럴 네트워크 또는 상기 연산 그룹이 동일한 연산 장치에서 단일 실행되도록 설정할 수 있다.
본 개시의 실시예에 따른 뉴럴 네트워크 모듈(120)은 복수의 서브 그래프들 별로 연산을 수행할 수 있도록 연산 장치(130) 및 메모리(150)를 제어할 수 있다. 이 때, 뉴럴 네트워크 모듈(120)은 프로세서(110) 또는 프로파일러(160)로부터 현재 연산 수행 상태와 관련된 정보를 수신할 수 있다. 뉴럴 네트워크 모듈(120)은 현재 연산 수행 상태에 따라 대상 서브 그래프에 할당되는 하드웨어를 결정할 수 있고, 할당된 하드웨어의 구동 리소스 설정을 결정할 수 있다.
할당되는 하드웨어 및 구동 리소스 설정을 결정한 뉴럴 네트워크 모듈(120)은 복수의 하드웨어들로 커맨드 신호를 송신하여 대상 서브 그래프에 대응되는 연산을 수행할 수 있다.
뉴럴 네트워크 모듈(120)은 다양한 형태로 구현될 수 있으며, 일 실시예에 따라 뉴럴 네트워크 모듈(120)은 소프트웨어 형태로 구현될 수 있다. 그러나, 이에 제한되는 것은 아니며, 뉴럴 네트워크 모듈(120)은 하드웨어 형태로 구현되거나, 또는 하드웨어와 소프트웨어의 조합으로 구현될 수 있다. 실시예에 있어서, 뉴럴 네트워크 모듈(120)은 운영 체제(OS)나 그 하위 단에 소프트웨어 형태로 구현될 수 있으며, 또한 메모리(150)에 로딩 가능한 프로그램들로 구현될 수 있다.
연산 장치(130)는 뉴럴 네트워크 모듈(120)의 제어 하에, 수신되는 입력 데이터에 대하여 연산을 실행(execution)할 수 있다. 연산 장치(130)는 CPU(Central Processing Unit), GPU(Graphic Processing Unit), NPU(Neural Processing Unit), DSP(Digital Signal Processor), FPGA(Field Programmable Gate array), ECU(Electronic Control Unit) 등의 프로세서를 포함할 수 있다. 또한, 연산 장치(130)는 연산 결과를 저장하기 위한 별도의 메모리(미도시)를 포함할 수도 있다. 연산 장치(130)에 포함되는 복수의 하드웨어 장치들 중 하나가 병합된 연산 그룹을 실행할 수 있다.
프로파일러(160)는 프로그램의 시간 복잡도 및 공간, 특정 명령어 이용, 함수 호출의 주기와 빈도 등을 측정함으로써 동적으로 뉴럴 네트워크 프로그램을 분석할 수 있다. 예시적으로, 프로파일러(160)는 프로그램 소스 코드 또는 이진 실행 파일을 계측 분석할 수 있다. 본 개시의 프로파일러(160)는 분석한 결과를 뉴럴 네트워크 모듈(120)로 제공할 수 있다. 뉴럴 네트워크 모듈(120)은 분석된 결과에 기초하여 연산 수행에 할당할 하드웨어를 결정하고, 할당된 하드웨어의 구동 리소스 설정을 결정할 수 있다.
도 2는 일실시예에 따른 뉴럴 네트워크 모듈을 도시한 블록도이다.
도 2를 참조하면, 본 개시의 뉴럴 네트워크 모듈(120)은 디스패처(121) 및 뉴럴 네트워크 매니저(122)를 포함할 수 있다. 뉴럴 네트워크 매니저(122)는 복수의 서브 그래프들마다 제어 신호(CTRL)를 디스패처(121)에 제공할 수 있고, 복수의 서브 그래프들 중 적어도 일부 서브 그래프에 대응되어 제어 신호(CTRL)를 변경할 수 있다. 제어 신호(CTRL)의 변경은 서브 그래프에 대한 연산을 수행하기 위해 할당되는 하드웨어 및 구동 리소스 설정의 변경을 의미할 수도 있다.
구동 리소스 설정은 DVFS(Dynamic Voltage Frequency Scaling) 레벨 정보, 신호 전송 대역폭 정보, 라스트 레벨 캐시(Last Level Cache; LLC) 할당 정보, 온도 제어 정보, 및 PMIC(Power Management Integrated Circuit) 제어 정보 중 적어도 하나를 포함할 수 있다.
DVFS 레벨 정보는 성능 최적화를 위해 동적으로 변경되는 시스템의 코어 전압 및 주파수 정보일 수 있다. 예시적으로, 뉴럴 네트워크 매니저(122)는 높은 성능이 요구되는 하드웨어에 높은 레벨의 DVFS 레벨 정보를 제공하도록 제어 신호(CTRL)를 출력할 수 있다. 이에 반해, 뉴럴 네트워크 매니저(122)는 전력 손실을 최소화하기 위해 낮은 성능으로도 연산을 수행할 수 있는 하드웨어에 낮은 레벨의 DVFS 레벨 정보를 제공하도록 제어 신호(CTRL)를 출력할 수 있다.
신호 전송 대역폭 정보는 메모리 인터페이스의 대역폭 정보일 수 있고, 많은 양의 데이터를 전송하기 위해 높은 주파수 대역폭으로 데이터를 송수신하도록 제어하는 제어 신호(CTRL)를 출력할 수 있다.
라스트 레벨 캐시 할당 정보는 연산 하드웨어에 포함된 캐시 메모리에서 라스트 레벨 캐시로 할당되는 영역의 비율에 관한 정보일 수 있다. 예시적으로, 뉴럴 네트워크 모듈(120)이 더 빠른 속도로 연산을 수행할 것을 요구하는 경우, 뉴럴 네트워크 매니저(122)는 연산 하드웨어에 더 많은 부분을 라스트 레벨 캐시로 할당하도록 설정할 수 있다.
온도 제어 정보는 DTM(Dynamic Thermal Management) 정보로 지칭될 수도 있다. 뉴럴 네트워크 매니저(122)는 연산 하드웨어의 전압 또는 주파수를 조절함으로써 온도를 제어할 수 있도록 제어 신호(CTRL)를 출력할 수 있다. 예시적으로, 뉴럴 네트워크 매니저(122)는 연산 하드웨어가 임계 온도 이상으로 상승한 경우, 온도를 낮추기 위해 전압 및 주파수를 낮추도록 제어 신호(CTRL)를 출력할 수 있다.
PMIC 정보는 각 하드웨어로 제공되는 전원 전압을 조절하는 정보일 수 있다. 예시적으로, 연산 하드웨어가 높은 성능으로 동작하도록 요청된 경우, 뉴럴 네트워크 매니저(122)는 PMIC가 높은 전원 전압을 출력할 수 있도록 제어 신호(CTRL)를 출력할 수 있다. 이에 반해, 연산 하드웨어가 충분히 높은 성능으로 동작하고, 전력 손실을 줄이도록 요청된 경우, 뉴럴 네트워크 매니저(122)는 PMIC가 낮은 전원 전압을 출력할 수 있도록 제어 신호(CTRL)를 출력할 수 있다.
디스패처(121)는 뉴럴 네트워크 매니저(122)로부터 수신된 제어 신호(CTRL)에 기초하여 연산 장치(130)들 및 입출력 장치들로 커맨드 신호(CMD)를 제공할 수 있다. 제어 신호(CTRL)는 서브 그래프에 대응되어 할당되는 하드웨어 및 구동 리소스 설정에 대응되는 정보를 포함할 수 있고, 디스패처(121)는 할당되는 하드웨어 및 구동 리소스 설정에 기초하여 커맨드 신호(CMD)를 생성할 수 있다.
도 2에서 본 개시의 뉴럴 네트워크 매니저(122) 및 디스패처(121)는 뉴럴 네트워크 모듈(120) 내에서 서로 다른 하드웨어로 구성될 수 있지만, 이에 국한되지 않고, 하나의 하드웨어에서 서로 다른 동작을 수행하는 소프트웨어로 구성될 수도 있다.
도 3은 일실시예에 따른 인공 신경망 매니저를 도시한 블록도이다.
도 3을 참조하면, 뉴럴 네트워크 매니저(122)는 컨트롤 매니저(122_1), 프로파일러(122_2), 및 태스크 스케쥴러(122_3)를 포함할 수 있다. 뉴럴 네트워크 매니저(122)에 포함된 프로파일러(122_2)는 도 1에서 도시된 프로파일러와 동일한 동작을 수행하는 구성일 수 있고, 도 1의 실시예와 같이 뉴럴 네트워크 모듈(120) 외부에 프로파일러가 구비된 경우, 도 3의 실시예의 프로파일러(122_2)는 생략될 수도 있다.
태스크 스케쥴러(122_3)는 클락 신호(CLK) 및/또는 연산 처리 그래프(CPG)를 수신할 수 있고, 클락 신호(CLK) 및/또는 연산 처리 그래프(CPG)에 기초하여 리소스 결정 트리거(RDT)를 생성할 수 있다. 일실시예에 따라, 태스크 스케쥴러(122_3)는 외부 장치에 의해 생성된 클락 신호(CLK)를 수신할 수 있고, 클락 신호(CLK)에 대응하여 리소스 결정 트리거(RDT)를 생성할 수 있다.
다른 일실시예에 따르면, 태스크 스케쥴러(122_3)는 복수의 서브 그래프들로 구성된 연산 처리 그래프(CPG)를 수신할 수 있고, 복수의 서브 그래프들 중 일부 서브 그래프에 대응하여 리소스 결정 트리거(RDT)를 출력할 수 있다.
복수의 서브 그래프들은 연산 서브 그래프들 및 입출력 서브 그래프들로 구성될 수 있다. 연산 서브 그래프는 복잡한 연산이 수행될 것으로 미리 설정된 서브 그래프일 수 있고, 입출력 서브 그래프는 많은 양의 데이터가 입출력될 것으로 미리 설정된 서브 그래프일 수 있다.
일실시예에 따르면, 태스크 스케쥴러(122_3)는 연산 서브 그래프들 및 입출력 서브 그래프들 중 어느 하나의 서브 그래프에 대응하여 리소스 결정 트리거(RDT)를 생성할 수 있다. 예시적으로, 태스크 스케쥴러(122_3)는 연산 서브 그래프에 대응하여 리소스 결정 트리거(RDT)를 생성할 수 있고, 뉴럴 네트워크 매니저(122)는 연산 서브 그래프에 대응하여 하드웨어 할당 및 구동 리소스 설정을 업데이트할 수 있다.
프로파일러(122_2)는 외부로부터 피드백 데이터(FBD)를 수신하고, 피드백 데이터(FBD)를 분석함으로써 컴퓨팅 데이터(CD)를 생성할 수 있다. 피드백 데이터(FBD)는 현재 연산 수행 상태와 관련된 정보일 수 있고, 예시적으로 프로그램의 시간 복잡도 및 공간, 특정 명령어 이용, 함수 호출의 주기 및 빈도와 관련된 정보일 수 있다. 그러나, 피드백 데이터(FBD)는 이에 국한되지 않고, 연산 하드웨어의 바운드(bound) 상태를 판단하기 위한 모든 정보를 포함할 수 있다.
컨트롤 매니저(122_1)는 리소스 결정 트리거(RDT)에 응답하여 제어 신호(CTRL)를 생성할 수 있다. 예시적으로, 컨트롤 매니저(122_1)는 컴퓨팅 데이터(CD), 리소스 데이터(RD), 및 메타 데이터(MD)에 기초하여 연산 하드웨어 및 입출력 하드웨어를 제어하는 제어 신호(CTRL)를 출력할 수 있다.
컴퓨팅 데이터(CD)는 프로파일러(122_2)가 피드백 데이터(FBD)를 분석함으로써 생성한 데이터일 수 있고, 현재 연산 상태와 관련된 정보일 수 있다. 예시적으로, 프로파일러(122_2)는 연산 하드웨어들 중 NPU에 정보 처리량이 집중되어 있다고 분석할 수 있고, 컨트롤 매니저(122_1)로 NPU가 과부하 상태임을 지시하는 정보를 제공할 수 있다.
리소스 데이터(RD)는 가용 하드웨어 정보, 커널 sysfs, 파워 hal 정보, 배터리 용량, 및 DTM 정보를 포함할 수 있다. 리소스 데이터(RD)는 하드웨어의 상태에 관련된 정보일 수 있다. 예시적으로, NPU가 고온 상태라는 리소스 데이터(RD)를 수신한 경우, 컨트롤 매니저(122_1)는 NPU의 연산 처리량을 낮추도록 제어 신호(CTRL)를 출력할 수 있다.
메타 데이터(MD)는 서브 그래프 별로 미리 설정된 정보로서, 선호 구동 정보, 지향 태스크 정보, 텐서(tensor) 정보, 및 예상 레이턴시를 포함할 수 있다. 선호 구동 정보는 예시적으로, 사용자로부터 요청된 사용자 모드일 수 있고, 사용자 모드는 전원 절약 모드, 부스트 모드등을 포함할 수 있다. 아울러, 선호 구동 정보는 메타 데이터(MD)에 대응되는 서브 그래프를 연산할 때 선호되는 하드웨어 정보를 포함할 수 있다. NPU, GPU, CPU 등의 연산 하드웨어들 중에 각 학습 모델마다 연산을 수행하기 위해 선호되는 연산 하드웨어들이 메타 데이터(MD)로 미리 설정되어 있을 수 있다. 또한, 각 서브 그래프 마다 연산 처리량이 상이할 수 있고, 연산 처리량에 따라 선호되는 연산 하드웨어들이 메타 데이터(MD)로 미리 설정될 수도 있다.
지향 태스크 정보는 각 서브 그래프가 연산 지향적 서브 그래프인지, 입출력 지향적 서브 그래프인지 여부가 미리 설정된 정보일 수 있다. 예시적으로, 컨트롤 매니저(122_1)가 메타 데이터(MD)로 서브 그래프가 연산 지향적 서브 그래프임을 수신한 경우, 연산 하드웨어가 최대 성능으로 동작할 수 있도록 제어 신호(CTRL)를 출력할 수 있다.
텐서 정보는 각 서브 그래프의 입력 데이터 크기 및 출력 데이터 크기에 대응될 수 있다. 텐서 정보가 큰 크기의 입출력 데이터에 대응되는 경우 입출력 하드웨어가 최대 성능으로 동작할 수 있도록 제어 신호(CTRL)를 출력할 수 있다.
예상 레이턴시는 리소스 결정 트리거(RDT)가 생성된 시점부터 하드웨어 할당 및 구동 리소스 설정 변경까지 소요되는 예상 지연 시간일 수 있다.
컨트롤 매니저(122_1)는 하나의 입력 데이터에 대한 뉴럴 네트워크 연산을 수행할 때, 일련의 서브 그래프들로 구성된 학습 모델 중 적어도 하나의 서브 그래프에 대응하여 할당되는 하드웨어 및 구동 리소스 설정을 변경할 수 있다. 이에 따라, 본 개시의 뉴럴 네트워크 모듈(120)은 하나의 입력 데이터에 대한 트레이닝(training) 또는 인퍼런스(inference) 연산을 수행할 때, 현재 연산 상태 또는 서브 그래프 특성에 따라 적응적으로(adaptively) 연산 하드웨어 및 입출력 하드웨어의 할당 및 설정을 업데이트할 수 있다.
컨트롤 매니저(122_1), 프로파일러(122_2), 및 태스크 스케쥴러(122_3)는 서로 다른 칩에 내장될 수 있으나, 본 개시의 실시예에서는 이에 국한되지 않고, 하나의 칩에 내장되어 서로 다른 동작을 수행하도록 구성될 수도 있다.
도 4는 일실시예에 따라 대상 서브 그래프에 대해 인공 신경망 연산을 수행하는 방법을 도시한 흐름도이다.
도 4를 참조하면, 본 개시의 뉴럴 네트워크 모듈(120)은 하드웨어 할당 및 구동 리소스 설정 중 적어도 하나를 변경하여 대상 서브 그래프에 대한 연산을 수행할 수 있다. 대상 서브 그래프에 대한 연산은 트레이닝 연산 또는 인퍼런스 연산을 의미할 수 있다.
단계(S10)에서, 뉴럴 네트워크 모듈(120)은 대상 서브 그래프에 대응되는 리소스 결정 트리거(RDT)를 생성할 수 있다. 뉴럴 네트워크 모듈(120)은 대상 서브 그래프에 대한 연산을 수행하기 직전 리소스 결정 트리거(RDT)를 출력할 수 있는데, 예상 레이턴시를 고려하지 않고 연산 수행 직전 출력되는 리소스 결정 트리거(RDT)를 기본 리소스 결정 트리거(RDT)로 지칭될 수 있다.
단계(S20)에서, 뉴럴 네트워크 모듈(120)은 리소스 결정 트리거(RDT)에 응답하여 제어 신호(CTRL)를 생성할 수 있다. 일실시예에 따르면, 뉴럴 네트워크 모듈(120)은 컴퓨팅 데이터(CD), 리소스 데이터(RD), 및 메타 데이터(MD)에 기초하여 제어 신호(CTRL)를 생성할 수 있다. 제어 신호(CTRL)는 하드웨어의 할당 및 구동 리소스 설정과 관련된 정보를 포함할 수 있다. 예시적으로,
단계(S30)에서, 뉴럴 네트워크 모듈(120)은 제어 신호(CTRL)에 기초하여 하드웨어 할당 및 구동 리소스 설정 중 적어도 하나를 변경할 수 있다. 예시적으로, 대상 서브 그래프에 대응되는 뉴럴 네트워크 연산을 수행하기 위해 뉴럴 네트워크 모듈(120)은 NPU 및 GPU에 연산 수행을 할당시키고, 빠른 속도로 연산을 수행시키기 위해 NPU 및 GPU 성능을 끌어올리기 위한 구동 리소스 설정을 결정할 수 있다.
일실시예에 따르면, 뉴럴 네트워크 매니저(122)가 고성능으로 NPU 및 GPU를 구동시키기 위한 제어 신호(CTRL)를 생성할 수 있고, 디스패처(121)가 제어 신호(CTRL)를 수신함으로써 NPU 및 GPU에 대상 서브 그래프에 대한 연산을 할당할 수 있다.
단계(S40)에서, 뉴럴 네트워크 모듈(120)은 할당된 하드웨어 및 구동 리소스 설정에 기초하여 대상 서브 그래프에 대한 연산을 수행할 수 있다. 대상 서브 그래프에 대한 연산을 수행한 후, 뉴럴 네트워크 모듈(120)은 후속되는 서브 그래프에 대한 연산을 수행하기 위해 후속 서브 그래프에 대응되는 메타 데이터(MD), 컴퓨팅 데이터(CD), 및 리소스 데이터(RD)를 수신할 수 있고, 다시 하드웨어 할당 및 구동 리소스 설정을 결정할 수 있다.
본 개시의 뉴럴 네트워크 모듈(120)은 학습 모델에 기초하여 하나의 입력 데이터에 대한 연산을 수행할 때, 학습 모델을 구성하는 복수의 서브 그래프들 중 적어도 일부 서브 그래프에 대응하여 하드웨어 할당 및 구동 리소스 설정을 변경할 수 있다. 이에 따라, 본 개시의 뉴럴 네트워크 모듈(120)은 현재 연산 상태 및 사용자 요청에 부합하도록 하드웨어를 할당하고 구동 리소스를 설정할 수 있다.
도 5는 일실시예에 따라 복수의 서브 그래프들로 구분된 학습 모델을 도시한 블록도이다.
도 5를 참조하면, 뉴럴 네트워크 모듈(120)은 학습 모델을 분석함으로써 제1 연산(OP00) 내지 제14 연산(OP13)을 포함하는 연산 처리 그래프(CPG)를 생성할 수 있다. 제1 연산(OP00) 내지 제14 연산(OP13) 각각은 각종 수학 연산(예를 들면, 컨볼루션 연산, 정정 선형 유닛 연산, 메모리 복사 연산 등)을 나타낼 수 있고, 제1 연산(OP00) 내지 제14 연산(OP13)은 서로 같거나 다른 연산일 수 있다.
뉴럴 네트워크 모듈(120)은 생성된 연산 처리 그래프(CPG)를 연산의 종류, 연산 선호도, 그래프의 형태 등을 기준으로 복수의 서브 그래프들(SG1, SG2, SG3)로 구분할 수 있다. 도 5의 예시에서, 뉴럴 네트워크 모듈(120)은 제1 연산(OP00) 내지 제4 연산(OP03)을 제1 서브 그래프(SG1)로 구분하고, 제5 연산(OP04) 내지 제11 연산(OP10)을 제2 서브 그래프(SG2)로 구분하고, 제12 연산(OP11) 내지 제14 연산(OP13)을 제3 서브 그래프(SG3)로 구분할 수 있다.
태스크 스케쥴러(122_3)는 제1 서브 그래프(SG1) 내지 제3 서브 그래프(SG3)를 포함하는 연산 처리 그래프(CPG)를 수신하고, 제1 서브 그래프(SG1) 내지 제3 서브 그래프(SG3) 중 적어도 일부 서브 그래프에 대응하여 리소스 결정 트리거(RDT)를 출력할 수 있다. 일실시예에서, 컨트롤 매니저(122_1)는 복수의 하드웨어들의 연산 수행 능력에 기초하여 제1 서브 그래프(SG1) 내지 제3 서브 그래프(SG3) 각각을 적합한 리소스에 할당할 수 있다.
태스크 스케쥴러(122_3)는 각 서브 그래프에 대한 연산 수행 전 리소스 결정 트리거(RDT)를 출력할 수 있고, 컨트롤 매니저(122_1)는 리소스 결정 트리거(RDT)에 응답하여 연산을 수행할 하드웨어를 할당할 수 있다. 예시적으로, 제1 서브 그래프(SG1) 및 제3 서브 그래프(SG3)를 제1 하드웨어(예를 들면, NPU)에 할당하고, 제2 서브 그래프(SG2)를 제2 하드웨어(예를 들면, GPU)에 할당할 수 있다. 또 다른 예시에서, 컨트롤 매니저(122_1)는 제1 서브 그래프(SG1)를 제1 하드웨어(예를 들면, NPU)에 할당하고, 제2 서브 그래프(SG2)를 제2 하드웨어(예를 들면, GPU)에 할당하고, 제3 서브 그래프(SG3)를 제3 하드웨어(예를 들면, CPU)에 할당할 수 있다. 본 개시의 실시예에 따르면, 컨트롤 매니저(122_1)는 이에 국한되지 않고, 하나의 서브 그래프에 대응되어 복수의 하드웨어들을 할당할 수도 있다.
도 6은 일실시예에 따른 서브 그래프에 대응되어 생성되는 리소스 결정 트리거(RDT) 및 변경되는 주파수, 제어 전압을 도시한 타이밍도이다.
도 6는 뉴럴 네트워크 모듈(120)이 도 5에서 선술된 서브 그래프들에 대한 연산을 수행할 때 생성되는 신호들의 타이밍도일 수 있다. 도 6은 제1 서브 그래프(SG1), 제2 서브 그래프(SG2), 및 제3 서브 그래프(SG3)에 대응되어 구동 리소스 설정이 변경되는 실시예를 도시한 것이나, 본 개시의 뉴럴 네트워크 모듈(120)에서 구동 리소스 설정이 변경되는 서브 그래프의 개수는 이에 국한되지 않는다.
제1 시간(T1)에서, 뉴럴 네트워크 모듈(120)은 제1 서브 그래프(SG1)에 대한 뉴럴 네트워크 연산을 수행할 수 있다. 뉴럴 네트워크 모듈(120)은 제1 연산 장치(130)에 연산을 수행하도록 커맨드 신호(CMD)를 제공할 수 있다. 이 때, 뉴럴 네트워크 모듈(120)은 구동 리소스로부터 로우 레벨의 주파수(fL) 및 로우 레벨의 전원 전압(VL)을 제1 연산 장치(130)에 제공하도록 구동 리소스를 제어할 수 있다. 예시적으로, 뉴럴 네트워크 모듈(120)은 로우 레벨의 주파수(fL) 및 로우 레벨의 전원 전압(VL)을 공급하도록 설정된 제어 신호(CTRL)를 생성하고, 디스패처(121)를 통해 구동 리소스로 제공할 수 있다.
뉴럴 네트워크 모듈(120)은 제1 서브 그래프(SG1)에 대한 연산을 수행하고, 제2 서브 그래프(SG2)에 대한 연산을 수행하기 전 리소스 결정 트리거(RDT)를 수신할 수 있다. 리소스 결정 트리거(RDT)는 매 서브 그래프들마다 생성되어 뉴럴 네트워크 모듈(120)은 제어 신호(CTRL)의 재설정을 지시할 수 있지만, 본 개시의 실시예의 뉴럴 네트워크 모듈(120)은 이에 국한되지 않고 미리 설정된 서브 그래프에 대응되어 리소스 결정 트리거(RDT)를 출력할 수 있다.
일실시예에 따르면, 뉴럴 네트워크 모듈(120)이 데이터 연산에 집중되도록 설정된 경우, 연산 서브 그래프에 대한 연산을 수행하기 전 리소스 결정 트리거(RDT)를 생성할 수 있다. 이에 반해, 뉴럴 네트워크 모듈(120)이 데이터 입출력에 집중되도록 설정된 경우, 입출력 서브 그래프에 대한 연산을 수행하기 전 리소스 결정 트리거(RDT)를 생성할 수 있다.
제2 시간(T2)에서, 뉴럴 네트워크 모듈(120)은 리소스 결정 트리거(RDT)에 응답하여 제어 신호(CTRL)를 생성하기 위해 구동중인 하드웨어들 및 제2 서브 그래프(SG2)에 대응되는 메타 데이터(MD)를 분석할 수 있다. 예시적으로, 뉴럴 네트워크 모듈(120)은 제2 서브 그래프(SG2)의 데이터 연산량을 예측할 수 있고, 현재 구동중인 연산 하드웨어들의 부하 상태에 기초하여 제2 서브 그래프(SG2)에 대한 뉴럴 네트워크 연산을 수행하기 위해 추가적인 연산 하드웨어가 필요한지 여부를 판단할 수 있다.
일실시예에 따르면, 제1 시간(T1)에서 제1 연산 장치(130)에 낮은 연산 속도가 요구되어 로우 레벨의 주파수(fL) 및 로우 레벨의 전원 전압(VL)을 입력시킨 반면, 제2 시간(T2)에서 제2 서브 그래프(SG2)에 대해 분석 결과로서 높은 연산 처리량이 요구되는 경우, 구동 리소스가 제1 연산 장치(130)로 하이 레벨의 주파수(fH) 및 하이 레벨의 전원 전압(VH)을 입력시키도록 뉴럴 네트워크 모듈(120)은 제어 신호(CTRL)를 생성할 수 있다.
뉴럴 네트워크 모듈(120)은 제2 서브 그래프(SG2)에 대한 연산을 수행하고, 제3 서브 그래프(SG3)에 대한 연산을 수행하기 전 리소스 결정 트리거(RDT)를 수신할 수 있다. 일실시예에 따르면, 제2 시간(T2)에서 제2 서브 그래프(SG2)에 대해 분석 결과로서 높은 연산 처리량이 요구되는 하이 레벨의 주파수(fH) 및 하이 레벨의 전원 전압(VH)을 입력시킨 반면, 제3 시간(T3)에서는 제1 연산 장치(130)는 낮은 연산 속도가 요구되어 입력 구동 리소스가 제1 연산 장치(130)로 로우 레벨의 주파수(fL) 및 로우 레벨의 전원 전압(VL)을 입력시키도록 뉴럴 네트워크 모듈(120)은 제어 신호(CTRL)를 생성할 수 있다.
도 7은 일실시예에 따라 예상 레이턴시에 따라 리소스 결정 트리거(RDT)를 출력하는 시간을 결정하는 방법을 도시한 흐름도이다.
도 7을 참조하면, 뉴럴 네트워크 모듈(120)은 예상 레이턴시에 따라 기본 리소스 결정 트리거(RDT) 및 예상 레이턴시에 기초하여 생성된 리소스 결정 트리거(RDT) 중 어느 하나를 출력할 수 있다. 예상 레이턴시는 리소스 결정 트리거(RDT)가 생성된 시점부터 하드웨어 할당 및 구동 리소스 설정 변경까지 소요되는 예상 지연 시간일 수 있다.
단계(S110)에서, 뉴럴 네트워크 모듈(120)은 리소스 결정 트리거(RDT)에 대한 예상 레이턴시를 계산할 수 있다. 예상 레이턴시는 서브 그래프별로 메타 데이터(MD)에 미리 설정될 수 있고, 일실시예에 따르면, 뉴럴 네트워크 모듈(120)은 메타 데이터(MD), 컴퓨팅 데이터(CD), 및 리소스 데이터(RD)에 기초하여 현재 연산 상태를 고려한 예상 레이턴시를 계산할 수 있다.
일실시예에 따르면, 뉴럴 네트워크 모듈(120)은 대상 서브 그래프에 대응되는 메타 데이터(MD)를 수신하고, 메타 데이터(MD)에 설정된 예상 레이턴시로부터 하드웨어들의 현재 연산 상태에 기초하여 적응적으로 예상 레이턴시를 결정할 수 있다. 예시적으로, 뉴럴 네트워크 모듈(120)은 컴퓨팅 데이터(CD) 및 리소스 데이터(RD)에 기초하여 연산 하드웨어들이 과부하 상태인지 여부를 판단할 수 있고, 연산 하드웨어들이 과부하 상태인 경우, 과부하 정도에 따라 예상 레이턴시를 결정할 수 있다.
단계(S120)에서, 뉴럴 네트워크 모듈(120)은 예상 레이턴시와 임계 레이턴시를 비교할 수 있다. 임계 레이턴시는 뉴럴 네트워크 모듈(120)에 미리 설정된 임계값일 수 있고, 리소스 결정 트리거(RDT)가 출력될 때부터 하드웨어들이 목표로 하는 성능으로 동작할 때까지의 임계 지연 시간에 일 수 있다.
단계(S130)에서, 뉴럴 네트워크 모듈(120)은 계산된 예상 레이턴시가 임계 레이턴시를 초과하는 경우, 예상 레이턴시에 기초하여 리소스 결정 트리거(RDT)를 출력할 수 있다. 일실시예에 따르면, 뉴럴 네트워크 모듈(120)은 리소스 결정 트리거(RDT)를 출력하기로 계획된 시점으로부터 예상 레이턴시만큼 앞당겨 리소스 결정 트리거(RDT)를 출력할 수 있다. 예시적으로, 리소스 결정 트리거(RDT)를 출력하기로 계획된 시점은 대상 서브 그래프에 대한 연산을 수행하기 직전 시점 또는 대상 서브 그래프의 이전 서브 그래프에 대한 연산이 종료된 이후 시점일 수 있다.
단계(S140)에서, 뉴럴 네트워크 모듈(120)은 예상 레이턴시가 임계 레이턴시 이하인 경우 기본 리소스 결정 트리거(RDT)를 출력할 수 있다. 예상 레이턴시가 임계 레이턴시 이하로 판단된 경우는 대상 서브 그래프에 대한 연산을 수행하기 직전 리소스 결정 트리거(RDT)를 출력하여도 하드웨어 구동이 지나치게 지연되지 않는다고 판단된 경우일 수 있다.
도 8은 일실시예에 따라 예상 레이턴시가 적용된 리소스 결정 트리거(RDT)를 도시한 타이밍도이다.
도 8을 참조하면, 뉴럴 네트워크 모듈(120)은 제2 서브 그래프(SG2) 및 제3 서브 그래프(SG3)에 대응하여 예상 레이턴시를 계산할 수 있고, 예상 레이턴시가 임계 레이턴시보다 크다고 결정함으로써 예상 레이턴시가 적용된 리소스 결정 트리거(RDT)를 출력할 수 있다.
뉴럴 네트워크 모듈(120)은 제1 서브 그래프(SG1)에 대한 연산이 종료되는 시점으로부터 예상 레이턴시만큼 앞선 시점에서 제2 서브 그래프(SG2)에 대한 리소스 결정 트리거(RDT)를 생성할 수 있다. 제1 시간(T1)에서, 뉴럴 네트워크 모듈(120)은 리소스 결정 트리거(RDT)에 응답하여 제어 신호(CTRL)를 생성하기 위해 구동중인 하드웨어들 및 제2 서브 그래프(SG2)에 대응되는 메타 데이터(MD)를 분석할 수 있다. 예시적으로, 뉴럴 네트워크 모듈(120)은 제2 서브 그래프(SG2)의 데이터 연산량을 예측할 수 있고, 현재 구동중인 연산 하드웨어들의 부하 상태에 기초하여 제2 서브 그래프(SG2)에 대한 뉴럴 네트워크 연산을 수행하기 위해 추가적인 연산 하드웨어가 필요한지 여부를 판단할 수 있다.
일실시예에 따르면, 제1 시간(T1)에서 제1 연산 장치(130)에 낮은 연산 속도가 요구되어 로우 레벨의 주파수(fL) 및 로우 레벨의 전원 전압(VL)을 입력시킨 반면, 제2 시간(T2)에서 제2 서브 그래프(SG2)에 대해 분석 결과로서 높은 연산 처리량이 요구되는 경우, 구동 리소스가 제1 연산 장치(130)로 하이 레벨의 주파수(fH) 및 하이 레벨의 전원 전압(VH)을 입력시키도록 뉴럴 네트워크 모듈(120)은 제어 신호(CTRL)를 생성할 수 있다.
이와 마찬가지 방법으로, 뉴럴 네트워크 모듈(120)은 제3 시간(T3) 전인 제2 시간(T2)에서 제3 서브 그래프(SG3)에 대한 리소스 결정 트리거(RDT)를 생성할 수 있고, 제3 시간(T3)에서 구동 리소스는 제1 연산 장치(130)로 로우 레벨의 주파수(fL) 및 로우 레벨의 전원 전압(VL)을 입력시키도록 뉴럴 네트워크 모듈(120)은 제어 신호(CTRL)를 생성할 수 있다.
도 9는 일실시예에 따라 메타 데이터(MD)에 기초하여 대상 서브 그래프에 대해 서로 다른 설정을 적용하는 방법을 도시한 흐름도이다.
도 9를 참조하면, 제어 신호(CTRL)를 생성할 때 서브 그래프별 메타 데이터(MD)를 수신하고, 데이터 처리량이 집중되는 바운드 상태에 따라 서로 다른 설정으로 하드웨어 할당 및 구동 리소스 설정을 결정할 수 있다.
단계(S210a)에서, 뉴럴 네트워크 모듈(120)은 대상 서브 그래프에 대응되는 메타 데이터(MD)를 수신할 수 있다. 메타 데이터(MD)는 서브 그래프별 설정관련 정보를 포함할 수 있고, 같은 서브 그래프라도 하드웨어 상태에 따라 서로 다른 설정 정보가 매핑되어 있을 수 있다.
단계(S220a)에서, 뉴럴 네트워크 모듈(120)은 연산 처리량이 집중되는 컴퓨팅 바운드 상태인지 여부를 판단할 수 있다. 일실시예에 따르면, 뉴럴 네트워크 모듈(120)은 대상 서브 그래프에 대응되는 컴퓨팅 데이터(CD) 및 리소스 데이터(RD)를 수신할 수 있고, 컴퓨팅 데이터(CD) 및 리소스 데이터(RD)를 분석하여 컴퓨팅 바운드 상태인지 여부를 판단할 수 있다.
단계(S230a)에서, 뉴럴 네트워크 모듈(120)은 컴퓨팅 바운드 상태라고 판단한 경우 대상 서브 그래프에 대한 연산을 수행하기 위해 데이터 연산에 최대 성능을 발휘할 수 있도록 연산 하드웨어들을 설정할 수 있다. 예시적으로, 메타 데이터(MD)는 NPU, GPU, 및 CPU 등 연산 하드웨어들이 최대 성능으로 구동될 수 있도록 연산 하드웨어들을 대상 서브 그래프에 대응시켜 할당시킬 수 있고, 하이 레벨의 주파수(fH) 및 하이 레벨의 전원 전압(VH)을 연산 하드웨어들에 공급할 수 있도록 구동 리소스들을 제어할 수 있다.
단계(S240a)에서, 뉴럴 네트워크 모듈(120)은 하드웨어들이 컴퓨팅 바운드 상태가 아니라고 판단된 경우, 데이터들을 연산 하드웨어들로 제공하는 데이터 입출력 동작에 최대 성능을 발휘할 수 있도록 입출력 하드웨어들을 설정할 수 있다. 메타 데이터(MD)는 입출력 하드웨어들이 최대 성능으로 구동될 수 있도록 하이 레벨의 주파수(fH) 및 하이 레벨의 전원 전압(VH)을 입출력 하드웨어들에 공급하거나 높은 전송 대역폭으로 데이터를 입출력할 수 있도록 구동 리소스들을 제어할 수 있다.
도 10은 일실시예에 따라 결정된 하드웨어에 대해 구동 리소스 설정을 결정하는 방법을 도시한 흐름도이다.
도 10을 참조하면, 다른 실시예에 따른 뉴럴 네트워크 모듈(120)은 리소스 결정 트리거(RDT)에 응답하여 연산을 수행할 하드웨어를 결정할 수 있고, 결정된 하드웨어에 대해 구동 리소스 설정을 결정할 수 있다.
단계(S210b)에서, 뉴럴 네트워크 모듈(120)은 연산을 수행할 하드웨어를 결정할 수 있다. 일실시예에 따르면, 뉴럴 네트워크 모듈(120)은 컴퓨팅 데이터(CD) 및 리소스 데이터(RD)에 기초하여 하드웨어들을 뉴럴 네트워크 연산에 할당시킬 수 있다.
단계(S220b)에서, 뉴럴 네트워크 모듈(120)은 결정된 하드웨어에 대해 구동 리소스 설정을 결정할 수 있다. 일실시예에 따르면, 뉴럴 네트워크 모델에 관련된 펌웨어, 소프트웨어 또는 구동 바이너리(binary)에 할당되는 하드웨어에 대한 상황별 구동 리소스 설정이 미리 기록되어 있을 수 있다.
예시적으로, 뉴럴 네트워크 모듈(120)은 SRAM DMA가 구동되기 전 메모리 인터페이스의 성능을 상향시키도록 구동 리소스 설정을 결정할 수 있다. 뉴럴 네트워크 모듈(120)은 NPU가 동작된 이후, GPU의 성능을 상향시키도록 구동 리소스 설정을 결정할 수 있다.
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (20)

  1. 복수의 서브 그래프들에 대한 인공 신경망 연산을 수행하는 인공 신경망 모듈의 동작 방법에 있어서,
    대상 뉴럴 네트워크 모델을 구성하는 상기 복수의 서브 그래프들 중 대상 서브 그래프에 대응하여 리소스 결정 트리거를 생성하는 단계;
    상기 리소스 결정 트리거에 응답하여 상기 대상 서브 그래프에 할당되는 하드웨어 및 구동 리소스(resource) 설정에 대한 제어 신호를 생성하는 단계;
    상기 제어 신호에 응답하여 상기 대상 서브 그래프에 할당되는 하드웨어 및 구동 리소스 설정 중 적어도 하나를 변경하는 단계; 및
    상기 변경된 하드웨어 및 구동 리소스 설정에 기초하여 상기 대상 서브 그래프에 대한 연산을 수행하는 단계
    를 포함하는 인공 신경망 모듈의 동작 방법.
  2. 제1항에 있어서,
    상기 제어 신호를 생성하는 단계는,
    데이터 처리량이 집중되는 하드웨어에 관련된 바운드(bound) 상태 정보에 따라 상기 하드웨어 및 상기 구동 리소스 설정을 결정하는 단계
    를 포함하는 것을 특징으로 하는 인공 신경망 모듈의 동작 방법.
  3. 제2항에 있어서,
    상기 하드웨어 및 구동 리소스 설정을 결정하는 단계는,
    연산 하드웨어에 데이터 처리량이 집중되는 경우, 연산 바운드 상태에 대응되는 하드웨어 및 상기 구동 리소스 설정을 결정하는 단계; 및
    입출력 하드웨어에 데이터 처리량이 집중되는 경우, 입출력 바운드 상태에 대응되는 하드웨어 및 상기 구동 리소스 설정을 결정하는 단계
    를 포함하는 것을 특징으로 하는 인공 신경망 모듈의 동작 방법.
  4. 제1항에 있어서,
    상기 구동 리소스 설정은,
    하드웨어의 DVFS 레벨 정보, 신호 전송 대역폭 정보, 라스트 레벨 캐시 할당 정보, 온도 제어 정보, 및 PMIC 제어 정보 중 적어도 하나를 포함하는 것을 특징으로 하는 인공 신경망 모듈의 동작 방법.
  5. 제1항에 있어서,
    상기 제어 신호를 생성하는 단계는,
    각 서브 그래프에 대응되어 설정된 메타 데이터에 기초하여 상기 하드웨어 및 상기 구동 리소스 설정을 결정하는 단계
    를 포함하는 것을 특징으로 하는 인공 신경망 모듈의 동작 방법.
  6. 제5항에 있어서,
    상기 메타 데이터는,
    상기 서브 그래프별로 설정된 선호 구동 정보, 지향 태스크(task) 정보, 텐서(tensor) 정보, 및 예상 레이턴시(latency) 중 적어도 하나를 포함하는 것을 특징으로 하는 인공 신경망 모듈의 동작 방법.
  7. 제6항에 있어서,
    상기 메타 데이터는,
    데이터 처리량이 집중되는 바운드 상태 정보에 따라 상기 서브 그래프별로 설정된 정보인 것을 특징으로 하는 인공 신경망 모듈의 동작 방법.
  8. 제5항에 있어서,
    상기 복수의 서브 그래프들은,
    연산 처리가 집중되는 연산 서브 그래프 및 데이터 입출력이 집중되는 입출력 서브 그래프를 포함하고,
    상기 리소스 결정 트리거를 생성하는 단계는,
    상기 연산 서브 그래프에 대응되어 상기 리소스 결정 트리거를 출력하는 단계
    를 포함하는 것을 특징으로 하는 인공 신경망 모듈의 동작 방법.
  9. 제1항에 있어서,
    상기 리소스 결정 트리거를 생성하는 단계는,
    상기 하드웨어의 할당 및 상기 구동 리소스 설정에 대한 예상 레이턴시를 계산하는 단계; 및
    상기 예상 레이턴시가 임계 레이턴시를 초과하는 경우 상기 예상 레이턴시에 기초하여 상기 리소스 결정 트리거의 생성 시간을 결정하는 단계
    를 포함하는 것을 특징으로 하는 인공 신경망 모듈의 동작 방법.
  10. 제1항에 있어서,
    상기 제어 신호를 생성하는 단계는,
    할당되는 상기 하드웨어마다 설정된 상황별 구동 리소스 설정에 기초하여 상기 대상 서브 그래프에 대응되는 상기 구동 리소스 설정을 결정하는 단계
    를 포함하는 것을 특징으로 하는 인공 신경망 모듈의 동작 방법.
  11. 복수의 서브 그래프들에 대한 인공 신경망 연산을 수행하는 인공 신경망 모듈에 있어서,
    클락 신호에 기초하여 대상 뉴럴 네트워크 모델을 구성하는 상기 복수의 서브 그래프들 중 대상 서브 그래프에 대응되는 리소스 결정 트리거를 생성하는 태스크 스케쥴러;
    상기 리소스 결정 트리거에 응답하여 상기 대상 서브 그래프에 할당되는 하드웨어 및 구동 리소스(resource) 설정에 대한 제어 신호를 생성하는 컨트롤 매니저; 및
    상기 제어 신호에 응답하여 상기 대상 서브 그래프에 할당되는 하드웨어 및 구동 리소스 설정 중 적어도 하나를 변경하는 디스패처(dispatcher)
    를 포함하는 인공 신경망 모듈.
  12. 제11항에 있어서,
    상기 인공 신경망 모듈은,
    복수의 하드웨어들의 데이터 처리 정보를 수집하고, 상기 데이터 처리 정보에 기초하여 컴퓨팅 데이터를 생성하는 프로 파일러
    를 더 포함하고,
    상기 컨트롤 매니저는,
    상기 컴퓨팅 데이터에 기초하여 상기 하드웨어 및 상기 구동 리소스(resource) 설정을 결정하는 것을 특징으로 하는 인공 신경망 모듈.
  13. 제11항에 있어서,
    상기 컨트롤 매니저는,
    데이터 처리량이 집중되는 하드웨어에 관련된 바운드(bound) 상태 정보에 따라 상기 하드웨어 및 상기 구동 리소스 설정을 결정하는 것을 특징으로 하는 인공 신경망 모듈.
  14. 제11항에 있어서,
    상기 구동 리소스 설정은,
    하드웨어의 DVFS 레벨 정보, 신호 전송 대역폭 정보, 라스트 레벨 캐시 할당 정보, 온도 제어 정보, 및 PMIC 제어 정보 중 적어도 하나를 포함하는 것을 특징으로 하는 인공 신경망 모듈.
  15. 제11항에 있어서,
    상기 컨트롤 매니저는,
    각 서브 그래프에 대응되어 설정된 메타 데이터에 기초하여 상기 하드웨어 및 상기 구동 리소스 설정을 결정하는 것을 특징으로 하는 인공 신경망 모듈.
  16. 제15항에 있어서,
    상기 메타 데이터는,
    상기 서브 그래프별로 설정된 선호 구동 정보, 지향 태스크(task) 정보, 텐서(tensor) 정보, 및 예상 레이턴시(latency) 중 적어도 하나를 포함하는 것을 특징으로 하는 인공 신경망 모듈.
  17. 제16항에 있어서,
    상기 복수의 서브 그래프들은,
    연산 처리가 집중되는 연산 서브 그래프 및 데이터 입출력이 집중되는 입출력 서브 그래프를 포함하고,
    상기 태스크 스케쥴러는,
    상기 연산 서브 그래프에 대응되어 상기 리소스 결정 트리거를 출력하는 것을 특징으로 하는 인공 신경망 모듈.
  18. 제11항에 있어서,
    상기 태스크 스케쥴러는,
    상기 할당되는 하드웨어 및 상기 구동 리소스 설정에 기초하여 상기 클락 신호에 대한 예상 레이턴시를 계산하고, 상기 예상 레이턴시가 임계 레이턴시를 초과하는 경우 상기 예상 레이턴시에 기초하여 상기 리소스 결정 트리거의 생성 시간을 결정하는 것을 특징으로 하는 인공 신경망 모듈.
  19. 제11항에 있어서,
    상기 컨트롤 매니저는,
    할당되는 상기 하드웨어마다 설정된 상황별 구동 리소스 설정에 기초하여 상기 대상 서브 그래프에 대응되는 상기 구동 리소스 설정을 결정하는 것을 특징으로 하는 인공 신경망 모듈.
  20. 복수의 서브 그래프들에 대한 인공 신경망 연산을 수행하는 전자 장치에 있어서,
    대상 뉴럴 네트워크 모델을 구성하는 상기 복수의 서브 그래프들에 대응되는 연산을 수행하는 컴퓨팅 장치;
    상기 컴퓨팅 장치로 데이터를 제공하고, 상기 컴퓨팅 장치에 의해 생성된 데이터를 수신하는 입출력 장치;
    상기 서브 그래프들 중 대상 서브 그래프에 대응되는 리소스 결정 트리거에 응답하여 상기 컴퓨팅 장치 및 상기 입출력 장치에 대한 할당 및 구동 리소스(resource) 설정 중 적어도 하나를 변경하는 인공 신경망 모듈
    을 포함하는 전자 장치.
KR1020210132679A 2021-10-06 2021-10-06 복수의 서브 그래프들에 대한 인공 신경망 연산을 수행하는 인공 신경망 모듈 및 이의 동작 방법 KR20230049468A (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020210132679A KR20230049468A (ko) 2021-10-06 2021-10-06 복수의 서브 그래프들에 대한 인공 신경망 연산을 수행하는 인공 신경망 모듈 및 이의 동작 방법
US17/950,449 US20230105810A1 (en) 2021-10-06 2022-09-22 Artificial neural network module for performing artificial neural network operation on plurality of subgraphs and operating method thereof
EP22197953.7A EP4163791A1 (en) 2021-10-06 2022-09-27 Artificial neural network module for performing artificial neural network operation on plurality of subgraphs and operating method thereof
CN202211207619.0A CN115965063A (zh) 2021-10-06 2022-09-30 人工神经网络操作的方法、人工神经网络模块及电子装置
TW111137764A TW202324212A (zh) 2021-10-06 2022-10-05 用於人工神經網路操作的方法、人工神經網路模組和電子裝置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210132679A KR20230049468A (ko) 2021-10-06 2021-10-06 복수의 서브 그래프들에 대한 인공 신경망 연산을 수행하는 인공 신경망 모듈 및 이의 동작 방법

Publications (1)

Publication Number Publication Date
KR20230049468A true KR20230049468A (ko) 2023-04-13

Family

ID=83506149

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210132679A KR20230049468A (ko) 2021-10-06 2021-10-06 복수의 서브 그래프들에 대한 인공 신경망 연산을 수행하는 인공 신경망 모듈 및 이의 동작 방법

Country Status (5)

Country Link
US (1) US20230105810A1 (ko)
EP (1) EP4163791A1 (ko)
KR (1) KR20230049468A (ko)
CN (1) CN115965063A (ko)
TW (1) TW202324212A (ko)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102628902B1 (ko) * 2015-10-28 2024-01-24 구글 엘엘씨 계산 그래프들 프로세싱
US11334399B2 (en) * 2019-08-15 2022-05-17 Intel Corporation Methods and apparatus to manage power of deep learning accelerator systems

Also Published As

Publication number Publication date
CN115965063A (zh) 2023-04-14
EP4163791A1 (en) 2023-04-12
TW202324212A (zh) 2023-06-16
US20230105810A1 (en) 2023-04-06

Similar Documents

Publication Publication Date Title
US11467991B2 (en) Artificial intelligence-enabled management of storage media access
US20200249998A1 (en) Scheduling computation graph heterogeneous computer system
WO2019095873A1 (zh) 任务并行处理方法、装置、系统、存储介质及计算机设备
JP2020537784A (ja) ニューラルネットワークアクセラレーションのための機械学習ランタイムライブラリ
KR20190055610A (ko) 뉴럴 네트워크 모델들의 공용 연산 그룹을 단일 처리하는 뉴럴 네트워크 시스템, 이를 포함하는 애플리케이션 프로세서 및 뉴럴 네트워크 시스템의 동작방법
JP2018504676A (ja) ヘテロジニアスコアデバイス上での機械学習のためのアプリケーションの特徴付け
KR101697647B1 (ko) 스케줄링 정책 기반 코어 간 태스크 이주 관리 장치 및 방법
JP2020513613A (ja) 電力パフォーマンス管理のためのアプリケーションプロファイリング
US20210319298A1 (en) Compute-based subgraph partitioning of deep learning models for framework integration
US11816545B2 (en) Optimizing machine learning models
CN116382880B (zh) 任务执行方法、装置、处理器、电子设备及存储介质
CN115640243A (zh) 用于机器学习处理的存储器共享
US12014202B2 (en) Method and apparatus with accelerator
US11243752B2 (en) Multi-version shaders
KR20210103367A (ko) 가속기, 가속기의 동작 방법 및 이를 포함한 전자 장치
KR20230049468A (ko) 복수의 서브 그래프들에 대한 인공 신경망 연산을 수행하는 인공 신경망 모듈 및 이의 동작 방법
US20230004855A1 (en) Co-operative and adaptive machine learning execution engines
US20230259399A1 (en) Method and electronic device for handling resource operating performance configuration in electronic device
US20220147387A1 (en) Method and system for using computational resources of a multiprocessor computing system
KR102559658B1 (ko) 스케줄링 방법 및 장치
WO2022024214A1 (ja) プログラム作成装置、遅延量更新装置、処理システム及びプログラム
US20230136365A1 (en) Methods and apparatus to allocate accelerator usage
US20220391776A1 (en) Orchestration of multi-core machine learning processors
KR20220049294A (ko) 스케줄러, 스케줄러의 동작 방법 및 이를 포함한 전자 장치
KR20220135134A (ko) 태스크 스케줄링 방법, 이를 이용하는 연산 장치 및 애플리케이션 프로세서