KR20230007220A - 멀티 인코딩 기반의 스파이크 뉴럴 네트워크 장치 및 그의 동작 방법 - Google Patents

멀티 인코딩 기반의 스파이크 뉴럴 네트워크 장치 및 그의 동작 방법 Download PDF

Info

Publication number
KR20230007220A
KR20230007220A KR1020220002101A KR20220002101A KR20230007220A KR 20230007220 A KR20230007220 A KR 20230007220A KR 1020220002101 A KR1020220002101 A KR 1020220002101A KR 20220002101 A KR20220002101 A KR 20220002101A KR 20230007220 A KR20230007220 A KR 20230007220A
Authority
KR
South Korea
Prior art keywords
snn
coding
input signal
cluster
neural network
Prior art date
Application number
KR1020220002101A
Other languages
English (en)
Inventor
김성은
강태욱
김혁
배영환
변경진
오광일
이재진
전인산
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to US17/857,602 priority Critical patent/US20230004777A1/en
Publication of KR20230007220A publication Critical patent/KR20230007220A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/049Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
    • 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

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)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Neurology (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

멀티 인코딩 기반의 스파이크 뉴럴 네트워크 장치 및 그 동작 방법이 개시된다. 멀티인 코딩을 수행하는 스파이크 뉴럴 네트워크 장치의 동작 방법에 있어서, 인코딩 모듈이 입력 신호를 수신하는 단계; 상기 인코딩 모듈이 상기 수신한 입력 신호에 대해 레이트 코딩(rate coding) 및 템포럴 코딩(temporal coding)을 수행하는 단계; 상기 레이트 코딩 및 상기 템포럴 코딩의 수행 결과에 기초하여 SNN 입력 신호를 생성하는 단계; 상기 생성된 SNN 입력 신호를 SNN(Spike Neural Network) 연산을 수행하는 뉴로모픽 칩으로 송신하는 단계를 포함할 수 있다.

Description

멀티 인코딩 기반의 스파이크 뉴럴 네트워크 장치 및 그의 동작 방법{SPIKE NERUAL NETWORK APPARATUS BASED ON MULTI-ENCODING AND METHOD OF OPERATION THEREOF}
본 개시는 스파이크 뉴럴 네트워크 장치에 관한 것으로, 더 상세하게는 입력 신호에 대해 다수의 인코딩 방식들을 수행하는 스파이크 뉴럴 네트워크 장치 및 그의 동작 방법에 관한 것이다.
인간의 사고, 추론, 및 학습 과정을 전자 장치에 적용하여 정보를 처리하는 인공지능 기술에 대한 관심이 증가하고 있고, 인간의 뇌에 포함된 뉴런 및 시냅스를 모방하여 정보를 처리하는 기술도 함께 발달하고 있다. 인간의 뇌를 구성하는 뉴런 및 시냅스에는 다양한 종류가 존재하고, 뉴런 간의 혹은 시냅스 간의 신호 처리에 관한 연구가 현재에도 지속되고 있다. 현재 개발된 SNN 기반의 뉴로모픽 시스템은 대부분 LIF (leaky-integrate-and-fire) 뉴런 모델에 기반을 두고 있으며, LIF 뉴런 모델 기반의 뉴로모픽 시스템은 인간의 뇌에서 연구된 다양한 뉴런 모델의 특성을 활용하지 못하고 있다.
본 개시의 목적은 입력 신호에 대해 다수의 인코딩 방식들을 혼합하여 프리-프로세싱하고, 이에 기반하는 스파이크 뉴럴 네트워크 장치 및 그의 동작 방법을 제공하는 것이다.
본 개시의 일 실시 예에 따른 멀티 인코딩을 수행하는 스파이크 뉴럴 네트워크(SNN)(Spike Neural Network) 장치의 동작 방법은, 인코딩 모듈이 입력 신호를 수신하는 단계; 상기 인코딩 모듈이 상기 수신한 입력 신호에 대해 레이트 코딩(rate coding) 및 템포럴 코딩(temporal coding)을 수행하는 단계; 상기 레이트 코딩 및 상기 템포럴 코딩의 수행 결과에 기초하여 SNN 입력 신호를 생성하는 단계; 상기 생성된 SNN 입력 신호를 SNN(Spike Neural Network) 연산을 수행하는 뉴로모픽 칩으로 송신하는 단계를 포함할 수 있다.
본 개시의 일 실시 예에 따른 방법에 있어서, 상기 인코딩 모듈이 상기 수신한 입력 신호에 대해 레이트 코딩 및 템포럴 코딩을 수행하는 단계는: 상기 입력 신호에 대해 상기 레이트 코딩을 수행하는 단계; 그리고 상기 레이트 코딩의 수행 결과에 대해 상기 템포럴 코딩을 수행하는 단계를 포함할 수 있다.
본 개시의 일 실시 예에 따른 방법에 있어서, 상기 레이트 코딩 및 상기 템포럴 코딩의 수행 결과에 대해 페이즈 코딩(phase coding) 및 싱크로너스 코딩(synchronous coding) 중 적어도 하나를 수행하는 단계를 더 포함할 수 있다.
본 개시의 일 실시 예에 따른 방법에 있어서, 상기 템포럴 코딩은 상기 입력 신호의 스파이크 신호들의 주파수 또는 시간차(time margin)에 기초하여 수행될 수 있다.
본 개시의 일 실시 예에 따른 방법에 있어서, 상기 SNN 연산을 수행하는 것은, 상기 SNN 입력 신호의 분류 결과를 나타내는 SNN 출력 신호를 생성하는 것을 포함할 수 있다.
본 개시의 일 실시 예에 따른 방법에 있어서, 상기 SNN 출력 신호는 아이덴티티(Identity)에 따라 분류된 적어도 네 개의 신호들 중 하나일 수 있다.
본 개시의 일 실시 예에 따른 방법에 있어서, 상기 SNN 출력 신호는 두 개의 출력 뉴런으로부터 상기 아이덴티티에 따라 분류된 적어도 네 개의 신호들 중 하나일 수 있다.
본 개시의 일 실시 예에 따른 방법에 있어서, 상기 SNN 출력 신호는 상기 레이트 코딩 및 템포럴 코딩에 기반하여 상기 분류 결과를 나타낼 수 있다.
본 개시의 일 실시 예에 따른 멀티 인코딩을 수행하는 스파이크 뉴럴 네트워크(SNN)(Spike Neural Network) 장치에 있어서, 입력 신호를 수신하고, SNN 입력 신호 및 SNN 출력 신호를 생성하도록 구성되는 뉴로모픽 칩; 그리고 상기 SNN 입력 신호 및 SNN 출력 신호를 저장하는 메모리를 포함하고, 상기 뉴로모픽 칩은: 상기 수신한 입력 신호에 대해 레이트 코딩 및 템포럴 코딩을 수행하고; 상기 수행 결과에 기초하여 상기 SNN 입력 신호를 생성하고; 그리고 SNN(Spike Neural Network) 연산을 수행하여 상기 생성한 SNN 입력 신호로부터 상기 SNN 출력 신호를 생성하는 것을 포함할 수 있다.
본 개시의 일 실시 예에 따른 멀티 인코딩을 수행하는 스파이크 뉴럴 네트워크 장치에 있어서, 상기 SNN 출력 신호는 상기 레이트 코딩 및 템포럴 코딩에 기반하여 상기 SNN 입력 신호의 분류 결과를 나타낼 수 있다.
본 개시의 일 실시 예에 따른 멀티 인코딩을 수행하는 스파이크 뉴럴 네트워크 장치에 있어서, 상기 SNN 출력 신호는 아이덴티티에 따라 분류된 적어도 네 개의 신호들 중 하나일 수 있다.
본 개시의 일 실시 예에 따른 멀티 인코딩을 수행하는 스파이크 뉴럴 네트워크 장치에 있어서, 상기 SNN 출력 신호는 두 개의 출력 뉴런으로부터 상기 아이덴티티에 따라 분류된 적어도 네 개의 신호들 중 하나일 수 있다.
본 개시의 일 실시 예에 따른 멀티 인코딩을 수행하는 스파이크 뉴럴 네트워크 장치에 있어서, 상기 뉴로모픽 칩은 제 1 내지 제 N 클러스터들(단, N은 4 이상의 자연수)로 구성된 네트워크-온-칩(NoC)(network-on-chip)로 구현될 수 있다.
본 개시의 일 실시 예에 따른 멀티 인코딩을 수행하는 스파이크 뉴럴 네트워크 장치에 있어서, 상기 NoC는 메쉬(Mesh) 또는 트리(Tree) 구조 중 하나로 구현될 수 있다.
본 개시의 일 실시 예에 따른 멀티 인코딩을 수행하는 스파이크 뉴럴 네트워크 장치에 있어서, 상기 제 1 클러스터는 상기 SNN 입력 신호에 대해 상기 레이트 코딩을 수행하고, 상기 제 2 클러스터는 상기 제 1 클러스터의 출력에 대해 상기 템포럴 코딩을 수행할 수 있다.
본 개시의 일 실시 예에 따른 멀티 인코딩을 수행하는 스파이크 뉴럴 네트워크 장치에 있어서, 상기 제 3 클러스터는 상기 제2 클러스터의 출력에 대해 페이즈 코딩을 수행하고, 제 4 클러스터는 상기 제2 클러스터의 출력 또는 상기 제3 클러스터의 출력에 대해 싱크로너스 코딩을 수행할 수 있다.
본 개시의 일 실시 예에 따른 멀티 인코딩을 수행하는 스파이크 뉴럴 네트워크 장치에 있어서, 상기 입력 신호에 대해, 상기 제 1 클러스터는 상기 레이트 코딩을 수행하고, 상기 제 2 클러스터는 상기 템포럴 코딩을 수행하고, 상기 제 3 클러스터는 페이즈 코딩을 수행하고, 그리고 상기 제 4 클러스터는 싱크로너스 코딩을 수행하고, 상기 뉴로모픽 칩은 상기 제 1 내지 제 4 클러스터들 각각의 상기 수행 결과들을 인터페이싱하여 상기 SNN 입력 신호를 생성할 수 있다.
본 개시의 일 실시 예에 따른 스파이크 뉴럴 네트워크 장치는 다양한 인코딩 방식을 혼합하여 입력 신호를 리모델링함으로써, 입력 신호에 많은 정보를 담을 수 있다. 따라서, 스파이크 뉴럴 네트워크 장치의 동작 효율 또는 신호 처리 효율을 개선하고, 신호를 처리함에 있어 필요한 하드웨어의 구성을 최소화할 수 있다.
도 1은 본 개시의 일 실시 예에 따라, 스파이크 뉴럴 네트워크 장치의 블록도를 도시한다.
도 2는 본 개시의 일 실시 예에 따라, 인코딩 모듈을 도시한다.
도 3은 본 개시의 일 실시 예에 따라, 인코딩 모듈의 예를 보여주기 위한 도면이다.
도 4a 및 4b는 본 개시의 일 실시 예에 따라, 스파이크 뉴럴 네트워크 장치의 동작 각각의 수행 결과들을 도시한다.
도 5는 본 개시의 일 실시 예에 따라, 스파이크 뉴럴 네트워크 장치의 순서도를 도시한다.
도 6은 본 개시의 일 실시 예에 따라, 스파이크 뉴럴 네트워크 장치의 블록도를 도시한다.
도 7a 및 7b는 본 개시의 일 실시 예에 따라, 뉴로모픽 칩 기능을 구현하기 위한 구성들을 도시한다.
도 8은 본 개시의 일 실시 예에 따라, 스파이크 뉴럴 네트워크 장치의 동작 순서도를 도시한다.
도 9는 본 개시의 일 실시 예에 따라, 스파이크 뉴럴 네트워크 장치의 동작순서도를 도시한다.
이하, 첨부된 도면들을 참조하여 본 개시의 기술 분야에서 통상의 지식을 가진 자가 본 개시를 용이하게 실시할 수 있을 정도로, 본 발명의 실시 예들이 명확하고 상세하게 기재될 것이다. 또한, 본 명세서에서의 신호는 경우에 따라 복수의 신호들을 포함할 수 있다. 본 명세서에서의 신호는 경우에 따라 복수의 신호들을 포함할 수 있고, 복수의 신호들은 서로 다른 신호들일 수 있다.
도 1은 본 개시의 일 실시 예에 따라, 스파이크 뉴럴 네트워크 장치(100)의 블록도를 도시한다. 도 1을 참조하면, 스파이크 뉴럴 네트워크 장치(100)는 인코딩 모듈(200), 프로세서들(110), 뉴로모픽 칩(120), 메모리(130)을 포함할 수 있다.
프로세서들(110)은 스파이크 뉴럴 네트워크 장치(100)의 중앙 처리 장치로의 기능을 수행할 수 있다. 프로세서들(110) 중 적어도 하나는 인코딩 모듈(200)을 구동할 수 있다. 프로세서들(110)은 중앙 프로세싱 유닛(111)(CPU), 응용 프로세서(112)(AP) 등과 같은 적어도 하나의 범용 프로세서를 포함할 수 있다. 프로세서들(110)은 또한 뉴럴 프로세싱 유닛(113), 뉴로모픽 프로세서(114), 그래픽 프로세싱 유닛(115)(GPU) 등과 같은 적어도 하나의 특수 목적 프로세서를 포함할 수 있다. 프로세서들(110)은 두 개 이상의 동일한 종류의 프로세서들을 포함할 수 있다. 다른 예로서, 프로세서들(110) 중 적어도 하나(또는 적어도 다른 하나)의 프로세서는 다양한 기계 학습 또는 심층 학습 모듈들을 구현하도록 제조될 수 있다.
프로세서들(110) 중 적어도 하나는 인코딩 모듈(200)을 실행할 수 있다. 인코딩 모듈(200)은 인코딩 모듈(200)이 수신한 입력 신호에 대해 적어도 두 개의 인코딩 방식들을 수행할 수 있다. 프로세서들(110) 중 적어도 하나는 인코딩 모듈(200)을 실행하여, 사용자가 원하는 특성을 추출하기에 적합한 인코딩 방식을 수행할 수 있다. 예를 들어, 인코딩 모듈(200)은 인코딩 모듈(200)이 수신한 입력 신호에 대해 레이트 코딩(Rate Coding) 및 템포럴 코딩(Temporal Coding)을 수행할 수 있다. 이때, 인코딩 모듈(200)은 레이트 코딩 및 템포럴 코딩을 동시에 또는 순차적으로 수행할 수 있다.
예를 들어, 인코딩 모듈(200)이 입력 신호에 대해 레이트 코딩을 수행하는 경우, 레이트 코딩의 수행 결과로써 제 1 특성 정보(예를 들어, 입력 신호의 세기)를 포함하는 신호를 생성할 수 있다. 인코딩 모듈(200)이 입력 신호에 대해 템포럴 코딩을 수행하는 경우, 템포럴 코딩의 수행 결과로써 제 2 특성 정보(예를 들어, 입력 신호의 주파수 또는 시간 정보)를 포함하는 신호를 생성할 수 있다.
예를 들어, 인코딩 모듈(200)이 입력 신호에 대해 레이트 코딩을 수행하고, 레이트 코딩 수행 결과에 대해 템포럴 코딩을 수행하는 경우, 인코딩 모듈(200)은 제 1 특성 정보(예를 들어, 입력 신호의 세기) 및 제 2 특성 정보(예를 들어, 레이트 코딩 수행 결과로써 생성된 스파이크 신호들의 주파수 또는 시간차)를 포함하는 신호를 생성할 수 있다.
예를 들어, 프로세서들(110) 중 적어도 하나가 인코딩 모듈(200)을 실행하여 레이트 코딩을 수행하는 경우, 인코딩 모듈(200)은 레이트 코딩의 수행 결과로써 입력 신호의 세기에 비례하는 수의 스파이크 신호들을 생성할 수 있다. 프로세서들(110) 중 적어도 하나가 인코딩 모듈(200)을 실행하여 템포럴 코딩을 수행하는 경우, 인코딩 모듈(200)은 입력 신호의 스파이크 신호들의 시간차(Time-margin) 또는 입력 신호의 스파이크 신호들의 주파수를 기반으로 입력 신호의 강도 또는 아이덴티티(Identity)를 나타낼 수 있다.
다른 예로서, 프로세서들(110) 중 적어도 하나는 인코딩 모듈(200)을 실행하여, 인코딩 모듈(200)이 수신한 입력 신호에 대해 페이즈 코딩(Phase Coding) 또는 싱크로너스 코딩(Synchronous Coding)을 수행할 수 있다. 예를 들어, 프로세서들(110) 중 적어도 하나가 인코딩 모듈(200)을 실행하여 페이즈 코딩을 수행한 경우, 수행 결과는 입력 신호의 시간에 따른 변화 특성을 포함할 수 있다. 또한, 프로세서들(110) 중 적어도 하나가 인코딩 모듈(200)을 실행하여 싱크로너스 코딩을 수행하는 경우, 인코딩 모듈(200)은 비상 상황 시(예를 들어, 다수의 입력 스파이크 신호들이 동시에 발화하는 경우) 출력 신호를 생성할 수 있다.
프로세서들(110) 중 적어도 하나는 인코딩 모듈(200)을 실행하여 입력 신호에 대한 인코딩 수행 결과에 기초하여 SNN 입력 신호를 생성할 수 있다. 프로세서들(110) 중 적어도 하나는 생성된 SNN 입력 신호를 뉴로모픽 칩(120)으로 송신할 수 있다.
프로세서들(110) 중 적어도 하나는 신호들 또는 데이터들에 대해 SNN 연산을 수행하도록 뉴로모픽 칩(120)에 요청할 수 있다. 예를 들어, 프로세서들(110) 중 적어도 하나는 인코딩 수행 결과로부터 생성한 SNN 입력 신호를 뉴로모픽 칩(120)으로 송신하고, SNN 입력 신호를 수신한 뉴로모픽 칩(120)에 대해 SNN 연산을 수행할 것을 요청할 수 있다. 이때, 뉴로모픽 칩(120)은 SNN 연산의 결과로써 SNN 입력 신호의 분류 결과를 나타내는 SNN 출력 신호 를 생성할 수 있다.
인코딩 모듈(200)은 프로세서들(110) 중 적어도 하나에 의해 실행되는 명령들(또는 코드들)의 형태로 구현될 수 있다. 이때, 프로세서들(110)중 적어도 하나는 인코딩 모듈 (200)의 명령들(또는 코드들)을 메모리(130)에 저장할 수 있다.
프로세서들(110) 중 적어도 하나(또는 적어도 다른 하나)의 프로세서는 인코딩 모듈(200)을 구현하도록 제조될 수 있다. 예를 들어, 적어도 하나의 프로세서는 인코딩 모듈(200)의 학습에 의해 생성된 인코딩 모듈(200)에 기반하여 하드웨어적으로 구현되는 전용 프로세서일 수 있다.
뉴로모픽 칩(120)은 SNN 연산을 수행할 수 있다. 예를 들어, 뉴로모픽 칩(120)은 인코딩 모듈(200)로부터 수신한 SNN 입력 신호에 대해 SNN 연산을 수행하고, SNN 입력 신호의 분류 결과를 나타내는 SNN 출력 신호를 생성할 수 있다.
뉴로모픽 칩(120)은 제 1 내지 제 N 클러스터들(단, N은 4 이상의 자연수)로 구성된 네트워크-온-칩(NoC)(Network-on-chip)으로 구현될 수 있다. 이때, NoC는 메쉬(Mesh) 형태, 트리(Tree) 형태(예를 들어, Quad-tree 또는 Binary tree) 또는 Torus(예를 들어, Folded-torus) 형태 등으로 구현될 수 있다.
메모리(130)는 프로세서들(110)에 의하여 처리되거나 처리될 예정인 데이터 및 프로세스 코드들을 저장할 수 있다. 예를 들어, 몇몇 실시 예들에 있어서, 메모리(130)는 스파이크 뉴럴 네트워크 장치(100)로 입력되기 위한 데이터 또는 프로세서들(110)에 의해 인코딩 수행 과정에서 생성 또는 학습되는 데이터들을 저장할 수 있다. 예를 들어, 메모리(130)는 인코딩 모듈(200)로부터 생성된 SNN 입력 신호 및 뉴로모픽 칩(120)으로부터 생성된 SNN 출력 신호를 저장할 수 있다.
메모리(130)는 스파이크 뉴럴 네트워크 장치(100)의 주기억 장치로 이용될 수 있다. 메모리(130)는 DRAM (Dynamic RAM), SRAM (Static RAM), PRAM (Phase-change RAM), MRAM (Magnetic RAM), FeRAM (Ferroelectric RAM), RRAM (Resistive RAM) 등을 포함할 수 있다.
도 2는 본 개시의 일 실시 예에 따라, 인코딩 모듈(200)을 도시한다. 도 2를 참조하면, 인코딩 모듈(200)은 레이트 코딩부(210) 및 템포럴 코딩부(220)를 포함할 수 있다. 레이트 코딩부(210)는 입력 신호에 대해 레이트 코딩을 수행할 수 있다. 템포럴 코딩부(220)는 입력 신호 또는 레이트 코딩 수행 결과에 대해 템포럴 코딩을 수행할 수 있다.
도 2에 도시된 바와 달리, 인코딩 모듈(200)은 페이즈 코딩을 수행하는 페이즈 코딩부 또는 싱크로너스를 수행하는 싱크로너스 코딩부를 포함할 수 있다. 또한, 다양한 인코딩을 수행하는 별도의 코딩부를 더 포함할 수 있다.
도 3은 본 개시의 일 실시 예에 따라, 인코딩 모듈(200)의 예를 보여주기 위한 도면이다. 도 2 및 도 3을 참조하면, 인코딩 모듈(200)은 입력 신호를 수신하고, 레이트 코딩부(210)는 수신한 입력 신호에 대해 레이트 코딩을 수행할 수 있다. 템포럴 코딩부(220)는 레이트 코딩의 수행 결과에 대해 템포럴 코딩을 수행할 수 있다. 인코딩 모듈(200)은 템포럴 코딩의 수행 결과로부터 SNN 입력 신호를 생성할 수 있다.
도 4a 및 4b는 본 개시의 일 실시 예에 따라, 스파이크 뉴럴 네트워크 장치의 동작 각각의 수행 결과들을 도시한다. 도 4a를 참조하면, 인코딩 모듈(200)은 상대적으로 세기가 센 제 1 영역 및 상대적으로 세기가 약한 제 2 영역을 포함하는 입력 신호를 수신할 수 있다. 제 1 영역 및 제 2 영역을 포함하는 입력 신호에 대해 레이트 코딩을 수행한 경우, 제 1 영역에 대응하는 레이트 코딩 수행 결과는 제 2 영역에 대응하는 레이트 코딩 수행 결과보다 많은 스파이크 신호들을 포함할 수 있다. 레이트 코딩 수행 결과에 대해 템포럴 코딩을 수행한 경우, 템포럴 코딩 수행 결과는 레이트 코딩 수행으로 생성된 스파이크 신호들의 시간에 대한 정보(예를 들어, 제 1 영역 및 제 2 영역을 포함하는 입력 신호의 스파이크 신호들의 주파수 또는 제 1 영역 및 제 2 영역을 포함하는 입력 신호의 스파이크 신호들의 시간차)를 포함할 수 있다.
도 4a 및 4b를 참조하면, 인코딩 모듈(200)은 인코딩 수행 결과에 기초하여 SNN 입력 신호를 생성할 수 있다. 이때, SNN 입력 신호는 제 1 영역 및 제 2 영역에 대응하는 신호를 포함할 수 있다. 뉴로모픽 칩(120)은 생성된 SNN 입력 신호에 대해 SNN 연산을 수행하고, SNN 입력 신호의 분류 결과를 나타내는 SNN 출력 신호를 생성할 수 있다. 이때, SNN 출력 신호는 아이덴티티에 따라 분류된 적어도 네 개의 신호들 중 하나일 수 있다. 또한, SNN 출력 신호는 두 개의 출력 뉴런으로부터 아이덴티티에 따라 분류된 적어도 네 개의 신호들 중 하나일 수 있다.
도 5는 본 개시의 일 실시 예에 따라, 스파이크 뉴럴 네트워크 장치(100)의 순서도를 도시한다. 도 5를 참조하면, 스파이크 뉴럴 네트워크 장치(100)는 S110 내지 S160 단계들을 수행할 수 있다.
S110 단계에서, 인코딩 모듈(200)은 입력 신호를 수신할 수 있다.
S120 단계에서, 인코딩 모듈(200)은 프로세서들(110) 중 적어도 하나의 제어 하에, 수신한 입력 신호에 대해 레이트 코딩을 수행할 수 있다. 이때, 인코딩 모듈(200)의 레이트 코딩부(210)가 레이트 코딩을 수행할 수 있다.
S130 단계에서, 인코딩 모듈(200)은 프로세서들(110) 중 적어도 하나의 제어 하에, 레이트 코딩 수행 결과에 대해 템포럴 코딩을 수행할 수 있다. 이때, 인코딩 모듈(200)의 템포럴 코딩부(220)가 템포럴 코딩을 수행할 수 있다.
S140 단계에서, 인코딩 모듈(200)은 프로세서들(110) 중 적어도 하나의 제어 하에, 템포럴 코딩 수행 결과에 기초하여 SNN 입력 신호를 생성할 수 있다.
S150 단계에서, 인코딩 모듈(200)은 프로세서들(110) 중 적어도 하나의 제어 하에, 생성된 SNN 입력 신호를 뉴로모픽 칩(120)으로 송신할 수 있다.
S160 단계에서, 뉴로모픽 칩(120)은 인코딩 모듈(200)로부터 수신한 SNN 입력 신호에 대해 SNN 연산을 수행하고, SNN 입력 신호의 분류 결과를 나타내는 SNN 출력 신호를 생성할 수 있다. 뉴로모픽 칩(120)은 SNN 입력 신호의 상대적 세기에 기반하여 아이덴티티 분류할 수 있고, SNN 출력 신호는 아이덴티티에 따라 분류된 적어도 네 개의 신호들 중 하나일 수 있다. 이 경우, SNN 입력 신호는 스파이크 뉴럴 네트워크의 입력 레이어의 적어도 두 개의 입력 뉴런에 각각 입력되고, 아이덴티티에 따라 분류된 적어도 네 개의 신호들은 스파이크 뉴럴 네트워크의 출력 레이어의 적어도 두 개의 출력 뉴런으로부터 출력될 수 있다.
S110 내지 S160 단계에서 생성된 신호들 또는 데이터들(예를 들어, 레이트 코딩 수행 결과, 템포럴 코딩 수행 결과, SNN 입력 신호 및 SNN 출력 신호)은 프로세서들(110) 중 적어도 하나의 제어 하에 메모리(130)에 저장될 수 있다.
도 6은 본 개시의 일 실시 예에 따라, 스파이크 뉴럴 네트워크 장치(500)의 블록도를 도시한다. 도 6을 참조하면, 스파이크 뉴럴 네트워크 장치(500)는 뉴로모픽 칩(510) 및 메모리(520)를 포함할 수 있다.
뉴로모픽 칩(510)은 외부로부터 입력 신호를 수신할 수 있고, 수신한 입력 신호에 대해 적어도 두 개의 인코딩 방식들을 수행할 수 있다. 뉴로모픽 칩(510)은 적어도 두 개의 인코딩 방식들을 동시에 또는 순차적으로 수행할 수 있다. 뉴로모픽 칩(510)은 사용자가 원하는 특성을 추출하기에 적합한 인코딩 방식을 수행할 수 있다.
예를 들어, 뉴로모픽 칩(510)은 입력 신호를 수신하고, 수신한 입력 신호에 대해 레이트 코딩 및 템포럴 코딩을 수행할 수 있다. 뉴로모픽 칩(510)은 인코딩 수행 결과에 기초하여 SNN 입력 신호를 생성하고, SNN 연산을 수행하여 SNN 입력 신호로부터 SNN 출력 신호를 생성할 수 있다. 이때, SNN 출력 신호는 인코딩 수행 결과에 기반하여 SNN 입력 신호의 분류 결과를 나타낼 수 있다.
뉴로모픽 칩(510)은 도 1을 참조하여 설명된 뉴로모픽 칩(120)에 대응할 수 있다. 따라서, 뉴로모픽 칩(510)은 네트워크-온-칩(NoC)(Network-on-chip)으로 구현되고, NoC는 메쉬(Mesh) 형태, 트리(Tree) 형태(예를 들어, Quad-tree 또는 Binary tree) 또는 Torus(예를 들어, Folded-torus) 형태 등으로 구현될 수 있다.
도 7a 및 도 7b는 본 개시의 일 실시 예에 따라, 뉴로모픽 칩(510)의 기능을 구현하기 위한 구성들을 도시한다. 도 7a 및 도 7b를 참조하면, 뉴로모픽 칩(510)은 메쉬 형태 또는 트리 형태의 NoC로 구현될 수 있다. 도 7a 및 도 7b에서는 편의상 평면 형태로 구성들이 도시되나, 본 발명의 일 실시 예에 따르면 도 7a 및 도 7b에 도시된 구성들은 3차원의 형태로 배치될 수 있다.
뉴로모픽 칩(510)은 복수의 클러스터들 및 복수의 클러스터들에 대응하는 복수의 라우터들을 포함할 수 있다. 예를 들어, 뉴로모픽 칩(510)은 제 1 내지 제 N 클러스터들(단, N은 4 이상의 자연수)을 포함하고, 각각의 클러스터에 대응하여 적어도 하나의 라우터를 포함할 수 있다. 복수의 라우터들은 복수의 클러스터들 간 신호 연결을 수행하는 재구성 가능한 라우터일 수 있다. 도시하진 않았으나, 뉴로모픽 칩(510)은 복수의 라우터들 사이에서 정보를 전달하는 복수의 인터커넥트들을 포함할 수 있다.
복수의 클러스터들 각각은 적어도 하나의 라우터를 통해 입력 정보들을 수신하고, 수신한 입력 정보들에 대해 연산을 수행하여 라우터를 통해 연산 결과를 송신할 수 있다. 예를 들어, 복수의 클러스터들 각각은 연산 결과를 제공하고, 연산 결과를 수신할 클러스터를 나타내는 경로 정보를 라우터를 통해 출력할 수 있다. 이때, 라우터들 사이의 적어도 하나의 인터커넥트는 다른 적어도 하나의 클러스터로 연산 결과를 제공할 수 있다.
복수의 클러스터들 각각은 뉴로모픽 칩(510)이 수신한 신호에 대해 서로 다른 인코딩 방식들을 수행할 수 있다. 이때, 복수의 클러스터들 각각은 동시에 또는 순차적으로 서로 다른 인코딩 방식들을 수행할 수 있다. 예를 들어, 뉴로모픽 칩(510)에 수신된 SNN 입력 신호에 대해, 제 1 클러스터는 레이트 코딩을 수행하고, 제 2 클러스터는 템포럴 코딩을 수행하고, 제 3 클러스터는 페이즈 코딩을 수행하고, 제 4 클러스터는 싱크로너스 코딩을 수행할 수 있다.
다른 예로서, 뉴로모픽 칩(510)에 수신된 SNN 입력 신호에 대해, 제 1 클러스터는 레이트 코딩을 수행하고, 제 2 클러스터는 제 1 클러스터의 출력에 대해 템포럴 코딩을 수행하고, 제 3 클러스터는 제 2 클러스터의 출력에 대해 페이즈 코딩을 수행하고, 제 4 클러스터는 제 2 클러스터 또는 제 3 클러스터의 출력에 대해 싱크로너스 코딩을 수행할 수 있다.
메모리(520)는 도 1을 참조하여 설명된 메모리(130)에 대응할 수 있다. 메모리(520)는 스파이크 뉴럴 네트워크 장치(500)로 입력 되기 위한 데이터, 뉴로모픽 칩(510)의 인코딩 수행 과정에서 생성되는 데이터 또는 뉴로모픽 칩(510)의 SNN 연산 과정에서 생성되는 데이터를 저장할 수 있다. 또한, 메모리(520)는 스파이크 뉴럴 네트워크 장치(500)의 주기억 장치로 이용될 수 있다.
도 8은 본 개시의 일 실시 예에 따라, 스파이크 뉴럴 네트워크 장치(500)의동작 순서도를 도시한다. 도 8을 참조하면, 스파이크 뉴럴 네트워크 장치(500)는 S210 내지 S240 단계들을 수행할 수 있다.
S210 단계에서, 뉴로모픽 칩(510)은 입력 신호를 수신할 수 있다.
S220 단계에서, 뉴로모픽 칩(510)은 수신한 입력 신호에 대해 레이트 코딩 및 템포럴 코딩을 수행할 수 있다. 뉴로모픽 칩(510)은 레이트 코딩 및 템포럴 코딩을 동시에 또는 순차적으로 수행할 수 있다. 예를 들어, 제 1 클러스터는 레이트 코딩을 수행하고, 제 2 클러스터는 제 1 클러스터의 출력에 대해 템포럴 코딩을 수행할 수 있다.
S230 단계에서, 뉴로모픽 칩(510)은 레이트 코딩 및 템포럴 코딩 수행 결과에 기초하여 SNN 입력 신호를 생성할 수 있다.
S240 단계에서, 뉴로모픽 칩(510)은 SNN 입력 신호에 대해 SNN 연산을 수행하고, SNN 입력 신호의 분류 결과를 나타내는 SNN 출력 신호를 생성할 수 있다. 뉴로모픽 칩(510)은 SNN 입력 신호의 상대적 세기에 기반하여 아이덴티티 분류를 할 수 있고, SNN 출력 신호는 아이덴티티에 따라 분류된 적어도 네 개의 신호들 중 하나일 수 있다. 이 경우, SNN 입력 신호는 스파이크 뉴럴 네트워크의 입력 레이어의 적어도 두 개의 입력 뉴런에 각각 입력되고, 아이덴티티에 따라 분류된 적어도 네 개의 신호들은 스파이크 뉴럴 네트워크의 출력 레이어의 적어도 두 개의 출력 뉴런으로부터 출력될 수 있다.
도 9는 본 개시의 일 실시 예에 따라, 스파이크 뉴럴 네트워크 장치(500)의 동작 순서도를 도시한다. 도 9를 참조하면, 스파이크 뉴럴 네트워크 장치(500)는 S310 내지 S340 단계들을 수행할 수 있다.
S310 단계에서, 뉴로모픽 칩(510)은 입력 신호를 수신할 수 있다.
S320 단계에서, 뉴로모픽 칩(510)은 수신한 입력 신호에 대해 레이트 코딩, 템포럴 코딩, 페이즈 코딩 및 싱크로너스 코딩을 수행할 수 있다. 뉴로모픽 칩(510)은 레이트 코딩, 템포럴 코딩, 페이즈 코딩 및 싱크로너스 코딩을 동시에 또는 순차적으로 수행할 수 있다. 예를 들어, 제 1 클러스터는 레이트 코딩을 수행하고, 제 2 클러스터는 제 1 클러스터의 출력에 대해 템포럴 코딩을 수행하고, 제 3 클러스터는 제 2 클러스터의 출력에 대해 페이즈 코딩을 수행하고, 제 4 클러스터는 제 2 클러스터 또는 제 3 클러스터의 출력에 대해 싱크로너스 코딩을 수행할 수 있다. 예를 들어, 페이즈 코딩 및 싱크로너스 코딩 중 하나는 생략될 수 있다.
다른 예로서, 뉴로모픽 칩(510)은 수신한 입력 신호에 대해, 제 1 클러스터는 레이트 코딩을 수행하고, 제 2 클러스터는 템포럴 코딩을 수행하고, 제 3 클러스터는 페이즈 코딩을 수행하고, 제 4 클러스터는 싱크로너스 코딩을 수행할 수 있다.
S330 단계에서, 뉴로포픽 칩(510)은 레이트 코딩, 템포럴 코딩, 페이즈 코딩 및 싱크로너스 코딩 수행 결과에 기초하여 SNN 입력 신호를 생성할 수 있다.
다른 예로서, 뉴로모픽 칩(510)이 수신한 입력 신호에 대해, 제 1 내지 제 4 클러스터들 각각이 서로 다른 인코딩을 수행한 경우, 뉴로모픽 칩(510)은 제 1 내지 제 4 클러스터들 각각의 수행 결과들을 인터페이싱하여 SNN 입력 신호를 생성할 수 있다.
S340 단계에서, 뉴로모픽 칩(510)은 SNN 입력 신호에 대해 SNN 연산을 수행하고, SNN 입력 신호의 분류 결과를 나타내는 SNN 출력 신호를 생성할 수 있다. 뉴로모픽 칩(510)은 SNN 입력 신호의 상대적 세기에 기반하여 아이덴티티 분류를 할 수 있고, SNN 출력 신호는 아이덴티티에 따라 분류된 적어도 네 개의 신호들 중 하나일 수 있다. 이 경우, SNN 입력 신호는 스파이크 뉴럴 네트워크의 입력 레이어의 적어도 두 개의 입력 뉴런에 각각 입력되고, 아이덴티티에 따라 분류된 적어도 네 개의 신호들은 스파이크 뉴럴 네트워크의 출력 레이어의 적어도 두 개의 출력 뉴런으로부터 출력될 수 있다.
상술된 내용은 본 개시를 실시하기 위한 구체적인 실시 예들이다. 본 개시는 상술된 실시 예들뿐만 아니라, 단순하게 설계 변경되거나 용이하게 변경할 수 있는 실시 예들 또한 포함할 것이다. 또한, 본 개시는 실시 예들을 이용하여 용이하게 변형하여 실시할 수 있는 기술들도 포함될 것이다. 따라서, 본 개시의 범위는 상술된 실시 예들에 국한되어 정해져서는 안 되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 할 것이다.
100: 스파이크 뉴럴 네트워크 장치
110: 프로세서들
111: 중앙 프로세싱 유닛
112: 응용 프로세서
113: 뉴럴 프로세싱 유닛
114: 뉴로모픽 프로세서
115: 그래픽 프로세싱 유닛
120: 뉴로모픽 칩
130: 메모리
200: 인코딩 모듈
210: 레이트 코딩부
220: 템포럴 코딩부
500: 스파이크 뉴럴 네트워크 장치
510: 뉴로모픽 칩
520: 메모리

Claims (17)

  1. 멀티 인코딩을 수행하는 스파이크 뉴럴 네트워크(SNN)(Spike Neural Network) 장치의 동작 방법에 있어서,
    인코딩 모듈이 입력 신호를 수신하는 단계;
    상기 인코딩 모듈이 상기 수신한 입력 신호에 대해 레이트 코딩(rate coding) 및 템포럴 코딩(temporal coding)을 수행하는 단계;
    상기 레이트 코딩 및 상기 템포럴 코딩의 수행 결과에 기초하여 SNN 입력 신호를 생성하는 단계;
    상기 생성된 SNN 입력 신호를 SNN(Spike Neural Network) 연산을 수행하는 뉴로모픽 칩으로 송신하는 단계를 포함하는 방법.
  2. 제 1 항에 있어서,
    상기 인코딩 모듈이 상기 수신한 입력 신호에 대해 레이트 코딩 및 템포럴 코딩을 수행하는 단계는:
    상기 입력 신호에 대해 상기 레이트 코딩을 수행하는 단계; 그리고
    상기 레이트 코딩의 수행 결과에 대해 상기 템포럴 코딩을 수행하는 단계를 포함하는 방법.
  3. 제 1 항에 있어서,
    상기 레이트 코딩 및 상기 템포럴 코딩의 수행 결과에 대해 페이즈 코딩(phase coding) 및 싱크로너스 코딩(synchronous coding) 중 적어도 하나를 수행하는 단계를 더 포함하는 방법.
  4. 제 1 항에 있어서,
    상기 템포럴 코딩은 상기 입력 신호의 스파이크 신호들의 주파수 또는 시간차(time margin)에 기초하여 수행되는 방법.
  5. 제 1 항에 있어서,
    상기 SNN 연산을 수행하는 것은, 상기 SNN 입력 신호의 분류 결과를 나타내는 SNN 출력 신호를 생성하는 것을 포함하는 방법.
  6. 제 5 항에 있어서,
    상기 SNN 출력 신호는 아이덴티티(Identity)에 따라 분류된 적어도 네 개의 신호들 중 하나인 방법.
  7. 제 6 항에 있어서,
    상기 SNN 출력 신호는 두 개의 출력 뉴런으로부터 상기 아이덴티티에 따라 분류된 적어도 네 개의 신호들 중 하나인 방법.
  8. 제 5 항에 있어서,
    상기 SNN 출력 신호는 상기 레이트 코딩 및 템포럴 코딩에 기반하여 상기 분류 결과를 나타내는 방법.
  9. 멀티 인코딩을 수행하는 스파이크 뉴럴 네트워크(SNN)(Spike Neural Network) 장치에 있어서,
    입력 신호를 수신하고, SNN 입력 신호 및 SNN 출력 신호를 생성하도록 구성되는 뉴로모픽 칩; 그리고
    상기 SNN 입력 신호 및 SNN 출력 신호를 저장하는 메모리를 포함하고,
    상기 뉴로모픽 칩은:
    상기 수신한 입력 신호에 대해 레이트 코딩 및 템포럴 코딩을 수행하고;
    상기 수행 결과에 기초하여 상기 SNN 입력 신호를 생성하고; 그리고
    SNN(Spike Neural Network) 연산을 수행하여 상기 생성한 SNN 입력 신호로부터 상기 SNN 출력 신호를 생성하는 것을 포함하는 스파이크 뉴럴 네트워크 장치.
  10. 제 9 항에 있어서,
    상기 SNN 출력 신호는 상기 레이트 코딩 및 템포럴 코딩에 기반하여 상기 SNN 입력 신호의 분류 결과를 나타내는 스파이크 뉴럴 네트워크 장치.
  11. 제 10 항에 있어서,
    상기 SNN 출력 신호는 아이덴티티에 따라 분류된 적어도 네 개의 신호들 중 하나인 스파이크 뉴럴 네트워크 장치.
  12. 제 11 항에 있어서,
    상기 SNN 출력 신호는 두 개의 출력 뉴런으로부터 상기 아이덴티티에 따라 분류된 적어도 네 개의 신호들 중 하나인 스파이크 뉴럴 네트워크 장치.
  13. 제 9 항에 있어서,
    상기 뉴로모픽 칩은 제 1 내지 제 N 클러스터들(단, N은 4 이상의 자연수)로 구성된 네트워크-온-칩(NoC)(network-on-chip)로 구현되는 스파이크 뉴럴 네트워크 장치.
  14. 제 13 항에 있어서,
    상기 NoC는 메쉬(Mesh) 또는 트리(Tree) 구조 중 하나로 구현되는 스파이크 뉴럴 네트워크 장치.
  15. 제 13 항에 있어서,
    상기 제 1 클러스터는 상기 입력 신호에 대해 상기 레이트 코딩을 수행하고, 상기 제 2 클러스터는 상기 제 1 클러스터의 출력에 대해 상기 템포럴 코딩을 수행하는 스파이크 뉴럴 네트워크 장치.
  16. 제 15 항에 있어서,
    상기 제 3 클러스터는 상기 제2 클러스터의 출력에 대해 페이즈 코딩을 수행하고, 제 4 클러스터는 상기 제2 클러스터의 출력 또는 상기 제3 클러스터의 출력에 대해 싱크로너스 코딩을 수행하는 스파이크 뉴럴 네트워크 장치.
  17. 제 13 항에 있어서,
    상기 입력 신호에 대해,
    상기 제 1 클러스터는 상기 레이트 코딩을 수행하고;
    상기 제 2 클러스터는 상기 템포럴 코딩을 수행하고;
    상기 제 3 클러스터는 페이즈 코딩을 수행하고; 그리고
    상기 제 4 클러스터는 싱크로너스 코딩을 수행하고,
    상기 뉴로모픽 칩은 상기 제 1 내지 제 4 클러스터들 각각의 상기 수행 결과들을 인터페이싱하여 상기 SNN 입력 신호를 생성하는 스파이크 뉴럴 네트워크 장치.

KR1020220002101A 2021-07-05 2022-01-06 멀티 인코딩 기반의 스파이크 뉴럴 네트워크 장치 및 그의 동작 방법 KR20230007220A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US17/857,602 US20230004777A1 (en) 2021-07-05 2022-07-05 Spike neural network apparatus based on multi-encoding and method of operation thereof

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20210088122 2021-07-05
KR1020210088122 2021-07-05

Publications (1)

Publication Number Publication Date
KR20230007220A true KR20230007220A (ko) 2023-01-12

Family

ID=84923775

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220002101A KR20230007220A (ko) 2021-07-05 2022-01-06 멀티 인코딩 기반의 스파이크 뉴럴 네트워크 장치 및 그의 동작 방법

Country Status (1)

Country Link
KR (1) KR20230007220A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20240041799A (ko) 2022-09-23 2024-04-01 고려대학교 산학협력단 시간적 코딩 기반의 스파이킹 뉴럴 네트워크 연산 학습 방법 및 이에 대한 시스템

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20240041799A (ko) 2022-09-23 2024-04-01 고려대학교 산학협력단 시간적 코딩 기반의 스파이킹 뉴럴 네트워크 연산 학습 방법 및 이에 대한 시스템

Similar Documents

Publication Publication Date Title
US20210390653A1 (en) Learning robotic tasks using one or more neural networks
EP3346392B1 (en) Distributed matrix multiplication for neural networks
US20220121954A1 (en) Distributed convolution for neural networks
EP3340124B1 (en) Sparse coding using neuromorphic computing
US20200026992A1 (en) Hardware neural network conversion method, computing device, compiling method and neural network software and hardware collaboration system
KR101686827B1 (ko) 인공 신경망의 뉴로모픽 하드웨어 구현 방법
US7082419B1 (en) Neural processing element for use in a neural network
CN111176758B (zh) 配置参数的推荐方法、装置、终端及存储介质
CN110163016B (zh) 混合计算系统和混合计算方法
US20210295168A1 (en) Gradient compression for distributed training
US10679118B2 (en) Solving matrix inverse problems using neuromorphic computing
CN109409510A (zh) 神经元电路、芯片、系统及其方法、存储介质
CN115828831B (zh) 基于深度强化学习的多芯粒芯片算子放置策略生成方法
CN111047045B (zh) 机器学习运算的分配系统及方法
US11119507B2 (en) Hardware accelerator for online estimation
KR20230007220A (ko) 멀티 인코딩 기반의 스파이크 뉴럴 네트워크 장치 및 그의 동작 방법
KR20220009682A (ko) 분산 기계 학습 방법 및 시스템
Pu et al. Block-based spiking neural network hardware with deme genetic algorithm
Huang et al. Real-time radar gesture classification with spiking neural network on SpiNNaker 2 prototype
Luciw et al. Where-what network-4: The effect of multiple internal areas
US20230004777A1 (en) Spike neural network apparatus based on multi-encoding and method of operation thereof
CN113222134B (zh) 一种类脑计算系统、方法及计算机可读存储介质
Rahouti et al. Incremental learning implementations and vision for cyber risk detection in iot
Pagano et al. Parallel implementation of associative memories for image classification
CN114968362B (zh) 异构融合计算指令集以及使用方法