KR20210151727A - 신경망 가속기의 데이터 처리 방법, 장치, 기기 및 저장 매체 - Google Patents
신경망 가속기의 데이터 처리 방법, 장치, 기기 및 저장 매체 Download PDFInfo
- Publication number
- KR20210151727A KR20210151727A KR1020210164464A KR20210164464A KR20210151727A KR 20210151727 A KR20210151727 A KR 20210151727A KR 1020210164464 A KR1020210164464 A KR 1020210164464A KR 20210164464 A KR20210164464 A KR 20210164464A KR 20210151727 A KR20210151727 A KR 20210151727A
- Authority
- KR
- South Korea
- Prior art keywords
- real
- neural network
- data
- weight matrix
- network accelerator
- Prior art date
Links
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 137
- 238000003672 processing method Methods 0.000 title claims abstract description 55
- 239000011159 matrix material Substances 0.000 claims description 94
- 238000012545 processing Methods 0.000 claims description 49
- 238000000034 method Methods 0.000 claims description 25
- 238000004590 computer program Methods 0.000 claims description 13
- 230000008569 process Effects 0.000 claims description 6
- 238000006243 chemical reaction Methods 0.000 claims description 2
- 238000013473 artificial intelligence Methods 0.000 abstract description 7
- 238000013135 deep learning Methods 0.000 abstract description 3
- 230000000875 corresponding effect Effects 0.000 description 49
- 230000009471 action Effects 0.000 description 19
- 238000010586 diagram Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 12
- 238000005516 engineering process Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 9
- 230000009466 transformation Effects 0.000 description 9
- 210000002569 neuron Anatomy 0.000 description 8
- 230000004913 activation Effects 0.000 description 7
- 239000013598 vector Substances 0.000 description 7
- 238000013461 design Methods 0.000 description 6
- 230000006399 behavior Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 210000002364 input neuron Anatomy 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 210000004205 output neuron Anatomy 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 241000668842 Lepidosaphes gloverii Species 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/061—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using biological neurons, e.g. biological neurons connected to an integrated circuit
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Advance Control (AREA)
- Image Analysis (AREA)
- Feedback Control In General (AREA)
Abstract
본 출원은 신경망 가속기의 데이터 처리 방법, 장치, 전자 기기 및 저장 매체를 개시하며, 빅 데이터 및 딥 러닝 등 인공지능 기술 분야에 관한 것이다. 구체적인 구현 방식은, 처리할 데이터 및 대응되는 수행할 동작을 획득하고; 수행할 동작에 대응하는 실수 완전 연결 동작을 획득하며; 신경망 가속기의 실수 완전 연결 유닛에 따라, 처리할 데이터에 대해 상기 실수 완전 연결 동작을 수행하여, 처리할 데이터에 대한 수행할 동작의 수행 결과를 얻는 것이다. 이로써 신경망 가속기의 실수 완전 연결 유닛을 통해 처리할 데이터에 대한 모든 동작을 구현할 수 있음으로써 실수 완전 연결 유닛의 재사용을 구현하여 하드웨어 논리가 가장 적은 경우에도 다양한 동작을 구현할 수 있다.
Description
본 출원은 컴퓨터 기술 분야에 관한 것으로, 구체적으로 빅 데이터, 딥 러닝 등 인공 지능 기술 분야에 관한 것이며, 특히 신경망 가속기의 데이터 처리 방법, 장치, 전자 기기 및 저장 매체에 관한 것이다.
관련 기술에서, 신경망 가속기에 콘볼루션 유닛, 완전 연결 유닛 등이 설치될 수 있다. 신경망 가속기에 비교적 많은 유닛이 설치되면 쉽게 신경망 가속기의 칩이 차지하는 면적이 점점 커지도록 하고 하드 웨어 리소스를 비교적 많이 소모하므로 신경망 가속기 중의 데이터(예를 들어 음성 데이터)를 처리할 수 없게 된다. 따라서 신경망 가속기의 데이터 처리를 더 잘 구현하는 방법은 시급히 해결해야 할 문제로 된다.
본 출원은 신경망 가속기의 데이터 처리 방법, 장치, 전자 기기 및 저장 매체를 제공한다.
본 출원의 제1 양태에 따르면, 신경망 가속기의 데이터 처리 방법을 제공하며, 신경망 가속기의 데이터 처리 방법은,
처리할 데이터 및 대응되는 수행할 동작을 획득하는 단계;
상기 수행할 동작에 대응하는 실수 완전 연결 동작을 획득하는 단계; 및
상기 신경망 가속기의 실수 완전 연결 유닛에 따라, 상기 처리할 데이터에 대해 상기 실수 완전 연결 동작을 수행하여, 상기 처리할 데이터에 대한 상기 수행할 동작의 수행 결과를 얻는 단계; 를 포함한다.
본 출원의 제2 양태에 따르면, 신경망 가속기의 데이터 처리 장치를 제공하며, 신경망 가속기의 데이터 처리 장치는,
처리할 데이터 및 대응되는 수행할 동작을 획득하는 제1 획득 모듈;
상기 수행할 동작에 대응하는 실수 완전 연결 동작을 획득하는 제2 획득 모듈; 및
상기 신경망 가속기의 실수 완전 연결 유닛에 따라, 상기 처리할 데이터에 대해 상기 실수 완전 연결 동작을 수행하여, 상기 처리할 데이터에 대한 상기 수행할 동작의 수행 결과를 얻는 제1 처리 모듈; 을 포함한다.
본 출원의 제3 양태에 따르면, 전자 기기를 제공하는바, 이는, 적어도 하나의 프로세서; 및 상기 적어도 하나의 프로세서와 통신 연결되는 메모리; 를 포함하되; 상기 메모리에는 상기 적어도 하나의 프로세서에 의해 실행 가능한 명령이 저장되고, 상기 명령이 상기 적어도 하나의 프로세서에 의해 실행될 경우, 상기 적어도 하나의 프로세서에 의해 본 출원의 제1 양태에 따른 신경망 가속기의 데이터 처리 방법이 수행된다.
본 출원의 제4 양태에 따르면, 컴퓨터 명령이 저장된 비 일시적 컴퓨터 판독 가능 저장 매체를 제공하는바, 상기 컴퓨터 명령이 본 출원의 제1 양태에 따른 신경망 가속기의 데이터 처리 방법이 수행된다.
본 출원의 제5 양태에 따르면, 컴퓨터 판독 가능 매체에 저장된 컴퓨터 프로그램을 제공하는바, 상기 컴퓨터 프로그램중의 명령이 실행될 경우, 본 출원의 제1 양태에 따른 신경망 가속기의 데이터 처리 방법의 단계가 구현된다.
본 부분에 설명되는 내용은 본 출원의 실시예의 핵심 또는 중요한 특징을 식별하기 위한 것이 아니며, 본 출원의 범위를 한정하려는 의도도 아님을 이해하여야 할 것이다. 본 출원의 다른 특징은 아래의 명세서에 의해 쉽게 이해될 것이다.
첨부 도면은 본 해결수단을 더 잘 이해하기 위한 것으로, 본 출원을 한정하지 않는다. 여기서,
도 1은 본 출원의 일 실시예에 따른 신경망 가속기의 데이터 처리 방법의 흐름도이다.
도 2는 본 출원의 일 구체적인 실시예에 따른 신경망 가속기의 데이터 처리 방법의 흐름도이다.
도 3a은 본 출원의 다른 실시예에 따른 신경망 가속기의 데이터 처리 방법의 흐름도이다.
도 3b는 본 출원의 일 실시예에 따른 콘볼루션 동작과 완전 연결 동작의 관련 관계의 모식도이다.
도 4는 본 출원의 또 다른 실시예에 따른 신경망 가속기의 데이터 처리 방법의 흐름도이다.
도 5는 본 출원의 또 다른 실시예에 따른 신경망 가속기의 데이터 처리 방법의 흐름도이다.
도 6은 본 출원의 일 신경망 가속기의 데이터 처리 장치의 모식도이다.
도 7은 본 출원의 다른 신경망 가속기의 데이터 처리 장치의 모식도이다.
도 8은 본 출원의 또 다른 신경망 가속기의 데이터 처리 장치의 모식도이다.
도 9는 본 출원의 또 다른 신경망 가속기의 데이터 처리 장치의 모식도이다.
도 10은 본 출원의 다른 신경망 가속기의 데이터 처리 장치의 모식도이다.
도 11은 본 출원의 다른 신경망 가속기의 데이터 처리 장치의 모식도이다.
도 12는 본 출원의 일 신경망 가속기의 데이터 처리 방법의 전자 기기의 블록도이다.
도 1은 본 출원의 일 실시예에 따른 신경망 가속기의 데이터 처리 방법의 흐름도이다.
도 2는 본 출원의 일 구체적인 실시예에 따른 신경망 가속기의 데이터 처리 방법의 흐름도이다.
도 3a은 본 출원의 다른 실시예에 따른 신경망 가속기의 데이터 처리 방법의 흐름도이다.
도 3b는 본 출원의 일 실시예에 따른 콘볼루션 동작과 완전 연결 동작의 관련 관계의 모식도이다.
도 4는 본 출원의 또 다른 실시예에 따른 신경망 가속기의 데이터 처리 방법의 흐름도이다.
도 5는 본 출원의 또 다른 실시예에 따른 신경망 가속기의 데이터 처리 방법의 흐름도이다.
도 6은 본 출원의 일 신경망 가속기의 데이터 처리 장치의 모식도이다.
도 7은 본 출원의 다른 신경망 가속기의 데이터 처리 장치의 모식도이다.
도 8은 본 출원의 또 다른 신경망 가속기의 데이터 처리 장치의 모식도이다.
도 9는 본 출원의 또 다른 신경망 가속기의 데이터 처리 장치의 모식도이다.
도 10은 본 출원의 다른 신경망 가속기의 데이터 처리 장치의 모식도이다.
도 11은 본 출원의 다른 신경망 가속기의 데이터 처리 장치의 모식도이다.
도 12는 본 출원의 일 신경망 가속기의 데이터 처리 방법의 전자 기기의 블록도이다.
이하, 첨부 도면을 결부하여 본 출원의 예시적인 실시예들을 설명하고자 하며, 이해를 돕기 위해 본 출원의 실시예들의 다양한 세부 사항들이 포함되는데, 이들은 단지 예시적인 것으로 간주되어야 한다. 따라서, 본 출원의 기술 분야의 통상 지식을 가진 자라면 본 출원의 범위 및 사상을 벗어나지 않으면서 본 명세서에 설명된 실시예들에 대해 다양한 변경 및 수정이 이루어질 수 있음을 알아야 한다. 또한, 명확성 및 간결성을 위해, 공지된 기능 및 구조에 대한 설명은 아래 설명에서 생략된다.
관련 기술에서, 신경망 가속기에 콘볼루션 유닛, 완전 연결 유닛 등이 설치될 수 있다. 신경망 가속기에 비교적 많은 유닛이 설치되면 쉽게 신경망 가속기의 칩이 차지하는 면적이 점점 커지도록 하고, 하드 웨어 리소스를 비교적 많이 소모하므로 신경망 가속기 중의 데이터(예를 들어 음성 데이터)를 처리할 수 없게 된다. 따라서 칩 설계는 가능한 한 적은 하드웨어 리소스를 사용하거나 더 많은 운영자 작업을 구현하기 위해 동일한 하드웨어 리소스를 사용하는 것은 시급히 해결해야 할 문제로 된다.
상술한 문제를 해결하기 위해, 본 출원은 신경망 가속기의 데이터 처리 방법, 장치, 전자 기기 및 저장 매체를 제공한. 본 출원은 처리할 데이터 및 대응되는 수행할 동작을 획득한 후, 수행할 동작에 대응하는 실수 완전 연결 동작을 획득한 다음, 신경망 가속기의 실수 완전 연결 유닛에 따라 처리할 데이터에 대해 실수 완전 연결 동작을 수행하여, 처리할 데이터에 대한 수행할 동작의 수행 결과를 얻는다. 이로써 신경망 가속기의 실수 완전 연결 유닛을 통해 처리할 데이터에 대한 모든 동작을 구현할 수 있음으로써 실수 완전 연결 유닛의 재사용을 구현하여 하드웨어 논리가 가장 적은 경우에도 다양한 동작을 구현할 수 있다.
아래, 첨부 도면을 결부하여 본 출원의 실시예의 신경망 가속기의 데이터 처리 방법, 장치, 전자 기기 및 저장 매체에 대해 설명하고자 한다.
도 1은 본 출원의 일 실시예에 따른 신경망 가속기의 데이터 처리 방법의 흐름도이다. 설명해야 할 것은, 본 출원의 실시예에 따른 신경망 가속기의 데이터 처리 방법은 본 출원의 실시예에 따른 신경망 가속기의 데이터 처리 장치에 적용될 수 있고, 상기 장치는 하드웨어 기기 또는 하드웨어 기기에 설치된 소프트웨어일 수 있으며, 상기 장치는 전자 기기에 적용될 수 있고, 여기서 전자 기기는 단말 기기 또는 서버 등을 포함할 수 있다. 예를 들어, 모바일 단말기는 스마트 폰, 태블릿 컴퓨터, PAD 및 개인 정보 단말기 등을 포함한다. 본 출원의 실시예는 이에 대해 한정하지 않는다.
단계S101에서, 처리할 데이터 및 대응되는 수행할 동작을 획득한다.
본 출원의 실시예에서, 전자 기기를 통해 신경망 가속기 중 처리할 데이터 및 대응되는 수행할 동작을 획득할 수 있다.
설명해야 할 것은, 신경망은 많은 수의 인공 뉴런을 연결하여 계산하고, 비선형 통계 데이터 모델링 도구인 것으로 이해될 수 있으며, 여기서, 신경망은 하기와 같은 3개의 부분을 포함한다. 1) 아키텍처(Architecture), 아키텍처는 네트워크의 변수와 이들의 토폴로지 관계를 지정한다. 예를 들어, 신경망의 변수는 뉴런 연결의 가중치(weights) 및 뉴런의 활성화 값(activities of the neurons)일 수 있다. 2) 활성화 함수(Activity Rule), 대부분 신경망 모델은 다른 뉴런의 활동을 기반으로 뉴런 자체의 활성화 값을 변경하는 방법을 정의하는 단시간 규모의 동역학적 규칙이 있다. 일반적으로 활성화 함수는 네트워크의 가중치(즉 해당 네트워크의 파라미터)에 의존한다. 3) 학습 규칙(Learning Rule), 학습 규칙은 네트워크의 가중치가 시간에 따라 조정되는 방식을 지정한다. 일반적으로 장시간 규모의 동역학적 규칙으로 간주한다. 일반적으로 학습 규칙은 뉴런의 활성화 값에 의존한다. 이는 감독자가 제공하는 목표값 및 현재 가중치에 의존할 수 있다. 예를 들어, 필기 인식에 사용되는 신경망에는 입력 뉴런 세트가 있다. 입력 뉴런은 입력 이미지의 데이터에 의해 활성화될 수 있다. 활성화 값은 가중치가 부여되고 하나의 함수(네트워크의 설계자에 의해 결정됨)를 통과한 후, 이러한 뉴런들의 활성화 값은 다른 뉴런에 전달된다. 이 과정은 출력 뉴런이 활성화될 때까지 반복된다. 마지막으로 출력 뉴런의 활성화 값은 어떤 문자가 인식되는지 결정한다.
앞서 언급한 신경망을 기반으로, 클라우드에 서버를 설치하여 인공 지능 서비스를 제공할 수 있을 뿐만 아니라, 스마트 폰, 스마트 보안, 심지어 스마트 자동차에 적용되어 이미지 인식, 물체 추적 및 음성 인식 등 태스크를 구현할 수 있다. 그러나 이러한 적용은 그 적용 장면이 상이하고 또한 알고리즘 특성의 제한으로 인해, 저전력, 고효율적이고 신경망 알고리즘을 실행하기 위해 특별히 설계되는 칩을 제공할 필요가 있으며, 즉 신경망 가속기인 것으로 이해된다.
예를 들어, 본 출원의 일 실시예에서, 처리할 데이터는 음성 주파수 영역 데이터일 수 있고, 여기서 음성 주파수 영역 데이터는 음성 데이터에 대해 주파수 영역 변환을 수행하여 얻은 데이터이고, 음성 주파수 영역 변환에 대한 수행할 동작은 복소수 콘볼루션 동작, 복소수 완전 연결 동작, 그룹별 실수 콘볼루션 동작, 실수 콘볼루션 동작 등일 수 있다.
단계 S102에서, 수행할 동작에 대응하는 실수 완전 연결 동작을 획득한다.
다시 말해서, 처리할 데이터 및 대응되는 수행할 동작을 획득한 후, 수행할 동작에 대응하는 실수 완전 연결 동작을 획득할 수 있다.
여기서, 상이한 수행할 동작은 상이한 실수 완전 연결 동작에 대응한다. 구체적인 구현 과정은 후속의 실시예를 참조할 수 있다.
단계 S103에서, 신경망 가속기의 실수 완전 연결 유닛에 따라, 처리할 데이터에 대해 실수 완전 연결 동작을 수행하여, 처리할 데이터에 대한 수행할 동작의 수행 결과를 얻는다.
예를 들어, 수행할 동작에 대응하는 실수 완전 연결 동작을 획득한 후, 신경망 가속기의 실수 완전 연결 유닛에 따라, 획득된 음성 주파수 영역 데이터에 대해 실수 완전 연결 동작을 수행하여, 처리할 데이터에 대한 수행할 동작의 수행 결과를 얻을 수 있다.
본 출원의 실시예에 따른 신경망 가속기의 데이터 처리 방법은, 처리할 데이터 및 대응되는 수행할 동작을 획득한 후, 수행할 동작에 대응하는 실수 완전 연결 동작을 획득한 다음, 신경망 가속기의 실수 완전 연결 유닛에 따라 처리할 데이터에 대해 실수 완전 연결 동작을 수행하여, 처리할 데이터에 대한 수행할 동작의 수행 결과를 얻는다. 이로써 신경망 가속기의 실수 완전 연결 유닛을 통해, 처리할 데이터에 대한 모든 동작을 구현할 수 있음으로써 실수 완전 연결 유닛의 재사용을 구현하여 하드웨어 논리가 가장 적은 경우에도 다양한 동작을 구현할 수 있다.
본 분야의 기술자가 본 출원을 더 쉽게 이해할 수 있도록 하기 위해, 본 출원은 일 구체적인 실시예의 신경망 가속기의 데이터 처리 방법을 제공한다. 설명해야 할 것은, 상기 구체적인 실시예의 신경망 가속기의 데이터 처리 방법은 첫 번째 실시예를 더욱 세분화하거나 최적화하는 것이다. 여기서, 본 실시예는 획득된 수행할 동작이 복소수 콘볼루션 동작인 것을 예로 들며, 도 2는 본 출원의 일 구체적인 실시예에 따른 신경망 가속기의 데이터 처리 방법의 흐름도이고, 도 2에 도시된 바와 같이, 상기 신경망 가속기의 데이터 처리 방법은 하기와 같은 단계를 포함할 수 있다.
단계 S201에서, 처리할 데이터 및 대응되는 수행할 동작을 획득한다.
예를 들어, 처리할 데이터는 음성 주파수 영역 데이터일 수 있으며, 여기서, 음성 주파수 영역 데이터는 음성 데이터에 대해 주파수 영역 변환을 수행하여 얻은 데이터이고, 음성 주파수 영역 변환에 대한 수행할 동작은 복소수 콘볼루션 동작이다.
단계 S202에서, 복소수 콘볼루션 동작에 대응하는 실수 완전 연결 동작을 획득한다.
본 출원의 일 실시예에서, 획득된 수행할 동작이 복소수 콘볼루션 동작일 경우, 복소수 콘볼루션 동작에 해당하는 복소수 가중치 행렬을 획득한 후, 복소수 가중치 행렬을 분할하여, 실수 부분 가중치 행렬 및 허수 부분 가중치 행렬을 얻은 다음, 실수 부분 가중치 행렬에 따라 실수 부분 완전 연결 동작을 생성하며, 허수 부분 가중치 행렬에 따라 허수 부분 완전 연결 동작을 생성하고, 실수 부분 완전 연결 동작 및 허수 부분 완전 연결 동작을 조합하여 실수 완전 연결 동작을 얻는다.
단계 S203에서, 처리할 데이터의 입력 모드가 기설정된 입력 모드가 아닌 경우, 처리할 데이터의 입력 모드를 기설정된 입력 모드로 변환시킨다.
단계 S204에서, 신경망 가속기의 실수 완전 연결 유닛에 따라, 처리할 데이터에 대해 실수 완전 연결 동작을 수행하여, 처리할 데이터에 대한 수행할 동작의 수행 결과를 얻는다.
본 출원의 일 실시예에서, 복소수 콘볼루션 동작에 대응하는 실수 완전 연결 동작을 획득하고 처리할 데이터의 입력 모드를 기설정된 입력 모드로 변환시킨 후, 신경망 가속기의 실수 완전 연결 유닛에 따라, 처리할 데이터에 대해 실수 부분 완전 연결 동작을 수행하여, 실수 부분 결과를 얻은 다음, 신경망 가속기의 실수 완전 연결 유닛에 따라, 처리할 데이터에 대해 허수 부분 완전 연결 동작을 수행하여 허수 부분 결과를 얻은 후, 실수 부분 결과 및 허수 부분 결과에 따라 수행 결과를 생성할 수 있다.
본 출원의 실시예에 따른 신경망 가속기의 데이터 처리 방법은, 처리할 데이터 및 대응되는 수행할 동작을 획득하여 수행할 동작에 대응하는 실수 완전 연결 동작을 획득하며, 처리할 데이터의 입력 모드가 기설정된 입력 모드가 아닌 경우, 처리할 데이터의 입력 모드를 기설정된 입력 모드로 변환시켜, 신경망 가속기의 실수 완전 연결 유닛에 따라, 처리할 데이터에 대해 실수 완전 연결 동작을 수행하여, 처리할 데이터에 대한 수행할 동작의 수행 결과를 얻는다. 이로써 신경망 가속기의 실수 완전 연결 유닛을 통해, 처리할 데이터에 대해 복소수 콘볼루션 동작에 대응하는 실수 완전 연결 동작을 구현할 수 있음으로써 실수 완전 연결 유닛의 재사용을 구현하여, 하드웨어 논리가 가장 적은 경우에도 다양한 동작을 구현할 수 있다.
본 분야의 기술자가 본 출원을 더 쉽게 이해할 수 있도록 하기 위해, 본 출원은 일 구체적인 실시예의 신경망 가속기의 데이터 처리 방법을 제공한다. 설명해야 할 것은, 상기 구체적인 실시예의 신경망 가속기의 데이터 처리 방법은 첫 번째 실시예를 더욱 세분화하거나 최적화하는 것이다. 여기서, 이 실시예는 획득된 수행할 동작이 복소수 콘볼루션 동작인 것을 예로 들며, 도 3a은 본 출원의 다른 실시예에 따른 신경망 가속기의 데이터 처리 방법의 흐름도이고, 도 3a에 도시된 바와 같이, 상기 신경망 가속기의 데이터 처리 방법은 하기와 같은 단계를 포함할 수 있다.
단계 S301에서, 처리할 데이터 및 대응되는 수행할 동작을 획득한다.
예를 들어, 처리할 데이터는 음성 주파수 영역 데이터일 수 있고, 여기서, 음성 주파수 영역 데이터는 음성 데이터에 대해 주파수 영역 변환을 수행하여 얻은 데이터이고, 음성 주파수 영역 변환에 대한 수행할 동작은 복소수 완전 연결 동작이다.
단계 S302에서, 복소수 완전 연결 동작에 대응하는 실수 완전 연결 동작을 획득한다.
본 출원의 일 실시예에서, 획득된 수행할 동작이 복소수 완전 연결 동작일 경우, 복소수 완전 연결 동작에 대응하는 복소수 가중치 행렬을 획득하여 복소수 가중치 행렬을 분할하여, 실수 부분 가중치 행렬 및 허수 부분 가중치 행렬을 얻은 다음, 실수 부분 가중치 행렬에 따라 실수 부분 완전 연결 동작을 생성하고 허수 부분 가중치 행렬에 따라 허수 부분 완전 연결 동작을 생성하며 실수 부분 완전 연결 동작 및 허수 부분 완전 연결 동작을 조합하여 실수 완전 연결 동작을 얻는다.
단계 S303에서, 신경망 가속기의 실수 완전 연결 유닛에 따라, 처리할 데이터에 대해 실수 완전 연결 동작을 수행하여, 처리할 데이터에 대한 수행할 동작의 수행 결과를 얻는다.
다시 말해서, 복소수 완전 연결 동작에 대응하는 실수 완전 연결 동작을 획득한 후, 신경망 가속기의 실수 완전 연결 유닛에 따라, 획득된 처리할 데이터에 대해 복소수 완전 연결 동작에 대응하는 실수 완전 연결 동작을 수행하여 처리할 데이터에 대한 수행할 동작의 수행 결과를 얻는다.
설명해야 할 것은, 콘볼루션 동작과 완전 연결 동작은 연관성이 있고, 즉 콘볼루션 동작과 완전 연결 동작은 서로 변환될 수 있으며, 다시 말해서, 콘볼루션 동작은 완전 연결 동작으로 변환될 수 있다.
예를 들어, 도 3b에 도시된 바와 같이, 하나의 특징맵의 크기 정보는 C×H×W이고, 이는 특징 벡터 C×K×K에 대응되며, 복수의 특징맵의 크기 정보 C×H×W는 복수의 특징 벡터에 대응되고 특징맵 전체를 처리하면 특징 행렬 (H×W)×(C×K×K)를 얻을 수 있으며, 여기서, H×W는 콘볼루션 커널의 크기를 나타내고, 하나의 필터만 있을 경우, 이는 특징 행렬 (H×W)×(C×K×K)에 대응되며, 복수의 필터가 있을 경우, 이는 복수의 필터의 콘볼루션 행렬에 대응되므로, 콘볼루션 행렬 Cout x (H x W)에 특징 행렬 (C×K×K)×(H×W)를 곱하여 출력 행렬을 얻을 수 있다. 여기서, CNN 용어의 경우, 3x3 행렬은 “필터(Filter)”, 또는 “커널(Kernel)”, 또는 “특징 감지기(Feature detector)”로 지칭된다.
일 예시적인 설명은 하기와 같다. 통상적인 콘볼루션 동작은 입력 데이터에서 콘볼루션 커널의 크기에 따라 데이터를 추출할 수 있는바, 도 3b의 5x5를 예로 들면, 각각의 Channel(채널)에서 25개의 픽셀을 추출할 수 있고 3개 Channel에서는 총 3x5x5=75개의 픽셀을 추출하며, 여기서 상기 75개의 픽셀을 하나의 콘볼루션의 Kernel(커널)과 내적 연산하면 하나의 출력 포인트를 생성할 수 있고, C’개의 콘볼루션 커널과 연산하면 C’개의 Channel의 동일한 위치를 출력하는 포인트를 생성하며, 즉 하나의 동작을 얻을 수 있는바, 이는 입력 차원이 75이고 출력 차원이 C’인 벡터에 행렬을 곱하는 동작과 등가하다.
먼저 im2col 동작을 수행하여 상기 위치의 입력을 추출하되, 여기서 상기 위치의 출력은 콘볼루션에서 특정된 포인트의 출력을 계산하고, 위치는 상기 포인트를 의미하는 것으로 이해할 수 있으며, 다음, C’개의 콘볼루션 커널과 내적 연산을 수행하여 C’개의 값을 출력하고, 상이한 Channel의 동일한 위치에 각각 저장하며, 이와 같이 유추하면 콘볼루션 동작은 복수의 완전 연결 동작과 im2col 동작의 결합으로 유도될 수 있다.
여기서, 콘볼루션 계층이 신경망에서 일으키는 작용은 특징 추출이고 콘볼루션 계층은 많은 계층이 직렬로 연결되어 VGG 모델 추출과 같은 더욱 높은 차원의 특징을 추출한다. NPU(네트워크 프로세서)의 구현에서 효율을 최적화하기 위해 입력된 포맷은 CHW(C (Channel, 채널), H(Height, 높이), W(Width, 폭)) 모드가 아니라 HWC(H(Height, 높이), W(Width, 폭), (Channel, 채널)) 모드로 전치(transpose)되며, 여기서, 출력은 다음 계층의 콘볼루션 계층 호출을 위해 HWC 모드로 변환될 수 있고, 이 경우 W*C 방향에서 입력된 데이터는 연속적이다. H 방향에서 콘볼루션 커널의 데이터 메모리만 연속적이고, 데이터 입력을 위해 각각의 행이 차지하는 메모리는 w*c이고, 다음 행의 동일한 W 위치에서 포인트를 추출하며, 입력 데이터에 하나의 Stride(보폭)를 추가해야 한다. 소프트웨어의 경우, 이러한 불연속성으로 인해 어드레스 동작이 필요하므로 어셈블리 라인이 중단되어 효율의 손실을 초래한다. IC 설계의 경우, 해당하는 어드레스 제어 유닛을 하나 더 설치하면 효율이 솔실되지 않도록 보장할 수 있다. 정상적인 완전 연결 동작의 효율과 동일하다.
따라서, HWC 모드의 입력에 NPU 자체 추가된 어드레스 카운터를 조합하면, 효율성 저하를 초래하는 im2col의 구현을 추가할 필요 없이 벡터와 행렬의 곱셈과 동일한 효율성이 있는 동작을 구현할 수 있다.
설명해야 할 것은, 본 출원의 상술한 실시예에서, 복소수 콘볼루션 동작 및 복소수 완전 연결 동작에서 복소수 동작은 표준 복소수 단위로 구현해야 함으로써 IC(Integrated Circuit Chip, 칩)의 면적과 전력 소비를 증가시킨다. 그러나 복소수의 완전 연결은 변형 방식이 있을 수 있다. 먼저, 본소수의 곱셈 및 가하기 동작은 다음과 같다.
R.r+= A.r * B.r - A.i * B.i;
R.i+= A.r * B.i + A.i * B.r;
여기서, R는 실수 부분이고 i는 허수 부분이며 A는 입력 벡터이고 B는 가중치 행렬이다. 여기서, A를 변경하지 않고 B 가중치 행렬을 전처리하며 첫 번째 행에서 가중치 행렬의 모든 허수 부분에 대해 음수 값을 취하고 두 번째 행에서 가중치 행렬의 실수 부분과 허수 부분을 서로 교환하면, 직접적으로 실수 내적 방법을 사용하여 복소수의 내적 연산을 진행할 수 있다. 이러한 M*N의 가중치 행렬 연산은 2M * 2N의 실수 행렬 연산으로 간주하는바, 이러한 방법을 사용하면 가중치 행렬의 저장 공간은 1 배로 확장되며, 또한 음성 조작에서 복소수 콘볼루션 동작 및 복소수 완전 연결 동작의 메모리는 100KB 레벨이고 NPU는 MB 레벨로 설계되므로 이러한 저장 공간의 확장은 허용 가능하며, 그 장점은 입력을 직접 실수로 간주하고 하드웨어에 새로운 연산 논리를 추가하지 않는 것이다. 이로써 복소수 연산의 문제를 효과적으로 해결하고, 동일한 내적 연산 아키텍처에서 실수 연산과 복소수 연산을 동시에 지원할 수 있다.
예를 들어, M*N의 가중치 행렬 연산은 2M*2N의 실수 행렬 연산의 구현 과정으로 간주할 수 있고 아래의 실시예를 참조할 수 있으며, 예를 들어, 1x1의 복소수 행렬 동작은 2x2의 실수 행렬 동작으로 수정할 수 있고 첫 번째 행의 weight 각각은 B.r,-B.i이며 두 번째 행의 weight 각각은 B.i, B.r이고, 이와 같이 2차원의 입력 A.r, A.i와 행렬 연산을 수행하면 출력된 R.r와 R.i를 얻을 수 있다.
본 출원의 실시예에 따른 신경망 가속기의 데이터 처리 방법에 따르면, 신경망 가속기의 실수 완전 연결 유닛을 통해, 처리할 데이터에 대해 복소수 완전 연결 동작에 대응하는 실수 완전 연결 동작을 구현할 수 있음으로써 실수 완전 연결 유닛의 재사용을 구현하여 하드웨어 논리가 가장 적은 경우에도 실수 완전 연결 동작을 구현할 수 있다.
본 분야의 기술자가 본 출원을 더 쉽게 이해할 수 있도록 하기 위해, 본 출원은 일 구체적인 실시예의 신경망 가속기의 데이터 처리 방법을 제공한다. 설명해야 할 것은, 상기 구체적인 실시예의 신경망 가속기의 데이터 처리 방법은 첫 번째 실시예를 더욱 세분화하거나 최적화하는 것이다. 여기서, 본 실시예는 획득된 수행할 동작이 그룹별 실수 콘볼루션 동작인 것을 예로 들며, 도 4는 본 출원의 또 다른 실시예에 따른 신경망 가속기의 데이터 처리 방법의 흐름도이고, 도 4에 도시된 바와 같이, 상기 신경망 가속기의 데이터 처리 방법은 하기와 같은 단계를 포함할 수 있다.
단계 S401에서, 처리할 데이터 및 대응되는 수행할 동작을 획득한다.
예를 들어, 처리할 데이터는 음성 주파수 영역 데이터일 수 있고, 여기서, 음성 주파수 영역 데이터는 음성 데이터에 대해 주파수 영역 변환을 수행하여 얻은 데이터이고, 음성 주파수 영역 변환에 대한 수행할 동작은 그룹별 실수 콘볼루션 동작이다.
단계 S402에서, 그룹별 실수 콘볼루션 동작에 대응하는 실수 완전 연결 동작을 획득한다.
본 출원의 일 실시예에서, 획득된 수행할 동작이 그룹별 실수 콘볼루션 동작일 경우, 그룹별 실수 콘볼루션 동작의 제1 가중치 행렬을 획득한 다음, 제1 가중치 행렬을 처리하여 대응 실수 콘볼루션 동작에 해당하는 제2 가중치 행렬을 얻으며, 제2 가중치 행렬에 따라 실수 완전 연결 동작을 생성할 수 있다.
단계 S403에서, 신경망 가속기의 실수 완전 연결 유닛에 따라, 처리할 데이터에 대해 실수 완전 연결 동작을 수행하여, 처리할 데이터에 대한 수행할 동작의 수행 결과를 얻는다.
다시 말해서, 그룹별 실수 콘볼루션 동작에 대응하는 실수 완전 연결 동작을 획득한 후, 신경망 가속기의 실수 완전 연결 유닛에 따라, 획득된 처리할 데이터에 대해 그룹별 실수 콘볼루션에 대응하는 실수 완전 연결 동작을 수행하여 처리할 데이터에 대한 수행할 동작의 수행 결과를 얻을 수 있다.
설명해야 할 것은, 상기 실시예에서, 그룹별 실수 콘볼루션은 콘볼루션 파라미터 및 콘볼루션 계산 오버헤드를 감소시키는 방법이되, 여기서 그룹별 콘볼루션은 NPU(Neural-network Processing Unit, 네트워크 프로세서) 연산에 적합하지 않기에, 전용 그룹별 콘볼루션을 추가하면 NPU의 하드웨어 설계는 훨씬 복잡해진다. 여기서, 실제 모델에서, 가장 많이 사용되는 그룹별 콘볼루션은 깊이별 분리 콘볼루션(deepthwise separable convolution)이고 통상적인 벡터 곱셈 및 가하기 연산으로 얻을 수 있으며, 현재 NPU에서도 지원된다. 예를 들어, group(그룹)!= C 또는 C’인 그룹별 콘볼루션에 대해, weight를 전처리하여 통상적인 콘볼루션으로 변경한다. 그룹별 콘볼루션은, 입력 channel C에서, 각각의 그룹에 D = C/group 개의 channel(채널)이 있고 이러한 channel이 콘볼루션 커널과 콘볼루션을 수행하여 하나의 출력값을 얻는 것으로 간주할 수 있다. 각각의 콘볼루션 커널의 파라미터는 KernelH * KernelW * D이되, weight를 각각의 콘볼루션 커널의 파라미터가 KernelH * KernelW * C인 것으로 지정하면 channel D가 아닌 콘볼루션 커널 파라미터는 모두 0으로 되므로 이렇게 얻은 결과는 별도의 그룹별 콘볼루션의 결과와 동일하고 구별점은 계산량이 증가되는 것이다. 단지 NPU의 경우 그룹별 콘볼루션은 통상적인 콘볼루션의 동작으로 변경된다. 그러나 콘볼루션 자체의 파라미터는 아주 작기에 파라미터를 C channel 크기로 복원하는 것이 가능하다. 이로써 NPU IP의 핵심 하드웨어 논리는 복잡도가 줄어들고 설계가 더욱 일반화되므로, 상이한 GroupNumber(분류)의 그룹별 콘볼루션이 모두 지원을 받아야 하고 하드웨어 설계가 모두 필요하다는 문제를 방지한다.
따라서, 그룹별 콘볼루션은 weight를 통상적인 콘볼루션의 weight로 전환하고, 그룹별 콘볼루션은 실질적으로 콘볼루션의 weight를 압축시키는 것이다. 통상적인 콘볼루션의 weight로 전환된 경우, 다른 그룹에 위치하는 weight의 값은 모두 0이고, 이렇게 하는 목적은 동일한 하드웨어 논리를 사용하는 것이며, 이는 NPU의 벡터 유닛이 매우 강하고 통상적인 콘볼루션을 전문적으로 처리 및 최적화할 수 있기 때문이다.
본 출원의 실시예에 따른 신경망 가속기의 데이터 처리 방법은, 신경망 가속기의 실수 완전 연결 유닛을 통해, 처리할 데이터에 대해 그룹별 실수 콘볼루션 동작에 대응하는 실수 완전 연결 동작을 구현할 수 있음으로써 실수 완전 연결 유닛의 재사용을 구현하여 하드웨어 논리가 가장 적은 경우에도 실수 완전 연결 동작을 구현할 수 있다.
본 분야의 기술자가 본 출원을 더 쉽게 이해할 수 있도록 하기 위해, 본 출원은 일 구체적인 실시예의 신경망 가속기의 데이터 처리 방법을 제공한다. 설명해야 할 것은, 상기 구체적인 실시예의 신경망 가속기의 데이터 처리 방법은 첫 번째 실시예를 더욱 세분화하거나 최적화하는 것이다. 여기서, 본 실시예는 획득된 수행할 동작은 실수 콘볼루션 동작인 것을 예로 들며, 도 5는 본 출원의 또 다른 실시예에 따른 신경망 가속기의 데이터 처리 방법의 흐름도이고, 도 5에 도시된 바와 같이, 상기 신경망 가속기의 데이터 처리 방법은 하기와 같은 단계를 포함할 수 있다.
단계 S501에서, 처리할 데이터 및 대응되는 수행할 동작을 획득한다.
예를 들어, 처리할 데이터는 음성 주파수 영역 데이터일 수 있고, 여기서, 음성 주파수 영역 데이터는 음성 데이터에 대해 주파수 영역 변환을 수행하여 얻은 데이터이고, 음성 주파수 영역 변환에 대한 수행할 동작은 실수 콘볼루션 동작이다.
단계 S502에서, 실수 콘볼루션 동작에 대응하는 실수 완전 연결 동작을 획득한다.
본 출원의 일 실시예에서, 획득된 수행할 동작이 실수 콘볼루션 동작일 경우, 실수 콘볼루션 동작에 해당하는 적어도 하나의 가중치 행렬을 획득한 후, 적어도 하나의 가중치 행렬에 따라 적어도 하나의 실수 완전 연결 동작을 생성할 수 있다.
단계 S503에서, 신경망 가속기의 실수 완전 연결 유닛에 따라, 처리할 데이터에 대해 실수 완전 연결 동작을 수행하여, 처리할 데이터에 대한 수행할 동작의 수행 결과를 얻는다.
다시 말해서, 수행할 동작에 대응하는 실수 완전 연결 동작을 획득한 후, 신경망 가속기의 실수 완전 연결 유닛에 따라, 획득된 처리할 데이터에 대해 실수 완전 연결 동작을 수행하여 처리할 데이터에 대한 수행할 동작의 수행 결과를 얻을 수 있다.
본 출원의 실시예에 따른 신경망 가속기의 데이터 처리 방법은, 신경망 가속기의 실수 완전 연결 유닛을 통해, 처리할 데이터에 대해 실수 콘볼루션 동작에 대응하는 실수 완전 연결 동작을 구현할 수 있음으로써, 실수 완전 연결 유닛의 재사용을 구현하여 하드웨어 논리가 가장 적은 경우에도 실수 완전 연결 동작을 구현할 수 있다.
상술한 몇가지 실시예에 의해 제공되는 신경망 가속기의 데이터 처리 방법에 대응하여, 본 출원의 하나의 실시예는 또한 신경망 가속기의 데이터 처리 장치를 제공하며, 본 출원의 실시예에 의해 제공되는 신경망 가속기의 데이터 처리 장치는 상술한 몇가지 실시예에 의해 제공되는 신경망 가속기의 데이터 처리 방법에 대응하므로, 신경망 가속기의 데이터 처리 방법의 실시형태 역시 본 실시예에 의해 제공되는 신경망 가속기의 데이터 처리 장치에 적용되기에 본 실시예에서 더이상 상세하게 설명하지 않는다.
도 6은 본 출원에 따른 신경망 가속기의 데이터 처리 장치의 모식도이다. 도 6에 도시된 바와 같이, 상기 신경망 가속기의 데이터 처리 장치(600)은 제1 획득 모듈(610), 제2 획득 모듈(620) 및 제1 처리 모듈(630)을 포함한다.
제1 획득 모듈(610)은, 처리할 데이터 및 대응되는 수행할 동작을 획득한다.
제2 획득 모듈(620)은, 상기 수행할 동작에 대응하는 실수 완전 연결 동작을 획득한다.
제1 처리 모듈(630)은, 상기 신경망 가속기의 실수 완전 연결 유닛에 따라, 상기 처리할 데이터에 대해 상기 실수 완전 연결 동작을 수행하여, 상기 처리할 데이터에 대한 상기 수행할 동작의 수행 결과를 얻는다. 일 예시로서, 상기 제1 처리 모듈은 구체적으로, 상기 신경망 가속기의 실수 완전 연결 유닛에 따라, 상기 처리할 데이터에 대해 상기 실수 부분 완전 연결 동작을 수행하여, 실수 부분 결과를 얻고; 상기 신경망 가속기의 실수 완전 연결 유닛에 따라, 상기 처리할 데이터에 대해 상기 허수 부분 완전 연결 동작을 수행하여, 허수 부분 결과를 얻으며; 상기 실수 부분 결과 및 허수 부분 결과에 따라 상기 수행 결과를 생성한다.
본 출원의 일 실시예에서, 도 7에 도시된 바와 같이, 상기 수행할 동작은 복소수 콘볼루션 동작이고, 상기 제2 획득 모듈(720)은, 상기 복소수 콘볼루션 동작에 대응하는 복소수 가중치 행렬을 획득하는 제1 획득 유닛(7201); 상기 복소수 가중치 행렬을 분할하여, 실수 부분 가중치 행렬 및 허수 부분 가중치 행렬을 얻는 제2 획득 유닛(7202); 상기 실수 부분 가중치 행렬에 따라 실수 부분 완전 연결 동작을 생성하고, 허수 부분 가중치 행렬에 따라 허수 부분 완전 연결 동작을 생성하는 제1 생성 유닛(7203); 및 상기 실수 부분 완전 연결 동작 및 상기 허수 부분 완전 연결 동작을 조합하여, 상기 실수 완전 연결 동작을 얻는 제3 획득 유닛(7204); 을 포함한다.
여기서, 도 7의 710-730은 도 6의 610-630과 동일한 기능과 구조를 구비한다.
본 출원의 일 실시예에서, 도 8에 도시된 바와 같이, 상기 제1 처리 모듈(830) 이전에, 상기 장치는 상기 처리할 데이터의 입력 모드가 기설정된 입력 모드가 아닌 경우, 상기 처리할 데이터의 입력 모드를 상기 기설정된 입력 모드로 변환시키는 변환 모듈(840);을 더 포함한다.
여기서, 도 8의 810-830은 도 7의 710-730과 동일한 기능과 구조를 구비한다.
본 출원의 일 실시예에서, 도 9에 도시된 바와 같이, 상기 동작은 복소수 완전 연결 동작이고, 상기 제2 획득 모듈(920)은, 상기 복소수 완전 연결 동작에 대응하는 복소수 가중치 행렬을 획득하는 제4 획득 유닛(9201); 상기 복소수 가중치 행렬을 분할하여, 실수 부분 가중치 행렬 및 허수 부분 가중치 행렬을 얻는 제5 획득 유닛(9202); 상기 실수 부분 가중치 행렬에 따라 실수 부분 완전 연결 동작을 생성하고, 허수 부분 가중치 행렬에 따라 허수 부분 완전 연결 동작을 생성하는 제2 생성 유닛(9203); 및 상기 실수 부분 완전 연결 동작 및 상기 허수 부분 완전 연결 동작을 조합하여, 상기 실수 완전 연결 동작을 얻는 제1 조합 유닛(9204);을 포함한다.
여기서, 도 9의 910-930은 도 6의 610-630과 동일한 기능과 구조를 구비한다.
본 출원의 일 실시예에서, 도 10에 도시된 바와 같이, 상기 수행할 동작은 그룹별 실수 콘볼루션 동작이고, 상기 제2 획득 모듈(1020)은, 상기 그룹별 실수 콘볼루션 동작의 제1 가중치 행렬을 획득하는 제6 획득 유닛(10201); 상기 제1 가중치 행렬을 처리하여, 대응 실수 콘볼루션 동작에 해당하는 제2 가중치 행렬을 얻는 제7 획득 유닛(10202); 및 상기 제2 가중치 행렬에 따라, 상기 실수 완전 연결 동작을 생성하는 제3 생성 유닛(10203);을 포함한다.
여기서, 도 10의 1010-1030은 도 6의 610-630과 동일한 기능과 구조를 구비한다.
본 출원의 일 실시예에서, 도 11에 도시된 바와 같이, 상기 수행할 동작은 실수 콘볼루션 동작이고, 상기 제2 획득 모듈(1120)은, 상기 실수 콘볼루션 동작에 해당하는 적어도 하나의 가중치 행렬을 획득하는 제8 획득 유닛(11201); 및 상기 적어도 하나의 가중치 행렬에 따라, 상기 적어도 하나의 실수 완전 연결 동작을 생성하는 제4 생성 유닛(11202);을 포함한다.
여기서, 도 11의 1110-1130은 도 6의 610-630과 동일한 기능과 구조를 구비한다.
본 출원의 실시예에 따른 신경망 가속기의 데이터 처리 장치는, 처리할 데이터 및 대응되는 수행할 동작을 획득한 후, 수행할 동작에 대응하는 실수 완전 연결 동작을 획득한 다음, 신경망 가속기의 실수 완전 연결 유닛에 따라 처리할 데이터에 대해 실수 완전 연결 동작을 수행하여, 처리할 데이터에 대한 수행할 동작의 수행 결과를 얻는다. 이로써 신경망 가속기의 실수 완전 연결 유닛을 통해 처리할 데이터에 대한 모든 동작을 구현할 수 있음으로써 실수 완전 연결 유닛의 재사용을 구현하여 하드웨어 논리가 가장 적은 경우에도 다양한 동작을 구현할 수 있다.
본 출원의 실시예에 따르면, 본 출원은 또한 전자 기기, 판독 가능 저장 매체 및 컴퓨터 프로그램을 제공한다.
도 12에 도시된 바와 같이, 도 12는 본 출원의 실시예에 따른 신경망 가속기의 데이터 처리 방법의 전자 기기의 블록도이다. 전자 기기는 랩톱 컴퓨터, 데스크톱 컴퓨터, 워크 벤치, 개인 정보 단말기, 서버, 블레이드 서버, 메인 프레임 컴퓨터, 및 다른 적합한 컴퓨터와 같은 다양한 형태의 디지털 컴퓨터를 의미한다. 예를 들어 전자 기기는 개인 디지털 처리, 셀룰러 폰, 스마트 폰, 웨어러블 기기 및 다른 유사한 컴퓨팅 장치와 같은 다양한 형태의 모바일 장치를 나타낼 수도 있다. 본 명세서에 개시된 부재, 이들의 연결 및 관계, 및 그 기능은 단지 예시에 불과하며, 본 명세서에 기술되거나 청구된 본 출원의 구현을 한정하도록 의도되지 않는다..
도 12는 본 출원의 실시예를 실시하기 위한 예시적 전자 기기(1200)의 예시적 블로도를 도시한다. 전자 기기는 랩톱 컴퓨터, 데스크톱 컴퓨터, 워크 벤치, 개인 정보 단말기, 서버, 블레이드 서버, 메인 프레임 컴퓨터, 및 다른 적합한 컴퓨터와 같은 다양한 형태의 디지털 컴퓨터를 의미한다. 전자 기기는 개인 디지털 처리, 셀룰러 폰, 스마트 폰, 웨어러블 기기 및 다른 유사한 컴퓨팅 장치와 같은 다양한 형태의 모바일 장치를 나타낼 수도 있다. 본 명세서에 개시된 부재, 이들의 연결 및 관계, 및 그 기능은 단지 예시에 불과하며, 본 명세서에 기술되거나 청구된 본 출원의 구현을 한정하도록 의도되지 않는다.
도 12에 도시된 바와 같이, 기기(1200)는 읽기 전용 메모리(1202, Read-Only Memory, ROM)에 저장된 컴퓨터 프로그램 또는 저장 유닛(12012)으로부터 랜덤 액세스 메모리(1203, Random Access Memory, RAM)에 로딩된 컴퓨터 프로그램에 따라 다양한 적절한 동작 및 처리를 수행할 수 있는 컴퓨팅 유닛(1201)을 포함한다. RAM(1203)에서, 또한 기기(1200)의 조작에 필요한 다양한 프로그램과 데이터를 저장할 수 있다. 컴퓨팅 유닛(1201), ROM(1202) 및 RAM (1203)은 버스(1204)를 통해 서로 연결된다. 입력/출력(Input/Output, I/O) 인터페이스(1205)도 버스(1204)에 연결된다.
키보드, 마우스 등과 같은 입력 유닛(1206); 다양한 유형의 디스플레이, 스피커 등과 같은 출력 유닛(1207); 자기 디스크, 광 디스크 등과 같은 저장 유닛(1208); 및 네트워크 카드, 모뎀, 무선 통신 트랜시버 등과 같은 통신 유닛(1209);을 포함하는 기기(1200)의 복수의 부재는 I/O 인터페이스(1205)에 연결된다. 통신 유닛(1209)은 기기(1200)가 인터넷과 같은 컴퓨터 네트워크 및/또는 다양한 통신 네트워크를 통해 다른 기기와 정보/데이터를 교환하도록 허용한다.
컴퓨팅 유닛(1201)은 처리 및 컴퓨팅 기능을 갖는 다양한 범용 및/또는 전용 처리 컴포넌트일 수 있다. 컴퓨팅 유닛(1201)의 일부 예시는 중앙 처리 유닛(Central Processing Unit, CPU), 그래픽 처리 유닛(Graphic Processing Units, GPU), 다양한 전용 인공지능(Artificial Intelligence, AI) 컴퓨팅 칩, 기계 학습 모델 알고리즘을 실행하는 다양한 컴퓨팅 유닛, 디지털 신호 프로세서(Digital Signal Processor, DSP), 및 임의의 적절한 프로세서, 컨트롤러, 마이크로 컨트롤러 등을 포함하지만 이에 한정되는 것은 아니다. 컴퓨팅 유닛(1201)은 신경망 가속기의 데이터 처리 방법과 같이 상술한 다양한 방법 및 처리를 수행한다. 예를 들어, 일부 실시예에서, 신경망 가속기의 데이터 처리는 저장 유닛(1208)과 같은 기계 판독 가능 매체에 유형적으로 포함되는 컴퓨터 소프트웨어 프로그램으로 구현될 수 있다. 일부 실시예에서, 컴퓨터 프로그램의 부분 또는 전부는 ROM(1202) 및/또는 통신 유닛(1209)을 통해 기기(1200)에 로딩 및/또는 설치될 수 있다. 컴퓨터 프로그램이 RAM(1203)에 로딩되어 컴퓨팅 유닛(1201)에 의해 실행될 경우, 상술한 신경망 가속기의 데이터 처리 방법의 하나 또는 복수의 단계를 수행할 수 있다. 대안적으로, 다른 실시예에서, 컴퓨팅 유닛(1201)은 다른 임의의 적절한 방식(예를 들어, 펌웨어에 의함)을 통해 신경망 가속기의 데이터 처리 방법을 수행하도록 구성될 수 있다.
본 명세서에서 이상 서술된 시스템 및 기술의 다양한 실시형태는 디지털 전자 회로 시스템, 집적 회로 시스템, 필드 프로그래머블 어레이(Field Programmable Gate Array, FPGA), 전용 집적 회로(Application-Specific Integrated Circuit, ASIC), 전용 표준 제품(Application Specific Standard Product, ASSP), 시스템 온 칩(System On Chip, SOC), 복합 프로그래머블 논리 소자(Complex Programmable Logic Device, CPLD), 컴퓨터 하드웨어, 펌웨어, 소프트웨어, 및/또는 이들의 조합에서 구현될 수 있다. 이러한 다양한 실시형태는 하나 또는 복수의 컴퓨터 프로그램에서 구현되는 것을 포함할 수 있고, 상기 하나 또는 복수의 컴퓨터 프로그램은 적어도 하나의 프로그래머블 프로세서를 포함하는 프로그래머블 시스템에서 실행 및/또는 해석될 수 있으며, 상기 프로그래머블 프로세서는 전용 또는 범용 프로그래머블 프로세서일 수 있고, 저장 시스템, 적어도 하나의 입력장치, 및 적어도 하나의 출력장치로부터 데이터와 명령을 수신하며, 데이터와 명령을 상기 저장 시스템, 상기 적어도 하나의 입력장치, 및 상기 적어도 하나의 출력장치로 전송할 수 있다.
본 출원의 방법을 실시하기 위한 프로그램 코드는 하나 또는 복수의 프로그래밍 언어의 임의의 조합으로 작성될 수 있다. 이러한 프로그램 코드는 범용 컴퓨터, 전용 컴퓨터 또는 다른 프로그래머블 데이터 처리 장치의 프로세서 또는 컨트롤러에 제공되어, 프로그램 코드가 프로세서 또는 컨트롤러에 의해 실행될 경우 흐름도 및/또는 블록도에서 규정하는 기능/동작이 실시될 수 있도록 한다. 프로그램 코드는 완전히 기계에서 실행되거나, 부분적으로 기계에서 실행될 수 있으며, 독립형 소프트웨어 패키지로서 부분적으로 기계에서 실행되고 부분적으로 원격 기계에서 실행되거나 완전히 원격 기계 또는 서버에서 실행될 수도 있다.
본 출원의 컨텍스트에서, 기계 판독 가능 매체는 명령 실행 시스템, 장치 또는 기기에 의해 사용되거나 명령 실행 시스템, 장치 또는 기기와 결합되어 사용되는 프로그램을 포함하거나 저장할 수 있는 유형 매체일 수 있다. 기계 판독 가능 매체는 기계 판독 가능 신호 매체이거나 기계 판독 가능 저장 매체일 수 있다. 기계 판독 가능 매체는 전자적, 자기적, 광학적, 전자기적, 적외선, 또는 반도체 시스템, 장치 또는 기기, 또는 상술한 내용의 임의의 적절한 조합을 포함할 수 있지만 이에 한정되는 것은 아니다. 기계 판독 가능 저장 매체의 더 구체적인 예시는 하나 또는 복수의 와이어를 기반으로 하는 전기적 연결, 휴대형 컴퓨터 디스크, 하드 디스크, 랜덤 액세스 메모리(RAM), 읽기 전용 메모리(ROM), 소거 가능 및 프로그래머블 읽기 전용 메모리(Electrically Programmable Read-Only-Memory, EPROM) 또는 플래쉬 메모리, 광섬유, 휴대용 컴팩트 읽기 전용 메모리(Compact Disc Read-Only Memory, CD-ROM), 광학 저장 기기, 자기 저장 기기, 또는 상술한 내용의 임의의 적절한 조합을 포함한다.
사용자와의 인터랙션을 제공하기 위해, 컴퓨터에서 여기에 설명된 시스템 및 기술을 구현할 수 있고, 상기 컴퓨터는 사용자에게 정보를 표시하기 위한 디스플레이 장치(예를 들어, CRT(Cathode-Ray Tube, 캐소드레이 튜브) 또는 LCD(Liquid Crystal Display, 액정 디스플레이) 모니터)와 키보드 및 포인팅 장치(예를 들어, 마우스 또는 트랙볼)를 구비하며, 사용자는 상기 키보드 및 상기 포인팅 장치를 통해 입력하여 컴퓨터에 제공할 수 있다. 다른 종류의 장치를 사용하여 사용자와의 인터랙션을 제공할 수도 있는데 예를 들어, 사용자에게 제공되는 피드백은 임의의 형태의 센싱 피드백(예를 들어, 시각적 피드백, 청각적 피드백, 또는 촉각적 피드백)일 수 있고; 임의의 형태(사운드 입력, 음성 입력 또는 촉각 입력을 포함함)를 통해 사용자로부터의 입력을 수신할 수 있다.
여기에 설명되는 시스템과 기술은 백엔드 부재를 포함하는 컴퓨팅 시스템(예를 들어, 데이터 서버로 사용됨), 또는 미들웨어 부재를 포함하는 컴퓨팅 시스템(예를 들어, 애플리케이션 서버), 또는 프론트 엔드 부재를 포함하는 컴퓨팅 시스템(예를 들어, 그래픽 유저 인터페이스 또는 인터넷 브라우저를 구비하는 사용자 컴퓨터이고, 사용자는 상기 그래픽 유저 인터페이스 또는 상기 웹 브라우저를 통해 여기에 설명되는 시스템 및 기술의 실시형태와 인터랙션할 수 있음), 또는 이러한 백엔드 부재, 미들웨어 부재, 또는 프론트 엔드 부재의 임의의 조합을 포함하는 컴퓨팅 시스템에서 구현될 수 있다. 시스템의 부재는 임의의 형태 또는 매체의 디지털 데이터 통신(예를 들어, 통신 네트워크)에 의해 상호 연결될 수 있다. 통신 네트워크의 예로는 근거리 통신망(Local Area Network, LAN), 광역 통신망(Wide Area Network, WAN), 인터넷 및 블록 체인 네트워크가 포함된다.
컴퓨터 시스템은 클라이언트 및 서버를 포함할 수 있다. 클라이언트와 서버는 일반적으로 서로 멀리 떨어져 있으며, 일반적으로 통신 네트워크를 통해 인터랙션한다. 해당 컴퓨터에서 실행되며 서로 클라이언트-서버 관계를 가지는 컴퓨터 프로그램을 통해 클라이언트와 서버의 관계를 생성한다. 서버는 클라우드 컴퓨팅 서버 또는 클라우드 호스트로도 지칭되는 클라우드 서버일 수 있고, 클라우드 컴퓨팅 서비스 시스템 중의 일 호스트 제품으로서, 기존의 물리 호스트와 VPS 서비스(“Virtual Private Server”, 또는 “VPS”로 약칭)에서 존재하는 관리 상의 어려움이 크고, 서비스 확장이 약한 결함을 해결한다. 서버는 분산형 시스템의 서버, 또는 블록 체인이 결합된 서버일 수도 있다.
여기서 설명해야 할 것은, 인공지능은 컴퓨터가 인간의 일부 사고 과정과 지능적인 행동(예를 들어 학습, 추론, 사고, 계획 등)을 시뮬레이션하도록 연구하는 학과이며, 하드웨어 수준의 기술과 소프트웨어 수준의 기술을 모두 가지고 있다. 인공 지능 하드웨어 기술에는 일반적으로 센서, 전용 인공 지능 칩, 클라우드 컴퓨팅, 분산 저장 및 빅 데이터 처리 등과 같은 기술이 포함되며; 인공 지능 소프트웨어 기술에는 주로 컴퓨터 비전 기술, 음성 인식 기술, 자연어 처리 기술 및 머신 러닝/딥 러닝, 빅 데이터 처리 기술, 지식 그래프 기술 등과 같은 기술이 포함된다.
상술한 다양한 형태의 프로세스를 사용하여 단계를 재정렬, 추가 또는 삭제할 수 있다는 것을 이해해야 한다. 예를 들어, 본 출원에 설명된 각 단계들은 병렬, 순차적 또는 상이한 순서로 수행될 수 있고, 본 출원에 개시된 기술적 해결수단이 원하는 결과를 달성할 수만 있으면, 별도로 한정하지 않는다.
상기 구체적인 실시형태는 본 출원의 보호범위에 대한 한정으로 구성되지 않는다. 당업자는, 설계 요건 및 기타 요인에 따라, 다양한 수정, 조합, 서브 조합 및 대체가 이루어질 수 있다는 것을 이해해야 한다. 본 출원의 정신과 원칙 내에서 이루어진 모든 수정, 동등한 대체 및 개선은 모두 본 출원의 보호 범위에 포함되어야 한다.
Claims (17)
- 신경망 가속기의 데이터 처리 방법에 있어서,
처리할 데이터 및 대응되는 수행할 동작을 획득하는 단계;
상기 수행할 동작에 대응하는 실수 완전 연결 동작을 획득하는 단계; 및
상기 신경망 가속기의 실수 완전 연결 유닛에 따라, 상기 처리할 데이터에 대해 상기 실수 완전 연결 동작을 수행하여, 상기 처리할 데이터에 대한 상기 수행할 동작의 수행 결과를 얻는 단계; 를 포함하는,
것을 특징으로 하는 신경망 가속기의 데이터 처리 방법. - 제1항에 있어서,
상기 수행할 동작은 복소수 콘볼루션 동작이고,
상기 수행할 동작에 대응하는 실수 완전 연결 동작을 획득하는 단계는,
상기 복소수 콘볼루션 동작에 대응하는 복소수 가중치 행렬을 획득하는 단계;
상기 복소수 가중치 행렬을 분할하여, 실수 부분 가중치 행렬 및 허수 부분 가중치 행렬을 얻는 단계;
상기 실수 부분 가중치 행렬에 따라 실수 부분 완전 연결 동작을 생성하고, 허수 부분 가중치 행렬에 따라 허수 부분 완전 연결 동작을 생성하는 단계; 및
상기 실수 부분 완전 연결 동작 및 상기 허수 부분 완전 연결 동작을 조합하여, 상기 실수 완전 연결 동작을 얻는 단계; 를 포함하는,
것을 특징으로 하는 신경망 가속기의 데이터 처리 방법. - 제2항에 있어서,
상기 신경망 가속기의 실수 완전 연결 유닛에 따라, 상기 처리할 데이터에 대해 상기 실수 완전 연결 동작을 수행하여, 상기 처리할 데이터에 대한 상기 수행할 동작의 수행 결과를 얻는 단계는,
상기 신경망 가속기의 실수 완전 연결 유닛에 따라, 상기 처리할 데이터에 대해 상기 실수 부분 완전 연결 동작을 수행하여, 실수 부분 결과를 얻는 단계;
상기 신경망 가속기의 실수 완전 연결 유닛에 따라, 상기 처리할 데이터에 대해 상기 허수 부분 완전 연결 동작을 수행하여, 허수 부분 결과를 얻는 단계; 및
상기 실수 부분 결과 및 허수 부분 결과에 따라 상기 수행 결과를 생성하는 단계; 를 포함하는,
것을 특징으로 하는 신경망 가속기의 데이터 처리 방법. - 제2항에 있어서,
상기 신경망 가속기의 실수 완전 연결 유닛에 따라, 상기 처리할 데이터에 대해 상기 실수 완전 연결 동작을 수행하여, 상기 처리할 데이터에 대한 상기 수행할 동작의 수행 결과를 얻는 단계 이전에,
상기 처리할 데이터의 입력 모드가 기설정된 입력 모드가 아닌 경우, 상기 처리할 데이터의 입력 모드를 상기 기설정된 입력 모드로 변환시키는 단계; 를 더 포함하는,
것을 특징으로 하는 신경망 가속기의 데이터 처리 방법. - 제1항에 있어서,
상기 동작은 복소수 완전 연결 동작이고,
상기 수행할 동작에 대응하는 실수 완전 연결 동작을 획득하는 단계는,
상기 복소수 완전 연결 동작에 대응하는 복소수 가중치 행렬을 획득하는 단계;
상기 복소수 가중치 행렬을 분할하여, 실수 부분 가중치 행렬 및 허수 부분 가중치 행렬을 얻는 단계;
상기 실수 부분 가중치 행렬에 따라 실수 부분 완전 연결 동작을 생성하고, 허수 부분 가중치 행렬에 따라 허수 부분 완전 연결 동작을 생성하는 단계; 및
상기 실수 부분 완전 연결 동작 및 상기 허수 부분 완전 연결 동작을 조합하여, 상기 실수 완전 연결 동작을 얻는 단계; 를 포함하는,
것을 특징으로 하는 신경망 가속기의 데이터 처리 방법. - 제1항에 있어서,
상기 수행할 동작은 그룹별 실수 콘볼루션 동작이고,
상기 수행할 동작에 대응하는 실수 완전 연결 동작을 획득하는 단계는,
상기 그룹별 실수 콘볼루션 동작의 제1 가중치 행렬을 획득하는 단계;
상기 제1 가중치 행렬을 처리하여, 대응 실수 콘볼루션 동작에 해당하는 제2 가중치 행렬을 얻는 단계; 및
상기 제2 가중치 행렬에 따라, 상기 실수 완전 연결 동작을 생성하는 단계; 를 포함하는,
것을 특징으로 하는 신경망 가속기의 데이터 처리 방법. - 제1항에 있어서,
상기 수행할 동작은 실수 콘볼루션 동작이고,
상기 수행할 동작에 대응하는 실수 완전 연결 동작을 획득하는 단계는,
상기 실수 콘볼루션 동작에 해당하는 적어도 하나의 가중치 행렬을 획득하는 단계; 및
상기 적어도 하나의 가중치 행렬에 따라, 상기 적어도 하나의 실수 완전 연결 동작을 생성하는 단계; 를 더 포함하는,
것을 특징으로 하는 신경망 가속기의 데이터 처리 방법. - 신경망 가속기의 데이터 처리 장치에 있어서,
처리할 데이터 및 대응되는 수행할 동작을 획득하는 제1 획득 모듈;
상기 수행할 동작에 대응하는 실수 완전 연결 동작을 획득하는 제2 획득 모듈; 및
상기 신경망 가속기의 실수 완전 연결 유닛에 따라, 상기 처리할 데이터에 대해 상기 실수 완전 연결 동작을 수행하여, 상기 처리할 데이터에 대한 상기 수행할 동작의 수행 결과를 얻는 제1 처리 모듈; 을 포함하는,
것을 특징으로 하는 신경망 가속기의 데이터 처리 장치. - 제8항에 있어서,
상기 수행할 동작은 복소수 콘볼루션 동작이고,
상기 제2 획득 모듈은,
상기 복소수 콘볼루션 동작에 대응하는 복소수 가중치 행렬을 획득하는 제1 획득 유닛;
상기 복소수 가중치 행렬을 분할하여, 실수 부분 가중치 행렬 및 허수 부분 가중치 행렬을 얻는 제2 획득 유닛;
상기 실수 부분 가중치 행렬에 따라 실수 부분 완전 연결 동작을 생성하고, 허수 부분 가중치 행렬에 따라 허수 부분 완전 연결 동작을 생성하는 제1 생성 유닛; 및
상기 실수 부분 완전 연결 동작 및 상기 허수 부분 완전 연결 동작을 조합하여, 상기 실수 완전 연결 동작을 얻는 제3 획득 유닛; 을 포함하는,
것을 특징으로 하는 신경망 가속기의 데이터 처리 장치. - 제9항에 있어서,
상기 제1 처리 모듈은,
상기 신경망 가속기의 실수 완전 연결 유닛에 따라, 상기 처리할 데이터에 대해 상기 실수 부분 완전 연결 동작을 수행하여, 실수 부분 결과를 얻고;
상기 신경망 가속기의 실수 완전 연결 유닛에 따라, 상기 처리할 데이터에 대해 상기 허수 부분 완전 연결 동작을 수행하여, 허수 부분 결과를 얻으며;
상기 실수 부분 결과 및 허수 부분 결과에 따라 상기 수행 결과를 생성하는,
것을 특징으로 하는 신경망 가속기의 데이터 처리 장치. - 제9항에 있어서,
상기 제1 처리 모듈 이전에,
상기 처리할 데이터의 입력 모드가 기설정된 입력 모드가 아닌 경우, 상기 처리할 데이터의 입력 모드를 상기 기설정된 입력 모드로 변환시키는 변환 모듈; 을 더 포함하는,
것을 특징으로 하는 신경망 가속기의 데이터 처리 장치. - 제8항에 있어서,
상기 동작은 복소수 완전 연결 동작이고,
상기 제2 획득 모듈은,
상기 복소수 완전 연결 동작에 대응하는 복소수 가중치 행렬을 획득하는 제4 획득 유닛;
상기 복소수 가중치 행렬을 분할하여, 실수 부분 가중치 행렬 및 허수 부분 가중치 행렬을 얻는 제5 획득 유닛;
상기 실수 부분 가중치 행렬에 따라 실수 부분 완전 연결 동작을 생성하고, 허수 부분 가중치 행렬에 따라 허수 부분 완전 연결 동작을 생성하는 제2 생성 유닛; 및
상기 실수 부분 완전 연결 동작 및 상기 허수 부분 완전 연결 동작을 조합하여, 상기 실수 완전 연결 동작을 얻는 제1 조합 유닛; 을 포함하는,
것을 특징으로 하는 신경망 가속기의 데이터 처리 장치. - 제8항에 있어서,
상기 수행할 동작은 그룹별 실수 콘볼루션 동작이고,
상기 제2 획득 모듈은,
상기 그룹별 실수 콘볼루션 동작의 제1 가중치 행렬을 획득하는 제6 획득 유닛;
상기 제1 가중치 행렬을 처리하여, 대응 실수 콘볼루션 동작에 해당하는 제2 가중치 행렬을 얻는 제7 획득 유닛; 및
상기 제2 가중치 행렬에 따라, 상기 실수 완전 연결 동작을 생성하는 제3 생성 유닛; 을 포함하는,
것을 특징으로 하는 신경망 가속기의 데이터 처리 장치. - 제8항에 있어서,
상기 수행할 동작은 실수 콘볼루션 동작이고, 상기 제2 획득 모듈은,
상기 실수 콘볼루션 동작에 해당하는 적어도 하나의 가중치 행렬을 획득하는 제8 획득 유닛; 및
상기 적어도 하나의 가중치 행렬에 따라, 상기 적어도 하나의 실수 완전 연결 동작을 생성하는 제4 생성 유닛; 을 포함하는,
것을 특징으로 하는 신경망 가속기의 데이터 처리 장치. - 전자 기기에 있어서,
적어도 하나의 프로세서; 및
상기 적어도 하나의 프로세서와 통신 연결되는 메모리; 를 포함하되,
상기 메모리에 상기 적어도 하나의 프로세서에 의해 실행 가능한 명령이 저장되고, 상기 명령이 상기 적어도 하나의 프로세서에 의해 실행될 경우, 상기 적어도 하나의 프로세서가 제1항 내지 제7항 중 어느 한 항에 따른 신경망 가속기의 데이터 처리 방법을 수행하는,
것을 특징으로 하는 전자 기기. - 컴퓨터 명령이 저장된 비 일시적 컴퓨터 판독 가능 저장 매체에 있어서,
상기 컴퓨터 명령이 실행될 경우, 제1항 내지 제7항 중 어느 한 항에 따른 신경망 가속기의 데이터 처리 방법이 수행되는,
것을 특징으로 하는 비 일시적 컴퓨터 판독 가능 저장 매체. - 컴퓨터 판독 가능 매체에 저장된 컴퓨터 프로그램에 있어서,
상기 컴퓨터 프로그램중의 명령이 실행될 경우, 제1항 내지 제7항 중 어느 한 항에 따른 방법의 단계가 구현되는,
것을 특징으로 하는 컴퓨터 판독 가능 매체에 저장된 컴퓨터 프로그램.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011566189.2 | 2020-12-25 | ||
CN202011566189.2A CN112580787B (zh) | 2020-12-25 | 2020-12-25 | 神经网络加速器的数据处理方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20210151727A true KR20210151727A (ko) | 2021-12-14 |
KR102705262B1 KR102705262B1 (ko) | 2024-09-10 |
Family
ID=75140660
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020210164464A KR102705262B1 (ko) | 2020-12-25 | 2021-11-25 | 신경망 가속기의 데이터 처리 방법, 장치, 기기 및 저장 매체 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20220138528A1 (ko) |
JP (1) | JP7352609B2 (ko) |
KR (1) | KR102705262B1 (ko) |
CN (1) | CN112580787B (ko) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113570033B (zh) * | 2021-06-18 | 2023-04-07 | 北京百度网讯科技有限公司 | 神经网络处理单元、神经网络的处理方法及其装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05346914A (ja) * | 1992-06-16 | 1993-12-27 | Matsushita Electron Corp | ニューロプロセッサ |
JP2020126662A (ja) * | 2015-05-21 | 2020-08-20 | グーグル エルエルシー | ニューラルネットワークプロセッサで使用される重みのプリフェッチ |
US20200364047A1 (en) * | 2019-05-16 | 2020-11-19 | Facebook, Inc. | High throughput neural network operations using inter-layer memory layout transformation |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11501130B2 (en) * | 2016-09-09 | 2022-11-15 | SK Hynix Inc. | Neural network hardware accelerator architectures and operating method thereof |
CN107239824A (zh) * | 2016-12-05 | 2017-10-10 | 北京深鉴智能科技有限公司 | 用于实现稀疏卷积神经网络加速器的装置和方法 |
US11620490B2 (en) * | 2017-10-17 | 2023-04-04 | Xilinx, Inc. | Multi-layer neural network processing by a neural network accelerator using host communicated merged weights and a package of per-layer instructions |
US11694066B2 (en) * | 2017-10-17 | 2023-07-04 | Xilinx, Inc. | Machine learning runtime library for neural network acceleration |
CN108734270B (zh) * | 2018-03-23 | 2020-11-10 | 中国科学院计算技术研究所 | 一种兼容型神经网络加速器及数据处理方法 |
CN108446761B (zh) * | 2018-03-23 | 2021-07-20 | 中国科学院计算技术研究所 | 一种神经网络加速器及数据处理方法 |
US11687759B2 (en) * | 2018-05-01 | 2023-06-27 | Semiconductor Components Industries, Llc | Neural network accelerator |
JP7057728B2 (ja) * | 2018-07-13 | 2022-04-20 | 浜松ホトニクス株式会社 | 電気泳動方法、電気泳動システム、及び電気泳動用の収容容器 |
CN109543830B (zh) * | 2018-09-20 | 2023-02-03 | 中国科学院计算技术研究所 | 一种用于卷积神经网络加速器的拆分累加器 |
US11645358B2 (en) * | 2019-01-29 | 2023-05-09 | Hewlett Packard Enterprise Development Lp | Generation of executable files corresponding to neural network models |
CN110717588B (zh) * | 2019-10-15 | 2022-05-03 | 阿波罗智能技术(北京)有限公司 | 用于卷积运算的装置和方法 |
CN110807522B (zh) * | 2019-10-31 | 2022-05-06 | 合肥工业大学 | 一种神经网络加速器的通用计算电路 |
CN111047008B (zh) * | 2019-11-12 | 2023-08-01 | 天津大学 | 一种卷积神经网络加速器及加速方法 |
CN111325332B (zh) * | 2020-02-18 | 2023-09-08 | 百度在线网络技术(北京)有限公司 | 卷积神经网络的处理方法和装置 |
CN111582444B (zh) * | 2020-04-22 | 2023-05-05 | 深圳鲲云信息科技有限公司 | 一种矩阵数据的处理方法、装置、电子设备及存储介质 |
-
2020
- 2020-12-25 CN CN202011566189.2A patent/CN112580787B/zh active Active
-
2021
- 2021-11-15 US US17/526,755 patent/US20220138528A1/en active Pending
- 2021-11-17 JP JP2021186754A patent/JP7352609B2/ja active Active
- 2021-11-25 KR KR1020210164464A patent/KR102705262B1/ko active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05346914A (ja) * | 1992-06-16 | 1993-12-27 | Matsushita Electron Corp | ニューロプロセッサ |
JP2020126662A (ja) * | 2015-05-21 | 2020-08-20 | グーグル エルエルシー | ニューラルネットワークプロセッサで使用される重みのプリフェッチ |
US20200364047A1 (en) * | 2019-05-16 | 2020-11-19 | Facebook, Inc. | High throughput neural network operations using inter-layer memory layout transformation |
Non-Patent Citations (2)
Title |
---|
arXiv:1705.09792v4 [cs.NE] (2018.02.25.)* * |
Zheng Qin 외 4인, "Diagonalwise Refactorization: An Efficient Training Method for Depthwise Convolutions",2018 IJCNN, (2018.06.)* * |
Also Published As
Publication number | Publication date |
---|---|
CN112580787A (zh) | 2021-03-30 |
CN112580787B (zh) | 2023-11-17 |
JP2022024081A (ja) | 2022-02-08 |
KR102705262B1 (ko) | 2024-09-10 |
JP7352609B2 (ja) | 2023-09-28 |
US20220138528A1 (en) | 2022-05-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11307864B2 (en) | Data processing apparatus and method | |
US11307865B2 (en) | Data processing apparatus and method | |
US20230103013A1 (en) | Method for processing image, method for training face recognition model, apparatus and device | |
JP2022018095A (ja) | マルチモーダル事前訓練モデル取得方法、装置、電子デバイス及び記憶媒体 | |
CN114842123B (zh) | 三维人脸重建模型训练和三维人脸形象生成方法及装置 | |
EP4116940A2 (en) | Method and apparatus for processing image, electronic device and storage medium | |
CN112560985B (zh) | 神经网络的搜索方法、装置及电子设备 | |
CN114925320B (zh) | 一种数据处理方法及相关装置 | |
CN116363261B (zh) | 图像编辑模型的训练方法、图像编辑方法和装置 | |
CN115456167B (zh) | 轻量级模型训练方法、图像处理方法、装置及电子设备 | |
CN111357051A (zh) | 语音情感识别方法、智能装置和计算机可读存储介质 | |
EP4044070A2 (en) | Neural network processing unit, neural network processing method and device | |
CN111178258A (zh) | 一种图像识别的方法、系统、设备及可读存储介质 | |
CN113407850A (zh) | 一种虚拟形象的确定和获取方法、装置以及电子设备 | |
US20220343512A1 (en) | Method and apparatus of processing image, electronic device, and storage medium | |
CN114549728A (zh) | 图像处理模型的训练方法、图像处理方法、装置及介质 | |
CN113887615A (zh) | 图像处理方法、装置、设备和介质 | |
KR20210151727A (ko) | 신경망 가속기의 데이터 처리 방법, 장치, 기기 및 저장 매체 | |
CN111443897B (zh) | 一种数据处理方法、装置及存储介质 | |
CN112561061A (zh) | 神经网络稀疏化方法、装置、设备、存储介质及程序产品 | |
CN113344213A (zh) | 知识蒸馏方法、装置、电子设备及计算机可读存储介质 | |
CN112784967B (zh) | 信息处理方法、装置以及电子设备 | |
CN113361621B (zh) | 用于训练模型的方法和装置 | |
US11307866B2 (en) | Data processing apparatus and method | |
CN110188773B (zh) | 图像处理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |