KR20220098341A - 뉴럴 네트워크 동작 방법, 장치, 전자 기기 및 기억 매체 - Google Patents

뉴럴 네트워크 동작 방법, 장치, 전자 기기 및 기억 매체 Download PDF

Info

Publication number
KR20220098341A
KR20220098341A KR1020227010736A KR20227010736A KR20220098341A KR 20220098341 A KR20220098341 A KR 20220098341A KR 1020227010736 A KR1020227010736 A KR 1020227010736A KR 20227010736 A KR20227010736 A KR 20227010736A KR 20220098341 A KR20220098341 A KR 20220098341A
Authority
KR
South Korea
Prior art keywords
target
data
tiling
candidate
operator
Prior art date
Application number
KR1020227010736A
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 상하이 센스타임 인텔리전트 테크놀로지 컴퍼니 리미티드
Publication of KR20220098341A publication Critical patent/KR20220098341A/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/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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • 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]
    • 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/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • 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
    • 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/08Learning methods
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Mathematical Physics (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • Quality & Reliability (AREA)
  • Image Analysis (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명은 뉴럴 네트워크 동작 방법, 장치, 전자 기기 및 기억 매체에 관한 것이다. 해당 방법은 목표 뉴럴 네트워크에서의 처리 대상의 네트워크층을 결정하는 것과, 결정된, 각각이 처리 대상의 네트워크층에 대응하는 기능을 실현하기 위한 복수의 연산자 및 각각이 목표 뉴럴 네트워크를 동작시키기 위한 계산 장치의 동작 요구에 매칭하는 복수의 타일링 스트래티지 중에서 상기 목표 뉴럴 네트워크에서의 처리 대상의 네트워크층에 각각 대응하는 목표 연산자 및 목표 타일링 스트래티지를 결정하는 것과, 처리 대상의 네트워크층에 대응하는 상기 목표 타일링 스트래티지에 기초하여 상기 목표 연산자를 포함하는 상기 목표 뉴럴 네트워크를 동작시키는 것을 포함한다.

Description

뉴럴 네트워크 동작 방법, 장치, 전자 기기 및 기억 매체
본 발명은 심층 학습의 기술 분야에 관한 것으로서, 구체적으로는, 뉴럴 네트워크 동작 방법, 장치, 전자 기기 및 기억 매체에 관한 것이다.
기술의 발전에 동반하여, 대규모의 뉴럴 네트워크는 예를 들면, 자동 운전 장면, 화상 인식 장면 등의 여러 가지 장면에 적용되고 있다. 대규모의 뉴럴 네트워크는 구축된 후, 계산 장치에 의하여 실행되어도 좋다.
상기 실정을 감안하여, 본 발명은 적어도 뉴럴 네트워크 동작 방법, 장치, 전자 기기 및 기억 매체를 제공한다.
본 발명의 제 1 측면에 따르면, 목표 뉴럴 네트워크에서의 처리 대상의 네트워크층을 결정하는 것과, 결정된, 각각이 상기 처리 대상의 네트워크층에 대응하는 기능을 실현하기 위한 복수의 연산자 및 각각이 상기 목표 뉴럴 네트워크를 동작시키기 위한 계산 장치의 동작 요구에 매칭하는 복수의 타일링 스트래티지(tiling strategy) 중에서 상기 목표 뉴럴 네트워크에서의 상기 처리 대상의 네트워크층에 대응하는 목표 연산자 및 목표 타일링 스트래티지를 결정하는 것과, 상기 처리 대상의 네트워크층에 대응하는 상기 목표 타일링 스트래티지에 기초하여 상기 목표 연산자를 포함하는 상기 목표 뉴럴 네트워크를 동작시키는 것을 포함하는 뉴럴 네트워크 동작 방법을 제공한다.
상기 방법에 있어서, 목표 뉴럴 네트워크에서의 처리 대상의 네트워크가 결정된 후, 결정된 복수의 연산자 및 복수의 타일링 스트래티지 중에서 처리 대상의 네트워크층에 대응하는 목표 연산자 및 목표 타일링 스트래티지를 결정할 수 있다. 타일링 스트래티지가 계산 장치의 동작 요구를 충족함으로써 처리 대상의 네트워크층에 대응하는 목표 타일링 스트래티지에 기초하여 목표 연산자를 포함하는 목표 뉴럴 네트워크를 동작시킬 때에 계산 장치의 동작 요구를 충족할 수 있다. 그와 함께, 목표 타일링 스트래티지는 그에 매칭하는 처리 대상의 네트워크층에 대응하는 목표 연산자의 파라미터 데이터를 타일링할 수 있는 것에 의해, 타일링된 파라미터 데이터에 기초하여 처리 대상의 네트워크층을 동작시킬 때의 리소스 소비가 최소로 되고, 그 리소스 소비는 예를 들면, 토탈 계산 오버헤드로 나타나도 좋고, 즉, 계산 장치의 동작 요구를 충족하면서 적어도 하나의 처리 대상의 네트워크층에 각각 대응하는 목표 타일링 스트래티지에 기초하여 목표 연산자를 포함하는 목표 뉴럴 네트워크를 동작시키는 효율을 높게 한다.
가능한 일 실현 형태에서 상기 타일링 스트래티지는 상기 처리 대상의 네트워크층에 대응하는 목표 연산자의 파라미터 데이터를 타일링하기 위해 이용되고, 상기 복수의 타일링 스트래티지에 있어서, 상기 목표 타일링 스트래티지를 이용하여 상기 목표 연산자의 파라미터 데이터를 타일링해서 얻어진 파라미터 데이터에 기초하여 상기 처리 대상의 네트워크층을 동작시킬 때의 리소스 소비가 최소로 된다.
가능한 일 실현 형태에서는 상기 처리 대상의 네트워크층이 복수인 경우, 상기한, 결정된 복수의 연산자 및 복수의 타일링 스트래티지 중에서 상기 목표 뉴럴 네트워크에서의 상기 처리 대상의 네트워크층에 대응하는 목표 연산자 및 목표 타일링 스트래티지를 결정하는 것은, 상기 목표 뉴럴 네트워크에서의 각 처리 대상의 네트워크층에 대하여 상기 복수의 연산자 중에서 상기 처리 대상의 네트워크층에 대응하는 목표 후보 연산자를 결정하는 것과 함께, 상기 복수의 타일링 스트래티지 중에서 상기 목표 후보 연산자에 매칭하는 목표 후보 타일링 스트래티지를 결정하는 것과, 어느 쪽인가의 처리 대상의 네트워크층에 대응하는 상기 목표 후보 연산자가 복수이고, 및/또는 상기 목표 후보 타일링 스트래티지가 복수인 경우, 각 처리 대상의 네트워크층에 각각 대응하는 목표 후보 연산자 및 목표 후보 타일링 스트래티지에 기초하여 각 처리 대상의 네트워크층에 대응하는 상기 목표 연산자 및 상기 목표 타일링 스트래티지를 결정하는 것을 포함한다.
상기 실시형태에서는 우선, 각 처리 대상의 네트워크층에 대응하는 목표 후보 연산자 및 목표 후보 연산자에 매칭하는 목표 후보 타일링 스트래티지를 결정함으로써 각 처리 대상의 네트워크층의 목표 후보 연산자 및 목표 후보 타일링 스트래티지에 대한 국소적인 최적 선택을 실현한다. 나아가서는, 어느 쪽인가의 처리 대상의 네트워크층에 대응하는 목표 후보 연산자가 복수이고, 및/또는 목표 후보 타일링 스트래티지가 복수인 경우, 각 처리 대상의 네트워크층에 각각 대응하는 목표 후보 연산자 및 목표 후보 타일링 스트래티지에 기초하여 각 처리 대상의 네트워크층에 대응하는 목표 연산자 및 목표 타일링 스트래티지를 결정함으로써 각 처리 대상의 네트워크층의 목표 연산자 및 목표 타일링 스트래티지에 대한 전체적인 최적 선택을 실현한다.
가능한 일 실현 형태에서는 상기한, 각 처리 대상의 네트워크층에 각각 대응하는 목표 후보 연산자 및 목표 후보 타일링 스트래티지에 기초하여 각 처리 대상의 네트워크층에 대응하는 상기 목표 연산자 및 상기 목표 타일링 스트래티지를 결정하는 것은, 각 처리 대상의 네트워크층에 각각 대응하는 목표 후보 연산자 및 상기 목표 후보 연산자에 대응하는 목표 후보 타일링 스트래티지에 기초하여 상기 목표 뉴럴 네트워크에 대응하는 것으로서, 각각이 각 처리 대상의 네트워크층에 대응하는 하나의 상기 목표 후보 연산자 및 해당 목표 후보 연산자에 매칭하는 하나의 목표 후보 타일링 스트래티지를 포함하는 복수의 테스트 네트워크를 결정하는 것과, 상기 복수의 테스트 네트워크를 각각 동작시키고, 각각 테스트 네트워크의 각각에 대응하는 복수의 테스트 결과를 취득하는 것과, 상기 복수의 테스트 결과에 기초하여 상기 복수의 테스트 네트워크 중에서 목표 테스트 네트워크를 선출하는 것과, 상기 목표 테스트 네트워크에서의 상기 처리 대상의 네트워크층의 목표 후보 연산자 및 목표 후보 타일링 스트래티지를 상기 목표 뉴럴 네트워크에서의 상기 처리 대상의 네트워크층에 대응하는 상기 목표 연산자 및 목표 타일링 스트래티지로서 결정하는 것을 포함한다.
상기 실시형태에서는 각 처리 대상의 네트워크층에 대응하는 목표 후보 연산자 및 목표 후보 연산자에 대응하는 목표 후보 타일링 스트래티지에 기초하여 목표 뉴럴 네트워크에 대응하는 복수의 테스트 네트워크를 결정한다. 또한, 계산 장치에 의해 복수의 테스트 네트워크를 동작시키고, 각 테스트 네트워크의 테스트 결과를 결정한다. 테스트 결과에 기초하여 목표 테스트 네트워크를 결정하고, 예를 들면, 테스트 결과가 계산 오버헤드인 경우, 계산 오버헤드가 최소인 테스트 네트워크를 목표 테스트 네트워크로서 선택할 수 있다. 목표 테스트 네트워크에서의 각 처리 대상의 네트워크층의 목표 후보 연산자 및 목표 후보 타일링 스트래티지를 목표 뉴럴 네트워크에서의 각 처리 대상의 네트워크층에 각각 대응하는 목표 연산자 및 목표 타일링 스트래티지로서 결정함으로써 목표 연산자 및 목표 타일링 스트래티지에 대한 전체적인 최적 선택을 실현한다.
가능한 일 실현 형태에서는 상기 목표 뉴럴 네트워크에서의 각 처리 대상의 네트워크층에 대하여 상기 복수의 연산자 중에서 상기 처리 대상의 네트워크층에 대응하는 목표 후보 연산자를 결정하는 것과 함께, 상기 복수의 타일링 스트래티지 중에서 상기 목표 후보 연산자에 매칭하는 목표 후보 타일링 스트래티지를 결정하는 것은, 상기 처리 대상의 네트워크층에 대하여 상기 복수의 연산자 중에서 하나 또는 복수의 제1 후보 연산자를 결정하는 것과, 상기 복수의 타일링 스트래티지의 각각에서의 상기 제1 후보 연산자의 리소스 소비 상황에 기초하여 상기 제1 후보 연산자 및 상기 복수의 타일링 스트래티지 중에서 상기 처리 대상의 네트워크층에 대응하는 하나 또는 복수의 목표 후보 연산자 및 상기 목표 후보 연산자에 대응하는 목표 후보 타일링 스트래티지를 선택하는 것을 포함한다.
여기에서, 각 처리 대상의 네트워크층에 대하여 처리 대상의 네트워크층에 대응하는 하나 또는 복수의 제1 후보 연산자를 결정한 후, 복수의 타일링 스트래티지의 각각에서의 제1 후보 연산자의 리소스 소비 상황에 기초하여 제1 후보 연산자 및 복수의 타일링 스트래티지 중에서 처리 대상의 네트워크층에 대응하는 하나 또는 복수의 목표 후보 연산자 및 목표 후보 연산자에 대응하는 목표 후보 타일링 스트래티지를 선택하고, 예를 들면, 리소스 소비가 최소인 제1 후보 연산자 및 타일링 스트래티지를 목표 후보 연산자 및 목표 후보 타일링 스트래티지로서 선택함으로써 각 처리 대상의 네트워크층에 대응하는 목표 후보 연산자 및 목표 후보 타일링 스트래티지에 대한 국소적인 최적 선택을 실현한다.
가능한 일 실현 형태에서 상기 리소스 소비 상황은 계산 오버헤드값으로 나타나고, 상기 타일링 스트래티지의 각각에서의 상기 제1 후보 연산자의 계산 오버헤드값은, 미리 설정된 사이즈에서의 상기 제1 후보 연산자에 대응하는 제한 장면으로서, 미리 설정된 사이즈에서의 상기 제1 후보 연산자에 대응하는 데이터 용량의 계산 소비 시간 및 전송 소비 시간에 기초하여 결정되는 제한 장면을 결정하는 단계와, 상기 제한 장면이 대역폭 제한 장면에 해당되는 경우, 상기 타일링 스트래티지에 의한 타일링 결과에 기초하여, 상기 타일링 스트래티지에서의 상기 제1 후보 연산자에 대응하는 DMA데이터 전송 총량, DMA 태스크 수 및 상기 제1 후보 연산자에 대응하는 목표 데이터 배열 방식에 따라서 상기 제1 후보 연산자에 대응하는 입력 데이터에 대하여 실시하는 데이터 배열 방식에 의한 변환에 걸리는 시간인 데이터 변환 오버헤드를 결정하고, 상기 DMA데이터 전송 총량, 상기 DMA 태스크 수, 상기 데이터 변환 오버헤드 및 상기 계산 장치에 대응하는 DMA레이트, DMA 태스크 오버헤드에 기초하여 상기 타일링 스트래티지에서의 상기 제1 후보 연산자의 계산 오버헤드값을 결정하는 단계와, 상기 제한 장면이 계산 제한 장면에 해당되는 경우, 상기 타일링 스트래티지에 의한 타일링 결과에 기초하여, 상기 타일링 스트래티지에서의 상기 제1 후보 연산자에 대응하는 파라미터 데이터의 계산 소비 시간, 상기 제1 후보 연산자의 연산자 호출 횟수, 초기 데이터 전송 총량, DMA 태스크 수 및 데이터 변환 오버헤드를 결정하고, 상기 계산 소비 시간, 상기 연산자 호출 횟수, 초기 데이터 전송 총량, 데이터 변환 오버헤드, DMA 태스크 오버헤드, DMA 태스크 수 및 상기 계산 장치에 대응하는 DMA레이트에 기초하여 상기 타일링 스트래티지에서의 상기 제1 후보 연산자의 계산 오버헤드값을 결정하는 단계에 의하여 결정된다.
상기 실시형태에서는 미리 설정된 사이즈에서의 제1 후보 연산자에 대응하는 제한 장면을 결정할 수 있고, 다른 제한 장면은 다른 계산 오버헤드값의 결정 방식에 대응한다. 예를 들면, 대역폭 제한 장면에서는 DMA데이터 전송 총량, DMA 태스크 수, 데이터 변환 오버헤드, DMA레이트, DMA 태스크 오버헤드에 기초하여 계산 오버헤드값을 결정할 수 있고, 계산 제한 장면에서는 계산 소비 시간, 연산자 호출 횟수, 초기 데이터 전송 총량, 데이터 변환 오버헤드, DMA 태스크 오버헤드, DMA 태스크 수 및 DMA레이트에 기초하여 계산 오버헤드값을 결정할 수 있다.
가능한 일 실현 형태에서는 상기한, 상기 복수의 타일링 스트래티지의 각각에서의 상기 제1 후보 연산자의 리소스 소비 상황에 기초하여 상기 제1 후보 연산자 및 상기 복수의 타일링 스트래티지 중에서 상기 처리 대상의 네트워크층에 대응하는 하나 또는 복수의 목표 후보 연산자 및 상기 목표 후보 연산자에 대응하는 하나 또는 복수의 목표 후보 타일링 스트래티지를 선택하는 것은, 각각의 타일링 스트래티지에서 각각 하나의 상기 리소스 소비 상황에 대응지워지는 상기 제1 후보 연산자에 대응하는 복수의 상기 리소스 소비 상황 중에서 미리 설정된 조건을 충족하는 목표 리소스 소비 상황을 선출하는 것과, 상기 목표 리소스 소비 상황에 대응하는 타일링 스트래티지를 후보 타일링 스트래티지로서 결정하고, 상기 후보 타일링 스트래티지에 기초하여 상기 목표 리소스 소비 상황에 대응지워지는 제2 후보 연산자를 포함하는 처리 대상의 네트워크층을 동작시키고, 상기 후보 타일링 스트래티지 및 상기 제2 후보 연산자에 대응하는 테스트 결과를 결정하는 것과, 상기 테스트 결과에 기초하여 상기 처리 대상의 네트워크층에 대응하는 하나 또는 복수의 목표 후보 연산자 및 상기 목표 후보 연산자에 대응하는 목표 후보 타일링 스트래티지를 결정하는 것을 포함한다.
상기 방법에 따르면, 우선, 리소스 소비 상황을 이용하여 제1 후보 연산자 및 복수의 타일링 스트래티지 중에서 제2 후보 연산자 및 제2 후보 연산자에 매칭하는 후보 타일링 스트래티지를 선택하고, 제2 후보 연산자 및 후보 타일링 스트래티지에 대하여 테스트를 실시하고, 또한, 테스트 결과를 이용하여 처리 대상의 네트워크층에 대응하는 적어도 하나의 목표 후보 연산자 및 목표 후보 타일링 스트래티지를 결정하고, 결정된 처리 대상의 네트워크층에 대응하는 적어도 하나의 목표 후보 연산자 및 목표 후보 타일링 스트래티지를 최적 선택으로 한다.
가능한 일 실현 형태에서는 상기 제1 후보 연산자 및 상기 복수의 타일링 스트래티지 중에서 상기 처리 대상의 네트워크층에 대응하는 하나 또는 복수의 목표 후보 연산자 및 상기 목표 후보 연산자에 대응하는 목표 후보 타일링 스트래티지를 선택하기 전에, 결정된 상기 목표 뉴럴 네트워크에 대응하는 최소 입도 정보에 기초하여 상기 제1 후보 연산자에 대응하는 파라미터 데이터에 대해서 정렬 조작을 실시하고, 상기 제1 후보 연산자에 대응하는 얼라인먼트 후의 파라미터 데이터를 취득하는 것을 추가로 포함하고, 상기 최소 입도 정보는 다른 차원에서의 상기 파라미터 데이터에 대응하는 최소 입도를 포함하고, 다른 차원에서의 상기 얼라인먼트 후의 파라미터 데이터의 사이즈는 상기 최소 입도 정보에 의하여 나타나는 대응하는 차원에서의 최소 입도의 정수배이다.
여기에서, 목표 뉴럴 네트워크에 대응하는 최소 입도 정보에 기초하여 각 제1 후보 연산자에 대응하는 파라미터 데이터에 대해서 정렬 조작을 실시하고, 제1 후보 연산자에 대응하는 얼라인먼트 후의 파라미터 데이터를 취득할 수 있고, 다른 차원에서의 얼라인먼트 후의 파라미터 데이터의 사이즈는 최소 입도 정보에 의하여 나타나는 대응하는 차원에서의 최소 입도의 정수배이다. 이에 따라, 나중에 목표 타일링 스트래티지에 기초하여 목표 뉴럴 네트워크를 동작시킬 때의 파라미터 데이터의 분실 상황의 발생 확률을 저감시킨다.
가능한 일 실현 형태에서는 상기 파라미터 데이터가 입력 데이터와 정수 데이터를 포함하는 경우, 상기 복수의 타일링 스트래티지는 모든 입력 데이터, 계산 장치에 의한 상기 목표 뉴럴 네트워크의 동작 시에 DMA 태스크에 의하여 할당된 초기 데이터 영역 내에 기입되는 데이터인 초기 데이터로 하고, 결정된 상기 정수 데이터의 차원 파라미터에 기초하여 상기 정수 데이터에 대해서 지정 차원화의 타일링을 실시하고, 타일링 결과를 취득하는 것과, 모든 정수 데이터를 상기 초기 데이터로 하고, 결정된 상기 입력 데이터의 차원 파라미터에 기초하여 상기 입력 데이터에 대해서 지정 차원화의 타일링을 실시하고, 타일링 결과를 취득하는 것과, 목표 사이즈가 상기 입력 데이터의 제1 차원의 최소 입도에 기초하여 결정되는 일부의 입력 데이터를 상기 초기 데이터로 하고, 결정된 상기 정수 데이터의 차원 파라미터에 기초하여 상기 정수 데이터에 대해서 지정 차원화의 타일링을 실시하고, 타일링 결과를 취득하는 것과, 목표 사이즈가 상기 정수 데이터의 제1 차원의 최소 입도에 기초하여 결정되는 일부의 정수 데이터를 상기 초기 데이터로 하고, 결정된 상기 입력 데이터의 차원 파라미터에 기초하여 상기 입력 데이터에 대해서 지정 차원화의 타일링을 실시하고, 타일링 경과를 취득하는 것의 적어도 하나를 포함한다.
가능한 일 실현 형태에서는 상기한, 일부의 입력 데이터를 초기 데이터로 하고, 결정된 상기 정수 데이터의 차원 파라미터에 기초하여 상기 정수 데이터에 대해서 지정 차원화의 타일링을 실시하고, 타일링 결과를 취득하는 것은, 상기 입력 데이터의 제1 차원의 최소 입도의 i배에 기초하여 상기 일부의 입력 데이터의 목표 사이즈를 결정하는 것과, 상기 목표 사이즈의 상기 일부의 입력 데이터를 각각 초기 데이터로 하고, 결정된 상기 정수 데이터의 차원 파라미터에 기초하여 상기 정수 데이터에 대해서 지정 차원화의 타일링을 실시하고, 타일링 결과를 취득하는 것을 포함하고, 다만, i는 일부의 입력 데이터의 목표 사이즈가 결정된 후, 상기 일부의 입력 데이터의 데이터 용량과, 상기 정수 데이터의 차원 파라미터의 최소 입도에 기초하여 결정되는 정수 데이터 타일의 데이터 용량이 계산 장치의 메모리 요구를 충족하도록 하는 양의 정수이다.
가능한 일 실현 형태에서는 상기한, 일부의 정수 데이터를 초기 데이터로 하고, 결정된 상기 입력 데이터의 차원 파라미터에 기초하여 상기 입력 데이터에 대해서 지정 차원화의 타일링을 실시하고, 타일링 결과를 취득하는 것은, 상기 정수 데이터의 제1 차원의 최소 입도의 j배에 기초하여 상기 일부의 정수 데이터의 목표 사이즈를 결정하는 것과, 상기 목표 사이즈의 상기 일부의 정수 데이터를 각각 초기 데이터로 하고, 결정된 상기 입력 데이터의 차원 파라미터에 기초하여 상기 입력 데이터에 대해서 지정 차원화의 타일링을 실시하고, 타일링 결과를 취득하는 것을 포함하고, 다만, j는 일부의 정수 데이터의 목표 사이즈가 결정된 후, 상기 일부의 정수 데이터의 데이터 용량과, 상기 입력 데이터의 차원 파라미터의 최소 입도에 기초하여 결정되는 입력 데이터 타일의 데이터 용량이 계산 장치의 메모리 요구를 충족하도록 하는 양의 정수이다.
여기에서, 복수의 타일링 스트래티지를 설정함으로써 각 처리 대상의 네트워크층은 최적의 목표 연산자 및 목표 연산자에 매칭하는 목표 타일링 스트래티지를 선택할 수 있다.
가능한 일 실현 형태에서는 상기 지정 차원이 1차원이고, 상기 차원 파라미터가 제1 차원을 포함하는 경우, 상기 정수 데이터와 상기 입력 데이터를 각각 목표 데이터로 하고, 결정된 상기 목표 데이터의 제1 차원에 기초하여 상기 목표 데이터에 대해서 1차원화의 타일링을 실시하고, 타일링 결과를 취득하는 것은, 상기 목표 데이터의 제1 차원에 대응하는 최소 입도의 k(k는 양의 정수)배를 목표 타일링 사이즈로서 결정하고, 상기 목표 타일링 사이즈에 기초하여 상기 목표 데이터에 대해서 상기 제1 차원에 따라서 1차원화의 타일링을 실시하고, 상기 목표 데이터에 대응하는 복수의 목표 데이터 타일을 취득하는 것과, 상기 복수의 목표 데이터 타일과 상기 초기 데이터가 설정된 타일링 조건을 충족한다고 결정한 경우, 상기 목표 데이터의 제1 차원에 대응하는 최소 입도의 k+1배를 갱신 후의 목표 타일링 사이즈로 하고, 상기 목표 타일링 사이즈에 기초하여 상기 목표 데이터에 대해서 상기 제1 차원에 따라서 1차원화의 타일링을 실시하는 단계로 되돌아가고, 상기 복수의 목표 데이터 타일과 상기 초기 데이터가 설정된 타일링 조건을 충족하지 않는다고 결정할 때까지 상기 목표 데이터의 제1 차원에 대응하는 최소 입도의 k배를 상기 타일링 결과로서 결정하는 것과, 상기 초기 데이터와, k=1인 때에 생성된 상기 복수의 목표 데이터 타일이 설정된 타일링 조건을 충족하지 않는 경우, 상기 타일링 결과가 1차원화의 타일링 실패라고 결정하는 것을 포함한다.
상기 방법에 의해 목표 타일링 사이즈를 크게 하여 시행함으로써 계산 장치의 메모리 사용률을 높게 하는 타일링 결과가 결정되고, 계산 장치의 메모리 리소스 낭비를 저감하는 것에 유리하다.
가능한 일 실현 형태에서는 상기 지정 차원이 2차원이고, 상기 차원 파라미터가 제2 차원을 포함하는 경우, 상기 정수 데이터와 상기 입력 데이터를 각각 목표 데이터로 하고, 결정된 상기 목표 데이터의 제1 차원, 제2 차원에 기초하여 상기 목표 데이터에 대해서 2차원화의 타일링을 실시하고, 타일링 결과를 취득하는 것은, 상기 목표 데이터의 제1 차원에 대응하는 최소 입도의 y(y는 양의 정수)배를 제 1 목표 타일링 사이즈로서 결정하고, 상기 제 1 목표 타일링 사이즈에 기초하여 상기 목표 데이터에 대해서 제1 차원에 따라서 1차원화의 타일링을 실시하고, 상기 목표 데이터에 대응하는 복수의 중간 데이터 타일을 취득하는 것과, 상기 목표 데이터의 제2 차원에 대응하는 최소 입도의 x(x는 양의 정수)배를 제2 목표 타일링 사이즈로서 결정하고, 상기 제2 목표 타일링 사이즈에 기초하여 각 중간 데이터 타일에 대해서 상기 제2 차원에 따라서 2차원화의 타일링을 실시하고, 각 중간 데이터 타일에 각각 대응하는 복수의 목표 데이터 타일을 취득하는 것과, 상기 복수의 목표 데이터 타일과 상기 초기 데이터가 설정된 타일링 조건을 충족한다고 결정한 경우, 상기 목표 데이터의 제2 차원에 대응하는 최소 입도의 x+1배를 갱신 후의 제2 목표 타일링 사이즈로 하고, 상기 제2 목표 타일링 사이즈에 기초하여 각 중간 데이터 타일에 대해서 제2 차원에 따라서 2차원화의 타일링을 실시하는 단계로 되돌아가고, 상기 복수의 목표 데이터 타일과 상기 초기 데이터가 설정된 타일링 조건을 충족하지 않는다고 결정할 때까지 상기 목표 데이터의 제2 차원에 대응하는 최소 단위의 x배를 상기 타일링 결과로서 결정하는 것을 포함한다.
가능한 일 실현 형태에서는 상기 처리 대상의 네트워크층에 대응하는 파라미터 데이터가 출력 데이터를 더 포함하는 경우, 상기 복수의 목표 데이터 타일과 상기 초기 데이터가 설정된 타일링 조건을 충족한다고 결정하는 것은, 상기 초기 데이터, 상기 출력 데이터 및 각 목표 데이터 타일이 각각 상기 계산 장치의 메모리 요구를 충족하고, 상기 초기 데이터, 상기 출력 데이터 및 각 목표 데이터 타일이 각각 상기 계산 장치에서의 DMA전송 요구를 충족한다고 결정한 경우, 상기 복수의 목표 데이터 타일과 상기 초기 데이터가 설정된 타일링 조건을 충족한다고 결정하는 것을 포함한다.
상기 방법에 따르면, 초기 데이터, 출력 데이터 및 각 목표 데이터 타일이 계산 장치의 메모리 요구 및 계산 장치에서의 DMA전송 요구를 충족한 경우, 복수의 목표 데이터 타일 및 상기 초기 데이터가 설정된 타일링 조건을 충족한다고 결정하고, 타일링 스트래티지가 계산 장치의 동작 요구에 매칭하는 것이 확보된다.
이하의 장치, 전자 기기 등의 효과 설명은 상기 방법의 설명을 참조하면 좋고, 여기에서 설명을 생략한다.
본 발명의 제2 측면에 따르면, 목표 뉴럴 네트워크에서의 처리 대상의 네트워크층을 결정하는 제 1 결정 모듈과, 결정된, 각각이 상기 처리 대상의 네트워크 층에 대응하는 기능을 실현하기 위한 복수의 연산자 및 각각이 상기 목표 뉴럴 네트워크를 동작시키기 위한 계산 장치의 동작 요구에 매칭하는 복수의 타일링 스트래티지 중에서 상기 목표 뉴럴 네트워크에서의 상기 처리 대상의 네트워크층에 대응하는 목표 연산자 및 목표 타일링 스트래티지를 결정하는 제2 결정 모듈과, 상기 처리 대상의 네트워크층에 각각 대응하는 상기 목표 타일링 스트래티지에 기초하여 상기 목표 연산자를 포함하는 상기 목표 뉴럴 네트워크를 동작시키는 동작 모듈을 포함하는 뉴럴 네트워크 동작 장치를 제공한다.
본 발명의 제 3 측면에 따르면, 프로세서와, 상기 프로세서에 의해 실행 가능한 기계 가독 명령을 기억하기 위한 메모리와, 버스를 포함하고, 전자 기기가 동작하면, 상기 프로세서와 상기 메모리는 버스를 통하여 통신하고, 상기 기계 가독 명령이 상기 프로세서에 의해 실행되면, 상기 제 1 방면 또는 어느 쪽인가의 실시형태에 기재된 뉴럴 네트워크 동작 방법의 단계를 실행시키는 전자 기기를 제공한다.
본 발명의 제 4 측면에 따르면, 컴퓨터 프로그램을 기억하고 있는 컴퓨터 판독 가능한 기억 매체로서, 상기 컴퓨터 프로그램이 프로세서에 의해 실행되면, 상기 제 1 방면 또는 어느 쪽인가의 실시형태에 기재된 뉴럴 네트워크 동작 방법의 단계를 실현시키는 컴퓨터 판독 가능한 기억 매체를 제공한다.
본 발명의 제 5 측면에 따르면, 컴퓨터 판독 가능한 코드를 포함하고, 상기 컴퓨터 판독 가능한 코드가 전자 기기에서 동작하면, 상기 전자 기기의 프로세서에 상기 방법을 실행시키는 컴퓨터 프로그램을 제공한다.
본 발명의 상기 목적, 특징 및 잇점을 보다 알기 쉽게 하기 위해, 이하, 도면을 참조하면서 실시예를 들어서 상세히 설명한다.
본 발명의 실시예의 기술적 수단을 보다 명확히 설명하기 위해, 이하, 실시예에서 사용하는 도면에 대하여 간단히 설명한다. 여기에서, 본 명세서의 일부로서 편입되는 도면은 본 발명에 적합한 실시예를 나타내고, 명세서와 함께 본 발명의 기술적 수단의 설명에 이용된다. 이하의 도면은 본 발명의 몇 가지 실시예만을 나타내고, 범위를 한정하는 것으로 간주되어야 하는 것은 아니고, 당업자에 있어서 창의 연구를 추가하지 않는 경우, 이들의 도면에 기초하여 다른 관련 도면을 더 얻을 수 있는 것이 이해되어야 한다.
도 1은 본 발명의 실시예에 관련되는 뉴럴 네트워크 동작 방법을 나타내는 흐름도이다.
도 2는 본 발명의 실시예에 관련되는 뉴럴 네트워크 동작 방법에 있어서, 목표 뉴럴 네트워크에서의 처리 대상의 네트워크층에 대응하는 목표 연산자 및 목표 타일링 스트래티지를 결정하는 흐름도이다.
도 3은 본 발명의 실시예에 관련되는 뉴럴 네트워크 동작 방법에 있어서, 복수의 연산자 중에서 처리 대상의 네트워크층에 대응하는 목표 후보 연산자를 결정하는 것과 함께, 복수의 타일링 스트래티지 중에서 목표 후보 연산자에 매칭하는 목표 후보 타일링 스트래티지를 결정하는 흐름도이다.
도 4는 본 발명의 실시예에 관련되는 뉴럴 네트워크 동작 방법에서의 계산 장치의 소프트웨어와 하드웨어의 스케줄링을 나타내는 모식도이다.
도 5는 본 발명의 실시예에 관련되는 뉴럴 네트워크 동작 장치의 아키텍처를 나타내는 모식도이다.
도 6은 본 발명의 실시예에 관련되는 전자 기기의 구성을 나타내는 모식도이다.
본 발명의 실시예의 목적, 기술적 수단 및 잇점을 보다 명확히 하기 위해, 이하, 본 발명의 실시예에서의 기술 방안을 본 발명의 실시예에서의 도면과 아울러서 명확히, 완전히 설명하지만, 명백히, 설명된 실시예는 본 발명의 일부의 실시예에 불과하고, 모든 실시예는 아니다. 일반적으로, 여기에서 도면에 나타나 있는 본 발명의 실시예의 액세서리는 여러 가지 다른 구성으로 배치되고, 설계되어도 좋다. 따라서, 도면에 나타나 있는 본 발명의 실시예에 관한 상세한 설명은 특허를 청구하는 본 발명의 범위를 한정하는 것은 아니고, 본 발명에서 선택된 실시예를 나타내는 것에 불과하다. 본 발명의 실시예에 기초하여 당업자가 창의 연구를 추가하지 않고 얻어지는 다른 모든 실시예는 본 발명의 보호 범위 내이다.
일반적으로, 다이렉트 메모리 액세스(DMA: Direct Memory Access)에 의존하여 데이터 전송을 실시하는 계산 장치는 데이터 캐시(Data cache) 효율이 높지 않거나, 또는 데이터 캐시가 없기 때문에, 이 계산 장치를 이용하여 대규모의 뉴럴 네트워크를 추론하는 경우, 계산 장치의 메모리가 한정되어 있기 때문에 대규모의 뉴럴 네트워크의 단층 태스크를 타일링(tile)하거나, 스케줄링하는 등의 과제가 발생할 가능성이 있다.
구체적인 실현에서는 계산 장치에서 해당 대규모의 뉴럴 네트워크를 동작시킬 때에 계산 장치의 메이커에 따라서 설정된 공식 추론 라이브러리를 사용하여 계산 장치에서 대규모의 뉴럴 네트워크를 동작시켜도 좋지만, 해당 공식 추론 라이브러리는 특정한 기초 뉴럴 네트워크에 대한 것이고, 사용자에 의하여 기초 뉴럴 네트워크가 최적화되기 때문에 공식 추론 라이브러리를 사용할 수 없게 되거나, 계산 장치가 해당 공식 추론 라이브러리를 이용하여 최적화된 뉴럴 네트워크를 동작시키는 효율이 저하하도록 할 가능성이 있다. 다만, 공식 추론 라이브러리는 이용 가능한 추론 배치안이고, 예를 들면, ceva dsp의 cdnn라이브러리이어도 좋다.
또한, 최적화된 뉴럴 네트워크에 대하여, 공식 추론 라이브러리에 대하여 재개발을 실시하고, 개발된 추론 라이브러리를 최적화된 뉴럴 네트워크에 적용 가능하게 해도 좋지만, 개발 과정의 비용이 비싸고, 효율이 낮고, 또한 개발된 추론 라이브러리는 해당 최적화된 뉴럴 네트워크만에 적용하고, 다른 뉴럴 네트워크에 적용하지 않아서, 개발된 추론 라이브러리의 다중화율이 낮아진다.
따라서, 상기 과제를 해결하기 위해, 본 발명의 실시예는 뉴럴 네트워크 동작 방법, 장치, 전자 기기 및 기억 매체를 제공한다.
상기 수단에 존재하는 결점에 대해서는, 모두 발명자가 실천과 신중한 검토를 거쳐서 얻어진 결과이기 때문에 상기 과제의 발견 과정 및 상기 과제에 대하여 본 발명에 의해서 제안되는 이하의 해결 수단은 모두 본 발명의 과정에서의 본 발명에 대한 발명자의 공헌이어야 한다.
이하의 도면에서는 유사한 도면 부호 및 알파벳은 유사한 항목을 나타내기 때문에, 어느 항목은 하나의 도면에서 정의되면, 그 후의 도면에서 더한층의 정의나 설명이 필요 없는 것에 주의하셨으면 한다.
본 발명의 실시예를 이해하기 쉽게 하기 위해, 우선, 본 발명의 실시예에 개시되는 뉴럴 네트워크 동작 방법에 대하여 상세히 설명한다. 본 발명의 실시예에 관련되는 뉴럴 네트워크 동작 방법의 실행 주체는 일반적으로 일정한 계산 능력을 가지는 컴퓨터 장치이고, 해당 컴퓨터 장치는 뉴럴 네트워크를 동작시키는 계산 장치이어도 좋고, 다른 계산 장치이어도 좋고, 해당 컴퓨터 장치는 예를 들면, 단말 장치 또는 서버 또는 다른 처리 장치를 포함하고, 단말 장치로서는, 사용자 기기(UE: User Equipment), 모바일 디바이스, 사용자 단말, 단말, 셀룰러폰, 코드리스 전화, 퍼스널ㆍ디지털ㆍ어시스턴트(PDA: Personal Digital Assistant), 휴대 장치, 계산 장치, 차량 탑재 장치, 웨어러블 디바이스 등을 들 수 있다. 몇 가지의 가능한 실현 형태에서는 해당 뉴럴 네트워크 동작 방법은 프로세서에 의하여 메모리에 기억되어 있는 컴퓨터 판독 가능한 명령을 호출해서 실현되어도 좋다.
도 1은 본 발명의 실시예에 관련되는 뉴럴 네트워크 동작 방법을 나타내는 흐름도이고, 도 1을 참조하여, 해당 방법은 (S101)∼(S103)을 포함한다.
(S101)에 있어서, 목표 뉴럴 네트워크에서의 처리 대상의 네트워크층을 결정한다.
(S102)에 있어서, 결정된 복수의 연산자 및 복수의 타일링 스트래티지 중에서 목표 뉴럴 네트워크에서의 처리 대상의 네트워크층에 대응하는 목표 연산자 및 목표 타일링 스트래티지를 결정한다.
다만, 복수의 연산자의 각각은 처리 대상의 네트워크층에 대응하는 기능을 실현하기 위해 이용되고, 복수의 타일링 스트래티지의 각각은 목표 뉴럴 네트워크를 동작시키기 위한 계산 장치의 동작 요구에 매칭한다.
(S103)에 있어서, 처리 대상의 네트워크층에 대응하는 목표 타일링 스트래티지에 기초하여 목표 연산자를 포함하는 목표 뉴럴 네트워크를 동작시킨다.
상기 방법에 있어서, 목표 뉴럴 네트워크에서의 처리 대상의 네트워크층이 결정된 후, 결정된 복수의 연산자 및 복수의 타일링 스트래티지 중에서 처리 대상의 네트워크층에 대응하는 목표 연산자 및 목표 타일링 스트래티지를 결정할 수 있다. 타일링 스트래티지가 계산 장치의 동작 요구를 충족함으로써 처리 대상의 네트워크층에 대응하는 목표 타일링 스트래티지에 기초하여 목표 연산자를 포함하는 목표 뉴럴 네트워크를 동작시킬 때에 계산 장치의 동작 요구를 충족할 수 있다. 그와 함께, 목표 타일링 스트래티지는 그에 매칭하는 처리 대상의 네트워크층에 대응하는 목표 연산자의 파라미터 데이터를 타일링할 수 있는 것에 의해, 타일링된 파라미터 데이터에 기초하여 처리 대상의 네트워크층을 동작시킬 때의 리소스 소비가 최소로 되고, 그 리소스 소비는 예를 들면, 토탈 계산 오버헤드로 나타나도 좋고, 즉, 계산 장치의 동작 요구를 충족하면서 적어도 하나의 처리 대상의 네트워크층에 각각 대응하는 목표 타일링 스트래티지에 기초하여 목표 연산자를 포함하는 목표 뉴럴 네트워크를 동작시키는 효율을 높게 한다.
가능한 일 실시형태에서 목표 뉴럴 네트워크는 이미지 처리 태스크를 실현하기 위해 이용되고, 상기 이미지 처리 태스크는 이미지 인식, 이미지 분류, 이미지 분할, 키포인트 검출 중의 적어도 하나를 포함한다.
이하, (S101)∼(S103)에 대하여 구체적으로 설명한다.
(S101)에 대하여, 여기에서 목표 뉴럴 네트워크는 그래프 계층의 최적화 처리(즉, 그래프 최적화 처리)를 실시한 어느 쪽인가의 뉴럴 네트워크이어도 좋고, 그래프 최적화 처리 후의 뉴럴 네트워크는 계산 그래프가 결정된 뉴럴 네트워크이고, 즉, 그래프 최적화 처리 후의 뉴럴 네트워크는 각 네트워크층의 태스크 및 파라미터 사이즈가 결정된 뉴럴 네트워크이고, 각 네트워크층의 파라미터 사이즈는 해당 네트워크층에 포함되는 파라미터 데이터의 사이즈이어도 좋다. 예를 들면, 목표 뉴럴 네트워크의 제 1 네트워크층의 태스크는 특징 추출이어도 좋고, 제 1 네트워크층이 입력 데이터를 포함하는 경우, 입력 데이터의 파라미터 사이즈는 256×256×128이어도 좋다. 각 네트워크층의 태스크 및 파라미터 사이즈는 실제의 상황에 따라서 설정할 수 있고, 여기에서는 예시적인 설명에 불과하다.
처리 대상의 네트워크층은 목표 뉴럴 네트워크에서의 처리 대상의 네트워크 OP(operator)층이어도 좋다. 예를 들면, 처리 대상의 네트워크층은 목표 뉴럴 네트워크에서 사이즈가 설정 한계값보다 큰 네트워크 OP층이어도 좋거나, 또는 사용자가 필요에 따라서 선택한 네트워크 OP층이어도 좋다. 결정된 처리 대상의 네트워크층의 수는 하나 또는 복수이어도 좋다.
예시적으로, 각 네트워크 OP층은 합성곱층에 근사한 것이어도 좋고, 예를 들면, 전결합층은 특징 맵과 합성곱 커널과 사이즈가 일치하는 합성곱층에 근사한 것이어도 좋고, 가중치가 없는 통상층은 가중치가 0인 합성곱층 등으로 간주해도 좋다.
(S102)에 대하여, 여기에서 처리 대상의 네트워크층의 수가 복수인 경우, 각 처리 대상의 네트워크층에 대하여 해당 처리 대상의 네트워크층에 대응하는 목표 연산자 및 목표 타일링 스트래티지를 결정할 수 있다. 다만, 복수의 타일링 스트래티지의 각각은 목표 뉴럴 네트워크를 동작시키기 위한 계산 장치의 동작 요구에 매칭한다. 복수의 연산자의 각각은 처리 대상의 네트워크층에 대응하는 기능을 실현하기 위해 이용되고, 각 연산자는 하나의 조작 또는 하나의 기본 네트워크 구조 유닛에 대응할 수 있다. 예를 들면, 미리 설정된 연산자는 예를 들면, 합성곱 연산자, 풀링 연산자, 전결합 연산자 등을 포함한다. 계산 장치는 목표 뉴럴 네트워크 추론 계산을 직접적으로 처리하는 장치이고, 예를 들면, 계산 장치는 디지털 신호 처리(DSP: Digital Signal Processing) 등이어도 좋다.
가능한 일 실시형태에서 타일링 스트래티지는 처리 대상의 네트워크층에 대응하는 목표 연산자의 파라미터 데이터를 타일링하기 위해 이용된다. 복수의 타일링 스트래티지에 있어서, 목표 타일링 스트래티지를 이용하여 목표 연산자의 파라미터 데이터를 타일링해서 얻어진 파라미터 데이터에 기초하여 처리 대상의 네트워크층을 동작시킬 때의 리소스 소비가 최소로 된다.
여기에서, 리소스 소비가 최소로 되는 것이란, 처리 대상의 네트워크층을 동작시킬 때의 동작 소비 시간이 최소로 되는 것을 가리킬 수 있다. 구체적인 실시에서 각 처리 대상의 네트워크층의 목표 타일링 스트래티지는 해당 처리 대상의 네트워크층에 대응하는 목표 연산자의 파라미터 데이터를 타일링하기 위해 이용되고, 이에 따라, 계산 장치가 타일링된 파라미터 데이터에 기초하여 각 처리 대상의 네트워크층을 동작시킬 때의 리소스 소비가 최소로 되고, 그 리소스 소비는 예를 들면, 토탈 계산 오버헤드로 나타나도 좋고, 즉, 각 처리 대상의 네트워크층을 동작시킬 때의 토탈 계산 오버헤드가 최소로 된다. 다만, 연산자의 파라미터 데이터는 입출력 데이터와 정수 데이터를 포함해도 좋고, 입출력 데이터는 입력 데이터와 출력 데이터를 포함해도 좋고, 정수 데이터는 가중치 데이터 및/또는 편차 데이터를 포함해도 좋다.
예시적으로, 입력 데이터는 3차원 데이터이어도 좋고, 예를 들면, 폭 차원, 높이 차원, 입력 채널 차원을 포함해도 좋고, 출력 데이터는 3차원 데이터이어도 좋고, 예를 들면, 출력 폭 차원, 출력 높이 차원, 출력 채널 차원을 포함해도 좋고, 가중치 데이터는 4차원 데이터이어도 좋고, 예를 들면, 폭 차원, 높이 차원, 입력 채널 차원, 출력 채널 차원을 포함해도 좋고, 편차 데이터는 1차원 데이터이어도 좋고, 예를 들면, 출력 채널 차원을 포함해도 좋다. 다만, 상기 입력 데이터, 출력 데이터, 가중치 데이터 및 편차 데이터의 차원 정보는 실제의 상황에 따라서 설정할 수 있고, 여기에서는 예시적인 설명에 불과하다.
구체적인 실시에서는 처리 대상의 네트워크층이 복수인 경우, 목표 뉴럴 네트워크에서의 각 처리 대상의 네트워크층에 대하여 목표 뉴럴 네트워크에서의 처리 대상의 네트워크층의 순서에 따라서 각 처리 대상의 네트워크층의 목표 연산자 및 목표 후보 타일링 스트래티지를 층마다 결정할 수 있거나, 또는 각 처리 대상의 네트워크층의 각각의 목표 연산자 및 목표 후보 타일링 스트래티지를 무작위로 결정할 수도 있다. 예를 들면, 현재의 처리 대상의 네트워크층의 입력 데이터의 데이터 배열이 설정된 목표 데이터 배열 방식과 일치하는지의 여부를 결정할 필요가 있는 경우, 현재의 처리 대상의 네트워크층보다 전의 처리 대상의 네트워크층의 출력 데이터를 이용할 필요가 있고, 이 경우, 각 처리 대상의 네트워크층에 대응하는 목표 후보 연산자 및 목표 후보 타일링 스트래티지를 층마다 결정할 필요가 있다.
선택 가능한 일 실시형태에서는 도 2에 나타내는 바와 같이, 상기 처리 대상의 네트워크층이 복수인 경우, 결정된 복수의 연산자 및 복수의 타일링 스트래티지 중에서 목표 뉴럴 네트워크에서의 처리 대상의 네트워크층에 대응하는 목표 연산자 및 목표 타일링 스트래티지를 결정하는 것은,
목표 뉴럴 네트워크에서의 처리 대상의 네트워크층의 각각에 대하여 복수의 연산자 중에서 처리 대상의 네트워크층에 대응하는 목표 후보 연산자를 결정하는 것과 함께, 복수의 타일링 스트래티지 중에서 목표 후보 연산자에 매칭하는 목표 후보 타일링 스트래티지를 결정하는 (S201)과,
어느 쪽인가의 처리 대상의 네트워크층에 대응하는 목표 후보 연산자가 복수이고, 및/또는 목표 후보 타일링 스트래티지가 복수인 경우, 처리 대상의 네트워크층의 각각에 대응하는 목표 후보 연산자 및 목표 후보 타일링 스트래티지에 기초하여 처리 대상의 네트워크층의 각각에 대응하는 목표 연산자 및 목표 타일링 스트래티지를 결정하는 (S202)를 포함한다.
여기에서, 우선, 각 처리 대상의 네트워크층에 대응하는 목표 후보 연산자 및 해당 목표 후보 연산자에 매칭하는 목표 후보 타일링 스트래티지를 결정함으로써 각 처리 대상의 네트워크층의 목표 후보 연산자 및 목표 후보 타일링 스트래티지에 대한 국소적인 최적 선택을 실현한다. 나아가서는, 어느 쪽인가의 처리 대상의 네트워크층에 대응하는 목표 후보 연산자가 복수이고, 및/또는 목표 후보 타일링 스트래티지가 복수인 경우, 각 처리 대상의 네트워크층을 종합적으로 고려하여, 목표 뉴럴 네트워크에서의 각 처리 대상의 네트워크층에 각각 대응하는 목표 연산자 및 목표 타일링 스트래티지를 결정함으로써 각 처리 대상의 네트워크층의 목표 연산자 및 목표 타일링 스트래티지에 대한 전체적인 최적 선택을 실현한다.
여기에서, 설정된 모든 연산자가 포함되는 연산자 세트 및 설정된 모든 타일링 스트래티지 세트가 포함되는 타일링 스트래티지 세트를 미리 설정하고 있어도 좋다. 처리 대상의 네트워크층의 목표 연산자 및 목표 타일링 스트래티지의 결정 효율을 향상시키기 위해, 각 처리 대상의 네트워크층에 대하여 연산자 세트 및 타일링 스트래티지 세트 중에서 해당 처리 대상의 네트워크층에 대응하는 복수의 연산자 및 복수의 타일링 스트래티지를 결정할 수 있다. 다른 처리 대상의 네트워크층에 대응하는 복수의 연산자는 같아도 좋고, 달라 있어도 좋다. 다른 처리 대상의 네트워크층에 대응하는 복수의 타일링 스트래티지는 같아도 좋고, 달라 있어도 좋다. 다만, 실제의 상황에 따라서 각 처리 대상의 네트워크층에 대응하는 복수의 연산자 및 복수의 타일링 스트래티지를 결정할 수 있다.
예시적으로, 과거의 경험 데이터에 기초하여 각 처리 대상의 네트워크층에 대응하는 복수의 연산자 및/또는 복수의 타일링 스트래티지를 결정할 수 있다. 예를 들면, 과거의 경험 데이터에 기초하여 처리 대상의 네트워크층(1)에 대응하는 복수의 연산자에는 연산자 1, 연산자 2, 연산자 3이 포함되고, 대응하는 복수의 타일링 스트래티지에는 타일링 스트래티지(1), 타일링 스트래티지(2), 타일링 스트래티지 4가 포함되고, 처리 대상의 네트워크층(2)에 대응하는 복수의 연산자에는 연산자 1, 연산자 3, 연산자 4, 연산자 5가 포함되고, 대응하는 복수의 타일링 스트래티지에는 타일링 스트래티지(2), 타일링 스트래티지 5가 포함된다고 결정할 수 있다.
(S201)에 있어서, 선택 가능한 일 실시형태에서는 도 3에 나타내는 바와 같이, 목표 뉴럴 네트워크에서의 각 처리 대상의 네트워크층에 대하여 복수의 연산자 중에서 처리 대상의 네트워크층에 대응하는 목표 후보 연산자를 결정하는 것과 함께, 복수의 타일링 스트래티지 중에서 목표 후보 연산자에 매칭하는 목표 후보 타일링 스트래티지를 결정하는 것은,
처리 대상의 네트워크층에 대하여 복수의 연산자 중에서 하나 또는 복수의 제1 후보 연산자를 결정하는 (S301)과,
복수의 타일링 스트래티지의 각각에서의 제1 후보 연산자의 리소스 소비 상황에 기초하여 제1 후보 연산자 및 복수의 타일링 스트래티지 중에서 처리 대상의 네트워크층에 대응하는 하나 또는 복수의 목표 후보 연산자 및 목표 후보 연산자에 대응하는 목표 후보 타일링 스트래티지를 선택하는 (S302)를 포함한다.
여기에서, 각 처리 대상의 네트워크층에 대하여, 처리 대상의 네트워크층에 대응하는 하나 또는 복수의 제1 후보 연산자가 결정된 후, 각각의 타일링 스트래티지에서의 제1 후보 연산자의 리소스 소비 상황에 기초하여 적어도 하나의 제1 후보 연산자 및 복수의 타일링 스트래티지 중에서 처리 대상의 네트워크층에 대응하는 하나 또는 복수의 목표 후보 연산자 및 목표 후보 연산자에 대응하는 목표 후보 타일링 스트래티지를 선택할 수 있고, 예를 들면, 리소스 소비가 최소인 제1 후보 연산자 및 타일링 스트래티지를 목표 후보 연산자 및 목표 후보 타일링 스트래티지로서 선택할 수 있고, 각 처리 대상의 네트워크층에 대응하는 목표 후보 연산자 및 목표 후보 타일링 스트래티지에 대한 국소적인 최적 선택을 실현한다.
(S301)에 있어서, 목표 뉴럴 네트워크에서의 각 처리 대상의 네트워크층에 대하여, 복수의 연산자 중에서 해당 처리 대상의 네트워크층에 대응하는 하나 또는 복수의 제1 후보 연산자를 결정할 수 있다. 예를 들면, 각 처리 대상의 네트워크층의 태스크에 기초하여 복수의 연산자 중에서 해당 태스크를 달성할 수 있는 연산자를 해당 처리 대상의 네트워크층에 대응하는 제1 후보 연산자로서 선택하거나, 또는 목표 뉴럴 네트워크의 요구에 기초하여 처리 대상의 네트워크층에 대응하는 제1 후보 연산자를 사용자에 의하여 결정한다.
(S302)에 있어서, 우선, 각각의 타일링 스트래티지에서의 각 제1 후보 연산자의 리소스 소비 상황을 결정하고, 또한, 복수의 타일링 스트래티지에서의 제1 후보 연산자의 리소스 소비 상황에 기초하여 적어도 하나의 후보 연산자 및 복수의 타일링 스트래티지 중에서 해당 처리 대상의 네트워크층에 대응하는 하나 또는 복수의 목표 후보 연산자 및 목표 후보 연산자에 대응하는 목표 후보 타일링 스트래티지를 결정한다. 다만, 리소스 소비 상황은 계산 장치가 타일링 스트래티지에 기초하여 제1 후보 연산자를 동작시킬 때의 리소스 소비 데이터이고, 예를 들면, 계산 오버헤드값으로 나타나고, 해당 계산 오버헤드값은 계산 장치가 목표 연산자를 포함하는 처리 대상의 네트워크층을 동작시킬 때에 소비되는 시간을 나타낸다.
예시 1로서, 처리 대상의 네트워크층(1)에 대응하는 제1 후보 연산자는 제1 후보 연산자(1), 제1 후보 연산자 2를 포함하고, 처리 대상의 네트워크층에 대응하는 타일링 스트래티지는 타일링 스트래티지(1), 타일링 스트래티지(2), 타일링 스트래티지(3)을 포함하면, 제1 후보 연산자(1)에 대하여, 타일링 스트래티지(1)에 대응하는 계산 오버헤드값, 타일링 스트래티지(2)에 대응하는 계산 오버헤드값, 타일링 스트래티지(1)에 대응하는 계산 오버헤드값을 계산하여 얻어지고, 제1 후보 연산자 2에 대하여, 타일링 스트래티지(1)에 대응하는 계산 오버헤드값, 타일링 스트래티지(2)에 대응하는 계산 오버헤드값, 타일링 스트래티지(1)에 대응하는 계산 오버헤드값을 계산하여 얻어지고, 계산하여 얻어진 6개의 계산 오버헤드값에 기초하여 처리 대상의 네트워크층(1)에 대응하는 목표 후보 연산자 및 목표 후보 타일링 스트래티지를 결정할 수 있다.
선택 가능한 일 실시형태에서는 각 제1 후보 연산자에 대응하는 복수의 계산 오버헤드값을 얻은 후, 계산 오버헤드값을 직접 이용하여 처리 대상의 네트워크층에 대응하는 적어도 하나의 목표 후보 연산자 및 목표 후보 타일링 스트래티지를 결정할 수 있다.
예를 들면, 하기 2가지의 방식에 의해, 계산 오버헤드값을 이용하여 처리 대상의 네트워크층에 대응하는 적어도 하나의 목표 후보 연산자 및 목표 후보 타일링 스트래티지를 결정할 수 있다.
방식 1에서는, 계산하여 얻어진 각 계산 오버헤드값 중에서 오버헤드값이 최소인 제1 후보 연산자 및 타일링 스트래티지를 처리 대상의 네트워크층에 대응하는 목표 후보 연산자 및 목표 후보 타일링 스트래티지로서 선택한다.
상기 예시 1에 있어서, 6개의 계산 오버헤드값을 추가로 얻은 후, 최소의 계산 오버헤드값을 선택하고, 예를 들면, 타일링 스트래티지(1)에서의 제1 후보 연산자(1)의 계산 오버헤드값이 최소이면, 제1 후보 연산자(1)을 처리 대상의 네트워크층(1)에 대응하는 목표 후보 연산자로서 결정하고, 타일링 스트래티지(1)을 처리 대상의 네트워크층(1)에 대응하는 목표 후보 타일링 스트래티지로서 결정한다.
방식 2에서는, 오버헤드 한계값을 설정할 수 있고, 계산하여 얻어진 처리 대상의 네트워크층에 대응하는 복수의 계산 오버헤드값 중에서 계산 오버헤드값이 오버헤드 한계값보다도 작은 후보 오버헤드값을 선택하고, 후보 오버헤드값에 대응하는 제1 후보 연산자를 처리 대상의 네트워크층에 대응하는 목표 후보 연산자로서 결정하고, 후보 오버헤드값에 대응하는 타일링 스트래티지를 목표 후보 연산자에 매칭하는 목표 타일링 스트래티지로서 결정한다.
상기 예시 1에 있어서, 6개의 계산 오버헤드값을 더 얻은 후, 타일링 스트래티지(1)에서의 제1 후보 연산자(1)의 계산 오버헤드값이 설정된 오버헤드 한계값보다도 작고, 타일링 스트래티지(3)에서의 제1 후보 연산자 2의 계산 오버헤드값이 설정된 오버헤드 한계값보다도 작은 경우, 제1 후보 연산자(1)을 처리 대상의 네트워크층(1)에 대응하는 목표 후보 연산자로서 결정하고, 타일링 스트래티지(1)을 제1 후보 연산자(1)에 매칭하는 목표 후보 타일링 스트래티지로서 결정하고, 제1 후보 연산자 2를 처리 대상의 네트워크층(1)에 대응하는 목표 후보 연산자로서 결정하고, 타일링 스트래티지(3)을 제1 후보 연산자(3)에 매칭하는 목표 후보 타일링 스트래티지로서 결정하고, 즉, 처리 대상의 네트워크층(1)에 대응하는 목표 후보 연산자와 목표 후보 타일링 스트래티지를 결정했다.
다른 실시형태에서는, (S302)에 있어서, 복수의 타일링 스트래티지에서의 제1 후보 연산자의 리소스 소비 상황에 기초하여 제1 후보 연산자 및 복수의 타일링 스트래티지 중에서 처리 대상의 네트워크층에 대응하는 하나 또는 복수의 목표 후보 연산자 및 목표 후보 연산자에 대응하는 하나 또는 복수의 목표 후보 타일링 스트래티지를 선택하는 것은,
각각의 타일링 스트래티지에서 각각 하나의 리소스 소비 상황에 대응지워지는 제1 후보 연산자에 대응하는 복수의 상기 리소스 소비 상황 중에서 미리 설정된 조건을 충족하는 목표 리소스 소비 상황을 선출하는 단계 1과,
목표 리소스 소비 상황에 대응하는 타일링 스트래티지를 후보 타일링 스트래티지로서 결정하고, 후보 타일링 스트래티지에 기초하여 목표 리소스 소비 상황에 대응지워지는 제2 후보 연산자를 포함하는 처리 대상의 네트워크층을 동작시키고, 후보 타일링 스트래티지 및 제2 후보 연산자에 대응하는 테스트 결과를 결정하는 단계 2와,
테스트 결과에 기초하여 처리 대상의 네트워크층에 대응하는 하나 또는 복수의 목표 후보 연산자 및 상기 목표 후보 연산자에 대응하는 목표 후보 타일링 스트래티지를 결정하는 단계 3을 포함한다.
상기 방법에 따르면, 우선, 리소스 소비 상황을 이용하여 제1 후보 연산자 및 복수의 타일링 스트래티지 중에서 제2 후보 연산자 및 제2 후보 연산자에 매칭하는 후보 타일링 스트래티지를 선택하고, 제2 후보 연산자 및 후보 타일링 스트래티지에 대하여 테스트를 실시하고, 또한, 테스트 결과를 이용하여 처리 대상의 네트워크층에 대응하는 적어도 하나의 목표 후보 연산자 및 목표 후보 타일링 스트래티지를 결정하고, 결정된 처리 대상의 네트워크층에 대응하는 적어도 하나의 목표 후보 연산자 및 목표 후보 타일링 스트래티지를 최적 선택으로 한다.
단계 1에 있어서, 하나의 제1 후보 연산자는 하나의 타일링 스트래티지에서 하나의 리소스 소비 상황에 대응지워진다. 예를 들면, 제1 후보 연산자(1)에 대응하는 타일링 스트래티지가 4개인 경우, 제1 후보 연산자는 4개의 리소스 소비 상황에 대응지워진다.
이하, 리소스 소비 상황을 계산 오버헤드값으로 나타내는 것을 예로 하여 설명을 실시하고, 미리 설정된 조건은 실제의 필요에 따라서 설정할 수 있다. 예를 들면, 오버헤드값이 최소인 것을 미리 설정된 조건으로 할 수 있고, 및/또는 설정된 오버헤드 한계값보다도 작은 것을 미리 설정된 조건으로 할 수 있고, 및/또는 최소의 오버헤드값이나 최소의 오버헤드값과의 차이가 설정된 차이 한계값보다도 작은 다음의 최소의 오버헤드값을 선출하는 것을 미리 설정된 조건으로 할 수도 있다.
예를 들면, 계산하여 얻어진 제1 후보 연산자의 설정된 복수의 타일링 스트래티지에서의 계산 오버헤드값 중, 계산 오버헤드값 1이 10, 계산 오버헤드값 2가 12, 계산 오버헤드값 3이 18, 계산 오버헤드값 4가 20인 경우, 복수의 계산 오버헤드값 중에서 최소의 오버헤드값을 선택할 수 있고, 즉, 계산 오버헤드값 1을 목표 오버헤드값으로서 결정하거나, 또는 오버헤드 한계값을 15로 설정할 수 있고, 계산 오버헤드값 1과 계산 오버헤드값 2를 목표 오버헤드값으로서 결정하거나, 또는 차이 한계값을 5로 설정할 수 있고, (계산 오버헤드값 2와 계산 오버헤드값 1의 차이가 설정된 차이 한계값보다도 작은 것을 알 수 있도록)계산 오버헤드값 1과 계산 오버헤드값 2를 목표 오버헤드값으로서 결정하고, 즉, 해당 목표 오버헤드값은 제2 후보 연산자 및 제2 후보 연산자에 매칭하는 후보 타일링 스트래티지에 대응한다.
단계 2에 있어서, 목표 오버헤드값(즉, 목표 리소스 소비 상황)에 대응하는 제2 후보 연산자 및 후보 타일링 스트래티지에 대하여 실측을 실시하고, 각 목표 오버헤드값에 대응하는 테스트 결과를 취득할 수 있다. 즉, 각 목표 오버헤드값에 대하여, 목표 리소스 소비 상황에 대응하는 타일링 스트래티지를 후보 타일링 스트래티지로서 결정하고, 후보 타일링 스트래티지에 기초하여 해당 목표 오버헤드값에 대응하는 제2 후보 연산자를 포함하는 처리 대상 네트워크층을 동작시키고, 해당 목표 오버헤드값에 대응하는 테스트 결과를 결정하고, 즉, 후보 타일링 스트래티지 및 제2 후보 연산자에 대응하는 테스트 결과를 결정할 수 있다.
단계 3에 있어서, 테스트 결과에 기초하여, 처리 대상의 네트워크층에 대응하는 하나 또는 복수의 목표 후보 연산자 및 목표 후보 연산자에 대응하는 목표 후보 타일링 스트래티지를 결정할 수 있다. 예를 들면, 테스트 결과가 동작 시간인 경우, 동작 시간이 최단인 제2 후보 연산자를 선택하여 해당 처리 대상의 네트워크층의 목표 후보 연산자로서 결정하고, 동작 시간이 최단인 제2 후보 연산자에 대응하는 후보 타일링 스트래티지를 목표 후보 연산자로서 결정할 수 있다. 여기에서, 제1 후보 연산자, 제2 후보 연산자는 처리 대상의 네트워크층의 기능을 실현할 수 있는 연산자이어도 좋다.
또는, 동작 시간 한계값을 설정할 수도 있고, 동작 시간 한계값보다도 작은 테스트 결과를 목표 테스트 결과로서 결정하고, 목표 테스트 결과에 대응하는 제2 후보 연산자를 목표 후보 연산자로서 결정하고, 목표 테스트 결과에서의 목표 후보 연산자에 대응하는 후보 타일링 스트래티지를 목표 후보 타일링 스트래티지로서 결정한다.
선택 가능한 일 실시형태에서 리소스 소비 상황은 계산 오버헤드값으로 나타나고,
타일링 스트래티지의 각각에서의 제1 후보 연산자의 계산 오버헤드값은,
미리 설정된 사이즈에서의 제1 후보 연산자에 대응하는 제한 장면으로서, 미리 설정된 사이즈에서의 제1 후보 연산자에 대응하는 데이터 용량의 계산 소비 시간 및 전송 소비 시간에 기초하여 결정되는 제한 장면을 결정하는 단계 1과,
제한 장면이 대역폭 제한 장면에 해당되는 경우, 타일링 스트래티지에 의한 타일링 결과에 기초하여, 타일링 스트래티지에서의 제1 후보 연산자에 대응하는 DMA데이터 전송 총량, DMA 태스크 수 및 제1 후보 연산자에 대응하는 목표 데이터 배열 방식에 따라서 제1 후보 연산자에 대응하는 입력 데이터에 대하여 실시하는 데이터 배열 방식에 의한 변환에 걸리는 시간인 데이터 변환 오버헤드를 결정하고, DMA데이터 전송 총량, DAM태스크 수, 데이터 변환 오버헤드 및 계산 장치에 대응하는 DMA레이트, DMA 태스크 오버헤드에 기초하여 타일링 스트래티지에서의 제1 후보 연산자의 계산 오버헤드값을 결정하는 단계 2와,
제한 장면이 계산 제한 장면에 해당되는 경우, 타일링 스트래티지에 의한 타일링 결과에 기초하여 타일링 스트래티지에서의 제1 후보 연산자에 대응하는 파라미터 데이터의 계산 소비 시간, 제1 후보 연산자의 연산자 호출 횟수, 초기 데이터 전송 총량, DMA 태스크 수 및 데이터 변환 오버헤드를 결정하고, 계산 소비 시간, 연산자 호출 횟수, 초기 데이터 전송 총량, 데이터 변환 오버헤드, DMA 태스크 오버헤드, DMA 태스크 수 및 계산 장치에 대응하는 DMA레이트에 기초하여 타일링 스트래티지에서의 제1 후보 연산자의 계산 오버헤드값을 결정하는 단계 3에 의하여 결정된다.
단계 1에 있어서, 미리 설정된 사이즈에서의 각 제1 후보 연산자에 대응하는 제한 장면을 결정할 수 있다. 다만, 미리 설정된 사이즈는 필요에 따라서 설정되고, 큰 사이즈이어도 좋다.
구체적인 실시에서는, 각 처리 대상의 네트워크층에 대응하는 목표 연산자의 파라미터 데이터는 계산 장치의 메모리 이외의 다른 외부 메모리에 기억할 수 있고, 예를 들면, DDR(Double Data Rate) SDRAM(Synchronous Dynamic Random Access Memory)에 기억할 수 있고, 각 처리 대상의 네트워크층의 동작에 있어서, DMA는 DDR로부터 해당 처리 대상의 네트워크층에 대응하는 목표 연산자의 파라미터 데이터(예를 들면, 입력 데이터, 정수 데이터 등)를 취득하고, 취득한 파라미터 데이터를 계산 장치의 메모리 전송하고, 계산 장치에 의한 계산이 완료된 후, 데이터 결과(즉, 출력 데이터)를 목표 뉴럴 네트워크에서의 해당 처리 대상의 네트워크층에 인접한 다음의 네트워크층(해당 네트워크층은 처리 대상의 네트워크층이어도 좋다)이 용이하게 사용할 수 있도록 DDR에 전송한다. 다만, DMA는 핑퐁(ping-pong) 스케줄링 폴리시를 이용하여, 취득한 파라미터 데이터를 전송할 수 있다.
이와 같이, DMA에 의한 미리 설정된 사이즈에서의 제1 후보 연산자의 파라미터 데이터의 전송은 하나의 계산 소비 시간이 있고, 계산 장치에 의한 미리 설정된 사이즈에서의 제1 후보 연산자의 파라미터 데이터의 처리는 하나의 계산 소비 시간이 있다. 또한, 계산 소비 시간이 전송 소비 시간보다도 큰 경우에는, DMA에 의한 현재의 파라미터 데이터의 계산 장치의 메모리로의 전송 중에 계산 장치에 의한 앞의 파라미터 데이터에 대한 처리 과정이 종료되어 있지 않고, 이때 계산 장치에 의한 대기가 필요해져서, 계산 장치에 의한 앞의 파라미터 데이터에 대한 처리 과정이 종료된 후, 현재의 파라미터 데이터를 계산 장치의 메모리에 전송하게 되고, 그 경우에 대응하는 장면은 계산 제한 장면이다. 계산 소비 시간이 전송 소비 시간보다도 작은 경우에는, 계산 장치에 의한 앞의 파라미터 데이터에 대한 처리가 완료된 후, DMA에 의한 현재의 파라미터 데이터의 계산 장치의 메모리로의 전송이 이루어져 있지 않고, DMA의 전송한 현재의 파라미터 데이터를 수신할 때까지 DMA에 의한 대기가 필요해지게 되고, 그 경우에 대응하는 장면은 대역폭 제한 장면이어도 좋다.
또한, 제한 장면이 대역폭 제한 장면인 경우에는, 대역폭 제한 장면에 대응하는 제 1 오버헤드 함수를 이용하여 오버헤드값을 계산할 수 있고, 제한 장면이 계산 제한 장면인 경우에는, 계산 제한 장면에 대응하는 제2 오버헤드 함수를 이용하여 오버헤드값을 계산할 수 있다.
예시적으로, 하기 과정에 기초하여 미리 설정된 사이즈에서의 제1 후보 연산자에 대응하는 제한 장면을 결정할 수 있다. 미리 설정된 사이즈에서의 제1 후보 연산자에 대하여, 미리 설정된 사이즈에서의 제1 후보 연산자에 대응하는 파라미터 데이터의 전송에 필요한 전송 소비 시간을 결정하고, 또한 계산 장치에 의한 미리 설정된 사이즈에서의 제1 후보 연산자의 파라미터 데이터의 처리의 계산 소비 시간을 결정하고, 전송 소비 시간 및 계산 소비 시간의 크기에 기초하여 제1 후보 연산자에 대응하는 제한 장면을 결정한다.
예시적으로, 하기 과정에 기초하여 미리 설정된 사이즈에서의 제1 후보 연산자의 제한 장면을 결정할 수도 있다. 첫째로, 미리 설정된 사이즈 정보에 기초하여, 계산 장치가 제1 후보 연산자에 대응하는 파라미터 데이터에 기초하여 대응하는 처리 대상의 네트워크층을 동작시키는 것에 필요한 목표 소비 시간을 결정하고, 또한 제1 후보 연산자에 대응하는 파라미터 데이터의 목표 데이터 용량을 결정한다. 둘째로, 계산 장치에 대응하는 DMA레이트와 목표 소비 시간에 기초하여 목표 소비 시간 내에서 DMA가 전송 가능한 데이터 용량을 결정한다. 셋째로, 목표 소비 시간 내에서 DMA가 전송 가능한 데이터 용량과 목표 데이터 용량의 비(比)에 기초하여 제한 장면을 결정하고, 즉, 비가 1 이하인 경우, 제한 장면을 대역폭 제한 장면으로서 결정하고, 비가 1보다도 큰 경우, 제한 장면을 계산 제한 장면으로서 결정한다.
여기에서, 목표 소비 시간 내에서 DMA가 전송 가능한 데이터 용량은 전송 속도에 관련되고, 목표 데이터 용량은 계산 속도에 관련되고, 비가 1보다도 큰 경우, 전송 속도가 계산 속도보다도 큰(즉, 전송 소비 시간이 계산 소비 시간보다도 작은) 것을 나타내고, 즉, 계산 제한 장면이고, 비가 1 이하인 경우, 전송 속도가 계산 속도 이하(즉, 전송 소비 시간이 계산 소비 시간 이상)인 것을 나타내고, 즉, 대역폭 제한 장면이고, 이후, 다른 제한 장면에 대하여 다른 방식을 선택해서 계산 오버헤드값을 결정할 수 있다.
제1 후보 연산자의 파라미터 데이터의 미리 설정된 사이즈 정보에 기초하여, 계산 장치에서 제1 후보 연산자의 파라미터 데이터에 대응하는 목표 소비 시간을 결정하고, 즉, 계산 장치가 제1 후보 연산자에 대응하는 파라미터 데이터에 기초하여 대응하는 처리 대상의 네트워크를 동작시킬 때에 필요한 목표 소비 시간을 결정한다. 계산 장치에 대응하는 DMA레이트와 목표 소비 시간을 곱셈하고, 목표 소비 시간 내에서 DMA가 전송 가능한 데이터 용량을 얻을 수 있다.
동시에, 제1 후보 연산자의 파라미터 데이터의 미리 설정된 사이즈 정보에 기초하여, 제1 후보 연산자에 대응하는 파라미터 데이터의 목표 데이터 용량을 결정할 수 있다. 예를 들면, 제1 후보 연산자가 합성곱 연산자인 경우, 해당 목표 데이터 용량은 정수 데이터(가중치 데이터와 편차 데이터를 포함한다), 출력 데이터 및 입력 데이터의 합계이어도 좋다. 또한, 산출된 목표 소비 시간 내에서 DMA가 전송 가능한 데이터 용량과 목표 데이터 용량의 비에 기초하여 제한 장면을 결정할 수 있다.
구체적인 실시에서는, 계산 장치를 결정한 후, 해당 계산 장치에 대응하는 DMA 태스크 오버헤드를 결정할 수 있고, 단위는 초(s)이고, 예를 들면, 하나의 DMA 태스크를 작성할 때마다 걸리는 주기(cycle)를 시간으로 변환할 수 있고, 즉, DMA 태스크 오버헤드를 취득하고, 또한 DMA레이트, 즉, DMA의 전송 속도를 결정할 수 있고, 단위는 Byte/s이다.
단계 2에 있어서, 제 1 오버헤드 함수를 이용하여 타일링 스트래티지에서의 제1 후보 연산자의 계산 오버헤드값을 결정할 수 있다. 제 1 오버헤드 함수는 계산 오버헤드=DMA데이터 전송 총량/DMA레이트+DMA 태스크 수×DMA 태스크 오버헤드+데이터 변환 오버헤드이어도 좋다.
즉, 대역폭 제한 장면에 해당된다고 결정한 경우, 타일링 결과에 기초하여, 타일링 스트래티지에서의 제1 후보 연산자에 대응하는 DMA데이터 전송 총량(단위는 Byte), DMA 태스크 수 및 데이터 변환 오버헤드(단위는 초(s))를 결정할 수 있다. 다만, DMA데이터 전송 총량은 생성된 DMA 태스크에 기초하여 결정할 수 있다. DMA 태스크 수는 타일링 스트래티지에 기초하여 파라미터 데이터를 타일링한 후, 얻어진 파라미터 데이터의 데이터 타일의 수에 기초하여 결정할 수 있다. 예를 들면, 하나의 데이터 타일이 하나의 DMA 태스크에 대응하고, 생성된 데이터 타일의 수가 10개인 경우, DMA의 태스크가 10개라고 결정한다. 여기에서, DMA데이터 전송 총량과 DMA 태스크 수는 실제의 상황에 따라서 결정할 수 있고, 여기에서는 예시적인 설명에 불과하다. 예를 들면, 제1 후보 연산자가 합성곱 연산자인 경우, 합성곱 연산자에 대응하는 합성곱 커널 사이즈, 합성곱 스텝 사이즈 등의 합성곱 파라미터에 기초하여, 타일링의 결과에 기초한 DMA 태스크 수를 결정할 수 있다.
데이터 변환 오버헤드는 제1 후보 연산자에 대응하는 목표 데이터 배열 방식에 따라서 제1 후보 연산자에 대응하는 입력 데이터에 대하여 실시하는 데이터 배열 방식에 의한 변환에 걸리는 시간이다. 여기에서, 제 1 연산자의 입력 데이터의 데이터 배열이 제 1 연산자에 대응하는 목표 데이터 배열 방식과 일치하는 경우, 데이터 변환 오버헤드는 0이고, 제 1 연산자의 입력 데이터의 데이터 배열이 제 1 연산자에 대응하는 목표 데이터 배열 방식과 일치하지 않는 경우, 데이터 변환 오버헤드=입력 데이터의 총 데이터 용량×2/DMA레이트라는 식에 기초하여 데이터 변환 오버헤드를 계산할 수 있다. 다만, 입력 데이터의 총 데이터 용량은 타일링의 앞에 처리 대상의 네트워크층에 입력된 모든 입력 데이터이다.
단계 3에 있어서, 계산 제한 장면에 해당된다고 결정한 경우, 제2 오버헤드 함수에 기초하여 타일링 스트래티지에서의 제1 후보 연산자의 계산 오버헤드값을 계산할 수 있다. 제2 오버헤드 함수는 계산 오버헤드=연산자 오버헤드 환산 대역폭×연산자 호출 횟수/DMA레이트+초기 데이터 전송 총량/DMA레이트+DMA 태스크 수×DMA 태스크 오버헤드+데이터 변환 오버헤드이다.
다만, 연산자 오버헤드 환산 대역폭은 제1 후보 연산자의 미리 설정된 사이즈에서의 계산 소비 시간 및 타일링 스트래티지에서의 제1 후보 연산자에 대응하는 파라미터 데이터의 사이즈에 기초하여 결정된 연산자 전송 데이터량이다. 예를 들면, 미리 설정된 사이즈가 1024×1024×128이고, 제1 후보 연산자의 미리 설정된 사이즈에서의 계산 소비 시간이 10밀리초이고, 타일링 후의 파라미터 데이터의 사이즈가 512×512×64인 경우, 상기 타일링 스트래티지에서의 제1 후보 연산자에 대응하는 파라미터 데이터의 계산 소비 시간은 1.25밀리초이다. 또한, 결정된 계산 속도 및 상기 타일링 스트래티지에서의 제1 후보 연산자에 대응하는 파라미터 데이터의 계산 소비 시간(예를 들면, 1.25밀리초)에 기초하여, 타일링된 제1 후보 연산자에 대응하는 연산자 오버헤드 환산 대역폭을 결정할 수 있다.
구체적으로는, 타일링 결과에 기초하여 타일링 스트래티지에서의 제1 후보 연산자에 대응하는 파라미터 데이터의 계산 소비 시간, 제1 후보 연산자의 연산자 호출 횟수, 초기 데이터 전송 총량, DMA 태스크 수 및 데이터 변환 오버헤드를 결정할 수 있다. 다만, 연산자 호출 횟수는 타일링 스트래티지에 기초하여 파라미터 데이터를 타일링해서 얻어진 파라미터 데이터의 데이터 타일의 수에 기초하여 결정할 수 있다. 예를 들면, 얻어진 파라미더 데이터의 데이터 타일의 수가 10개인 경우, 연산자 호출 횟수가 10회라고 결정한다. 초기 데이터 전송 총량은 타일링 스트래티지에 기초하여 결정된 초기 데이터의 데이터 용량이다. 다만, 목표 데이터 용량, 연산자 호출 횟수, 초기 데이터 전송 총량은 실제의 상황에 따라서 결정할 수 있다.
다만, 단계 2 및 단계 3에 있어서, 타일링 결과에 기초하여, 제1 후보 연산자의 얼라인먼트 후의 파라미터 데이터에 대응하는 목표 데이터 용량, 연산자 호출 횟수, 초기 데이터 전송 총량, DMA 태스크 수 및 데이터 변환 오버헤드를 취득할 수 있다.
단계 3에서의 데이터 변환 오버헤드의 결정 과정은 단계 2에서의 데이터 변환 오버헤드의 결정 과정과 같아서, 여기에서는 구체적인 설명을 생략한다. 본 발명의 실시예는 주로 대역폭 제한 장면에 적용할 수 있고, 즉, 대역폭 제한 장면을 충족하는 경우, 단계 2를 이용하여 계산 오버헤드값을 결정하고, 대역폭 제한 장면을 충족하지 않는 경우(즉, 계산 오버헤드를 충족하는 경우), 단계 3을 이용하여 계산 오버헤드값을 결정할 수 있다.
상기 실시형태에서는 미리 설정된 사이즈에서의 제1 후보 연산자에 대응하는 제한 장면을 결정할 수 있고, 다른 제한 장면은 다른 계산 오버헤드값의 결정 방식에 대응한다. 예를 들면, 대역폭 제한 장면에서는 DMA데이터 전송 총량, DMA 태스크 수, 데이터 변환 오버헤드, DMA레이트, DMA 태스크 오버헤드에 기초하여 계산 오버헤드값을 결정할 수 있고, 계산 제한 장면에서는 계산 소비 시간, 연산자 호출 횟수, 초기 데이터 전송 총량, 데이터 변환 오버헤드 및 DMA레이트에 기초하여 계산 오버헤드값을 결정할 수 있다.
선택 가능한 일 실시형태에서는 제1 후보 연산자 및 상기 복수의 타일링 스트래티지 중에서 처리 대상의 네트워크층에 대응하는 하나 또는 복수의 목표 후보 연산자 및 목표 후보 연산자에 대응하는 목표 후보 타일링 스트래티지를 선택하기 전에, 해당 방법은,
결정된 목표 뉴럴 네트워크에 대응하는 최소 입도 정보에 기초하여 제1 후보 연산자에 대응하는 파라미터 데이터에 대해서 정렬 조작을 실시하고, 제1 후보 연산자에 대응하는 얼라인먼트 후의 파라미터 데이터를 취득하는 것을 추가로 포함하고, 최소 입도 정보는 다른 차원에서의 파라미터 데이터에 대응하는 최소 입도를 포함하고, 다른 차원에서의 얼라인먼트 후의 파라미터 데이터의 사이즈는 최소 입도 정보에 의하여 나타나는 대응하는 차원에서의 최소 입도의 정수배이다.
여기에서, 최소 입도 정보는 다른 차원에서의 파라미터 데이터에 대응하는 최소 입도를 포함하고, 예를 들면, 파라미터 데이터가 가중치 데이터를 포함하는 경우, 가중치 데이터에 대응하는 최소 입도 정보는 폭 차원에서의 최소 입도, 길이 차원에서의 최소 입도, 입력 채널 차원에서의 최소 입도, 출력 채널 차원에서의 최소 입도를 포함한다. 다만, 최소 입도 정보는 계산 장치의 동작 요구 및/또는 사용자 요구에 기초하여 결정할 수 있고, 여기에서는 예시적인 설명에 불과하다.
결정된 목표 뉴럴 네트워크에 대응하는 최소 입도 정보를 이용하여, 각 제1 후보 연산자에 대응하는 파라미터 데이터에 대해서 정렬 조작을 실시하고, 제1 후보 연산자에 대응하는 얼라인먼트 후의 파라미터 데이터를 취득하고, 다른 차원에서의 얼라인먼트 후의 파라미터 데이터의 사이즈는 최소 입도 정보에 의하여 나타나는 대응하는 차원에서의 최소 입도의 정수배이도록 한다. 예를 들면, 최소 입도 정보에 의하여 나타나는 폭 차원의 사이즈가 32이고, 파라미터 데이터에 의하여 나타나는 폭 차원의 사이즈가 33인 경우, 생성된 얼라인먼트 후의 파라미터 데이터의 폭 차원의 사이즈는 64이다. 파라미터 데이터에 의하여 나타나는 폭 차원의 사이즈가 31인 경우, 생성된 얼라인먼트 후의 파라미터 데이터의 폭 차원의 사이즈는 32이다.
다만, 정렬 조작의 구체적인 과정은 실제의 필요에 따라서 선택할 수 있다. 예를 들면, 종래의 데이터 정렬 방식(예를 들면, padding방식 등)을 이용하여 파라미터 데이터에 대해서 정렬 조작을 실시하고, 얼라인먼트 후의 파라미터 데이터를 생성할 수 있다.
다른 실시형태에서 계산 장치는 DDR로부터 얼라인먼트 전의 파라미터 데이터를 취득하고, garbage를 이용하여 데이터 계산을 실시하고나서, 계산 장치로부터 출력된 데이터 중에서 유효 데이터를 선택하고, 유효 데이터를 출력 데이터로서 DDR에 입력해도 좋다.
여기에서, 목표 뉴럴 네트워크에 대응하는 최소 입도 정보에 기초하여, 각 제1 후보 연산자에 대응하는 파라미터 데이터에 대해서 정렬 조작을 실시하고, 제1 후보 연산자에 대응하는 얼라인먼트 후의 파라미터 데이터를 취득할 수 있고, 다른 차원에서의 얼라인먼트 후의 파라미터 데이터의 사이즈는 최소 입도 정보에 의하여 나타나는 대응하는 차원에서의 최소 입도의 정수배이다. 이에 따라, 나중에 목표 타일링 스트래티지에 기초하여 목표 뉴럴 네트워크를 동작시킬 때의 파라미터 데이터의 분실 상황의 발생 확률을 저감시킨다.
선택 가능한 일 실시형태에서는 S202에 있어서, 각 처리 대상의 네트워크층에 각각 대응하는 목표 후보 연산자 및 목표 후보 타일링 스트래티지에 기초하여 처리 대상의 네트워크층에 대응하는 목표 연산자 및 목표 타일링 스트래티지를 결정하는 것은,
각 처리 대상의 네트워크층에 각각 대응하는 목표 후보 연산자 및 목표 후보 연산자에 대응하는 목표 후보 타일링 스트래티지에 기초하여, 목표 뉴럴 네트워크에 대응하는 것으로서, 각각이 각 처리 대상의 네트워크층에 대응하는 하나의 목표 후보 연산자 및 해당 목표 후보 연산자에 매칭하는 하나의 목표 후보 타일링 스트래티지를 포함하는 복수의 테스트 네트워크를 결정하는 (S2021)과,
복수의 테스트 네트워크를 각각 동작시키고, 각각 복수의 테스트 네트워크에 대응하는 복수의 테스트 결과를 취득하는 (S2022)와,
복수의 테스트 결과에 기초하여 복수의 테스트 네트워크 중에서 목표 테스트 네트워크를 선출하는 (S2023)과,
목표 테스트 네트워크에서의 처리 대상의 네트워크층의 목표 후보 연산자 및 목표 후보 타일링 스트래티지를, 목표 뉴럴 네트워크에서의 처리 대상의 네트워크층에 각각 대응하는 목표 연산자 및 목표 타일링 스트래티지로서 결정하는 (S2024)를 포함한다.
(S2021)에 있어서, 예시적으로, 목표 뉴럴 네트워크가 제1 처리 대상의 네트워크층, 제2 처리 대상의 네트워크층 및 제3 처리 대상의 네트워크층을 포함하는 경우, 제1 처리 대상의 네트워크층은 목표 후보 연산자(1), 목표 후보 연산자(1)에 대응하는 타일링 스트래티지(1) 및 목표 후보 연산자(2), 목표 후보 연산자(2)에 대응하는 타일링 스트래티지(2)를 포함하고, 제2 처리 대상의 네트워크층은 목표 후보 연산자(3), 목표 후보 연산자에 대응하는 타일링 스트래티지(1) 및 목표 후보 연산자(4), 목표 후보 연산자(4)에 대응하는 타일링 스트래티지(1)을 포함하고, 제3 처리 대상의 네트워크층은 목표 후보 연산자(5), 목표 후보 연산자(5)에 대응하는 타일링 스트래티지(3)을 포함한다.
따라서, 목표 뉴럴 네트워크에 대응하는 4개의 테스트 네트워크를 얻을 수 있고, 제 1 테스트 네트워크는 목표 후보 연산자(1), 목표 후보 연산자(1)에 대응하는 타일링 스트래티지(1), 목표 후보 연산자(3), 목표 후보 연산자(3)에 대응하는 타일링 스트래티지(1), 목표 후보 연산자(5), 목표 후보 연산자(5)에 대응하는 타일링 스트래티지(3)을 포함한다. 제2 테스트 네트워크는 목표 후보 연산자(1), 목표 후보 연산자(1)에 대응하는 타일링 스트래티지(1), 목표 후보 연산자(4), 목표 후보 연산자(4)에 대응하는 타일링 스트래티지(1), 목표 후보 연산자(5), 목표 후보 연산자(5)에 대응하는 타일링 스트래티지(3)을 포함한다. 제 3 테스트 네트워크는 목표 후보 연산자(2), 목표 후보 연산자(2)에 대응하는 타일링 스트래티지(2), 목표 후보 연산자(3), 목표 후보 연산자(3)에 대응하는 타일링 스트래지티 1, 목표 후보 연산자(5), 목표 후보 연산자(5)에 대응하는 타일링 스트래티지(3)을 포함한다. 제 4 테스트 네트워크는 목표 후보 연산자(2), 목표 후보 연산자(2)에 대응하는 타일링 스트래티지(2), 목표 후보 연산자(4), 목표 후보 연산자(4)에 대응하는 타일링 스트래티지(1), 목표 후보 연산자(5), 목표 후보 연산자(5)에 대응하는 타일링 스트래티지(3)을 포함한다.
(S2022), (S2023)에 있어서, 각각 복수의 테스트 네트워크를 동작시켜서 각 테스트 네트워크의 테스트 결과를 결정하도록 계산 장치를 제어할 수 있다. 예를 들면, 테스트 결과는 각 테스트 네트워크에 대응하는 동작 시간이어도 좋다. 또한, 복수의 테스트 네트워크에 대응하는 테스트 결과에 기초하여 복수의 테스트 네트워크 중에서 목표 테스트 네트워크를 선출할 수 있다. 예를 들면, 동작 시간이 최단인 테스트 네트워크를 목표 테스트 네트워크로서 선출할 수 있다.
(S2024)에 있어서, 목표 테스트 네트워크에 포함되는 각 처리 대상의 네트워크층의 목표 후보 연산자 및 목표 후보 타일링 스트래티지를, 목표 뉴럴 네트워크에서의 각 처리 대상의 네트워크층에 각각 대응하는 목표 연산자 및 목표 타일링 스트래티지로서 결정할 수 있다.
예를 들면, 제2 테스트 네트워크가 목표 테스트 네트워크라고 결정한 경우, 목표 후보 연산자(1)이 제1 처리 대상의 네트워크층의 목표 연산자이고, 타일링 스트래티지(1)이 제1 처리 대상의 네트워크층에 대응하는 목표 타일링 스트래티지이고, 목표 후보 연산자(4)가 제2 처리 대상의 네트워크층의 목표 연산자이고, 타일링 스트래티지(1)이 제2 처리 대상의 네트워크층의 목표 후보 타일링 스트래티지이고, 목표 후보 연산자(5)가 제3 처리 대상의 네트워크층의 목표 연산자이고, 타일링 스트래티지(3)이 제3 처리 대상의 네트워크층의 목표 후보 타일링 스트래티지라고 결정한다.
테스트 네트워크를 동작시키는 것에 소비되는 비용 및 연산 리소스를 저감시키고, 목표 연산자 및 목표 타일링 스트래티지의 결정 효율을 향상시키기 위해, 구체적인 실시에서는 각 처리 대상의 네트워크층에 대응하는, 목표 타일링 스트래티지가 대응지워져 있는 목표 연산자의 최대수를 설정할 수 있다. 예를 들면, 설정된 최대수가 2인 경우, 각 처리 대상의 네트워크층은 목표 타일링 스트래티지에 대응지워져 있는 목표 연산자를 하나 포함해도 좋고, 예를 들면, 목표 타일링 스트래티지(1)이 대응지워져 있는 목표 연산자(1)을 포함하거나, 또는 각 처리 대상의 네트워크층은 목표 타일링 스트래티지가 대응지워져 있는 목표 연산자를 2개 포함해도 좋고, 예를 들면, 목표 타일링 스트래티지가 대응지워져 있는 2개의 목표 연산자는 목표 타일링 스트래티지(1)이 대응지워져 있는 목표 연산자(1), 목표 타일링 스트래티지(2)가 대응지워져 있는 목표 연산자(1)이어도 좋거나, 또는 목표 타일링 스트래티지가 대응지워져 있는 2개의 목표 연산자는 목표 타일링 스트래티지(1)이 대응지워져 있는 목표 연산자(1), 목표 타일링 스트래티지(2)가 대응지워져 있는 목표 연산자(2)이어도 좋거나, 또는 목표 타일링 스트래티지가 대응지워져 있는 2개의 목표 연산자는 목표 타일링 스트래티지(1)이 대응지워져 있는 목표 연산자(1), 목표 타일링 스트래티지(1)이 대응지워져 있는 목표 연산자(2) 등이어도 좋다.
및/또는 구체적인 실시에서는 목표 뉴럴 네트워크에 대응하는 테스트 네트워크의 수의 한계값을 설정할 수 있다. 예를 들면, 설정된 수의 한계값은 100이고, 처리 대상의 네트워크층은 10층을 포함하고, 제1 층에서 제6 층의 처리 대상의 네트워크층에 대응하는, 목표 타일링 스트래티지가 대응지워져 있는 목표 연산자의 수는 모두 2이면, 제1 층에서 제6 층의 처리 대상의 네트워크층에 있어서, 각 처리 대상의 네트워크층에 대응하는 목표 연산자 및 목표 타일링 스트래티지에 기초하여 구성된 국소적인 테스트 네트워크의 수는 26=64개이어도 좋다. 또한, 제 7층의 처리 대상의 네트워크층의 목표 연산자 및 목표 타일링 스트래티지를 결정할 때, 제 7층의 처리 대상의 네트워크층에 대응하는, 목표 타일링 스트래티지가 대응지워져 있는 목표 연산자의 수가 2인 경우, 제1 층에서 제 7층의 처리 대상의 네트워크층에 있어서, 각 처리 대상의 네트워크층에 대응하는 목표 연산자 및 목표 타일링 스트래티지에 기초하여 구성된 국소적 테스트 네트워크의 수는 27=128개이어도 좋고, 설정된 수의 한계값보다도 크다. 이 경우, 제 7층의 처리 대상의 네트워크층, 제 8층의 처리 대상의 네트워크층, 제 9층의 처리 대상의 네트워크층 및 제 10층의 처리 대상의 네트워크층에 있어서, 각 층의 처리 대상의 네트워크층에 대응하는, 목표 타일링 스트래티지가 대응지워져 있는 목표 연산자의 수는 하나만이어도 좋다.
상기 실시형태에서는 각 처리 대상의 네트워크층에 대응하는 적어도 하나의 목표 후보 연산자 및 목표 후보 연산자에 대응하는 목표 후보 타일링 스트래티지에 기초하여 목표 뉴럴 네트워크에 대응하는 복수의 테스트 네트워크를 결정한다. 또한, 계산 장치에 의하여 복수의 테스트 네트워크를 동작시키고, 각 테스트 네트워크의 테스트 결과를 결정한다. 테스트 결과에 기초하여 목표 테스트 네트워크를 결정하고, 예를 들면, 테스트 결과가 계산 오버헤드인 경우, 계산 오버헤드가 최소인 테스트 네트워크를 목표 테스트 네트워크로서 선택할 수 있고, 목표 테스트 네트워크에서의 각 처리 대상의 네트워크층의 목표 후보 연산자 및 목표 후보 타일링 스트래티지를, 목표 뉴럴 네트워크에서의 각 처리 대상의 네트워크층에 각각 대응하는 목표 연산자 및 목표 타일링 스트래티지로서 결정하고, 목표 연산자 및 목표 타일링 스트래티지에 대한 전체적인 최적 선택을 실현한다.
선택 가능한 일 실시형태에서는 지정 차원이 1차원인 경우, 차원 파라미터는 제1 차원이고, 지정 차원이 N차원인 경우, 차원 파라미터는 제 1∼제 N차원을 포함하고, N은 2보다 크고, 또한 정수 데이터 또는 입력 데이터보다 작은 차원이다. 파라미터 데이터가 입력 데이터와 정수 데이터를 포함하는 경우, 복수의 타일링 스트래티지는 이하의 적어도 하나를 포함한다.
안 1: 모든 입력 데이터를, 계산 장치에 의한 목표 뉴럴 네트워크의 동작 시에 DMA 태스크에 의하여 할당된 초기 데이터 영역 내에 기입되는 데이터인 초기 데이터로 하고, 결정된 정수 데이터의 제1 차원에 기초하여 정수 데이터에 대해서 1차원화의 타일링을 실시하고, 타일링 결과를 취득한다.
안 2: 모든 입력 데이터를 초기 데이터로 하고, 결정된 정수 데이터의 제1 차원과 제2 차원에 기초하여 정수 데이터에 대해서 2차원화의 타일링을 실시하고, 타일링 결과를 취득한다.
안 3: 모든 정수 데이터를 초기 데이터로 하고, 결정된 입력 데이터의 제1 차원에 기초하여 입력 데이터에 대해서 1차원화의 타일링을 실시하고, 타일링 결과를 취득한다.
안 4: 모든 정수 데이터를 초기 데이터로 하고, 결정된 입력 데이터의 제1 차원과 제2 차원에 기초하여 입력 데이터에 대해서 2차원화의 타일링을 실시하고, 타일링 결과를 취득한다.
안 5: 목표 사이즈가 입력 데이터의 제1 차원의 최소 입도에 기초하여 결정되는 일부의 입력 데이터를 초기 데이터로 하고, 결정된 정수 데이터의 제1 차원에 기초하여 정수 데이터에 대해서 1차원화의 타일링을 실시하고, 타일링 결과를 취득한다.
안 6: 목표 사이즈가 입력 데이터의 제1 차원의 최소 입도에 기초하여 결정되는 일부의 입력 데이터를 초기 데이터로 하고, 결정된 정수 데이터의 제1 차원과 제2 차원에 기초하여 정수 데이터에 대해서 2차원화의 타일링을 실시하고, 타일링 결과를 취득한다.
안 7: 목표 사이즈가 정수 데이터의 제1 차원의 최소 입도에 기초하여 결정되는 일부의 정수 데이터를 초기 데이터로 하고, 결정된 입력 데이터의 제1 차원에 기초하여 입력 데이터에 대해서 1차원화의 타일링을 실시하고, 타일링 결과를 취득한다.
안 8: 목표 사이즈가 정수 데이터의 제1 차원의 최소 입도에 기초하여 결정되는 일부의 정수 데이터를 초기 데이터로 하고, 결정된 입력 데이터의 제1 차원과 제2 차원에 기초하여 입력 데이터에 대해서 2차원화의 타일링을 실시하고, 타일링 결과를 취득한다.
여기에서, 모든 입력 데이터를 초기 데이터로 하고, 초기 데이터 신청 공간을 초기 데이터 영역 내에 할당할 수 있다. 또한, 결정된 정수 데이터의 제1 차원에 기초하여 정수 데이터에 대해서 1차원화의 타일링을 실시하고, 타일링 결과를 취득한다. 또는, 결정된 정수 데이터의 제1 차원과 제2 차원에 기초하여 정수 데이터에 대해서 2차원화의 타일링을 실시하고, 타일링 결과를 취득한다.
모든 정수 데이터를 초기 데이터로 하고, 결정된 입력 데이터의 제1 차원에 기초하여 입력 데이터에 대해서 1차원화의 타일링을 실시하고, 타일링 결과를 취득할 수 있다. 또는, 결정된 입력 데이터의 제1 차원과 제2 차원에 기초하여 입력 데이터에 대해서 2차원화의 타일링을 실시하고, 타일링 결과를 취득한다.
또한, 일부의 입력 데이터를 초기 데이터로 하고, 결정된 입력 데이터의 제1 차원에 기초하여 입력 데이터에 대해서 1차원화의 타일링을 실시하고, 타일링 결과를 취득할 수 있다. 또는, 결정된 입력 데이터의 제1 차원과 제2 차원에 기초하여 입력 데이터에 대해서 2차원화의 타일링을 실시하고, 타일링 결과를 취득한다.
선택 가능한 일 실시형태에서는 안 5 또는 안 6에 있어서, 일부의 입력 데이터를 초기 데이터로 하고, 결정된 정수 데이터의 차원 파라미터에 기초하여 정수 데이터에 대해서 지정 차원화의 타일링을 실시하고, 타일링 결과를 취득하는 것은,
(1) 입력 데이터의 제1 차원의 최소 입도의 i배에 기초하여 일부의 입력 데이터의 목표 사이즈를 결정하는 것과,
(2) 목표 사이즈의 일부의 입력 데이터를 각각 초기 데이터로 하고, 결정된 정수 데이터의 차원 파라미터에 기초하여 정수 데이터에 대해서 지정 차원화의 타일링을 실시하고, 타일링 결과를 취득하는 것을 포함한다.
다만, i는 일부의 입력 데이터의 목표 사이즈가 결정된 후, 일부의 입력 데이터의 데이터 용량과, 정수 데이터의 차원 파라미터의 최소 입도에 기초하여 결정되는 정수 데이터 타일의 데이터 용량이 계산 장치의 메모리 요구를 충족하도록 하는 양의 정수이다.
여기에서, i의 최대값은 인크리먼트의 방식에 의해 결정할 수 있다. 이하, 안 5를 예로 하여 설명한다(즉, 1차원화의 타일링을 예로 하여 설명한다). i는 1로부터 인크리먼트하고, 즉, i=1인 때, 일부의 입력 데이터의 목표 사이즈는 입력 데이터의 제1 차원의 최소 입도의 1배이고, 목표 사이즈의 일부의 입력 데이터를 초기 데이터로 하고, 결정된 정수 데이터의 제1 차원에 기초하여 정수 데이터에 대해서 1차원화의 타일링을 실시하고, 1차원화의 타일링 결과를 취득한다.
i=1에 대응하는 1차원화의 타일링 결과가 정수 데이터의 할당에 실패한 것을 나타낸 경우, 이 안 5는 이용할 수 없는 안이다. i=1에 대응하는 1차원화의 타일링 결과가 정수 데이터의 할당에 성공한 것을 나타낸 경우, i의 값에 1을 덧셈하고(i=2로 된다), 일부의 입력 데이터의 목표 사이즈를 결정하는 단계로 되돌아가고, 즉, 목표 사이즈는 입력 데이터의 제1 차원의 최소 입도의 2배이고, 목표 사이즈의 일부의 입력 데이터를 초기 데이터로 하고, 결정된 정수 데이터의 제1 차원에 기초하여 정수 데이터에 대해서 1차원화의 타일링을 실시하고, 1차원화의 타일링 결과를 취득한다. i=2에 대응하는 1차원화의 타일링 결과가 정수 데이터의 할당에 실패한 것을 나타낸 경우, i의 최대값을 1로서 결정하고, 인크리먼트 과정이 종료된다. 1차원화의 타일링 결과가 정수 데이터의 할당에 성공한 것을 나타낸 경우, i의 값에 1을 덧셈하고(i=3으로 된다), 1차원화의 타일링 결과가 정수 데이터의 할당에 실패한 것을 나타낼 때까지 일부의 입력 데이터의 목표 사이즈를 결정하는 단계로 다시 되돌아간다. 예를 들면, i=6인 경우, 1차원화의 타일링 결과가 정수 데이터의 할당에 실패한 것을 나타냈다고 결정한 경우, i의 최대값이 5라고 결정한다. i의 최대값이 5인 경우, 이 안에서는 5개의 타일링 결과를 취득할 수 있다.
다만, 타일링 결과가 정수 데이터의 할당에 실패한 것을 나타내는 것은 정수 데이터가 제1 차원의 최소 입도에 따라서 타일링된 후, 얻어진 정수 데이터 타일과 초기 데이터가 계산 장치의 메모리 요구를 충족하지 않는 것이어도 좋다. 스케줄링 폴리시가 핑퐁 스케줄링이면, 제1 차원의 최소 입도에 따라서 타일링된 정수 데이터 타일의 데이터 용량의 2배가 계산 장치의 스케줄링 영역의 메모리보다도 큰 경우, 입력 데이터의 할당에 실패했다.
예를 들면, i의 최대값이 5인 경우, 안 5에 있어서, 이하의 5개의 타일링 스트래티지를 포함해도 좋다.
형식 1: 입력 데이터의 제1 차원의 최소 입도의 1배를 일부의 입력 데이터의 목표 사이즈로서 결정하고, 일부의 입력 데이터를 초기 데이터로 하고, 결정된 정수 데이터의 제1 차원에 기초하여 정수 데이터에 대해서 1차원화의 타일링을 실시하고, 1차원화의 타일링 결과를 취득한다.
형식 2: 입력 데이터의 제1 차원의 최소 입도의 2배를 일부의 입력 데이터의 목표 사이즈로서 결정하고, 일부의 입력 데이터를 초기 데이터로 하고, 결정된 정수 데이터의 제1 차원에 기초하여 정수 데이터에 대해서 1차원화의 타일링을 실시하고, 1차원화의 타일링 결과를 취득한다.
ㆍㆍㆍ
형식 5: 입력 데이터의 제1 차원의 최소 입도의 5배를 일부의 입력 데이터의 목표 사이즈로서 결정하고, 일부의 입력 데이터를 초기 데이터로 하고, 결정된 정수 데이터의 제1 차원에 기초하여 정수 데이터에 대해서 1차원화의 타일링을 실시하고, 1차원화의 타일링 결과를 취득한다.
일부의 정수 데이터를 초기 데이터로 하고, 결정된 입력 데이터의 제1 차원에 기초하여 입력 데이터에 대해서 1차원화의 타일링을 실시할 수도 있다.
선택 가능한 일 실시형태에서는 안 7 또는 안 8에 있어서, 일부의 정수 데이터를 초기 데이터로 하고, 결정된 입력 데이터의 차원 파라미터에 기초하여 입력 데이터에 대해서 지정 차원화의 타일링을 실시하고, 타일링 결과를 취득하는 것은,
(1) 정수 데이터의 제1 차원의 최소 입도의 j배에 기초하여 일부의 정수 데이터의 목표 사이즈를 결정하는 것과,
(2) 목표 사이즈의 일부의 정수 데이터를 각각 초기 데이터로 하고, 결정된 입력 데이터의 차원 파라미터에 기초하여 입력 데이터에 대해서 지정 차원화의 타일링을 실시하고, 타일링 결과를 취득하는 것을 포함한다.
여기에서, j의 최대값은 인크리먼트의 방식에 의해 결정할 수 있다. 이하, 안 7을 예로 하여 설명한다. j는 1로부터 인크리먼트하고, 즉, j=1인 때, 일부의 입력 데이터의 목표 사이즈는 입력 데이터의 제1 차원의 최소 입도의 1배이고, 목표 사이즈의 일부의 입력 데이터를 초기 데이터로 하고, 결정된 정수 데이터의 제1 차원에 기초하여 정수 데이터에 대해서 1차원화의 타일링을 실시하고, 1차원화의 타일링 결과를 취득한다.
j=1에 대응하는 1차원화의 타일링 결과가 입력 데이터의 할당에 실패한 것을 나타낸 경우, 이 안 7은 이용할 수 없는 안이다. j=1에 대응하는 1차원화의 타일링 결과가 입력 데이터의 할당에 성공한 것을 나타낸 경우, j의 값에 1을 덧셈하고(j=2로 된다), 얻어진 1차원화의 타일링 결과가 입력 데이터의 할당에 실패한 것을 나타낼 때까지 일부의 입력 데이터의 목표 사이즈를 결정하는 단계로 되돌아간다. 예를 들면, j=6인 때, 얻어진 1차원화의 타일링 결과가 입력 데이터의 할당에 실패한 것을 나타냈다고 결정한 경우, j의 최대값이 5라고 결정한다. j의 최대값이 5인 경우, 이 안에서는 5개의 타일링 결과를 취득할 수 있다.
다만, 타일링 결과가 입력 데이터의 할당에 실패한 것을 나타내는 것은 입력 데이터가 제1 차원의 최소 입도에 따라서 타일링된 후, 얻어진 입력 데이터 타일과 초기 데이터가 계산 장치의 메모리 요구를 충족하지 않는 것이어도 좋다. 스케줄링 폴리시가 핑퐁 스케줄링이면, 제1 차원의 최소 입도에 따라서 타일링된 입력 데이터 타일의 데이터 용량의 2배가 계산 장치의 스케줄링 영역의 메모리보다도 큰 경우, 입력 데이터의 할당에 실패했다. 예를 들면, 초기 데이터, 스케줄링 데이터 핑(ping)(제1 차원의 최소 입도에 따라서 타일링된 입력 데이터 타일) 및 스케줄링 데이터 퐁(pong)(제1 차원의 최소 입도에 따라서 타일링된 입력 데이터 타일)이 계산 장치의 메모리 요구를 충족하지 않는 경우, 입력 데이터의 할당에 실패했다고 결정한다.
예를 들면, j의 최대값이 6인 경우, 안 7에 있어서, 이하의 6개의 타일링 스트래티지를 포함해도 좋다.
형식 1: 정수 데이터의 제1 차원의 최소 입도의 1배를 일부의 정수 데이터의 목표 사이즈로서 결정하고, 일부의 정수 데이터를 초기 데이터로 하고, 결정된 입력 데이터의 제1 차원에 기초하여 입력 데이터에 대해서 1차원화의 타일링을 실시하고, 1차원화의 타일링 결과를 취득한다.
형식 2: 정수 데이터의 제1 차원의 최소 입도의 2배를 일부의 정수 데이터의 목표 사이즈로서 결정하고, 일부의 정수 데이터를 초기 데이터로 하고, 결정된 입력 데이터의 제1 차원에 기초하여 입력 데이터에 대해서 1차원화의 타일링을 실시하고, 1차원화의 타일링 결과를 취득한다.
ㆍㆍㆍ
형식 6: 정수 데이터의 제1 차원의 최소 입도의 6배를 일부의 정수 데이터의 목표 사이즈로서 결정하고, 일부의 정수 데이터를 초기 데이터로 하고, 결정된 입력 데이터의 제1 차원에 기초하여 입력 데이터에 대해서 1차원화의 타일링을 실시하고, 1차원화의 타일링 결과를 취득한다.
여기에서, 입력 데이터를 타일링하는 제1 차원, 제2 차원은 동작 요구 및/또는 연산자 타입 등의 정보에 기초하여 설정할 수 있고, 정수 데이터를 타일링하는 제1 차원, 제2 차원은 동작 요구 및/또는 연산자 타입 등의 정보에 기초하여 설정할 수 있다. 예를 들면, 연산자가 합성곱 연산자인 경우, 정수 데이터의 제1 차원은 출력 채널(output channel, 이하, OC라 한다) 차원이어도 좋고, 제2 차원은 입력 채널(input channel, 이하, IC라 한다) 차원이어도 좋다.
여기에서, 복수의 타일링 스트래티지를 설정함으로써 각 처리 대상의 네트워크층은 최적의 목표 연산자 및 목표 연산자에 매칭하는 목표 타일링 스트래티지를 선택할 수 있다.
선택 가능한 일 실시형태에서는 지정 차원이 1차원이고, 차원 파라미터가 제1 차원을 포함하는 경우, 정수 데이터와 입력 데이터를 각각 목표 데이터로 하고, 결정된 목표 데이터의 제1 차원에 기초하여 목표 데이터에 대해서 1차원화의 타일링을 실시하고, 1차원화의 타일링 결과를 취득하는 것은,
A1: 목표 데이터의 제1 차원에 대응하는 최소 입도의 k(k는 양의 정수)배를 목표 타일링 사이즈로서 결정하고, 목표 타일링 사이즈에 기초하여 목표 데이터에 대해서 제1 차원에 따라서 1차원화의 타일링을 실시하고, 목표 데이터에 대응하는 복수의 목표 데이터 타일을 취득하는 것과,
A2: 복수의 목표 데이터 타일과 초기 데이터가 설정된 타일링 조건을 충족한다고 결정한 경우, 목표 데이터의 제1 차원에 대응하는 최소 입도의 k+1배를 갱신 후의 목표 타일링 사이즈로 하고, 목표 타일링 사이즈에 기초하여 목표 데이터에 대해서 제1 차원에 따라서 1차원화의 타일링을 실시하는 단계로 되돌아가고, 복수의 목표 데이터 타일과 초기 데이터가 설정된 타일링 조건을 충족하지 않는다고 결정할 때까지 목표 데이터의 제1 차원에 대응하는 최소 입도의 k배를 타일링 결과로서 결정하는 것과,
A3: 초기 데이터와, k=1인 때에 생성된 복수의 목표 데이터 타일이 설정된 타일링 조건을 충족하지 않는 경우, 타일링 결과가 1차원화의 타일링 실패라고 결정하는 것을 포함한다.
상기 방법에 의해, 목표 타일링 사이즈를 크게 하여 시행함으로써 계산 장치의 메모리 사용률을 높게 하는 타일링 결과가 결정되어, 계산 장치의 메모리 리소스 낭비를 저감하는 것에 유리하다.
단계 A1에 있어서, k는 양의 정수이다. k=1로부터, 목표 데이터의 제1 차원에 대응하는 최소 입도를 목표 타일링 사이즈로서 결정하고, 목표 타일링 사이즈에 기초하여 목표 데이터에 대해서 제1 차원에 따라서 1차원화의 타일링을 실시하고, 목표 데이터에 대응하는 복수의 목표 데이터 타일을 얻는다. 얻어진 각 목표 데이터 타일의 제1 차원의 사이즈는 목표 타일링 사이즈와 일치하고, 각 목표 타일의 제1 차원 이외의 다른 차원의 사이즈는 목표 데이터의 대응하는 차원의 사이즈와 일치한다.
예를 들면, 제1 차원의 최소 입도가 32이고, 목표 데이터의 사이즈 정보가 64×64×128이면, 목표 타일링 사이즈가 32이고, 목표 타일링 사이즈에 기초하여 목표 데이터에 대해서 제1 차원에 따라서 1차원화의 타일링을 실시하여, 복수의 목표 데이터 타일을 얻고, 각 목표 데이터 타일의 사이즈는 32×64×128이어도 좋다. 다만, 목표 데이터 타일의 수는 실제의 상황에 따라서 결정할 수 있다.
다만, 제1 차원은 필요에 따라서 설정할 수 있고, 예를 들면, 입력 데이터의 제1 차원은 폭 W차원이어도 좋고, 제2 차원은 입력 채널 IC차원이어도 좋고, 정수 데이터의 제1 차원은 출력 채널 OC차원이어도 좋고, 제2 차원은 입력 채널 IC차원이어도 좋다.
따라서, 복수의 목표 데이터 타일과 초기 데이터가 설정된 타일링 조건을 충족하는지의 여부를 판단할 수 있고, 충족한다고 판단한 경우, 목표 데이터의 제1 차원에 대응하는 최소 입도의 2배를 갱신 후의 목표 타일링 사이즈로 하고, 목표 타일링 사이즈에 기초하여 목표 데이터에 대해서 제1 차원에 따라서 1차원화의 타일링을 실시하는 단계로 되돌아가고, 복수의 목표 데이터 타일과 초기 데이터가 설정된 타일링 조건을 충족하지 않는다고 결정할 때까지 목표 데이터의 제1 차원에 대응하는 최소 입도의 k배를 타일링 결과로서 결정한다. 예를 들면, k=5인 경우, k=5인 때에 생성된 복수의 목표 데이터 타일과 초기 데이터가 설정된 타일링 조건을 충족하지 않는다고 결정하고, 목표 데이터의 제1 차원에 대응하는 최소 입도의 4배를 타일링 결과로서 결정한다. 즉, 처리 대상의 네트워크층을 동작시킬 때에, 제1 차원의 최소 입도의 4배를 목표 타일링 사이즈로 할 수 있고, 목표 타일링 사이즈에 기초하여 처리 대상의 네트워크층의 목표 연산자에 대응하는 목표 데이터에 대해서 1차원화의 타일링을 실시한다.
충족하지 않는(즉, k=1인 때에 생성된 복수의 목표 데이터 타일과 초기 데이터는 설정된 타일링 조건을 충족하지 않는) 경우, 타일링 결과가 1차원화의 타일링 실패라고 결정한다.
선택 가능한 일 실시형태에서는 지정 차원이 2차원이고, 차원 파라미터가 제2 차원을 포함하는 경우, 정수 데이터와 입력 데이터를 각각 목표 데이터로 하고, 결정된 목표 데이터의 제1 차원, 제2 차원에 기초하여 목표 데이터에 대해서 2차원화의 타일링을 실시하고, 타일링 결과를 취득하는 것은,
목표 데이터의 제1 차원에 대응하는 최소 입도의 y(y는 양의 정수)배를 제 1 목표 타일링 사이즈로서 결정하고, 제 1 목표 타일링 사이즈에 기초하여 상기 목표 데이터에 대해서 제1 차원에 따라서 1차원화의 타일링을 실시하고, 목표 데이터에 대응하는 복수의 중간 데이터 타일을 취득하는 B1과,
목표 데이터의 제2 차원에 대응하는 최소 입도의 x(x는 양의 정수)배를 제2 목표 타일링 사이즈로서 결정하고, 제2 목표 타일링 사이즈에 기초하여 각 중간 데이터 타일에 대해서 제2 차원에 따라서 2차원화의 타일링을 실시하고, 각 중간 데이터 타일에 각각 대응하는 복수의 목표 데이터 타일을 취득하는 B2와,
복수의 목표 데이터 타일과 초기 데이터가 설정된 타일링 조건을 충족한다고 결정한 경우, 목표 데이터의 제2 차원에 대응하는 최소 입도의 x+1배를 갱신 후의 제2 목표 타일링 사이즈로 하고, 제2 목표 타일링 사이즈에 기초하여 각 중간 데이터 타일에 대해서 제2 차원에 따라서 2차원화의 타일링을 실시하는 단계로 되돌아가고, 복수의 목표 데이터 타일과 초기 데이터가 설정된 타일링 조건을 충족하지 않는다고 결정할 때까지 목표 데이터의 제2 차원에 대응하는 최소 입도의 x배를 타일링 결과로서 결정하는 B3을 포함한다.
B1에 있어서, y는 초기값이 1인 양의 정수이고, 예를 들면, 설정된 y의 최대값이 3인 경우, y를 1로서 결정하고, 단계 B1∼B3을 실행하고, 하나의 2차원화의 타일링 결과를 취득한다. 또한, y를 2로서 결정하고, 단계 B1∼B3을 실행하고, 하나의 2차원화의 타일링 결과를 취득한다. y를 3으로서 결정하고, 단계 B1∼B3을 실행하고, 하나의 2차원화의 타일링 결과를 취득한다. 즉, 3개의 2차원화의 타일링 결과를 취득할 수 있다.
y=1을 예로 하여 2차원화의 타일링 과정에 대해서 설명한다. 제1 차원에 대응하는 최소 입도가 32이고, 목표 데이터의 사이즈가 128×128×256이면, 제 1 목표 타일링 사이즈에 기초하여 목표 데이터에 대해서 제1 차원에 따라서 1차원화의 타일링을 실시하여, 목표 데이터에 대응하는 복수의 목표 중간 데이터 타일을 취득하고, 각 목표 중간 데이터 타일의 사이즈는 32×128×256이어도 좋다. 다만, 목표 중간 데이터 타일의 수는 실제의 상황에 따라서 결정할 수 있다.
또한, B2에 있어서, x는 양의 정수이고, x=1로부터, 목표 데이터의 제2 차원에 대응하는 최소 입도의 1배를 제2 목표 타일링 사이즈로서 결정하고, 예를 들면, 제2 차원의 최소 입도가 32이면, 제2 목표 타일링 사이즈는 32이고, 제2 목표 타일링 사이즈에 기초하여 각 중간 데이터 타일에 대해서 제2 차원에 따라서 2차원화의 타일링을 실시하여, 각 중간 데이터 타일에 대응하는 복수의 목표 데이터 타일을 취득하고, 즉, 복수의 목표 데이터 타일을 취득하고, 각 목표 데이터 타일의 사이즈는 32×32×256이어도 좋다.
B3에 있어서, 복수의 목표 데이터 타일과 초기 데이터가 설정된 타일링 조건을 충족하는지의 여부를 판단할 수 있고, 충족한다고 판단한 경우, 목표 데이터의 제2 차원에 대응하는 최소 입도의 2(즉, x+1)배를 갱신 후의 제2 목표 타일링 사이즈로 하고, 제2 목표 타일링 사이즈에 기초하여 각 중간 데이터 타일에 대해서 제2 차원에 따라서 2차원화의 타일링을 실시하는 단계로 되돌아가고, 복수의 목표 데이터 타일과 초기 데이터가 설정된 타일링 조건을 충족하지 않는다고 결정할 때까지 목표 데이터의 제2 차원에 대응하는 최소 입도의 x배를 타일링 결과로서 결정한다.
예를 들면, x=3인 경우, x=3인 때에 생성된 복수의 목표 데이터 타일과 초기 데이터가 설정된 타일링 조건을 충족하지 않는다고 결정하고, 목표 데이터의 제2 차원에 대응하는 최소 입도의 2배를 타일링 결과로서 결정한다. 즉, 처리 대상의 네트워크층을 동작시킬 때에 제1 차원의 최소 입도를 제 1 목표 타일링 사이즈로 하고, 제2 차원의 최소 입도의 2배를 제2 목표 타일링 사이즈로 하고, 제 1 목표 타일링 사이즈와 제2 목표 타일링 사이즈에 기초하여 처리 대상의 네트워크층의 목표 연산자에 대응하는 목표 데이터에 대해서 2차원화의 타일링을 실시할 수 있다.
선택 가능한 일 실시형태에서는 처리 대상의 네트워크층에 대응하는 파라미터 데이터가 출력 데이터를 더 포함하는 경우, 복수의 목표 데이터 타일과 초기 데이터가 설정된 타일링 조건을 충족한다고 결정하는 것은, 초기 데이터, 출력 데이터 및 각 목표 데이터 타일이 각각 계산 장치의 메모리 요구를 충족하고, 또한 초기 데이터, 출력 데이터 및 각 목표 데이터 타일이 각각 계산 장치에서의 DMA전송 요구를 충족한다고 결정한 경우, 복수의 목표 데이터 타일과 초기 데이터가 설정된 타일링 조건을 충족한다고 결정하는 것을 포함한다.
여기에서, 계산 장치의 메모리 요구는 사용자의 요구 및/또는 계산 장치의 요구에 기초하여 설정할 수 있다. 예를 들면, 초기 데이터, 출력 데이터 및 각 목표 데이터 타일의 데이터 용량의 합계가 설정된 계산 장치의 메모리 용량 이하인지의 여부를 결정할 수 있고, 계산 장치의 메모리 용량 이하라고 결정한 경우, 계산 장치의 메모리 요구를 충족한다고 결정한다.
또는, 초기 데이터의 데이터 용량이 계산 장치의 메모리에서 초기 데이터에 할당된 제 1 로컬 메모리 용량 이하인지의 여부를 결정하고, 출력 데이터의 데이터 용량이 계산 장치의 메모리에서 출력 데이터에 할당된 제2 로컬 메모리 용량 이하인지의 여부를 결정하고, 또한 각 목표 데이터 타일의 데이터 용량이 계산 장치의 메모리에서 목표 데이터에 할당된 제 3 로컬 메모리 용량 이하인지의 여부를 결정하고, 초기 데이터, 출력 데이터 및 각 목표 데이터 타일이 모구 요구를 충족한 경우, 계산 장치의 메모리 요구를 충족한다고 결정한다.
구체적인 실시에서는 전용 메모리와 공통 메모리를 설치할 수도 있고, 정수 데이터를 공통 메모리에 기억하고, 입력 데이터와 출력 데이터를 전용 메모리에 기억하도록 설치하면, 초기 데이터, 출력 데이터 및 각 목표 데이터 타일이 모두 대응하는 전용 메모리와 공통 메모리의 메모리 요구를 충족하는지의 여부를 판단할 수 있다. 모두 대응하는 전용 메모리와 공통 메모리의 메모리 요구를 충족한다고 판단한 경우, 계산 장치의 메모리 요구를 충족한다고 결정한다. 즉, 초기 데이터가 입력 데이터이고, 목표 데이터 타일이 정수 데이터에 대응하는 목표 데이터 타일인 경우, 초기 데이터와 출력 데이터의 데이터 용량이 설정된 전용 메모리의 메모리 용량 이하인지의 여부를 판단하고, 또한 각 목표 데이터 타일이 설정된 공통 메모리의 메모리 용량 이하인지의 여부를 판단한다. 초기 데이터와 출력 데이터의 데이터 용량이 설정된 전용 메모리의 메모리 용량 이하라고 판단하고, 또한 각 목표 데이터 타일이 설정된 공통 메모리의 메모리 용량 이하라고 판단한 경우, 계산 장치의 메모리 요구를 충족한다고 결정한다.
예시적으로, 각 목표 데이터 타일이 결정된 후, 목표 데이터 타일, 초기 데이터, 출력 데이터에 대하여 할당의 시행을 실시할 수 있고, 할당의 시행에 성공한 경우, 초기 데이터, 출력 데이터 및 각 목표 데이터 타일이 계산 장치의 메모리 요구를 충족한다고 결정한다.
다만, DMA전송 요구는 실제의 필요에 따라서 결정할 수 있다. 예를 들면, 초기 데이터, 출력 데이터 및 각 목표 데이터 타일의 데이터 용량의 합계가, DMA가 전송 가능한 데이터 용량 이하라고 결정한 경우(즉, DMA 태스크의 확립이 성공했다고 결정한 경우), 계산 장치에서의 DMA전송 요구를 충족한다고 결정한다.
초기 데이터, 출력 데이터 및 각 목표 데이터 타일이 계산 장치의 메모리 요구를 충족하고, 또한 계산 장치에서의 DMA전송 요구를 충족한다고 결정한 경우, 복수의 목표 데이터 타일 및 초기 데이터가 설정된 타일링 조건을 충족한다고 결정한다.
상기 방법에 따르면, 초기 데이터, 출력 데이터 및 각 목표 데이터 타일이 계산 장치의 메모리 요구 및 계산 장치에서의 DMA전송 요구를 충족한 경우, 복수의 목표 데이터 타일 및 상기 초기 데이터가 설정된 타일링 조건을 충족한다고 결정하고, 타일링 스트래티지가 계산 장치의 동작 요구에 매칭하는 것이 확보된다.
(S103)에 대하여, 목표 뉴럴 네트워크의 각 처리 대상의 네트워크층에 대응하는 목표 연산자 및 목표 타일링 스트래티지가 결정된 후, 적어도 하나의 처리 대상의 네트워크층에 각각 대응하는 목표 타일링 스트래티지에 기초하여 목표 연산자를 포함하는 목표 뉴럴 네트워크를 동작시킬 수 있다.
예를 들면, 처리 대상의 이미지을 목표 뉴럴 네트워크에 입력하고, 계산 장치에 의해 각 처리 대상의 네트워크층에 각각 대응하는 목표 타일링 스트래티지 및 목표 연산자를 이용하여 처리 대상의 이미지에 대해서 특징 추출을 실시하고, 처리 대상의 이미지에 대응하는 검출 결과를 결정할 수 있다. 예를 들면, 해당 검출 결과는 처리 대상의 이미지에 포함되는 목표 대상의 종별, 목표 대상의 위치 정보, 목표 대상의 윤곽 정보 등이어도 좋다.
예시적으로, 도 4에 나타내는 뉴럴 네트워크 동작 방법에서의 계산 장치에 의한 소프트웨어ㆍ하드웨어ㆍ스케줄링의 모식도를 참조하고, 도 4에 맞추어서 핑퐁 스케줄링을 이용하여 처리 대상의 네트워크층의 파라미터 데이터를 처리하는 과정에 대해서 설명한다. 다만, 계산 장치의 메모리를 초기 데이터 영역, 스케줄링 데이터 영역 핑, 스케줄링 데이터 영역 퐁, 출력 데이터 영역 핑, 출력 데이터 영역 퐁으로 나눌 수 있다. 초기 데이터가 입력 데이터인 경우, 스케줄링 데이터는 정수 데이터이고, 초기 데이터가 정수 데이터인 경우, 스케줄링 데이터는 입력 데이터이다.
도 4에서 알 수 있는 바와 같이, 계산 장치는 DMA와 병렬로 동작하고, DMA는 우선, 초기 데이터 및 스케줄링 핑(즉, 스케줄링 데이터 핑)을 계산 장치의 대응하는 메모리 영역 내에 전송한다(즉, 초기 데이터를 계산 장치의 초기 데이터 영역에 대응하는 메모리 영역에 전송하고, 스케줄링 데이터 핑을 계산 장치의 스케줄링 데이터 핑에 대응하는 메모리 영역에 출력한다). 계산 장치는 초기 데이터와 스케줄링 핑에 대하여 처리를 실시하고, 그와 함께, DMA는 스케줄링 퐁(즉, 스케줄링 데이터 퐁)을 계산 장치의 스케줄링 데이터 퐁에 대응하는 메모리 영역에 전송할 수도 있다.
계산 장치에 의한 초기 데이터 및 스케줄링 핑에 대한 처리가 종료된 후, 출력 핑(즉, 출력 데이터 핑)을 생성하고, 출력 핑을 계산 장치의 출력 데이터 영역 핑에 대응하는 메모리 영역에 넣고, DMA에 의하여 계산 장치의 출력 데이터 영역 핑에 대응하는 메모리 영역으로부터 출력 핑을 취득하고, 또한, 출력 핑을 대응하는 외부 메모리(예를 들면, DDR)에 전송한다. 계산 장치는 수신한 스케줄링 퐁에 대하여 처리를 실시하고, 그와 함께, DMA는 다음의 스케줄링 핑을 계산 장치의 스케줄링 핑에 대응하는 메모리 영역에 전송한다. 처리 대상의 층의 파라미터 데이터 처리가 완료될 때까지 상기 과정을 반복한다.
당업자이면, 구체적인 실시형태에 관련되는 상기의 방법에서는 각 단계의 기재 순서는 실행 순서를 엄밀하게 한정하여 실시의 과정을 한정하는 것은 아니고, 각 단계의 실행 순서가 그 기능과 내부의 논리에 의하여 구체적으로 결정되는 것을 이해해야 한다.
동일한 구상에 기초하여 본 발명의 실시예는 뉴럴 네트워크 동작 장치를 더 제공하고, 도 5에 나타내는 바와 같이, 본 발명의 실시예에 관련되는 뉴럴 네트워크 동작 장치의 아키텍처를 나타내는 모식도이고, 해당 뉴럴 네트워크 동작 장치는,
목표 뉴럴 네트워크에서의 처리 대상의 네트워크층을 결정하는 제 1 결정 모듈(501)과,
결정된, 각각이 상기 처리 대상의 네트워크층에 대응하는 기능을 실현하기 위한 복수의 연산자 및 각각이 상기 목표 뉴럴 네트워크를 동작시키기 위한 계산 장치의 동작 요구에 매칭하는 복수의 타일링 스트래티지 중에서 상기 목표 뉴럴 네트워크에서의 상기 처리 대상의 네트워크층에 대응하는 목표 연산자 및 목표 타일링 스트래티지를 결정하는 제2 결정 모듈(502)과,
상기 처리 대상의 네트워크층에 대응하는 상기 목표 타일링 스트래티지에 기초하여 상기 목표 연산자를 포함하는 상기 목표 뉴럴 네트워크를 동작시키는 동작 모듈(503)을 포함한다.
가능한 일 실시형태에서 상기 타일링 스트래티지는 상기 처리 대상의 네트워크층에 대응하는 목표 연산자의 파라미터 데이터를 타일링하기 위해 이용되고,
상기 복수의 타일링 스트래티지에 있어서, 상기 목표 타일링 스트래티지를 이용하여 상기 목표 연산자의 파라미터 데이터를 타일링해서 얻어진 파라미터 데이터에 기초하여 상기 처리 대상의 네트워크층을 동작시킬 때의 리소스 소비가 최소로 된다.
가능한 일 실시형태에서는 상기 처리 대상의 네트워크층이 복수인 경우, 상기 제2 결정 모듈(502)은 결정된 복수의 연산자 및 복수의 타일링 스트래티지 중에서 상기 목표 뉴럴 네트워크에서의 처리 대상의 네트워크층에 대응하는 목표 연산자 및 목표 타일링 스트래티지를 결정할 때,
상기 목표 뉴럴 네트워크에서의 각 처리 대상의 네트워크층에 대하여, 상기 복수의 연산자 중에서 상기 처리 대상의 네트워크층에 대응하는 목표 후보 연산자를 결정하는 것과 함께, 상기 복수의 타일링 스트래티지 중에서 상기 목표 후보 연산자에 매칭하는 목표 후보 타일링 스트래티지를 결정하는 것과,
어느 쪽인가의 처리 대상의 네트워크층에 대응하는 상기 목표 후보 연산자가 복수이고, 및/또는 상기 목표 후보 타일링 스트래티지가 복수인 경우, 각 처리 대상의 네트워크층에 각각 대응하는 목표 후보 연산자 및 목표 후보 타일링 스트래티지에 기초하여 각 처리 대상의 네트워크층에 대응하는 상기 목표 연산자 및 상기 목표 타일링 스트래티지를 결정하는 것에 이용된다.
가능한 일 실시형태에서 상기 제2 결정 모듈(502)은 각 처리 대상의 네트워크층에 각각 대응하는 목표 후보 연산자 및 목표 후보 타일링 스트래티지에 기초하여 각 처리 대상의 네트워크층에 대응하는 상기 목표 연산자 및 상기 목표 타일링 스트래티지를 결정할 때,
각 처리 대상의 네트워크층에 각각 대응하는 목표 후보 연산자 및 상기 목표 후보 연산자에 대응하는 목표 후보 타일링 스트래티지에 기초하여, 상기 목표 뉴럴 네트워크에 대응하는 것으로서, 각각이 각 처리 대상의 네트워크층에 대응하는 하나의 상기 목표 후보 연산자 및 해당 목표 후보 연산자에 매칭하는 하나의 목표 후보 타일링 스트래티지를 포함하는 복수의 테스트 네트워크를 결정하는 것과,
상기 복수의 테스트 네트워크를 각각 동작시키고, 각각 테스트 네트워크의 각각에 대응하는 복수의 테스트 결과를 취득하는 것과,
상기 복수의 테스트 결과에 기초하여, 상기 복수의 테스트 네트워크 중에서 목표 테스트 네트워크를 선출하는 것과,
상기 목표 테스트 네트워크에서의 처리 대상의 네트워크층의 목표 후보 연산자 및 목표 후보 타일링 스트래티지를 상기 목표 뉴럴 네트워크에서의 처리 대상의 네트워크층에 각각 대응하는 상기 목표 연산자 및 목표 타일링 스트래티지로서 결정하는 것에 이용된다.
가능한 일 실시형태에서 제2 결정 모듈(502)은 상기 목표 뉴럴 네트워크에서의 각 처리 대상의 네트워크층에 대하여, 상기 복수의 연산자 중에서 상기 처리대상의 네트워크층에 대응하는 목표 후보 연산자를 결정하는 것과 함께, 상기 복수의 타일링 스트래티지 중에서 상기 목표 후보 연산자에 매칭하는 목표 후보 타일링 스트래티지를 결정할 때,
상기 처리 대상의 네트워크층에 대하여, 상기 복수의 연산자 중에서 하나 또는 복수의 제1 후보 연산자를 결정하는 것과,
상기 복수의 타일링 스트래티지의 각각에서의 상기 제1 후보 연산자의 리소스 소비 상황에 기초하여, 상기 제1 후보 연산자 및 상기 복수의 타일링 스트래티지 중에서 상기 처리 대상의 네트워크층에 대응하는 하나 또는 복수의 목표 후보 연산자 및 상기 목표 후보 연산자에 대응하는 목표 후보 타일링 스트래티지를 선택하는 것에 이용된다.
가능한 일 실시형태에서 상기 리소스 소비 상황은 계산 오버헤드값으로 나타나고, 상기 제2 결정 모듈(502)은 타일링 스트래티지의 각각에서의 상기 제1 후보 연산자의 계산 오버헤드값을,
미리 설정된 사이즈에서의 상기 제1 후보 연산자에 대응하는 제한 장면으로서, 미리 설정된 사이즈에서의 상기 제1 후보 연산자에 대응하는 데이터 용량의 계산 소비 시간 및 전송 소비 시간에 기초하여 결정되는 제한 장면을 결정하는 단계와,
상기 제한 장면이 대역폭 제한 장면에 해당되는 경우, 상기 타일링 스트래티지에 의한 타일링 결과에 기초하여, 상기 타일링 스트래티지에서의 상기 제1 후보 연산자에 대응하는 DMA(Direct Memory Access)데이터 전송 총량, DMA 태스크 수 및 상기 제1 후보 연산자에 대응하는 목표 데이터 배열 방식에 따라서 상기 제1 후보 연산자에 대응하는 입력 데이터에 대해서 실시하는 데이터 배열 방식에 의한 변환에 걸리는 시간인 데이터 변환 오버헤드를 결정하고, 상기 DMA데이터 전송 총량, 상기 DMA 태스크 수, 상기 데이터 변환 오버헤드 및 상기 계산 장치에 대응하는 DMA레이트, DMA 태스크 오버헤드에 기초하여 상기 타일링 스트래티지에서의 상기 제1 후보 연산자의 계산 오버헤드값을 결정하는 단계와,
상기 제한 장면이 계산 제한 장면에 해당되는 경우, 상기 타일링 스트래티지에 의한 타일링 결과에 기초하여 상기 타일링 스트래티지에서의 상기 제1 후보 연산자에 대응하는 파라미터 데이터의 계산 소비 시간, 상기 제1 후보 연산자의 연산자 호출 횟수, 초기 데이터 전송 총량, DMA 태스크 수 및 데이터 변환 오버헤드를 결정하고, 상기 계산 소비 시간, 상기 연산자 호출 횟수, 초기 데이터 전송 총량, 데이터 변환 오버헤드, DMA 태스크 오버헤드, DMA 태스크 수 및 상기 계산 장치에 대응하는 DMA레이트에 기초하여, 상기 타일링 스트래티지에서의 상기 제1 후보 연산자의 계산 오버헤드값을 결정하는 단계에 의하여 결정하는 것에 이용된다.
가능한 일 실시형태에서 상기 제2 결정 모듈(502)은 상기 복수의 타일링 스트래티지의 각각에서의 상기 제1 후보 연산자의 리소스 소비 상황에 기초하여, 상기 제1 후보 연산자 및 상기 복수의 타일링 스트래티지 중에서 상기 처리 대상의 네트워크층에 대응하는 하나 또는 복수의 목표 후보 연산자 및 상기 목표 후보 연산자에 대응하는 하나 또는 복수의 목표 후보 타일링 스트래티지를 선택할 때,
각각의 타일링 스트래티지에서 각각 하나의 상기 리소스 소비 상황에 대응지워지는 상기 제1 후보 연산자에 대응하는 복수의 상기 리소스 소비 상황 중에서 미리 설정된 조건을 충족하는 목표 리소스 소비 상황을 선출하는 것과,
상기 목표 리소스 소비 상황에 대응하는 타일링 스트래티지를 후보 타일링 스트래티지로서 결정하고, 상기 후보 타일링 스트래티지에 기초하여, 상기 목표 리소스 소비 상황에 대응지워지는 제2 후보 연산자를 포함하는 처리 대상의 네트워크층을 동작시키고, 상기 후보 타일링 스트래티지 및 상기 제2 후보 연산자에 대응하는 테스트 결과를 결정하는 것과,
상기 테스트 결과에 기초하여, 상기 처리 대상의 네트워크층에 대응하는 하나 또는 복수의 목표 후보 연산자 및 상기 목표 후보 연산자에 대응하는 목표 후보 타일링 스트래티지를 결정하는 것에 이용된다.
가능한 일 실시형태에서는 상기 제1 후보 연산자 및 상기 복수의 타일링 스트래티지 중에서 상기 처리 대상의 네트워크층에 대응하는 하나 또는 복수의 목표 후보 연산자 및 상기 목표 후보 연산자에 대응하는 목표 후보 타일링 스트래티지를 선택하기 전에,
결정된 상기 목표 뉴럴 네트워크에 대응하는 최소 입도 정보에 기초하여, 상기 제1 후보 연산자에 대응하는 파라미터 데이터에 대해서 정렬 조작을 실시하고, 상기 제1 후보 연산자에 대응하는 얼라인먼트 후의 파라미터 데이터를 취득하는 정렬 모듈(504)을 추가로 포함하고,
상기 최소 입도 정보는 다른 차원에서의 상기 파라미터 데이터에 대응하는 최소 입도를 포함하고, 다른 차원에서의 얼라인먼트 후의 파라미터 데이터의 사이즈는 상기 최소 입도 정보에 의하여 나타나는 대응하는 차원에서의 최소 입도의 정수배이다.
가능한 일 실시형태에서는 상기 파라미터 데이터가 입력 데이터와 정수 데이터를 포함하는 경우, 상기 복수의 타일링 스트래티지는,
모든 입력 데이터를, 계산 장치에 의한 상기 목표 뉴럴 네트워크의 동작 시에 DMA 태스크에 의하여 할당된 초기 데이터 영역 내에 기입되는 데이터인 초기 데이터로 하고, 결정된 상기 정수 데이터의 차원 파라미터에 기초하여 상기 정수 데이터에 대해서 지정 차원화의 타일링을 실시하고, 타일링 결과를 취득하는 것과,
모든 정수 데이터를 상기 초기 데이터로 하고, 결정된 상기 입력 데이터의 차원 파라미터에 기초하여 상기 입력 데이터에 대해서 지정 차원화의 타일링을 실시하고, 타일링 결과를 취득하는 것과,
목표 사이즈가 상기 입력 데이터의 제1 차원의 최소 입도에 기초하여 결정되는 일부의 입력 데이터를 상기 초기 데이터로 하고, 결정된 상기 정수 데이터의 차원 파라미터에 기초하여 상기 정수 데이터에 대해서 지정 차원화의 타일링을 실시하고, 타일링 결과를 취득하는 것과,
목표 사이즈가 상기 정수 데이터의 제1 차원의 최소 입도에 기초하여 결정되는 일부의 정수 데이터를 상기 초기 데이터로 하고, 결정된 상기 입력 데이터의 차원 파라미터에 기초하여 상기 입력 데이터에 대해서 지정 차원화의 타일링을 실시하고, 타일링 결과를 취득하는 것의 적어도 하나를 포함한다.
가능한 일 실시형태에서는 상기한, 일부의 입력 데이터를 초기 데이터로 하고, 결정된 상기 정수 데이터의 차원 파라미터에 기초하여 상기 정수 데이터에 대해서 지정 차원화의 타일링을 실시하고, 타일링 결과를 취득하는 것은,
상기 입력 데이터의 제1 차원의 최소 입도의 i배에 기초하여 상기 일부의 입력 데이터의 목표 사이즈를 결정하는 것과,
상기 목표 사이즈의 상기 일부의 입력 데이터를 각각 초기 데이터로 하고, 결정된 상기 정수 데이터의 차원 파라미터에 기초하여 상기 정수 데이터에 대해서 지정 차원화의 타일링을 실시하고, 타일링 결과를 취득하는 것을 포함하고,
다만, i는 일부의 입력 데이터의 목표 사이즈가 결정된 후, 상기 일부의 입력 데이터의 데이터 용량과, 상기 정수 데이터의 차원 파라미터의 최소 입도에 기초하여 결정된 정수 데이터 타일의 데이터 용량이 계산 장치의 메모리 요구를 충족하도록 하는 양의 정수이다.
가능한 일 실시형태에서는 상기한, 일부의 정수 데이터를 초기 데이터로 하고, 결정된 상기 입력 데이터의 차원 파라미터에 기초하여 상기 입력 데이터에 대해서 지정 차원화의 타일링을 실시하고, 타일링 결과를 취득하는 것은,
상기 정수 데이터의 제1 차원의 최소 입도의 j배에 기초하여 상기 일부의 정수 데이터의 목표 사이즈를 결정하는 것과,
상기 목표 사이즈의 상기 일부의 정수 데이터를 각각 초기 데이터로 하고, 결정된 상기 입력 데이터의 차원 파라미터에 기초하여 상기 입력 데이터에 대해서 지정 차원화의 타일링을 실시하고, 타일링 결과를 취득하는 것을 포함하고,
다만, j는 일부의 정수 데이터의 목표 사이즈가 결정된 후, 상기 일부의 정수 데이터의 데이터 용량과, 상기 입력 데이터의 차원 파라미터의 최소 입도에 기초하여 결정된 입력 데이터 타일의 데이터 용량이 계산 장치의 메모리 요구를 충족하도록 하는 양의 정수이다.
가능한 일 실시형태에서는 상기 지정 차원이 1차원이고, 상기 차원 파라미터가 제1 차원을 포함하는 경우, 상기 정수 데이터와 상기 입력 데이터를 각각 목표 데이터로 하고, 결정된 상기 목표 데이터의 제1 차원에 기초하여 상기 목표 데이터에 대해서 1차원화의 타일링을 실시하고, 1차원화의 타일링 결과를 얻는 것은,
상기 목표 데이터의 제1 차원에 대응하는 최소 입도의 k(k는 양의 정수)배를 목표 타일링 사이즈로서 결정하고, 상기 목표 타일링 사이즈에 기초하여 상기 목표 데이터에 대해서 상기 제1 차원에 따라서 1차원화의 타일링을 실시하고, 상기 목표 데이터에 대응하는 복수의 목표 데이터 타일을 취득하는 것과,
상기 복수의 목표 데이터 타일과 상기 초기 데이터가 설정된 타일링 조건을 충족한다고 결정한 경우, 상기 목표 데이터의 제1 차원에 대응하는 최소 입도의 k+1배를 갱신 후의 목표 타일링 사이즈로 하고, 상기 목표 타일링 사이즈에 기초하여 상기 목표 데이터에 대해서 상기 제1 차원에 따라서 1차원화의 타일링을 실시하는 단계로 되돌아가고, 상기 복수의 목표 데이터 타일과 상기 초기 데이터가 설정된 타일링 조건을 충족하지 않는다고 결정할 때까지 상기 목표 데이터의 제1 차원에 대응하는 최소 입도의 k배를 상기 타일링 결과로서 결정하는 것과,
상기 초기 데이터와, k=1인 때에 생성된 상기 복수의 목표 데이터 타일이 설정된 타일링 조건을 충족하지 않는 경우, 상기 타일링 결과가 1차원의 타일링 실패라고 결정하는 것을 포함한다.
가능한 일 실시형태에서는 상기 지정 차원이 2차원이고, 상기 차원 파라미터가 제2 차원을 포함하는 경우, 상기 정수 데이터와 상기 입력 데이터를 각각 목표 데이터로 하고, 결정된 상기 목표 데이터의 제1 차원, 제2 차원에 기초하여 상기 목표 데이터에 대해서 2차원화의 타일링을 실시하고, 2차원화의 타일링 결과를 취득하는 것은,
상기 목표 데이터의 제1 차원에 대응하는 최소 입도의 y(y는 양의 정수)배를 제 1 목표 타일링 사이즈로서 결정하고, 상기 제 1 목표 타일링 사이즈에 기초하여상기 목표 데이터에 대해서 제1 차원에 따라서 1차원화의 타일링을 실시하고, 상기 목표 데이터에 대응하는 복수의 중간 데이터 타일을 취득하는 것과,
상기 목표 데이터의 제2 차원에 대응하는 최소 입도의 x(x는 양의 정수)배를 제2 목표 타일링 사이즈로서 결정하고, 상기 제2 목표 타일링 사이즈에 기초하여 각 중간 데이터 타일에 대해서 상기 제2 차원에 따라서 2차원화의 타일링을 실시하고, 각 중간 데이터 타일에 각각 대응하는 복수의 목표 데이터 타일을 취득하는 것과,
상기 복수의 목표 데이터 타일과 상기 초기 데이터가 설정된 타일링 조건을 충족한다고 결정한 경우, 상기 목표 데이터의 제2 차원에 대응하는 최소 입도의 x+1배를 갱신 후의 제2 목표 타일링 사이즈로 하고, 상기 제2 목표 타일링 사이즈에 기초하여 각 중간 데이터 타일에 대해서 제2 차원에 따라서 2차원화의 타일링을 실시하는 단계로 되돌아가고, 상기 복수의 목표 데이터 타일과 상기 초기 데이터가 설정된 타일링 조건을 충족하지 않는다고 결정할 때까지 상기 목표 데이터의 제2 차원에 대응하는 최소 입도의 x배를 상기 타일링 결과로서 결정하는 것을 포함한다.
가능한 일 실시형태에서는 상기 처리 대상의 네트워크층에 대응하는 파라미터 데이터가 출력 데이터를 더 포함하는 경우, 상기 복수의 목표 데이터 타일과 상기 초기 데이터가 설정된 타일링 조건을 충족한다고 결정하는 것은,
상기 초기 데이터, 상기 출력 데이터 및 각 목표 데이터 타일이 각각 상기 계산 장치의 메모리 요구를 충족하고, 상기 초기 데이터, 상기 출력 데이터 및 각 목표 데이터 타일이 각각 상기 계산 장치에서의 DMA전송 요구를 충족한다고 결정한 경우, 상기 복수의 목표 데이터 타일과 상기 초기 데이터가 설정된 타일링 조건을 충족한다고 결정하는 것을 포함한다.
몇 가지의 실시예에서는 본 발명의 실시예에 의한 장치의 기능 또는 수단은 상기 방법 실시예에 기재된 방법을 실행하기 위해 이용된다. 구체적인 실시는 상기 방법 실시예의 기재를 참조하면 명백해지고, 간결함을 위해, 상세한 설명을 생략한다.
동일한 기술 구상에 기초하여, 본 발명의 실시예는 전자 기기를 더 제공한다. 도 6은 본 발명의 실시예에 관련되는 전자 기기의 구성을 나타내는 모식도이다. 도 6에 나타내는 바와 같이, 프로세서(601)와, 메모리(602)와, 버스(603)를 포함한다. 메모리(602)는 실행 가능한 명령을 기억하기 위해 이용되고, 메모리(6021)와 외부 메모리(6022)를 포함한다. 여기에서, 메모리(6021)는 내부 메모리라고도 불리고, 프로세서(601)에서의 연산 데이터 및 하드 디스크 등의 외부 메모리(6022)와 교환되는 데이터를 일시적으로 저장하기 위해 이용된다. 프로세서(601)는 메모리(6021)를 통하여 외부 메모리(6022)와 데이터를 교환한다. 전자 기기(600)가 동작하면, 프로세서(601)와 메모리(602)는 버스(603)를 통하여 통신하고, 프로세서(601)에,
목표 뉴럴 네트워크에서의 처리 대상의 네트워크층을 결정하고,
결정된, 상기 처리 대상의 네트워크층에 대응하는 기능을 실현하기 위한 복수의 연산자 및 상기 목표 뉴럴 네트워크를 동작시키기 위한 계산 장치의 동작 요구에 매칭하는 복수의 타일링 스트래티지 중에서 상기 목표 뉴럴 네트워크에서의 처리 대상의 네트워크층에 대응하는 목표 연산자 및 목표 타일링 스트래티지를 결정하고,
상기 처리 대상의 네트워크층에 대응하는 상기 목표 타일링 스트래티지에 기초하여 상기 목표 연산자를 포함하는 상기 목표 뉴럴 네트워크를 동작시킨다는 명령을 실행시킨다.
또한, 본 발명의 실시예는 컴퓨터 프로그램을 기억하고 있는 컴퓨터 판독 가능한 기억 매체로서, 이 컴퓨터 프로그램이 프로세서에 의해 실행되면, 상기 방법 실시예에 기재된 뉴럴 네트워크 동작 방법의 단계를 실현시키는 컴퓨터 판독 가능한 기억 매체를 더 제공한다. 다만, 이 기억 매체는 휘발성 또는 불휘발성의 컴퓨터 판독 가능한 기억 매체이어도 좋다.
본 발명의 실시예는 프로그램 코드를 운반하는 컴퓨터 프로그램 제품을 더 제공하고, 상기 프로그램 코드에 포함되는 명령은 상기 방법 실시예에 기재된 뉴럴 네트워크 동작 방법의 단계를 실행하기 위해 이용되어도 좋다. 상세는 상기 방법 실시예를 참조하면 좋고, 여기에서 상세한 설명을 생략한다.
해당 컴퓨터 프로그램 제품은 구체적으로 하드웨어, 소프트웨어, 또는 그 조합의 형태로 실현할 수 있다. 선택 가능한 일 실시예에서 상기 컴퓨터 프로그램 제품은 컴퓨터 기억 매체로서 구체화되고, 선택 가능한 다른 실시예에서 컴퓨터 프로그램 제품은 소프트웨어 개발 키트(Software Development Kit, SDK) 등의 소프트웨어 제품으로서 구체화된다.
설명의 편리성 및 간결함을 위해, 상기 시스템 및 장치의 구체적인 동작 과정은 상기 방법 실시예에서의 대응하는 과정을 참조하면 좋고, 여기에서 상세한 설명을 생략한다. 본 발명에 개시된 몇 가지 실시예에서는 개시된 시스템, 장치 및 방법은 다른 방식으로 실현 가능한 것이 이해되어야 한다. 상기 설명한 장치의 실시예는 예시적인 것에 불과하고, 예를 들면, 상기 유닛의 구획은 논리 기능에 의한 구획이고, 실장 시, 다른 구획 방식이어도 좋다. 예를 들면, 복수의 유닛 또는 컴포넌트를 조합하거나, 별도의 시스템에 집적하도록 해도 좋고, 또는 일부의 구성을 삭제하거나, 또는 실행하지 않도록 해도 좋다. 또한, 표시 또는 설명되어 있는 상호간의 결합, 직접 결합, 또는 통신 접속은 일부의 통신 인터페이스, 장치, 또는 유닛 간의 간접 결합 또는 통신 접속이어도 좋고, 전기적, 기계적, 또는 다른 형식이어도 좋다.
개별의 부재로서 기술되어 있는 유닛은 물리적으로 분리해도 좋고, 분리하지 않아도 좋다. 유닛으로서 표시되어 있는 부재는 물리 유닛이어도, 아니어도 좋고, 즉, 한 곳에 배치해도 좋고, 또는 복수의 네트워크 유닛에 분산해도 좋다. 실제의 필요에 따라서 그 중의 일부 또는 전부의 유닛을 선택하여 본 실시예의 기술안의 목적을 달성할 수 있다.
또한, 본 발명의 각 실시예에서의 각 기능 유닛은 하나의 처리 유닛에 집적되어도 좋고, 각 유닛이 물리적으로 단독으로 존재해도 좋고, 2개 또는 2개 이상의 유닛이 하나의 유닛에 집적되어도 좋다.
상기 기능은 소프트웨어 기능 유닛의 형식으로 실현되고, 또한 독립된 제품으로서 판매 또는 사용되는 경우, 프로세서에서 실행 가능한 불휘발성의 컴퓨터 가독 기억 매체에 기억할 수 있다. 이에 따르면, 본 발명의 기술안은 실질적으로, 또는 종래 기술에 기여하는 부분, 또는 해당 기술안의 일부는 소프트웨어 제품의 형식으로 구체화되는 것이 가능하다. 해당 컴퓨터 소프트웨어 제품은 하나의 기억 매체에 기억되고, 컴퓨터 장치(퍼스널 컴퓨터, 서버, 또는 네트워크 장치 등이어도 좋다)가 본 발명의 각 실시예의 방법에서의 전부 또는 일부의 단계를 실행하기 위한 복수의 명령을 포함하고 있다. 상기한 기억 매체는 U디스크, 모바일 하드 디스크, 판독 전용 메모리(ROM: Read―Only Memory), 랜덤 액세스 메모리(RAM: Random Access Memory), 자기 디스크 또는 광디스크 등의 프로그램 코드를 기억 가능한 여러 가지 매체를 포함한다.
이상은 본 발명의 구체적인 실시형태에 불과하고, 본 발명의 권리 범위는 이들에 한정되는 것은 아니다. 당업자가 본 발명에 개시되는 기술의 범위 내에서 용이하게 착상할 수 있는 변형이나 변경은 모두 본 발명의 권리 범위에 포함된다. 따라서, 본 발명의 권리 범위는 특허 청구 범위에 의한 것이다.

Claims (18)

  1. 목표 뉴럴 네트워크에서의 처리 대상의 네트워크층을 결정하는 것과,
    결정된, 상기 처리 대상의 네트워크층에 대응하는 기능을 실현하기 위한 복수의 연산자 및 상기 목표 뉴럴 네트워크를 동작시키기 위한 계산 장치의 동작 요구에 매칭하는 복수의 타일링 스트래티지 중에서 상기 목표 뉴럴 네트워크에서의 상기 처리 대상의 네트워크층에 대응하는 목표 연산자 및 목표 타일링 스트래티지를 결정하는 것과,
    상기 처리 대상의 네트워크층에 대응하는 상기 목표 타일링 스트래티지에 기초하여 상기 목표 연산자를 포함하는 상기 목표 뉴럴 네트워크를 동작시키는 것을 포함하는, 뉴럴 네트워크 동작 방법.
  2. 제 1 항에 있어서,
    상기 타일링 스트래티지는 상기 처리 대상의 네트워크층에 대응하는 목표 연산자의 파라미터 데이터를 타일링하기 위해 이용되고,
    상기 복수의 타일링 스트래티지에 있어서, 상기 목표 타일링 스트래티지를 이용하여 상기 목표 연산자의 파라미터 데이터를 타일링해서 얻어진 파라미터 데이터에 기초하여 상기 처리 대상의 네트워크층을 동작시킬 때의 리소스 소비가 최소로 되는, 뉴럴 네트워크 동작 방법.
  3. 제 1 항 또는 제2 항에 있어서,
    상기 처리 대상의 네트워크층이 복수인 경우,
    상기한, 결정된 복수의 연산자 및 복수의 타일링 스트래티지 중에서 상기 목표 뉴럴 네트워크에서의 상기 처리 대상의 네트워크층에 대응하는 목표 연산자 및 목표 타일링 스트래티지를 결정하는 것은,
    상기 목표 뉴럴 네트워크에서의 어느 쪽인가의 처리 대상의 네트워크층에 대하여 상기 복수의 연산자 중에서 상기 처리 대상의 네트워크층에 대응하는 목표 후보 연산자를 결정하는 것과 함께, 상기 복수의 타일링 스트래티지 중에서 상기 목표 후보 연산자에 매칭하는 목표 후보 타일링 스트래티지를 결정하는 것과,
    어느 쪽인가의 처리 대상의 네트워크층에 대응하는 상기 목표 후보 연산자가 복수이고, 및/또는 상기 목표 후보 타일링 스트래티지가 복수인 경우, 상기 처리 대상의 네트워크층에 대응하는 목표 후보 연산자 및 목표 후보 타일링 스트래티지에 기초하여 상기 처리 대상의 네트워크층에 대응하는 상기 목표 연산자 및 상기 목표 타일링 스트래티지를 결정하는 것을 포함하는, 뉴럴 네트워크 동작 방법.
  4. 제 3 항에 있어서,
    상기한, 상기 처리 대상의 네트워크층에 대응하는 목표 후보 연산자 및 목표 후보 타일링 스트래티지에 기초하여 상기 처리 대상의 네트워크층에 대응하는 상기 목표 연산자 및 상기 목표 타일링 스트래티지를 결정하는 것은,
    상기 처리 대상의 네트워크층에 대응하는 목표 후보 연산자 및 상기 목표 후보 연산자에 대응하는 목표 후보 타일링 스트래티지에 기초하여 상기 목표 뉴럴 네트워크에 대응하는 것으로서, 각각이 상기 처리 대상의 네트워크층에 대응하는 하나의 상기 목표 후보 연산자 및 해당 목표 후보 연산자에 매칭하는 하나의 목표 후보 타일링 스트래티지를 포함하는 복수의 테스트 네트워크를 결정하는 것과,
    상기 복수의 테스트 네트워크를 각각 동작시키고, 각각 상기 복수의 테스트 네트워크에 대응하는 복수의 테스트 결과를 취득하는 것과,
    상기 복수의 테스트 결과에 기초하여 상기 복수의 테스트 네트워크 중에서 목표 테스트 네트워크를 선출하는 것과,
    상기 목표 테스트 네트워크에서의 상기 처리 대상의 네트워크층의 목표 후보 연산자 및 목표 후보 타일링 스트래티지를 상기 목표 뉴럴 네트워크에서의 상기 처리 대상의 네트워크층에 대응하는 상기 목표 연산자 및 목표 타일링 스트래티지로서 결정하는 것을 포함하는, 뉴럴 네트워크 동작 방법.
  5. 제 3 항 또는 제 4 항에 있어서,
    상기한, 상기 목표 뉴럴 네트워크에서의 어느 쪽인가의 처리 대상의 네트워크층에 대하여 상기 복수의 연산자 중에서 상기 처리 대상의 네트워크층에 대응하는 목표 후보 연산자를 결정하는 것과 함께, 상기 복수의 타일링 스트래티지 중에서 상기 목표 후보 연산자에 매칭하는 목표 후보 타일링 스트래티지를 결정하는 것은,
    상기 처리 대상의 네트워크층에 대하여 상기 복수의 연산자 중에서 하나 또는 복수의 제1 후보 연산자를 결정하는 것과,
    상기 복수의 타일링 스트래티지의 각각에서의 상기 제1 후보 연산자의 리소스 소비 상황에 기초하여 상기 제1 후보 연산자 및 상기 복수의 타일링 스트래티지 중에서 상기 처리 대상의 네트워크층에 대응하는 하나 또는 복수의 목표 후보 연산자 및 상기 목표 후보 연산자에 대응하는 목표 후보 타일링 스트래티지를 선택하는 것을 포함하는, 뉴럴 네트워크 동작 방법.
  6. 제 5 항에 있어서,
    상기 리소스 소비 상황은 계산 오버헤드값으로 나타나고,
    상기 타일링 스트래티지의 각각에서의 상기 제1 후보 연산자의 계산 오버헤드값은,
    미리 설정된 사이즈에서의 상기 제1 후보 연산자에 대응하는 제한 장면으로서, 미리 설정된 사이즈에서의 상기 제1 후보 연산자에 대응하는 데이터 용량의 계산 소비 시간 및 전송 소비 시간에 기초하여 결정되는 제한 장면을 결정하는 단계와,
    상기 제한 장면이 대역폭 제한 장면에 해당되는 경우, 상기 타일링 스트래티지에 의한 타일링 결과에 기초하여, 상기 타일링 스트래티지에서의 상기 제1 후보 연산자에 대응하는 DMA(Direct Memory Access)데이터 전송 총량, DMA 태스크 수 및 상기 제1 후보 연산자에 대응하는 목표 데이터 배열 방식에 따라서 상기 제1 후보 연산자에 대응하는 입력 데이터에 대하여 실시하는 데이터 배열 방식에 의한 변환에 걸리는 시간인 데이터 변환 오버헤드를 결정하고, 상기 DMA데이터 전송 총량, 상기 DMA 태스크 수, 상기 데이터 변환 오버헤드 및 상기 계산 장치에 대응하는 DMA레이트, DMA 태스크 오버헤드에 기초하여 상기 타일링 스트래티지에서의 상기 제1 후보 연산자의 계산 오버헤드값을 결정하는 단계와,
    상기 제한 장면이 계산 제한 장면에 해당되는 경우, 상기 타일링 스트래티지에 의한 타일링 결과에 기초하여, 상기 타일링 스트래티지에서의 상기 제1 후보 연산자에 대응하는 파라미터 데이터의 계산 소비 시간, 상기 제1 후보 연산자의 연산자 호출 횟수, 초기 데이터 전송 총량, DMA 태스크 수 및 데이터 변환 오버헤드를 결정하고, 상기 계산 소비 시간, 상기 연산자 호출 횟수, 초기 데이터 전송 총량, 데이터 변환 오버헤드, DMA 태스크 오버헤드, DMA 태스크 수 및 상기 계산 장치에 대응하는 DMA레이트에 기초하여 상기 타일링 스트래티지에서의 상기 제1 후보 연산자의 계산 오버헤드값을 결정하는 단계에 의하여 결정되는, 뉴럴 네트워크 동작 방법.
  7. 제 5 항 또는 제 6 항에 있어서,
    상기한, 상기 복수의 타일링 스트래티지의 각각에서의 상기 제1 후보 연산자의 리소스 소비 상황에 기초하여 상기 제1 후보 연산자 및 상기 복수의 타일링 스트래티지 중에서 상기 처리 대상의 네트워크층에 대응하는 하나 또는 복수의 목표 후보 연산자 및 상기 목표 후보 연산자에 대응하는 하나 또는 복수의 목표 후보 타일링 스트래티지를 선택하는 것은,
    각각의 타일링 스트래티지에서 각각 하나의 상기 리소스 소비 상황에 대응지워지는 상기 제1 후보 연산자에 대응하는 복수의 상기 리소스 소비 상황 중에서 미리 설정된 조건을 충족하는 목표 리소스 소비 상황을 선출하는 것과,
    상기 목표 리소스 소비 상황에 대응하는 타일링 스트래티지를 후보 타일링 스트래티지로서 결정하고, 상기 후보 타일링 스트래티지에 기초하여 상기 목표 리소스 소비 상황에 대응지워지는 제2 후보 연산자를 포함하는 처리 대상의 네트워크층을 동작시키고, 상기 후보 타일링 스트래티지 및 상기 제2 후보 연산자에 대응하는 테스트 결과를 결정하는 것과,
    상기 테스트 결과에 기초하여 상기 처리 대상의 네트워크층에 대응하는 하나 또는 복수의 목표 후보 연산자 및 상기 목표 후보 연산자에 대응하는 목표 후보 타일링 스트래티지를 결정하는 것을 포함하는, 뉴럴 네트워크 동작 방법.
  8. 제 5 항 내지 제 7 항 중 어느 한 항에 있어서,
    상기 제1 후보 연산자 및 상기 복수의 타일링 스트래티지 중에서 상기 처리 대상의 네트워크층에 대응하는 하나 또는 복수의 목표 후보 연산자 및 상기 목표 후보 연산자에 대응하는 목표 후보 타일링 스트래티지를 선택하기 전에,
    결정된 상기 목표 뉴럴 네트워크에 대응하는 최소 입도 정보에 기초하여 상기 제1 후보 연산자에 대응하는 파라미터 데이터에 대해서 정렬 조작을 실시하고, 상기 제1 후보 연산자에 대응하는 얼라인먼트 후의 파라미터 데이터를 취득하는 것을 추가로 포함하고,
    상기 최소 입도 정보는 다른 차원에서의 상기 파라미터 데이터에 대응하는 최소 입도를 포함하고, 다른 차원에서의 상기 얼라인먼트 후의 파라미터 데이터의 사이즈는 상기 최소 입도 정보에 의하여 나타나는 대응하는 차원에서의 최소 입도의 정수배인, 뉴럴 네트워크 동작 방법.
  9. 제 1 항 내지 제 8 항 중 어느 한 항에 있어서,
    상기 파라미터 데이터가 입력 데이터와 정수 데이터를 포함하는 경우, 상기 복수의 타일링 스트래티지는,
    모든 입력 데이터를, 계산 장치에 의한 상기 목표 뉴럴 네트워크의 동작 시에 DMA 태스크에 의하여 할당된 초기 데이터 영역 내에 기입되는 데이터인 초기 데이터로 하고, 결정된 상기 정수 데이터의 차원 파라미터에 기초하여 상기 정수 데이터에 대해서 지정 차원화의 타일링을 실시하고, 타일링 결과를 취득하는 것과,
    모든 정수 데이터를 상기 초기 데이터로 하고, 결정된 상기 입력 데이터의 차원 파라미터에 기초하여 상기 입력 데이터에 대해서 지정 차원화의 타일링을 실시하고, 타일링 결과를 취득하는 것과,
    목표 사이즈가 상기 입력 데이터의 제1 차원의 최소 입도에 기초하여 결정되는 일부의 입력 데이터를 상기 초기 데이터로 하고, 결정된 상기 정수 데이터의 차원 파라미터에 기초하여 상기 정수 데이터에 대해서 지정 차원화의 타일링을 실시하고, 타일링 결과를 취득하는 것과,
    목표 사이즈가 상기 정수 데이터의 제1 차원의 최소 입도에 기초하여 결정되는 일부의 정수 데이터를 상기 초기 데이터로 하고, 결정된 상기 입력 데이터의 차원 파라미터에 기초하여 상기 입력 데이터에 대해서 지정 차원화의 타일링을 실시하고, 타일링 경과를 취득하는 것의 적어도 하나를 포함하는, 뉴럴 네트워크 동작 방법.
  10. 제 9 항에 있어서,
    상기한, 일부의 입력 데이터를 초기 데이터로 하고, 결정된 상기 정수 데이터의 차원 파라미터에 기초하여 상기 정수 데이터에 대해서 지정 차원화의 타일링을 실시하고, 타일링 결과를 취득하는 것은,
    상기 입력 데이터의 제1 차원의 최소 입도의 i배에 기초하여 상기 일부의 입력 데이터의 목표 사이즈를 결정하는 것과,
    상기 목표 사이즈의 상기 일부의 입력 데이터를 각각 초기 데이터로 하고, 결정된 상기 정수 데이터의 차원 파라미터에 기초하여 상기 정수 데이터에 대해서 지정 차원화의 타일링을 실시하고, 타일링 결과를 취득하는 것을 포함하고,
    다만, i는 일부의 입력 데이터의 목표 사이즈가 결정된 후, 상기 일부의 입력 데이터의 데이터 용량과, 상기 정수 데이터의 차원 파라미터의 최소 입도에 기초하여 결정되는 정수 데이터 타일의 데이터 용량이 계산 장치의 메모리 요구를 충족하도록 하는 양의 정수인, 뉴럴 네트워크 동작 방법.
  11. 제 9 항에 있어서,
    상기한, 일부의 정수 데이터를 초기 데이터로 하고, 결정된 상기 입력 데이터의 차원 파라미터에 기초하여 상기 입력 데이터에 대해서 지정 차원화의 타일링을 실시하고, 타일링 결과를 취득하는 것은,
    상기 정수 데이터의 제1 차원의 최소 입도의 j배에 기초하여 상기 일부의 정수 데이터의 목표 사이즈를 결정하는 것과,
    상기 목표 사이즈의 상기 일부의 정수 데이터를 각각 초기 데이터로 하고, 결정된 상기 입력 데이터의 차원 파라미터에 기초하여 상기 입력 데이터에 대해서 지정 차원화의 타일링을 실시하고, 타일링 결과를 취득하는 것을 포함하고,
    다만, j는 일부의 정수 데이터의 목표 사이즈가 결정된 후, 상기 일부의 정수 데이터의 데이터 용량과, 상기 입력 데이터의 차원 파라미터의 최소 입도에 기초하여 결정되는 입력 데이터 타일의 데이터 용량이 계산 장치의 메모리 요구를 충족하도록 하는 양의 정수인, 뉴럴 네트워크 동작 방법.
  12. 제 9 항 내지 제 11 항 중 어느 한 항에 있어서,
    상기 지정 차원이 1차원이고, 상기 차원 파라미터가 제1 차원을 포함하는 경우, 상기 정수 데이터와 상기 입력 데이터를 각각 목표 데이터로 하고, 결정된 상기 목표 데이터의 제1 차원에 기초하여 상기 목표 데이터에 대해서 1차원화의 타일링을 실시하고, 타일링 결과를 취득하는 것은,
    상기 목표 데이터의 제1 차원에 대응하는 최소 입도의 k(k는 양의 정수)배를 목표 타일링 사이즈로서 결정하고, 상기 목표 타일링 사이즈에 기초하여 상기 목표 데이터에 대해서 상기 제1 차원에 따라서 1차원화의 타일링을 실시하고, 상기 목표 데이터에 대응하는 복수의 목표 데이터 타일을 취득하는 것과,
    상기 복수의 목표 데이터 타일과 상기 초기 데이터가 설정된 타일링 조건을 충족한다고 결정한 경우, 상기 목표 데이터의 제1 차원에 대응하는 최소 입도의 k+1배를 갱신 후의 목표 타일링 사이즈로 하고, 상기 목표 타일링 사이즈에 기초하여 상기 목표 데이터에 대해서 상기 제1 차원에 따라서 1차원화의 타일링을 실시하는 단계로 되돌아가고, 상기 복수의 목표 데이터 타일과 상기 초기 데이터가 설정된 타일링 조건을 충족하지 않는다고 결정할 때까지 상기 목표 데이터의 제1 차원에 대응하는 최소 입도의 k배를 상기 타일링 결과로서 결정하는 것과,
    상기 초기 데이터와, k=1인 때에 생성된 상기 복수의 목표 데이터 타일이 설정된 타일링 조건을 충족하지 않는 경우, 상기 타일링 결과가 1차원화의 타일링 실패라고 결정하는 것을 포함하는, 뉴럴 네트워크 동작 방법.
  13. 제 9 항 내지 제 12 항 중 어느 한 항에 있어서,
    상기 지정 차원이 2차원이고, 상기 차원 파라미터가 제2 차원을 포함하는 경우, 상기 정수 데이터와 상기 입력 데이터를 각각 목표 데이터로 하고, 결정된 상기 목표 데이터의 제1 차원, 제2 차원에 기초하여 상기 목표 데이터에 대해서 2차원화의 타일링을 실시하고, 타일링 결과를 취득하는 것은,
    상기 목표 데이터의 제1 차원에 대응하는 최소 입도의 y(y는 양의 정수)배를 제 1 목표 타일링 사이즈로서 결정하고, 상기 제 1 목표 타일링 사이즈에 기초하여 상기 목표 데이터에 대해서 제1 차원에 따라서 1차원화의 타일링을 실시하고, 상기 목표 데이터에 대응하는 복수의 중간 데이터 타일을 취득하는 것과,
    상기 목표 데이터의 제2 차원에 대응하는 최소 입도의 x(x는 양의 정수)배를 제2 목표 타일링 사이즈로서 결정하고, 상기 제2 목표 타일링 사이즈에 기초하여 적어도 하나의 중간 데이터 타일에 대해서 상기 제2 차원에 따라서 2차원화의 타일링을 실시하고, 각 중간 데이터 타일에 각각 대응하는 복수의 목표 데이터 타일을 취득하는 것과,
    상기 복수의 목표 데이터 타일과 상기 초기 데이터가 설정된 타일링 조건을 충족한다고 결정한 경우, 상기 목표 데이터의 제2 차원에 대응하는 최소 입도의 x+1배를 갱신 후의 제2 목표 타일링 사이즈로 하고, 상기 제2 목표 타일링 사이즈에 기초하여 적어도 하나의 중간 데이터 타일에 대해서 제2 차원에 따라서 2차원화의 타일링을 실시하는 단계로 되돌아가고, 상기 복수의 목표 데이터 타일과 상기 초기 데이터가 설정된 타일링 조건을 충족하지 않는다고 결정할 때까지 상기 목표 데이터의 제2 차원에 대응하는 최소 단위의 x배를 상기 타일링 결과로서 결정하는 것을 포함하는, 뉴럴 네트워크 동작 방법.
  14. 제 12 항 또는 제 13 항에 있어서,
    상기 처리 대상의 네트워크층에 대응하는 파라미터 데이터가 출력 데이터를 포함하는 경우,
    상기한, 상기 복수의 목표 데이터 타일과 상기 초기 데이터가 설정된 타일링 조건을 충족한다고 결정하는 것은,
    상기 초기 데이터, 상기 출력 데이터 및 적어도 하나의 목표 데이터 타일이 각각 상기 계산 장치의 메모리 요구를 충족하고, 상기 초기 데이터, 상기 출력 데이터 및 적어도 하나의 목표 데이터 타일이 각각 상기 계산 장치에서의 DMA전송 요구를 충족한다고 결정한 경우, 상기 복수의 목표 데이터 타일과 상기 초기 데이터가 설정된 타일링 조건을 충족한다고 결정하는 것을 포함하는, 뉴럴 네트워크 동작 방법.
  15. 목표 뉴럴 네트워크에서의 처리 대상의 네트워크층을 결정하는 제 1 결정 모듈과,
    결정된, 상기 처리 대상의 네트워크층에 대응하는 기능을 실현하기 위한 복수의 연산자 및 상기 목표 뉴럴 네트워크를 동작시키기 위한 계산 장치의 동작 요구에 매칭하는 복수의 타일링 스트래티지 중에서 상기 목표 뉴럴 네트워크에서의 상기 처리 대상의 네트워크층에 대응하는 목표 연산자 및 목표 타일링 스트래티지를 결정하는 제2 결정 모듈과,
    상기 처리 대상의 네트워크층에 대응하는 상기 목표 타일링 스트래티지에 기초하여 상기 목표 연산자를 포함하는 상기 목표 뉴럴 네트워크를 동작시키는 동작 모듈을 포함하는, 뉴럴 네트워크 동작 장치.
  16. 프로세서와,
    상기 프로세서에 의해 실행 가능한 기계 가독 명령을 기억하기 위한 메모리와,
    버스를 포함하고,
    전자 기기가 동작하면, 상기 프로세서와 상기 메모리는 버스를 통하여 통신하고, 상기 기계 가독 명령이 상기 프로세서에 의해 실행되면, 제 1 항 내지 제 14 항 중 어느 한 항에 기재된 뉴럴 네트워크 동작 방법의 단계를 실행시키는, 전자 기기.
  17. 컴퓨터 프로그램을 기억하고 있는 컴퓨터 판독 가능한 기억 매체로서, 상기 컴퓨터 프로그램이 프로세서에 의해 실행되면, 제 1 항 내지 제 14 항 중 어느 한 항에 기재된 뉴럴 네트워크 동작 방법의 단계를 실현시키는, 컴퓨터 판독 가능한 기억 매체.
  18. 컴퓨터 판독 가능한 코드를 포함하고, 상기 컴퓨터 판독 가능한 코드가 전자 기기에서 동작하면, 상기 전자 기기의 프로세서에 제 1 항 내지 제 14 항 중 어느 한 항에 기재된 뉴럴 네트워크 동작 방법을 실행시키는, 컴퓨터 프로그램.
KR1020227010736A 2020-12-31 2021-04-09 뉴럴 네트워크 동작 방법, 장치, 전자 기기 및 기억 매체 KR20220098341A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN202011619783.3 2020-12-31
CN202011619783.3A CN112668701B (zh) 2020-12-31 2020-12-31 神经网络运行方法、装置、电子设备及存储介质
PCT/CN2021/086229 WO2022141924A1 (zh) 2020-12-31 2021-04-09 神经网络运行方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
KR20220098341A true KR20220098341A (ko) 2022-07-12

Family

ID=75412062

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227010736A KR20220098341A (ko) 2020-12-31 2021-04-09 뉴럴 네트워크 동작 방법, 장치, 전자 기기 및 기억 매체

Country Status (3)

Country Link
KR (1) KR20220098341A (ko)
CN (1) CN112668701B (ko)
WO (1) WO2022141924A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116897356A (zh) * 2022-02-08 2023-10-17 华为技术有限公司 算子的调度运行时间比较方法、装置及存储介质

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130084016A (ko) * 2012-01-16 2013-07-24 삼성전자주식회사 분산된 학습 구조에 기초하는 자세 인식기 학습 시스템 및 방법
CN106599900B (zh) * 2015-10-20 2020-04-21 华中科技大学 一种识别图像中的字符串的方法和装置
CN110348562B (zh) * 2019-06-19 2021-10-15 北京迈格威科技有限公司 神经网络的量化策略确定方法、图像识别方法和装置
CN115063369A (zh) * 2019-09-30 2022-09-16 上海联影智能医疗科技有限公司 脑部图像检测方法、计算机设备和存储介质
CN110796652B (zh) * 2019-10-30 2023-03-21 上海联影智能医疗科技有限公司 图像处理方法、计算机设备和存储介质
CN111179231B (zh) * 2019-12-20 2024-05-28 上海联影智能医疗科技有限公司 图像处理方法、装置、设备和存储介质
CN111179372B (zh) * 2019-12-31 2024-03-26 上海联影智能医疗科技有限公司 图像衰减校正方法、装置、计算机设备和存储介质

Also Published As

Publication number Publication date
CN112668701B (zh) 2023-12-22
WO2022141924A1 (zh) 2022-07-07
CN112668701A (zh) 2021-04-16

Similar Documents

Publication Publication Date Title
AU2019268193B2 (en) Conversion method, apparatus, computer device, and storage medium
CN109542512B (zh) 一种数据处理方法、装置和存储介质
CN114430837A (zh) 使用脉动阵列的转置卷积
CN114915630B (zh) 基于物联网设备的任务分配方法、网络训练方法及装置
US20150302022A1 (en) Data deduplication method and apparatus
US20160132272A1 (en) Information processing apparatus, communication method and information processing system
WO2023134453A1 (zh) 一种算子的处理方法及计算机设备
KR20220098341A (ko) 뉴럴 네트워크 동작 방법, 장치, 전자 기기 및 기억 매체
CN111523642B (zh) 用于卷积运算的数据重用方法、运算方法及装置、芯片
US20160112506A1 (en) Computer system, processing method, and computer-readable recording medium having job processing program
WO2013005322A1 (ja) 制御端末、および制御方法
CN111738424A (zh) 神经网络处理方法、装置、电子设备及存储介质
CN110458285B (zh) 数据处理方法、装置、计算机设备和存储介质
CN112488563A (zh) 一种算力参数的确定方法和装置
JP2022516549A (ja) チップ動作周波数の設定
CN114490002A (zh) 数据处理系统、任务调度方法、装置、芯片、及电子设备
CN115934354A (zh) 在线存储方法和装置
CN113886090A (zh) 内存分配方法及装置、设备、存储介质
CN115309502A (zh) 一种容器调度方法及装置
CN113760380B (zh) 网络模型的运行代码的确定方法、装置、设备及存储介质
CN114881221A (zh) 映射方案优化方法及装置、电子设备、可读存储介质
JP2023531538A (ja) ニューラルネットワークの生成方法、機器及びコンピュータ可読記憶媒体
CN107291535B (zh) 多核系统的资源管理方法、资源管理设备及电子设备
CN112257870A (zh) 机器学习指令的转换方法及装置、板卡、主板、电子设备
CN110187957A (zh) 一种下载任务的排队方法、装置及电子设备

Legal Events

Date Code Title Description
WITB Written withdrawal of application