KR20190036317A - 뉴럴 네트워크 시스템 및 뉴럴 네트워크 시스템의 동작방법 - Google Patents

뉴럴 네트워크 시스템 및 뉴럴 네트워크 시스템의 동작방법 Download PDF

Info

Publication number
KR20190036317A
KR20190036317A KR1020170125410A KR20170125410A KR20190036317A KR 20190036317 A KR20190036317 A KR 20190036317A KR 1020170125410 A KR1020170125410 A KR 1020170125410A KR 20170125410 A KR20170125410 A KR 20170125410A KR 20190036317 A KR20190036317 A KR 20190036317A
Authority
KR
South Korea
Prior art keywords
neural network
computing
network model
inputs
input
Prior art date
Application number
KR1020170125410A
Other languages
English (en)
Other versions
KR102610820B1 (ko
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 KR1020170125410A priority Critical patent/KR102610820B1/ko
Priority to SG10201805974UA priority patent/SG10201805974UA/en
Priority to US16/039,730 priority patent/US20190095212A1/en
Priority to CN201811132770.6A priority patent/CN109558937B/zh
Publication of KR20190036317A publication Critical patent/KR20190036317A/ko
Application granted granted Critical
Publication of KR102610820B1 publication Critical patent/KR102610820B1/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/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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06K9/00624
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • 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
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks

Landscapes

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

Abstract

뉴럴 네트워크 시스템, 및 뉴럴 네트워크 시스템의 동작방법이 개시된다. 본 개시의 기술적 사상에 따른 뉴럴 네트워크 시스템의 동작 방법은, 제1 입력을 처리하여 복수의 제1 출력을 생성하는 제1 연산 단계; 컴퓨팅 정보를 기초로 연산 파라미터를 결정하는 단계; 및 상기 복수의 제1 출력 중 상기 연산 파라미터를 기초로 결정되는 N 개(N은 2이상의 정수)의 제1 출력에 대하여 뉴럴 네트워크 모델에 따라 병렬적으로 프로세싱함으로써, 적어도 하나의 제2 출력을 생성하는 제2 연산 단계를 포함할 수 있다.

Description

뉴럴 네트워크 시스템 및 뉴럴 네트워크 시스템의 동작방법{Neural network system, and Operating method of neural network system}
본 개시의 기술적 사상은 뉴럴 네트워크에 관한 것으로서, 상세하게는 혼합알고리즘을 처리하는 뉴럴 네트워크 시스템 및 뉴럴 네트워크 시스템의 동작방법에 관한 것이다.
뉴럴 네트워크(neural network)는 생물학적 뇌를 모델링한 컴퓨터 과학적 아키텍쳐(computational architecture)를 참조한다. 최근 뉴럴 네트워크(neural network) 기술이 발전함에 따라, 다양한 종류의 전자 시스템에서 하나 이상의 뉴럴 네트워크 모델을 이용한 뉴럴 네트워크 장치를 사용하여 입력 데이터를 분석하고 유효한 정보를 추출하는 연구가 활발히 진행되고 있다.
딥 러닝 알고리즘을 포함하는 다양한 종류의 뉴럴 네트워크 모델들이 개발되고 있으며, 이러한 뉴럴 네트워크 모델들은 뉴럴 네트워크 시스템에서 실행될 수 있다. 뉴럴 네트워크 시스템은 뉴럴 네트워크 모델에 따른 연산 및 다른 알고리즘에 따른 연산을 수행할 수 있다. 이러한 혼합 알고리즘을 처리하는 뉴럴 네트워크 시스템의 처리 속도 향상이 요구된다.
본 개시의 기술적 사상이 해결하려는 과제는, 혼합 알고리즘 처리 속도를 향상시킬 수 있는 뉴럴 네트워크 시스템, 및 뉴럴 네트워크 시스템의 동작방법을 제공하는 데 있다.
상기와 같은 목적을 달성하기 위하여, 본 개시의 기술적 사상에 따른 뉴럴네트워크 시스템의 동작 방법은, 제1 입력을 처리하여 복수의 제1 출력을 생성하는 제1 연산 단계; 컴퓨팅 정보를 기초로 연산 파라미터를 결정하는 단계; 및 상기 복수의 제1 출력 중 상기 연산 파라미터를 기초로 결정되는 N 개(N은 2이상의 정수)의 제1 출력에 대하여 뉴럴 네트워크 모델에 따라 병렬적으로 프로세싱함으로써, 적어도 하나의 제2 출력을 생성하는 제2 연산 단계를 포함할 수 있다.
본 개시의 기술적 사상에 따른 뉴럴 네트워크 시스템의 동작 방법은, 수신되는 입력 정보를 프리-프로세싱하여 복수의 연산 입력을 생성하는 단계; 업데이트되는 컴퓨팅 정보를 기초로, 컴퓨팅 환경에 적응적으로 뉴럴 네트워크 모델의 배치 모드를 결정하는 단계; 및 복수의 연산 입력들 중 상기 배치 모드에 따라 결정되는 N개의 연산 입력들에 대하여 병렬적으로 상기 뉴럴 네트워크 모델에 따른 연산을 수행하는 단계를 포함할 수 있다.
본 개시의 기술적 사상에 따른 병렬적 프로세싱 기반의 뉴럴 네트워크 시스템은, 입력 데이터에 대하여 제1 알고리즘에 따른 제1 연산을 수행하여 복수의 제1 출력을 생성하는 제1 프로세서, 상기 뉴럴 네트워크 시스템의 컴퓨팅 로드 및 컴퓨팅 수용 능력 중 적어도 하나를 기초로 컴퓨팅 환경에 적응적으로 연산 파라미터를 결정하는 혼합 연산 매니저; 및 상기 연산 파라미터를 기초로, 상기 복수의 제1 출력 중 적어도 두 개의 제1 출력에 대하여 병렬적으로 제2 알고리즘에 따른 제2 연산을 수행하는 제2 프로세서를 포함할 수 있다.
본 개시의 기술적 사상에 따른 뉴럴 네트워크 시스템, 이를 포함하는 애플리케이션 프로세서 및 뉴럴 네트워크 시스템의 동작방법에 따르면, 컴퓨팅 환경을 고려하여 적응적으로 병렬 프로세싱을 수행함으로써, 뉴럴 네트워크 모델에 따른 연산 속도를 향상시킬 수 있다.
또한, 본 개시의 기술적 사상에 따른 뉴럴 네트워크 시스템, 이를 포함하는 애플리케이션 프로세서 및 뉴럴 네트워크 시스템의 동작방법에 따르면, 혼합 알고리즘을 구분적으로 적합한 하드웨어에서 수행함으로써, 혼합 알고리즘의 처리 속도를 향상시킬 수 있다.
도 1은 본 개시의 예시적인 실시예에 따른 전자 시스템을 나타내는 블록도이다.
도 2a는 본 개시의 예시적인 실시예에 따른 혼합 연산을 나타내고, 도 2b는 제2 연산의 입/출력을 나타내는 도면이다.
도 3a 및 도 3b는 본 개시의 실시예에 따른 혼합 연산 모듈의 구현예들을 나타내는 블록도이다.
도 4는 본 개시의 실시예에 따른 혼합 연산 모듈의 일 동작예를 나타낸다.
도 5는 본 개시의 실시예에 따른 뉴럴 네트워크 시스템의 동작 방법을 나타내는 흐름도이다.
도 6a는 본 개시의 실시예에 따른 혼합 연산에 적용되는 뉴럴 네트워크 모델의 일 예이고, 도 6b는 도 6a의 뉴럴 네트워크 모델의 일 구현예를 나타낸다.
도 7은 본 개시의 실시예에 따른 뉴럴 네트워크 장치의 동작 방법에 따른 뉴럴 네트워크 연산의 입력 및 출력과, 비교예를 나타낸다.
도 8a 및 도 8b는 본 개시의 실시예에 따른 병렬 처리에 기반한 뉴럴 네트워크 연산에서 뉴럴 네트워크 모델의 입력의 사이즈가 변경되는 실시예들을 나타낸다.
도 9는 뉴럴 네트워크 모델의 입력의 사이즈가 변경되는 경우, 뉴럴 네트워크 입력과 제2 입력들의 관계를 예시적으로 나타낸다.
도 10a 및 도 10b는 본 개시의 실시예에 따른 병렬 처리에 기반한 뉴럴 네트워크 연산에서 뉴럴 네트워크 모델의 인스턴스의 개수가 변경되는 실시예들을 나타낸다.
도 11a 및 도 11b는 본 개시의 실시예에 따른 병렬 처리에 기반한 뉴럴 네트워크 연산에서 배치 모드가 변경되는 실시예들을 나타낸다.
도 12는 배치 모드에 따른 뉴럴 네트워크 연산을 설명하는 도면이다.
도 13은 뉴럴 네트워크 모델을 실행하는 프로세서를 나타내는 블록도이다.
도 14는 본 개시의 실시예에 따른 뉴럴 네트워크 시스템의 일 예를 나타낸다
도 15는 도 14의 뉴럴 네트워크 시스템에서 수행되는 혼합 연산을 설명하기 위한 도면이다.
도 16은 도 14의 뉴럴 네트워크 시스템의 동작 방법을 나타내는 흐름도이다.
도 17은 도 16의 S24, S25 및 S26 단계의 일 실시예를 나타내는 흐름도이다.
도 18은 본 개시의 예시적 실시예에 따른 혼합 연산 모듈이 소프트웨어적으로 구현되는 예를 나타내는 블록도이다.
도 19는 본 개시의 예시적 실시예에 따른 자율 운행 시스템을 나타내는 블록도이다.
이하, 첨부한 도면을 참조하여 본 발명의 실시예에 대해 상세히 설명한다.
도 1은 본 개시의 예시적인 실시예에 따른 전자 시스템을 나타내는 블록도이다. 도 2a는 본 개시의 예시적인 실시예에 따른 혼합 연산을 나타내고, 도 2b는 제2 연산의 입/출력을 나타내는 도면이다.
도 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)(hybrid computing module), 연산 장치(130), RAM(140)(Random Access Memory), 메모리(150) 및 센서(160)를 포함할 수 있다. 프로세서(110), 혼합 연산 모듈(120)(hybrid computing module), 연산 장치(130), RAM(140)(Random Access Memory), 메모리(150) 및 센서(160)는 버스를 통해 서로 데이터를 송/수신할 수 있다. 일 실시예에 있어서, 전자 시스템(100)의 구성들 중 적어도 일부는 하나의 반도체 칩에 탑재될 수 있다.
전자 시스템(100)이 뉴럴 네트워크 연산 기능을 수행하는 점에서, 전자 시스템(100)은 뉴럴 네트워크 시스템(NNS)을 포함하는 것으로 정의될 수 있다. 뉴럴 네트워크 시스템(NNS)은 뉴럴 네트워크 동작과 관련하여, 전자 시스템(100)에 구비되는 구성들 중 적어도 일부를 포함할 수 있다. 일 예로서, 도 1에는 뉴럴 네트워크 시스템(NNS)이 프로세서(110), 혼합 연산 모듈(120)(hybrid computing module), 연산 장치(130)를 포함하는 것으로 예시되었으나 이에 국한될 필요가 없다. 예컨대, 뉴럴 네트워크 동작에 관여되는 다른 다양한 종류의 구성들이 뉴럴 네트워크 시스템(NNS)에 구비되는 것으로 정의되어도 무방할 것이다.
프로세서(110)는 전자 시스템(100)의 전반적인 동작을 제어한다. 프로세서(110)는 하나의 프로세서 코어(Single Core)를 포함하거나, 복수의 프로세서 코어들(Multi-Core)을 포함할 수 있다. 프로세서(110)는 메모리(150)에 저장된 프로그램들 및/또는 데이터를 처리 또는 실행할 수 있다. 일 실시예에 있어서, 프로세서(110)는 메모리(150)에 저장된 프로그램들을 실행함으로써, 혼합 연산 모듈(120) 및 연산 장치(130)의 기능을 제어할 수 있다.
혼합 연산 모듈(120)은 혼합 알고리즘을 기초로 입력 데이터를 혼합 연산하여 정보 신호를 생성할 수 있다. 예컨대, 혼합 알고리즘은 하드웨어 기반의 제1 알고리즘 및 소프트웨어 기반의 제2 알고리즘을 포함할 수 있다. 제2 알고리즘은 딥 러닝 알고리즘을 포함하는 뉴럴 네트워크 모델일 수 있다. 뉴럴 네트워크의 모델들은 Convolutional Neural Networks(CNN), Recurrent Neural Networks(RNN), Deep Belief Networks, Restricted Boltzman Machines 등 다양한 종류의 모델들을 포함할 수 있으나 이에 제한되지 않는다. 제1 알고리즘은 다른 데이터 처리 알고리즘으로서, 예컨대 뉴럴 네트워크 모델에 따른 연산(이하 뉴럴 네트워크 연산이라고 함)의 전 처리 단계에서 실행되는 프리-프레세싱 알고리즘일 수 있다.
혼합 연산 모듈(120)은 혼합 알고리즘을 기초로 입력 데이터에 대하여 혼합 연산을 수행하는 뉴럴 네트워크 기반의 혼합 연산 플랫폼으로 정의될 수 있다. 실질적으로 제1 알고리즘 및 제2 알고리즘은 연산 장치(130)에서 실행될 수 있으며, 혼합 연산 모듈(120)은 연산 장치(130)에서 제1 알고리즘 및 제2 알고리즘이 원활하게 실행될 수 있도록 연산 장치(130)를 제어하거나, 연산 장치(130)에 연산 파라미터들을 제공할 수 있다. 실시예에 있어서, 혼합 연산 모듈(120)은 제1 알고리즘 및/또는 제2 알고리즘을 포함할 수 있으며, 제1 알고리즘 및/또는 제2 알고리즘을, 연산 장치(130)에 제공할 수 있다.
한편, 정보 신호는 음성 인식 신호, 사물 인식 신호, 영상 인식 신호, 생체 정보 인식 신호 등과 같은 다양한 종류의 인식 신호 중 하나를 포함할 수 있다. 예를 들어, 혼합 연산 모듈(120)은 비디오 스트림에 포함되는 프레임 데이터를 기초로 혼합 연산을 수행하여 프레임 데이터에 포함된 개체에 대한 인식 신호를 생성할 수 있다. 그러나, 이에 제한되는 것은 아니며, 전자 시스템(100)이 탑재된 전자 장치의 종류 또는 기능에 따라 혼합 연산 모듈(120)은 다양한 종류의 입력 데이터를 기초로 뉴럴 네트워크 모델에 따른 정보 신호를 생성할 수 있다.
도 2a를 참조하면, 혼합 연산은 제1 연산 및 제2 연산을 포함할 수 있으며, 제1 연산은 제1 알고리즘, 즉 프리-프로세싱 알고리즘에 기초하여 수행되고, 제2 연산은 제2 알고리즘, 즉 딥 러닝 알고리즘을 포함하는 뉴럴 네트워크 모델에 기초하여 수행될 수 있다. 제1 연산은 프리-프로세싱으로, 제2 연산은 뉴럴 네트워크 연산으로 지칭될 수 있다. 전술한 바와 같이, 연산 장치(130)에서 제1 알고리즘 및 제2 알고리즘이 실행됨에 따라, 제1 연산 및 제2 연산이 수행될 수 있다.
제1 입력, 즉 입력 데이터에 대하여 제1 연산이 수행되어, 복수의 제1 출력들(OUT1)이 생성되고, 복수의 제1 출력들(OUT1)은 제2 연산의 복수의 입력들, 예컨대 복수의 제2 입력들(도 2B의 IN2_1 내지 IN2_8)로 제공될 수 있다. 복수의 제2 입력들에 대하여 제2 연산, 즉 뉴럴 네트워크 연산이 수행될 수 있으며, 이에 따라서, 적어도 하나의 제2 출력(OUT2)이 출력될 수 있다. 적어도 하나의 제2 출력(OUT2)은 정보 신호 또는 정보 신호를 도출하기 위한 수치일 수 있다.
도 2b를 참조하면, 복수의 제2 입력들(도 2b의 IN2_1 내지 IN2_8)에 대하여 제2 연산이 수행될 때, 적어도 두 개의 제2 입력들에 대하여 병렬적으로 제2 연산이 수행될 수 있다. 예를 들어서, 도 2b에 도시된 바와 같이, 네 개의 제2 입력들(IN2_1 내지 IN2_4, 및 IN2_5 내지 IN2_8)이 병렬적으로 처리될 수 있다. 도 2b에서는, 제2 입력들 IN2_1 내지 IN2_4이 병렬적으로 처리되어, 하나의 제2 출력 OLUT2_1이 생성되는 것으로 도시되었으나, 이에 제한되는 것은 아니며, 네 개의 제2 출력이 생성될 수도 있다.
계속하여 도 1을 참조하면, 혼합 연산 모듈(120)은 혼합 연산 매니저(122)를 포함할 수 있다. 혼합 연산 매니저(122)는 제1 알고리즘 및 제2 알고리즘이 원활하게 실행될 수 있도록 연산 장치(130)에 연산 파라미터들을 제공하거나, 연산 장치(130)를 제어할 수 있다.
실시예에 있어서, 혼합 연산 매니저(122)는 컴퓨팅 정보를 기초로 컴퓨팅 환경을 판단하고, 컴퓨팅 환경에 적응적으로 제2 알고리즘에 따른 연산, 즉 뉴럴 네트워크 연산을 위한 연산 파라미터들을 결정할 수 있다. 즉, 연산 파라미터들은 컴퓨팅 환경에 따라 동적으로 변경될 수 있다. 예컨대, 컴퓨팅 정보는 전자 시스템(100)(또는 뉴럴 네트워크 시스템(NNS))의 컴퓨팅 로드 및 컴퓨팅 수용 능력(computing capability)을 포함할 수 있다. 연산 파라미터들은 뉴럴 네트워크 모델의 입력의 사이즈 및 상기 입력의 개수, 뉴럴 네트워크 모델의 인스턴스 개수, 및 상기 네트워크 모델의 배치 모드 등을 포함할 수 있다. 연산 파라미터들에 기초하여 제2 연산에서 병렬적으로 처리되는 제2 입력들의 개수가 결정될 수 있다. 예를 들어, 뉴럴 네트워크 모델의 입력의 사이즈, 입력의 개수, 인스턴스 개수 및 배치 모드의 입력 개수 중 어느 하나가 증가하면, 병렬적으로 처리되는 제2 입력들의 개수가 증가할 수 있다.
혼합 연산 모듈(120)은 다양한 형태로 구현될 수 있으며, 일 실시예에 따라 혼합 연산 모듈(120)은 소프트웨어 형태로 구현될 수 있다. 그러나, 이에 제한되는 것은 아니며, 혼합 연산 모듈(120)은 하드웨어 형태로 구현되거나, 또는 하드웨어와 소프트웨어의 조합으로 구현될 수 있다.
실시예에 있어서, 혼합 연산 모듈(120)은 운영 체제(OS)나 그 하위 단에 소프트웨어 형태로 구현될 수 있으며, 프로세서(110) 및/또는 연산 장치(130)에 의해 실행됨으로써 정보 신호를 생성할 수 있다. 즉, 프로세서(110) 및 /또는 연산 장치(130)가 혼합 연산 모듈(120)을 실행함으로써, 입력 데이터로부터 정보 신호 생성을 위한 혼합 알고리즘 기반 연산이 실행될 수 있다.
연산 장치(130)는 혼합 연산 모듈(120)의 제어 하에, 수신되는 입력 데이터에 대하여 제1 알고리즘에 따른 제1 연산 및 제2 알고리즘에 따른 제2 연산을 수행할 수 있다. 전술한 바와 같이, 제1 알고리즘은 프리-프로세싱 알고리즘이고, 제2 알고리즘은 뉴럴 네트워크 모델일 수 있다. 연산 장치(130)는 적어도 하나이상의 프로세서를 포함할 수 있으며, 제1 알고리즘 및 제2 알고리즘은 동종의 또는 이종의 프로세서에서 실행될 수 있다. 연산 장치(130)는 CPU(Central Processing Unit), GPU(Graphic Processing Unit), NPU(Numeric Processing Unit), DSP(Digital Signal Processor), FPGA(Field Programmable Gate array) 등을 포함할 수 있다. 실시예에 있어서, 제1 알고리즘은 전용 프로세서에서 실행될 수 있다. 또는 제1 알골리즘은 연산 장치(130)에 포함되는 프로세서들 중 하나로서, 하드웨어적으로 구현될 수 있다.
연산 장치(130)는 연산 결과를 기초로 정보 신호를 생성할 수도 있다. 연산 장치(130)는 혼합 알고리즘에 따른 혼합 연산을 수행하기 위한 하나 이상의 프로세서(예컨대, 전용 프로세서)를 포함할 수 있다. 또한, 연산 장치(130)는 뉴럴 네트워크의 모델들에 대응하는 프로그램들을 저장하기 위한 별도의 메모리(미도시)를 포함할 수도 있다.
RAM(140)은 프로그램들, 데이터, 또는 명령들(instructions)을 일시적으로 저장할 수 있다. 예컨대 메모리(150)에 저장된 프로그램들 및/또는 데이터는 프로세서(110)의 제어 또는 부팅 코드에 따라 RAM(140)에 일시적으로 저장될 수 있다. RAM(140)은 DRAM(Dynamic RAM) 또는 SRAM(Static RAM) 등의 메모리로 구현될 수 있다.
메모리(150)는 전자 시스템(100)을 제어하는 제어 명령어코드, 제어 데이터 또는 사용자 데이터를 저장할 수 있다. 메모리(150)는 휘발성 메모리(volatile memory) 또는 불휘발성 메모리(nonvolatile memory) 중 적어도 하나를 포함할 수 있다.
센서(160)는 전자 시스템(100)의 내부 또는 외부 신호를 센싱하고, 센싱에 따라 생성되는 데이터를 혼합 연산을 위한 입력 데이터로서 연산 장치(130)에 제공할 수 있다. 센서(160)는 이미지 센서, 적외선 센서, 카메라, 터치 센서, 조도 센서, 음향 센서, 가속도 센서, 조향 센서, 바이오 센서 등을 포함할 수 있다. 그러나 이에 제한되는 것은 아니며, 센서(160)는 전자 시스템(100)의 기능에 따라 요구되는 입력 데이터를 생성하는 다양한 종류의 센서 중 하나일 수 있다.
전술한 바와 같이, 본 개시의 실시예에 따른 전자 시스템(100)은 혼합 연산 모듈(120)의 혼합 연산 매니저(122)가 시간에 따라 가변적인 컴퓨팅 로드 및 컴퓨팅 수용 능력(computing capability)을 기초로 연산 파라미터들을 동적으로 변경할 수 있다. 이에 따라 연산 장치(130)가 컴퓨팅 환경에 적응적으로 뉴럴 네트워크 모델에 따른 병렬 처리를 수행할 수 있으며, 뉴럴 네트워크 연산 속도가 향상될 수 있다. 따라서, 전자 시스템(100) 또는 뉴럴 네트워크 시스템(NNS)의 성능이 향상될 수 있다.
도 3a 및 도 3b는 본 개시의 실시예에 따른 혼합 연산 모듈의 구현예들을 나타내는 블록도이다. 도 4는 본 개시의 실시예에 따른 혼합 연산 모듈의 일 동작예를 나타낸다. 보다 상세한 설명을 위하여, 도 3a 및 도 3b에 연산 장치(130a, 130b)를 함께 도시한다. 도 3a 및 도 3b의 혼합 연산 모듈(120a, 120b)는 도 1의 혼합 연산 모듈(120)의 예시적 구현예들이며, 따라서, 도 1 내지 도 2B를 참조하여 설명한 내용은 본 실시예들에 적용될 수 있다.
도 3a를 참조하면, 혼합 연산 모듈(120a)은 애플리케이션(121), 혼합 연산 매니저(122), 뉴럴 네트워크 프레임워크(123), 컨텍스트 매니저(124) 및 컴퓨팅 리소스 매니저(125)를 포함할 수 있다.
애플리케이션(121)은 뉴럴 네트워크 연산을 포함하는 혼합 연산이 요구되는 기능을 실행하는 응용 프로그램일 수 있다. 예컨대 애플리케이션(121)은 촬상 이미지에 포함된 객체(예컨대, 얼굴, 도로, 선 등)를 트래킹하는 카메라 전용 응용 프로그램일 수 있다. 그러나, 이에 제한되는 것은 아니며 애플리케이션(121)은 다양한 종류의 응용 프로그램일 수 있다.
혼합 연산 매니저(122)는 혼합 연산 과정을 제어할 수 있다. 전술한 바와 같이, 혼합 연산 매니저(122)는 뉴럴 네트워크 모델에 따른 연산을 위한 연산 파라미터들(도 4의 CPM)을 결정할 수 있다.
도 4를 참조하면, 혼합 연산 매니저(122)는 컴퓨팅 환경에 대한 다이나믹 정보(DIF), 스태틱 정보(SIF) 및 제1 연산의 결과, 즉 제1 출력 정보(IF_OUT1)를 기초로 실시간으로 컴퓨팅 로드 및 컴퓨팅 수용 능력을 판단하고, 컴퓨팅 로드 및/또는 컴퓨팅 수용 능력을 기초로 컴퓨팅 환경에 적응적으로 연산 파라미터들(CPM)을 결정하거나, 또는 이전에 결정된 연산 파라미터들(CPM)을 변경 할 수 있다. 연산 파라미터들(CPM)은 뉴럴 네트워크 모델의 입력의 사이즈 및 상기 입력의 개수, 뉴럴 네트워크 모델의 인스턴스 개수, 및 뉴럴 네트워크 모델의 배치 모드(예컨대, 배치 모드의 입력의 개수) 등을 포함할 수 있다.
스태틱 정보(SIF)는 전자 시스템(100) 내의 각종 구성 요소들의 기본 정보들을 포함할 수 있으며, 일 예로 뉴럴 네트워크 모델(또는, 뉴럴 네트워크 알고리즘)을 실행하는 하드웨어의 성능 및 특성 등의 컴퓨팅 리소스(Computing resource) 정보를 포함할 수 있다. 또한, 다이나믹 정보(DIF)는 뉴럴 네트워크 모델을 실행하는 도중에 발생될 수 있는 각종 정보들을 포함하며, 일 예로서 런타임(runtime) 과정에서의 컴퓨팅 컨텍스트(Computing context) 정보를 포함할 수 있다. 제1 출력 정보(IF_OUT1)는 예컨대 제1 출력들의 사이즈(또는 디멘젼), 제1 출력들의 개수 등을 포함할 수 있다.
실시예에 있어서, 혼합 연산 매니저(122)는 컴퓨팅 로드 및 컴퓨팅 수용 능력을 입력으로 하는 결정 함수 또는 알고리즘을 포함할 수 있으며, 가변하는 컴퓨팅 로드 및 컴퓨팅 수용 능력을 기초로 가변적인 결정 값(Y)을 생성할 수 있다. 혼합 연산 매니저(122)는 결정 값(Y)에 따라서, 연산 파라미터들(CPM)을 결정 또는 변경할 수 있다. 실시예에 있어서, 혼합 연산 매니저(122)는 컴퓨팅 로드 및 컴퓨팅 수용 능력의 가변적인 값들에 따라 연산 파라미터들(CPM)이 다양하게 설정된 룩-업 테이블을 포함할 수 있으며, 컴퓨팅 로드 및 컴퓨팅 수용을 기초로 룩-업 테이블을 엑세스하여 연산 파라미터들(CPM)을 결정할 수 있다.
혼합 연산 매니저(122)는 연산 장치(130a)에 포함된 프로세서들 중 뉴럴 네트워크 연산을 수행하는 프로세서에 연산 파라미터들(CPM)을 제공할 수 있다. 또는, 혼합 연산 매니저(122)는 연산 파라미터들(CPM)을 기초로 뉴럴 네트워크 연산을 수행하는 프로세서를 제어할 수 있다.
뉴럴 네트워크 프레임워크(123)는 딥 러닝 알고리즘을 포함하는 뉴럴 네트워크 모델을 포함한다. 예컨대, 뉴럴 네트워크 모델은 CNN(Convolution Neural Network), R-CNN(Region with Convolution Neural Network), RNN(Recurrent Neural Network), S-DNN(Stacking-based deep Neural Network), Exynos DNN, S-SDNN(State-Space Dynamic Neural Network), Caffe, TensorFlow 등을 포함할 수 있다. 뉴럴 네트워크 프레임워크(123)는 뉴럴 네트워크 모델의 뎁스(depth) 및 브랜치(branch) 등의 레이어 토폴로지(Layer topology), 압축 방법에 관련된 정보, 각각의 레이어에서의 연산에 관련된 정보(예컨대, 입력 및 출력 사이즈 등의 데이터 특성(Data property) 정보, 커널/필터, 웨이트, 포맷(format), 보안(security), 패딩, 스트라이드 등), 데이터 압축 방법 등의 다양한 정보들을 포함할 수 있다. 뉴럴 네트워크 프레임워크(123)로부터 제공되는 뉴럴 네트워크 모델 이 연산 장치(130a)에서 실행될 수 있다. 실시예에 있어서, 뉴럴 네트워크 시스템(도 1의 NNS)은 재트레이닝을 수행하지 않을 수 있다. 이에 따라서, 뉴럴 네트워크 모델은 동일성을 유지할 수 있다.
컨텍스트 매니저(124)는 혼합 알고리즘을 실행하는 과정에서 생성되는 다이나믹 정보를 관리하고 이를 혼합 연산 매니저(122)로 제공할 수 있다. 런타임 도중 뉴럴 네트워크 연산 수행에 관련된 각종 상태나 정보들이 컨텍스트 매니저(124)에 의해 관리될 수 있으며, 일 예로서 출력 정확도(Output accuracy), 레이턴시(latency) 및 영상 처리 속도(Frame Per Second (FPS)) 등에 관련된 정보나, 애플리케이션(121)에서 관리하는 허용 가능한 정확도 손실(Loss)에 관련된 정보가 컨텍스트 매니저(124)를 통해 혼합 연산 매니저(122)로 제공될 수 있다. 상기와 같은 런타임 관련 다이나믹 정보와 함께, 리소스에 관련된 다이나믹 정보로서 컴퓨팅 리소스 상태의 변동, 파워/온도 정보, 버스(BUS)/메모리/스토리지 상태, 애플리케이션 종류 및 애플리케이션의 라이프 사이클(Lifecycle) 등의 각종 정보들이 컨텍스트 매니저(124)를 통해 혼합 연산 매니저(122)로 제공될 수 있다.
컴퓨팅 리소스 매니저(125)는 다양한 종류의 스태틱 정보들을 판단할 수 있다. 일 예로서, 컴퓨팅 리소스 매니저(125)는 하드웨어에 대한 다른 정보들로서, 하드웨어의 성능 및 파워 소모 등의 용량(Capacity)에 관련된 정보나, 지지되지 않는 데이터 타입(unsupported data type)이나 데이터 레이아웃, 압축, 양자화 알고리즘(quantization algorithm) 등의 하드웨어의 한계(Limitation) 정보를 판단할 수 있다. 이 외에도, 컴퓨팅 리소스 매니저(125)는 더 나은 가속(acceleration)을 위한 하드웨어(예컨대, 전용 하드웨어)에 대한 다양한 정보들로서, 컨벌루션/가산/최대값 등의 연산 방식 정보, 커널 구조 정보, 데이터 플로우(data flow) 정보 및 데이터 재사용(reuse) 방식 정보 등 다양한 종류의 정보들을 판단할 수 있다.
도 3a에서, 연산 장치(103a)는 CPU(131), GPU(132), DSP(133), NPU(134), FPGA(135)를 포함하는 것으로 도시되었으나, 연산 장치(103a)는 FPGA(135) 를 포함할 수 있으며, 또한 CPU(131), GPU(132), NPU(133), DSP(134) 중 적어도 하나의 프로세서를 더 포함할 수 있다. 또는 연산 장치(103a)는 다른 종류의 프로세서를 더 포함할 수도 있다.
실시예에 있어서, 제1 알고리즘은 FPGA(135)에 하드웨어로서 구현될 수 있다. FPGA(135)가 입력 데이터에 대하여 제1 알고리즘에 따른 제1 연산을 수행하여 생성되는 복수의 제1 출력들은 다른 프로세서, 예컨대 CPU(131), GPU(132), NPU(133), DSP(134) 중 하나에 제공될 수 있다. 예를 들어, GPU(132)가 뉴럴 네트워크 연산을 수행한다고 가정하면, FPGA(135)로부터 출력되는 제1 출력들이 GPU(132)로 전송될 수 있다. GPU(132)는 혼합 연산 매니저(122)로부터 제공되는 연산 파라미터들을 기초로 또는 혼합 연산 매니저(122)의 제어에 따라 병렬적 뉴럴 네트워크 연산을 수행할 수 있다. 본 실시예에 따르며, 혼합 알고리즘, 즉, 제1 알고리즘 및 제2 알고리즘이 구분적으로 적합한 하드웨어에서 수행됨으로써, 혼합 알고리즘의 처리 속도가 향상될 수 있다.
도 3b를 참조하면, 혼합 연산 모듈(120b)은 애플리케이션(121), 혼합 연산 매니저(122), 뉴럴 네트워크 프레임워크(123), 컨텍스트 매니저(124), 컴퓨팅 리소스 매니저(125) 및 프리-프로세싱 알고리즘(126)을 포함할 수 있다. 도 3a의 혼합 연산 모듈(120a)과 비교하면, 혼합 연산 모듈(120b)은 프리-프로세싱 알고리즘(126)을 더 포함할 수 있다.
프리-프로세싱 알고리즘(126)은 제1 연산, 예컨대 뉴럴 네트워크 연산 전에 입력 데이터를 프리-프로세싱하기 위한 제1 알고리즘이며, 소프트웨어로 구현될 수 있다. 프리-프로세싱 알고리즘(126)은 연산 장치(130b)의 프로세서들, 예컨대, CPU(131), GPU(132), NPU(133), DSP(134) 중 하나에서 실행될 수 있다. 실시예에 있어서, 프리-프로세싱 알고리즘 및 뉴럴 네트워크 모델은 이종 또는 동종의 프로세서에서 실행될 수 있다.
도 5는 본 개시의 실시예에 따른 뉴럴 네트워크 시스템의 동작 방법을 나타내는 흐름도이다. 도 5의 동작 방법은 도 1의 뉴럴 네트워크 시스템(NNS)에서 수행될 수 있다.
도 5를 참조하면, 제1 입력을 수신할 수 있다(S11). 제1 입력은 입력 데이터이며, 예컨대, 센서(도 1의 160)로부터 제공될 수 있다. 제1 입력은 예컨대, 적어도 한 프레임의 영상 데이터, 음성 데이터, 터치 데이터 등을 포함할 수 있다. 예컨대, 연산 장치(130)가 제1 입력을 수신할 수 있다.
제1 입력에 대하여 제1 연산을 수행하여 복수의 제1 출력을 생성할 수 있다(S12). 예컨대, 연산 장치(130)는 제1 입력에 대하여, 하드웨어 또는 소프트웨어로 구현된 제1 알고리즘에 따른 제1 연산을 수행함으로써, 복수의 제1 출력을 생성할 수 있다. 복수의 제1 출력은 서로 동일한 사이즈를 가질 수 있다. 복수의 제1 출력은 2차원 또는 3차원 데이터를 포함할 수 있다. 한편, 제1 출력은 제2 연산, 즉 뉴럴 네트워크 연산을 위한 입력으로서 제공될 수 있으며, 따라서, 제1 출력은 제2 입력 또는 연산 입력으로 지칭될 수 있다.
컴퓨팅 로드 및 컴퓨팅 수용 능력을 확인할 수 있다(S13). 혼합 연산 매니저(122)가 스태틱 정보, 다이나믹 정보 및 제1 출력 정보를 기초로 컴퓨팅 로드 및 컴퓨팅 수용 능력을 확인할 수 있다. 컴퓨팅 로드 및 컴퓨팅 수용 능력은 실시간으로 변할 수 있다. 또한, 제1 연산, 즉 S12 단계가 수행될 때마다 제1 출력들에 대한 정보가 변할 수 있다. 예컨대, 복수의 제1 출력의 개수가 제1 출력 정보로 제공될 수 있으며, 복수의 제1 출력의 개수는 제1 연산이 수행될 때마다 변할 수 있다. 따라서, 혼합 연산 매니저(122)는 제1 연산의 수행이 완료된 후, 또는 주기적으로 컴퓨팅 로드 및 컴퓨팅 수용 능력을 확인할 수 있다.
컴퓨팅 로드 및/또는 컴퓨팅 수용 능력을 기초로 연산 파라미터를 결정할 수 있다(S14). 실시에에 있어서, 혼합 연산 매니저(122)는 컴퓨팅 로드 및 컴퓨팅 수용에 따른 컴퓨팅 환경에서 뉴럴 네트워크 시스템(NNS)이 최적의 성능을 가질 수 있도록 적응적으로 연산 파라미터를 결정할 수 있다. 또한, 컴퓨팅 로드 및 컴퓨팅 수용 능력이 변경됨에 따라, 연산 파라미터들이 동적으로 결정, 즉 변경될 수 있다. 전술한 바와 같이, 연산 파라미터들은 뉴럴 네트워크 모델의 입력의 사이즈 및 상기 입력의 개수, 뉴럴 네트워크 모델의 인스턴스 개수, 및 뉴럴 네트워크 모델의 배치 모드 등을 포함할 수 있다. 실시예에 있어서, 컴퓨팅 로드 및 컴퓨팅 수용 능력 중 하나, 예컨대 컴퓨팅 로드 및 컴퓨팅 수용 능력을 나타내는 지표들 중 적어도 하나의 지표를 기초로 연산 파라미터들을 결정할 수도 있다.
연산 파라미터들을 기초로 결정되는 N개(N은 2 이상의 정수)의 제1 출력들에 대하여 병렬적으로 제2 연산을 수행할 수 있다(S15). 연산 파라미터에 따라 병렬적으로 처리될 제1 출력들의 개수 N이 결정될 수 있다. 따라서, 연산 파라미터가 변경되면, 제1 출력들의 개수 N이 변경될 수 있다. 예컨대, 뉴럴 네트워크 모델의 입력의 사이즈 및 상기 입력의 개수, 뉴럴 네트워크 모델의 인스턴스 개수, 및 뉴럴 네트워크 모델의 배치 모드 중 적어도 하나를 기초로 병렬적으로 처리될 제1 출력들의 개수 N 가 결정될 수 있다. 연산 장치(130)는 연산 파라미터를 기초로 결정되는 N개의 제1 출력들, 즉 N개의 제2 입력들에 대하여 병렬적으로 제2 연산을 수행할 수 있다.
실시예에 있어서, 제1 연산 및 제2 연산은 연산 장치(130)에 포함되는 복수의 프로세서들 중 동종 또는 이종의 프로세서에서 수행될 수 있다. 제1 연산 및 제2 연산이 이종의 프로세서에서 수행될 경우, 복수의 제1 출력은 제2 연산이 수행될 프로세서로 전송될 수 있다.
실시예에 있어서, 제1 연산은 프로세서(110)에서 수행될 수 있으며, 프로세서(110)는 복수의 제1 출력을 연산 장치(130), 구체적으로 연산 장치(130)에 포함되는 복수의 프로세서들 중 제2 연산을 수행될 프로세서로 전송할 수 있다.
도 6a는 본 개시의 실시예에 따른 혼합 연산에 적용되는 뉴럴 네트워크 모델의 일 예이고, 도 6b는 도 6a의 뉴럴 네트워크 모델의 일 구현예를 나타낸다.
도 6a를 참조하면, 뉴럴 네트워크 모델은 복수의 레이어(L1, L2, L3)를 포함하는 딥 뉴럴 네트워크일 수 있다. 도 6a에서, 세 개의 레이어(L1, L2, L3)가 도시되었으나, 이는 예시적인 설명을 위한 것일 뿐이며, 레이어들의 수 및 종류는 구현된 뉴럴 네트워크 모델에 따라 상이할 수 있다. 복수의 레이어(L1, L2, L3) 중 입력 레이어, 예컨대 제1 레이어(L1) 및 출력 레이어(L3)를 제외한 나머지 레이어들, 예컨대 제2 레이어(L2)는 은닉 레이어로 지칭될 수 있다.
복수의 레이어(L1, L2, L3)에서 동종 또는 이종의 계산이 수행할 수 있다. 뉴럴 네트워크 모델의 입력(NNI)(이하 뉴럴 네트워크 입력이라고 함)이 제1 레이어(L1)에 제공되면, 제1 레이어(L1)에서, 제1 계산이 수행되고, 제1 레이어(L1)의 출력이 제2 레이어(L2)에 제공될 수 있다. 제2 레이어(L2)에서, 제1 레이어(L1)의 출력에 대하여, 제2 계산이 수행되고, 제2 레이어(L2)의 출력이 제3 레이어(L3)에 제공될 수 있다. 제3 레이어(L3)에서, 제2 레이어(L2)의 출력에 대하여, 제3 계산이 수행되고, 제3 레이어(L3)의 출력이 뉴럴 네트워크 모델의 출력(NNO)(이하 뉴럴 네트워크 출력이라고 함)으로서 출력될 수 있다.
도 6b를 참조하면, 제1 레이어(L1)는 컨볼루션(convolution) 레이어이고, 제2 레이어(L2)는 풀링(pooling) 레이어이고, 제3 레이어(L3)는 출력 레이어일 수 있다. 출력 레이어는 풀리 커넥티드(fully connected) 레이어일 수 있다. 뉴럴 네트워크 모델은 활성 레이어를 더 포함할 수 있으며, 도 6b에 도시된 레이어들 외에 또 다른 컨볼루션 레이어, 풀링 레이어, 또는 풀리 커넥티드 레이어를 더 포함할 수 있다. 뉴럴 네트워크 입력(NNI) 및 복수의 레이어(L1, L2, L3)의 출력은 각각 피처 맵 또는 피처 매트릭스로 지칭될 수 있다.
복수의 레이어(L1, L2, L3) 각각은 뉴럴 네트워크 입력(NNI) 또는 이전 레이어에서 생성된 피처 맵을 입력 피처 맵으로서 수신하고, 입력 피처 맵을 연산하여 출력 피처 맵 또는 인식 신호(REC)를 생성할 수 있다. 이때, 피처 맵은 뉴럴 네트워크 입력(NNI)의 다양한 특징이 표현된 데이터를 의미한다. 피처 맵들(FM1, FM2, FM3)은 2차원 매트릭스 또는 3차원 매트릭스(또는 텐서(tensor)라고 함) 형태를 가질 수 있다. 피처 맵들(FM1, FM2, FM3)은 너비(W)(또는 칼럼이라고 함), 높이(H)(또는 로우라고 함)를 가질 수 있으며, 추가적으로 깊이를 가질 수 있다. 이는 좌표상의 x축, y축 및 z축에 각각 대응할 수 있다. 이때, 깊이는 채널 수로 지칭될 수 있다.
제1 레이어(L1)에서는 제1 피처 맵(FM1)이 웨이트 맵(WM)과 컨볼루션되어 제2 피처 맵(FM2)이 생성할 수 있다. 웨이트 맵(WM)은 제1 피처 맵(FM1)을 필터링할 수 있으며, 필터 또는 커널로 지칭될 수 있다. 제2 레이어(L2)에서, 풀링 윈도우(PW)를 기초로 제2 피처 맵(FM2)의 사이즈가 감소되고, 이에 따라 제3 피처 맵(FM3)이 생성될 수 있다. 풀링은 샘플링 또는 다운-샘풀링으로 지칭될 수 있다.
제3 레이어(L3)에서, 제3 피처 맵(FM3)의 피처들을 조합하여 뉴럴 네트워크 입력(NNI)의 클래스(class)(CL)를 분류할 수 있다. 또한, 클래스에 상응하는 인식 신호(REC)를 생성할 수 있다. 일 실시예에 있어서, 입력 데이터는 비디오 스트림(video stream)에 포함되는 프레임 이미지일 경우, 제3 레이어(L3)에서, 프레임 이미지에 포함되는 개체들에 대응하는 클래스가 추출될 수 있다. 그리고, 인식된 개체에 상응하는 인식 신호(REC)가 생성될 수 있다.
도 7은 본 개시의 실시예에 따른 뉴럴 네트워크 장치의 동작 방법에 따른 뉴럴 네트워크 연산의 입력 및 출력과, 비교예를 나타낸다. 도 7의 (a)는 본 개시의 실시예에 따른 병렬 처리에 기반한 뉴럴 네트워크 연산의 입력 및 출력을 나타내고, 도 7의 (b)는 직렬 처리(sequential processing)에 기반한 뉴럴 네트워크 연산의 입력 및 출력을 나타낸다.
도 7의 (a)를 참조하면, 복수의 제2 입력들(IN2_1 내지 IN2_6) 중 적어도 두 개의 제2 입력들(예컨대 제2 입력들 IN2_1 및 IN2_2, 및 제2 입력들 IN2_2 내지 IN2_4)이 뉴럴 네트워크 모델에 따라 병렬적으로 연산될 수 있다. 뉴럴 네트워크 시스템의 컴퓨팅 환경, 예컨대 컴퓨팅 로드 및 컴퓨팅 수용 능력에 따라 병렬적으로 처리되는 제2 입력들의 개수가 가변될 수 있다. 두 개 이상의 제2 입력들이 병렬 처리되어 하나의 제2 출력이 생성될 경우의 제2 출력의 사이즈는, 하나의 제2 입력이 처리되어 하나의 제2 출력이 생성되는 경우의 제2 출력의 사이즈보다 커질 수 있다.
도 7의 (b)에 따라 복수의 제2 입력들(IN2_1 내지 IN2_6)이 시퀀셜하게 처리될 경우, 복수의 제2 입력들(IN2_1 내지 IN2_6)을 처리하는데 소요되는 시간은 본 개시의 실시예에 따라 적어도 두 개의 제2 입력들을 병렬적으로 처리하는데 소요되는 시간보다 길 수 있다.
따라서, 본 개시의 실시예에 따른 뉴럴 네크워크 장치의 동작 방법, 즉 병렬 처리에 기반한 뉴럴 네트워크 연산에 따르면, 뉴럴 네트워크 장치의 처리 속도가 감소되고, 성능이 향상될 수 있다.
이하, 본 개시의 실시예에 따른 병렬 처리에 기반한 뉴럴 네트워크 연산에 대하여 연산 파라미터들, 예컨대 뉴럴 네트워크 모델의 입력 사이즈, 뉴럴 네트워크의 인스턴스 개수 및 배치 모드가 변경되는 다양한 경우들에 대하여 예시적으로 설명하기로 한다.
도 8a 및 도 8b는 본 개시의 실시예에 따른 병렬 처리에 기반한 뉴럴 네트워크 연산에서 뉴럴 네트워크 모델의 입력의 사이즈가 변경되는 실시예들을 나타낸다.
도 8a 및 도 8b에서, 제2 입력들(IN2_1 내지 IN2_8)은 혼합 연산에서 제1 연산에 따른 출력, 예컨대 제1 출력들을 의미한다. 제2 입력들(IN2_1 내지 IN2_8)은 연산 입력으로 지칭될 수 있다. 뉴럴 네트워크 입력들(NNI_1 내지 NNI_4)은 하나의 뉴럴 네트워크 모델에 따라 연산되는 뉴럴 네트워크 모델의 입력을 의미하고, 뉴럴 네트워크 출력들(NNO_1 내지 NNO)은 뉴럴 네트워크 입력들(NNI_1 내지 NNI_4) 각각의 연산에 따른 연산 결과를 의미한다. 도 8a 및 도 8b에서 뉴럴 네트워크 입력들(NNI_1 내지 NNI_4)은 차례로 연산되는 것으로 도시되었으나, 이에 제한되는 것은 아니며, 도 11a 및 도 11b를 참조하여 후술되는 바와 같이, 뉴럴 네트워크 입력들(NNI_1 내지 NNI_4) 중 적어도 두 개가 병렬적으로 연산될 수 도 있다.
도 8a 및 도 8b를 참조하면, 뉴럴 네트워크 입력들(NNI_1 내지 NNI_4)의 사이즈는 제2 입력들(IN2_1 내지 IN2_8), 즉 제1 출력들의 사이즈의 K배(K는 2 이상의 정수)일 수 있으며, 뉴럴 네트워크 입력들(NNI_1 내지 NNI_4)의 사이즈는 변경될 수 있다.
도 8a를 참조하면, 뉴럴 네트워크 입력들(NNI_1 내지 NNI_4)의 사이즈는 제2 입력들(IN2_1 내지 IN2_8)의 사이즈의 두 배일 수 있다. 이에 따라 두 개의 제2 입력이 하나의 뉴럴 네트워크 입력으로 제공될 수 있다. 뉴럴 네트워크 출력들(NNO_1 내지 NNO_4)의 사이즈는 뉴럴 네트워크 입력들(NNI_1 내지 NNI_4)의 사이즈에 비례하여 변경될 수 있다. 도 8a의 뉴럴 네트워크 출력들(NNO_1 내지 NNO_4)의 사이즈는 뉴럴 네트워크 입력들(NNI_1 내지 NNI_4)의 사이즈가 제2 입력들(IN2_1 내지 IN2_8)의 사이즈와 동일한 때의 뉴럴 네트워크 출력들(NNO_1 내지 NNO_4)의 사이즈의 두 배일 수 있다.
도 8b를 참조하면, 뉴럴 네트워크 입력들(NNI_1 내지 NNI_4)의 사이즈는 제2 입력들(IN2_1 내지 IN2_8)의 사이즈의 네 배일 수 있다. 이에 따라 네 개의 제2 입력들이 하나의 뉴럴 네트워크 입력으로 제공될 수 있다. 예컨대 도 8b의 경우, 도 8b의 뉴럴 네트워크 출력들(NNO_1 내지 NNO_4)의 사이즈는 뉴럴 네트워크 입력들(NNI_1 내지 NNI_4)의 사이즈가 제2 입력들(IN2_1 내지 IN2_8)의 사이즈와 동일한 때의 뉴럴 네트워크 출력들(NNO_1 내지 NNO_4)의 사이즈의 네 배일 수 있으며, 도 8a의 뉴럴 네트워크 출력들(NNO_1 내지 NNO_4)의 사이즈의 두 배일 수 있다.
뉴럴 네트워크 입력들(NNI_1 내지 NNI_4)의 사이즈는 전술한 바와 같이, 컴퓨팅 로드 및/또는 컴퓨팅 수용 능력에 따라 변경될 수 있다. 예를 들어서, 컴퓨팅 로드가 증가하고, 컴퓨팅 수용 능력이 충분하다면, 뉴럴 네트워크 입력들(NNI_1 내지 NNI_4)의 사이즈가 증가할수 있다. 또는 컴퓨팅 로드가 감소된다면, 순간 소비 전력을 고려하여, 뉴럴 네트워크 입력들(NNI_1 내지 NNI_4)의 사이즈가 감소될 수 있다.
도 9는 뉴럴 네트워크 모델의 입력의 사이즈가 변경되는 경우, 뉴럴 네트워크 입력과 제2 입력들의 관계를 예시적으로 나타낸다.
도 9를 참조하면, 제2 입력들(IN1_1 내지 IN2_4)은 8 X 8의 2차원 데이터일 수 있다. 도시된 바와 같이, 뉴럴 네트워크 입력(NNI)의 사이즈가 제2 입력들(IN1_1 내지 IN2_4)의 사이즈의 4배로 설정될 수 있으며, 뉴럴 네트워크 입력(NNI)의 사이즈는 16 X 16으로 설정될 수 있다. 따라서, 네 개의 제2 입력들(IN1_1 내지 IN2_4)이 뉴럴 네트워크 입력(NNI)으로 제공되어 뉴럴 네트워크 모델에 따라 연산될 수 있다. 따라서, 네 개의 제2 입력들(IN1_1 내지 IN2_4)이 병렬적으로 처리될 수 있다. 도 9는 제2 입력들(IN1_1 내지 IN2_4)이 2차원 데이터인 경우를 예를 들어 설명하였으나, 이에 제한되는 것은 아니며, 제2 입력들(IN1_1 내지 IN2_4)은 3차원 또는 다차원 데이터일 수 있다.
도 8a 내지 도 9를 참조하여, 뉴럴 네트워크 입력 및 출력의 사이즈가 변경되는 실시예를 설명하였다. 전술한 내용은 예시적인 실시예이며, 이 외에도, 뉴럴 네트워크 입력 및 출력의 사이즈는 다양하게 변경될 수 있다.
도 10a 및 도 10b는 본 개시의 실시예에 따른 병렬 처리에 기반한 뉴럴 네트워크 연산에서 뉴럴 네트워크 모델의 인스턴스의 개수가 변경되는 실시예들을 나타낸다. 도 10a 및 도 10b에서, 뉴럴 네트워크 입력들(NNI1_1 내지 NNI1_4 및 NNI2_1 내지 NNI2_4)의 사이즈는 제2 입력들의 사이즈와 동일하다고 가정한다. 즉, 제2 입력들이 각각 뉴럴 네트워크 입력들(NNI1_1 내지 NNI1_4 및 NNI2_1 내지 NNI2_4) 중 하나로 제공된다고 가정한다.
도 10a 및 도 10b를 참조하면, 두 개 이상의 뉴럴 네트워크 모델이 병렬적으로 실행될 수 있다. 다시 말해서 뉴럴 네트워크 모델의 인스턴스는 복수개로 설정될 수 있다. 뉴럴 네트워크 모델의 인스턴스 개수는 변경될 수 있다.
인스턴스가 하나일 경우, 하나의 뉴럴 네트워크 모델이 실행되고, 인스턴스가 두 개일 경우, 두 개의 뉴럴 네트워크 모델, 예컨대 제1 뉴럴 네트워크 모델 및 제2 뉴럴 네트워크 모델이 실행될 수 있다. 이때, 제1 뉴럴 네트워크 모델 및 제2 뉴럴 네트워크 모델은 동일하다. 즉, 제1 뉴럴 네트워크 모델 및 제2 뉴럴 네트워크 모델의 컨텐츠, 예컨대 뉴럴 네트워크 모델에서 적용되는 웨이트들 또는 웨이트 맵들, 적용 함수 등이 동일하다.
도 10a에서, 제1 뉴럴 네트워크 입력들(NNI1_1 내지 NNI1_4)은 제1 뉴럴 네트워크 모델의 입력들을 나타내고, 제2 뉴럴 네트워크 입력들(NNI2_1 내지 NNI2_4)은 제2 뉴럴 네트워크 모델의 입력들을 나타내고, 제1 뉴럴 네트워크 출력들(NNO1_1 내지 NNO1_4)은 제1 뉴럴 네트워크 모델의 출력들을 나타내고, 제2 뉴럴 네트워크 출력들(NNO2_1 내지 NNO2_4)은 제2 뉴럴 네트워크 모델의 출력들을 나타낸다. 뉴럴 네트워크 모델의 인스턴스 개수가 두 개로 설정됨에 따라, 두 개의 뉴럴 네트워크 모델이 동시에 실행될 수 있다. 따라서, 제1 및 제2 뉴럴 네트워크 입력들(NNI1_1 및 NNI2_1, NNI1_2 및 NNI2_2, NNI1_3 및 NNI2_3, 및 NNI1_4 및 NNI2_4), 즉 두 개의 제2 입력들이 병렬적으로 처리되고, 제1 및 제2 뉴럴 네트워크 출력들(NNO1_1 및 NNO2_1, NNO1_2 및 NNO2_2, NNO1_3 및 NNO2_3, 및 NNO1_4 및 NNO2_4)이 생성될 수 있다.
도 10b를 참조하면, 뉴럴 네트워크 모델의 인스턴스 개수가 네 개로 설정됨에 따라, 네 개의 뉴럴 네트워 모델이 동시에 실행될 수 있다. 따라서, 제1 내지 제4 뉴럴 네트워크 입력들(NNI1_1 내지 NNI4_1, 및 NNI1_2 내지 NNI4_2), 즉 네 개의 제2 입력들이 병렬적으로 처리되고, 즉 제1 내지 제4 뉴럴 네트워크 출력들(NNO1_1 내지 NNO4_1, 및 NNO1_2 내지 NNO4_2)이 생성될 수 있다.
뉴럴 네트워크 모델의 인스턴스 개수는 컴퓨팅 로드 및/또는 컴퓨팅 수용 능력에 따라 변경될 수 있다. 예를 들어서, 컴퓨팅 로드가 증가하고, 컴퓨팅 수용 능력이 충분하다면, 뉴럴 네트워크 모델의 인스턴스의 개수가 증가할 수 있다. 컴퓨팅 로드가 감소하거나, 컴퓨팅 수용 능력이 감소하면, 뉴럴 네트워크 모델의 인스턴스의 개수가 감소될 수 있다.
도 10a 및 도 10b를 참조하여, 뉴럴 네트워크 모델의 인스턴스의 개수가 변경되는 실시예를 설명하였다. 전술한 내용은 예시적인 실시예이며, 이 외에도, 뉴럴 네트워크 모델의 인스턴스 개수는 다양하게 변경될 수 있다.
도 11a 및 도 11b는 본 개시의 실시예에 따른 병렬 처리에 기반한 뉴럴 네트워크 연산에서 배치 모드가 변경되는 실시예들을 나타낸다. 도 12는 배치 모드에 따른 뉴럴 네트워크 연산을 설명하는 도면이다. 도 11a 및 도 11b에서, 뉴럴 네트워크 입력들(NNI_1 내지 NNI_8)의 사이즈는 제2 입력들의 사이즈와 동일하다고 가정한다. 즉, 제2 입력들이 각각 뉴럴 네트워크 입력들(NNI1_1 내지 NNI1_4 및 NNI2_1 내지 NNI2_4) 중 하나로 제공된다고 가정한다.
본 개시에서, 배치 모드는 하나의 뉴럴 네트워크 모델이 실행될 때, 병렬적으로 처리되는 뉴럴 네트워크 입력의 개수를 나타낸다. 배치 모드가 1일 경우, 하나의 뉴럴 네트워크 입력이 연산되고, 배치 모드가 2일 경우, 두 개의 뉴럴 네트워크 입력이 연산될 수 있다.
도 11a를 참조하면, 배치 모드가 2로 설정되고, 두 개의 뉴럴 네트워크 입력들(예컨대, NNI_1 및 NNI2)이 병렬적으로 처리되어, 두 개의 뉴럴 네트워크 출력들(예컨대, NNO_1 및 NNO_2)이 생성될 수 있다. 도 11b를 참조하면, 배치 모드가 4로 설정되고, 네 개의 뉴럴 네트워크 입력들(예컨대, NNI_1 내지 NNI4)이 병렬적으로 처리되어, 네 개의 뉴럴 네트워크 출력들(예컨대, NNO_1 내지 NNO_4)이 생성될 수 있다.
도 12를 참조하면, 도 6a 및 도 6b를 참조하여 전술한 바와 같이 뉴럴 네트워크 모델은 복수의 레이어, 예컨대 제1 레이어(L1) 및 제2 레이어(L2)를 포함할 수 있다. 배치 모드에 따른 뉴럴 네트워크 연산 수행 시, 뉴럴 네트워크 입력들(NNI1 또는 NNI2)에 대하여, 제1 레이어(L1)에 따른 제1 계산이 수행되고, 이후, 제1 레이어 출력들(L1O1 및 L1O2)에 제2 레이어(L2)에 따른 제2 계산이 수행될 수 있다.
예를 들어서, 제1 레이어(L1)에서, 뉴럴 네트워크 입력 NNI_1에 대하여 제1 계산이 수행되어, 제1 레이어 출력 L1O1이 생성되고, 이후, 뉴럴 네트워크 입력 NNI_2 에 대하여 제1 계산이 수행되어 제1 레이어 출력L1O2이 생성될 수 있다.
이후, 제2 레이어(L2)에서, 제1 레이어 출력 L1O1에 대하여 제2 계산이 수행되어, 제2 레이어 출력 L2O1이 생성되고, 이후, 제1 레이어 출력 L1O2에 대하여 제2 계산이 수행되어 제2 레이어 출력 L2O2가 생성될 수 있다. 각각의 레이어에서 입력들에 대한 계산이 순차적으로 수행되지만, 뉴럴 네트워크 연산의 전체 프로세스에서, 뉴럴 네트워크 입력들(NNI1 또는 NNI2)이 병렬적으로 처리된다고 볼 수 있다. 배치 모드는, 즉 뉴럴 네트워크 입력의 개수는 컴퓨팅 로드 및/또는 컴퓨팅 수용 능력에 따라 변경될 수 있다. 예를 들어서, 컴퓨팅 로드가 증가하고, 컴퓨팅 수용 능력이 충분하다면, 배치 모드가 높게 설정될 수 있다. 컴퓨팅 로드가 감소하거나, 컴퓨팅 수용 능력이 감소하면, 배치 모드가 낮게 설정될 수 있다.
도 13은 뉴럴 네트워크 모델을 실행하는 프로세서를 나타내는 블록도이다.
프로세서(200)는 도 3의 CPU(131), GPU(132), DSP(133), NPU(134), 및 FPGA(135) 중 하나일 수 있다.
프로세서(200)는 프로세싱 유닛(210) 및 프로세서 메모리(220)를 포함할 수 있다. 도 13에서는 설명의 편의를 위하여 하나의 프로세싱 유닛(210)이 도시되었으나, 프로세서(200)는 복수의 프로세싱 유닛을 포함할 수 있다.
프로세싱 유닛(210)은 복수의 레이어, 예컨대, 도 12a 의 제1 레이어(L1) 및 제2 레이어(L2) 중 하나의 레이어에 따른 계산을 수행하는 단위 회로일 수 있다. 따라서, 프로세싱 유닛(210)은 제1 레이어(L1) 및 제2 레이어(L2) 각각에 대응하는 제1 계산 및 제2 계산을 순차적으로 수행할 수 있다. 프로세싱 유닛(210)은 뉴럴 네트워크 입력(NNI)에 대하여 제1 계산을 수행하고, 계산 결과를 저장하고, 계산 결과를 다시 입력으로 수신하여 제2 계산을 수행할 수 있다. 계산 결과는 예컨대 프로세서 메모리(220)에 저장될 수 있다.
이때, 제1 계산 및 제2 계산 각각에 필요한 제1 계산 정보 및 제2 계산 정보, 예컨대, 웨이트들 또는 웨이트 맵들, 함수 값들 등이 프로세서 메모리(220)에 저장될 수 있다. 내부 메모리(211)의 용량은 프로세서 메모리(220)의 용량보다 상대적으로 매우 적을 수 있다. 따라서, 프로세싱 유닛(210)에서, 제1 계산이 수행될 때, 제1 계산 정보가 내부 메모리(211)에 로딩되고, 제2 계산이 수행될 때, 제2 계산 정보가 내부 메모리(211)에 로딩될 수 있다. 프로세싱 유닛(210)은 내부 메모리(211)에 로딩된 계산 정보를 기초로 계산을 수행할 수 있다.
도 12 및 도 13을 참조하면, 프로세싱 유닛(210)이 하나의 뉴럴 네트워크 입력, 예컨대 NNI_1에 대하여 제1 계산 및 제2 계산을 수행하고, 이후 다른 하나의 뉴럴 네트워크 입력, 예컨대, NNI_2에 대하여, 제1 계산 및 제2 계산을 수행한다면, 제1 계산 정보 및 제2 계산 정보는 두 번씩 내부 메모리(211)에 로딩되어야 한다.
그러나 도 12를 참조하여 전술한 바와 같이, 배치 모드에 따라, 뉴럴 네트워크 입력들 NNI_1 및 NNI_2에 대하여, 제1 계산이 수행되고, 이후 제1 계산 결과에 따른 출력들에 대하여 제2 계산이 수행된다면, 제1 계산 정보 및 제2 계산 정보는 한 번씩 내부 메모리(211)에 로딩될 수 있다. 따라서, 배치 모드에 따라서, 뉴럴 네트워크 연산이 수행될 경우, 각 레이어의 계산에 필요한 정보들을 내부 메모리(211)에 로딩하는 시간이 감소될 수 있다.
이상, 도 8a 내지 도 13을 참조하여 뉴럴 네트워크 모델의 입력의 사이즈, 인스턴스 개수 및 배치 모드 각각이 변경되는 경우에 대하여 설명하였다. 그러나, 이에 제한되는 것은 아니며, 컴퓨팅 환경에 따라서, 뉴럴 네트워크 모델의 입력의 사이즈 및 인스턴스 개수가 변경되거나, 뉴럴 네트워크 모델의 입력의 사이즈 및 배치 모드가 변경되거나, 인스턴스의 개수 및 배치 모드가 변경될 수 있다. 또는 뉴럴 네트워크 모델의 입력의 사이즈, 인스턴스 개수 및 배치 모드가 모두 변경될 수도 있다. 연산 파라미터들은 컴퓨팅 환경에 적응적으로 다양하게 변경될 수 있다.
도 14는 본 개시의 실시예에 따른 뉴럴 네트워크 시스템의 일 예를 나타내고, 도 15는 도 14의 뉴럴 네트워크 시스템에서 수행되는 혼합 연산을 설명한다. 도 14의 뉴럴 네트워크 시스템(300)은 뉴럴 네트워크 연산을 기반으로 이미지에 나타나는 개체를 감지하거나 트래킹하는 기능을 수행하는 전자 장치에 탑재될 수 있다. 예컨대, 뉴럴 네트워크 시스템(300)은 드론(drone), 자율 주행 장치, 스마트 폰, 카메라, 스마트 안경, 감시 카메라 등에 탑재될 수 있으나, 이에 제한되는 것은 아니다.
도 14를 참조하면, 뉴럴 네트워크 시스템(300)은 AP(310), 혼합 연산 모듈(320), VRA(330)(Video Recognition Accelerator), 뉴럴 네트워크 장치(340), 이미지 센서(350) 및 디스플레이(360)를 포함할 수 있다.
혼합 연산 모듈(320)은 뉴럴 네트워크 연산을 기반으로 이미지 센서(350)로부터 제공되는 적어도 한 프레임의 이미지에서 개체를 감지하고, 개체를 트래킹할 수 있다.
혼합 연산 모듈(320)은 카메라 애플리케이션(311), 혼합 연산 매니저(312), 딥 뉴럴 네트워크 프레임 워크(313), 컨텍스트 매니저(314) 및 컴퓨팅 리소스 매니저(315)를 포함할 수 있다. 카메라 애플리케이션(311), 혼합 연산 매니저(312), 딥 뉴럴 네트워크 프레임 워크(313), 컨텍스트 매니저(314) 및 컴퓨팅 리소스 매니저(315)는 도 3a 를 참조하여 설명한, 애플리케이션(121), 혼합 연산 매니저(122), 뉴럴 네트워크 프레임워크(123), 컨텍스트 매니저(124) 및 컴퓨팅 리소스 매니저(125)와 유사한 바 중복되는 설명은 생략하기로 한다.
실시예에 있어서, 카메라 애플리케이션(311), 혼합 연산 매니저(312), 컨텍스트 매니저(314) 및 컴퓨팅 리소스 매니저(315)는 AP(310)에서 실행될 수 있으며, 딥 뉴럴 네트워크 프레임 워크(313)에서 제공되는 딥 뉴럴 네트워크 모델이 뉴럴 네트워크 장치(340)에서 실행될 수 있다. 그러나, 이에 제한되는 것은 아니며, 카메라 애플리케이션(311), 혼합 연산 매니저(312), 컨텍스트 매니저(314) 및 컴퓨팅 리소스 매니저(315)는 별도의 프로세서에서 수행될 수 있다.
도 14 및 도 15을 참조하면, 이미지 센서(350)에서 생성되는 이미지(IMG)가 입력 데이터로서 VRA(330)에 제공될 수 있다. VRA(330)는 제1 알고리즘을 수행하는 하드웨어로서, 이미지(IMG)로부터 감지하고자 하는 개체들(예컨대, 사람의 얼굴, 도로 등)이 포함되는 것으로 예상되는 관심 영역들(ROI1, ROI2, ROI3)을 추출할 수 있다. 관심 영역들(ROI1, ROI2, ROI3)의 사이즈는 서로 다를 수 있다. VRA(330)는 관심 영역들(ROI1, ROI2, ROI3)에 대한 후처리, 예컨대 이미지 랩핑 등을 통해 동일한 사이즈를 갖는 복수의 후보 이미지들(CI1, CI2, CI3)을 생성할 수 있다. 복수의 후보 이미지들(CI1, CI2, CI3)은 뉴럴 네트워크 장치(340)에 제공될 수 있다.
뉴럴 네트워크 장치(340)는 뉴럴 네트워크 모델에 따른 연산을 수행하는 프로세서로서, CPU, GPU, NPU, DSP 중 하나일 수 있으며, 또는 뉴럴 네트워크 연산을 위한 전용 프로세서일 수 있다.
뉴럴 네트워크 장치(340)는 복수의 후보 이미지들(CI1, CI2, CI3)에 대하여 제2 알고리즘에 따른 연산, 즉 딥 뉴럴 네트워크 모델에 따른 연산을 수행하고, 연산 결과, 예컨대 개체 감지 결과들(DT1, DT2, DT3)을 출력할 수 있다. 예컨대, 개체 감지 결과들(DT1, DT2, DT3)은 영역들(ROI1, ROI2, ROI3) 각각에 대하여, 검출하고자 하는 개체가 포함되어 있는지, 또는 영역들(ROI1, ROI2, ROI3)에 포함된 개체를 나타낼 수 있다.
한편, 전술한 바와 같이, 혼합 연산 매니저(312)는 컨텍스트 매니저(314) 및 컴퓨팅 리소스 매니저(315)로부터 제공되는 스태틱 정보 및 다이나믹 정보, 그리고, VRA(330)로부터 제공되는 제1 출력 정보를 기초로 뉴럴 네트워크 시스템(300)의 컴퓨팅 로드 및 컴퓨팅 수용 능력을 확인하고, 컴퓨팅 로드 및/또는 컴퓨팅 수용 능력에 따라 연산 파라미터들, 예컨대 딥 뉴럴 네트워크 모델의 입력의 사이즈 및 상기 입력의 개수, 뉴럴 네트워크 모델의 인스턴스 개수, 및 딥 뉴럴 네트워크 모델의 배치 모드 등을 결정할 수 있다. 혼합 연산 매니저(312)는 컴퓨팅 환경에 따라 연산 파라미터들을 동적으로 변경할 수 있다.
예를 들어, 혼합 연산 매니저(312)는 제1 출력들의 개수, 즉 복수의 후보 이미지들(CI1, CI2, CI3)의 개수를 기초로 딥 뉴럴 네트워크 모델의 입력의 사이즈를 결정할 수 있다. 예컨대, 복수의 후보 이미지들(CI1, CI2, CI3)의 개수가 증가하면, 컴퓨팅 로드가 증가하는 바, 딥 뉴럴 네트워크 모델의 입력의 사이즈를 증가시킬 수 있다. 복수의 후보 이미지들(CI1, CI2, CI3)의 개수가 감소하면, 컴퓨팅 로드가 감소하는 바, 딥 뉴럴 네트워크 모델의 입력의 사이즈를 감소시킬 수 있다. 실시예에 있어서, 적어도 하나의 기준 값들과 복수의 후보 이미지들(CI1, CI2, CI3)의 개수를 비교하고, 비교 결과에 따라 딥 뉴럴 네트워크 모델의 입력의 사이즈를 결정할 수 있다.
뉴럴 네트워크 장치(340)는 복수의 후보 이미지들(CI1, CI2, CI3)을 병렬적으로 연산할 수 있으며, 병렬적으로 처리되는 복수의 후보 이미지들의 개수는 도 8a 내지 도 13을 참조하여 설명한 바와 같이, 연산 파라미터들에 따라 결정될 수 있다.
카메라 애플리케이션(311)은 개체 감지 결과들(DT1, DT2, DT3)에 따른 기능을 수행할 수 있다. 실시예에 있어서, AP(310)는 카메라 애플리케이션(311)의 기능에 따라 생성되는 영상을 디스플레이(360)에 표시할 수 있다.
도 16은 도 14의 뉴럴 네트워크 시스템의 동작 방법을 나타내는 흐름도이다.
도 14 및 도16을 참조하면, VRA(330)가 이미지 센서(350)로부터 이미지를 수신할 수 있다(S21). VRA(330)는 수신된 이미지에 대하여 제1 알고리즘에 따른 제1 연산을 수행할 수 있다. VRA(330)는 수신된 이미지로부터 복수의 관심 영역을 추출하고, 추출된 관심 영역에 대하여 후처리 할 수 있다(S22). VRA(330)는 후처리를 통해 복수의 관심 영역에 대응하는 복수의 후보 이미지들을 생성할 수 있다. 이로써, 제1 알고리즘에 따른 연산이 완료될 수 있다. VRA(330)는 복수의 후보 이미지들을 뉴럴 네트워크 장치(340)로 전송할 수 있다(S23).
혼합 연산 매니저(312)는 컴퓨팅 정보를 확인할 수 있다(S24). 컴퓨팅 정보는 컴퓨팅 로드 및 컴퓨팅 수용 능력을 포함할 수 있다. 혼합 연산 매니저(312)는 컨텍스트 매니저(314) 및 컴퓨팅 리소스 매니저(315)로부터 제공되는 스태틱 정보 및 다이나믹 정보를 기초로 컴퓨팅 정보를 확인할 수 있다. 실시예에 있어서, 혼합 연산 매니저(312)는 제1 알고리즘에 따른 연산이 완료된 후 컴퓨팅 정보를 확인하거나, 또는 주기적으로 컴퓨팅 정보를 확인할 수 있다. 이에 따라 혼합 연산 매니저(312)는 컴퓨팅 정보를 업데이트 할 수 있다.
혼합 연산 매니저(312)는 복수의 후보 이미지들에 대하여 제2 알고리즘, 즉 딥 뉴럴 네트워크 모델에 따른 연산에 따른 제2 연산을 수행할 수 있다. 혼합 연산 매니저(312)는 업데이트된 컴퓨팅 정보를 기초로 연산 파라미터들, 예컨대, 딥 뉴럴 네트워크 모델의 입력의 사이즈, 입력의 개수, 배치 모드 및 인스턴스 개수 정 적어도 하나를 결정 또는 변경할 수 있다(S25).
뉴럴 네트워크 장치(340)는 연산 파라미터들을 기초로 결정되는 N개의 후보 이미지들에 대하여 병렬적으로 제2 알고리즘에 따른 연산, 즉 딥 뉴럴 네트워크 모델에 따른 연산을 수행할 수 있다(S26). 뉴럴 네트워크 장치(340)는 연산 결과를 기초로 복수의 후보 이미지들이 나타내는 개체를 검출할 수 있다(S27).
도 17은 도 16의 S24, S25 및 S26 단계의 일 실시예를 나타내는 흐름도이다.
도 17을 참조하면, 혼합 연산 매니저(312)는 복수의 후보 이미지들의 개수를 확인할 수 있다(S24a). 혼합 연산 매니저(312)는 복수의 후보 이미지들의 개수에 기초하여 컴퓨팅 로드를 판단할 수 있다. 혼합 연산 매니저(312)는 후보 이미지들의 개수에 기초하여 뉴럴 네트워크 모델의 배치 모드를 결정할 수 있다(S25a). 혼합 연산 매니저(312)는 후보 이미지들의 개수가 많으면, 배치 모드를 높게 설정하고, 후보 이미지들의 개수가 적으면 배치 모드를 낮게 설정할 수 있다. 실시예에 있어서, 혼합 연산 매니저(312)는 후보 이미지들의 개수 및 컴퓨팅 수용 능력을 고려하여 배치 모드를 설정할 수 있다.
뉴럴 네트워크 장치(340)는 배치 모드의 입력 개수에 대응하는 개수의 후보 이미지들을 배치 모드에 따라 병렬적으로 처리할 수 있다(S26a). 뉴럴 네트워크 장치(340)는 도 12를 참조하여 설명한 바와 같이, 뉴럴 네트워크 장치(340)는 후보 이미지들에 대하여 한 레이어에 따른 계산을 수행하고, 상기 계산에 따라 출력되는 결과들에 대하여 다음 레이여에 따른 계산을 수행할 수 있다.
도 18은 본 개시의 예시적인 실시예에 따른 혼합 연산 모듈이 소프트웨어적으로 구현되는 예를 나타내는 블록도이다. 도 18에 도시된 시스템은 애플리케이션 프로세서(400)일 수 있으며, 애플리케이션 프로세서(400)는 반도체 칩으로서 시스템 온 칩(SoC)으로 구현될 수 있다.
애플리케이션 프로세서(400)는 프로세서(410) 및 동작 메모리(420)를 포함할 수 있다. 또한, 도 18에는 도시되지 않았으나, 애플리케이션 프로세서(400)는 시스템 버스에 연결되는 하나 이상의 IP(Intellectual Property) 모듈들을 더 포함할 수도 있다. 동작 메모리(420)는 애플리케이션 프로세서(400)가 채용되는 시스템의 동작과 관련된 각종 프로그램 및 명령어 등의 소프트웨어를 저장할 수 있으며, 일 예로서 운영 체제(421), 혼합 연산 모듈(422)을 포함할 수 있다. 혼합 연산 모듈(422)은 이종의 알고리즘에 따른 혼합 연산을 수행할 수 있다. 제1 알고리즘은 프리-프로세싱 알고리즘이고, 제2 알고리즘은 딥 뉴럴 네트워크 모델일 수 있다. 혼합 연산 모듈(422)은 혼합 연산 매니저를 포함할 수 있으며, 혼합 연산 매니저는 전술한 실시예들에 따라, 컴퓨팅 로드 및 컴퓨팅 수용 능력을 기초로, 연산 파라미터들을 결정할 수 있다. 이에 따라, 제2 알고리즘을 수행할 때, 병렬적으로 입력들이 처리될 수 있다.
예시적인 실시예에 따라, 혼합 연산 모듈(422)은 운영 체제(421) 내에 구현될 수도 있을 것이다.
한편, 도 18에는 하나의 프로세서(410)가 도시되었으나, 애플리케이션 프로세서(400)는 다수의 프로세서들을 포함할 수도 있다. 이 때, 다수의 프로세서들 중 하나는 제1 연산을 수행하기 위한 전용 프로세서일 수 있다.
도 19는 본 개시의 예시적 실시예에 따른 자율 운행 시스템을 나타내는 블록도이다. 자율 운행 시스템(500)은 센서 모듈(510), 네비게이션 모듈(520), 자율 운행 모듈(530) 및 중앙 처리 장치(540)를 포함할 수 있다. 또한, 자율 운행 모듈(530)은 뉴럴 네트워크 장치(531) 및 혼합 연산 모듈(532)을 포함할 수 있다.
뉴럴 네트워크 장치(531)는 각종 영상 정보 및 음성 정보를 이용한 뉴럴 네트워크 동작을 수행하고, 수행 결과를 기초로 영상 인식 결과 및 음성 인식 결과 등의 정보 신호를 생성할 수 있다. 일 예로서, 센서 모듈 (510)는 카메라나 마이크 등의 각종 영상 정보 및 음성 정보를 수집할 수 있는 장치들을 포함하고, 이를 자율 운행 모듈(530)로 제공할 수 있다. 또한, 네비게이션 모듈(520)은 자동차 운행과 관련된 각종 정보(예컨대, 위치 정보 등)를 자율 운행 모듈(530)로 제공할 수 있다. 뉴럴 네트워크 장치(531)는 센서 모듈(510) 및/또는 네비게이션 모듈(520)로부터의 정보를 입력으로 하여, 다양한 종류의 뉴럴 네트워크 모델을 실행함으로써 상기 정보 신호를 생성할 수 있다.
혼합 연산 모듈(532)은 이종의 알고리즘에 따른 혼합 연산을 수행할 수 있다. 제1 알고리즘은 프리-프로세싱 알고리즘이고, 제2 알고리즘은 딥 뉴럴 네트워크 모델일 수 있다. 혼합 연산 모듈(522)은 혼합 연산 매니저를 포함할 수 있으며, 혼합 연산 매니저는 전술한 실시예들에 따라, 컴퓨팅 로드 및 컴퓨팅 수용 능력을 기초로, 연산 파라미터들을 결정할 수 있다. 이에 따라, 제2 알고리즘을 수행할 때, 병렬적으로 입력들이 처리될 수 있다.
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
NNS: 뉴럴 네트워크 시스템 120: 혼합 연산 모듈
122: 혼합 연산 매니저

Claims (20)

  1. 제1 입력을 처리하여 복수의 제1 출력을 생성하는 제1 연산 단계;
    컴퓨팅 정보를 기초로 연산 파라미터를 결정하는 단계; 및
    상기 복수의 제1 출력 중 상기 연산 파라미터를 기초로 결정되는 N개(N은 2이상의 정수)의 제1 출력에 대하여 병렬적으로 뉴럴 네트워크 모델에 따라 프로세싱함으로써, 적어도 하나의 제2 출력을 생성하는 제2 연산 단계를 포함하는 뉴럴 네트워크 시스템의 동작 방법.
  2. 제1 항에 있어서, 상기 연산 파라미터는,
    상기 뉴럴 네트워크 모델의 입력의 사이즈 및 상기 입력의 개수, 상기 뉴럴 네트워크 모델의 인스턴스 개수, 및 상기 뉴럴 네트워크 모델의 배치 모드 중 적어도 하나를 포함하는 것을 특징으로 하는 뉴럴 네트워크 시스템의 동작 방법.
  3. 제2 항에 있어서,
    상기 복수의 제1 출력은 각각 제1 사이즈를 갖고,
    상기 연산 파라미터를 결정하는 단계는,
    상기 제1 사이즈의 K 배(K는 정수)를 상기 입력의 사이즈로 결정하는 것을 특징으로 하는 뉴럴 네트워크 시스템의 동작 방법.
  4. 제3 항에 있어서, 상기 뉴럴 네트워크 모델의 출력의 사이즈는,
    상기 입력의 사이즈가 상기 제1 사이즈와 동일한 경우의 상기 출력의 사이즈의 K배인 것을 특징으로 하는 뉴럴 네트워크 시스템의 동작 방법.
  5. 제2 항에 있어서, 상기 연산 파라미터를 결정하는 단계는,
    상기 뉴럴 네트워크 모델의 입력의 사이즈를 상기 복수의 제1 출력의 사이즈와 동일하게 결정하고, 상기 뉴럴 네트워크 모델의 인스턴스 개수를 복수개로 결정하는 뉴럴 네트워크 시스템의 동작 방법.
  6. 제2 항에 있어서, 상기 연산 파라미터를 결정하는 단계는,
    상기 컴퓨팅 정보를 기초로 배치 모드를 결정하고, 상기 배치 모드에 따라 상기 입력의 개수를 결정하는 것을 특징으로 하는 뉴럴 네트워크 시스템의 동작 방법.
  7. 제1 항에 있어서, 상기 연산 파라미터를 결정하는 단계는,
    상기 뉴럴 네트워크 시스템의 컴퓨팅 로드(load) 및 컴퓨팅 수용 능력(computing capability) 중 적어도 하나를 기초로 상기 연산 파라미터를 결정하는 것을 특징으로 하는 뉴럴 네트워크 시스템의 동작 방법.
  8. 제7 항에 있어서,
    상기 컴퓨팅 로드는, 상기 복수의 제1 출력의 개수, 상기 복수의 제1 출력 각각의 디멘젼, 상기 뉴럴 네트워크 모델에 따른 프로세싱을 위해 요구되는 메모리 용량 및 전력, 및 상기 뉴럴 네트워크 시스템에서 요구되는 데이터 처리 속도 중 적어도 하나를 포함하고,
    상기 컴퓨팅 수용 능력은, 상기 뉴럴 네트워크 시스템의 가용 전력, 가용 가능한 하드웨어 리소스, 가용 가능한 메모리 용량, 시스템 전력 상태, 배터리 잔량 중 적어도 하나를 포함하는 것을 특징으로 하는 뉴럴 네트워크 시스템의 동작 방법.
  9. 제1 항에 있어서,
    상기 뉴럴 네트워크 시스템은 이종의 제1 프로세서 및 제2 프로세서를 포함하고,
    상기 제1 연산은 상기 제1 프로세서에서 수행되고, 상기 제2 연산은 상기 제2 프로세서에서 수행되는 것을 특징으로 하는 뉴럴 네트워크 시스템의 동작 방법.
  10. 수신되는 입력 정보를 프리-프로세싱하여 복수의 연산 입력을 생성하는 단계;
    업데이트되는 컴퓨팅 정보를 기초로, 컴퓨팅 환경에 적응적으로 뉴럴 네트워크 모델의 배치 모드를 결정하는 단계; 및
    복수의 연산 입력들 중 상기 배치 모드에 따라 결정되는 N개의 연산 입력들에 대하여 병렬적으로 상기 뉴럴 네트워크 모델에 따른 연산을 수행하는 단계를 포함하는 뉴럴 네트워크 시스템의 동작 방법.
  11. 제10 항에 있어서, 상기 결정하는 단계는,
    상기 뉴럴 네트워크 시스템의 컴퓨팅 로드(load) 및 컴퓨팅 수용 능력(computing capacity) 중 적어도 하나를 기초로 상기 연산 입력들의 개수 N을 결정하는 것을 특징으로 하는 뉴럴 네트워크 시스템의 동작 방법.
  12. 제10 항에 있어서, 상기 배치 모드를 결정하는 단계는,
    상기 복수의 연산 입력의 개수가 증가하면, 상기 배치 모드를 높게 설정함으로써, 상기 병렬적으로 처리될 연산 입력들의 개수 N을 증가 시키는 것을 특징으로 하는 뉴럴 네트워크 시스템의 동작 방법.
  13. 제10 항에 있어서, 상기 뉴럴 네트워크 모델에 따른 연산을 수행하는 단계는,
    상기 N개의 연산 입력들에 대하여 제1 계산을 수행하는 단계; 및
    상기 제1 계산에 따라 출력되는 N개의 연산 출력들에 대하여 제2 계산을 수행하는 단계를 포함하는 것을 특징으로 하는 뉴럴 네트워크 시스템의 동작 방법.
  14. 제13 항에 있어서,
    상기 제1 계산 및 상기 제2 계산은 각각 뉴럴 네트워크 모델의 제1 레이어 및 제2 레이어에 대응하는 것을 특징으로 하는 뉴럴 네트워크 시스템의 동작 방법.
  15. 제10 항에 있어서,
    상기 프리-프로세싱은 전용 하드웨어에서 수행되고, 상기 뉴럴 네트워크 모델은 소프트웨어적으로 구현되어 다른 하드웨어에서 수행되는 것을 특징으로 하는 뉴럴 네트워크 시스템의 동작 방법.
  16. 병렬적 프로세싱 기반의 뉴럴 네트워크 시스템으로서,
    입력 데이터에 대하여 제1 알고리즘에 따른 제1 연산을 수행하여 복수의 제1 출력을 생성하는 제1 프로세서,
    상기 뉴럴 네트워크 시스템의 컴퓨팅 로드 및 컴퓨팅 수용 능력 중 적어도 하나를 기초로 컴퓨팅 환경에 적응적으로 연산 파라미터를 결정하는 혼합 연산 매니저; 및
    상기 연산 파라미터를 기초로, 상기 복수의 제1 출력 중 적어도 두 개의 제1 출력에 대하여 병렬적으로 제2 알고리즘에 따른 제2 연산을 수행하는 제2 프로세서를 포함하는 뉴럴 네트워크 시스템.
  17. 제16 항에 있어서, 상기 제2 알고리즘은 뉴럴 네트워크 모델을 포함하는 것을 특징으로 하는 뉴럴 네트워크 시스템.
  18. 제17 항에 있어서, 상기 연산 파라미터는
    상기 뉴럴 네트워크 모델의 입력의 사이즈 및 상기 입력의 개수, 상기 뉴럴 네트워크 모델의 인스턴스 개수, 및 상기 뉴럴 네트워크 모델의 배치 모드 중 적어도 하나를 포함하는 것을 특징으로 하는 뉴럴 네트워크 시스템.
  19. 제16 항에 있어서, 상기 제1 프로세서는,
    상기 제1 알고리즘을 수행하도록 설계된 전용 프로세서인 것을 특징으로 하는 뉴럴 네트워크 시스템.
  20. 제16 항에 있어서,
    상기 제2 알고리즘을 실행하는 프로그램을 저장하는 메모리를 더 포함하는 뉴럴 네트워크 시스템.
KR1020170125410A 2017-09-27 2017-09-27 뉴럴 네트워크 시스템 및 뉴럴 네트워크 시스템의 동작방법 KR102610820B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020170125410A KR102610820B1 (ko) 2017-09-27 2017-09-27 뉴럴 네트워크 시스템 및 뉴럴 네트워크 시스템의 동작방법
SG10201805974UA SG10201805974UA (en) 2017-09-27 2018-07-12 Neural network system and operating method of neural network system
US16/039,730 US20190095212A1 (en) 2017-09-27 2018-07-19 Neural network system and operating method of neural network system
CN201811132770.6A CN109558937B (zh) 2017-09-27 2018-09-27 神经网络系统和神经网络系统的操作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170125410A KR102610820B1 (ko) 2017-09-27 2017-09-27 뉴럴 네트워크 시스템 및 뉴럴 네트워크 시스템의 동작방법

Publications (2)

Publication Number Publication Date
KR20190036317A true KR20190036317A (ko) 2019-04-04
KR102610820B1 KR102610820B1 (ko) 2023-12-06

Family

ID=65809130

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170125410A KR102610820B1 (ko) 2017-09-27 2017-09-27 뉴럴 네트워크 시스템 및 뉴럴 네트워크 시스템의 동작방법

Country Status (4)

Country Link
US (1) US20190095212A1 (ko)
KR (1) KR102610820B1 (ko)
CN (1) CN109558937B (ko)
SG (1) SG10201805974UA (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021100985A1 (en) * 2019-11-21 2021-05-27 Samsung Electronics Co., Ltd. Electronic apparatus and control method thereof
WO2022177162A1 (ko) * 2021-02-18 2022-08-25 삼성전자주식회사 어플리케이션의 모델 파일을 초기화하는 프로세서 및 이를 포함하는 전자 장치
US11726929B2 (en) 2020-02-26 2023-08-15 Samsung Electronics Co., Ltd. Operation method of an accelerator and system including the same
KR102625839B1 (ko) * 2023-08-30 2024-01-16 주식회사 시원금속 뉴럴 네트워크를 이용하여 3차원 가상 공간에 인테리어와 관련된 금속 제품을 배치하는 방법 및 장치

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109376594A (zh) * 2018-09-11 2019-02-22 百度在线网络技术(北京)有限公司 基于自动驾驶车辆的视觉感知方法、装置、设备以及介质
US11468338B2 (en) * 2018-09-11 2022-10-11 Apple Inc. Compiling models for dedicated hardware
KR102425909B1 (ko) * 2019-07-30 2022-07-29 한국과학기술원 뉴럴 네트워크 가속기 시스템 및 그것의 동작 방법
CN111782402A (zh) * 2020-07-17 2020-10-16 Oppo广东移动通信有限公司 数据处理方法、装置以及电子设备
CN112087649B (zh) * 2020-08-05 2022-04-15 华为技术有限公司 一种设备搜寻方法以及电子设备
CN114511438A (zh) * 2020-10-29 2022-05-17 华为技术有限公司 一种控制负载的方法、装置及设备
US11693692B2 (en) 2021-06-17 2023-07-04 International Business Machines Corporation Program event recording storage alteration processing for a neural network accelerator instruction
US11797270B2 (en) 2021-06-17 2023-10-24 International Business Machines Corporation Single function to perform multiple operations with distinct operation parameter validation
US11675592B2 (en) 2021-06-17 2023-06-13 International Business Machines Corporation Instruction to query for model-dependent information
US11269632B1 (en) 2021-06-17 2022-03-08 International Business Machines Corporation Data conversion to/from selected data type with implied rounding mode
US11734013B2 (en) 2021-06-17 2023-08-22 International Business Machines Corporation Exception summary for invalid values detected during instruction execution
US11669331B2 (en) 2021-06-17 2023-06-06 International Business Machines Corporation Neural network processing assist instruction

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5943663A (en) * 1994-11-28 1999-08-24 Mouradian; Gary C. Data processing method and system utilizing parallel processing
US7010513B2 (en) * 2003-04-14 2006-03-07 Tamura Raymond M Software engine for multiple, parallel processing with neural networks
JP2009099008A (ja) * 2007-10-18 2009-05-07 Seiko Epson Corp 並列演算装置および並列演算方法
JP5783259B2 (ja) * 2011-09-16 2015-09-24 富士通株式会社 コンピュータシステム
US9477925B2 (en) * 2012-11-20 2016-10-25 Microsoft Technology Licensing, Llc Deep neural networks training for speech and pattern recognition
US9418334B2 (en) * 2012-12-06 2016-08-16 Nuance Communications, Inc. Hybrid pre-training of deep belief networks
CN104143327B (zh) * 2013-07-10 2015-12-09 腾讯科技(深圳)有限公司 一种声学模型训练方法和装置
US20150324689A1 (en) * 2014-05-12 2015-11-12 Qualcomm Incorporated Customized classifier over common features
US20160335119A1 (en) * 2015-05-12 2016-11-17 minds.ai inc Batch-based neural network system
US10474950B2 (en) * 2015-06-29 2019-11-12 Microsoft Technology Licensing, Llc Training and operation of computational models
KR101788829B1 (ko) * 2015-08-24 2017-10-20 (주)뉴로컴즈 콘볼루션 신경망 컴퓨팅 장치
US20170154262A1 (en) * 2015-11-30 2017-06-01 Google Inc. Resizing neural networks
US10482380B2 (en) * 2015-12-30 2019-11-19 Amazon Technologies, Inc. Conditional parallel processing in fully-connected neural networks
US20170193361A1 (en) * 2015-12-31 2017-07-06 Microsoft Technology Licensing, Llc Neural network training performance optimization framework
CN106022245B (zh) * 2016-05-16 2019-09-06 中国资源卫星应用中心 一种基于算法分类的多源遥感卫星数据并行处理系统及方法
JP2018018451A (ja) * 2016-07-29 2018-02-01 富士通株式会社 機械学習方法、機械学習プログラム及び情報処理装置
US11062203B2 (en) * 2016-12-30 2021-07-13 Intel Corporation Neuromorphic computer with reconfigurable memory mapping for various neural network topologies

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
최운수 등., CUDA와 개선된 하이브리드 신경망을 이용한 3차원 제스처 인식에 대한 연구, 한국엔터테이먼트산업학회 2011 춘계학술대회 논문집, 172-180pages (2011.)* *
金銀源 등., 은닉층 노드의 생성추가를 이용한 적응 역전파 신경회로망의 학습능률 향상에 관한 연구, 電子工學會論文誌 第 39 卷 TE編 第 2 號, 66-75pages (2002.)* *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021100985A1 (en) * 2019-11-21 2021-05-27 Samsung Electronics Co., Ltd. Electronic apparatus and control method thereof
US11436442B2 (en) 2019-11-21 2022-09-06 Samsung Electronics Co., Ltd. Electronic apparatus and control method thereof
US11726929B2 (en) 2020-02-26 2023-08-15 Samsung Electronics Co., Ltd. Operation method of an accelerator and system including the same
WO2022177162A1 (ko) * 2021-02-18 2022-08-25 삼성전자주식회사 어플리케이션의 모델 파일을 초기화하는 프로세서 및 이를 포함하는 전자 장치
KR102625839B1 (ko) * 2023-08-30 2024-01-16 주식회사 시원금속 뉴럴 네트워크를 이용하여 3차원 가상 공간에 인테리어와 관련된 금속 제품을 배치하는 방법 및 장치

Also Published As

Publication number Publication date
US20190095212A1 (en) 2019-03-28
CN109558937B (zh) 2023-11-28
SG10201805974UA (en) 2019-04-29
KR102610820B1 (ko) 2023-12-06
CN109558937A (zh) 2019-04-02

Similar Documents

Publication Publication Date Title
KR102610820B1 (ko) 뉴럴 네트워크 시스템 및 뉴럴 네트워크 시스템의 동작방법
US11557085B2 (en) Neural network processing for multi-object 3D modeling
US11074474B2 (en) Apparatus for performing neural network operation and method of operating the same
US20220261615A1 (en) Neural network devices and methods of operating the same
US11803756B2 (en) Neural network system for reshaping a neural network model, application processor including the same, and method of operating the same
US20190147337A1 (en) Neural network system for single processing common operation group of neural network models, application processor including the same, and operation method of neural network system
TWI818944B (zh) 神經網路處理單元及系統晶片
US10909842B2 (en) Use of self-driving vehicles and mapping for pedestrian defined crosswalks
KR20200091623A (ko) 위노그라드 변환에 기반한 뉴럴 네트워크의 컨볼루션 연산을 수행하는 방법 및 장치
CN111402130B (zh) 数据处理方法和数据处理装置
US20210006755A1 (en) Image processing device including neural network processor and operating method thereof
US20200118249A1 (en) Device configured to perform neural network operation and method of operating same
CN111767947A (zh) 目标检测模型、应用方法及相关装置
CN111523642B (zh) 用于卷积运算的数据重用方法、运算方法及装置、芯片
CN111931901A (zh) 一种神经网络构建方法以及装置
US20190050370A1 (en) Hardware accelerator for online estimation
WO2022156475A1 (zh) 神经网络模型的训练方法、数据处理方法及装置
CN111914989A (zh) 神经网络系统及其学习方法、以及迁移学习方法
CN111192319B (zh) 用于监控人类面部到智能设备的距离的系统和方法
CN111027682A (zh) 神经网络处理器、电子设备及数据处理方法
CN113553026A (zh) 神经网络装置及其操作方法、应用处理器
CN114237861A (zh) 一种数据处理方法及其设备
JP7189000B2 (ja) 情報処理装置、車載制御装置、車両制御システム
Kreß et al. Automated Search for Deep Neural Network Inference Partitioning on Embedded FPGA
KR20240025827A (ko) Imc(in memory computing) 프로세서 및 imc 프로세서의 동작 방법

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right