KR102519467B1 - 데이터 전처리 방법, 장치, 컴퓨터 설비 및 저장 매체 - Google Patents

데이터 전처리 방법, 장치, 컴퓨터 설비 및 저장 매체 Download PDF

Info

Publication number
KR102519467B1
KR102519467B1 KR1020197036813A KR20197036813A KR102519467B1 KR 102519467 B1 KR102519467 B1 KR 102519467B1 KR 1020197036813 A KR1020197036813 A KR 1020197036813A KR 20197036813 A KR20197036813 A KR 20197036813A KR 102519467 B1 KR102519467 B1 KR 102519467B1
Authority
KR
South Korea
Prior art keywords
target
memory
arithmetic operation
input data
data
Prior art date
Application number
KR1020197036813A
Other languages
English (en)
Other versions
KR20210044669A (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
Priority claimed from CN201810987293.5A external-priority patent/CN110865950B/zh
Priority claimed from CN201810987343.XA external-priority patent/CN110865792B/zh
Application filed by 캠브리콘 테크놀로지스 코퍼레이션 리미티드 filed Critical 캠브리콘 테크놀로지스 코퍼레이션 리미티드
Publication of KR20210044669A publication Critical patent/KR20210044669A/ko
Application granted granted Critical
Publication of KR102519467B1 publication Critical patent/KR102519467B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
    • 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/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/10Machine learning using kernel methods, e.g. support vector machines [SVM]
    • 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/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/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/45Caching of specific data in cache memory
    • G06F2212/454Vector or matrix data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/604Details relating to cache allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/16Memory access

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Security & Cryptography (AREA)
  • Neurology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Memory System (AREA)
  • Advance Control (AREA)
  • Feedback Control In General (AREA)
  • Color Image Communication Systems (AREA)
  • Facsimile Image Signal Circuits (AREA)

Abstract

본 개시는 데이터 전처리 방법, 장치, 컴퓨터 설비 및 저장 매체에 관한 것이며, 목표 연산 동작에 대응하는 목표 출력 데이터를 프로세서에 인접한 제 1 메모리에 저장하여, 목표 출력 데이터의 판독 횟수를 감소시킴으로써, 연산 과정에서의 I/O 판독 동작의 점유 시간을 단축할 수 있어, 프로세서의 속도 및 효율을 향상시킬 수 있다.

Description

데이터 전처리 방법, 장치, 컴퓨터 설비 및 저장 매체
본 개시는 2018년 8월 28일자, 중국 특허 출원 제2018109872935호, 명칭 "데이터 전처리 방법, 장치, 컴퓨터 설비 및 저장 매체" 2018년 8월 28일자, 중국 특허 출원 제 201810987343X호, 명칭 "데이터 전처리 방법, 장치, 컴퓨터 설비 및 저장 매체"에 기초한 우선권의 이익을 주장하며, 해당 중국 특허 출원의 문헌에 개시된 모든 내용은 본 명세서의 일부로서 포함한다.
본 개시는 컴퓨터 기술 분야에 관한 것으로서, 특히 데이터 전처리 방법, 장치, 컴퓨터 설비 및 저장 매체에 관한 것이다.
데이터 량이 폭발적으로 증가함에 따라 기계 학습과 같은 인공 지능 알고리즘이 점점 더 많이 응용되고 있다. 기기는 많은 양의 데이터를 분석하여 학습하므로, 기계 학습 등과 같은 빅데이터 연산은 메모리 액세스 등에 대한 수요가 급격히 증가하고 있다.
메모리 액세스 등의 수요를 충족시키기 위해, 현재는 일반적으로 캐시 메모리, 메인 메모리 및 외장 메모리를 사용하는 멀티 레벨 메모리 아키텍처가 사용된다. 여기서, 캐시 메모리(Cache), 메인 메모리 및 외장 메모리의 액세스 속도는 순차적으로 감소하고, 저장 용량은 순차적으로 증가한다. 하지만, 컴퓨터 설비에서 I/O의 대역폭은 종종 많은 양의 데이터 수요를 충족시킬 수 없기 때문에, 프로세서가 기계 학습 연산을 실행하는 과정 중에, 캐시 메모리와 메인 메모리 사이, 및/또는 메인 메모리와 외장 메모리 사이에서 데이터 판독 동작은 빈번하게 수행될 필요가 있다. 예를 들어, 프로세서가 연산을 실행하는 과정에서, 프로세서는 먼저 외장 메모리로부터 입력 데이터를 판독하고, 연산이 종료된 후, 프로세서는 연산 결과를 외장 메모리에 저장하고, 다음 연산에 필요할 입력 데이터를 외장 메모리로부터 계속 판독한다. I/O 대역폭의 제한으로 인해 하나의 연산 과정에는 적어도 두 번의 I/O 리드-라이트 작업이 필요하며, 빈번한 I/O 리드-라이트 작업은 많은 시간을 차지하여 프로세서의 처리 효율이 낮춘다.
이를 감안하여, 상기 기술적 문제를 해결하기 위한, 연산 과정에서 I/O 리드-라이트 동작의 횟수를 감소시키고 프로세서의 처리 효율을 향상시킬 수 있는 데이터 전처리 방법, 장치, 컴퓨터 설비 및 저장 매체를 제공할 필요가 있다.
데이터 전처리 방법으로서, 상기 방법은,
제 1 메모리의 가용 저장 용량 및 목표 연산 동작을 획득하는 단계;
목표 연산 동작 및 제 1 메모리의 가용 저장 용량에 따라, 상기 목표 연산 동작에 대응하는 목표 입력 데이터를 확정하는 단계; 여기서, 상기 목표 입력 데이터는 상기 목표 연산 동작에 대응하는 모든 입력 데이터의 일부 또는 전부이며;
상기 목표 연산 동작 및 상기 목표 입력 데이터에 따라, 상기 목표 연산 동작의 목표 출력 데이터를 확정하는 단계;
상기 목표 연산 동작의 목표 출력 데이터가 상기 목표 연산 동작 후의 기타 연산 동작의 입력 데이터인 경우, 상기 목표 연산 동작의 목표 출력 데이터를 상기 제 1 메모리에 저장하는 단계를 포함하며, 여기서, 상기 제 1 메모리는 프로세서에 인접하여 배치된다.
데이터 전처리 장치로서, 상기 장치는,
제 1 메모리의 가용 저장 용량 및 목표 연산 동작을 획득하기 위한 획득 모듈;
상기 목표 연산 동작 및 상기 제 1 메모리의 가용 저장 용량에 따라, 상기 목표 연산 동작에 대응하는 목표 입력 데이터를 확정하기 위한 입력 확정 모듈;
상기 목표 연산 동작 및 상기 목표 입력 데이터에 따라, 상기 목표 연산 동작의 목표 출력 데이터를 확정하기 위한 출력 확정 모듈;
저장 할당 모듈 상기 목표 연산 동작의 목표 출력 데이터가 상기 목표 연산 동작 후의 기타 연산 동작의 입력 데이터인 경우, 상기 목표 연산 동작의 목표 출력 데이터를 상기 제 1 메모리에 저장하기 위한 저장 할당 모듈을 포함하고, 여기서, 상기 제 1 메모리는 프로세서에 인접하여 배치된다.
제 1 메모리, 제 2 메모리 및 프로세서를 포함하며, 상기 제 1 메모리는 프로세서에 인접하여 배치되고, 상기 제 1 메모리와 상기 제 2 메모리는 데이터를 리드-라이트할 수 있으며; 상기 제 2 메모리에는 컴퓨터 프로그램이 내장된 컴퓨터 설비로서, 상기 컴퓨터 프로그램은 상기 프로세서에 의해 실행될 경우, 상기 데이터 전처리 방법의 단계를 수행하는 것을 특징으로 한다.
컴퓨터 프로그램이 내장된 컴퓨터 판독 가능 저장 매체로서, 상기 컴퓨터 프로그램은 프로세서에 의해 실행될 경우, 상기 데이터 전처리 방법의 단계를 수행한다.
상기 데이터 전처리 방법, 장치, 컴퓨터 설비 및 저장 매체에 있어서, 상기 목표 연산 동작의 목표 출력 데이터가 그 다음의 기타 연산 동작의 입력 데이터인 경우, 목표 연산 동작에 대응하는 목표 출력 데이터를 프로세서에 인접하여 위치한 제 1 메모리에 저장할 수 있기에, 목표 출력 데이터의 판독 횟수를 감소시킴으로써, 연산 과정에서의 I/O 판독 동작의 점유 시간이 감소되고, 이에 의해 프로세서의 속도 및 효율이 개선된다.데이터 전처리 방법으로서, 상기 방법은,
메인 메모리의 가용 저장 용량, 슬레이브 메모리에서 가용 저장 용량 및 목표 연산 동작을 획득하는 단계;
상기 메인 메모리의 가용 저장 용량, 상기 슬레이브 메모리의 가용 저장 용량 및 상기 목표 연산 동작에 따라, 상기 목표 연산 동작에 대응하는 목표 입력 데이터를 확정하는 단계;
상기 목표 연산 동작 및 상기 목표 입력 데이터에 따라, 상기 목표 연산 동작에 대응하는 목표 출력 데이터를 확정하는 단계;
상기 목표 연산 동작의 목표 출력 데이터가 상기 목표 연산 동작 후의 기타 연산 동작의 입력 데이터인 경우, 상기 목표 출력 데이터는 상기 메인 메모리에 대응하게 저장되는 단계를 포함한다.
일 실시예에서, 상기 메인 메모리의 가용 저장 용량, 상기 슬레이브 메모리의 가용 저장 용량 및 상기 목표 연산 동작에 따라, 상기 목표 연산 동작에 대응하는 목표 입력 데이터를 확정하는 상기 단계는,
상기 메인 메모리의 가용 저장 용량을 상기 슬레이브 메모리의 가용 저장 용량 각각에 비교하여, 최소의 가용 저장 용량을 제 1 메모리의 가용 저장 용량으로 사용하는 단계;
상기 제 1 메모리의 가용 저장 용량 및 상기 목표 연산 동작에 따라, 상기 목표 연산 동작에 대응하는 목표 입력 데이터를 확정하는 단계를 더 포함한다.
일 실시예에서, 상기 목표 연산 동작은 하나 이상의 연산 동작을 포함하며, 모든 상기 연산 동작은 대응하는 서브 목표 입력 데이터가 있으며; 목표 연산 동작 및 제 1 메모리의 가용 저장 용량에 따라 상기 목표 연산 동작에 대응하는 목표 입력 데이터를 확정하는 상기 단계는,
상기 제 1 메모리의 가용 저장 용량 및 처리하고자 하는 연산에서 각 연산 동작의 융합 속성에 따라, 융합 가능한 연산 동작의 수량을 확정하고, 융합 수량 역치를 얻는 단계;
수량이 선정된 상기 융합 가능한 연산 동작의 조합을 상기 목표 연산 동작으로 사용하고, 상기 선정된 수량은 융합 수량 역치이하인 단계;
상기 수량이 선정된 융합 가능한 연산 동작 각각에 대응하는 서브 목표 입력 데이터를 상기 목표 연산 동작에 대응하는 목표 입력 데이터로 사용하는 단계를 더 포함한다.
일 실시예에서, 상기 처리하고자 하는 연산은 복수의 연산 계층을 포함하는 신경망 연산이며, 상기 연산 계층 각각은 하나의 상기 연산 동작을 나타내며, 상기 방법은,
상기 신경망 연산의 각 연산 계층의 연결 관계에 따라, 상기 연산 동작 각각의 융합 속성을 확정하는 단계를 더 포함한다.
일 실시예에서, 상기 목표 연산 동작에 대응하는 입력 데이터는 복수의 입력 데이터 블록을 포함하고, 상기 목표 입력 데이터 각각은 하나 이상의 상기 입력 데이터 블록을 포함하며, 상기 목표 연산 동작에 대응하는 목표 입력 데이터의 수량은 하나 이상이다.
일 실시예에서, 상기 목표 연산 동작은 하나 이상의 서브 목표 연산 동작을 포함하고, 상기 서브 목표 연산 동작 각각은 하나의 목표 입력 데이터에 대응되며, 상기 방법은,
상기 서브 목표 연산 동작의 목표 입력 데이터의 데이터 용량 및 목표 출력 데이터의 데이터 용량에 각각 따라, 상기 서브 목표 연산 동작 각각에 필요한 목표 저장 용량을 확정하는 단계;
상기 제 1 메모리의 가용 저장 용량 및 현재의 서브 목표 연산 동작에 필요한 목표 저장 용량에 따라, 상기 제 1 메모리의 잔여 저장 용량을 확정하는 단계;
상기 제 1 메모리의 잔여 저장 용량 및 상기 현재 서브 목표 연산 동작 이외의 기타 서브 목표 연산 동작에 필요한 목표 저장 용량에 따라, 상기 서브 목표 연산 동작의 수량을 확정하는 단계를 더 포함한다.
일 실시예에서, 상기 목표 입력 데이터는 제 1 목표 입력 데이터 및 제 2 목표 입력 데이터를 포함하고, 상기 방법은,
미리 설정된 연산 할당 규칙에 따라, 상기 메인 메모리에 대응하는 제 1 목표 입력 데이터 및 상기 슬레이브 메모리에 대응하는 각각 제 2 목표 입력 데이터를 확정하는 단계를 더 포함한다.
일 실시예에서, 상기 방법은:
상기 메인 메모리의 가용 저장 용량 및 상기 제 1 목표 입력 데이터의 데이터 용량에 따라, 상기 메인 메모리 상에 있는 상기 제 1 목표 입력 데이터의 저장 주소를 확정하는 단계;
상기 슬레이브 메모리 각각의 가용 저장 용량 및 그에 대응하는 상기 제 2 목표 입력 데이터의 데이터 용량에 따라, 상기 슬레이브 메모리 상에 있는 상기 제 2 목표 입력 데이터 각각의 저장 주소를 확정하는 단계를 더 포함한다.
일 실시예에서, 상기 목표 출력 데이터는 제 1 목표 출력 데이터 및 제 2 목표 출력 데이터를 포함하고; 상기 목표 연산 동작 및 상기 목표 입력 데이터에 따라, 상기 목표 연산 동작에 대응하는 목표 출력 데이터를 확정하는 상기 단계은,
상기 목표 연산 동작 및 상기 제 1 목표 입력 데이터에 따라, 상기 제 1 목표 출력 데이터 및 상기 제 1 목표 출력 데이터가 상기 메인 메모리 상에서 저장된 주소를 확정되는 단계;
상기 목표 연산 동작 및 상기 제 2 목표 입력 데이터 각각에 따라, 상기 제 2 목표 출력 데이터 및 상기 제 2 목표 출력 데이터 각각에 해당되는 슬레이브 메모리 상에서 저장된 주소를 확정하는 단계;
상기 제 2 목표 출력 데이터 각각에 따라, 상기 메인 메모리 상에 있는 상기 제 2 목표 출력 데이터 각각의 저장 주소를 확정하는 단계를 더 포함한다.
일 실시예에서, 상기 방법은,
상기 슬레이브 프로세싱 회로 상에서 수행되는 기타 목표 연산 동작에 상기 제 2 목표 출력 데이터를 사용할 수요가 있을 경우, 상기 제 2 목표 출력 데이터를 상기 슬레이브 프로세싱 회로에 대응하는 슬레이브 메모리에 저장하는 단계를 더 포함한다.
일 실시예에서, 상기 방법은,
상기 목표 연산 동작의 목표 출력 데이터가 상기 목표 연산 동작 후의 기타 연산 동작의 입력 데이터인 경우, 상기 목표 출력 데이터는 대응하여 상기 메인 메모리와 상기 제 2 메모리 상에 저장되는 단계를 더 포함한다.
데이터 전처리 장치로서, 상기 장치는:
메인 메모리의 가용 저장 용량, 슬레이브 메모리의 가용 저장 용량 및 목표 연산 동작을 획득하기 위한 획득 모듈;
,상기 메인 메모리의 가용 저장 용량, 상기 슬레이브 메모리의 가용 저장 용량 및 상기 목표 연산 동작에 따라, 상기 목표 연산 동작에 대응하는 목표 입력 데이터를 확정하기 위한 입력 확정 모듈;
상기 목표 연산 동작 및 상기 목표 입력 데이터에 따라, 상기 목표 연산 동작에 대응하는 목표 출력 데이터를 확정하기 위한 출력 확정 모듈;
저장 할당 모듈상기 목표 연산 동작의 목표 출력 데이터가 상기 목표 연산 동작 후의 기타 연산 동작의 입력 데이터인 경우, 상기 목표 출력 데이터는 메인 메모리에 대응하여 저장하기 위한 저장 할당 모듈를 포함한다.
일 실시예에서, 상기 데이터 전처리 장치는 저장 용량 확정 모듈을 더 포함한다. 상기 저장 용량 확정 모듈은, 상기 메인 메모리의 가용 저장 용량과 상기 슬레이브 메모리 각각의 가용 저장 용량를 비교하여, 최소의 가용 저장 용량을 제 1 메모리의 가용 저장 용량으로 사용하도록 구성되며;
입력 확정 모듈은, 구체적으로 상기 제 1 메모리의 가용 저장 용량 및 목표 연산 동작에 따라, 목표 연산 동작에 대응하는 목표 입력 데이터를 확정하도록 구성된다.
일 실시예에서, 상기 목표 연산 동작은 하나 이상의 연산 동작을 포함하고, 상기 연산 동작 각각은 서브 목표 입력 데이터에 대응하고; 상기 입력 확정 모듈은 또한,
상기 제 1 메모리의 가용 저장 용량 및 상기 처리하고자 하는 연산에서 각 연산 동작의 융합 속성에 따라, 융합 가능한 연산 동작의 수량을 확정하여 융합 수량 역치를 얻기 위한 융합 확정 유닛;
수량이 선정된 상기 융합 가능한 연산 동작의 조합을 상기 목표 연산 동작으로 사용하고, 상기 선정된 수량은 상기 융합 수량 역치 이하이며, 상기 수량이 선정된 융합 가능한 연산 동작 각각 에 대응하는 서브 목표 입력 데이터를 상기 목표 연산 동작에 대응하는 목표 입력 데이터로 사용하기 위한 입력 확정 유닛을 더 포함한다.
일 실시예에서, 상기 처리하고자 하는 연산은 복수의 연산 계층을 포함하는 신경망 연산이며, 상기 연산 계층 각각은 하나의 상기 연산 동작을 나타내며; 또한, 상기 융합 확정 유닛은 상기 신경망 연산의 각 연산 계층의 연결 관계에 따라 상기 각 연산 동작의 융합 속성을 확정하도록 구성된다.
일 실시예에서, 상기 목표 연산 동작은 하나 이상의 서브 목표 연산 동작을 포함하고, 상기 서브 목표 연산 동작 각각은 하나의 상기 목표 입력 데이터에 대응하며; 여기서, 상기 목표 연산 동작에 대응하는 모든 입력 데이터는 복수의 입력 데이터 블록을 포함하고, 상기 목표 입력 데이터 각각은 하나 이상의 상기 입력 데이터 블록을 포함하고, 상기 목표 연산 동작에 대응하는 목표 입력 데이터의 수량은 하나 이상이며, 상기 입력 확정 모듈은 또한,
상기 서브 목표 연산 동작 각각의 목표 입력 데이터의 데이터 용량 및 목표 출력 데이터의 데이터 용량에 각각 따라, 상기 서브 목표 연산 동작 각각에 필요한 목표 저장 용량을 확정하며;
상기 제 1 메모리의 가용 저장 용량 및 현재의 서브 목표 연산 동작에 필요한 목표 저장 용량에 따라 상기 제 1 메모리의 잔여 저장 용량을 확정하며;
상기 제 1 메모리의 잔여 저장 용량 및 상기 현재의 서브 목표 연산 동작 이외의 기타 서브 목표 연산 동작에 필요한 목표 저장 용량에 따라, 상기 서브 목표 연산 동작의 수량을 확정하도록 구성된다.
일 실시예에서, 상기 목표 입력 데이터는 제 1 목표 입력 데이터 및 제 2 목표 입력 데이터를 포함하며;
상기 입력 확정 모듈은 또한, 미리 설정된 연산 할당 규칙에 따라, 상기 메인 메모리에 대응하는 제 1 목표 입력 데이터 및 상기 슬레이브 메모리 각각에 대응하는 제 2 목표 입력 데이터를 확정하도록 구성되며;
상기 저장 할당 모듈은 또한, 상기 메인 메모리의 가용 저장 용량 및 상기 제 1 목표 입력 데이터의 데이터 용량에 따라, 상기 메인 메모리 상에 있는 상기 제 1 목표 입력 데이터의 저장 주소를 확정하며; 상기 슬레이브 메모리 각각의 가용 저장 용량 및 그에 대응하는 상기 제 2 목표 입력 데이터의 데이터 용량에 각각 따라, 상기 슬레이브 메모리상에 있는 상기 제 2 목표 입력 데이터 각각의 저장 주소를 확정하도록 구성된다.
일 실시예에서, 상기 목표 출력 데이터는 제 1 목표 출력 데이터 및 제 2 목표 출력 데이터를 포함하고; 상기 출력 확정 모듈은 또한,
상기 목표 연산 동작 및 상기 제 1 목표 입력 데이터에 따라, 상기 제 1 목표 출력 데이터 및 상기 제 1 목표 출력 데이터가 상기 메인 메모리 상에서 저장된 주소를 확정하며;
상기 목표 연산 동작 및 상기 제 2 목표 입력 데이터 각각에 따라, 상기 제 2 목표 출력 데이터 및 상기 제 2 목표 출력 데이터 각각은 해당 슬레이브 메모리 상에서 저장된 주소를 확정하며;
상기 제 2 목표 출력 데이터 각각에 따라, 상기 메인 메모리 상에 있는 상기 제 2 목표 출력 데이터 각각의 저장 주소를 확정하도록 구성된다.
일 실시예에서, 상기 저장 할당 모듈은 또한, 상기 슬레이브 프로세싱 회로 상에서 수행되는 기타 목표 연산 동작에 상기 제 2 목표 출력 데이터를 사용할 수요가 있을 경우, 상기 제 2 목표 출력 데이터를 상기 슬레이브 프로세싱 회로에 대응하는 슬레이브 메모리에 저장하도록 구성된다.
컴퓨터 설비로서,
서로 연결된 제어기 유닛과 연산 유닛을 포함하고, 상기 연산 유닛은 하나의 메인 프로세싱 회로 및 복수의 슬레이브 프로세싱 회로를 포함하는 프로세서;
메인 메모리 및 복수의 슬레이브 메모리를 포함하고, 상기 메인 메모리는 상기 메인 프로세서에 인접하여 설치되고, 복수의 슬레이브 메모리는 복수의 상기 슬레이브 프로세싱 회로에 대응하여 설치되고, 상기 슬레이브 프로세서 각각은 대응한 상기 슬레이브 프로세싱 회로에 각각 인접하여 배치되는 복수의 제 1 메모리;
제 2 메모리를 포함하며; 상기 제 1 메모리와 상기 제 2 메모리는 데이터를 리드-라이트 할 수 있으며;
여기서, 상기 제 1 메모리 또는 제 2 메모리에 컴퓨터 프로그램이 저장되어 있고, 상기 프로세서가 상기 컴퓨터 프로그램을 실행할 때, 본 개시의 실시예 중 방법의 단계를 수행한다.
컴퓨터 판독 가능 저장 매체에 있어서, 위에 저장된 컴퓨터 프로그램이 프로세서에 의해 실행될 때, 본 개시의 실시예 중 방법의 단계를 수행한다.
상기 데이터 전처리 방법, 장치, 컴퓨터 설비 및 저장 매체에서, 상기 목표 연산 동작의 목표 출력 데이터가 그 다음의 기타 연산 동작의 입력 데이터일 경우, 목표 연산 동작에 대응하는 목표 출력 데이터를 메인 메모리에 저장할 수 있고, 메인 메모리와 제 2 메모리 사이의 데이터 상호작용을 감소시키고 목표 출력 데이터의 판독 횟수를 감소시킴으로써, 연산 과정에서의 I/O 판독 동작의 점유 시간이 감소되고, 이에 의해 프로세서의 속도 및 효율을 향상시킨다. 또한, 상기 데이터 전처리 방법은 메인 메모리와 슬레이브 메모리 사이의 데이터 상호작용을 감소시켜, 연산 과정에서의 I/O 판독 동작의 점유 시간이 한층 더 감소하여 프로세서의 속도 및 효율을 향상시킨다.
첨부된 도면은 명세서의 일부로 명세서에 속하며, 본 개시에 부합하는 실시예를 명시하였으며, 명세서와 함께 본 개시의 원리를 해석하기 위한 것이다.
도 1은 일 실시예에 따른 컴퓨터 설비의 구조를 제시하는 도면이다;
도 2는 일 실시예에 따른 컴퓨터 설비의 프로세서의 구조를 제시하는 도면이다;
도 3은 일 실시예에 따른 컴퓨터 설비의 프로세서의 구조를 제시하는 도면이다;
도 4는 일 실시예에 따른 컴퓨터 설비의 프로세서의 구조를 제시하는 도면이다;
도 5는 일 실시예에 따른 데이터 전처리 방법의 흐름을 제시하는 도면이다;
도 6은 도 5에 따른 목표 입력 데이터를 확정하는 단계의 일 실시예의 흐름을 제시하는 도면이다;
도7은 도 5에 따른 데이터 전처리 방법에서의 목표 연산 동작의 수량을 확정하는 일 실시예의 흐름을 제시하는 도면이다;
도 8은 일 실시예에 따른 처리하고자 하는 연산을 제시하는 도면이다;
도 9는 다른 실시예에 따른 처리하고자 하는 연산을 제시하는 도면이다;
도 10은 다른 실시예에 따른 데이터 전처리 방법의 흐름을 제시하는 도면이다;
도 11은 도 10 에 따른 목표 입력 데이터를 확정하는 단계의 일 실시예의 흐름을 제시하는 도면이다;
도 12는 일 실시예에 따른 데이터 전처리 장치의 구조 블록을 제시하는 도면이다;
도 13은 일 실시예에 따른 데이터 전처리 장치의 구조 블록을 제시하는 도면이다;
도 14는 다른 실시예에 따른 데이터 전처리 장치의 구조 블록을 제시하는 도면이다.
본 개시의 목적, 기술 방안 및 장점을 보다 명확하게 하기 위해, 이하에서 첨부 도면 및 실시예를 결합하여 본 개시에 대해 보다 상세하게 설명한다. 본 명세서에 설명된 구체적인 실시예는 단지 본 개시를 설명하기 위한 것이며, 본 개시를 제한하는 것은 아닌 것으로 이해해야 한다. 본 개시의 청구 범위, 명세서 및 도면에서, 용어 "제1", "제2", "제3" 및 "제4"와 같은 용어는 다양한 개체들을 구별하기 위해 사용되는 것이고 특정 순서를 묘사하기 위해 사용되는 것은 아님을 이해해야 한다. 본 개시의 명세서와 청구 범위에서 사용되는 용어 "포함" 및 "함유"는 특징, 전체, 단계, 동작, 원소 및/또는 구성 요소의 존재를 나타내며, 하나 또는 복수의 기타 특징, 전체, 단계, 동작, 원소, 구성 요소 및/또는 그 집합의 존재 혹은 추가를 배제하지 않는다. 또한, 본 개시의 명세서에서 사용되는 용어는 단지 특정 실시예를 설명하기 위한 것이며, 본 개시를 제한하는 의도가 아님을 이해해야 한다. 본 개시의 명세서와 청구 범위에서 사용된 것과 같이, 앞뒤 문장에서 명확하게 기타 경우를 지적하지 않았다면, 단수 형태의 "일", "하나" 및 "이"는 복수 형태도 포함한다. 또한, 본 개시의 명세서와 청구 범위에서 사용된 용어 "및/또는"은 나열된 관련 항목 중 하나 또는 복수의 임의 조합 및 모든 가능한 조합을 가리키며, 이런 조합들을 포함한다는 것을 이해해야 한다. 본 개시의 명세서와 청구 범위에서 사용된 것과 같이, 용어 "만약"은 앞뒤 문맥에 따라 "…경우" 또는 "…하면" 또는 "확정에 대한 응답으로…" 또는 "검출에 대한 응답으로…"로 해석될 수 있다. 마찬가지로, 문구 "확정된다면" 또는 "[기술된 조건 또는 사건이] 검출된다면"은 앞뒤 문맥에 따라 "일단 확정되면" 또는 "확정에 대한 응답으로…" 또는 "[기술된 조건 또는 사건이] 일단 검출되면" 또는 "[기술된 조건 또는 사건이] 검출에 대한 응답으로…"로 해석될 수 있다. 도 1을 참조하면, 본 개시 실시예의 컴퓨터 설비는 프로세서(100), 제 1 메모리(200) 및 제 2 메모리(300)을 포함할 수 있다. 여기서, 제 1 메모리(200)는 프로세서(100)에 인접하여 배치될 수 있고, 프로세서(100)는 제 1 메모리(200)와 직접 데이터를 교환할 수 있고, 즉 프로세서(100)는 제 1 메모리(200)로부터 입력 데이터를 직접적으로 판독할 수 있으며, 상기 입력 데이터에 의해 얻어진 출력 데이터는 상기 제 1 메모리(200)에 기록될 수 있다. 상기 제 1 메모리(200)는 제 2 메모리(300)와 데이터 상호작용을 직접적으로 수행할 수 있고, 즉 상기 제 1 메모리(200)는 제 2 메모리(300)로부터 데이터를 직접 판독할 수도 있고, 상기 제 2 메모리(300)에 데이터를 기록할 수도 있다. 또한, 상기 제 1 메모리(200)의 액세스 속도는 제 2 메모리(300)의 액세스 속도보다 빠르고, 상기 제 1 메모리(200)의 저장 용량은 제 2 메모리(300)의 저장 용량보다 작다.
선택적으로, 상기 컴퓨터 설비는 휴대 전화 또는 태블릿 컴퓨터 등과 같은 모바일 단말기, 또는 데스크탑 컴퓨터, 보드, 클라우드 서버 등과 같은 단말기 일 수 있다. 물론, 상기 컴퓨터 설비는 클라우드 서버 및 휴대 전화 또는 컴퓨터 등 단말기에 의해 형성된 컴퓨터 시스템일 수도 있다. 상기 컴퓨터 설비는 로봇, 프린터, 스캐너, 블랙박스, 네비게이터, 카메라, 비디오 카메라, 프로젝터, 손목 시계, 휴대용 저장기기, 웨어러블 설비, 교통수단, 가전 제품 및/또는 의료 기기에 적용될 수 있다. 여기서 교통수단은 비행기, 선박 및/또는 차량을 포함할 수 있고; 가전 제품은 텔레비전, 에어컨, 전자 레인지, 냉장고, 전기 밥솥, 가습기, 세탁기, 조명, 가스 렌지, 레인지 후드를 포함할 수 있고; 의료 기기는 자기공명 기기, 초음파 기기 및/또는 심전도 기기 등을 포함할 수 있다. 선택적으로, 상기 제 1 메모리(200)는 내장 메모리일 수 있고, 상기 제 2 메모리(300)는 하드 디스크 등과 같은 외장 메모리일 수 있다. 예를 들어, 싱기 제 1 메모리(200)는 RAM(Random-Access Memory,랜덤 액세스 제 1 메모리(200)) 들일 수 있고, 제 2 메모리(300)는 DDR(Double Data Rate, 더블 데이터 레이트 동기식 다이내믹 랜덤 제 1 메모리(200)) 등일 수 있다. 선택적으로, 상기 제 1 메모리(200)는 상기 프로세서(100)와 일체로 통합될 수 있고 , 즉 상기 제 1 메모리(200)는 캐시 메모리(Cache)와 같은 온-칩 메모리일 수 있으며, 상기 제 2 메모리(300)는 내장 메모리와 같은 오프-칩 메모리 일 수 있고, 예를 들어 RAM 등이다. 선택적으로, 제 2 메모리(300)는 컴퓨터 설비가 특정 연산을 수행하기 필요한 데이터 및 컴퓨터 프로그램 등을 저장하도록 구성된다. 또한, 상기 데이터는 신경망 데이터 등과 같은 기계 학습 데이터 일 수 있다. 제 1 메모리(200)의 저장 용량이 보다 작기 때문에, 프로세서(100)가 특정 연산을 수행할 경우, 제 2 메모리(300)에 저장된 상기 특정 연산을 완료되기 위해 필요한 데이터를 제 1 메모리(200)에 기록하여, 프로세서(100)가 제 1 메모리(200)로부터 상기 특정 연산을 수행할 필요한 입력 데이터를 판독하여 연산을 수행할 수 있으며, 연산 결과를 제 1 메모리(200)에 기록한다. 일 실시예에서, 도 2를 참조하면, 해당 프로세서(100)는 제어기 유닛(110) 및 연산 유닛(110)을 포함할 수 있고, 여기서 제어기 유닛(110)과 연산 유닛(110)은 연결되고, 상기 연산 유닛(110)은 하나의 메인 프로세싱 회로(121) 및 복수의 슬레이브 프로세싱 회로(122)를 포함할 수 있고, 상기 메인 프로세싱 회로(121)와 슬레이브 프로세싱 회로(122)는 마스터-슬레이브 구조를 형성한다. 이에 대응하여, 상기 제 1 메모리(200)의 개수는 복수일 수 있고, 복수의 제 1 메모리(200)는 마스터-슬레이브 구조의 저장 시스템을 형성할 수 있다. 예를 들어, 복수의 제 1 메모리(200)는 하나의 메인 메모리와 복수의 슬레이브 메모리를 포함할 수 있고, 여기서, 상기 메인 메모리는 메인 프로세싱 회로에 인접하여 설치될 수 있고, 상기 슬레이브 메모리는 슬레이브 프로세싱 회로에 인접하여 설치될 수 있다. 선택적으로, 상기 메인 메모리는 메인 프로세싱 회로의 온-칩 메모리일 수 있으며, 상기 슬레이브 메모리는 슬레이브 프로세싱 회로의 온-칩 메모리 일 수 있다. 또한, 상기 메인 메모리의 저장 용량은 각 슬레이브 메모리의 저장 용량보다 작다. 또한, 슬레이브 프로세서 각각은 하나 이상의 슬레이브 메모리를 대응하여 설치할 수 있으며, 이에 구체적으로 제한되는 것은 아니다. 선택적으로, 전술한 제어기 유닛(110)은 데이터 및 계산 명령을 획득하도록 구성된다. 상기 데이터는 구체적으로 기계 학습 데이터를 포함할 수 있고, 선택적으로 상기 기계 학습 데이터는 신경망 데이터일 수 있다. 제어기 유닛(110)은 또한, 획득한 계산 명령을 분석하여 연산 명령을 획득하고, 복수의 연산 명령과 데이터를 메인 프로세싱 회로에 전송하도록 구성된다. 메인 프로세싱 회로(121)는 데이터 및 상기 메인 프로세싱 회로(121)와 복수의 슬레이브 프로세싱 회로(122) 사이에서 송신된 데이터 및 연산 명령에 대한 전처리를 수행하도록 구성된다. 복수의 슬레이브 프로세싱 회로(122)는 메인 프로세싱 회로(121)로부터 전송된 데이터 및 연산 명령에 따라 중간 연산을 수행하여 복수의 중간 결과를 획득하고, 복수의 중간 결과를 메인 프로세싱 회로(121)에 전송하도록 구성되며; 메인 프로세싱 회로(121)는 복수의 중간 결과에 대해 후속처리를 수행하여 계산 명령의 계산 결과를 획득하도록 구성된다. 상기 메인 프로세싱 회로(121)와 각 슬레이브 프로세싱 회로(122) 상에 모두 제 1 메모리가 집적되어 있고, 즉 복수의 제 1 메모리는 상기 메인 프로세싱 회로과 슬레이브 프로세싱 회로의 온-칩 메모리일 수 있고, 제 2 메모리는 상기 프로세서의 오프-칩 메모리일 수 있다.
선택적으로, 상기 제어기 유닛(110)은 명령 캐시 유닛(111), 명령 처리 유닛(112) 및 저장 큐 유닛(114)을 포함할 수 있으며; 명령 캐시 유닛(111)은 기계 학습 데이터와 연관된 계산 명령을 저장하도록 구성되며; 명령 처리 유닛(112)은 계산 명령에 대한 분석을 통해 복수의 연산 명령을 획득하도록 구성되며; 저장 큐 유닛(114)은 명령 큐를 저장하도록 구성되며, 상기 명령 큐는 큐의 앞뒤 순서로 실행될 복수의 연산 명령 또는 계산 명령을 포함한다. 선택적으로, 상기 제어기 유닛(110)은 복수의 연산 명령들이 존재할 때, 제 1 연산 명령이 제 1 연산 명령 앞의 제 0 연산 명령과 연관되는지 여부를 확정하기 위한 의존관계 처리 유닛(113)을 포함할 수 있고, 제 1 연산 명령이 제 0 연산 명령과 연관 관계가 있을 경우, 제 1 연산 명령은 명령 저장 유닛에 캐싱하고, 제 0 연산 명령의 실행이 완료된 후 명령 저장 유닛으로부터 제 1 연산 명령을 추출하여 연산 유닛에 전송한다. 구체적으로, 의존관계 처리 유닛(113)이 제 1 연산 명령에 의해 제 1 연산 명령에서 필요한 데이터(예를 들어, 매트릭스)의 제 1 저장 주소 구간을 추출하고, 제0연산 명령에 의해 제0연산 명령에서 필요한 데이터의 제0 저장 주소 구간을 추출하다면, 제 1 저장 주소 구간과 제0저장 주소 구간 사이 겹치는 영역이 있을 경우, 제 1 연산 명령과 제0연산 명령은 연관 관계가 있다고 확정하고, 제 1 저장 주소 구간과 제0저장 주소 구간 사이 겹치는 영역이 없을 경우, 제 1 연산 명령과 제0연산 명령은 연관 관계가 없다고 확정한다.
일 실시예에서, 도3에 제시된 바와 같이, 연산 유닛(120)은 브랜치 프로세싱 회로(123)을 더 포함할 수 있고, 여기서 메인 프로세싱 회로(121)와 브랜치 프로세싱 회로(123)는 연결되며, 브랜치 프로세싱 회로(123)는 복수의 슬레이브 프로세싱 회로(122)와 연결되고; 브랜치 프로세싱 회로(123)는 메인 프로세싱 회로(121)와 슬레이브 프로세싱 회로(122) 사이의 데이터 또는 명령을 전달하는 것을 수행하도록 구성된다. 본 실시예에서, 메인 프로세싱 회로(121)는 구체적으로 하나의 입력 신경원을 복수의 데이터 블록으로 분배하고, 복수의 데이터 블록 중의 적어도 하나의 데이터 블록, 가중치 및 복수의 연산 명령으로 이루어진 군으로분터 선택된 하나 이상의 연산 명령을 브랜치 프로세싱 회로에 전송하도록 구성되며; 브랜치 프로세싱 회로(123)는 메인 프로세싱 회로(121)와 복수의 슬레이브 프로세싱 회로(122) 사이의 데이터 블록, 가중치 및 연산 명령을 전달하는 데 사용되고; 복수의 슬레이브 프로세싱 회로(122)는 해당 연산 명령에 따라 획득된 데이터 블록 및 가중치에 대해 연산을 실행하여 중간 결과를 얻고, 그 중간 결과를 브랜치 프로세싱 회로(123)에 전송하도록 구성되며; 메인 프로세싱 회로(121)은 브랜치 프로세싱 회로에 의해 전송된 중간 결과에 대한 후속 처리를 진행하여 해당 계산 명령의 결과를 얻고, 해당 계산 명령의 결과는 상기 제어기 유닛으로 전송하도록 구성된다. 선택적으로, 각 브랜치 프로세싱 회로(123) 상에도 제 1 메모리가 집적되어 있다.
또 다른 실시예에서, 도 4에 제시된 바와 같이, 연산 유닛(120)은 하나의 메인 프로세싱 회로(121)와 복수의 슬레이브 프로세싱 회로(122)를 포함할 수 있다. 여기서, 복수의 슬레이브 프로세싱 회로는 어레이 형태로 분포되어 있고; 각 슬레이브 프로세싱 회로는 인접한 기타 슬레이브 프로세싱 회로와 연결되고, 메인 프로세싱 회로는 복수의 슬레이브 프로세싱 회로 중의 k개의 슬레이브 프로세싱 회로와 연결되고, k개의 슬레이브 프로세싱 회로는: 제 1 행의 n 개의 슬레이브 프로세싱 회로, 제 m 행의 n 개 슬레이브 프로세싱 회로 및 제 1 열의 m 개 슬레이브 프로세싱 회로이다. 도 1c에 표시된 바와 같이, k개의 슬레이브 프로세싱 회로는 제 1 행의 n 개 슬레이브 프로세싱 회로, 제 m 행의 n 개 슬레이브 프로세싱 회로 및 제 1열의 m 개 슬레이브 프로세싱 회로만 포함하고, 즉 상기 k개의 슬레이브 프로세싱 회로는 복수의 슬레이브 프로세싱 회로 중의 메인 프로세싱 회로에 직접적으로 연결된 슬레이브 프로세싱 회로이다. K개의 슬레이브 프로세싱 회로는 메인 프로세싱 회로와 복수의 슬레이브 프로세싱 회로 사이의 데이터 및 명령을 전달하도록 구성된다.
본 개시에 의해 제공되는 프로세서는 연산 유닛를 원 마스터-멀티 슬레이브 구조로 설치되여, 포워드 연산의 계산 명령에 대해, 포워드 연산의 계산 명령에 따라 데이터를 분할할 수 있고, 복수의 슬레이브 프로세싱 회로가 계산량이 많은 부분에 대해 병렬 연산을 진행함으로써, 연산 속도가 향상되고 연산 시간이 절약되어 전력 소모를 감소한다.
선택적으로, 상기 기계 학습 계산은 인공 신경망 연산을 포함할 수 있으며, 상기 입력 데이터는 입력 신경원 데이터 및 가중치 데이터를 포함할 수 있다. 상기 계산 결과는 구체적으로 인공 신경망 연산의 결과일 수 있고, 즉 출력 신경원 데이터일 수 있다.
신경망에서, 연산은 신경망 중 한층의 연산일 수 있고, 다층 신경망의 실현 과정으로서 포워드 연산인 경우, 윗 층의 인공 신경망 수행이 완료된 후, 다음 층의 연산 명령은 연산 유닛 내 산출된 출력 신경원을 다음 층의 입력 신경원으로 사용하여 연산을 진행하고(또는 상기 출력 신경원에 대해 특정 동작을 진행 후 다음 층의 입력 신경원으로 사용함), 한편 가중치도 다음 층의 가중치로 대체되며; 백워드 연산인 경우, 윗 층의 인공 신경망의 백워드 연산이 완료된 후, 다음 층의 연산 명령은 연산 유닛 내 산출된 입력 신경원 그래디언트를 다음 층의 출력 신경원 그래디언트로 사용하여 연산을 진행하고(또는 상기 입력 신경원 그래디언트에 대해 특정 동작을 진행 후 다음 층의 출력 신경원으로 사용함), 한편 가중치 또한 다음 층의 가중치로 대체한다.
상기 기계 학습 계산은 추가로 서포트 벡터 머신 연산, K-근접(K-nn) 연산, K-평균치(K-means) 연산, 주성분 분석 연산 등을 포함할 수 있다. 설명의 편의를 위해 다음은 인공 신경망 연산을 예로 기계 학습 계산의 상세 방안을 설명한다.
인공 신경망 연산에 대해, 상기 인공 신경망 연산이 다층의 연산을 갖고 있을 경우, 다층 연산의 입력 신경원과 출력 신경원은 전체 인공 신경망의 입력층 신경원과 출력층 신경원이 아니라, 네크워크 내의 임의 인접한 두 층에서 네트워크 포워드 연산의 하위 층에 있는 신경원은 입력 신경원이고, 네트워크 포워드 연산의 상위 층에 있는 신경원은 출력 신경원이다. 컨벌루션 신경망을 예로 들어, 하나의 컨벌루션 신경망이 L층이 있을 경우, K=1,2,…,L-1, 제K층과 제K+1층에 있어서, 제K층을 입력층으로 지칭하고, 이 중의 신경원은 상기 입력 신경원이며, 제K+1층을 출력층으로 지칭하고, 이 중의 신경원은 상기 출력 신경원이다. 즉, 최상위 층을 제외하고 모든 층은 입력층로 사용할 수 있으며, 그 다음 층은 대응된 출력층이다.일 실시예에서, 제 2 메모리는 컴퓨터 프로그램을 저장하도록 구성되며, 상기 프로세서가 상기 컴퓨터 프로그램을 실행할 경우, 본 개시 실시예의 데이터 전처리 방법을 구현할 수 있어, 상기 처리하고자 하는 연산의 수행 과정에서 각 데이터의 저장 공간 분배 규칙을 얻을 수 있다. 구체적으로, 상기 컴퓨터 설비는 다음과 같은 데이터 전처리 방법을 수행하도록 구성될 수 있으며, 처리하고자 하는 연산(예를 들면, 신경망 연산 등)에 대해 전처리를 수행하여, 제 1 메모리 상에서 상기 처리하고자 하는 연산의 입력 데이터, 출력 데이터 및 중간 계산 결과 등 데이터의 데이터 저장 공간 분배 규칙을 획득한다. 따라서, 상기 프로세서가 해당 처리하고자 하는 연산을 실행할 때, 상기 처리하고자 하는 연산에 관련된 데이터(입력 데이터, 출력 데이터, 중간 결과 등)는 상기 저장 공간 분배 규칙에 따라 제 1 메모리에 저장할 수 있다. 이와 같이, 연산 과정에서 저장 자원을 미리 분배함으로써, 제 1 메모리의 저장 공간을 합리적으로 이용할 수 있을 뿐만 아니라, 처리의 연산 속도 및 정밀도를 향상시킬 수 있다. 여기서, 상기 저장 공간 분배 규칙은 처리하고자 하는 연산을 수행하는 과정에서의 입력 데이터의 저장 주소, 출력 데이터의 저장 주소, 중간 계산 결과의 저장 주소 및 각 저장 공간내 저장된 데이터의 업데이트 규칙 등을 포함할 수 있다. 구체적인 내용은 아래 설명을 참조할 수 있다. 본 개시의 실시예에서는, 연산 과정에서의 데이터 리드-라이트 동작(즉, I/O 동작 횟수의 감소)을 감소시키기 위한, 데이터 전처리 방법을 제공하며, 상기 데이터 전처리 방법은 상기 컴퓨터 설비에 적용될 수 있다. 구체적으로, 도 5에 제시된 바와 같이, 상기 데이터 전처리 방법은 하기 단계를 포함할 수 있다 :
S100단계: 제 1 메모리의 가용 저장 용량 및 목표 연산 동작을 얻는다.
구체적으로, 프로세서는 상기 제 1 메모리의 구성 정보(예를 들어, 상기 제 1 메모리의 모델번호 등 정보)에 따라 상기 제 1 메모리의 총 저장 용량을 획득할 수 있다. 또한, 프로세서는 상기 제 1 메모리의 총 저장 용량 및 상기 제 1 메모리상의 점유된 저장 용량에 따라, 상기 제 1 메모리의 가용 저장 용량을 획득할 수 있다.
본 개시의 실시예에서, 프로세서는 처리하고자 하는 연산을 획득하고, 상기 처리하고자 하는 연산 및 제 1 메모리의 가용 저장 용량에 따라 목표 연산 동작을 확정할 수 있다. 여기서, 상기 처리하고자 하는 연산은 하나 이상의 연산 동작을 포함할 수 있고, 상기 처리하고자 하는 연산은 신경망과 같은 연산일 수 있다. 예를 들어, 상기 처리하고자 하는 연산은 덧셈 동작, 뺄셈 동작, 곱셈 동작, 나눗셈 동작, 컨벌루션 동작, 풀링(Pooling) 동작 및 활성화(예 : Relu) 동작 등의 연산 동작을 포함할 수 있으며, 여기서 구체적인 제한은 하지 않는다. 상기 목표 연산 동작은 처리하고자 하는 연산에서에서 하나 이상의 연산 동작의 조합 일 수 있다.
S200단계: 목표 연산 동작 및 제 1 메모리의 가용 저장 용량에 따라, 목표 연산 동작에 대응하는 목표 입력 데이터를 확정한다. 여기서, 목표 입력 데이터는 목표 연산 동작에 대응하는 모든 입력 데이터의 일부 또는 전부이다.
구체적으로, 프로세서는 상기 목표 연산 동작에 따라 상기 목표 연산 동작이 완료되기 필요한 모든 입력 데이터 및 상기 전체 입력 데이터의 데이터 용량(즉, 상기 전체 입력 데이터에 수용되는 저장 공간 크기)을 확정할 수 있다. 또한, 프로세서는 제 1 메모리의 가용 저장 용량 및 상기 목표 연산 동작의 모든 입력 데이터의 데이터 용량에 따라, 상기 목표 연산 동작에 대응하는 목표 입력 데이터 및 그 데이터 용량을 확정할 수 있고, 상기 목표 입력 데이터의 데이터 용량은 제 1 메모리의 저장 용량보다 작거나 같다. 여기서, 상기 목표 입력 데이터는 목표 연산 동작에 대응하는 모든 입력 데이터의 일부 또는 전부이고, 즉 상기 목표 입력 데이터의 데이터 용량은 목표 연산 동작에 대응하는 모든 입력 데이터의 데이터 용량보다 작거나 같다. 목표 입력 데이터의 데이터 용량이 목표 연산 동작에 대응하는 모든 입력 데이터의 데이터 용량보다 작을 경우, 상기 목표 연산 동작에 대응하는 모든 입력 데이터의 일부만 제 1 메모리 상에 로딩함으로써, 제 1 메모리 상에 일정 일부의 저장 공간이사전 보류되어, 상기 목표 연산 동작의 목표 출력 데이터 및 중간 계산 결과 등과 같은 데이터를 저장하도록 구성될 수 있다. 목표 입력 데이터의 데이터 용량이 목표 연산 동작에 대응하는 모든 입력 데이터의 데이터 용량과 같을 경우, 저장 공간에 대한 중복 사용을 통해 상기 목표 연산 동작의 목표 출력 데이터 및 중간 계산 결과 등과 같은 데이터를 저장할 수 있다.
S300단계: 목표 연산 동작 및 목표 입력 데이터에 따라, 목표 연산 동작의 목표 출력 데이터를 확정한다.
구체적으로, 처리하고자 하는 연산의 계산량은 정적 분석 가능하기에, 프로세서는 상기 목표 연산 동작의 목표 입력 데이터 및 상기 목표 연산 동작에 따라, 상기 목표 연산 동작의 목표 출력 데이터 및 상기 목표 출력 데이터의 데이터 용량 등 정보를 얻을 수 있고, 즉 프로세서는 상기 목표 연산 동작의 목표 출력 데이터에 필요한 저장 공간을 얻을 수 있다.
S400단계: 목표 연산 동작의 목표 출력 데이터가 상기 목표 연산 동작 후의 기타 연산 동작의 입력 데이터인 경우, 상기 목표 출력 데이터가 제 1 메모리 상에 저장되어, 목표 출력 데이터의 판독 횟수를 줄인다.
구체적으로, 상기 목표 연산 동작의 목표 출력 데이터가 상기 목표 연산 동작 후의 기타 연산 동작의 입력 데이터인 경우, 즉 상기 목표 연산 동작 후 여전히 상기 목표 출력 데이터가 필요할 경우, 상기 목표 출력 데이터를 상기 제 1 메모리 상에 저장할 수 있고, 목표 출력 데이터의 판독 횟수를 감소시킴으로써 프로세서의 속도 및 효율을 향상시킨다.
종래의 기술에서, 프로세서가 상기 목표 연산 동작을 수행하여 상기 목표 출력 데이터를 얻은 후, 프로세서는 상기 목표 출력 데이터를 제 1 메모리에서 제 2 메모리로 전송함으로써, 상기 목표 출력 데이터가 제 1 메모리에서 점유했던 저장 공간을 해제한다. 상기 목표 연산 동작 후의 연산 동작은 상기 목표 출력 데이터가 계속 사용할 필요가 있을 경우, 프로세서는 상기 목표 출력 데이터를 제 2 메모리에서 제 1 메모리에 다시 전송할 필요가 있고, 이러한 방법은 목표 출력 데이터의 I/O 판독 동작을 여러번 수행할 필용가 있음으로써, 연산 시간의 증가를 초래하기 쉬워서, 프로세서의 효율 및 속도가 보다 낮게 된다. 본 개시 실시예의 데이터 전처리 방법은, 종래의 기술에 비하여 목표 출력 데이터의 판독 횟수를 감소시킴으로써, 연산 과정에서의 I/O 판독 동작의 점유 시간을 단축할 수 있어, 프로세서의 속도 및 효율을 향상시킬 수 있다. 예를 들어, 도 8에 제시된 바와 같이, 프로세서는 목표 연산 동작 OP1을 얻을 수 있고, 상기 목표 연산 동작 OP1의 모든 입력 데이터는 입력 데이터 X이다(X는 서브 입력 데이터 X11, X21, X12 및 X22를 포함하며, 여기서, 서브 입력 데이터X11 및 X12는 입력 데이터X1을 구성할 수 있고, 서브 입력 데이터X21 및 X22는 입력 데이터X2를 구성할 수 있고, 상기 입력 데이터 X1 및 X2는 벡터 또는 매트릭스 데이터 등일 수 있다). 프로세서는 상기 목표 연산 동작 OP1과 제 1 메모리의 가용 저장 용량에 따라, 서브 입력 데이터 X11 및 X21을 상기 목표 연산 동작 OP1의 목표 입력 데이터로 사용할 수 있다. 또한, 상기 프로세서는 목표 연산 동작(OP1) 및 목표 입력 데이터 X11 및 X21에 따라 목표 출력 데이터 Y1 및 상기 목표 출력 데이터 Y1의 데이터 용량을 확정할 수 있다. 또한, 프로세서는 설정된 연산 규칙에 따라, 목표 연산 동작 OP1 후의 기타 연산 동작에서 상기 목표 출력 데이터 Y1을 사용할 필요한지 여부를 확정할 수 있고, 목표 연산 동작 OP1 후의 기타 연산 동작에서 상기 목표 출력 데이터 Y1이 사용될 필요가 있을 경우, 상기 목표 출력 데이터(Y1)이 목표 연산 동작 OP1 후의 기타 연산 동작(OP2)의 입력 데이터이다면, 상기 목표 출력 데이터Y1은 제 1 메모리 상에 일시적으로 저장된다. 따라서, 다음 목표 연산 동작이 연산 동작 OP2일 경우, 프로세서는 다음 연산 동작 OP2를 수행하기 전에, 설정된 규칙에 따라 상기 연산 동작 OP2에 필요한 입력 데이터 Y3만 제 2 메모리로부터 제 1 메모리에 전송하면 되고, 더 이상 상기 목표 출력 데이터 Y1의 전송 단계를 수행할 필요가 없다. 또한, 상기 목표 출력 데이터 Y1은 목표 연산 동작 OP1 후의 연산 동작 OP2의 입력 데이터인 경우, 한편 상기 목표 출력 데이터 Y1은 연산 동작 OP3의 입력 데이터이다. 이런 경우, 상기 목표 출력 데이터 Y1을 제 1 메모리 상에 저장하고, 연산 동작 OP2와 OP3이 완료된 다음, 상기 목표 출력 데이터 Y1을 제 1 메모리에서 삭제하여 목표 출력 데이터 Y1가 점유하였던 제 1 메모리의 저장 공간을 해제할 수 있다.본 개시 실시예의 데이터 전처리 방법은, 연산 동작OP1의 계산 종료후, 목표 출력 데이터 Y1을 제 1 메모리로부터 제 2 메모리에 전송하는 과정. 및 연산 동작 OP2를 수행할 때 목표 출력 데이터 Y1을 다시 제 2 메모리로부터 제 1 메모리에 전송하는 과정을 감소시켜, 목표 출력 데이터의 판독 횟수를 감소시킴으로써, 연산 과정에서의 I/O 판독 동작의 점유 시간을 단축할 수 있어, 프로세서의 속도 및 효율을 향상시킬 수 있다. 선택적으로, 전술한 처리하고자 하는 연산은 복수의 연산 계층을 포함하는 신경망 연산일 수 있으며, 도8에 제시된 바와 같이, 상기 연산 동작 OP1 및 OP2는 신경망 연산 중의 연산 계층일 수 있다. 전술힌 입력 데이터 X는 입력 신경원 데이터 및 가중치 데이터 등을 포함할 수 있고, 그는 입력 데이터 X1 및 X2를 포함할 수 있다. 선택적으로, 상기 입력 데이터 X1 및 X2는 각각 기타 연산 계층에 속할 수 있다. 또한, 프로세서는 상기 목표 연산 계층(OP1) 및 제 1 메모리의 가용 저장 용량에 따라, 서브 입력 데이터X11 및 X21)를 상기 목표 연산 계층(OP1)의 목표 입력 데이터로 사용할 수 있다. 또한, 상기 프로세서는 목표 연산 계층(OP1) 및 목표 입력 데이터 X11과 X21에 따라, 목표 출력 데이터 Y1 및 목표 출력 데이터 Y1의 데이터 용량을 확정할 수 있고, 상기 목표 출력 데이터 Y1은 연산 계층(OP1)의 출력 데이터의 일부이며, 상기 출력 데이터는 연산 계층(OP1)의 출력 신경원 데이터 및 가중치 등을 포함할 수 있다.기타 예로, 도 9에 제시된 바와 같이, 상기 처리하고자 하는 연산은 신경망 연산이고, 상기 처리하고자 하는 연산은 컨벌루션 계층, 풀링 계층 및 활성화 계층을 포함할 수 있으며, 전술한 각 연산 계층의 실행 순서는 차례로 컨벌루션 연산 동작 - 풀링 연산 동작 - 활성화 연산 동작이다. 즉, 컨벌루션 연산 동작의 출력 데이터는 풀링 연산 동작의 입력 데이터이고, 풀링 연산 동작의 출력 데이터는 활성화 연산 동작의 입력 데이터이다. 각 연산 계층의 입력 데이터는 상기 연산 계층에 대응하는 입력 신경원 데이터 및 가중치 등 데이터를 포함할 수 있다. 현재 목표 연산 동작이 풀링 연산 동작인 경우, 프로세서는 제 1 메모리의 가용 저장 용량 및 목표 연산 동작에 따라, 상기 풀링 연산 동작에 대응하는 C1-C2구간내의 데이터인 목표 입력 데이터를 얻을 수 있다(C1-C2구간내 데이터는 컨벌루션 연산 동작의 출력 데이터를 나타내며, 컨벌루션 연산 동작에 대응하는 출력 신경원 데이터 및 가중치 등을 포함할 수 있다). 상기 목표 입력 데이터 C1-C2에 대응하는 목표 출력 데이터는 B1-B2구간내의 데이터이다(여기서, B1-B2구간내의 목표 출력 데이터는 풀링 연산 동작에 대응하는 출력 신경원 데이터 및 가중치 등을 포함할 수 있다). 또한, 상기 풀링 연산 동작에 대응하는 목표 출력 데이터(B1-B2)가 활성화 연산 동작의 입력 데이터이기 때문에, 상기 풀링 연산 동작의 목표 출력 데이터(B1-B2)를 제 1 메모리에 저장할 수 있다. 따라서, 풀링 연산 동작이 완료된 후에, 목표 출력 데이터(B1-B2)를 제 1 메모리로부터 제 2 메모리로 운반하여 제 1 메모리상의 저장 공간을 해제할 필요가 없다. 또한, 활성화 연산 동작을 수행하기 전에 목표 출력 데이터(B1-B2)를 제 2 메모리로부터 제 1 메모리로 다시 전송할 필요도 없다.종래 기술에서, 프로세서가 목표 출력 데이터(B1-B2)를 획득한 후에, 우선 상기 목표 출력 데이터(B1-B2)를 제 1 메모리로부터 제 2 메모리로 전송하여 제 1 메모리의 저장 공간을 해제시킨다. 활성화 연산 동작의 입력 데이터는 풀링 연산 동작의 출력 데이터에 의존하기 때문에, 프로세서가 활성화 연산 동작을 수행하기 전 상기 풀링 연산 동작에 대응하는 목표 출력 데이터B1-B2인 데이터 블록을 다시 제 2 메모리로부터 제 1 메모리로 전송할 수 있다. I/O 대역폭이 제한된 경우, 이와 같은 빈번한 데이터 판독 동작은 프로세서의 처리 효율성에 영향을 미친다. 따라서, 현존 기술에 비해, 본 개시 실시예의 데이터 전처리 방법으로서, 목표 출력 데이터의 판독 횟수를 감소시킴으로써(즉 목표 출력 데이터의 load 및 store 동작을 감소시킨다), 연산 과정에서의 I/O 판독 동작의 점유 시간을 단축할 수 있어, 프로세서의 속도 및 효율을 향상시킬 수 있다.
일 실시예에서, 상기 방법은 추가로 하기 단계를 포함한다:
목표 연산 동작의 목표 출력 데이터가 목표 연산 동작 후의 기타 연산 동작의 입력 데이터인 경우(즉, 상기 목표 연산 동작의 목표 출력 데이터가 상기 처리하고자 하는 연산의 중간 결과 데이터이다), 상기 목표 연산 동작의 목표 출력 데이터를 제 1 메모리 또는 제 1 메모리와 제 2 메모리 상에 저장한다. 구체적으로, 목표 연산 동작의 목표 출력 데이터가 목표 연산 동작 후의 기타 연산 동작의 입력 데이터인 경우, 목표 출력 데이터를 제 1 메모리에 저장하여, 상기 목표 출력 데이터의 중복 로딩 동작을 감소시킬 수 있다(즉, 목표 출력 데이터의 load 동작을 감소). 한편, 상기 목표 출력 데이터를 제 1 메모리로부터 제 2 메모리로 복사할 수 있어서, 제 1 메모리와 제 2 메모리 상의 데이터 일관성을 보장한다. 선택적으로, 상기 목표 연산 동작에 대응하는 목표 출력 데이터를 제 2 메모리에 동기화 저장할 필요가 있는지 여부는 구체적인 연산 수요에 따라 결정될 수 있다.상기 목표 출력 데이터를 제 2 메모리에 동기화 저장하는 것이 불필요한 경우, 상기 목표 출력 데이터를 제 1 메모리에만 저장함으로써, 목표 출력 데이터의 load 및 store 동작을 함께 감소시킬 수 있다. 상기 목표 출력 데이터를 제 2 메모리에 동기화 저장이 필요할 경우, 목표 출력 데이터를 제 1 메모리와 제 2 메모리 상에 동기화 저장할 수 있고, 상기 목표 출력 데이터의 load 동작을 감소킴으로써, 데이터의 판독 동작이I/O 대역폭을 과도하게 점유하여 프로세서의 처리 속도에 영향을 미치는 경우를 피할 수 있다.도8을 참조하면, 목표 연산 동작 OP1 후의 기타 연산 동작에서 상기 목표 출력 데이터 Y1를 사용할 필요가 있을 경우, 상기 목표 출력 데이터(Y1)이 목표 연산 동작 OP1 후의 기타 연산 동작(OP2)의 입력 데이터라면, 상기 목표 출력 데이터(Y1)는 제 1 메모리 상기에 일시적으로 저장된다. 따라서, 다음 목표 연산 동작이 연산 동작 OP2일 경우, 프로세서는 다음 연산 동작 OP2를 수행하기 전에, 설정된 규칙에 따라 상기 연산 동작 OP2에서 필요한 입력 데이터 Y3만 제 2 메모리로부터 제 1 메모리에 전송하고, 더 이상 상기 목표 출력 데이터(Y1)에 대한 전송 단계를 수행할 필요가 없다. 또한, 프로세서는 제 1 메모리 및 제 2 메모리의 데이터가 일치하도록 목표 출력 데이터(Y1)를 제 1 메모리로부터 제 2 메모리에 복사할 수도 있다. 따라서, 본 개시 실시예의 데이터 전처리 방법은, 연산 동작OP1의 계산 종료 후에, 목표 출력 데이터 Y1을 제 1 메모리로부터 제 2 메모리에 전송하는 과정을 감소시켜, 목표 출력 데이터의 판독 횟수를 감소시킴으로써, 연산 과정에서의 I/O 판독 동작의 점유 시간을 단축할 수 있어, 프로세서의 속도 및 효율을 향상시킬 수 있다.도9를 참조하면, 상기 풀링 연산 동작에 대응하는 목표 출력 데이터 B1-B2가 활성화 연산 동작의 입력 데이터이기 때문에, 상기 풀링 연산 동작에 대응하는 목표 출력 데이터 B1-B2를 함께 제 1 메모리와 제 2 메모리 상에 저장할 수 있다. 따라서, 활성화 연산 동작을 수행하기 전에 상기 목표 출력 데이터 B1-B2를 제 2 메모리로부터 제 1 메모리로 다시 전송할 필요가 없다. 한편, 풀링 연산 동작이 완료된 후에, 목표 출력 데이터B1-B2가 제 1 메모리로부터 제 2 메모리로 복사되어 제 1 메모리와 제 2 메모리의 데이터의 일관성을 보장할 수 있다. 현존 기술에 비해, 본 개시 실시예의 데이터 전처리 방법은, 목표 출력 데이터 B1-B2를 제 2 메모리로부터 제 1 메모리에 재전송하는 과정을 감소시켜, 목표 출력 데이터의 판독 횟수를 감소시킴으로써, 연산 과정에서의 I/O 판독 동작의 점유 시간을 단축할 수 있어, 프로세서의 속도 및 효율을 향상시킬 수 있다. 일 실시예에서, 처리하고자 하는 연산의 각 목표 연산 동작에 필요한 모든 입력 데이터의 데이터 용량이 모두 보다 크기 때문에, 프로세서는 각 목표 연산 동작과 관련된 모든 입력 데이터를 분할할 수 있다. 즉, 제 1 메모리의 가용 저장 용량에 따라, 각 목표 연산 동작에 관련된 모든 입력 데이터(입력 신경원 데이터 및 가중치 등을 포함함)를 복수의 입력 데이터 블록으로 분할할 수 있고, 각 입력 데이터 블록에 대해 상기 목표 연산 동작을 각각 수행하여, 해당 목표 연산 동작의 계산 결과를 얻는다. 마지막으로, 각 입력 데이터 블록에 대응하는 계산 결과를 융합시킴으로써, 상기 목표 연산 동작에 대응하는 출력 데이터를 얻을 수 있다. 상기 입력 데이터 블록은 바로 상기 목표 입력 데이터이고, 각 입력 데이터 블록에 대응하는 출력 데이터는 바로 상기 목표 출력 데이터이다. 선택적으로, 전술한 S200 단계에 하기 내용이 구체적으로 포함된다: 프로세서는 제 1 메모리의 가용 저장 용량과 상기 목표 연산 동작에 필요한 전부 입력 데이터의 데이터 용량에 따라, 상기 목표 연산 동작에 대응하는 입력 데이터 블록을 확정할 수 있고, 상기 입력 데이터 블록을 상기 목표 연산 동작에 대응하는 목표 입력 데이터로 사용한다. 구체적으로는, 상기 목표 연산 동작에 필요한 전부 입력 데이터의 데이터 용량이 상기 제 1 메모리의 가용 저장 용량보다 큰 경우, 프로세서는 제 1 메모리의 가용 저장 용량에 따라 상기 목표 연산 동작에 대응하는 입력 데이터 블록을 확정할 수 있고, 상기 입력 데이터 블록은 상기 목표 연산 동작의 전부 입력 데이터의 일부이다. 상기 목표 연산 동작에 필요한 전부 입력 데이터의 데이터 용량이 상기 제 1 메모리의 가용 저장 용량보다 작거나 같은 경우, 상기 목표 연산 동작의 전부 입력 데이터를 하나의 입력 데이터 블록으로 사용할 수 있고, 즉 상기 목표 연산 동작의 전부 입력 데이터를 목표 입력 데이터로 사용한다.
예를 들어, 도 8에 제시된 바와 같이, 프로세서는 현재의 목표 연산 동작 OP1을 얻을 수 있고, 상기 목표 연산 동작 OP1의 모든 입력 데이터는 모든 입력 데이터 X(X는 입력 데이터 X1및 X2를 포함)이다. 프로세서는, 상기 목표 연산 동작 OP1과 제 1 메모리의 가용 저장 용량에 따라, 상기 서브 입력 데이터 X21 및 상기 서브 입력 데이터 X21을 상기 목표 연산 동작 OP1의 목표 입력 데이터로 사용하고, 여기서 상기 서브 입력 데이터 X11과 서브 입력 데이터 X21의 데이터 용량의 합은 제 1 메모리의 가용 저장 용량보다 작다. 물론, 기타 실시예에서, 상기 목표 연산 동작에 대응하는 모든 입력 데이터 X의 데이터 용량이 제 1 메모리의 가용 저장 용량보다 작은 경우, 상기 목표 연산 동작에 대응하는 모든 입력 데이터를 모두 제 1 메모리에 로딩할 수 있다. 기타 예로서, 도 9에 제시된 바와 같이, 현재 목표 연산 동작이 풀링 연산 동작인 경우, 프로세서는 목표 연산 동작제 1 메모리의 가용 저장 용량 및 목표 연산 동작에 따라, C1-C2구간 내의 데이터(C1-C2구간 내의 데이터는 컨벌루션 연산 동작의 출력 데이터를 나타낸다) 를 하나의 입력 데이터 블록으로 사용할 수 있고, 상기 입력 데이터 블록을 상기 풀링 연산 동작에 대응하는 목표 입력 데이터로 사용한다. 현재 목표 연산 동작이 활성화 연산 동작 인 경우, 프로세서는 제 1 메모리의 가용 저장 용량에 따라, B1-B2구간 내의 데이터를 상기 활성화 연산 동작의 입력 데이터 블록으로 사용할 수 있고, 상기 입력 데이터 블록을 상기 활성화 연산 동작의 목표 입력 데이터로 사용한다. 일 실시예에서, 각 목표 연산 동작에 관련된 전부 입력 데이터가 복수의 입력 데이터 블록들로 분할되면, 각 입력 데이터 블록의 데이터 용량은 제 1 메모리의 저장 용량보다 작기 때문에, 상기 목표 연산 동작은 처리하고자 하는 연산의 복수의 연산 동작을 융합할 수 있어서, 제 1 메모리의 저장 공간을 최대한 이용하고 연산의 효율을 향상시킨다. 선택적으로, 상기 목표 연산 동작은 하나 이상의 연산 동작을 포함하고, 즉 상기 목표 연산 동작은 하나 이상의 연산 동작의 조합이다. 일반적으로, 상기 목표 연산 동작에 포함되는 각 연산 동작은 서로 기타 연산을 구현하기 위한 기타 연산 동작이다. 여기서, 프로세서는 제 1 메모리의 가용 저장 용량에 따라 각 연산 동작에 대응하는 서브 목표 입력 데이터를 확정할 수 있고, 각 연산 동작에 대응하는 서브 목표 입력 데이터에 따라 상기 목표 연산 동작에 대응하는 목표 입력 데이터를 확정할 수 있다. 구체적으로, 도 6을 참조하면, 상기 S200단계에서 목표 연산 동작에 대응하는 입력 데이터 블록을 확정하는 단계에 추가로 하기 단계를 포함한다.
S210단계: 제 1 메모리의 가용 저장 용량 및 각 연산 동작의 융합 속성에 따라, 융합 가능한 연산 동작의 수량을 확정하고 융합 수량 역치를 얻는다. 여기서, 각 연산 동작의 융합 속성은 각 연산 동작과 관련된 입력 데이터 및/또는 출력 데이터 간의 데이터 의존관계를 포함할 수 있다. 하나 또는 복수의 연산 동작이 프로세서에 의해 함께 수행될 수 있을 겨우, 상기 하나 또는 복수의 연산 동작은 융합될 수 있고, 융합도가 비교적 높다고 간주한다. 하나 또는 복수의 연산 동작이 프로세서에 의해 함께 수행될 수 없을 경우, 상기 하나 또는 복수의 연산 동작은 융합될 수 없고 융합도가 낮다고 간주한다. 각 연산 동작 간의 융합도는 미리 설정된 연산 규칙에 의해 결정될 수 있으며, 여기서 구체적인 제한은 하지 않는다.
S220단계: 하나 이상의 연산을 융합할 수 있고, 수량이 선정된 조합을 하나의 목표 연산 동작으로 사용하고, 여기서, 상기 선정된 수량은 융합 수량 역치 이하이다.
예를 들어, 상기 선정된 수량이 융합 수량 역치와 같고 제 1 메모리의 저장 용량에 따라 확정한 융합될 수 있는 복수의 연산 동작은 하나의 목표 연산 동작인 것과 같다.
S230단계: 상기 수량이 선정된 연산 동작 각각에 대응하는 서브 목표 입력 데이터를 상기 목표 연산 동작에 대응하는 목표 입력 데이터로 사용한다.
예를 들어, 도 8에 제시된 바와 같이, 처리하고자 하는 연산은 연산 동작 OP1 및 OP2를 포함할 수 있고, 2개의 연산 동작의 융합 속성에 따라, 상기 연산 동작 OP1 및 OP2는 프로세서에 의해 함께 실행될 수 있고, 제 1 메모리의 가용 저장 용량이 연산 동작 OP1의 목표 입력 데이터와 목표 출력 데이터, 및 연산 동작 OP2의 입력 데이터와 출력 데이터를 저장할 수 있을 경우, 상기 목표 연산 동작의 융합 가능한 연산 동작의 수량은 2개로 일 수 있으며, 여기서, 상기 연산 동작 OP1 및 OP2를 하나의 목표 연산 동작으로 사용할 수 있다. 한편, 상기 연산 동작 OP1 및 OP2에 대응하는 서브 목표 입력 데이터 X11, X21 및 Y3은 상기 목표 연산 동작의 목표 입력 데이터로 사용된다. 연산 동작 OP1 및 OP2가 융합될 수는 있지만, 제 1 메모리의 가용 저장 용량이 연산 동작 OP1의 목표 입력 데이터와 목표 출력 데이터만 수용할 수 있고, 연산 동작 OP2의 입력 데이터와 출력 데이터는 전부 수용할 수 없을 경우, 상기 목표 연산 동작의 융합 가능한 연산 동작의 수량은 1개로 일 수 있고, 여기서, 상기 연산 동작 OP1을 하나의 목표 연산 동작으로 사용할 수 있다. 한편, 상기 연산 동작 OP1에 대응하는 서브 목표 입력 데이터 X11, X21은 상기 목표 연산 동작의 목표 입력 데이터로 사용된다. 물론, 기타 실시예에서, 상기 목표 연산 동작은 2개 이상의 연산 동작을 포함할 수 있다. 예를 들면, 상기 처리하고자 하는 연산의 깊이 방향에서, 상기 연산 동작 OP2 후에 융합 가능한 기타 연산 동작이 존재하고, 상기 융합 가능한 연산 동작에 대응하는 목표 입력 데이터 및 목표 출력 데이터의 데이터 용량이 제 1 메모리의 가용 저장 용량에 만족할 수 있을 경우, 상기 목표 연산 동작에 포함된 연산 동작의 수량은 OP1, OP2 및 OPn(n은 2보다 크고, n은 자연수이다)일 수 있다. 여기서, OP1, OP2 및 OPn에 대응하는 목표 입력 데이터의 데이터 및 목표 출력 데이터의 데이터 용량의 합은 제 1 메모리의 가용 저장 용량보다 작거나 같다. 또한, 상기 처리하고자 하는 연산은 복수의 연산 계층을 포함하는 신경망 연산일 수 있으며, 각 연산 계층은 하나의 연산 동작을 나타낼 수 있다. 예를 들면, 프로세서가 신경망 등에 대해 연산을 진행하는 경우, 신경망의 각 연산 계층은 모두 하나의 연산 동작일 수 있고, 상기 신경망의 각 연산 계층의 연결 관계에 따라 각 연산 동작의 융합 속성을 확정할 수 있고, 즉 신경망의 각 연산 계층간의 연결 관계에 따라 어느 연산 계층들이 융합되는지와 융합 가능한 연산 계층의 수량을 확정할 수 있고, 상기 하나 이상의 연산 계층을 융합할 수 있는 조합을 하나의 목표 연산 동작으로 사용한다. 이와 같이, 신경망의 깊이 방향에서 복수의 연산 계층을 융합하여 하나의 목표 연산 동작으로 사용함으로써, 연산 횟수 및 데이터 판독 횟수를 감소시킬 수 있어, 프로세서의 처리 효율을 더욱 향상시킬 수 있다.
예를 들어, 도 9에 제시된 바와 같이, 상기 신경망의 각 연산 계층의 연결 관계에 따라 상기 신경망의 깊이 방향에서 컨벌루션 연산 동작, 풀링 연산 동작 및 활성화 연산 동작이 융합될 수 있는 것을 확정할 수 있다. 여기서, 프로세서는 제 1 메모리의 가용 저장 용량, 및 각 연산 동작의 목표 입력 데이터 용량 등에 따라 융합 수량 역치를 확정할 수 있다. 구체적으로, 제 1 메모리의 가용 저장 용량이 풀링 연산 동작의 목표 입력 데이터 C1-C2, 및 활성화 연산 동작의 목표 입력 데이터 B1-B2를 수용할 수 있을 경우, 상기 융합 수량 역치는 2개로 확정할 수 있고, 상기 풀링 연산 동작 및 활성화 연산 동작은 하나의 목표 연산 동작인 것과 같다. 여기서, 상기 목표 연산 동작의 목표 입력 데이터는 C1-C2 구간 내의 데이터일 수 있다. 기타 실시예에서, 상기 목표 연산 동작은 컨벌루션 연산 동작, 풀링 연산 동작 및 활성화 연산 동작의 융합일 수도 있다. 또는, 상기 활성화 연산 동작 후에 기타 연산 동작이 수행될 때, 상기 목표 연산 동작은 제 1 메모리의 가용 저장 용량에 따라 더 많은 연산 동작을 계속 융합할 수 있다. 예를 들어, 상기 신경망은 N개 연산 계층을 포함할 수 있으며, 프로세서는 상기 제 1 메모리의 가용 저장 용량에 따라 융합 역치가 n 개임을 확정할 수 있고(단, n은 1보다 크거나 같고, n은 N보다 작거나 같음), n개의 연산 계층을 하나의 목표 연산 동작으로 사용할 수 있다. 이것은 단지 설명을 위한 것이며 제한하려는 것은 아니다.
또한, 해당 목표 연산 동작이 복수의 연산 동작을 포함하는 경우, 상기 목표 연산 동작의 실행 과정에서의 중간 계산 결과를 제 1 메모리에 저장할 수도 있다. 구체적으로, 상기 방법은 다음 단계를 추가로 포함한다: 상기 목표 연산 동작에서 현재 연산 동작이 출력한 중간 계산 결과가 그 후의 기타 연산 동작의 입력 데이터로 할 필요가 있을 경우, 또는 현재 연산 동작이 출력한 중간 계산 결과가 기타 목표 연산 동작의 입력 데이터로 할 필요가 있을 경우, 프로세서는 상기 현재 연산 동작이 출력한 중간 계산 결과를 제 1 메모리 살에 일시적으로 저장할 수 있다. 구체적으로, 프로세서는 상기 현재 연산 동작이 출력한 중간 결과의 데이터 용량에 따라, 제 1 메모리 상에 상기 현재 연산 동작이 출력한 중간 결과에 저장 주소를 분배할 수 있다. 상기 현재 연산 동작 후의 기타 연산 동작이나 기타 목표 연산 동작이 상기 현재 연산 동작이 출력한 중간 계산 결과를 사용할 필요가 없는 경우, 상기 현재 연산 동작이 출력한 중간 결과가 차지하는 저장 공간을 재분배할 수 있으며, 즉, 상기 현재 연산 동작이 출력한 중간 결과가 차지하던 저장 주소를 기타 데이터에 분배할 수 있다. 예를 들어, 도8에 제시된 바와 같이, 상기 현재 연산 동작OP1에 의해 출력된 중간 계산 결과 Y1이 다음 연산 동작 OP2의 입력 데이터인 경우, 프로세서는 상기 현재 연산 동작에 의해 출력된 중간 결과Y1을 일시적으로 제 1 메모리에 저장할 수 있다. 따라서, 중간 계산 결과 Y1의 판독 횟수가 감소되므로, 프로세서의 처리 효율 및 속도가 향상될 수 있다. 상기 연산 동작OP2 는 중간 계산 결과를 사용할 필요가 없고, 상기 목표 연산 동작 후의 기타 목표 연산 동작에서도 상기 중간 계산 결과 Y1 을 사용할 필요가 없을 경우, 상기 중간 계산 결과Y1이 차지하던 저장 공간을 해제할 수 있고, 상기 중간 계산 결과Y1이 차지하던 저장 주소는 기타 데이터에 분배할 수 있다. 예를 들어, 현재 목표 연산 동작 후의 기타 목표 연산 동작의 목표 출력 데이터를 중간 계산 결과Y1이 차지하던 저장 공간에 저장하여, 제 1 메모리상의 저장 공간 재사용을 실현한다. 기타 예로, 도 9에 제시된 바와 같이, 풀링 연산 동작의 목표 입력 데이터는 C1-C2 구간 내의 데이터이고, 상기 목표 입력 데이터에 대응하는 목표 출력 데이터는 B1-B2 구간의 데이터이다. 그리고, 상기 목표 출력 데이터 B1-B2는 활성화 연산 동작의 목표 입력 데이터이기에, 프로세서는 상기 중간 계산 결과 B1-B2를 제 1 메모리에 일시적으로 저장할 수 있다. 이러한 방식으로, 중간 계산 결과 B1-B2를 판독하는 횟수가 감소되므로, 프로세서의 처리 효율 및 속도가 향상될 수 있다. 활성화 연산 동작이 상기 목표 출력 데이터 B1-B2가 불필요한 경우, 목표 출력 데이터 B1-B2에 의해 점유된 저장 공간은 기타 데이터에 분배되어, 제 1 메모리상의 저장 공간 재사용을 실현한다. 일 실시예에서, 목표 연산 동작의 목표 입력 데이터가 상기 목표 연산 동작에 대응하는 모든 입력 데이터의 일부일 경우, 상기 목표 연산 동작의 각 목표 입력 데이터는 상기 목표 연산 동작의 일부 연산이 완료되도록 구성된다. 상기 목표 연산 동작의 처리 속도를 향상시키고 제 1 메모리의 저장 공간을 최대한 활용하기 위해, 상기 목표 연산 동작에 대응하는 목표 입력 데이터의 수는 하나 이상일 수 있고, 각 목표 입력 데이터는 모든 입력 데이터의 일부, 즉 각각의 목표 입력 데이터는 모든 입력 데이터의 1개 이상의 입력 데이터 블록을 포함한다. 즉, 하나 이상의 목표 입력 데이터를 함께 제 1 메모리에 로딩할 수 있다. 또한, 상기 목표 입력 데이터의 수량에 따라, 상기 목표 연산 동작은 복수의 서브 목표 연산 동작으로 분할될 수 있고, 선택적으로, 각 서브 목표 연산 동작은 동일한 연산을 수행할 수 있다. 구체적으로, 도 7에 제시된 바와 같이, 상기 방법은 다음 단계를 더 포함한다.
S500단계: 각 상기 서브 목표 연산 동작에 대응하는 목표 입력 데이터 용량 및 목표 출력 데이터 용량에 따라, 각 서브 목표 연산 동작에 필요한 목표 저장 용량을 확정하고; 각 서브 목표 연산 동작에 필요한 목표 저장 용량은 같거나 다를 수 있다.
S510단계: 제 1 메모리의 가용 저장 용량 및 현재의 서브 목표 연산 동작에 필요한 목표 저장 용량에 따라, 제 1 메모리의 잔여 저장 용량을 확정한다;
S520단계: 제 1 메모리의 잔여 저장 용량 및 각 서브 목표 연산 동작에 필요한 목표 저장 용량에 따라, 상기 서브 목표 연산 동작의 수량을 확정한다.
선택적으로, 상기 제 1 메모리의 잔여 저장 용량 및 상기 현재 서브 목표 연산 동작 이외의 기타 서브 목표 연산 동작에 필요한 목표 저장 용량에 따라, 상기 제 1 메모리에 서브 목표 연산 동작을 더 수용할 수 있는 수량을 확정할 수 있다. 다음, 상기 현재 서브 목표 연산 동작과 그 외의 기타 서브 목표 연산 동작의 수량에 따라, 상기 서브 목표 연산 동작의 총수량을 확정할 수 있다. 구체적으로, 현재 서브 목표 연산 동작의 목표 입력 데이터 용량과 목표 출력 데이터 용량의 합이 상기 제 1 메모리의 가용 저장 용량보다 작은 경우, 상기 제 1 메모리의 잔여 저장 용량에 따라 하나 이상의 서브 목표 연산 동작을 수행할 수 있는지를 판단할 수 있다. 수행할 수 있을 경우, 프로세서는 하나 이상의 상기 서브 목표 연산 동작에 대응하는 목표 입력 데이터들을 함께 처리할 수 있다. 이와 같이, 복수의 목표 입력 데이터를 함께 처리함으로써, 프로세서의 처리 속도 및 효율을 더욱 향상시킬 수 있다. 도 8에 제지된 바와 같이, 목표 연산 동작(도면에서 좌측의 연산 동작)은 연산 동작 OP1 및 OP2를 포함할 수 있고, 프로세서는 상기 목표 연산 동작의 현재 서브 목표 연산 동작의 목표 입력 데이터 X11, X21 및 Y3의 데이터 용량을 확정하고,상기 현재 서브 목표 연산 동작의 목표 출력 데이터 Y1, Z1의 데이터 용량을 확정하는 것에 의하고, 현재 서브 목표 연산 동작의 목표 입력 데이터와 목표 출력 데이터의 합에 의해, 현재 서브 목표 연산 동작에 필요한 목표 저장 용량을 확정할 수 있다. 상기 현재 서브 목표 연산 동작에 필요한 목표 저장 용량이 상기 제 1 메모리의 가용 저장 용량보다 작은 경우, 상기 제 1 메모리의 잔여 저장 용량은 계산을 통해 얻을 수 있다. 상기 제 1 메모리의 잔여 저장 용량은 제 1 메모리의 가용 저장 용량에서 상기 현재 서브 목표 연산 동작의 목표 저장 용량을 뺀 것과 동일하다. 다음, 프로세서는 상기 제 1 메모리의 잔여 저장 용량에 따라 서브 목표 연산 동작의 수량을 확정할 수 있다. 구체적으로, 상기 제 1 메모리의 잔여 저장 용량이 기타 서브 목표 연산 동작의 목표 입력 데이터 X12, X22 ,Y4, 및 연산 동작 OP1이 출력한 중간 계산 결과 Y2, 및 연산 동작 OP2가 출력한 목표 출력 데이터Z2를 추가로 수용할 수 있을 경우, 상기 목표 연산 동작의 수량는 2개로 확정할 수 있고, 상기 서브 입력 데이터 X21, X22 및 Y4를 그 중의 1개의 목표 연산 동작의 목표 입력 데이터로 사용할 수 있다. 이와 같이, 상기 처리하고자 하는 연산의 가로 방향에서 동일한 목표 연산 동작의 복수의 목표 입력 데이터를 동시에 로딩함으로써, 프로세서는 복수의 목표 입력 데이터를 병렬 처리하게 될 수 있어, 프로세서의 처리 속도 및 효율을 더욱 향상시킬 수 있다.또한, 상기 제 1 메모리의 잔여 저장 용량이 기타 서브 목표 연산 동작의 목표 입력 데이터 X12, X22, Y4, 및 연산 동작 OP1이 출력한 중간 계산 결과 Y2, 및 연산 동작 OP2가 출력한 목표 출력 데이터Z2를 추가로 수용할 수 있을 뿐만 아니라, 상기 제 1 메모리의 잔여 저장 용량이 연산 동작 OP3의 출력 데이터 Y도 수용할 수 있을 경우, 연산 동작 OP1, OP2, OP3을 융합할 수 있어, 1회의 연산 수행으로 계산 결과Y 를 얻을 수 있다. 기타 예로서, 도 9에 제시된 바와 같이, 상기 처리하고자 하는 연산은 신경망 연산 등과 같은 연산이고, 상기 처리하고자 하는 연산은 컨벌루션 계층, 풀링 계층 및 활성화 계층을 포함할 수 있으며, 전술한 각 연산 계층의 실행 순서는 차례로 컨벌루션 연산 동작-풀링 연산 동작-활성화 연산 동작이다. 상기 목표 연산 동작이 활성화 연산 동작인 경우, 프로세서는 제 1 메모리의 저장 용량에 따라, 현재 서브 목표 연산 동작의 목표 입력 데이터를 획득할 수 있고, 상기 현재 서브 목표 연산 동작의 목표 입력 데이터는 풀링 계층 상 B1-B2구간 내의 입력 데이터일 수 있다. 상기 현재 서브 목표 연산 동작의 목표 출력 데이터는 A1이다. 상기 현재 서브 목표 연산 동작의 목표 입력 데이터의 데이터 용량 B1-B2와 그에 대응하는 목표 출력 데이터의 데이터 용량의 합이 상기 제 1 메모리의 저장 용량보다 작은 경우, 즉 상기 현재 서브 목표 연산 동작에 필요한 목표 저장 용량이 제 1 메모리의 저장 용량보다 작은 경우, 프로세서는 진일보 상기 제 1 메모리의 잔여 저장 용량에 따라 상기 서브 목표 연산 동작의 수량을 확정할 수 있다. 예를 들어, 프로세서는 상기 제 1 메모리의 잔여 저장 용량에 따라, 제 1 메모리의 잔여 저장 용량이 활성화 연산 A1-A2 구간의 연산량을 만족시킬 수 있다고 확정되면, 서브 목표 연산 동작의 대상의 수량은 2개이고, 목표 입력 데이터 B2-B3 구간 내의 데이터를 상기 활성화 연산 동작의 1개 목표 연산 동작에 대응하는 목표 입력 데이터로 사용할 수 있다. 또한, 1개 이상의 서브 목표 연산 동작의 목표 입력 데이터가 교차한다면, 현재 서브 목표 연산 동작의 목표 입력 데이터와 기타 서브 목표 연산 동작의 목표 입력 데이터의 교집합을 확정하고, 상기 교집합을 제 1 메모리 상에 임시 저장한다. 즉, 현재 서브 목표 연산 동작의 목표 입력 데이터의 일부 또는 전부가 기타 서브 목표 연산 동작의 목표 입력 데이터이기도 한 경우, 상기 교집합을 제 1 메모리에 임시 저장하여 상기 부분 데이터의 복수 판독 동작을 피할 수 있으므로, 프로세서의 처리 속도 및 효율을 향상시킬 수 있다. 예를 들어, 도9에 제시된 바와 같이, 목표 연산 동작이 풀링 연산 동작 인 경우, 상기 목표 연산 동작의 서브 목표 연산 동작의 수량은 2개이고, 대응하여 상기 풀링 연산 동작에 대응하는 목표 입력 데이터는 2개일 수 있고, 그 중 하나의 목표 입력 데이터는 C1-C2이고, 기타 하나의 목표 입력 데이터는 C3-C4이다. 상기 목표 입력 데이터 C1-C2에 대응하는 목표 출력 데이터는 B1-B2이고, 상기 목표 입력 데이터 C3-C4에 대응하는 목표 출력 데이터는 B2-B3이다. 첨부된 도면에 따리, 입력 데이터 C3-C2 구간의 데이터는 목표 입력 데이터C1-C2의 일부이고, 한편 목표 입력 데이터 C3-C4의 일부이기도 하고, 즉 두 개의 목표 입력 데이터에는 교집합 C3-C2 가 존재한다. 여기서, 데이터의 판독 횟수를 줄이기 위해, 상기 목표 입력 데이터 C1-C2가 대응하는 풀링 연산을 완료된 후, 입력 데이터 C3-C2가 여전히 제 1 메모리에 저장되어, 이 부분 데이터의 복수의 판독 동작를 피함으로써, 프로세서의 처리 효율 및 속도를 향상시킬 수 있다.
일 실시예에서, 상기 방법에 다음 단계를 추가로 포함한다 :
목표 연산 동작 후의 연산 동작과 목표 연산 동작간의 연산 간격이 설정된 범위 내에 있을 경우, 목표 출력 데이터가 제 1 메모리에 저장되어, 목표 출력 데이터의 판독 횟수를 감소시킨다.
구체적으로, 목표 연산 동작 후의 연산 동작과 상기 목표 연산 동작간의 연산 간격이 설정된 범위 내에 있을 경우, 예를 들어, 목표 연산 동작과 그 후의 기타 연산 동작 간의 연산 간격이 3~5개 연산 동작이면, 상기 목표 출력 데이터는 제 1 메모리에 저장되어, 목표 출력 데이터가 판독되는 횟수를 감소시킬 수 있다. 목표 연산 동작과 그 후의 기타 연산 동작 간의 연산 간격이 설정된 범위를 초과하면, 상기 목표 출력 데이터가 긴 시간 동안 제 1 메모리의 저장 공강을 점유하는 것을 피하기 위해, 상기 목표 출력 데이터를 제 1 메모리로부터 제 2 메모리로 전송한다.
일 실시예에서, 상기 방법은 추가로 다음 단계를 더 포함한다 :
프로세서는 목표 연산 동작의 목표 입력 데이터의 데이터 용량에 따라, 제 1 메모리 상에 목표 입력 데이터의 저장 주소를 확정할 수 있고; 목표 연산 동작의 목표 출력 데이터의 데이터 용량에 따라, 제 1 메모리 상에 목표 출력 데이터의 저장 주소를 확정할 수 있다. 구체적으로는, 프로세서는 목표 연산 동작의 목표 입력 데이터의 데이터 용량에 따라, 제 1 메모리에서 상기 목표 입력 데이터에게 그 데이터 용량에 매칭되는 저장 공간을 분배할 수 있으며, 상기 저장 공간의 저장 주소를 상기 목표 입력 데이터에 분배할 수 있다. 따라서, 실제 연산 과정에서, 목표 입력 데이터는 제 1 메모리 상의 지정된 저장 공간에 로딩될 수 있다. 마찬가지로, 프로세서는 목표 연산 동작의 목표 출력 데이터의 데이터 용량에 따라, 제 1 메모리 상에 상기 목표 출력 데이터에게 그 데이터 용량에 매칭되는 저장 공간을 분배할 수 있으며, 상기 저장 공간의 저장 주소를 상기 목표 출력 데이터에 분배할 수 있다. 따라서, 실제 연산 과정에서, 목표 출력 데이터는 제 1 메모리 상의 지정된 저장 공간에 저장할 수 있다.
일 실시예에서, 상기 방법은 다음과 같은 단계를 더 포함한다:
목표 연산 동작의 목표 입력 데이터가 계속 사용되지 않을 경우, 프로세서는 목표 입력 데이터의 저장 공간의 전부 또는 일부를 목표 연산 동작의 목표 출력 데이터에 분배할 수 있다. 이러한 방식으로, 동일한 저장 공간 여러번 재사용하여, 상기 제 1 메모리의 공간 이용율을 향상시킬 수 있다. 선택적으로, 프로세서는 각 목표 연산 동작의 목표 입력 데이터의 저장 주소, 목표 출력 데이터의 저장 주소, 중간 계산 결과의 저장 주소, 제 1 메모리 상의 각 저장 공간의 업데이트 규칙 등을 기록할 수 있고, 상기 데이터에 대응하는 저장 주소에 따라 상기 처리하고자 하는 연산에 대응하는 저장 분배 규칙을 획득한다. 프로세서가 상기 처리하고자 하는 연산을 수행할 필요가 있을 경우, 프로세서는 상기 처리하고자 하는 연산에 대응하는 저장 분배 규칙을 획득하고, 상기 저장 분배 규칙에 따라 연산 과정에서 각종 데이터의 리드-라이트 동작 및 저장 위치 등을 확정할 수 있다. 일 실시예에서, 전술한 데이터 전처리 방법은 도 2 ~도 4에 명시된 컴퓨터 설비에도 적용될 수 있다. 여기서, 설정된 연산 분배 규칙에 따라, 상기 목표 연산 동작의 일부는 메인 프로세싱 회로에 의해 실행될 필요가 있고, 상기 목표 연산 동작의 기타 일부는 슬레이브 프로세싱 회로에 의해 실행될 필요가 있다. 따라서, 복수의 제 1 메모리는 메인 메모리 및 슬레이브 메모리를 포함할 수 있으며, 여기서 메인 메모리는 메인 프로세싱 회로에 가깝게 배치되고, 또한 상기 메인 메모리는 메인 프로세싱 회로의 온-칩 메모리일 수도 있다. 상기 슬레이브 메모리는 슬레이브 프로세싱 회로에 근접하여 배치되며, 상기 슬레이브 메모리는 슬레이브 프로세싱 회로의 온-칩 메모리일 수도 있다. 여기서, 상기 목표 연산 동작에 대응하는 목표 입력 데이터의 일부는 상기 메인 메모리에 로딩되어 메인 프로세싱 회로에 의해 실행될 필요가 있고, 상기 목표 연산 동작에 대응하는 목표 입력 데이터의 기타 일부는 하나 이상의 슬레이브 메모리에 로딩되어, 각 슬레이브 메모리에 대응하는 슬레이브 회로에 의해 실행될 필요가 있다.
구체적으로, 도 10에 제시된 바와 같이, 도 2 ~도 4에 제시된 컴퓨터 설비가 전술한 데이터 전처리 방법을 실행할 때, 하기 단계를 포함한다.
S600단계: 메인 메모리의 가용 저장 용량, 슬레이브 메모리의 가용 저장 용량 및 목표 연산 동작을 얻는다. 구체적으로, 프로세서는 상기 메인 메모리의 구성 정보(예: 모델번호 등 정보)에 따라, 상기 메인 메모리의 총 저장 용량을 획득할 수 있다. 또한, 프로세서는 상기 메인 메모리의 총 저장 용량 및 상기 메인 메모리 상의 점유된 저장 용량에 따라, 상기 메인 메모리의 가용 저장 용량을 얻을 수 있다. 유사하게, 프로세서는 상기 슬레이브 메모리의 구성 정보에 따라, 슬레이브 메모리의 총 저장 용량을 획득하고, 상기 슬레이브 메모리의 총 저장 용량 및 상기 슬레이브 메모리 상의 점유된 저장 용량에 따라, 상기 슬레이브 메모리의 가용 저장 용량을 얻을 수 있다. 선택적으로, 상기 프로세서의 메인 프로세싱 회로는 상기 메인 메모리의 가용 저장 용량을 획득할 수 있고, 각 슬레이브 프로세싱 회로는 대응하는 슬레이브 메모리의 가용 저장 용량을 획득할 수 있고, 대응하는 슬레이브 메모리의 가용 저장 용량을 메인 프로세싱 회로로 전송할 수 있다. 한편, 프로세서의 제어기 유닛은 처리하고자 하는 연산을 획득할 수 있고, 상기 처리하고자 하는 연산의 분석 결과 등과 같은 데이터를 메인 프로세싱 회로에 전송한다. 상기 메인 프로세싱 회로는 상기 처리하고자 하는 연산, 메인 메모리의 가용 저장 용량 및 슬레이브 메모리의 가용 저장 용량에 따라 목표 연산 동작을 확정할 수 있다. 선택적으로, 상기 처리하고자 하는 연산은 덧셈 동작, 뺄셈 동작, 곱셈 동작, 나눗셈 동작, 컨벌루션 동작, 풀링(Pooling) 동작 및 활성화(예 : Relu) 동작 등 연산 동작을 포함할 수 있으며, 여기서 구체적인 제한하지 않는다. 상기 목표 연산 동작은 처리하고자 하는 연산에서 하나 이상의 연산 동작의 조합일 수 있다.
S700단계: 상기 메인 메모리의 가용 저장 용량, 상기 슬레이브 메모리의 가용 저장 용량 및 상기 목표 연산 동작에 따라, 상기 목표 연산 동작에 대응하는 목표 입력 데이터를 확정한다. 여기서, 상기 목표 입력 데이터는 상기 목표 연산 동작에 대응하는 모든 입력 데이터의 일부 또는 전부이다.
구체적으로는, 프로세서의 메인 프로세싱 회로는 상기 목표 연산 동작에 따라, 상기 목표 연산 동작이 완료되기 위해 필요한 전부 입력 데이터 및 상기 전부 입력 데이터의 데이터 용량(즉, 상기 전부 입력 데이터에 수요되는 저장 공간의 크기)을 확정할 수 있다. 또한, 메인 프로세싱 회로는 메인 메모리의 가용 저장 용량, 각 슬레이브 메모리의 가용 저장 용량 및 상기 목표 연산 동작의 전부 입력 데이터의 데이터 용량에 따라, 상기 목표 연산 동작에 대응하는 목표 입력 데이터 및 데이터 용량을 확정할 수 있다.
S800단계: 상기 목표 연산 동작 및 상기 목표 입력 데이터에 따라, 상기 목표 연산 동작에 대응하는 목표 출력 데이터를 확정한다. 구체적으로, 처리하고자 하는 연산의 계산량은 정적 분석 가능하기에, 프로세서의 메인 프로세싱 회로는 상기 목표 연산 동작의 목표 입력 데이터 및 상기 목표 연산 동작에 따라, 상기 목표 연산 동작의 목표 출력 데이터 및 상기 목표 출력 데이터의 데이터 용량 등 정보를 얻을 수 있고, 즉 프로세서의 메인 프로세싱 회로는 상기 목표 연산 동작의 목표 출력 데이터에 필요한 저장 공간을 얻을 수 있다. S900: 상기 목표 연산 동작의 목표 출력 데이터가 상기 목표 연산 동작 후의 기타 연산 동작의 입력 데이터인 경우, 상기 목표 출력 데이터는 상기 메인 메모리에 대응하여 저장된다. 구체적으로, 메인 프로세싱 회로는 설정된 연산 분배 규칙에 따라, 상기 목표 연산 동작에 대응하는 목표 입력 데이터를 메인 메모리 및 슬레이브 메모리에 분배하여, 메인 프로세싱 회로와 슬레이브 프로세싱 회로가 협력하여 목표 연산 동작을 수행할 수 있도록 한다. 상기 목표 연산 동작 실행 과정 중에, 슬레이브 프로세싱 회로는 자체의 슬레이브 메모리 위의 목표 입력 데이터를 처리하여 중간 계산 결과를 얻을 수 있다. 또한, 슬레이브 프로세싱 회로는 상기 중간 계산 결과를 메인 프로세싱 회로로 전송할 수 있다. 메인 프로세싱 회로는 자체의 메인 메모리 상의 목표 입력 데이터를 처리하고, 각 슬레이브 프로세싱 회로로부터 전송된 중간 계산 결과와 결합하여, 상기 목표 연산 동작의 목표 출력 데이터를 얻을 수 있다. 상기 목표 연산 동작의 목표 출력 데이터가 그 후의 기타 연산 동작의 입력 데이터인 경우, 상기 목표 출력 데이터가 메인 메모리 상에 저장될 수 있어, 데이터의 판독 횟수를 감소시키고 프로세서의 계산 속도를 향상시킬 수 있다.
일 실시예에서, 도 11에 제시된 바와 같이, 상기 S700단계는,
상기 메인 메모리의 가용 저장 용량을 각 상기 슬레이브 메모리의 가용 저장 용량과 비교하여, 최소의 가용 저장 용량을 제 1 메모리의 가용 저장 용량으로서 사용하는 S710단계;
제 1 메모리의 가용 저장 용량 및 목표 연산 동작에 따라 목표 연산 동작에 대응하는 목표 입력 데이터를 확정하는 S720단계를 포함한다. 구체적으로, 상기 목표 연산 동작은 메인 프로세싱 회로와 슬레이브 프로세싱 회로를 연동시켜 완성할 필요가 있기 때문에, 메인 메모리와 슬레이브 메모리가 상기 목표 연산 동작의 목표 입력 데이터의 점유 공간을 동시에 만족시키는 것이 보증될 필요가 있다. 즉, 상기 목표 입력 데이터의 데이터 용량은 상기 메인 메모리의 가용 저장 용량보다 작으며, 상기 목표 입력 데이터의 데이터 용량은 상기 슬레이브 메모리의 가용 저장 용량보다 작다. 따라서, 메인 메모리의 가용 저장 용량과 각 슬레이브 메모리의 가용 저장 용량을 비교하여, 메인 메모리 및 각 슬레이브 메모리 중 최소 가용 저장 용량을 상기 프로세서의 제 1 메모리의 가용 저장 용량으로서 사용한다. 그리고, 메인 프로세싱 회로는 상기 제 1 메모리의 가용 저장 용량 및 목표 연산 동작에 따라, 상기 목표 연산 동작에 대응하는 목표 입력 데이터를 확정할 수 있다. 일 실시예에서, 메인 프로세싱 회로는 설정된 연산 분배 규칙에 따라 상기 목표 입력 데이터를 복수의 데이터 블록로 분할할 수 있고, 각 데이터 블록에 대응하는 프로세싱 회로를 확정할 수 있다. 여기서, 상기 목표 입력 데이터에서, 메인 프로세싱 회로에 의해 처리되는 데이터 블록은 제 1 목표 입력 데이터로 표기할 수 있다. 상기 목표 입력 데이터에서, 슬레이브 프로세싱 회로에 의해 처리되는 데이터 블록은 제 2 목표 입력 데이터로 표기할 수 있다. 또한, 각 슬레이브 프로세싱 회로에 대응하는 제 2 목표 입력 데이터의 데이터 용량은 다를 수 있으며, 구체적으로 연산 분배 규칙에 의해 결정된다. 구체적으로, 상기 방법은 다음 단계를 더 포함한다 :설정된 연산 분배 규칙에 따라, 상기 메인 메모리에 대응하는 제 1 목표 입력 데이터 및 상기 슬레이브 메모리 각각에 대응하는 제 2 목표 입력 데이터를 확정한다. 구체적으로, 메인 프로세싱 회로는 설정된 연산 분배 규칙에 따라, 상기 목표 연산 동작의 어떤 목표 입력 데이터가 메인 프로세싱 회로에 의해 처리되고, 상기 목표 연산 동작의 어떤 목표 입력 데이터가 각 슬레이브 프로세싱 회로에 의해 처리되는지를 확정할 수 있다. 예를 들면, 도 9에 제시된 바와 같이, 상기 현재 연산 동작은 풀링 연산 동작으로서, 풀링 계층 상 B1-B2 구간의 연산을 완료할 필요가 있을 경우, 상기 목표 연산 동작에 필요한 목표 입력 데이터는 C1-C2이다. 메인 프로세서는 설정된 연산 분배 규칙에 따라, 입력 데이터 C1-C3을 제 2 목표 입력 데이터로 사용하고, 상기 제 2 목표 입력 데이터 C1-C3을 슬레이브 메모리에 저장할 수 있다. 입력 데이터 C3-C2는 제 1 목표 입력 데이터로 사용하고, 상기 제 1 목표 입력 데이터 C3-C2는 메인 메모리 내에 저장할 수 있다.
또한, 상기 방법은 다음 단계를 더 포함할 수 있다: 프로세서는 메인 메모리의 가용 저장 용량 및 상기 제 1 목표 입력 데이터의 데이터 용량에 따라, 메인 메모리 상의 제 1 목표 입력 데이터의 저장 주소를 확정할 수 있다. 구체적으로, 메인 프로세싱 회로는 메인 메모리의 가용 저장 용량 및 제 1 목표 입력 데이터의 데이터 용량에 따라, 메인 메모리 상의 상기 제 1 목표 입력 데이터의 저장 주소를 확정할 수 있다. 또한, 상기 메인 프로세싱 회로는 상기 제 1 목표 입력 데이터 용량 및 목표 연산 동작에 따라, 상기 제 1 목표 입력 데이터에 대응하는 제 1 목표 출력 데이터 및 그 데이터 용량을 확정할 수 있고, 메인 메모리 상의 상기 제 1 목표 출력 데이터의 저장 주소도 확정할 수 있다. 프로세서는 슬레이브 메모리의 가용 저장 용량 및 제 2 목표 입력 데이터의 데이터 용량에 따라, 슬레이브 메모리 상의 제 2 목표 입력 데이터의 저장 주소를 확정할 수 있다. 구체적으로, 메인 프로세싱 회로는 각 슬레이브 프로세싱 회로의 가용 저장 용량 및 그에 대응하는 제 2 목표 입력 데이터의 데이터 용량에 따라, 각 제 2 목표 입력 데이터가 그에 대응하는 슬레이브 메모리에서의 저장 주소를 확정할 수 있다. 또한, 상기 메인 프로세싱 회로는 각 제 2 목표 입력 데이터 용량 및 목표 연산 동작에 따라, 각 제 2 목표 입력 데이터에 대응하는 제 2 목표 출력 데이터 및 그 데이터 용량을 확정할 수 있고, 각 제 2 목표 출력 데이터가 그에 대응하는 슬레이브 메모리에서의 저장 주소도 확정할 수 있다.
또한, 각 슬레이브 프로세싱 회로는 얻은 제 2 목표 출력 데이터를 메인 프로세싱 회로에 전송하고, 메인 프로세싱 회로는 추가로 메인 메모리 상의 상기 제 2 목표 출력 데이터 각각의 저장 주소를 확정할 수 있다. 일 실시예에서, 상기 슬레이브 프로세싱 회로에 의해 수행된 기타 연산 동작은 그에 대응한 상기 제 2 목표 출력 데이터를 계속 필요할 경우, 상기 제 2 목표 출력 데이터는 상기 슬레이브 프로세싱 회로에 대응하는 슬레이브 메모리 상에 일시적으로 저장할 수 있다. 이러한 방식으로, 메인 메모리와 슬레이브 메모리 사이의 데이터 판독 동작이 감소될 수 있고, 상기 프로세서의 연산 속도가 더 향상될 수 있다. 일 실시예에서, 전술한 목표 연산 동작은 하나 이상의 연산 동작을 포함하며. 즉, 상기 목표 연산 동작은 하나 이상의 연산 동작의 조합이다. 일반적으로, 상기 목표 연산 동작에 포함되는 각 연산 동작은 서로 기타 연산을 구현하기 위한 상이한 기타 연산 동작으로 한다. 이 경우, 프로세서의 메인 프로세싱 회로는 제 1 메모리의 가용 저장 용량에 따라, 각 연산 동작에 대응하는 서브 목표 입력 데이터를 확정할 수 있고, 각 연산 동작에 대응하는 서브 목표 입력 데이터에 따라 상기 목표 연산 동작에 대응하는 목표 입력 데이터를 확정할 수 있다. 구체적으로, 상기 목표 입력 데이터를 확정하는 과정은 전술한 방법의 S210 ~ S230단계와 일치하며, 상세한 내용은 상기 설명을 참조할 수 있고, 상세한 설명은 여기서 생략한다. 또한, 상기 목표 연산 동작이 복수의 연산 동작을 포함하는 경우, 상기 하나 이상의 연산 동작은 제 1 목표 연산 동작과 제 2 목표 연산 동작으로 분할할 수 있다. 메인 프로세싱 회로는 설정된 연산 분배 규칙에 따라, 상기 목표 연산 동작 중의 제 1 목표 연산 동작을 메인 프로세싱 회로에 할당하고, 상기 목표 연산 동작 중의 제 2 목표 연산 동작을 슬레이브 프로세싱 회로에 할당할 수 있다. 이에 따라, 메인 프로세싱 회로는 제 1 목표 연산 동작에 필요한 입력 데이터를 메인 메모리에 저장하고, 상기 제 2 목표 연산 동작 각각에 필요한 입력 데이터를 그에 대응하는 슬레이브 메모리에 저장할 수 있다. 예를 들어, 도 9에 제시되 바와 같이, 제 1 메모리의 가용 저장 용량이 풀링 연산 동작의 목표 입력 데이터 C1-C2, 및 활성화 연산 동작의 목표 입력 데이터 B1-B2를 수용할 수 있을 경우, 상기 풀링 연산 동작과 활성화 연산 동작은 하나의 목표 연산 동작인 것과 같다. 이 경우, 상기 목표 연산 동작의 목표 입력 데이터는 C1-C2 구간 내의 데이터일 수 있다. 여기서, 메인 프로세싱 회로는 설정된 연산 분배 규칙에 따라, 활성화 연산 동작을 제 1 목표 연산 동작으로 사용하고 메인 프로세싱 회로에 할당할 수 있고, 풀링 연산 동작을 제 2 목표 연산 동작으로 사용하고 슬레이브 프로세싱 회로에 할당할 수 있다. 이에 따라, 풀링 연산 동작에 필요한 입력 데이터 C1-C2는 슬레이브 메모리에 로딩될 수 있고, 활성화 연산 동작에 필요한 입력 데이터 B1-B2는 메인 메모리에 로딩될 수 있다. 상기 풀링 연산 동작과 활성화 연산 동작 간에 의존관계가 있기 때문에, 상기 풀링 연산 동작이 완료된 후에 활성화 연산 동작에 필요한 입력 데이터(B1-B2)를 메모리로부터 메인 메모리에 로딩할 수 있다.일 실시예에서, 목표 연산 동작의 목표 입력 데이터가 상기 목표 연산 동작에 대응하는 모든 입력 데이터의 일부일 경우, 상기 목표 연산 동작의 각 목표 입력 데이터는 단지 상기 목표 연산 동작의 일부 연산만 완료하기 위한 것이다. 목표 연산 동작의 처리 속도를 향상시키고 제 1 메모리의 저장 공간을 최대한 활용하기 위해, 상기 목표 연산 동작에 대응하는 목표 입력 데이터의 수량은 하나 이상일 수 있고, 각 목표 입력 데이터는 모든 입력 데이터의 일부, 즉 각 목표 입력 데이터는 모든 입력 데이터의 하나 이상의 입력 데이터 블록을 포함한다. 즉, 하나 이상의 목표 입력 데이터가 함께 제 1 메모리 상에 로딩될 수 있다. 또한, 상기 목표 입력 데이터의 수량에 따라, 상기 목표 연산 동작을 복수의 서브 목표 연산 동작으로 분할할 수 있고, 선택적으로, 각 서브 목표 연산 동작은 동일한 연산을 실현할 수 있다.
상기 메인 프로세싱 회로는 제 1 메모리의 가용 저장 용량 및 각 목표 연산 동작에 필요한 목표 저장 용량에 따라, 목표 연산 동작의 수량을 확정할 수 있으므로, 하나 이상의 목표 연산 동작의 목표 입력 데이터를 함께 제 1 메모리 상에 로딩할 수 있다. 구체적으로는, 상기 목표 연산 동작의 수량을 확정하는 과정은 전술한 방법의 S500~S520단계와 동일하며, 상세한 내용은 상기 설명을 참조할 수 있으므로, 상세한 설명은 생략한다.
도 5~도 7의 흐름도 및 도 10 ~도 11의 각 단계는 화살표에 따라 순차적으로 표시되었지만, 이러한 단계들이 반드시 화살표가 표시한 순서로 수행되는 것은 아니라는 점에 유의해야 한다. 본 문에 명확하게 언급한 경우를 제외하고, 이러한 단계의 수행은 엄격한 순서 제한이 없으며, 이러한 단계들은 기타 순서로 수행될 수도 있다. 또한, 도 5~7 및 도 10 ~도 11중의 적어도 일부 단계는 복수의 서브 단계 또는 복수의 절차를 포함할 수 있으며, 이러한 서브 단계 또는 절차는 반드시 동시에 수행되는 것은 아니며, 상이한 시간에 수행될 수도 있고, 해당 서브 단계 또는 잘차의 수행 순서는 반드시 순차적으로 수행되는 것은 아니며, 기타 단계 또는 기타 단계의 서브 단계 또는 절차의 적어도 일부와 번갈아서 또는 교대로 수행될 수도 있다. 당업자는 전술한 실시예를 구현하기 위한 방법의 전부 또는 일부 프로세스는, 컴퓨터 프로그램에 의해 관련 하드웨어를 명령하는 것으로 완성될 수 있음을 이해할 것이고, 상기 컴퓨터 프로그램은 비 휘발성 컴퓨터 판독 가능 저장 매체에 저장할 수 있고, 상기 컴퓨터 프로그램이 실행될 경우 전술한 각 방법의 실시예의 프로세스를 포함할 수 있다. 여기서 본 개시에 제공된 다양한 실시예에서 사용된 메모리, 저장, 데이터베이스 또는 기타 매체에 대한 모든 인용는 비 휘발성 및/또는 휘발성 메모리를 모두 포함할 수 있다. 비 휘발성 메모리는 판독 전용 메모리(ROM), 프로그래머블 ROM (PROM), 전기적 프로그래머블 ROM(EPROM), 전기적 소거 가능 프로그래머블 ROM(EEPROM) 또는 플래시 메모리를 포함할 수 있다. 휘발성 메모리는 랜덤 액세스 메모리(RAM) 또는 외부 고속 버퍼 메모리를 포함할 수 있다. 설명으로 제한적인 것은 아니며, RAM은 여러 형태로 얻을 수 있으며, 예로 정적 RAM (SRAM), 동적 RAM(DRAM), 동기식 DRAM(SDRAM), 더블 데이터 레이트 SDRAM (DDRSDRAM), 향상형 SDRAM(ESDRAM), 동기 링크(Synchlink) DRAM (SLDRAM), 메모리 버스(Rambus) 다이렉트 RAM(RDRAM), 다이렉트 메모리 버스 DRAM(DRDRAM) 및 메모리 버스 DRAM(RDRAM) 등이다.
일 실시예에서, 도 12에 제시된 바와 같이, 본 개시의 실시예는 획득 모듈(410), 입력 확정 모듈(420), 출력 확정 모듈(430) 및 저장 할당 모듈(440)을 포함할 수 있는 데이터 전처리 장치를 제공한다. 여기서, 획득 모듈(410)은 제 1 메모리의 가용 저장 용량 및 목표 연산 동작을 획득하도록 구성되며; 입력 확정 모듈(420)은 상기 목표 연산 동작 및 상기 제 1 메모리의 가용 저장 용량에 따라, 상기 목표 연산 동작에 대응하는 목표 입력 데이터를 확정하도록 구성되며; 출력 확정 모듈(430)은 상기 목표 연산 동작 및 상기 목표 입력 데이터에 따라, 상기 목표 연산 동작의 목표 출력 데이터를 확정하도록 구성되며; 저장 할당 모듈(440)은 상기 목표 연산 동작의 목표 출력 데이터가 상기 목표 연산 동작 후의 기타 연산 동작의 입력 데이터인 경우, 상기 목표 연산 동작의 목표 출력 데이터를 상기 제 1 메모리에 저장하도록 구성되며, 상기 제 1 메모리는 프로세서에 인접하여 배치된다. 선택적으로, 상기 목표 연산 동작은 하나 이상의 연산 동작을 포함하고, 각 연산 동작은 그에 대응하는 서브 목표 입력 데이터가 있다. 도 13에 제시된 바와 같이, 상기 입력 확정 모듈(420)은 융합 확정 유닛(421) 및 입력 확정 유닛(422)를 더 포함한다. 여기서, 융합 확정 유닛(421)은 상기 제 1 메모리의 가용 저장 용량 및 상기 처리하고자 하는 연산에서 각 연산 동작의 융합 속성에 따라, 융합 가능한 연산 동작의 수량을 확정하여 융합 수량 역치를 얻도록 구성된다. 입력 확정 유닛(422)은, 수량이 선정된 상기 융합 가능한 연산 동작의 조합을 상기 목표 연산 동작으로 사용하고, 상기 선정된 수량은 상기 융합 수량 역치 이하이며, 상기 수량이 선정된 융합 가능한 연산 동작 각각에 대응하는 서브 목표 입력 데이터를 상기 목표 연산 동작에 대응하는 목표 입력 데이터로 사용하도록 구성된다.
선택적으로, 상기 처리하고자 하는 연산은 복수의 연산 계층을 포함하는 신경망 연산이며, 상기 연산 계층 각각은 하나의 상기 연산 동작을 나타내며; 상기 융합 확정 유닛(421)은 상기 신경망 연산의 각 연산 계층의 연결 관계에 따라 상기 연산 동작 각각의 융합 속성을 확정하도록 구성된다.
선택적으로, 상기 저장 할당 모듈(440)은 상기 목표 연산 동작에서 현재 연산 동작에 의해 출력된 중간 계산 결과가 상기 목표 연산 동작 중 기타 연산 동작의 입력 데이터로 하는 경우, 또는 상기 현재 연산 동작에 의해 출력된 중간 계산 결과가 기타 목표 연산 동작의 입력 데이터로 하는 경우, 상기 현재 연산 동작에 의해 출력된 중간 계산 결과를 제 1 메모리 상에 저장하게 되거나, 혹은 상기 현재 연산 동작에 의해 출 된 중간 계산 결과를 제 1 메모리와 제 2 메모리 상에 저장하게 되도록 구성된다. 선택적으로, 상기 목표 연산 동작은 하나 이상의 서브 목표 연산 동작을 포함하고, 상기 서브 목표 연산 동작 각각은 하나의 상기 목표 입력 데이터에 대응하며; 여기서 상기 목표 연산 동작에 대응하는 모든 입력 데이터는 복수의 입력 데이터 블록을 포함하고, 상기 목표 연산 동작에 대응하는 목표 입력 데이터의 수량이 하나 이상이며, 상기 목표 입력 데이터 각각은 하나 이상의 상기 입력 데이터 블록을 포함하고; 입력 확정 모듈(420)은 상기 각 서브 목표 연산 동작 각각의 목표 입력 데이터의 데이터 용량 및 목표 출력 데이터의 데이터 용량에 따라, 상기 서브 목표 연산 동작 각각에 필요한 목표 저장 용량을 확정하고; 상기 제 1 메모리의 가용 저장 용량 및 현재의 서브 목표 연산 동작에 필요한 목표 저장 용량에 따라 상기 제 1 메모리의 잔여 저장 용량을 확정하고; 상기 제 1 메모리의 잔여 저장 용량 및 상기 현재의 서브 목표 연산 동작 이외의 기타 서브 목표 연산 동작에 필요한 목표 저장 용량에 따라, 상기 서브 목표 연산 동작의 수량을 확정하도록 구성된다.
선택적으로, 상기 저장 할당 모듈(440)은 하나 이상의 서브 목표 연산 동작의 목표 입력 데이터에 교집합이 존재할 경우, 상기 하나 이상의 서브 목표 연산 동작의 목표 입력 데이터 사이의 교집합을 상기 제 1 메모리 상에 저장하도록 구성된다.
선택적으로, 상기 저장 할당 모듈(440)은 상기 목표 연산 동작의 목표 입력 데이터의 데이터 용량에 따라, 상기 제 1 메모리 상에 있는 상기 목표 입력 데이터의 저장 주소를 확정하고; 상기 목표 연산 동작의 목표 출력 데이터의 데이터 용량에 따라, 상기 제 1 메모리 상에 있는 상기 목표 출력 데이터의 저장 주소를 확정하며; 상기 목표 연산 동작 후의 기타 연산 동작이 상기 목표 연산 동작의 목표 입력 데이터를 사용할 필요가 없는 경우, 상기 목표 연산 동작이 완료된 후, 상기 목표 연산 동작에 대응하는 목표 입력 데이터의 저장 주소의 일부 또는 전부를 상기 목표 연산 동작의 목표 출력 데이터에 할당하도록 구성된다. 기타 실시예에서, 도 12에 제시된 바와 같이, 획득 모듈(410)은 메인 메모리의 가용 저장 용량, 슬레이브 메모리의 가용 저장 용량 및 목표 연산 동작을 획득하도록 구성되며; 입력 확정 모듈(420)은 상기 메인 메모리의 가용 저장 용량, 상기 슬레이브 메모리의 가용 저장 용량 및 상기 목표 연산 동작에 따라, 상기 목표 연산 동작에 대응하는 목표 입력 데이터를 확정하도록 구성되며; 출력 확정 모듈(430)은 상기 목표 연산 동작 및 상기 목표 입력 데이터에 따라, 상기 목표 연산 동작의 목표 출력 데이터를 확정하도록 구성되며; 저장 할당 모듈(440)은 상기 목표 연산 동작의 목표 출력 데이터가 상기 목표 연산 동작 후의 기타 연산 동작의 입력 데이터인 경우, 상기 목표 출력 데이터를 메인 메모리에 대응하여 저장하도록 구성된다. 선택적으로, 도 14에 제시된 바와 같이, 상기 데이터 전처리 장치는 저장 용량 확정 모듈(450)을 추가로 포함하며, 이는 상기 메인 메모리의 가용 저장 용량과 각 상기 슬레이브 메모리의 가용 저장 용량을 비교하여 최소의 가용 저장 용량을 제 1 메모리의 가용 저장 용량으로 사용하도록 구성되며; 입력 확정 모듈(420)은 상기 제 1 메모리의 가용 저장 용량 및 목표 연산 동작에 따라 목표 연산 동작에 대응하는 목표 입력 데이터를 확정하도록 구성된다. 선택적으로, 상기 목표 연산 동작은 하나 이상의 연산 동작을 포함하고, 상기 연산 동작 각각은 그에 대응하는 서브 목표 입력 데이터가 있으며; 상기 입력 확정 모듈(420)은 융합 확정 유닛(421) 및 입력 확정 유닛(422)을 포함한다. 여기서 융합 확정 유닛(421)은 상기 제 1 메모리의 가용 저장 용량 및 상기 처리하고자 하는 연산에서 각 연산 동작의 융합 속성에 따라, 융합 가능한 연산 동작의 수량을 확정하여 융합 수량 역치를 얻도록 구성된다. 입력 확정 유닛(422)은 선정된 수량의 상기 융합 가능한 연산 동작의 조합을 상기 목표 연산 동작으로 사용하고, 상기 선정된 수량은 상기 융합 수량 역치이하 이며, 상기 선정된 수량의 융합 가능한 연산 동작 각각에 대응하는 서브 목표 입력 데이터를 상기 목표 연산 동작에 대응하는 목표 입력 데이터로 사용하도록 구성된다.
선택적으로, 상기 처리하고자 하는 연산은 복수의 연산 계층을 포함하는 신경망 연산이며, 상기 연산 계층 각각은 하나의 상기 연산 동작을 나타내며; 상기 융합 확정 유닛(421)은 상기 신경망 연산의 각 연산 계층의 연결 관계에 따라 상기 각 연산 동작의 융합 속성을 확정하도록 구성된다. 선택적으로, 상기 목표 연산 동작은 하나 이상의 서브 목표 연산 동작을 포함하고, 상기 서브 목표 연산 동작 각각은 하나의 상기 목표 입력 데이터에 대응하며; 여기서 상기 목표 연산 동작에 대응하는 모든 입력 데이터는 복수의 입력 데이터 블록을 포함하고, 상기 목표 연산 동작에 대응하는 목표 입력 데이터의 수량은 하나 이상이며, 상기 목표 입력 데이터 각각은 하나 이상의 상기 입력 데이터 블록을 포함한다. 상기 입력 확정 모듈은 상기 서브 목표 연산 동작 각각의 목표 입력 데이터의 데이터 용량 및 목표 출력 데이터의 데이터 용량에 따라, 상기 서브 목표 연산 동작 각각에 필요한 목표 저장 용량을 확정하고; 상기 제 1 메모리의 가용 저장 용량 및 현재의 서브 목표 연산 동작에 필요한 목표 저장 용량에 따라 상기 제 1 메모리의 잔여 저장 용량을 확정하고; 상기 제 1 메모리의 잔여 저장 용량 및 상기 현재의 서브 목표 연산 동작 이외의 기타 서브 목표 연산 동작에 필요한 목표 저장 용량에 따라, 상기 서브 목표 연산 동작의 수량을 확정하도록 구성된다. 선택적으로, 상기 목표 입력 데이터는 제 1 목표 입력 데이터 및 제 2 목표 입력 데이터를 포함하고; 상기 입력 확정 모듈(420)은 기 설정된 연산 분배 규칙에 따라, 상기 메인 메모리에 대응하는 제 1 목표 입력 데이터와 상기 각 슬레이브 메모리에 대응하는 제 2 목표 입력 데이터를 확정하도록 구성되며; 상기 저장 할당 모듈(440)은 상기 메인 메모리의 가용 저장 용량 및 상기 제 1 목표 입력 데이터의 데이터 용량에 따라, 상기 메인 메모리 상에 있는 상기 제 1 목표 입력 데이터의 저장 주소를 확정하고; 상기 각 슬레이브 메모리의 가용 저장 용량 및 대응하는 상기 제 2 목표 입력 데이터의 데이터 용량에 따라, 상기 슬레이브 메모리 상에 있는 상기 제 2 목표 입력 데이터 각각의 저장 주소를 확정하도록 구성된다. 선택적으로, 상기 목표 출력 데이터는 제 1 목표 출력 데이터 및 제 2 목표 출력 데이터를 포함하고; 상기 출력 확정 모듈(430)은 상기 목표 연산 동작 및 상기 제 1 목표 입력 데이터에 따라, 상기 제 1 목표 출력 데이터 및 상기 제 1 목표 출력 데이터가 상기 메인 메모리 상에서 저장된 주소를 확정하도록 구성되고; 상기 목표 연산 동작 및 상기 제 2 목표 입력 데이터 각각에 따라,상기 제 2 목표 출력 데이터 및 상기 제 2 목표 출력 데이터 각각은 해당 슬레이브 메모리 상에서 저장된 주소를 각각 확정하도록 구성되고; 상기 제 2 목표 입력 데이터에 따라, 상기 제 2 목표 출력 데이터 각각은 상기 메인 메모리 상에 있는 저장된 주소를 확정하도록 구성된다. 선택적으로, 저장 할당 모듈(440)은 상기 슬레이브 프로세싱 회로에서 수행되는 기타 목표 연산 동작이 상기 제 2 목표 출력 데이터를 사용할 필요가 있을 때, 상기 제 2 목표 출력 데이터를 상기 슬레이브 프로세싱 회로에 대응하는 슬레이브 메모리에 저장하도록 구성된다. 또한, 상기 저장 할당 모듈(440)은 상기 목표 연산 동작의 목표 출력 데이터가 상기 목표 연산 동작 후에 기타 연산 동작의 입력 데이터인 경우, 상기 목표 출력 데이터를 상기 메인 메모리와 제 2 메모리에 대응하여 저장하도록 구성된다.
상기 장치의 작동 원리는 상기 방법 중 각 단계의 실행 과정과 일치하다는 것을 분명히 해야 한다. 자세한 내용은 위의 설명을 참조할 수 있고, 상세한 설명은 여기서 생략한다.
일 실시예에서, 본 개시의 실시예는 컴퓨터 프로그램을 저장한 컴퓨터 판독 가능 저장 매체도 제공하며, 상기 컴퓨터 프로그램이 프로세서에 의해 실행될 때 상기 실시예 중 임의 하나에 따른 방법의 단계를 구현한다. 구체적으로, 상기 컴퓨터 프로그램이 프로세서에 의해 실행될 때:
제 1 메모리의 가용 저장 용량 및 목표 연산 동작을 획득하는 단계;
목표 연산 동작 및 제 1 메모리의 가용 저장 용량에 따라, 상기 목표 연산 동작에 대응하는 목표 입력 데이터를 확정하고; 여기서 상기 목표 입력 데이터는 상기 목표 연산 동작에 대응하는 모든 입력 데이터의 일부 또는 전부인 단계;
상기 목표 연산 동작 및 상기 목표 입력 데이터에 따라, 상기 목표 연산 동작의 목표 출력 데이터를 확정하는 단계;
상기 목표 연산 동작의 목표 출력 데이터가 상기 목표 연산 동작 후의 기타 연산 동작의 입력 데이터인 경우, 상기 목표 연산 동작의 목표 출력 데이터를 상기 제 1 메모리 상에 저장하고, 여기서 상기 제 1 메모리는 프로세서에 인접하여 배치되는 단계를 구현한다.
또한, 상기 프로세서는 메인 프로세싱 회로와 슬레이브 프로세싱 회로가 형성하는 마스터-슬레이브 구조일 수 있으며 이 경우, 상기 프로세서가 전술한 컴퓨터 프로그램을 실행할 때, :
메인 메모리의 가용 저장 용량, 슬레이브 메모리의 가용 저장 용량 및 목표 연산 동작을 획득하는 단계;
상기 메인 메모리의 가용 저장 용량, 상기 슬레이브 메모리의 가용 저장 용량 및 상기 목표 연산 동작에 따라, 상기 목표 연산 동작에 대응하는 목표 입력 데이터를 확정한다; 상기 목표 입력 데이터는 상기 목표 연산 동작에 대응하는 모든 입력 데이터의 일부 또는 전부인 단계;
상기 목표 연산 동작 및 상기 목표 입력 데이터에 따라, 상기 목표 연산 동작에 대응하는 목표 출력 데이터를 확정하는 단계;
상기 목표 연산 동작의 목표 출력 데이터가 상기 목표 연산 동작 후의 기타 연산 동작의 입력 데이터인 경우, 상기 목표 출력 데이터는 상기 메인 메모리에 대응하여 저장하는 단계를 구현한다.
상기 프로세서가 컴퓨터 프로그램을 실행하는 과정은 전술한 방법 중 각 단계의 실행 과정과 일치하다는 것을 알아야 한다. 자세한 내용은 위의 설명을 참조할 수 있고, 상세한 설명은 여기서 생략한다.
상기 실시예의 각 기술적인 특징은 임의로 결합될 수 있으며, 설명의 간결함을 위해 상기 실시예의 각 기술적인 특징에 대한 모든 가능한 조합을 설명하지 않았지만, 이러한 기술적 특징의 조합에 모순이 존재하지 않는 한, 모두 본 명세서의 범위로 간주되어야 한다.
상기 실시예는 본 개시의 몇몇 실시예를 설명한 것일 뿐이며, 그 설명은 비교적 구체적이고 상세하지만, 본 발명의 범위를 제한하는 것으로 해석되어서는 안된다. 당업자는, 본 발명의 사상을 벗어나지 않으면서 이루어진 다양한 변형 및 수정이 본 발명의 청구범위에 속한다. 그러므로 본 발명의 범위는 첨부된 청구 범위에 의해 결정된다.

Claims (20)

  1. 데이터를 전처리하기 위한 방법으로서,
    제 1 메모리의 가용 저장 용량 및 목표 연산 동작을 획득하는 단계;
    상기 목표 연산 동작 및 상기 제 1 메모리의 가용 저장 용량에 따라, 상기 목표 연산 동작에 대응하는 목표 입력 데이터를 확정하는 단계 ―상기 목표 입력 데이터는 상기 목표 연산 동작에 대응하는 입력 데이터의 일부 또는 전부임―;
    상기 목표 연산 동작 및 상기 목표 입력 데이터에 따라, 상기 목표 연산 동작의 목표 출력 데이터를 확정하는 단계;
    상기 목표 연산 동작의 목표 출력 데이터가 상기 목표 연산 동작 후의 기타 연산 동작의 입력 데이터인 경우, 상기 목표 연산 동작의 목표 출력 데이터를 상기 제 1 메모리에 저장하는 단계를 포함하고,
    상기 제 1 메모리는 프로세서와 직접 데이터를 교환하기 위해 상기 프로세서에 인접하여 배치되는 것을 특징으로 하는,
    방법.
  2. 제 1 항에 있어서,
    상기 방법은, 상기 목표 연산 동작의 목표 출력 데이터가 상기 목표 연산 동작 후의 기타 연산 동작의 입력 데이터인 경우, 상기 목표 연산 동작의 목표 출력 데이터를 상기 제 1 메모리 및 제 2 메모리에 동기화 저장하는 단계를 더 포함하며;
    상기 제 2 메모리는 상기 프로세서의 외부 메모리이며 상기 프로세서로부터 원격으로 배치되고, 상기 제 1 메모리의 저장 용량은 상기 제 2 메모리의 저장 용량보다 작은 것을 특징으로 하는,
    방법.
  3. 제 1 항에 있어서,
    상기 목표 연산 동작은 하나 이상의 연산 동작을 포함하고, 상기 연산 동작 각각은 서브 목표 입력 데이터에 대응되고;
    상기의 목표 연산 동작 및 상기 제 1 메모리의 가용 저장 용량에 따라 상기 목표 연산 동작에 대응하는 목표 입력 데이터를 확정하는 단계는,
    상기 제 1 메모리의 가용 저장 용량 및 처리하고자 하는 연산에서 각 연산 동작의 융합 속성에 따라, 융합 가능한 연산 동작의 수량을 확정하여 융합 수량의 역치를 얻는 단계;
    수량이 선정된 상기 융합 가능한 연산 동작의 조합을 상기 목표 연산 동작으로 사용하고, 상기 선정된 수량은 상기 융합 수량 역치 이하인 단계;
    상기 수량이 선정된 각 융합 가능한 연산 동작에 대응하는 서브 목표 입력 데이터를 상기 목표 연산 동작에 대응하는 목표 입력 데이터로 사용하는 단계를 더 포함하는 것을 특징으로 하는,
    방법.
  4. 제 3 항에 있어서,
    상기 처리하고자 하는 연산은 복수의 연산 계층을 포함하는 신경망 연산이며, 상기 연산 계층 각각은 하나의 상기 연산 동작을 나타내며;
    상기 방법은,
    상기 신경망 연산의 각 연산 계층의 연결 관계에 따라, 상기 연산 동작 각각의 융합 속성을 확정하는 단계를 더 포함하는 것을 특징으로 하는,
    방법.
  5. 제 3 항에 있어서,
    상기 방법은,
    상기 목표 연산 동작에서 현재 연산 동작이 출력한 중간 계산 결과가 상기 목표 연산 동작 후의 기타 연산 동작의 입력 데이터인 경우, 또는 상기 현재 연산 동작이 출력한 중간 계산 결과가 기타 목표 연산 동작의 입력 데이터인 경우, 상기 현재 연산 동작이 출력한 중간 계산 결과는 제 1 메모리 상에 저장되거나, 혹은 상기 현재 연산 동작에 의해 출력된 중간 계산 결과는 제 1 메모리와 제 2 메모리에 동기화 저장되는 단계를 더 포함하는 것을 특징으로 하는,
    방법.
  6. 제 1 항에 있어서,
    상기 목표 연산 동작에 대응하는 입력 데이터는 복수의 입력 데이터 블록을 포함하고, 상기 목표 입력 데이터 각각은 하나 이상의 상기 입력 데이터 블록을 포함하며, 상기 목표 연산 동작에 대응하는 목표 입력 데이터의 수량은 하나 이상인 것을 특징으로 하는,
    방법.
  7. 제 6 항에 있어서,
    상기 목표 연산 동작은 하나 이상의 서브 목표 연산 동작을 포함하고, 상기 서브 목표 연산 동작 각각은 하나의 목표 입력 데이터를 대응하며; 상기 방법은,
    상기 서브 목표 연산 동작 각각의 목표 입력 데이터의 데이터 용량 및 목표 출력 데이터의 데이터 용량에 따라, 상기 서브 목표 연산 동작 각각에 필요한 목표 저장 용량을 확정하는 단계;
    상기 제 1 메모리의 가용 저장 용량 및 현재의 서브 목표 연산 동작에 필요한 목표 저장 용량에 따라, 상기 제 1 메모리의 잔여 저장 용량을 확정하는 단계;
    상기 제 1 메모리의 잔여 저장 용량 및 상기 현재 서브 목표 연산 동작 이외의 기타 서브 목표 연산 동작에 필요한 목표 저장 용량에 따라, 상기 서브 목표 연산 동작의 수량을 확정하는 단계를 더 포함하는 것을 특징으로 하는,
    방법.
  8. 제 1 항에 있어서,
    상기 방법은,
    상기 목표 연산 동작 후의 기타 연산 동작이 상기 목표 연산 동작의 목표 입력 데이터를 사용할 필요가 없는 경우, 상기 목표 연산 동작이 완료된 후, 상기 목표 연산 동작에 대응하는 목표 입력 데이터의 저장 주소의 일부 또는 전부를 상기 목표 연산 동작의 목표 출력 데이터에 분배하는 단계를 더 포함하는 것을 특징으로 하는,
    방법.
  9. 제 1 메모리, 제 2 메모리 및 프로세서를 포함하고, 상기 제 1 메모리는 상기 프로세서와 직접 데이터를 교환하기 위해 상기 프로세서에 근접하여 배치되고, 상기 제 1 메모리와 상기 제 2 메모리는 데이터를 리드-라이트 할 수 있으며; 상기 제 1 메모리 또는 상기 제 2 메모리에 컴퓨터 프로그램이 내장된 컴퓨터 설비로서,
    상기 컴퓨터 프로그램은 상기 프로세서에 의해 실행될 경우, 제1항 내지 제8항 중 어느 한 항에 따른 데이터를 전처리하기 위한 방법의 단계를 수행하는 것을 특징으로 하는,
    컴퓨터 설비.
  10. 컴퓨터 프로그램이 내장된 컴퓨터 판독 가능 저장 매체로서,
    상기 컴퓨터 프로그램은 프로세서에 의해 실행될 경우, 제1항 내지 제8항 중 어느 한 항에 따른 데이터를 전처리하기 위한 방법의 단계를 수행하는 것을 특징으로 하는,
    컴퓨터 판독 가능 저장 매체.
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
KR1020197036813A 2018-08-28 2019-06-27 데이터 전처리 방법, 장치, 컴퓨터 설비 및 저장 매체 KR102519467B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
CN201810987293.5A CN110865950B (zh) 2018-08-28 2018-08-28 数据预处理方法、装置、计算机设备和存储介质
CN201810987343.XA CN110865792B (zh) 2018-08-28 2018-08-28 数据预处理方法、装置、计算机设备和存储介质
CN201810987343.X 2018-08-28
CN201810987293.5 2018-08-28
PCT/CN2019/093144 WO2020042739A1 (zh) 2018-08-28 2019-06-27 数据预处理方法、装置、计算机设备和存储介质

Publications (2)

Publication Number Publication Date
KR20210044669A KR20210044669A (ko) 2021-04-23
KR102519467B1 true KR102519467B1 (ko) 2023-04-06

Family

ID=69643410

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197036813A KR102519467B1 (ko) 2018-08-28 2019-06-27 데이터 전처리 방법, 장치, 컴퓨터 설비 및 저장 매체

Country Status (5)

Country Link
US (2) US11966583B2 (ko)
EP (2) EP3640810A4 (ko)
JP (1) JP6867518B2 (ko)
KR (1) KR102519467B1 (ko)
WO (1) WO2020042739A1 (ko)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11437032B2 (en) 2017-09-29 2022-09-06 Shanghai Cambricon Information Technology Co., Ltd Image processing apparatus and method
US11709672B2 (en) 2018-02-13 2023-07-25 Shanghai Cambricon Information Technology Co., Ltd Computing device and method
US11630666B2 (en) 2018-02-13 2023-04-18 Shanghai Cambricon Information Technology Co., Ltd Computing device and method
EP3651073B1 (en) 2018-02-13 2021-10-27 Shanghai Cambricon Information Technology Co., Ltd Computation device and method
CN110162162B (zh) 2018-02-14 2023-08-18 上海寒武纪信息科技有限公司 处理器的控制装置、方法及设备
EP3624020A4 (en) 2018-05-18 2021-05-05 Shanghai Cambricon Information Technology Co., Ltd CALCULATION PROCEDURES AND RELATED PRODUCTS
EP3825841A1 (en) 2018-06-27 2021-05-26 Shanghai Cambricon Information Technology Co., Ltd Method and device for parallel computation of a network model
US11966583B2 (en) 2018-08-28 2024-04-23 Cambricon Technologies Corporation Limited Data pre-processing method and device, and related computer device and storage medium
US11703939B2 (en) 2018-09-28 2023-07-18 Shanghai Cambricon Information Technology Co., Ltd Signal processing device and related products
CN111385462A (zh) 2018-12-28 2020-07-07 上海寒武纪信息科技有限公司 信号处理装置、信号处理方法及相关产品
CN111832739B (zh) 2019-04-18 2024-01-09 中科寒武纪科技股份有限公司 一种数据处理方法及相关产品
US11847554B2 (en) 2019-04-18 2023-12-19 Cambricon Technologies Corporation Limited Data processing method and related products
WO2020248424A1 (zh) 2019-06-12 2020-12-17 上海寒武纪信息科技有限公司 一种神经网络的量化参数确定方法及相关产品
US11676028B2 (en) 2019-06-12 2023-06-13 Shanghai Cambricon Information Technology Co., Ltd Neural network quantization parameter determination method and related products
EP4020321A4 (en) 2019-08-23 2024-01-17 Anhui Cambricon Information Technology Co., Ltd. DATA PROCESSING METHOD, APPARATUS, COMPUTER APPARATUS AND STORAGE MEDIUM

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160054922A1 (en) 2014-08-19 2016-02-25 Manu Awasthi Data management scheme in virtualized hyperscale environments
US20170221176A1 (en) 2016-01-29 2017-08-03 Fotonation Limited Convolutional neural network
WO2018113239A1 (zh) 2016-12-23 2018-06-28 深圳云天励飞技术有限公司 一种卷积神经网络的数据调度方法、***及计算机设备

Family Cites Families (191)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0375860A (ja) 1989-08-18 1991-03-29 Hitachi Ltd パーソナライズド端末
JPH045774A (ja) * 1990-04-24 1992-01-09 Seiko Epson Corp 神経網計算機
US5052043A (en) 1990-05-07 1991-09-24 Eastman Kodak Company Neural network with back propagation controlled through an output confidence measure
US6144977A (en) 1995-07-10 2000-11-07 Motorola, Inc. Circuit and method of converting a floating point number to a programmable fixed point number
GB9602701D0 (en) 1996-02-09 1996-04-10 Canon Kk Image manipulation
US7242414B1 (en) 1999-07-30 2007-07-10 Mips Technologies, Inc. Processor having a compare extension of an instruction set architecture
JP2000293371A (ja) 1999-04-09 2000-10-20 Hitachi Ltd マイクロプログラム制御方法及び装置
US6671796B1 (en) 2000-02-25 2003-12-30 Sun Microsystems, Inc. Converting an arbitrary fixed point value to a floating point value
US6931639B1 (en) 2000-08-24 2005-08-16 International Business Machines Corporation Method for implementing a variable-partitioned queue for simultaneous multithreaded processors
WO2002020874A2 (en) 2000-09-07 2002-03-14 Nippon Steel Corporation Hexavalent chromium-free surface-treating agent for sn- or al-based coated steel sheet, and surface treated steel sheet
US20020138714A1 (en) 2001-03-22 2002-09-26 Sun Microsystems, Inc. Scoreboard for scheduling of instructions in a microprocessor that provides out of order execution
EP1251460A1 (en) * 2001-04-19 2002-10-23 TELEFONAKTIEBOLAGET L M ERICSSON (publ) Adaptive method for allocation of random access memory
WO2002086817A1 (en) * 2001-04-19 2002-10-31 Telefonaktiebolaget Lm Ericsson (Publ) Adaptive memory allocation
US20030167460A1 (en) 2002-02-26 2003-09-04 Desai Vipul Anil Processor instruction set simulation power estimation method
US7236995B2 (en) 2002-12-27 2007-06-26 Arm Limited Data processing apparatus and method for converting a number between fixed-point and floating-point representations
DE10316381A1 (de) 2003-04-10 2004-10-28 Bayer Technology Services Gmbh Verfahren zum Training von neuronalen Netzen
JP4202244B2 (ja) 2003-12-22 2008-12-24 Necエレクトロニクス株式会社 Vliw型dsp,及びその動作方法
US20060161375A1 (en) 2004-12-30 2006-07-20 Allen Duberstein Optimizing processing speed based on measured temperatures
US7721128B2 (en) 2005-11-29 2010-05-18 International Business Machines Corporation Implementation of thermal throttling logic
US7617164B2 (en) * 2006-03-17 2009-11-10 Microsoft Corporation Efficiency of training for ranking systems based on pairwise training with aggregated gradients
CN1851668A (zh) 2006-06-01 2006-10-25 北京天碁科技有限公司 片上***芯片、片上***芯片的跟踪调试***及方法
DE102006059156B4 (de) 2006-12-14 2008-11-06 Advanced Micro Devices, Inc., Sunnyvale Verfahren zum Testen eines integrierten Schaltkreischips mit zumindest zwei Schaltungskernen sowie integrierter Schaltkreischip und Testsystem
US20110060587A1 (en) 2007-03-07 2011-03-10 Phillips Michael S Command and control utilizing ancillary information in a mobile voice-to-speech application
US8560591B2 (en) 2007-04-25 2013-10-15 International Business Machines Corporation Detection of potential need to use a larger data format in performing floating point operations
US8051118B2 (en) 2007-04-26 2011-11-01 International Business Machines Corporation Composition of decimal floating point data
US8051117B2 (en) 2007-04-26 2011-11-01 International Business Machines Corporation Shift significand of decimal floating point data
US8190664B2 (en) 2007-04-26 2012-05-29 International Business Machines Corporation Employing a mask field of an instruction to encode a sign of a result of the instruction
JP5184824B2 (ja) 2007-06-15 2013-04-17 キヤノン株式会社 演算処理装置及び方法
JP2009110353A (ja) 2007-10-31 2009-05-21 Hitachi Ltd マイクロコントローラ及び制御システム
US7904287B2 (en) 2007-11-13 2011-03-08 International Business Machines Corporation Method and system for real-time prediction of power usage for a change to another performance state
JP4998794B2 (ja) 2007-11-29 2012-08-15 Nkワークス株式会社 画像補正方法と画像補正装置
US20100073068A1 (en) 2008-09-22 2010-03-25 Hanwoo Cho Functional block level thermal control
CN101572829B (zh) 2009-06-10 2011-02-02 中国联合网络通信集团有限公司 Iptv视频质量监测方法、装置和***
EP2336882A1 (en) 2009-12-18 2011-06-22 Telefonaktiebolaget L M Ericsson (PUBL) Technique for run-time provision of executable code using off-device services
CN102985673B (zh) 2010-04-21 2015-06-17 丰田自动车株式会社 内燃机的控制装置
JP2011253374A (ja) 2010-06-02 2011-12-15 Sony Corp 情報処理装置、および情報処理方法、並びにプログラム
US8452463B2 (en) 2010-06-04 2013-05-28 Apple Inc. Adjusting the thermal behavior of a computing system using indirect information about ambient temperature
US8694572B2 (en) 2010-07-06 2014-04-08 Silminds, Llc, Egypt Decimal floating-point fused multiply-add unit
JP5516744B2 (ja) * 2010-08-27 2014-06-11 富士通株式会社 スケジューラ、マルチコアプロセッサシステムおよびスケジューリング方法
US8924455B1 (en) 2011-02-25 2014-12-30 Xilinx, Inc. Multiplication of matrices using systolic arrays
CN102761509B (zh) 2011-04-27 2016-01-06 联芯科技有限公司 Ofdm***的接收***及降低接收***内存的方法
KR20140002034A (ko) 2011-05-12 2014-01-07 애플 인크. 존재 감지
CN102789413B (zh) 2011-05-23 2016-02-17 同济大学 一种并行程序的调试***及方法
US8594982B2 (en) 2011-06-09 2013-11-26 Pulsar Informatics, Inc. Systems and methods for distributed calculation of fatigue-risk prediction and optimization
CN102404673B (zh) 2011-11-24 2013-12-18 苏州上声电子有限公司 数字化扬声器***通道均衡与声场控制方法和装置
CN103152673B (zh) 2011-12-07 2015-07-08 中国科学院声学研究所 基于四元码动态失配整形的数字扬声器驱动方法和装置
CN102684701B (zh) 2012-04-27 2014-07-09 苏州上声电子有限公司 基于编码转换的数字扬声器驱动方法和装置
DE102012009502A1 (de) 2012-05-14 2013-11-14 Kisters Ag Verfahren zum Trainieren eines künstlichen neuronalen Netzes
US9417891B2 (en) 2012-06-11 2016-08-16 Vmware, Inc. Unified storage/VDI provisioning methodology
US9063731B2 (en) 2012-08-27 2015-06-23 Samsung Electronics Co., Ltd. Ultra low power apparatus and method to wake up a main processor
CN102903089B (zh) 2012-09-07 2014-12-17 山东大学 一种Linux环境下生成遥感图像快视图的方法
US9412366B2 (en) 2012-09-18 2016-08-09 Adobe Systems Incorporated Natural language image spatial and tonal localization
CN102981854A (zh) 2012-11-16 2013-03-20 天津市天祥世联网络科技有限公司 基于浮点数运算内联函数库的神经网络优化方法
KR20150115724A (ko) 2012-11-22 2015-10-14 각고호우징 게이오기주크 아크릴계 공중합체, 광학 필름, 편광판 및 액정 표시 장치
US9851977B2 (en) 2012-12-06 2017-12-26 Kalray Apparatus and method for combining thread warps with compatible execution masks for simultaneous execution and increased lane utilization
US9720732B1 (en) 2013-02-11 2017-08-01 Amazon Technologies, Inc. Parameter selection for optimization of task execution based on execution history for prior tasks
JP2014170295A (ja) 2013-03-01 2014-09-18 Honda Motor Co Ltd 物体認識システム及び物体認識方法
JP5963957B2 (ja) 2013-06-12 2016-08-03 三菱電機株式会社 開発環境システム、開発環境装置、開発環境提供方法及びプログラム
JP6184891B2 (ja) 2014-03-12 2017-08-23 東芝メモリ株式会社 情報処理装置、半導体チップ、情報処理方法およびプログラム
US9507405B2 (en) 2014-06-18 2016-11-29 Oracle International Corporation System and method for managing power in a chip multiprocessor using a proportional feedback mechanism
US9575537B2 (en) 2014-07-25 2017-02-21 Intel Corporation Adaptive algorithm for thermal throttling of multi-core processors with non-homogeneous performance states
GB2524126B (en) 2014-08-28 2016-07-27 Imagination Tech Ltd Combining paths
US9916130B2 (en) 2014-11-03 2018-03-13 Arm Limited Apparatus and method for vector processing
FR3030077B1 (fr) 2014-12-10 2016-12-02 Arnault Ioualalen Procede d'ajustement de la precision d'un programme d'ordinateur manipulant au moins un nombre a virgule.
EP3035204B1 (en) 2014-12-19 2018-08-15 Intel Corporation Storage device and method for performing convolution operations
US20170061279A1 (en) 2015-01-14 2017-03-02 Intel Corporation Updating an artificial neural network using flexible fixed point representation
US20160328645A1 (en) 2015-05-08 2016-11-10 Qualcomm Incorporated Reduced computational complexity for fixed point neural network
US10083395B2 (en) * 2015-05-21 2018-09-25 Google Llc Batch processing in a neural network processor
US10438117B1 (en) * 2015-05-21 2019-10-08 Google Llc Computing convolutions using a neural network processor
CN104899641B (zh) 2015-05-25 2018-07-13 杭州朗和科技有限公司 深度神经网络学习方法、处理器和深度神经网络学习***
CN115082282A (zh) 2015-06-10 2022-09-20 无比视视觉技术有限公司 用于处理图像的图像处理器和方法
CN104978303B (zh) 2015-06-19 2019-06-04 上海兆芯集成电路有限公司 单芯片整合的传感器集线器和多传感器管理方法
CN106469291A (zh) 2015-08-19 2017-03-01 中兴通讯股份有限公司 图像处理方法及终端
US10031765B2 (en) 2015-09-24 2018-07-24 Intel Corporation Instruction and logic for programmable fabric hierarchy and cache
US10812831B2 (en) 2015-09-30 2020-10-20 Piksel, Inc. Video stream delivery via adaptive quality enhancement using error correction models
US11061672B2 (en) 2015-10-02 2021-07-13 Via Alliance Semiconductor Co., Ltd. Chained split execution of fused compound arithmetic operations
CN106570559A (zh) 2015-10-09 2017-04-19 阿里巴巴集团控股有限公司 一种基于神经网络的数据处理方法和装置
US10474951B2 (en) * 2015-10-23 2019-11-12 Nec Corporation Memory efficient scalable deep learning with model parallelization
WO2017087568A1 (en) 2015-11-17 2017-05-26 Eman Bayani A digital image capturing device system and method
US10409560B1 (en) * 2015-11-18 2019-09-10 Amazon Technologies, Inc. Acceleration techniques for graph analysis programs
CN106814639A (zh) 2015-11-27 2017-06-09 富泰华工业(深圳)有限公司 语音控制***及方法
CN105893419A (zh) 2015-11-30 2016-08-24 乐视致新电子科技(天津)有限公司 一种多媒体照片生成方法、装置、设备及手机
US10699186B2 (en) * 2015-12-02 2020-06-30 Google Llc Determining orders of execution of a neural network
US11176483B1 (en) * 2016-01-06 2021-11-16 Datarobot Inc. Systems and methods for storing and retrieving data sets based on temporal information
CN111353588B (zh) * 2016-01-20 2024-03-05 中科寒武纪科技股份有限公司 用于执行人工神经网络反向训练的装置和方法
CN105512723B (zh) 2016-01-20 2018-02-16 南京艾溪信息科技有限公司 一种用于稀疏连接的人工神经网络计算装置和方法
CN106997236B (zh) * 2016-01-25 2018-07-13 亮风台(上海)信息科技有限公司 基于多模态输入进行交互的方法和设备
US10671938B2 (en) 2016-01-27 2020-06-02 Bonsai AI, Inc. Artificial intelligence engine configured to work with a pedagogical programming language to train one or more trained artificial intelligence models
US10942711B2 (en) 2016-02-12 2021-03-09 Sony Corporation Information processing method and information processing apparatus
US10103714B2 (en) 2016-03-01 2018-10-16 Qualcomm Incorporated Adjust voltage for thermal mitigation
JP2017156511A (ja) 2016-03-01 2017-09-07 ソニー株式会社 情報処理装置、情報処理方法、およびプログラム
US10019779B2 (en) 2016-03-08 2018-07-10 Amazon Technologies, Inc. Browsing interface for item counterparts having different scales and lengths
CN109934331B (zh) 2016-04-29 2020-06-19 中科寒武纪科技股份有限公司 用于执行人工神经网络正向运算的装置和方法
US10552119B2 (en) 2016-04-29 2020-02-04 Intel Corporation Dynamic management of numerical representation in a distributed matrix processor architecture
US10187568B1 (en) 2016-05-02 2019-01-22 Bao Tran Video smart phone
US11055063B2 (en) 2016-05-02 2021-07-06 Marvell Asia Pte, Ltd. Systems and methods for deep learning processor
CN105978611B (zh) 2016-05-12 2019-09-17 京信通信***(中国)有限公司 一种频域信号压缩方法及装置
US10796220B2 (en) * 2016-05-24 2020-10-06 Marvell Asia Pte, Ltd. Systems and methods for vectorized FFT for multi-dimensional convolution operations
AU2016203619A1 (en) * 2016-05-31 2017-12-14 Canon Kabushiki Kaisha Layer-based operations scheduling to optimise memory for CNN applications
EP3252949B1 (en) 2016-06-01 2020-03-18 Intel IP Corporation Methods and devices for predistortion of signals
US20170357910A1 (en) 2016-06-10 2017-12-14 Apple Inc. System for iteratively training an artificial intelligence using cloud-based metrics
CN107545889B (zh) 2016-06-23 2020-10-23 华为终端有限公司 适用于模式识别的模型的优化方法、装置及终端设备
CN106156310A (zh) 2016-06-30 2016-11-23 努比亚技术有限公司 一种图片处理装置和方法
US10372588B2 (en) 2016-07-08 2019-08-06 International Business Machines Corporation Providing debug information on production containers using debug containers
DE102016214786A1 (de) 2016-08-09 2018-02-15 Fujitsu Limited Anwendungsprofiling-Jobmanagement-System, -Programm und -Verfahren
US20180046903A1 (en) 2016-08-12 2018-02-15 DeePhi Technology Co., Ltd. Deep processing unit (dpu) for implementing an artificial neural network (ann)
CN107688855B (zh) 2016-08-12 2021-04-13 赛灵思公司 针对于复杂神经网络的分层量化方法与装置
CN106354568A (zh) 2016-08-23 2017-01-25 京信通信技术(广州)有限公司 一种不同进程间的通信方法及通信装置
US20180060719A1 (en) * 2016-08-29 2018-03-01 International Business Machines Corporation Scale-space label fusion using two-stage deep neural net
CN107797913A (zh) 2016-09-07 2018-03-13 大陆汽车电子(连云港)有限公司 一种实时***的软件分析***与方法
US11907760B2 (en) * 2016-09-23 2024-02-20 Apple Inc. Systems and methods of memory allocation for neural networks
CN106650922B (zh) 2016-09-29 2019-05-03 清华大学 硬件神经网络转换方法、计算装置、软硬件协作***
US20180096243A1 (en) 2016-09-30 2018-04-05 General Electric Company Deep learning for data driven feature representation and anomaly detection
US10726330B2 (en) * 2016-10-11 2020-07-28 The Research Foundation For The State University Of New York System, method, and accelerator to process convolutional neural network layers
CN106485316B (zh) 2016-10-31 2019-04-02 北京百度网讯科技有限公司 神经网络模型压缩方法以及装置
US10949736B2 (en) * 2016-11-03 2021-03-16 Intel Corporation Flexible neural network accelerator and methods therefor
CN106502626A (zh) 2016-11-03 2017-03-15 北京百度网讯科技有限公司 数据处理方法和装置
US10762163B2 (en) * 2016-12-05 2020-09-01 Microsoft Technology Licensing, Llc Probabilistic matrix factorization for automated machine learning
US10216479B2 (en) 2016-12-06 2019-02-26 Arm Limited Apparatus and method for performing arithmetic operations to accumulate floating-point numbers
WO2018103736A1 (en) * 2016-12-09 2018-06-14 Beijing Horizon Information Technology Co., Ltd. Systems and methods for data management
US10997492B2 (en) 2017-01-20 2021-05-04 Nvidia Corporation Automated methods for conversions to a lower precision data format
CN106951587A (zh) 2017-02-15 2017-07-14 芯启源(南京)半导体科技有限公司 Fpga调试***及方法
CN106951962B (zh) 2017-03-22 2020-09-01 南京地平线机器人技术有限公司 用于神经网络的复合运算单元、方法和电子设备
US10795836B2 (en) * 2017-04-17 2020-10-06 Microsoft Technology Licensing, Llc Data processing performance enhancement for neural networks using a virtualized data iterator
US10402932B2 (en) 2017-04-17 2019-09-03 Intel Corporation Power-based and target-based graphics quality adjustment
US10332302B2 (en) 2017-04-17 2019-06-25 Intel Corporation Scatter gather engine
US20180314945A1 (en) * 2017-04-27 2018-11-01 Advanced Micro Devices, Inc. Graph matching for optimized deep network processing
CN107025629B (zh) 2017-04-27 2021-03-26 维沃移动通信有限公司 一种图像处理方法及移动终端
US11842280B2 (en) 2017-05-05 2023-12-12 Nvidia Corporation Loss-scaling for deep neural network training with reduced precision
US10019668B1 (en) * 2017-05-19 2018-07-10 Google Llc Scheduling neural network processing
US10956535B2 (en) * 2017-05-22 2021-03-23 Microsoft Technology Licensing, Llc Operating a neural network defined by user code
CN109034381B (zh) * 2017-06-09 2022-01-28 宏达国际电子股份有限公司 训练任务优化***、方法及其非暂态电脑可读媒体
US10944902B2 (en) 2017-06-20 2021-03-09 Adobe Inc. Digital image generation using capture support data
US20200097799A1 (en) 2017-06-30 2020-03-26 Intel Corporation Heterogeneous multiplier
CN107451654B (zh) * 2017-07-05 2021-05-18 深圳市自行科技有限公司 卷积神经网络的加速运算方法、服务器及存储介质
US10427306B1 (en) 2017-07-06 2019-10-01 X Development Llc Multimodal object identification
CN109284130B (zh) * 2017-07-20 2021-03-23 上海寒武纪信息科技有限公司 神经网络运算装置及方法
CN107451658B (zh) 2017-07-24 2020-12-15 杭州菲数科技有限公司 浮点运算定点化方法及***
CN107688849B (zh) 2017-07-28 2021-04-13 赛灵思电子科技(北京)有限公司 一种动态策略定点化训练方法及装置
US11481218B2 (en) 2017-08-02 2022-10-25 Intel Corporation System and method enabling one-hot neural networks on a machine learning compute platform
WO2019031858A1 (en) * 2017-08-08 2019-02-14 Samsung Electronics Co., Ltd. METHOD AND APPARATUS FOR DETERMINING MEMORY NEEDS IN A NETWORK
US20190050710A1 (en) 2017-08-14 2019-02-14 Midea Group Co., Ltd. Adaptive bit-width reduction for neural networks
CN107644254A (zh) 2017-09-09 2018-01-30 复旦大学 一种卷积神经网络权重参数量化训练方法及***
US10224954B1 (en) 2017-09-29 2019-03-05 Intel Corporation Floating point to fixed point conversion
KR102317958B1 (ko) 2017-09-29 2021-10-27 상하이 캠브리콘 인포메이션 테크놀로지 컴퍼니 리미티드 화상처리장치 및 방법
US11437032B2 (en) 2017-09-29 2022-09-06 Shanghai Cambricon Information Technology Co., Ltd Image processing apparatus and method
US10223114B1 (en) 2017-09-29 2019-03-05 Intel Corporation Fixed point to floating point conversion
US11450319B2 (en) 2017-09-29 2022-09-20 Cambricon (Xi'an) Semiconductor Co., Ltd. Image processing apparatus and method
JP6540770B2 (ja) 2017-10-17 2019-07-10 富士通株式会社 演算処理回路、演算処理回路を含む演算処理装置、演算処理装置を含む情報処理装置、および方法
US10410121B2 (en) 2017-10-25 2019-09-10 SparkCognition, Inc. Adjusting automated neural network generation based on evaluation of candidate neural networks
US20210061028A1 (en) 2017-10-26 2021-03-04 Applied Mechatronic Products Apparatus and method for vehicular monitoring, analysis, and control
JP6839641B2 (ja) * 2017-11-17 2021-03-10 株式会社東芝 演算処理装置
US10783634B2 (en) 2017-11-22 2020-09-22 General Electric Company Systems and methods to deliver point of care alerts for radiological findings
US10803379B2 (en) * 2017-12-12 2020-10-13 Amazon Technologies, Inc. Multi-memory on-chip computational network
CN108053028B (zh) 2017-12-21 2021-09-14 深圳励飞科技有限公司 数据定点化处理方法、装置、电子设备及计算机存储介质
US11636327B2 (en) 2017-12-29 2023-04-25 Intel Corporation Machine learning sparse computation mechanism for arbitrary neural networks, arithmetic compute microarchitecture, and sparsity for training mechanism
US11373088B2 (en) 2017-12-30 2022-06-28 Intel Corporation Machine learning accelerator mechanism
US11119915B2 (en) * 2018-02-08 2021-09-14 Samsung Electronics Co., Ltd. Dynamic memory mapping for neural networks
US20190251429A1 (en) 2018-02-12 2019-08-15 Kneron, Inc. Convolution operation device and method of scaling convolution input for convolution neural network
US11709672B2 (en) 2018-02-13 2023-07-25 Shanghai Cambricon Information Technology Co., Ltd Computing device and method
US11106598B2 (en) 2018-02-13 2021-08-31 Shanghai Cambricon Information Technology Co., Ltd. Computing device and method
US11630666B2 (en) 2018-02-13 2023-04-18 Shanghai Cambricon Information Technology Co., Ltd Computing device and method
CN110162162B (zh) 2018-02-14 2023-08-18 上海寒武纪信息科技有限公司 处理器的控制装置、方法及设备
JP7056225B2 (ja) 2018-02-26 2022-04-19 富士通株式会社 演算処理装置、情報処理装置、情報処理方法、およびプログラム
US10628275B2 (en) 2018-03-07 2020-04-21 Nxp B.V. Runtime software-based self-test with mutual inter-core checking
US11475306B2 (en) * 2018-03-22 2022-10-18 Amazon Technologies, Inc. Processing for multiple input data sets
CN108510067B (zh) 2018-04-11 2021-11-09 西安电子科技大学 基于工程化实现的卷积神经网络量化方法
US11562213B2 (en) * 2018-04-17 2023-01-24 Intel Corporation Methods and arrangements to manage memory in cascaded neural networks
US10691413B2 (en) 2018-05-04 2020-06-23 Microsoft Technology Licensing, Llc Block floating point computations using reduced bit-width vectors
EP3624020A4 (en) 2018-05-18 2021-05-05 Shanghai Cambricon Information Technology Co., Ltd CALCULATION PROCEDURES AND RELATED PRODUCTS
CN108717570A (zh) 2018-05-23 2018-10-30 电子科技大学 一种脉冲神经网络参数量化方法
US10360304B1 (en) 2018-06-04 2019-07-23 Imageous, Inc. Natural language processing interface-enabled building conditions control system
CN109062540B (zh) 2018-06-06 2022-11-25 北京理工大学 一种基于cordic算法的可重构浮点运算装置
CN109063820A (zh) 2018-06-07 2018-12-21 中国科学技术大学 利用时频联合长时循环神经网络的数据处理方法
CN110728364A (zh) 2018-07-17 2020-01-24 上海寒武纪信息科技有限公司 一种运算装置和运算方法
EP3825841A1 (en) 2018-06-27 2021-05-26 Shanghai Cambricon Information Technology Co., Ltd Method and device for parallel computation of a network model
US11966583B2 (en) 2018-08-28 2024-04-23 Cambricon Technologies Corporation Limited Data pre-processing method and device, and related computer device and storage medium
US11703939B2 (en) 2018-09-28 2023-07-18 Shanghai Cambricon Information Technology Co., Ltd Signal processing device and related products
CN109685202B (zh) 2018-12-17 2023-03-21 腾讯科技(深圳)有限公司 数据处理方法及装置、存储介质和电子装置
CN111385462A (zh) 2018-12-28 2020-07-07 上海寒武纪信息科技有限公司 信号处理装置、信号处理方法及相关产品
CN109902745A (zh) 2019-03-01 2019-06-18 成都康乔电子有限责任公司 一种基于cnn的低精度训练与8位整型量化推理方法
CN110059733A (zh) 2019-04-01 2019-07-26 苏州科达科技股份有限公司 卷积神经网络的优化及快速目标检测方法、装置
CN109993296B (zh) 2019-04-01 2020-12-29 安徽寒武纪信息科技有限公司 量化实现方法及相关产品
CN111832739B (zh) 2019-04-18 2024-01-09 中科寒武纪科技股份有限公司 一种数据处理方法及相关产品
US11847554B2 (en) 2019-04-18 2023-12-19 Cambricon Technologies Corporation Limited Data processing method and related products
US11676028B2 (en) 2019-06-12 2023-06-13 Shanghai Cambricon Information Technology Co., Ltd Neural network quantization parameter determination method and related products
EP4020321A4 (en) 2019-08-23 2024-01-17 Anhui Cambricon Information Technology Co., Ltd. DATA PROCESSING METHOD, APPARATUS, COMPUTER APPARATUS AND STORAGE MEDIUM
EP4020329A4 (en) 2019-08-23 2023-07-05 Anhui Cambricon Information Technology Co., Ltd. DATA PROCESSING METHOD AND APPARATUS, COMPUTER EQUIPMENT, AND STORAGE MEDIA
EP4020328A4 (en) 2019-08-23 2023-07-05 Anhui Cambricon Information Technology Co., Ltd. DATA PROCESSING METHOD AND APPARATUS, COMPUTER DEVICE AND STORAGE MEDIA
WO2021036905A1 (zh) 2019-08-27 2021-03-04 安徽寒武纪信息科技有限公司 数据处理方法、装置、计算机设备和存储介质
CN110780845B (zh) 2019-10-17 2021-11-30 浙江大学 一种用于量化卷积神经网络的可配置近似乘法器及其实现方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160054922A1 (en) 2014-08-19 2016-02-25 Manu Awasthi Data management scheme in virtualized hyperscale environments
US20170221176A1 (en) 2016-01-29 2017-08-03 Fotonation Limited Convolutional neural network
WO2018113239A1 (zh) 2016-12-23 2018-06-28 深圳云天励飞技术有限公司 一种卷积神经网络的数据调度方法、***及计算机设备

Also Published As

Publication number Publication date
JP2020533659A (ja) 2020-11-19
KR20210044669A (ko) 2021-04-23
JP6867518B2 (ja) 2021-04-28
EP3640810A4 (en) 2021-05-05
EP3757896A1 (en) 2020-12-30
EP3757896B1 (en) 2023-01-11
US20200125508A1 (en) 2020-04-23
US11966583B2 (en) 2024-04-23
EP3640810A1 (en) 2020-04-22
EP3757896A8 (en) 2022-09-14
US11243895B2 (en) 2022-02-08
US20210334007A1 (en) 2021-10-28
WO2020042739A1 (zh) 2020-03-05

Similar Documents

Publication Publication Date Title
KR102519467B1 (ko) 데이터 전처리 방법, 장치, 컴퓨터 설비 및 저장 매체
CN109102065B (zh) 一种基于PSoC的卷积神经网络加速器
AU2019268193B2 (en) Conversion method, apparatus, computer device, and storage medium
US11748599B2 (en) Super-tiling in neural network processing to enable analytics at lower memory speed
CN109543825B (zh) 神经网络模型算法编译方法、装置及相关产品
CN110750351B (zh) 多核任务调度器、多核任务调度方法、装置及相关产品
CN111160515B (zh) 运行时间预测方法、模型搜索方法及***
CN110865950B (zh) 数据预处理方法、装置、计算机设备和存储介质
CN114580606A (zh) 数据处理方法、装置、计算机设备和存储介质
JP7492555B2 (ja) 複数の入力データセットのための処理
CN104050110A (zh) 用于存储器内计算的本地旁路的方法和***
CN115756478A (zh) 计算图的算子自动融合方法及相关产品
CN111860803A (zh) 分形计算装置、方法、集成电路及板卡
CN112970037B (zh) 用于实施神经网络应用的多芯片***、适用于多芯片***的数据处理方法、和非暂时性计算机可读介质
CN113988283A (zh) 逻辑节点的映射方法、装置、电子设备及存储介质
US20210326189A1 (en) Synchronization of processing elements that execute statically scheduled instructions in a machine learning accelerator
CN114118348A (zh) 加速器、操作加速器的方法以及包括加速器的电子装置
CN115668222A (zh) 一种神经网络的数据处理方法及装置
US11966344B2 (en) Accelerator and electronic device including the same
CN110865792B (zh) 数据预处理方法、装置、计算机设备和存储介质
WO2021212045A1 (en) Synchronization of processing elements and software managed memory hierarchy in a machine learning accelerator
CN110826704B (zh) 一种用于防止神经网络过拟合的处理装置及***
EP3985507A1 (en) Electronic device and method with scheduling
US20230244534A1 (en) Electronic device and controlling method of electronic device
CN114281405A (zh) 数据处理方法、装置和存储介质

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant