KR102595540B1 - 복잡 계산 장치, 방법, 인공지능 칩, 전자 기기 및 프로그램 - Google Patents

복잡 계산 장치, 방법, 인공지능 칩, 전자 기기 및 프로그램 Download PDF

Info

Publication number
KR102595540B1
KR102595540B1 KR1020210003501A KR20210003501A KR102595540B1 KR 102595540 B1 KR102595540 B1 KR 102595540B1 KR 1020210003501 A KR1020210003501 A KR 1020210003501A KR 20210003501 A KR20210003501 A KR 20210003501A KR 102595540 B1 KR102595540 B1 KR 102595540B1
Authority
KR
South Korea
Prior art keywords
calculation
command
complex
complex calculation
master node
Prior art date
Application number
KR1020210003501A
Other languages
English (en)
Other versions
KR20220002053A (ko
Inventor
바오푸 자오
쉬에리앙 두
강 안
잉난 쉬
차오 탕
Original Assignee
베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디.
쿤룬신 테크놀로지(베이징) 캄파니 리미티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디., 쿤룬신 테크놀로지(베이징) 캄파니 리미티드 filed Critical 베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디.
Publication of KR20220002053A publication Critical patent/KR20220002053A/ko
Application granted granted Critical
Publication of KR102595540B1 publication Critical patent/KR102595540B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/3017Runtime instruction translation, e.g. macros
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Neurology (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Algebra (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Advance Control (AREA)

Abstract

본 출원은 복잡 계산 장치, 방법, 인공지능 칩, 전자 기기 및 프로그램을 개시하였으며, 인공지능 칩 분야에 관한 것이다. 구체적인 실현 방안은 다음과 같다. 즉: 입력 인터페이스는 복잡 계산 명령을 수신하고, 각 복잡 계산 명령중의 계산 유형에 기반하여 각 복잡 계산 명령을 대응된 계산 소자에게 각각 중재하여 주며; 각 계산 소자는 모두 입력 인터페이스에 연결되고, 복잡 계산 명령으로부터 원시 오퍼랜드를 획득하여 복잡 계산을 진행하도록 하고, 계산 결과 명령을 생성하여 출력 인터페이스에 피드백하며; 출력 인터페이스는 각 계산 결과 명령중의 명령 출처 표지에 기반하여, 각 계산 결과 명령중의 계산 결과를 대응된 명령 출처에게 각각 중재하여 준다. 본 출원의 기술 방안은 멀티 AI프로세서 코어 공유 SFU를 실현하였으며, 복잡 계산의 데이터 경로를 감소하고, AI칩의 면적과 전력 소비를 줄일수 있다.

Description

복잡 계산 장치, 방법, 인공지능 칩, 전자 기기 및 프로그램{COMPLEX COMPUTING DEVICE, COMPLEX COMPUTING METHOD, ARTIFICIAL INTELLIGENCE CHIP AND ELECTRONIC APPARATUS}
본 발명은 인공지능 기술분야에 관한 것으로서, 특히 인공지능 칩 기술분야에 관한 것이다.
인공지능(Artificial Intelligence, AI) 알고리즘에는 많은 복잡한 계산들이 존재한다. AI프로세서에서는 여러개의 기본적인 산술과 논리적인 연산 명령을 조합하여 이런 복잡한 연산 작업을 실현할수 있지만, 이런 과정은 시간과 정력을 소비할뿐만 아니라, 이런 복잡한 연산의 수행 효율을 저감시키며, 소프트 프로그래밍면에서도 어려운 점이 많다.
현재의 AI프로세서는 흔히 단일한 명령의 방식으로 전문용 복잡 계산 유닛을 호출하여 복잡한 계산들을 실현하고 있다. 이런 복잡 계산 유닛이 차지하는 논리적 면적이 상대적으로 크기 때문에, 멀티 코어 AI프로세서에서, 매개 프로세서가 모두 이런 복잡 계산 유닛을 단독적으로 사용하면, 막대한 칩 면적을 차지하게 되어, 실현 대가가 너무 클뿐만 아니라, 실제 응용 상황에서, 이런 복잡 계산 명령의 사용 빈도도 특별히 높은것이 아니여서, 매개 프로세서 코어가 단독으로 사용될 때, 이런 복잡 계산 유닛에 대한 이용율도 특별히 높지 않다.
본 출원은 복잡 계산 장치, 방법, 인공지능 칩, 전자 기기 및 프로그램을 제공한다.
본 발명의 1 측면에 따르면, 입력 인터페이스, 복수의 계산 소자 및 출력 인터페이스를 포함하는 복잡 계산 장치를 제공하며, 해당 장치에 있어서,
입력 인터페이스는 복잡 계산 명령을 수신하고, 각 복잡 계산 명령의 계산 유형에 기반하여, 각 복잡 계산 명령을 대응된 계산 소자에게 각각 중재해주기 위한 것이며, 여기서, 복잡 계산 명령에는 명령 출처 표지 및 복잡 계산하기 위한 원시 오퍼랜드(source operand)를 더 포함하며;
각 계산 소자는 모두 입력 인터페이스에 연결되여 있고, 계산 소자는 수신한 복잡 계산 명령으로부터 원시 오퍼랜드를 획득하여 복잡 계산을 진행하도록 하고, 계산 결과 명령을 생성하여 출력 인터페이스에 피드백하기 위한 것이며, 여기서, 계산 결과 명령에는 복잡 계산 명령중의 명령 출처 표지 및 복잡 계산의 계산 결과를 포함하며;
출력 인터페이스는 각 계산 결과 명령중의 명령 출처 표지에 기반하여, 각 계산 결과 명령중의 계산 결과를 대응된 명령 출처에게 각각 중재해주기 위한 것이다.
본 출원의 다른 한 측면에 따르면, 상기의 복잡 계산 장치 및 복잡 계산 장치와 연결된 복수의 인공지능 프로세서 코어를 포함하는 인공지능 칩을 제공한다.
본 출원의 또 다른 측면에 따르면, 적어도 하나의 프로세서, 적어도 하나의 메모리 및 적어도 하나의 상기 인공지능 칩을 포함하는 전자 기기를 제공한다.
본 출원의 또 하나의 측면에 따르면, 복잡 계산 방법을 제공하며, 해당 방법은,
복수의 인공지능 프로세서 코어로부터 복잡 계산 명령을 획득하고, 각 복잡 계산 명령중의 계산 유형에 기반하여 각 복잡 계산 명령을 대응된 계산 소자에게 각각 중재해주는것, 여기서, 복잡 계산 명령에는 명령 출처 표지 및 복잡 계산하기 위한 원시 오퍼랜드(source operand)를 더 포함하며;
계산 소자는 수신한 복잡 계산 명령으로부터 원시 오퍼랜드를 획득하여 복잡 계산을 진행하도록 하고, 계산 결과 명령을 생성하는것, 여기서, 계산 결과 명령에는 복잡 계산 명령중의 명령 출처 표지 및 복잡 계산의 계산 결과를 포함하며; 및
각 계산 결과 명령중의 명령 출처 표지에 기반하여, 각 계산 결과 명령중의 계산 결과를 대응된 인공지능 프로세서 코어에게 각각 중재하여 주는것, 을 포함한다.
이해하여야 할것은 본 부분에 기재된 내용은 본 출원의 실시예의 관건적 또는 중요한 특징을 표시하는것이 아니며, 본 출원의 범위를 한정하기 위한 것이 아니다. 본 출원의 기타 특징은 이하의 설명을 통하여 더욱 쉽게 이해하게 될 것이다.
도면은 본 기술방안을 더욱 잘 이해할수 있기 위한 것이지, 본 출원에 대한 한정이 아니다.
도1은 본 출원의 실시예에 따른 AI칩의 구조 모식도이다.
도2는 본 출원의 실시예의 일 실시방식에 따른 복잡 계산 장치의 입력 인터페이스의 구조 모식도이다.
도3은 본 출원의 실시예에 따른 복잡 계산 장치의 입력 인터페이스의 응용예시도이다.
도4는 본 출원의 실시예의 일 실시방식에 따른 복잡 계산 장치의 출력 인터페이스의 구조 모식도이다.
도5는 본 출원의 실시예에 따른 복잡 계산 장치의 출력 인터페이스의 응용예시도이다.
도6은 본 출원의 실시예의 전자 기기의 구조 모식도이다.
도7은 본 출원의 실시예에 따른 복잡 계산 방법의 모식도이다.
이하에서는 도면과 결합하여 본 출원의 시범적인 실시예를 설명하고자 한다. 그 중에는 이해에 도움이 되도록 본 출원의 실시예의 각종 상세한 내용을 포함하였으며, 이런 내용은 단지 시범적인 것으로 간주되여야 할것이다. 그러므로, 해당 분야 기술자들은 본 출원의 범위와 정신을 벗어나지 않은 한, 여기에서 기재된 실시예에 대해 각종 변형 및 수정을 할수 있다는것을 인식하여야 한다. 마찬가지로, 간단하고 명확하게 하기 위하여, 이하의 기재에서는 공지적인 기능 및 구조에 관한 기재를 생략하고자 한다.
도1은 본 출원의 실시예에 따른 인공지능(Artificial Intelligence, AI) 칩(10)의 구조모식도이다.
도1에서 나타낸 바와 같이, 해당 AI칩 (10)은 복수의 명령 출처(100) 및 복잡 계산 장치(200)을 포함하며, 복수의 명령 출처(100)은 모두 복잡 계산 장치(200)에 연결되여 있다. 본 실시예에서, 명령 출처(100)은 AI프로세서 코어일수 있다. 여기서, 복잡 계산 장치(200)은 입력 인터페이스(210), 복수의 계산 소자(220) 및 출력 인터페이스(230)을 포함한다. 입력 인터페이스(210)은 복수의 AI프로세서 코어(100)과 복수의 계산 소자(220)사이에 연결될수 있으며, 출력 인터페이스는 복수의 계산 소자(220)와 복수의 AI포로세서 코어(100)사이에 연결될수 있다.
복수의 계산 소자(220)은 특수 기능 유닛(Special Function Unit,SFU)을 구성할수 있으며, 매개의 계산 소자(220)은 독립적인 연산 능력을 구비하며, 특정 유형의 복잡 계산을 실현할수 있다. 여기서 복잡 연산은 간단 연산에 비해 계산량이 상대적으로 큰 연산을 의미하며, 간단 연산은 계산량이 비교적 작은 연산을 의미할수 있다. 예를 들어, 간단 연산은 더하기 연산, 곱하기 연산 또는 더하기 연산과 곱하기 연산의 간단한 조합 연산일수 있다. 명령 출처(100) 즉 AI프로세서 코어는 모두 가산기와 승산기를 포함하기 때문에, AI프로세서 코어를 놓고 볼때, 간단 연산이 더욱 접합하다. 이에 비해, 복잡 계산은 더하기 연산과 곱하기 연산의 간단 조합으로 이루어질수 없는 연산을 의미하며, 예를 들어, 부동 소수점 지수 연산, 부동 소수점 제곱근 연산, 부동 소수점 나눗셈법 연산, 부동 소수점 로그 연산, 삼각함수 연산 등일수 있다.
일 예시에서, 계산 소자1은 부동 소수점 지수 연산을 실현하는데 이용되고, 계산 소자2는 부동 소수점 제곱근 연산을 실현하는데 이용되고 …… 계산소자N은 삼각함수 연산을 실현하는데 이용된다.
일 실시방식에 있어서, 계산 소자(220)은 전용 집적 회로(ASIC,Application Specific Integrated Circuits) 칩 및 필드 프로그램 가능 게이트 어레이(FPGA,Field Programmable Gate Array)중의 적어도 하나를 포함할수 있다.
일 예시에 있어서, 명령 출처 예를 들어 AI프로세서 코어(100)은 실행할 명령을 수신한 경우, 실행할 명령을 디코딩하고, 디코딩 된 데이터를 복잡 계산 명령 sfu_dina로 스플 라이스할 수 있다. 복잡 계산 명령에는 계산 유형(복잡 계산의 작업 유형), 명령 출처 표지(예를 들면, AI프로세서 코어의 코어ID), 원시 오퍼랜드, 리턴 주소 등을 포함할수 있다. 일 예시에 있어서, AI프로세서 코어(100)은 생성된 복잡 계산 명령sfu_dina을 전문용 SFU명령 대기열에 첨가한다. 여기서, SFU명령 대기열은 FIFO (First Input First Output)대기열이다.
매개의 명령 출처, 예를 들어 AI프로세서 코어(100)은 복잡 계산 장치(200)의 입력 인터페이스(210)에 명령 청구req1를 발송하고, 입력 인터페이스(210)은 해당 명령 청구에 응대하여 매개의 AI프로세서 코어(100)로부터 복잡 계산 명령sfu_dina을 획득하고, 각 복잡 계산 명령sfu_dina중의 계산 유형에 기반하여, 각 복잡 계산 명령sfu_dina을 대응된 계산 소자(220)에 각각 중재하여 준다.
예를 들어, sfu_dina1중의 계산 유형이 부동 소수점 제곱근 연산이면, 입력 인터페이스(210)은 sfu_dina1을 계산 소자2에 중재해주고; sfu_dina2중의 계산 유형이 부동 소수점 지수 연산이면, 입력 인터페이스(210)은 sfu_dina1을 계산 소자1에 중재해준다.
계산 소자(220)은 수신한 복잡 계산 명령 sfu_dina으로부터 원시 오퍼랜드를 획득하여 복잡 계산을 진행하도록 하고, 계산 결과 명령sfu_dout을 생성하여 출력 인터페이스(230)에 피드백하여 준다. 계산 결과 명령sfu_dout중에는 명령 출처 표지, 계산 결과 및 리턴 주소 등을 포함할수 있다. 그 중, 계산 결과는 해당 계산 소자(220)이 원시 오퍼랜드에 대해 복잡 계산을 진행한 계산 결과이고, 명령 출처 표지와 리턴 주소는 해당 계산 소자(220)이 수신한 복잡 계산 명령sfu_dina중의 데이터로부터 온것이다.
예를 들어, 계산 소자1은 복잡 계산 명령sfu_dina2를 수신하고,sfu_dina2에는 원시 오퍼랜드 X와 Y, 리턴 주소Z, 명령 출처 표지AA등을 포함하며, 계산 소자1은 원시 오퍼랜드X와 Y에 대해 부동 소수점 지수 연산을 진행하여, 계산 결과, 리턴 주소Z, 명령 출처 표지AA을 계산 결과 명령sfu_dout1으로 스플라이스하여 출력 인터페이스(230)에 피드백하여 준다.
출력 인터페이스(230)은 각 계산 소자(220)으로부터 계산 결과 명령sfu_dout1, sfu_dout2, ……, sfu_doutN을 수신하고, 각 계산 결과 명령중의 명령 출처 표지에 기반하여 각 계산 결과 명령중의 계산 결과와 리턴 주소를 대응된 명령 출처에 각각 중재하여 준다. 예를 들어, AI프로세서 코어(100)에 중재하여 준다. AI프로세서 코어(100)은 리턴 주소에 기반하여 계산 결과를 내부 메모리에 기입한다.
본 출원의 실시예에서 제공한 복잡 계산 장치(200)은 각 명령 출처(예를 들어 AI프로세서 코어(100)에 약하게 연결되였으며, 각종의 복잡 계산 명령은 동일한 데이터 경로(입력 인터페이스(210))을 사용하여, 대응된 계산 소자에 송신되고, 각 계산 결과 명령도 동일한 데이터 경로(출력 인터페이스(230))를 사용하여 각 명령 출처에 반환하여 줌으로써, 멀티 명령 출처 공유SFU을 실현하였으며, 명령 출처가 SFU을 호출하여 복잡 계산을 진행할때의 데이터 경로를 감소할수 있으며, AI칩의 면적과 전력 소비를 줄일 수 있다.
일 실시방식에 있어서, 입력 인터페이스(210)과 출력 인터페이스(230)은 크로스바(crossbar) 유형의 구조이다.
도2에서 나타낸 바와 같이, 입력 인터페이스(210)은 복수의 제1 마스터 노드(211) 및 복수의 제1 슬레이브 노드(212)을 포함할수 있다. 여기서, 각 제1 슬레이브 노드(212)는 각 제1 마스터 노드(211)에 각각 연결되여 있고, 각 제1슬레이브 노드(212)는 각 계산 소자(220)과 1대1로 대응되여 연결되여 있다. 다시 말하면, 입력 인터페이스(210)은 마스터 노드(master)-슬레이브 노드(slave ) 구조 유형일수 있다. 일 예시에 있어서, 각 제1 마스터 노드(211)과 각 AI프로세서 코어(100)은 1대1로 대응되여 연결되여 있다.
그러므로, 제1 마스터 노드(211)은 연결된 AI프로세서 코어(100)로부터 대응된 복잡 계산 명령을 획득하고, 획득한 복잡 계산 명령중의 계산 유형에 기반하여 획득한 복잡 계산 명령을 대응된 제1 슬레이브 노드(212)에 중재하여 주고; 제1슬레이브 노드(212)은 수신한 복잡 계산 명령을 연결된 계산 소자(220)에 송신한다.
일 실시방식에 있어서, 도2에서 나타낸 바와 같이, 입력 인터페이스(210)은 복수의 제1주소 판단 모듈(213) 및 복수의 제1중재 모듈(214)을 더 포함할수 있으며, 각 제1 마스터 노드(211)와 각 제1 주소 판단 모듈(213)은 1대1로 대응되여 연결되여 있으며, 각 제1 중재 모듈(214)는 각 제1주소 판단 모듈(213)에 각각 연결되여 있으며, 각 제1 중재 모듈(214)과 각 제1 슬레이브 노드(212)은 1대1로 대응되여 연결되여 있다.
이에 따라서, 제1 주소 판단 모듈(213)은 연결된 제1마스터 노드(211)로부터 대응된 복잡 계산 명령을 수신하고, 수신한 복잡 계산 명령중의 계산 유형을 매개의 연결된 제1슬레이브 노드(212)과 비교하고, 비교 결과가 매칭될 경우, 제1청구 공제 유효 신호를 출력한다. 즉 req_en1을 유효로 한다.
일 예시에 있어서, 매개의 제1 마스터 노드(211)중의 데이터는 명령 청구 신호req1, 제1 주소 신호addr1, 제1데이터 신호data1 및 명령 응답 신호gnt1을 포함한다. 여기서, 제1 주소 신호addr1은 복잡 계산 명령sfu_dina중의 계산 유형을 포함하고, 제1데이터 신호data1은 복잡 계산 명령sfu_dina중의 명령 출처 표지, 원시 오퍼랜드 및 리턴 주소등을 포함한다.
다시 말하면, 매개의 제1마스터 노드(211)은 복잡 계산 명령sfu_dina을 수신한 후, 해당 복잡 계산 명령sfu_dina중의 명령 출처 표지, 원시 오퍼랜드 및 리턴 주소등을 제1마스터 노드(211)의 제1데이터 신호data1로 한다.
매개의 제1주소 판단 모듈(213)은 해당 제1주소 판단 모듈(213)과 연결된 제1마스터 노드(211)의 제1주소 신호addr1와 매개의 제1 슬레이브 노드(212)의 시퀀스 번호를 비교하고, 매칭될 경우, 대응된 제1 슬레이브 노드(212)와 연결된 제1중재 모듈(214)에 req_en1가 유효라는 신호(제1청구 공제 유효 신호)를 출력하고; 매칭되지 않을 경우, req_en1가 무효라는 신호(제1청구 공제 무효 신호)를 출력한다. 여기서, "매칭"은 동등일수 있다.
제1 중재 모듈(214)는 사전에 설정된 중재 알고리즘에 기반하여, 복수의 출력된 제1 청구 공제 유효 신호중에서 제1목표 청구 공제 유효 신호를 확정하고, 제1목표 청구 공제 유효 신호에 대응되는 제1마스터 노드(211) 및 제1중재 모듈(214)에 연결된 제1슬레이브 노드(212)를 스트로브한다. 여기서, 중재 알고리즘은 우선 순위 중재 알고리즘, 폴링 중재 알고리즘 등을 포함하지만, 이에 한정되지 않는다.
일 예시에 있어서, 매개의 제1슬레이브 노드(212)중의 데이터는 유효신호vld와 데이터 신호data'을 포함한다. 매개의 제1슬레이브 노드(212)은 하나의 제1중재 모듈(214)에 대응된다. 제1중재 모듈(214)는 모든 제1마스터 노드(211)에 연결된 제1주소 판단 모듈(213)에서 생성된 req_en1신호를 수신하고, 유효한 req_en1신호에 대해 중재 선택함으로써, 그 중에서 하나의 제1마스터 노드(211)을 스트로브한다. 즉 제1목표 청구 공제 유효 신호에 대응된 제1마스터 노드(211) 및 제1중재 모듈에 연결된 제1슬레이브 노드(212)를 스트로브한다. 특정 제 1 마스터 노드 (211) 및 특정 제 1 슬레이브 노드 (212)가 스트로브 된 후, 제 1 마스터 노드 (211)의 신호 data1을 제 1 슬레이브 노드의 신호 data'에 할당하고, 제1슬레이브 노드의 vld신호를 유효로 설정할수 있다.
도2 및 도3에서 나타낸 바와 같이, 입력 인터페이스(210)는 M개의 제1마스터 노드(211)와 N개의 제1슬레이브 노드(212)을 지지할수 있으며, 제일 많은 경우 동시에 M(M<N일때) 또는 N(M>N일때)개의 경로가 동시에 스트로브될수 있다. 도3에서 나타낸 바와 같이, 두개의 경로가 동시에 스트로브되여 있으며, 각각은 제1마스터 노드2와 제1슬레이브 노드N이 스트로브되였고, 제1마스터 노드M와 제1슬레이브 노드1가 스트로브되여 있다. 여기서, M는 명령 출처(예를 들어 AI프로세서 코어(100))의 수량이고, N는 복잡 계산 명령의 계산 유형의 수량이다.
일 실시방식에 있어서, 제1마스터 노드(210)는 핸드 셰이크 프로토콜을 통해 연결된 AI 프로세서 코어 (100)로부터 대응된 복잡 계산 명령을 획득한다. 예를 들어, 제1마스터 노드M는 명령 청구 신호req1을 수신하고, 중재를 거쳐, 제1슬레이브 노드1이 제1마스터 노드M에 스트로브될때, 제1마스터 노드M의 명령 응답 신호gnt1은 유효할수 있다. 즉 입력req1와 출력gnt1은 핸드 셰이크 신호이며, 이번 차례의 데이터 전송이 완료되고, 다음 차례의 데이터 전송을 시작할수 있다는것을 표시한다.
일 실시방식에 있어서, 도4에서 나타낸 바와 같이, 출력 인터페이스(230)은 복수의 제2마스터 노드(231) 및 복수의 제2슬레이브 노드(232)을 포함한다. 여기서, 각 제2마스터 노드(231)은 각 계산 소자와 1대1로 대응되여 연결되였으며, 각 제2슬레이브 노드(232)은 각 제2마스터 노드(231)에 각각 연결되여 있다. 다시 말하면, 출력 인터페이스(230)은 master-slave구조 유형일수 있다. 일 예시에 있어서, 각 제2슬레이브 노드(232)은 각 인공지능 프로세서 코어(100)과 1대1로 대응되여 연결되여 있다.
이에 따라서, 제2마스터 노드(231)은 연결된 계산 소자로부터 대응된 계산 결과 명령을 획득하고, 획득한 계산 결과 명령중의 명령 출처 표지에 기반하여 획득한 계산 결과 명령을 대응된 제2 슬레이브 노드(232)에 중재하여 주고; 제2슬레이브 노드(232)은 수신한 계산 결과 명령을 대응된 명령 출처에 송신할수 있다. 예를 들어 해당 제2슬레이브 노드(232)에 연결된 AI프로세서 코어(100)에 송신한다. 계산 결과 명령에는 계산 결과와 리턴 주소를 더 포함하며, AI프로세서 코어(100)은 리턴 주소에 기반하여 계산 결과를 내부 메모리에 기입한다.
일 실시방식에 있어서, 도4에서 나타낸 바와 같이, 입력 인터페이스는 복수의 제2주소 판단 모듈(233) 및 복수의 제2 중재 모듈(234)를 더 포함하며, 각 제2마스터 노드(231)은 각 제2주소 판단 모듈(233)과 1대1로 대응되여 연결되였으며, 각 제2 중재 모듈(234)는 각 제2주소 판단 모듈(233)과 각각 연결되였으며, 각 제2중재 모듈(234)는 각 제2슬레이브 노드(232)과 1대1로 대응되여 연결되여 있다.
이에 따라서, 제2주소 판단 모듈(233)은 연결된 제2마스터 노드(231)로부터 대응된 계산 결과 명령sfu_dout을 수신하고, 수신한 계산 결과 명령sfu_dout중의 명령 출처 표지와 매개의 연결된 제2슬레이브 노드(232)를 비교하고, 비교한 결과가 매칭될 경우, 제2청구 공제 유효 신호를 출력한다. 즉 req_en2는 유효한 것으로 한다.
일 예시에 있어서, 매개의 제2마스터 노드(231)중의 데이터는 결과 청구 신호req2, 제2주소 신호addr2, 제2데이터 신호data2 및 결과 응답 신호gnt2를 포함한다. 여기서, 제2주소 신호addr2는 계산 결과 명령sfu_dout중의 명령 출처 표지를 포함하고, 제2데이터 신호data2는 계산 결과 명령sfu_dout중의 계산 결과와 리턴 주소등을 포함한다. 다시 말하면, 매개의 제2마스터 노드(231)은 계산 결과 명령sfu_dout을 수신한 후, 해당 계산 결과 명령sfu_dout중의 명령 출처 표지를 제2마스터 노드(231)의 제2주소 신호addr2로 하고, 해당 계산 결과 명령sfu_dout중의 계산 결과와 리턴 주소등을 제2마스터 노드(231)의 제2데이터 신호data2로 한다.
매개의 제2주소 판단 모듈(233)은 해당 제2주소 판단 모듈(233)에 연결된 제2마스터 노드(231)의 제2주소 신호addr2와 매개의 제2슬레이브 노드(232)의 시퀀스 번호를 비교하고, 매칭될 경우, 대응된 제2슬레이브 노드(232)에 연결된 제2중재 모듈(234)에 req_en2가 유효라는 신호(제2청구 공제 유효 신호)를 출력하고; 매칭되지 않을 경우, req_en2가 무효라는 신호(제2청구 공제 무효 신호)를 출력한다. 여기서, "매칭"은 동등일수 있다.
제2중재 모듈(234)은 사전에 설정된 중재 알고리즘에 기반하여, 복수의 출력된 제2 청구 공제 유효 신호중에서 제2목표 청구 공제 유효 신호를 확정하고, 제2목표 청구 공제 유효 신호에 대응되는 제2마스터 노드(231) 및 제2중재 모듈(234)에 연결된 제2슬레이브 노드(232)를 스트로브한다.
일 예시에 있어서, 매개의 제2슬레이브 노드(232)중의 데이터는 유효신호vld'와 데이터 신호data''을 포함한다. 매개의 제2슬레이브 노드(232)은 하나의 제2중재 모듈(234)에 대응된다. 제2중재 모듈(234)는 모든 제2마스터 노드(231)에 연결된 제2주소 판단 모듈(233)에서 생성된 req_en2신호를 수신하고, 유효한 req_en2신호에 대해 중재 선택함으로써, 그 중에서 하나의 제2마스터 노드(231)을 스트로브한다. 즉 제2목표 청구 공제 유효 신호에 대응된 제2마스터 노드(231) 및 제2중재 모듈에 연결된 제2슬레이브 노드(232)를 스트로브한다. 특정 제2 마스터 노드 (231) 및 특정 제2 슬레이브 노드 (232)가 스트로브된 후, 제2마스터 노드 (231)의 신호 data2를 제2슬레이브 노드(232)의 신호 data''에 할당하고, 제2슬레이브 노드(232)의 vld'신호를 유효로 설정한다.
도4 및 도5에서 나타낸 바와 같이, 출력 인터페이스는 N개의 제2마스터 노드(231)와 M개의 제2슬레이브 노드(232)을 지지할수 있으며, 제일 많은 경우 동시에 M(M<N일때) 또는 N(M>N일때)개의 경로가 동시에 스트로브될수 있다. 도5에서 나타낸 바와 같이, 두개의 경로가 동시에 스트로브되여 있으며, 각각은 제2마스터 노드1과 제2슬레이브 노드3이 스트로브되였고, 제2마스터 노드N와 제2슬레이브 노드1이 스트로브되여 있다.
계산 소자(220)의 수량은 N일수도 있고, N보다 클수도 있다. 예를 들어, 실제 사용할 때 특정 계산 유형의 사용 빈도가 기타 계산 유형보다 높은 정황을 발견하였을 경우, 해당 계산 유형에 상응한 계산 소자(220)의 수량을 증가하여 계산 능력을 증가할수 있으며, 제1슬레이브 노드(212)와 제2마스터 노드(231)의 수량만 증가하면 될수 있다.
일 실시방식에 있어서, 제2마스터 노드(231)은 핸드 셰이크 프로토콜을 통해 연결된 계산소자(220)로부터 대응된 계산 결과 명령을 획득한다. 예를 들어, 제2마스터 노드1은 결과 청구 신호req2를 수신하고, 중재를 거쳐, 제2슬레이브 노드3이 제2마스터 노드1에 스트로브될때, 제2마스터 노드1의 명령 응답 신호gnt2은 유효할수 있다. 즉 입력req2와 출력gnt2은 핸드 셰이크 신호이며, 이번 차례의 데이터 전송이 완료되고, 다음 차례의 데이터 전송을 시작할수 있다는것을 표시한다.
전통적인 AI칩은 매 한 유형의 복잡 계산 명령을 실현할 때, 명령 청구를 송신하고 계산 결과를 리턴하는 단계에서 단독적인 데이터 캐시 경로를 제공하고 있다. 복잡 계산 명령의 계산 유형이 많을 경우, 이런 데이터 캐시 경로는 비교적 큰 면적의 자원을 차지하며, 자원 낭비를 초래한다. 또한, 매 한 유형의 SFU명령을 위해 전문용의 데이터 경로를 설치할 경우, 명령 확장을 진행할 때, 별도의 상응한 데이터 경로를 증가할 필요가 있고, 이러면 SFU의 확장과 데이터 경로의 활용에 불리하다.
본 실시예의 복잡 계산 장치(200)은 크로스바 형식의 입력 인터페이스(210) 및 출력 인터페이스(230)을 사용함으로써, 면적을 차지하는것을 감소하고, AI칩(10)의 면적을 줄일수 있으며; 또한, 크로스바는 영활하게 배치할수 있고, 부동한 명령 출처(예를 들어 AI프로세서 코어(100))의 수량과 복잡 계산 유형의 수량에 적응하기 편리하며; 더 나아가, 필요에 따라 계산 소자(220)의 수량을 영활하게 확장하여 동시성과 계산 능력을 향상시킴으로써, AI칩(10)의 성능을 높일수 있다.
도6에서는 본 출원의 실시예의 전자 기기의 구조모식도를 나타낸다. 도6에서 나타낸 바와 같이, 전자 기기는 여러가지 형식의 디지털 컴퓨터를 의미하며, 예를 들면, 랩톱 컴퓨터, 디스크톱 컴퓨터, 워크벤치, 개인 정보 단말기, 서버, 블레이드 서버, 대형 컴퓨터, 및 기타 적합한 컴퓨터가 있을수 있다. 전자 기기는 또한 여러가지 형식의 모바일 장치를 의미할수 있으며, 예를 들면, 개인 정보 단말기, 휴대 전화, 스마트 폰, 웨어러블 디바이스 및 기타 유사한 컴퓨팅 장치가 있을수 있다. 본 문에서 기재한 부재, 그들간의 연결 및 관계, 그리고 그들의 기능은 단지 예시적인 것이며, 본 문에서 기재한 및/또는 요구한 본 출원의 실현을 한정하는것이 아니다.
도6에서 나타낸 바와 같이, 해당 전자 기기는 하나 또는 복수개의 프로세서(601), 메모리(602), 하나 또는 복수의 AI칩(10) 및 각 부재를 연결하기 위한 인터페이스를 포함하며, 고속 인터페이스와 저속 인터페이스를 포함한다. 각 부재는 부동한 버스를 이용하여 상호 연결되였으며, 공용 메인보드에 설치되거나 또는 수요에 따라 기타 형식으로 설치될수 있다. 프로세서는 전자 기기내에서 실행되는 명령에 대해 처리할수 있으며, 메모리에 저장된 또는 메모리에서 외부 입력/출력 장치(예를 들어, 인터페이스에 결합된 디스플레이 장치)상에 그래픽 사용자 인터페이스(Graphical User Interface, GUI)를 표시하는 그래픽 정보의 명령을 포함한다. 기타 실시방식에 있어서, 필요한 경우, 복수의 프로세서 및/또는 복수의 버스를 복수의 메모리와 함께 사용할수 있다. 마찬가지로, 복수의 전자 기기를 연결하여, 각 기기가 일부 필요한 조작(예를 들어, 서버 어레이, 블레이드 서버 세트 또는 멀티 프로세서 시스템)을 제공할수 있다. 도6에서는 하나의 프로세서(601)인 경우를 예로 나타낸다.
해당 전자 기기는 입력 장치(603) 및 출력 장치(604)를 더 포함할수 있다. 프로세서(601), 메모리(602), 입력 장치(603) 및 출력 장치(604)는 버스를 통하여 연결되거나 기타 방식으로 연결될수 있으며, 도6에서는 버스를 통해 연결된 예이다.
입력 장치(603)은 입력된 수자 혹은 문자 정보를 수신할수 있고, 장애물의 모양을 나타내는 전자 기기의 사용자 설정 및 기능 제어와 관련된 키 신호 입력을 생성할 수 있다. 예를 들어, 터치 스크린, 작은 키보드, 마우스, 트랙 패드, 터치 패널, 조정 로드, 하나 혹은 복수의 마우스 버튼, 트랙 볼, 조이스틱 등 입력 장치일수 있다. 출력 장치(604)는 디스플레이 장치, 보조 조명 장치(예를 들어, LED) 및 촉각 피드백 장치(예를 들어, 진동 모터) 등을 포함할수 있다. 해당 디스플레이 장치는 액정 디스플레이(Liquid Crystal Display,LCD), 발광 다이오드(Light Emitting Diode,LED) 디스플레이 및 프라즈마 디스플레이를 포함할수 있으며, 이에 한정되는것은 아니다. 일부 실시예에 있어서, 디스플레이 장치는 터치 스크린일수 있다.
사용자와의 인터랙션을 제공하기 위하여, 컴퓨터에서 여기에 기재된 시스템 및 기술을 실시할수 있으며, 해당 컴퓨터는 사용자에게 정보를 디스플레이하는 디스플레이 장치(예를 들어, CRT(Cathe Ray Tube, 음극선관) 또는 LCD(액정 디스플레이)모니터), 그리고 키보드와 포인팅 장치(예를 들어, 마우스 또는 트랙 볼)를 포함할수 있으며, 사용자는 해당 키보드와 해당 포인팅 장치를 통하여 입력을 컴퓨터에 제공해줄수 있다. 기타 종류의 장치는 사용자와의 인터랙션을 제공하는데 사용될수 있으며, 예를 들어, 사용자에게 제공된 피드백은 모든 형식의 감각 피드백(예를 들어, 시각 피드백, 청각 피드백 또는 촉각 피드백)일수 있으며; 모든 형식(소리 입력, 음성 입력 또는 촉각 입력을 포함)을 통하여 사용자로부터의 입력을 수신할수 있다.
도7은 본 출원의 실시예에 따른 복잡 계산 방법을 나타내며, 다음 단계를 포함한다. 즉:
단계(S701), 복잡 계산 명령을 수신하고, 각 복잡 계산 명령중의 계산 유형에 기반하여 각 복잡 계산 명령을 대응된 계산 소자에게 각각 중재해준다. 여기서, 복잡 계산 명령에는 인공지능 프로세서 코어의 명령 출처 표지 및 복잡 계산하기 위한 원시 오퍼랜드(source operand)를 더 포함한다;
단계(S702), 계산 소자는 수신한 복잡 계산 명령으로부터 원시 오퍼랜드를 획득하여 복잡 계산을 진행하도록 하고, 계산 결과 명령을 생성한다. 여기서, 계산 결과 명령에는 복잡 계산 명령중의 명령 출처 표지 및 복잡 계산의 계산 결과를 포함한다;
단계(S703), 각 계산 결과 명령중의 명령 출처 표지에 기반하여, 각 계산 결과 명령중의 계산 결과를 대응된 명령 출처에게 각각 중재하여 준다.
일 실시방식에 있어서, 본 출원의 실시예의 방법은 상기의 복잡 계산 장치(200)에 의해 실행할수 있으며, 예를 들어, 입력 인터페이스(210)이 단계(S701)을 실행하고, 출력 인터페이스(230)이 단계(S703)을 실행할수 있다.
이해하여야 할것은, 이상에 기재된 각종 형식의 프로세스를 이용하여, 단계를 다시 순서배열, 증가 또는 삭제할수 있다는것이다. 예를 들어, 본 출원에 기재된 각 단계는 병행하여 실행될수도 있고, 순서대로 실행될수도 있고, 다른 부동한 순서대로 실행될수도 있으며, 본 출원에 개시된 기술방안이 기대하는 결과만 실현할수 있다면, 본문에서는 여기서 한정하지 않는다.
이외, 용어"제1", "제2"는 기재상의 목적을 위한것이지, 상대적인 중요성을 나타내거나 암시하는것으로 이해하여서는 안되며, 또는 그가 표시하는 기술특징의 수량을 암시하는것으로 이해하여서는 안된다. 이에 따라서, "제1", "제2"로 한정된 특징은 하나 또는 더 많은 해당 특징을 포함하는것을 나타내거나 암시할수 있다. 본 발명의 기재에 있어서, "복수"의 의미는 다른 구체적인 한정이 없는 한, 두개 혹은 두개이상을 가리킨다. 용어"연결" 은 넓은 의미로 이해하여야 하며, 예를 들어 직접적인 연결일수도 있고, 중간 매체를 거쳐 간접적으로 연결될수도 있다. 해당 분야 기술자들은 구체적인 정황에 기반하여 상기의 용어가 본 발명에서의 구체적인 의미를 이해하여야 할것이다.
이상의 구체적인 실시방식은, 본 출원의 보호범위에 대한 한정이 아니다. 해당 분야 기술자들이 명백해야 할것은, 설계 요구와 기타 요소에 기반하여, 각종 수정, 조합, 서브 조합 및 교체를 진행할수 있다는 점이다. 본 출원의 정신 및 원칙내에서 진행된 모든 수정, 균등 교체와 개량 등은 모두 본 출원의 보호 범위내에 포함되여야 할 것이다.
10: AI칩;
100: AI프로세서 코어;
200: 복잡 계산 장치;
210: 입력 인터페이스;
220: 계산 소자;
230: 출력 인터페이스;
211: 제1 마스터 노드;
212: 제1 슬레이브 노드;
213: 제1 주소 판단 모듈;
214: 제1 중재 모듈;
231: 제2 마스터 노드;
232: 제2 슬레이브 노드;
233: 제2 주소 판단 모듈;
234: 제2 중재 모듈;
601: 프로세서;
602: 메모리;
603: 입력 장치;
604: 출력 장치.

Claims (15)

  1. 입력 인터페이스, 복수의 계산 소자 및 출력 인터페이스를 포함하는 복잡 계산 장치에 있어서,
    상기 입력 인터페이스는 복잡 계산 명령을 수신하고, 각 상기 복잡 계산 명령의 계산 유형에 기반하여, 각 상기 복잡 계산 명령을 대응된 계산 소자에게 각각 중재해주기 위한 것이며, 여기서, 상기 복잡 계산 명령에는 명령 출처 표지 및 복잡 계산하기 위한 원시 오퍼랜드를 더 포함하며;
    각 상기 계산 소자는 모두 상기 입력 인터페이스에 연결되여 있고, 상기 계산 소자는 수신한 복잡 계산 명령으로부터 상기 원시 오퍼랜드를 획득하여 상기 복잡 계산을 진행하도록 하고, 계산 결과 명령을 생성하여 상기 출력 인터페이스에 피드백하기 위한 것이며, 여기서, 상기 계산 결과 명령에는 상기 복잡 계산 명령중의 명령 출처 표지 및 상기 복잡 계산의 계산 결과를 포함하며;
    상기 출력 인터페이스는 각 상기 계산 결과 명령중의 명령 출처 표지에 기반하여, 각 상기 계산 결과 명령중의 계산 결과를 대응된 명령 출처에게 각각 중재해주기 위한 것이고,
    상기 입력 인터페이스는 복수의 제1마스터 노드 및 복수의 제1슬레이브 노드를 포함하며, 각 상기 제1슬레이브 노드는 각 상기 제1마스터 노드에 각각 연결되며, 각 상기 제1마스터 노드와 각 명령 출처는 1대1로 대응되여 연결되고, 각 상기 제1슬레이브 노드는 각 상기 계산 소자에 1대1로 대응되여 연결되며;
    상기 제1마스터 노드는 대응되여 연결된 명령 출처로부터 대응된 복잡 계산 명령을 획득하고, 획득한 복잡 계산 명령중의 계산 유형에 기반하여, 획득한 복잡 계산 명령을 대응된 제1슬레이브 노드에 중재해주며; 상기 제1슬레이브 노드는 수신한 복잡 계산 명령을 연결된 계산 소자에 송신하기 위한 것이고;
    상기 입력 인터페이스는 복수의 제1주소 판단 모듈 및 복수의 제1중재 모듈을 더 포함하며, 각 상기 제1마스터 노드는 각 상기 제1주소 판단 모듈에 1대1로 대응되여 연결되였으며, 각 상기 제1중재 모듈은 각 상기 제1주소 판단 모듈에 각각 연결되였으며, 각 상기 제1중재 모듈은 각 상기 제1슬레이브 노드에 1대1로 대응되여 연결되였으며;
    상기 제1주소 판단 모듈은 연결된 제1마스터 노드로부터 대응된 복잡 계산 명령을 수신하고, 수신한 복잡 계산 명령중의 명령 유형을 매개의 연결된 제1슬레이브 노드와 비교하고, 비교결과가 매칭될 경우, 제1청구 공제 유효 신호를 출력하며; 상기 제1중재 모듈은 사전에 설정된 중재 알고리즘에 기반하여, 복수의 출력된 제1청구 공제 유효 신호중에서 제1목표 청구 공제 유효 신호를 확정하고, 상기 제1목표 청구 공제 유효 신호에 대응된 제1마스터 노드와 상기 제1중재 모듈에 연결된 제1슬레이브 노드를 스트로브하는 것,
    을 특징으로 하는 복잡 계산 장치.
  2. 제1항에 있어서,
    상기 입력 인터페이스와 상기 출력 인터페이스는 모두 크로스바 구조인 것을 특징으로 하는 복잡 계산 장치.
  3. 삭제
  4. 삭제
  5. 제1항에 있어서,
    상기 제1마스터 노드의 출력 데이터는 제1주소 신호와 제1데이터 신호를 포함하며, 상기 제1주소 신호는 상기 계산 유형을 포함하며, 상기 제1데이터 신호는 상기 명령 출처 표지 및 상기 원시 오퍼랜드를 포함하며; 상기 제1주소 판단 모듈은 연결된 제1마스터 노드로부터 대응된 제1주소 신호를 수신하고, 수신한 제1주소 신호를 매개의 연결된 제1슬레이브 노드의 시퀀스 번호와 비교하기 위한 것이며; 상기 제1슬레이브 노드는 서로 스트로브된 제1마스터 노드로부터 대응된 제1데이터 신호를 수신하기 위한 것,
    을 특징으로 하는 복잡 계산 장치.
  6. 제1항에 있어서,
    상기 제1마스터 노드는 핸드 셰이크 프로토콜을 통하여 상기 복잡 계산 명령을 수신하는것을 특징으로 하는 복잡 계산 장치.
  7. 제1항에 있어서,
    상기 출력 인터페이스는 복수의 제2마스터 노드 및 복수의 제2슬레이브 노드를 포함하며, 각 상기 제2마스터 노드는 각 상기 계산 소자에 1대1로 대응되여 연결되였으며, 각 상기 제2슬레이브 노드는 각 상기 제2마스터 노드에 각각 연결되였으며;
    상기 제2마스터 노드는 연결된 계산 소자로부터 대응된 계산 결과 명령을 획득하고, 획득한 계산 결과 명령중의 명령 출처 표지에 기반하여 획득한 계산 결과 명령을 대응된 제2슬레이브 노드에 중재하여 주며; 상기 제2슬레이브 노드는 수신한 계산 결과 명령을 대응된 명령 출처에 송신하기 위한 것,
    을 특징으로 하는 복잡 계산 장치.
  8. 제7항에 있어서,
    상기 출력 인터페이스는 복수의 제2주소 판단 모듈 및 복수의 제2중재 모듈을 더 포함하며, 각 상기 제2마스터 노드와 각 상기 제2주소 판단 모듈을 1대1로 대응되여 연결되였으며, 각 상기 제2중재 모듈은 각 상기 제2주소 판단 모듈에 각각 연결되였으며;
    상기 제2주소 판단 모듈은 연결된 제2마스터 노드로부터 대응된 계산 결과 명령을 수신하고, 수신한 계산 결과 명령중의 명령 출처 표지를 매개의 연결된 제2슬레이브 노드와 비교하고, 비교결과가 매칭될 경우, 제2청구 공제 유효 신호를 출력하기 위한 것이며; 상기 제2중재 모듈은 사전에 설정된 중재 알고리즘에 기반하여, 복수의 출력된 제2청구 공제 유효 신호중에서 제2목표 청구 공제 유효 신호를 확정하고, 상기 제2목표 청구 공제 유효 신호에 대응되는 제2마스터 노드와 상기 제2중재 모듈에 연결된 제2슬레이브 노드를 스트로브하기 위한 것,
    을 특징으로 하는 복잡 계산 장치.
  9. 제8항에 있어서,
    상기 제2마스터 노드의 출력 데이터는 제2주소 신호와 제2데이터 신호를 포함하며, 상기 제2주소 신호는 상기 명령 출처 표지를 포함하며, 상기 제2데이터 신호는 상기 계산 결과를 포함하며; 상기 제2주소 판단 모듈은 연결된 제2마스터 노드로부터 대응된 제2주소 신호를 수신하고, 수신한 제2주소 신호를 매개의 연결된 제2슬레이브 노드의 시퀀스 번호와 비교하기 위한 것이며; 상기 제2슬레이브 노드는 스트로브된 제2마스터 노드로부터 대응된 제2데이터 신호를 수신하기 위한 것,
    을 특징으로 하는 복잡 계산 장치.
  10. 제7항에 있어서,
    상기 제2마스터 노드는 핸드 셰이크 프로토콜을 통하여 연결된 계산 소자로부터 대응된 계산 결과 명령을 획득하는것,
    을 특징으로 하는 복잡 계산 장치.
  11. 제1항, 제2항, 제5항 내지 제10항 중 어느 한 항에 기재된 복잡 계산 장치 및 상기 복잡 계산 장치에 연결된 복수의 명령 출처을 포함하는 것을 특징으로 하는 인공지능 칩.
  12. 제11항에 있어서,
    상기 명령 출처는 인공지능 프로세서 코어를 포함하는 것을 특징으로 하는 인공지능 칩.
  13. 통신 연결된 적어도 하나의 프로세서, 적어도 하나의 메모리 및 적어도 하나의 제11항에 기재된 인공지능 칩을 포함하는 것을 특징으로 하는 전자 기기.
  14. 복잡 계산 장치에 의해 실행되는 복잡 계산 방법에 있어서,
    복잡 계산 장치는 입력 인터페이스, 복수의 계산 소자 및 출력 인터페이스를 포함하고,
    상기 복잡 계산 방법은, 상기 입력 인터페이스가 복잡 계산 명령을 수신하고, 각 상기 복잡 계산 명령중의 계산 유형에 기반하여 각 상기 복잡 계산 명령을 대응된 계산 소자에게 각각 중재하여 주는 단계 - 여기서, 상기 복잡 계산 명령에는 명령 출처 표지 및 복잡 계산하기 위한 원시 오퍼랜드를 더 포함함 -;
    상기 계산 소자는 수신한 복잡 계산 명령으로부터 상기 원시 오퍼랜드를 획득하여 상기 복잡 계산을 진행하도록 하고, 계산 결과 명령을 생성하는 단계 - 여기서, 상기 계산 결과 명령에는 상기 복잡 계산 명령중의 명령 출처 표지 및 상기 복잡 계산의 계산 결과를 포함함 -; 및
    각 상기 계산 결과 명령중의 명령 출처 표지에 기반하여, 각 상기 계산 결과 명령중의 계산 결과를 대응된 명령 출처에게 각각 중재하여 주는 단계, 를 포함하고,
    상기 입력 인터페이스는 복수의 제1마스터 노드 및 복수의 제1슬레이브 노드를 포함하며, 각 상기 제1슬레이브 노드는 각 상기 제1마스터 노드에 각각 연결되며, 각 상기 제1마스터 노드와 각 명령 출처는 1대1로 대응되여 연결되고, 각 상기 제1슬레이브 노드는 각 상기 계산 소자에 1대1로 대응되여 연결되며,
    상기 복잡 계산 방법은,
    상기 제1마스터 노드가 대응되여 연결된 명령 출처로부터 대응된 복잡 계산 명령을 획득하고, 획득한 복잡 계산 명령중의 계산 유형에 기반하여, 획득한 복잡 계산 명령을 대응된 제1슬레이브 노드에 중재해주는 단계 - 상기 제1슬레이브 노드는 수신한 복잡 계산 명령을 연결된 계산 소자에 송신하기 위한 것임 -를 더 포함하고,
    상기 입력 인터페이스는 복수의 제1주소 판단 모듈 및 복수의 제1중재 모듈을 더 포함하며, 각 상기 제1마스터 노드는 각 상기 제1주소 판단 모듈에 1대1로 대응되여 연결되였으며, 각 상기 제1중재 모듈은 각 상기 제1주소 판단 모듈에 각각 연결되였으며, 각 상기 제1중재 모듈은 각 상기 제1슬레이브 노드에 1대1로 대응되여 연결되였으며,
    상기 복잡 계산 방법은,
    상기 제1주소 판단 모듈이 연결된 제1마스터 노드로부터 대응된 복잡 계산 명령을 수신하고, 수신한 복잡 계산 명령중의 명령 유형을 매개의 연결된 제1슬레이브 노드와 비교하고, 비교결과가 매칭될 경우, 제1청구 공제 유효 신호를 출력하는 단계; 및 상기 제1중재 모듈이 사전에 설정된 중재 알고리즘에 기반하여, 복수의 출력된 제1청구 공제 유효 신호중에서 제1목표 청구 공제 유효 신호를 확정하고, 상기 제1목표 청구 공제 유효 신호에 대응된 제1마스터 노드와 상기 제1중재 모듈에 연결된 제1슬레이브 노드를 스트로브하는 단계를 더 포함하는 것
    을 특징으로 하는 복잡 계산 방법.
  15. 컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램에 있어서,
    상기 컴퓨터 프로그램 중의 명령이 프로세서에 의해 실행될 경우, 청구항14에 기재된 복잡 계산 방법을 실현하는것을 특징으로 하는 컴퓨터 판독가능 저장 매체에 저장된 프로그램.
KR1020210003501A 2020-06-30 2021-01-11 복잡 계산 장치, 방법, 인공지능 칩, 전자 기기 및 프로그램 KR102595540B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202010612288.3 2020-06-30
CN202010612288.3A CN111782580B (zh) 2020-06-30 2020-06-30 复杂计算装置、方法、人工智能芯片和电子设备

Publications (2)

Publication Number Publication Date
KR20220002053A KR20220002053A (ko) 2022-01-06
KR102595540B1 true KR102595540B1 (ko) 2023-10-30

Family

ID=72760414

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210003501A KR102595540B1 (ko) 2020-06-30 2021-01-11 복잡 계산 장치, 방법, 인공지능 칩, 전자 기기 및 프로그램

Country Status (5)

Country Link
US (1) US11782722B2 (ko)
EP (1) EP3933586A1 (ko)
JP (1) JP7158510B2 (ko)
KR (1) KR102595540B1 (ko)
CN (1) CN111782580B (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112579510A (zh) * 2020-12-17 2021-03-30 上海燧原智能科技有限公司 一种芯片集群
CN115237374A (zh) * 2021-04-22 2022-10-25 华为技术有限公司 芯片、处理数据的方法和计算机设备
CN115905088B (zh) * 2022-12-27 2023-07-14 声龙(新加坡)私人有限公司 一种数据收集结构、方法、芯片和***

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170147345A1 (en) * 2015-11-19 2017-05-25 Knuedge, Inc. Multiple operation interface to shared coprocessor
US20170308411A1 (en) 2016-04-20 2017-10-26 Samsung Electronics Co., Ltd Optimal task scheduler
WO2019049842A1 (ja) 2017-09-07 2019-03-14 パナソニック株式会社 不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0454685A (ja) * 1990-06-22 1992-02-21 Kobe Steel Ltd 状熊学習装置及び状態推定装置
US5087826A (en) * 1990-12-28 1992-02-11 Intel Corporation Multi-layer neural network employing multiplexed output neurons
JPH05264645A (ja) * 1992-03-19 1993-10-12 Hitachi Ltd 絶縁物の劣化推定法
US5256911A (en) * 1992-06-10 1993-10-26 Intel Corporation Neural network with multiplexed snyaptic processing
US5371834A (en) * 1992-08-28 1994-12-06 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Adaptive neuron model--an architecture for the rapid learning of nonlinear topological transformations
JP3466728B2 (ja) * 1994-09-12 2003-11-17 キヤノン株式会社 情報処理システム及びその方法
US7742985B1 (en) * 2003-06-26 2010-06-22 Paypal Inc. Multicurrency exchanges between participants of a network-based transaction facility
US20080162873A1 (en) * 2006-12-28 2008-07-03 Zimmer Vincent J Heterogeneous multiprocessing
JP2009026136A (ja) * 2007-07-20 2009-02-05 Nec Electronics Corp マルチプロセッサ装置
JP2009026135A (ja) * 2007-07-20 2009-02-05 Nec Electronics Corp マルチプロセッサ装置
CN101950282B (zh) 2010-08-30 2012-05-23 中国科学院计算技术研究所 一种多处理器***及其同步引擎
JP2013222364A (ja) * 2012-04-18 2013-10-28 Renesas Electronics Corp 信号処理回路
CN115100018A (zh) 2015-06-10 2022-09-23 无比视视觉技术有限公司 用于处理图像的图像处理器和方法
KR20170015000A (ko) * 2015-07-31 2017-02-08 한국전자통신연구원 온칩 네트워크 및 이의 통신방법
CN110073329B (zh) * 2016-12-16 2021-06-22 华为技术有限公司 访存设备、计算设备和应用于卷积神经网络运算的设备
CN110825312B (zh) * 2018-08-10 2023-06-23 昆仑芯(北京)科技有限公司 数据处理装置、人工智能芯片及电子设备
CN110825435B (zh) * 2018-08-10 2023-01-24 昆仑芯(北京)科技有限公司 用于处理数据的方法和装置
CN110825436B (zh) * 2018-08-10 2022-04-29 昆仑芯(北京)科技有限公司 应用于人工智能芯片的计算方法和人工智能芯片
CN110968532B (zh) * 2018-09-29 2021-09-21 上海寒武纪信息科技有限公司 数据传输方法及相关产品
CN111258950B (zh) * 2018-11-30 2022-05-31 上海寒武纪信息科技有限公司 原子访存方法、存储介质、计算机设备、装置和***
CN109739556B (zh) 2018-12-13 2021-03-26 北京空间飞行器总体设计部 一种基于多并行缓存交互及计算的通用深度学习处理器

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170147345A1 (en) * 2015-11-19 2017-05-25 Knuedge, Inc. Multiple operation interface to shared coprocessor
US20170308411A1 (en) 2016-04-20 2017-10-26 Samsung Electronics Co., Ltd Optimal task scheduler
WO2019049842A1 (ja) 2017-09-07 2019-03-14 パナソニック株式会社 不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路

Also Published As

Publication number Publication date
EP3933586A1 (en) 2022-01-05
US20210406032A1 (en) 2021-12-30
KR20220002053A (ko) 2022-01-06
CN111782580B (zh) 2024-03-01
JP2022013607A (ja) 2022-01-18
US11782722B2 (en) 2023-10-10
CN111782580A (zh) 2020-10-16
JP7158510B2 (ja) 2022-10-21

Similar Documents

Publication Publication Date Title
KR102595540B1 (ko) 복잡 계산 장치, 방법, 인공지능 칩, 전자 기기 및 프로그램
JP2021520566A (ja) オンチップコードのブレークポイントによるデバッグ方法、オンチッププロセッサ及びブレークポイントによるチップデバッグシステム
US9614782B2 (en) Continuous resource pool balancing
CN113806260A (zh) 用于管理网络接口控制器的灵活主机接口的技术
CN109074281B (zh) 图形处理器任务的分配方法和装置
KR102563165B1 (ko) 메모리 액세스 요청 스케줄링 방법, 장치, 기기 및 저장 매체
US20210248469A1 (en) Method and apparatus for scheduling deep learning reasoning engines, device, and medium
US9164951B2 (en) Multiprocessor system, execution control method and execution control program
US9509562B2 (en) Method of providing a dynamic node service and device using the same
WO2024125185A1 (zh) 主从设备间通讯的通讯转换方法、装置及存储介质
CN114742000B (zh) 基于FPGA集群的SoC芯片验证***、验证方法、装置
WO2018120933A1 (zh) 一种数据库的存储、查询方法及装置
US8861517B2 (en) Petaflops router
KR20210095599A (ko) 명령 수행 결과를 라이트백하기 위한 장치 및 방법, 프로세싱 장치
US20190042240A1 (en) System, Apparatus And Method For Providing A Fabric For An Accelerator
US11082327B2 (en) System and method for computational transport network-on-chip (NoC)
CN113886054B (zh) 一种中断处理装置、芯片和电子设备
CN113867802B (zh) 一种中断分发装置、芯片和电子设备
CN111949648A (zh) 内存缓存数据***和数据索引方法
JP7265618B2 (ja) 深層学習トレーニングタスクに向けたプロセッサメモリを最適化するための方法及び装置
KR20210077588A (ko) 분산 환경에서 딥 러닝 트레이닝을 최적화하기 위한 런타임에서의 서비스 클래스 속성의 초기화 및 관리
Rettkowski et al. Application-specific processing using high-level synthesis for networks-on-chip
CN111858652A (zh) 基于消息队列的跨数据源查询方法、***及服务器节点
KR20210012439A (ko) 마스터 지능 소자 및 이의 제어 방법
US20240111694A1 (en) Node identification allocation in a multi-tile system with multiple derivatives

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant