KR20210091688A - 데이터 처리 모듈, 데이터 처리 시스템 및 데이터 처리 방법 - Google Patents

데이터 처리 모듈, 데이터 처리 시스템 및 데이터 처리 방법 Download PDF

Info

Publication number
KR20210091688A
KR20210091688A KR1020217006235A KR20217006235A KR20210091688A KR 20210091688 A KR20210091688 A KR 20210091688A KR 1020217006235 A KR1020217006235 A KR 1020217006235A KR 20217006235 A KR20217006235 A KR 20217006235A KR 20210091688 A KR20210091688 A KR 20210091688A
Authority
KR
South Korea
Prior art keywords
neural
unit
synaptic
memory unit
state
Prior art date
Application number
KR1020217006235A
Other languages
English (en)
Inventor
사이드 자히드 아메드
다니엘 보르톨로티
줄리엔 르노
Original Assignee
그레이 매터 랩스 에스에이에스
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 그레이 매터 랩스 에스에이에스 filed Critical 그레이 매터 랩스 에스에이에스
Publication of KR20210091688A publication Critical patent/KR20210091688A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • 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

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)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Neurology (AREA)
  • Image Analysis (AREA)
  • Feedback Control In General (AREA)
  • Multi Processors (AREA)

Abstract

복수의 신경 단위를 포함하는 스파이킹 신경망의 시간-다중화 실행을 위한 뉴로모픽 처리 모듈(1)이 제공된다. 각각의 신경 유닛은 신경 상태를 가질 수 있고, 신경 상태를 나타내는 상태 정보를 저장하기 위한 신경 상태 메모리 유닛(11)에 각각의 주소지정가능 메모리 엔트리를 가진다. 각 신경 유닛에 대한 상태 정보는 상기 신경 유닛으로 향하는 이벤트 메시지에 따라 처리 모듈의 처리 기기(10, 신경 제어기)에 의해 시간-다중화 방식으로 연산되고 업데이트된다. 처리 기기가, 업데이트된 신경 유닛이 발화 상태를 가진다고 연산할 때, 업데이트된 신경 유닛을 초기 상태로 리셋하고, 출력 시냅스 슬라이스 메모리 유닛에서 업데이트된 신경 유닛에 대한 각 엔트리에 접근하고, 각 엔트리로부터 각 시냅스 인덱스의 범위에 대한 표시를 획득하되, 처리 기기는, 각 범위의 각 시냅스 인덱스마다, 시냅스 메모리 유닛의 각 엔트리에 접근하고, 시냅스 메모리 유닛으로부터 시냅스 속성 데이터를 획득하고, 상기 시냅스 속성 데이터와 관련된 신경 유닛을 향해 발화 이벤트 메시지를 전송한다.

Description

데이터 처리 모듈, 데이터 처리 시스템 및 데이터 처리 방법
본 발명은 신경 유닛의 입력 및 출력 시냅스의 수를 유연하게 수정할 수 있는 뉴로모픽(neuromorphic) 데이터 처리 모듈, 데이터 처리 시스템 및 데이터 처리 방법에 관한 것이다.
인지(cognitive) 컴퓨팅의 출현은, 인간 두뇌의 작동을 기반으로 한 대안 컴퓨팅 패러다임으로 신경 컴퓨팅을 제안한다. 내재적 병렬 아키텍처로 인해 신경 컴퓨팅 장치는 폰 노이만 메모리 병목 현상을 완화할 수 있다. 생물학적 원리에서 영감을 받은 신경 컴퓨팅 장치는 시냅스 연결을 통해 서로 상호 작용하는 신경 단위들로서 설계된다. 유사하게 작동하는 생물학적 상대와 달리 이러한 인공 신경 컴퓨팅 장치의 IC 구현은 일반적으로 디지털적인 성격을 지닌다.
이것은 한편으로는 실리콘칩을 사용한 구현을 용이하게 하고 다른 한편으로는 수십 년의 디지털 집적 회로 설계에서 얻어진 광대한 기술 발전을 활용할 수 있는 기회를 제공한다. 현재 사용 가능한 디지털 처리 소자와 달리 생물학적 신경은 수십에서 수백 Hz의 매우 낮은 주파수에서 작동한다. 따라서, 이는 구현에 큰 부담이 없을 것이다. 그러나 일반적인 생물학적 시스템은 일반적으로 평균 수십억 개의 신경을 포함하고 각각의 신경은 복수의 시냅스를 가지고 있기 때문에, 생물학적 시스템과 호환되는 특성을 가지는 실리콘기반 처리 모듈을 설계하는 것은 최첨단 기술로도 여전히 실용적이지 않다. 한 가지 접근법은, 복수의 신경 유닛이 처리 기기를 공유하는 시간-다중화(time-multiplexed) 설계로 이러한 복잡한 시스템을 모방하는 것이다. 디지털 하드웨어는 생물학적 신경이 작동하는 속도보다 훨씬 빠르게 작동할 수 있기 때문에, 공유되는 처리 기기는 신경의 동작을 현실적으로 에뮬레이션 할 수 있으며, 이 접근 방식은 공간을 절약하여 더 높은 밀도의 가상 신경과 그 시냅스를 구현한다.
스파이킹 신경망(spiking neural network)은, 신경 유닛 간의 정보가 발화 이벤트 메시지(firing event message)로서 교환되는 것을 특징으로 한다. 발화 이벤트 메시지(스파이크)의 방출은, 데이터가 사용 가능하며 또한 이전 발화 이벤트 메시지가 방출된 이후 경과한 시간 간격이 데이터 값을 나타냄을 가리킨다. 시간 간격의 길이는 교환될 데이터 값을 나타낸다. 어떤 설계에서는 발화(firing) 빈도가 데이터 값을 나타낸다. 다른 설계에서는 시간 간격의 길이가 데이터 값을 나타낼 수 있다. 두 경우 모두, 임계 시간 간격을 초과하는 시간 간격 동안 아무런 이벤트가 없는 것은 데이터가 없음을 나타낸다는 규칙이 우선할 수 있다. 이는 어레이 처리(array processing), 예를 들어 감시 카메라로부터의 데이터를 처리하는 것과 같이 특히 드문드문 값이 채워진 경우 매우 중요하다. 기존의 데이터 처리 시스템은, 기설정된 재생 빈도로 각 이미지 요소가 스캔되어야 한다. 이에 따라 스캔은, 스캔된 이미지 어레이(image array)의 픽셀 수와 재생 빈도에 비례하는 데이터 스트림을 생성한다. 스파이킹 신경망이 이미지 어레이에 결합된 경우, 이미지 콘텐츠의 변화를 감지하는 신경 유닛만이 데이터를 2차 신경 유닛으로 전송한다. 그리고 전송된 데이터에 의해 트리거링된(triggered) 2차 신경 유닛만 자신의 차례에 데이터를 전송한다. 이에 따라 계산량과 함께 데이터 전송 채널의 부하가 크게 감소한다.
뉴로모픽(neuromorphic) 데이터 처리 시스템 즉 신경망을 모방한 데이터 처리 시스템은, 2D 메시(mesh)로 함께 그룹화되고 패킷 스위칭 네트워크-온-칩(packet switching network-on-chip)을 통해 서로 통신하는 복수의 시간-다중화 처리 모듈을 포함할 수 있다. 각각의 시간-다중화 처리 모듈은 또한 신경 컴퓨팅 코어(core)로 간주될 수 있다. 이 접근 방식의 예는 필립 아코피안 등의, "진북: 65mW급 100 만 신경 단위 프로그래밍 가능 신경 시냅스 칩의 설계 및 도구 흐름", IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems (권 : 34, 간행 : 2015년 10 월 10 일) | https://ieeexplore.ieee.org/document/7229264/ 에 서술된다.
이 기존의 데이터 처리 시스템의 단점은 신경 유닛과 그들의 시냅스의 매핑 비율을 제한한다는 것이다. 각 신경 유닛에는 고정된 수의 입력 시냅스와 하나의 출력 시냅스가 있다. 이는, 애플리케이션 신경망에 의해, 발화(스파이킹) 신경 유닛이 정해진 수보다 많은 개수의 신경 유닛에 발화 이벤트 메시지를 전송해야할 경우 비효율성을 초래한다. 이 기능을 사용하려면 사용자는 신경 유닛을 복제하거나 중계 신경 유닛을 만들어야한다. 어떤 경우이든 그것은 자원 낭비와 추가 전력 소비로 이어진다.
본 발명의 첫 번째 목적은 추가적인 신경 유닛이 필요없이, 신경 유닛의 입력 및 출력 시냅스의 수를 보다 유연하게 수정할 수 있는 뉴로모픽(neuromorphic) 데이터 처리 모듈을 제공하는 것이다.
본 발명의 두 번째 목적은 복수의 그러한 처리 모듈을 가지는 뉴로모픽 처리 시스템을 제공하는 것이다.
본 발명의 세 번째 목적은 상응하는 뉴로모픽 데이터 처리 방법을 제공하는 것이다.
본 발명의 제 1 양상에 따르면, 개선된 뉴로모픽 데이터 처리 모듈이 청구된다. 데이터 처리 모듈은 스파이킹 신경망(spiking neural network)으로서 작동하며, 신경 단위 상태는 시간-다중화(time-multiplexed) 방식으로 업데이트된다. 개선된 데이터 처리 모듈은, 네트워크 토폴로지(network topology)를 결정하는 독립적인 주소지정가능 메모리 유닛(addressable memory unit)의 조합을 포함한다. 이들 메모리 유닛 중 첫 번째는 입력 시냅스 식별 번호로 인덱싱될 수 있는 입력 시냅스 메모리 유닛이며, 식별된 입력 시냅스마다, 발화 이벤트 메시지를 수신하기 위한 입력으로서 식별된 입력 시냅스를 가지는 신경 유닛 식별 번호 및 해당 입력에서 수신된 이러한 메시지에 할당될 가중치를 포함하는 입력 시냅스 속성을 제공한다. 이들 메모리 유닛 중 두 번째는 출력 시냅스 식별 번호로 인덱싱될 수 있는 출력 시냅스 메모리 유닛이며, 식별된 출력 시냅스마다, 발화(firing) 이벤트 메시지의 대상인 입력 시냅스 식별 번호 및 그러한 메시지가 대상에게 전달될 때의 지연(존재하는 경우)을 포함하는 출력 시냅스 속성을 제공한다. 이들 메모리 유닛 중 세 번째는 출력 시냅스 슬라이스(slice) 메모리 유닛이며, 이는 신경 유닛 식별 번호로 인덱싱될 수 있고, 각 식별된 신경 유닛에 대해 출력 시냅스 메모리 유닛 내의 인덱스 범위를 지정한다. 일 실시예에서, 출력 시냅스 메모리 유닛과 입력 시냅스 메모리 유닛은 시냅스 메모리 유닛으로 통합될 수 있다. 이러한 메모리 유닛을 재작성함으로써 네트워크 토폴로지가 유연하게 재구성될 수 있다. 신경 단위의 출력 시냅스 슬라이스가 출력 시냅스 슬라이스 메모리 유닛의 단일 엔트리(entry)로써 정의되기 때문에, 신경 단위의 팬 아웃(fan-out) 범위는 사실상 무제한으로 변경될 수 있다. 이 엔트리가 참조하는 출력 시냅스의 수는, 모든 출력 시냅스의 총 수가 출력 시냅스 메모리 유닛의 엔트리 수를 초과하지 않는 한, 0, 1, 2 또는 그 어떠한 다른 수도 될 수 있다. 따라서 신경 단위를 복제하거나 중계 신경 단위를 사용하여 높은 팬 아웃을 달성하는 것과 같은 조정이 필요하지 않다. 이 세 가지 메모리 유닛의 내용의 재작성에 의한 네트워크 토폴로지의 구성은, 작동 중에 프로그래머에 의해 또는 기계 학습 과정의 일부로서 발생할 수 있다.
이 기능은 또한 그러한 시스템에서 시냅스가 신경 단위보다 더 고비용(expensive)의 부분이기 때문에 전력 소비를 줄이는 데 도움이 된다. 주어진 애플리케이션에 성능에 대한 여유가 있는 경우, 매퍼(mapper)는 이 유연성을 활용하여 더 적은 수의 신경 엔진에 더 많은 네트워크를 압축해 넣을 수 있다. 이는 반대로, 사용하지 않는 데이터 처리 모듈을 저전력 모드로 전환하여 전력을 절약하는 데 도움이 된다. 이 기능은, 디버그 시냅스를 추가하는 등의 여러 다른 시나리오에서도 활용할 수 있다.
본 발명의 다른 양상으로서, 복수의 뉴로모픽(neuromorphic) 데이터 처리 모듈 및 메시지 기반 네트워크를 포함하는 뉴로모픽 데이터 처리 시스템이 제공된다. 각각의 뉴로모픽 데이터 처리 모듈은 네트워크 통신 모듈을 추가로 포함하고, 뉴로모픽 데이터 처리 모듈은 네트워크 통신 모듈과 함께 메시지 기반 네트워크에 연결된다. 시간-다중화 뉴로모픽 데이터 처리 모듈은 예를 들어 2D 메시(mesh)로 함께 그룹화되고 패킷 스위칭 네트워크-온-칩(packet switching network-on-chip)을 통해 서로 통신할 수 있다. 또는 추가로 3D 메시의 형태로 통합될 수도 있다.
본 발명은 추가적인 신경 유닛이 필요없이, 신경 유닛의 입력 및 출력 시냅스의 수를 보다 유연하게 수정할 수 있는 뉴로모픽(neuromorphic) 데이터 처리 모듈을 제공하는 효과가 있다.
본 발명은 복수의 그러한 처리 모듈을 가지는 뉴로모픽 처리 시스템을 제공하는 효과가 있다.
본 발명은 상응하는 뉴로모픽 데이터 처리 방법을 제공하는 효과가 있다.
도 1은 신경 유닛(neural unit)을 개략적으로 나타낸 도면이다;
도 2a 내지 2d는 신경 유닛으로 이루어진 신경망(neural net)의 다양한 예시들을 개략적으로 나타낸 도면이다;
도 3은 뉴로모픽(neuromorphic) 처리 모듈을 개략적으로 나타낸 도면이다;
도 4는 뉴로모픽 처리 시스템을 개략적으로 나타낸 도면이다;
도 5는 뉴로모픽 처리 모듈의 기능적 표현을 개략적으로 나타낸 도면이다;
도 6은 도 5의 제1 양상을 보다 상세히 나타낸 도면이다;
도 7은 도 5의 제2 양상을 보다 상세히 나타낸 도면이다;
도 8은 도 5의 제3 양상을 보다 상세히 나타낸 도면이다;
도 9는 도 5의 제4 양상을 보다 상세히 나타낸 도면이다;
도 10은 도 5의 제5 양상을 보다 상세히 나타낸 도면이다;
도 11은 뉴로모픽 처리 방법의 예시를 나타낸 도면이다;
도 11a는 이 방법의 서브 단계를 나타낸 도면이다;
도 12는 이 방법의 일 양상을 나타낸 도면이다.
제안된 실시예는 스파이킹 신경망(spiking neural network)으로 (재)구성 가능한 스케일러블 뉴로모픽 데이터 처리 모듈(scalable neuromorphic data processing module)을 제시한다.
도 1에 도시된 바와 같은 신경 유닛(neural unit)은 신경을 포함하고, 가지돌기(dendrite)로도 표현되는 하나 이상의 입력 시냅스(synapse) 및 축삭(axon)으로도 표현되는 하나 이상의 출력 시냅스를 가진다. 신경 유닛은, 초기 상태, 하나 이상의 전이(transitional) 상태 및 스파이크(spike)가 발생하는 발화(firing) 상태를 포함하는 복수의 상태로부터 선택된 신경 상태를 가질 수 있다. 신경 상태는 적어도 하나의 입력 시냅스를 통해 수신된 입력 스파이크에 따라 달라지며 일반적으로 신경 상태는, 예를 들어 일정 기간 스파이크를 받지 않은 경우 초기 상태로의 전이와 같이, 시간에 따라 저절로 변화한다. 신경 유닛의 적어도 하나의 입력 시냅스는, 양수 또는 음수일 수 있는 가중치로 입력 스파이크를 수정할 수 있다. 적어도 하나의 출력 시냅스는 특정 지연(delay)을 한 상태로 스파이크를 전송할 수 있다.
도 2a 내지 2c는 그러한 신경 유닛으로부터 구성될 수 있는 예시적인 신경망(neural network)을 도시한다. WO 2017/009543에 제시된, 도 2d의 부호없는(unsigned) 메모리 네트워크와 같은 다른 예시도 그를 통해 구성될 수 있다. 특히 도 2a는, 입력 시냅스(Di)와 출력 시냅스(Ai)로 분류된 시냅스로 연결된 3 개의 신경 유닛(N0, N1 및 N2)을 가진 스파이킹 신경망을 도시한다.
도 2b는 하나의 신경 유닛(N0), 5개의 입력 시냅스(D0 내지 D4) 및 하나의 출력 시냅스(A0)를 가지는 스파이킹 신경망을 도시한다.
도 2c는 2개의 신경 유닛(N0 및 N1), 7개의 입력 시냅스(D0 내지 D6) 및 8개의 출력 시냅스(A0 내지 A7)가 있는 예를 도시한다.
신경망의 원리는 잘 알려져 있지만 이러한 신경망을 효율적으로 구현할 수 있는 처리 모듈을 제공하는 것은 어려운 일이다. 본 출원은 무엇보다도 쉽게 재구성될 수 있는 뉴로모픽 처리 모듈을 제공한다.
도 3은 전술한 바와 같은 복수의 신경 유닛을 포함하는 스파이킹 신경망의 시간-다중화(time-multiplexed) 실행을 위한 뉴로모픽 처리 모듈(1)의 일 실시예를 개략적으로 도시한다. 도시된 실시예에서, 각각의 신경 유닛은 신경 상태 메모리 유닛(11) 내에 해당 주소지정가능 메모리 엔트리(addressable memory entry)를 가진다. 신경 상태 메모리 유닛(11)은 그의 신경 상태를 기술하는 상태 정보를 저장한다. 그 안에 포함된 각각의 신경 유닛에 대한 상태 정보는 해당 신경 유닛을 대상으로 하는 이벤트 메시지에 따라 처리 기기(10)에 의해 시간-다중화 방식으로 연산되고 업데이트된다.
업데이트의 결과로 신경 유닛이 발화 상태를 가지는 것을 처리 기기가 검출하면, 업데이트된 신경 유닛을 초기 상태로 리셋(reset)한다. 또한 추가로, 출력 시냅스 슬라이스(slice) 메모리 유닛(12) 내의, 업데이트된 신경 유닛에 할당된 엔트리에 접근하고, 업데이트된 신경 유닛에 할당된 시냅스 인덱스의 범위에 대한 표시를 그 엔트리로부터 획득한다. 범위 내의 각각의 인덱스에 대해 처리 기기는 시냅스 메모리 유닛(13) 내의 해당 엔트리에 접근하고, 접근된 엔트리로부터 시냅스 속성 데이터를 획득하고, 시냅스 속성 데이터와 관련된 각 신경 유닛에 발화 이벤트 메시지를 전송한다.
도 3에 도시된 실시예에서, 시냅스 메모리 유닛(13)은 출력 시냅스 메모리 유닛이다. 이 실시예의 뉴로모픽 처리 모듈은 입력 시냅스 메모리 유닛(14)을 더 포함한다. 출력 시냅스 메모리 유닛(13)의 엔트리는 입력 시냅스 인덱스를 포함한다. 후자는 입력 시냅스 메모리 유닛(14) 내의 대응 엔트리를 가리킨다. 입력 시냅스 메모리 유닛(14) 내의 대응 엔트리는 연관(associated) 신경 유닛에 대한 참조를 포함한다.
도 3의 실시예에서, 출력 시냅스 메모리 유닛(13) 내의 엔트리는, 발화 이벤트가 연관(associated) 신경 유닛으로 전송될 때의 지연(delay)을 추가로 지정한다.
이에 더해, 입력 시냅스 메모리 유닛(14) 내의 엔트리는 연관 신경 유닛을 업데이트할 때 처리 기기가 발화(firing) 메시지에 부여하는 가중치를 추가로 지정한다.
복수의 뉴로모픽 처리 모듈(1A, 1B 내지 1N)은 도 4에 도시된 바와 같이 뉴로모픽 처리 시스템(100)에 포함될 수 있다. 복수의 뉴로모픽 처리 모듈은 메시지 기반 네트워크(20), 예를 들어 네트워크-온-칩(NoC)에 연결된다. 도 4에 도시된 실시예에서, 추가로, 호스트 컴퓨터(30)는 네트워크(20)에 결합된다. 도 5에 도시된 바와 같이, 뉴로모픽 처리 모듈(1A, 1B 내지 1N)은 추가적으로 네트워크 통신 모듈을 포함하고, 이들 모듈을 통해 메시지 기반 네트워크(20)에 연결된다.
도 2a의 예시적 네트워크에서 각 신경 유닛에는 고유한 기능이 있다.
신경 유닛(N0)에는 2개의 입력 시냅스(D0 및 D1)와 1 개의 출력 시냅스(A0)가 있다;
신경 유닛(N1)에는 1개의 입력 시냅스(D2)와 2개의 출력 시냅스(A1 및 A2)가 있다;
신경 유닛(N2)에는 2개의 입력 시냅스(D3 및 D4)와 1 개의 출력 시냅스(A3)가 있다;
상기 기술된 것과 같이, 도 3에 도시된 뉴로모픽 처리 모듈의 실시예에서, 별도의 메모리 유닛(13 및 14)이 출력 시냅스 속성 및 입력 시냅스 속성을 제공한다. 이러한 방식으로 신경망 설계자는 뉴로모픽 처리 모듈에 의해 생성될 신경망을 쉽게 (재)구성할 수 있다. 실제로, 이는 각 신경 유닛에 대한 입력 및 출력 시냅스를 독립적으로 처리할 수 있게 하여, 제한없이 신경의 팬 인(fan-in) 및 팬 아웃(fan-out)을 공유하거나 분할할 수 있는 유연성을 제공한다.
도 4는 복수의 데이터 처리 모듈(1A, 1B 내지 1N) 및 메시지 기반 네트워크(20)를 포함하는 뉴로모픽 데이터 처리 시스템을 개략적으로 도시한다. 도 5에 도시된 바와 같이, 각 데이터 처리 모듈은 네트워크 통신 모듈(15R 및 15T, 도 5 참조)을 추가로 포함하고, 데이터 처리 모듈은 네트워크 통신 모듈과 함께 메시지 기반 네트워크에 연결된다. 시간-다중화 데이터 처리 모듈은 예를 들어 2D 메시(mesh) 내에 그룹화되고 패킷 스위칭 네트워크-온-칩(packet switching network-on-chip)을 통해 서로 통신할 수 있다. 또는 추가로 3D 메시의 형태로 통합될 수도 있다.
메시지 기반 네트워크(20)를 통한 통신을 용이하게 하기 위해, 뉴로모픽 처리 모듈의 시냅스 메모리 유닛(13)은, 목표 신경 유닛의 해당 네트워크 주소와 더불어 해당 주소 범위 내 각 시냅스 인덱스에 대해 지정한다.
도 4에 도시된 실시예에서, 뉴로모픽 데이터 처리 시스템은 네트워크(20)에 연결된 호스트 컴퓨터(30)를 더 포함한다. 호스트 컴퓨터는 네트워크에 입력 데이터를 제공하고 그로부터 출력 데이터를 추출하기 위한 인터페이스 기능을 포함하는 다양한 기능을 가질 수 있다. 일 실시예에서 호스트(30)는 처리 모듈(1A, 1B 내지 1N)에서 출력 시냅스 슬라이스(slice) 메모리 유닛(12)을 업데이트하도록 구성된다. 대안적으로 또는 추가적으로 호스트는 시냅스 메모리 유닛(13)을 업데이트하도록 구성될 수 있다. 도 3의 실시예의 경우와 같이 시냅스 메모리 유닛(13)이 출력 시냅스 메모리 유닛으로서 제공되는 경우, 호스트는 별도의 입력 시냅스 메모리 유닛(14)을 업데이트하도록 구성될 수 있다. 대안적으로, 처리 모듈은, 예를 들어 기계 학습 프로세스의 일부로서, 스스로 자율적으로 재구성할 수 있도록 하는 (재)구성 기기(10A)(도 3 참조)를 포함할 수 있다. 또 다른 실시예에서, 하나 이상의 메모리 유닛(12, 13, 및 14) 또는 그 일부는 기설정된 콘텐츠를 가질 수 있다. 뉴로모픽 처리 모듈 중 일부는, 예를 들어 보안 기능을 구현하여 변조를 방지하기 위해, ROM으로 구현된 메모리 유닛(12, 13 및 14)을 가질 수 있다.
일 실시예에서, 호스트 컴퓨터(30)는, 출력 시냅스 메모리 유닛 내 연관 출력 주소 범위의 엔트리로서 호스트 네트워크 주소를 지정함으로써, 호스트 컴퓨터에 디버그 메시지를 직접 전송하도록 신경 유닛을 구성할 수 있다는 점에서 디버깅에 이용할 수 있다.
도 5는 뉴로모픽 처리 모듈의 더 상세한 기능적 양상을 도시한다. 이들은 다음을 포함한다:
도 6에 추가로 도시된 신경 풀(pool)(51)은, 모든 신경 유닛의 현재 상태를 포함하는 신경 상태 메모리 유닛(11) 및 시간-다중화(time-multiplexed) 방식으로 이러한 상태를 업데이트하는 연산 기기(10B)를 나타낸다.
이벤트 제어기(52)는 수신 인터페이스(15R)로부터 처리 모듈에 대한 이벤트 메시지를 수신하도록 제공된다. 도시된 실시예에서, 또한 바이패스(15BT, 15B, 및 15BR)를 통해 국소적으로 생성된 메시지를 수신할 수도 있다. 이벤트 제어기는 도 7 및 도 8을 참조하여 보다 상세히 설명된다.
도 9에 더 상세히 도시된 통합 제어기(53)는 통합 명령을 제공하기 위한 것이다. 이벤트 제어기(52)는 통합 제어기(53)와 함께, 신경 풀(pool)에 신경 명령을 제공하는 신경 제어기(5253)를 형성한다.
도 10을 참조하여 더 상세히 설명되는 이벤트 생성기(54)는, 발화 이벤트를 나타내는 신경 풀(51)의 출력에 응답하여 발화 이벤트 메시지를 생성한다.
도 5의 처리 모듈은, 제어 기기(10A)로 하여금 신경 유닛의 상태의 업데이트가 필요한지 여부를 결정하도록 돕는 선택 정보를 포함하는 선택 정보 메모리 유닛(55 및 56)을 더 포함한다. 유닛(56) 내의 선택 정보는 발화 이벤트 메시지가 신경 유닛으로 전송되었는지 여부를 나타낸다. 이 경우, 수신자 신경 유닛은 전송된 메시지의 대상이므로 수신자 신경 유닛의 상태를 업데이트해야한다. 유닛(55) 안의 선택 정보는 신경 유닛이 활성 상태에 있다는 것이 미리 결정되었는지 여부를 더 나타낸다. 또한 이 경우에도 신경 유닛의 상태를 업데이트해야한다. 리셋(reset) 상태가 아닌 경우 신경 유닛은 활성으로 간주된다. 제어 기기(10A)는 제어 신호(R55 및 56)를 사용하여 활성 신경 유닛 및 수신자 신경 유닛의 목록을 리셋할 수 있고, 통합 제어기(53)에 대한 입력으로서 목록 상의 엔트리를 샘플링하기 위한 제어 신호(S57, 58)를 생성할 수 있다. 이벤트 제어기(52)는 이 신경 유닛을 대상으로 하는 이벤트 메시지를 수신한 경우, 메모리 유닛(56) 안의 수신자 신경 유닛의 목록에 신경 유닛 ID를 추가한다. 신경 메모리 풀(51)은, 상태의 업데이트 후에 상태가 활성으로 결정되면 메모리 유닛(55) 안의 활성 신경 유닛의 목록에 신경 유닛 ID를 추가한다. 상태 업데이트의 결과로 스파이크가 발생하면 신경 유닛은 초기 상태로 리셋되고 활성 신경 유닛 목록(55)에서 제거된다.
도 6은 신경 풀(51)의 보다 상세한 기능적 양상을 도시한다. 상기 기술된 것과 같이, 신경 풀(51)은, 모든 신경 유닛의 현재 상태를 포함하는 신경 상태 메모리 유닛(11) 및 시간-다중화 방식을 사용하여 이러한 상태를 업데이트하는 연산 기기(10B)를 나타낸다. 입력 레지스터(register)(511)는, 이벤트 제어기(52) 및 수신할 명령을 보내오는 통합 제어기(53)를 포함하는 신경 제어기(5253)와의 인터페이스를 형성한다. 내부적으로, 그 동작은 파이프라인(pipeline) 제어기(522)에 의해 제어되고, 이는 연기(stall) 신호를 생성할 수 있고 그에 따라 준비 신호를 무효화하여 신경 제어기(5253)를 일시적으로 차단한다.
도 7에 더 상세히 도시된 바와 같이, 이벤트 메시지(입력 이벤트)를 수신한 이벤트 제어기(52)는 이벤트 메시지를 이벤트 목록(521)에 입력한다. 이때, 이벤트 목록(521)은 이벤트 메모리(5211)에 정렬된 순서로(도 8 참조) 유지되거나 또는 힙(heap) 데이터 구조에서와 같이 신경 유닛에 의해 먼저 처리될 메시지(출력 이벤트)가 빠르게 이용될 수 있는 방식으로 배열되어 유지된다. 이벤트 제어기는 입력 시냅스 메모리 유닛(14)에 접근하며, 이때 입력 시냅스 메모리 유닛(14)은 주소지정된 풀(pool) 내의 신경 유닛을 식별하기 위한 구성요소(14A) 및 식별된 신경 유닛을 업데이트할 때 이벤트를 가중처리하기 위해 사용될 가중치를 결정하기 위한 구성요소(14B)를 포함한다. 출력 메시지(출력 이벤트)는, 현재 시간(Current dt)이 송신 신경 유닛의 출력 시냅스에 의해 부과된 지연에 해당하는 지정된 실행 시간과 동일할 때 신경 풀(51)에 대한 이벤트 명령으로 발생된다. 수신자 신경 유닛을 식별한 이벤트 제어기(52)는 그에 따라 목록(56)을 업데이트한다.
도 9에 더 상세히 도시되는 통합 제어기(53)는 신경 풀에게 통합 명령을 제공한다. 통합 명령을 받으면 신경 유닛의 상태가 업데이트된다. 명령은 제어 로직(532)(logic)에 의해 제어되는 열거자(enumerator)(531)에 의해 발생된다. 신경 유닛이 이벤트 메시지의 수신자이어서 업데이트가 필요한 경우 통합 명령은 항상 제공되며, 이벤트 메시지를 수신하지 않았으나 활성 상태인 경우에도 제공된다.
도 10에 더 상세히 도시되는 이벤트 생성기(54)는 발화 이벤트(입력 스파이크) 시 출력 시냅스 슬라이스 메모리 유닛(12) 및 출력 시냅스 메모리 유닛(13)을 사용하여, 메모리 구성요소(13A)에 지정된 시냅스 지연을 가지는 이벤트 메시지(출력 이벤트)를 생성하며, 이때 이벤트 메시지는 또한 메모리 구성요소(13B)에 지정된 대상(NE)의 입력 시냅스 ID에 주소지정된다.
도 11은 복수의 신경 유닛을 포함하는 스파이킹 신경망의 시간-다중화 실행을 위한 본 발명에 따른 뉴로모픽 데이터 처리 방법을 개략적으로 도시한다.
이 방법에서 일련의 단계가 반복되며, 각 반복은 각각의 신경 유닛과 관련된다.
단계(S2)에서, 업데이트 가능 조건이 각각의 신경 유닛에 대해 만족되는지가 통합 제어기에 의해 검증된다. 이 경우 단계(S3 내지 S11)의 아래 하위 시퀀스는 아래 명시된 추가 조건에 따라 수행된다. 그렇지 않은 경우 후속 신경 유닛에 대해 이 조건이 검증된다.
조건만족 시 신경 상태 정보는 신경 상태 메모리 유닛(11) 내의 해당 주소지정가능 메모리 엔트리(addressable memory entry)로부터 해당 신경 유닛에 대해 획득되고(S3), 처리 기기(10B)는 상기 신경 유닛에 대한 이벤트 메시지에 따라 상태 정보를 업데이트한다(S4). 이러한 업데이트는 신경 유닛의 자진 감쇠(autonomous decay) 과정을 에뮬레이트(emulate)하는 데 필요할 수도 있다. 신경 단위가 초기 상태로 돌아가서 비활성 상태로 분류되는 것은 에뮬레이트된 감쇠 과정의 결과일 수 있다.
처리 기기(10B)는 업데이트된 상태 정보가 발화 상태를 나타내는지 여부를 결정한다(S5). 이러한 경우, 초기 상태를 나타내기 위해 상태 정보를 리셋하고(S6), 발화 이벤트 메시지를 추가로 배포한다(S7). 배포에는 다음 단계가 포함될 수 있다.
도 11a 및 도 12에도 도시된 바와 같이, 처리 기기는 출력 시냅스 슬라이스 메모리 유닛(12) 내의 업데이트된 신경 유닛(식별 NUID를 가짐)에 대한 적정 메모리 엔트리에 접근하고(S7A), 그 메모리 엔트리로부터 시냅스 인덱스의 해당 범위(AR)의 표시를 획득한다(S7B). 다음, 해당 범위 내의 각 시냅스 인덱스(SID1 내지 SIDn)에 대해, 시냅스 메모리 유닛(13)의 각 엔트리에 접근하고(S7C), 시냅스 속성 데이터를 획득한다. 이 데이터에는 주소를 지정할 신경 단위(NUID1 내지 NUIDn)의 식별이 포함된다. 이어서, 획득된 시냅스 속성 데이터에 포함된 대상 정보와 관련된 각 신경 유닛을 향해 발화 이벤트 메시지를 전송한다(S7D). 시냅스 속성 데이터는 일반적으로 지연 정보(DT1 내지 DTn) 및 가중치 정보(W1 내지 Wn)를 더 포함한다.
선택적으로, 여기에서의 경우와 같이, 대상 정보는 입력 시냅스 메모리 유닛(14)(SID1 내지 SIDn) 내의 각 주소지정가능 메모리 엔트리에 대한 상세(specification)를 포함한다. 후자는 주소지정된 연관 신경 단위(NUID1 내지 NUIDn) 및 처리 기기가 연관 신경 단위를 업데이트할 때 발화 메시지에 부여하는 가중치(W1 내지 Wn)를 지정한다. 이 경우 본원의 방법은, 획득하는 단계(S7C) 이후 및 전송하는 단계(S7D) 이전에, 중간 단계(S7CD)를 포함한다. 이 중간 단계에서 상세는 대상 정보로부터 획득되고, 상세에 의해 지정된 입력 시냅스 메모리 유닛(14) 내의 각 주소지정가능 메모리 항목이 접근된다. 그러면, 연관 신경 단위의 식별은 접근된 각 메모리 엔트리에서 획득된다.
예시 I:
예로서, 도 2a의 네트워크의 구현이 아래에서 더 자세히 설명된다. 네트워크 토폴로지(network topology)를 정의하는 구성 정보는, 사전에 메모리 유닛(12, 13, 및 14)에 로드되었다고 가정한다.
입력 시냅스 메모리 유닛(14)
이 메모리 유닛(14)은 대상 정보를 지정한다. 각 엔트리는 데이터 처리 모듈 내의 특정 신경 단위의 특정 수신 시냅스(입력 시냅스)를 지정하는 것으로 간주될 수 있다. 여기에는 동일한 데이터 처리 모듈의 다른 신경으로부터 나오는 시냅스가 포함되지만, 메시지 기반 네트워크 내에 위치한 다른 데이터 처리 모듈 내의 신경 단위로부터 나오는 시냅스도 포함될 수 있다. 일 실시예에서, 입력 시냅스 메모리 유닛의 각 엔트리는, 시냅스의 가중치를 지정하는 정보를 가지는 제 1 필드(field) 및 시냅스의 소유자인 신경 유닛에 대한 식별자를 포함하는 제 2 필드를 포함할 수 있다.
이러한 메모리 유닛의 내용 및 네트워크 토폴로지의 양상이 이러한 메모리 유닛에서 매핑(mapping)되는 방식이 아래 표에 나와 있다.
이 메모리 유닛의 엔트리는 예를 들어 3 개의 필드를 도시하는 아래 표의 실시예를 가질 수 있다:
입력 시냅스 ID는 메모리 유닛 자체의 주소 인덱스로 표시된다(이 정보에는 메모리 비트(bit)가 사용되지 않음). 이 메모리 유닛의 각 주소지정가능 엔트리는 특정 시냅스에 대응한다. 메모리 유닛의 깊이(depth)는 a1이다.
예시에서 필드 신경 단위 ID는 신경 단위의 식별자를 포함한다. 이 필드에 필요한 크기(b1)는, 2를 밑으로 하는 신경 단위의 개수의log이다(예를 들어, 256 개의 신경 단위를 가지는 데이터 처리 모듈의 경우 이 필드는 8 비트가 된다).
제 2 필드에는 시냅스에 할당된 시냅스 가중치를 나타내는 값이 포함된다. 시냅스 가중치의 지정에 사용되는 희망 입도(granularity)에 따라, 이 필드(b2)에 대한 비트 수(b2)는 더 작거나 더 클 수 있다. 일 예시에서 이 필드의 비트 수는 32 비트이다.
매핑 예
아래 표는 도 3에 도시된 예시적 네트워크에 대한 이 메모리 유닛(14)의 내용을 도시한다. 예시적 네트워크는, 각각 시냅스 가중치(W0 내지 W4)를 가진 5 개의 입력 시냅스(D0 내지 D4)와 3 개의 신경 유닛(N0 내지 N2)을 포함한다. 도면에 도시된 네트워크와 관련하여 메모리 유닛의 내용을 이해하는 것은 간단하다. 시냅스 가중치가 W0 및 W1 인 D0 및 D1이 N0으로 향하고, D2는 N1으로 향하는 등의 내용을 볼 수 있다. 또한 복수의 입력 시냅스(이 경우 N0 및 N2)를 가지는 신경 단위에 대한 시냅스 연결이 입력 시냅스 메모리 유닛에서 관리되는 방식을 도시한다.
예시적 입력 시냅스 메모리 유닛
입력 시냅스 ID 신경 유닛 ID 시냅스 가중치
D0 N0 W0
D1 N0 W1
D2 N1 W2
D3 N2 W3
D4 N2 W4
일 실시예에서 입력 시냅스 메모리 유닛은, 입력이 내부적으로 처리되는 방식을 더 지정할 수 있다. 예를 들어 활동 전위 값에 가중치를 추가하거나, 활동 전위 값이 각 시간 단계마다 증가하도록 하는 선형 요소로서 가중치를 사용할 수 있다. 또한 가중치는, 추가 입력 이벤트가 없을 때의 신경 단위의 점진적인 비활성화를 나타내는 감쇠 값을 설정하거나 수정하기 위해 사용될 수 있다.
출력 시냅스 메모리 유닛(13)
이 메모리 유닛(13)은 대상 정보를 정의하며 각 엔트리는 신경 유닛으로부터 발생하는 발화 이벤트 메시지의 대상을 지정한다. 각 엔트리는, 데이터 처리 모듈 내의 신경 단위의 송신 시냅스(축삭)로 간주될 수 있다. 여기에는 동일한 데이터 처리 모듈의 다른 신경 단위로 향하는 시냅스뿐만 아니라 다른 데이터 처리 모듈 또는 데이터 처리 시스템의 복수의 다른 이종(heterogeneous) 구성 요소로 향하는 시냅스가 포함된다. 메모리 유닛(13)의 각 엔트리의 정보는, 시냅스의 시냅스 지연, 즉 발화 이벤트 메시지의 전달에 대한 지연을 나타내는 값을 가지는 제 1 필드를 포함할 수 있다. 이 필드는, 시냅스 지연을 지정하는 희망 입도(granularity)에 따라, 더 작거나 더 많은 수의 비트(b3)를 가질 수 있다. 예시에서 수(b3)는 32다.
제 2 필드(목적지 입력 시냅스 ID)는 발화 이벤트 메시지를 수신할 입력 시냅스에 대한 식별자를 포함할 수 있다. 제 2 필드는 입력 시냅스의 개수에 따라 비트 수(b5)를 가질 수 있다. 예를 들어 데이터 처리 모듈이 256개의 입력 시냅스를 가지는 경우 값은 8비트가 된다.
데이터 처리 모듈이, 메시지 기반 네트워크에 의해 상호결합된 복수의 데이터 처리 모듈 중 하나인 경우, 아래 예시적 표에서와 같이 목적지 모듈의 식별자를 제공하기 위해 제 3필드(NE ID)가 제공될 수 있다. 그러면 발화 이벤트 메시지는 제 3 필드에 지정된대로 대상 데이터 처리 모듈에 전송되고, 대상 데이터 처리 모듈에 의해 수신된 발화 이벤트 메시지는 제 2필드에 지정된 입력 시냅스로 라우팅(route)된다. 이 필드의 크기는 네트워크 내의 데이터 처리 모듈 개수에 따르는 b4 비트이다. 예를 들어, 65k 데이터 처리 모듈을 포함하는 네트워크에서 비트 수는 (적어도) 16이어야 한다.
메모리 유닛(13)의 각 엔트리는 신경에 의해 발생(issue)된 발화(firing) 이벤트 메시지에 대한 특정 목적지에 대응하므로 출력 시냅스에 대한 상세(specification)를 가진 필드를 포함할 필요가 없다. 즉, 출력 시냅스 ID는 메모리 유닛(13) 자체의 주소 인덱스에 의해 나타난다(이 정보에는 메모리 비트가 사용되지 않음). 데이터 처리 모듈 내의 모든 신경 단위의 모든 출력 시냅스의 총 개수에 대한 희망 상한에 따라 더 작거나 더 큰 메모리 깊이(depth)가 선택될 수 있다.
매핑 예
아래 표는 도 2a에 도시된 예시적 네트워크에 대한 이 메모리 유닛(13)의 내용을 도시한다. 예시적 네트워크는, 각각 시냅스 지연(T0 내지 T3)을 가진 4 개의 출력 시냅스(A0 내지 A3)와 3 개의 신경 유닛(N0 내지 N2)을 포함한다. 도면에 도시된 네트워크와 관련하여 메모리 유닛의 내용을 이해하는 것은 간단하다. 이 특정 예시에서 모든 출력 시냅스는, 메모리 주소(A3)를 가지는 엔트리로 나타나며 다른 데이터 처리 모듈(표에서 데이터 처리 모듈 NEy로 표시됨)로 향하는 출력 시냅스를 제외하고, 동일한 데이터 처리 모듈(표에서 NEx로 표시됨) 내에 있음을 알 수 있다. 메모리 유닛의 마지막 열은, 신경 단위에 대하여, 수신된 발화 이벤트 메시지(입력 스파이크라고도 함)의 처리를 위해 이 출력 시냅스에 연결된 입력 시냅스의 입력 시냅스 ID를 도시한다. 지정된 입력 시냅스 ID는, 이 입력 시냅스에 대한 입력 시냅스 정보를 포함하는 입력 시냅스 메모리 유닛 내의 엔트리의 주소이다. 더 설명하자면, 시냅스 지연(T0)을 가지는 출력 시냅스(A0)는 데이터 처리 모듈(NEx)(동일한 데이터 처리 모듈)로 향하는 발화 이벤트 메시지를 전송하기 위한 것이며, 네트워크 다이어그램에 도시된 것과 같이 ID가 D2인 입력 시냅스에 연결되어 있음을 표에서 볼 수 있다.
입력 시냅스(D2)를 통해 발화 이벤트 메시지를 수신하면 제어 기기(10A)는, 입력 시냅스 메모리 유닛(14)으로부터, 이 경우에 신경 유닛(N1)인 연관 신경 유닛에 대한 식별자를 획득하며, 이 신경 유닛(N1)의 상태를 업데이트하도록 연산 기기(10B)에 명령하며, 이때 입력 시냅스(D2)에 할당된 시냅스 가중치(W2)를 더 고려하여 업데이트한다. 이 예시에서, 시냅스 지연(T3)을 가지는 출력 시냅스(A3)는, ID가 Dx인 입력 시냅스에 연결된 외부 데이터 처리 모듈(NEy)로 향하는 시냅스이다.
예시적 출력 시냅스 메모리 유닛
출력 시냅스 ID 시냅스 지연 대상 데이터 처리 모듈 ID 대상 입력 시냅스 ID
A0 T0 NEx D2
A1 T1 NEx D3
A2 T2 NEx D4
A3 T3 Ney Dx
출력 시냅스 슬라이스 메모리 유닛(12)
출력 시냅스 슬라이스 메모리 유닛(12)은, 출력 시냅스 메모리 유닛(13)의 어떤 출력 시냅스가 데이터 처리 모듈의 각 신경 유닛에 대응하는지를 지정한다. 신경 유닛이 이 메모리 유닛(12)의 발화 이벤트 메시지를 발생시킬 때, 제어 기기(10A)는 출력 시냅스 슬라이스 메모리 유닛(12)으로부터 주소 범위에 대한 표시를 획득한다. 상기 표시는, 발화하는 신경 유닛에 대응하는 주소를 가진 출력 시냅스 슬라이스 메모리 유닛(12) 내의 엔트리로부터 획득된다. 본 실시예에서 주소 범위는 상기 엔트리의 제 1 및 제 2 필드 내에 지정된다. 제 1필드는 출력 시냅스 메모리 유닛(13)(범위의 첫 번째 주소)에 대한 오프셋(offset)을 지정하고 제 2필드는 엔트리 개수를 지정한다. 오프셋을 지정하는 필드의 크기는 b6 비트이다(b6은 복수의 값을 가질 수 있으며, 일반적으로 그 값은 2를 밑으로 하는 데이터 처리 모듈의 출력 시냅스 수의 log임). 다른 예로는, 범위의 첫 번째 주소와 마지막 주소, 또는 범위의 마지막 주소와 엔트리 개수를 지정할 수 있다. 개수를 지정하는 제 2 필드의 크기는 b7 비트(b7은 복수의 값을 가질 수 있음)이며 일반적으로 그 값은 2를 밑으로 하는 신경 유닛의 평균 출력 시냅스 개수의 log이다.
매핑
아래의 표 3은 예시를 통해 도 2a의 신경망의 매핑을 도시한다. 이 예시의 신경망은, 메모리 유닛(12) 내에 각 엔트리를 가지는 3개의 신경 단위(N0, N1, 및 N2)를 포함한다. 메모리 유닛(12)에 지정된대로 신경 단위(N0)에는 하나의 출력 시냅스(A0)가 있으며 그 출력 시냅스 속성은 출력 시냅스 메모리 유닛(13) 내의 오프셋 0을 가지는 엔트리에 의해 지정된다. N1은 2개의 출력 시냅스(A1 및 A2)를 가지며 두 엔트리 중 첫 번째 엔트리는 출력 시냅스 메모리 유닛에서 오프셋 주소 1을 가진다. 마지막으로 신경 단위(N2)에는 하나의 출력 시냅스(A3)가 있으며 그 출력 시냅스 속성은 출력 시냅스 메모리 유닛 내의 오프셋 주소 3에 있는 엔트리에 의해 지정된다. 신경 유닛이 발화 이벤트 메시지를 발생시킬 때, 제어 기기(10A)는 이벤트를 전송하기 위한 출력 시냅스에 대한 지정자(specifier)를 메모리 유닛(12)으로부터 획득하고, 각각의 지정된 출력 시냅스에 대해 메모리 유닛(13) 내에 지정된 출력 시냅스 속성을 사용한다.
예시적 출력 시냅스 슬라이스 메모리 유닛
신경 유닛 ID 오프셋 출력 시냅스 개수
N0 0 1
N1 1 2
N2 3 1
신경 상태 메모리 유닛(11)
신경 상태 메모리 유닛(11)은 실행 중에 각 신경 유닛에 대한 각각의 상태 값(막 전위)(membrane potential)을 저장한다. 신경 단위 식별 번호(신경 유닛 ID)는 이 메모리 유닛을 검색하기 위한 인덱스로 사용될 수 있으므로 별도의 필드가 필요하지 않다. 이 메모리 유닛(11)은 데이터 처리 모듈의 신경 유닛 개수에 대응하는 a4의 깊이를 가진다. 상태 값은 b8 비트의 크기를 가진다(복수의 신경 상태 변수를 저장할 때 사용되는 입도에 따라, b8은 복수의 값을 가질 수 있음). b8의 한 예는 50 비트이다.
일 실시예에서 신경 상태는, 활성 상태를 나타내는 활동 전위(V)(action potential)에 의해 정의될 수 있다. 활동 전위는 최소값에서 최대값까지의 범위 내의 값을 가질 수 있으며, 이때 최대값은 일반적으로 신경 단위가 방출하는 스파이크의 임계 값에 의해 정의되며, 스파이크를 방출한 후 신경 단위는 초기 상태로 리셋되고 이때 활동 전위는 예를 들어 0이 된다. 예를 들어 억제성 입력의 결과로, 음의 활동 전위 값도 발생하도록 고려할 수 있다.
일반적으로 생물학적 신경 단위와 같이, 신경 단위의 활동 전위(V)는 시간이 지남에 따라 감쇠한다. 활동 전위는 상수(constant) 성분과 감쇠 성분(gf)의 중첩으로 볼 수 있으며, 각각에 대해 현재 값이 상태로서 저장된다. 일 실시예에서 감쇠는 선형일 수 있고, 다른 실시예에서 감쇠는 지수적일 수 있다.
스파이크의 교환으로 나타나는 값은 다양한 방식으로 표시될 수 있다. 일 실시예에서, 값은 스파이크의 빈도로 표시될 수 있으며, 더 높은 빈도는 더 높은 값을 나타낸다. 이 경우, 수신된 스파이크 개수를 계산함으로써 입력의 추가가 수행될 수 있다. 수신된 각 스파이크에서, 스파이크가 수신된 입력에 할당된 가중치에 따라 활동 전위가 증가한다. 또는, 후속 스파이크 사이의 시간 간격이 값을 나타낼 수 있다. 신경 단위는, 활동 전위에 추가되는 선형 증가 성분을 가질 수 있다. 선형 증가 성분은, 각 불연속(discrete) 시간 단계마다 활동 전위에 추가되는 증분 값(ge)으로서 제공될 수 있다. 신경 유닛은, 첫 번째 시냅스에서 첫 번째 스파이크를 수신하면 증분 값을 가중치 값으로 설정하고, 두 번째 시냅스에서 두 번째 스파이크를 수신하면 증분 값을 0으로 리셋할 수 있다. 이 결과로서의 활동 전위 값의 변화는, 첫 번째 스파이크의 수신과 두 번째 스파이크의 수신 사이의 불연속 시간 단계 개수 및 가중치의 곱이다. 증분 값은 추가 상태 값으로 저장될 수 있다.
추가 상태 값으로서, 다른 상태 값(예를 들어, 감쇠)이 활동 전위에 기여하는 정도를 결정하는 별도의 제어 값(게이트)(gate)이 저장될 수 있다.
예시적 신경 상태 메모리 유닛
신경 유닛 ID 상태 값(b8 비트)
N0 V, ge, gf, gate
N1 V, ge, gf, gate
N2 V, ge, gf, gate
신경 유닛 및 시냅스의 적응성 매핑의 예시
예시-1
도 2b는 하나의 신경 유닛(N0), 5개의 입력 시냅스(D0 내지 D4) 및 하나의 출력 시냅스(A0)를 가지는 데이터 처리 모듈을 도시한다. 아래 표는, 위 섹션에서 자세히 설명한 방식에 따른, 이 예시적 네트워크의 시냅스 메모리로의 매핑을 도시한다. 사용되지 않은 곳은 기호 X로 표시된다.
입력 시냅스 메모리 유닛(14)
입력 시냅스 ID(깊이=10) 신경 유닛 ID 시냅스 가중치
D0 N0 W0
D1 N0 W1
D2 N0 W2
D3 N0 W3
D4 N0 W4
X X X
X X X
X X X
출력 시냅스 메모리 유닛(13)
출력 시냅스 ID
(깊이 = 10)
시냅스 지연 대상 ID 입력 시냅스 ID
A0 T0 NEy Dy
X X X X
X X X X
출력 시냅스 슬라이스 메모리 유닛
신경 유닛 ID 오프셋 출력 시냅스 개수
N0 0 1
X X X
X X X
예시-2
도 2c는 2개의 신경 유닛(N0 및 N1), 7개의 입력 시냅스(D0 내지 D6) 및 8개의 출력 시냅스(A0 내지 A7)가 있는 예를 도시한다. 아래 표는, 위 섹션에서 자세히 설명한 방식에 따른, 이 예시적 네트워크의 시냅스 메모리로의 매핑을 도시한다.
입력 시냅스 메모리 유닛
입력 시냅스 ID 신경 유닛 ID 시냅스 가중치
D0 N0 W0
D1 N0 W1
D2 N0 W2
D3 N0 W3
D4 N1 W4
D5 N1 W5
D6 N1 W6
X X X
X X X
X X X
출력 시냅스 메모리 유닛
출력 시냅스 ID 시냅스 지연 대상 ID 입력 시냅스 ID
A0 T0 NEx D4
A1 T1 NEx D5
A2 T2 NEy Dya
A3 T3 NEy Dyb
A4 T4 NEy Dyc
A5 T5 NEy Dyd
A6 T6 NEy Dye
A7 T7 NEx D6
X X X X
X X X X
출력 시냅스 슬라이스 메모리 유닛
신경 유닛 ID 오프셋 출력 시냅스 개수
N0 0 2
N1 2 6
X X X
예시 3:
추가 예시로서, 도 2d에 도시된 것과 같이, 부호없는(unsigned) 메모리에 대해 메모리(12, 13 및 14)의 내용이 설명된다.
예시적 입력 시냅스 메모리 유닛
입력 시냅스 ID 신경 유닛 ID 시냅스 가중치
D0 N1 we
D1 N2 0.5we
D2 N1 wi
D3 N3 wacc
D4 N3 -wacc
D5 N5 we
D6 N3 wacc
D7 N5 we
예시적 출력 시냅스 메모리 유닛
출력 시냅스 ID 시냅스 지연 대상 ID 입력 시냅스 ID
A0 Tsyn NEx D0
A1 Tsyn NEx D1
A2 Tsyn NEx D2
A3 Tsyn+Tmin NEx D3
A4 Tsyn NEx D4
A5 Tsyn NEx D5
A6 Tsyn NEx D6
A7 2*Tsyn+Tneu NEx D7
- - - -
- - - -
출력 시냅스 슬라이스 메모리 유닛
신경 유닛 ID 오프셋 출력 시냅스 개수
N0 0 2
N1 2 2
N2 4 1
N3 5 1
N4 6 2
N5 - -
다양한 제어 기능이 전용 제어기에 의해 수행될 수 있다. 또는 제어기는 다양한 제어 기능을 수행할 수 있다. 예를 들면 시간 공유 방식이 있다. 하나 이상의 제어 기능을 수행하기 위한 제어기는 전용 하드웨어, 프로그래밍 가능 또는 구성 가능한 장치 또는 이들의 조합으로 구현될 수 있다. 신경 단위 상태를 업데이트하는 연산 기기(10B)는 마찬가지로 다양한 방식으로 구현될 수 있지만, 최적의 성능을 위해 전용 하드웨어로 제공되는 것이 바람직하다.
본 명세서에서 사용된 용어는 특정 실시예를 설명하기 위한 것뿐이며 본 발명을 제한하려는 의도가 아니다. 본 명세서에서 사용된 것과 같이, 단수 형태 및 "상기"는 문맥 상 명백하게 달리 나타나지 않는 한 복수 형태도 포함한다. 본 명세서에서 사용될 때 "포함한다" 및/또는 "포함하는"이라는 용어는 언급된 특징, 정수, 단계, 연산, 요소 및/또는 구성 요소의 존재를 지정하지만, 하나 이상의 다른 특징, 정수, 단계, 연산, 요소, 구성 요소, 및/또는 이의 집합의 존재를 배제하지는 않는다는 것이 추가로 이해될 것이다. 또한, 명시적으로 반대인 것으로 서술되지 않는 이상, "또는"은 포괄적인 "또는"을 지칭하고 배타적인 "또는"을 지칭하지 않는다. 예를 들어, 조건 A 또는 B가 다음 중 어느 하나에 의해 충족된다: A는 참(또는 존재함)이고 B는 거짓(또는 존재하지 않음), A는 거짓(또는 존재하지 않음)이고 B는 참(또는 존재함), 및 A와 B가 모두 참(또는 존재함)이다.

Claims (13)

  1. 복수의 신경 유닛(neural unit)을 포함하는 스파이킹 신경망(spiking neural network)의 시간-다중화(time-multiplexed) 실행을 위한 뉴로모픽(neuromorphic) 처리 모듈(1)에 있어서,
    상기 신경 유닛 각각은, 초기 상태, 하나 이상의 전이(transitional) 상태, 및 발화(firing) 상태를 포함하는 복수의 상태로부터 선택되는 신경 상태를 가지며, 상기 신경 유닛 각각은, 자신의 상기 신경 상태를 지정하는 상태 정보를 저장하기 위한 신경 상태 메모리 유닛(11) 내에 각 주소지정가능 메모리 엔트리(addressable memory entry)를 가지며, 상기 신경 유닛 각각의 상기 상태 정보는, 상기 신경 유닛을 대상으로 하는 이벤트 메시지에 따라, 상기 처리 모듈에 포함된 처리 기기(10)에 의해 시간-다중화 방식으로 연산 및 업데이트되고, 상기 처리 기기는, 업데이트된 신경 유닛이 상기 발화 상태인 것으로 연산되면, 상기 업데이트된 신경 유닛을 상기 초기 상태로 리셋하며, 출력 시냅스 슬라이스 메모리 유닛(output synapse slice memory unit) 내, 상기 업데이트된 신경 유닛의 각 엔트리에 접근하고, 상기 각 엔트리로부터 출력 시냅스 인덱스의 해당 범위에 대한 표시를 획득하되, 상기 해당 범위 내 상기 출력 시냅스 인덱스 각각에 대해 상기 처리 기기는:
    출력 시냅스 메모리 유닛(13) 내 각 엔트리에 접근하며,
    상기 각 엔트리로부터 출력 시냅스 속성 데이터를 획득하되, 상기 출력 시냅스 속성 데이터는, 입력 시냅스 메모리 유닛(14) 내 각 엔트리에 대응하는 해당 입력 시냅스 인덱스 및 전송 지연을 지정하며, 상기 입력 시냅스 메모리 유닛 내 상기 각 엔트리는 연관 신경 유닛에 대한 참조를 포함하고;
    특정 지연을 한 상태로 발화 이벤트 메시지를 상기 연관 신경 유닛에 전송하는,
    뉴로모픽 처리 모듈.
  2. 제1항에 있어서,
    상기 입력 시냅스 메모리 유닛(14) 내 엔트리는, 상기 연관 신경 유닛을 업데이트할 때 상기 처리 기기가 상기 발화 메시지를 가중처리하기 위해 사용하는 가중치를 더 지정하는,
    뉴로모픽 처리 모듈.
  3. 제1항 또는 제2항에 있어서,
    상기 처리 기기(10)는 제어 기기(10A) 및 연산 기기(10B)를 포함하되, 상기 제어 기기(10A)는, 상기 신경 유닛의 상기 신경 상태의 업데이트가 필요한지 여부를 정기적으로 검증 및 신호화하도록 구성되며, 상기 연산 기기(10B)는, 상기 제어 기기(10A)에 의해 신호화되면 상기 신경 유닛의 업데이트된 상기 신경 상태를 연산하도록 구성되는,
    뉴로모픽 처리 모듈.
  4. 제3항에 있어서,
    상기 제어기기(10A)로 하여금 상기 신경 유닛의 상기 신경 상태의 업데이트가 필요한지 여부를 판단하도록 지원하기 위한 선택 정보를 포함하는 선택 정보 메모리 유닛을 더 포함하되, 상기 선택 정보는, 상기 신경 유닛으로 발화 이벤트 메시지가 전송되었는지 여부 및/또는 상기 신경 유닛이 활성 상태에 있는 것으로 이전에 판단되었는지 여부를 나타내는,
    뉴로모픽 처리 모듈.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 처리 기기(10)는, 상기 출력 시냅스 슬라이스 메모리 유닛(12), 상기 출력 시냅스 메모리 유닛(13), 및 상기 입력 시냅스 메모리 유닛(14) 중 적어도 하나를 업데이트하도록 구성된 재구성 기기(10C)를 더 포함하는,
    뉴로모픽 처리 모듈.
  6. 뉴로모픽(neuromorphic) 처리 시스템에 있어서,
    제1항 내지 제5항 중 한 항에 따른 복수의 뉴로모픽 처리 모듈, 및 메시지 기반 네트워크를 포함하되, 상기 뉴로모픽 처리 모듈 각각은 네트워크 통신 모듈을 추가적으로 포함하며, 상기 뉴로모픽 처리 모듈은 자신의 상기 네트워크 통신 모듈을 통해 상기 메시지 기반 네트워크에 연결되는,
    뉴로모픽 처리 시스템.
  7. 제6항에 있어서,
    상기 복수의 뉴로모픽 처리 모듈과 연결된 상기 메시지 기반 네트워크는 네트워크-온-칩(network-on-chip)으로서 형성되는,
    뉴로모픽 처리 시스템.
  8. 제6항 또는 제7항에 있어서,
    상기 뉴로모픽 처리 모듈의 상기 출력 시냅스 메모리 유닛(13)은, 목표 신경 유닛의 해당 네트워크 주소 및 상기 해당 주소 범위 내 각 시냅스 인덱스를 지정하는,
    뉴로모픽 처리 시스템.
  9. 제6항 내지 제8항 중 어느 한 항에 있어서,
    상기 뉴로모픽 처리 모듈 내, 상기 출력 시냅스 슬라이스 메모리 유닛(12), 상기 출력 시냅스 메모리 유닛(13), 및 상기 입력 시냅스 메모리 유닛(14) 중 적어도 하나를 업데이트하도록 구성된 호스트 컴퓨터를 더 포함하는,
    뉴로모픽 처리 시스템.
  10. 복수의 신경 유닛(neural unit) - 상기 신경 유닛 각각은, 초기 상태, 적어도 하나 이상의 전이 상태, 및 발화 상태를 포함하는 복수의 상태로부터 선택되는 신경 상태를 가짐 - 을 포함하는 스파이킹 신경망(spiking neural network)의 시간-다중화(time-multiplexed) 실행을 위한 뉴로모픽(neuromorphic) 처리 방법에 있어서,
    하기 조건에 따라 S3 내지 S11 단계의 시퀀스를 반복하는 단계를 포함하되
    상기 조건은:
    상기 신경 유닛에 대한 신경 상태 정보를 신경 상태 메모리 유닛 내 각 주소지정가능 메모리 엔트리로부터 획득하는 단계(S3);
    상기 신경 유닛을 대상으로 하는 이벤트 메시지에 따라 상기 상태 정보를 업데이트하는 단계(S4),
    상기 업데이트된 상태 정보가 상기 발화 상태를 나타내는지 판단하는 단계(S5),
    상기 발화 상태를 나타냄을 판단함에 따라,
    상기 초기 상태를 나타내도록 상기 상태 정보를 리셋하는 단계(S6)와 발화 이벤트 메시지를 배포하는 단계(S7) 및,
    해당 신경 유닛에 대한 상기 업데이트된 상태 정보를, 제1 메모리 유닛 내 각 주소지정가능 제1 메모리 엔트리에 저장하는 단계(S8)를 포함하되,
    상기 배포하는 단계(S7)는 다음의 서브-서브 단계:
    출력 시냅스 슬라이스 메모리 유닛(output synapse slice memory unit)(12) 내, 상기 업데이트된 신경 유닛의 적정 메모리 엔트리에 접근하는 단계(S7A); 상기 적정 메모리 엔트리로부터 출력 시냅스 인덱스의 해당 범위의 표시를 획득하는 단계(S7B); 상기 해당 범위 내 각 출력 시냅스 인덱스마다: 출력 시냅스 메모리 유닛 내 각 엔트리에 접근하고, 출력 시냅스 속성 데이터 - 상기 출력 시냅스 속성 데이터는, 연관 신경 유닛에 대한 참조를 포함하는 입력 시냅스 메모리 유닛 내 각 엔트리에 대응하는 해당 입력 시냅스 인덱스 및 전송 지연에 대한 상세를 포함함 - 를 획득하는 단계(S7C); 특정 지연을 한 상태로 상기 발화 이벤트 메시지를 상기 연관 신경 유닛에 전송하는 단계(S7D);를 포함하는,
    뉴로모픽 처리 방법.
  11. 제10항에 있어서,
    업데이트 가능 조건이 만족되는지 여부를 검증하는 단계(S2)에 의하여, S3 내지 S11 단계의 상기 시퀀스에 따라 업데이트될 신경 유닛을 선택하는 단계를 포함하는,
    뉴로모픽 처리 방법.
  12. 제10항 또는 제11항에 있어서,
    상기 입력 시냅스 메모리 유닛(14) 내 상기 각 엔트리는, 상기 연관 신경 유닛을 업데이트할 때 상기 처리 기기가 상기 발화 메시지를 가중처리하기 위해 사용하는 가중치를 지정하고,
    상기 뉴로모픽 처리 방법은, 상기 획득하는 단계(S7C) 이후 및 상기 전송하는 단계(S7D) 이전에 중간 단계(S7CD)를 포함하되, 상기 중간 단계는, 대상 정보로부터 상기 상세를 획득하는 단계, 상기 상세에 의해 지정되는, 상기 입력 시냅스 메모리 유닛(14) 내 각 주소지정가능 메모리 엔트리에 접근하는 단계, 및 상기 접근된 각 메모리 엔트리로부터 상기 연관 신경 유닛의 식별자를 획득하는 단계를 포함하는,
    뉴로모픽 처리 방법.
  13. 제10항 내지 제12항 중 어느 한 항에 있어서,
    상기 출력 시냅스 슬라이스 메모리 유닛, 상기 출력 시냅스 메모리 유닛, 및 상기 입력 시냅스 메모리 유닛 중 적어도 하나를 업데이트함으로써 신경망 토폴로지(topology)를 재구성하는 단계를 포함하는,
    뉴로모픽 처리 방법.
KR1020217006235A 2018-07-31 2019-07-31 데이터 처리 모듈, 데이터 처리 시스템 및 데이터 처리 방법 KR20210091688A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP18290090.2 2018-07-31
EP18290090.2A EP3605401A1 (en) 2018-07-31 2018-07-31 Data processing module, data processing system and data processing method
PCT/EP2019/070643 WO2020025680A1 (en) 2018-07-31 2019-07-31 Data processing module, data processing system and data processing method

Publications (1)

Publication Number Publication Date
KR20210091688A true KR20210091688A (ko) 2021-07-22

Family

ID=63254640

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217006235A KR20210091688A (ko) 2018-07-31 2019-07-31 데이터 처리 모듈, 데이터 처리 시스템 및 데이터 처리 방법

Country Status (6)

Country Link
US (1) US20210319295A1 (ko)
EP (2) EP3605401A1 (ko)
JP (1) JP7453229B2 (ko)
KR (1) KR20210091688A (ko)
CN (1) CN113196299A (ko)
WO (1) WO2020025680A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4075275A1 (en) * 2021-04-16 2022-10-19 GrAl Matter Labs S.A.S. Message based processor, message based processing method and record carrier

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0461902B1 (en) * 1990-06-14 1998-12-23 Canon Kabushiki Kaisha Neural network
US20040193558A1 (en) * 2003-03-27 2004-09-30 Alex Nugent Adaptive neural network utilizing nanotechnology-based components
US9460387B2 (en) * 2011-09-21 2016-10-04 Qualcomm Technologies Inc. Apparatus and methods for implementing event-based updates in neuron networks
US8909576B2 (en) * 2011-09-16 2014-12-09 International Business Machines Corporation Neuromorphic event-driven neural computing architecture in a scalable neural network
US9256823B2 (en) * 2012-07-27 2016-02-09 Qualcomm Technologies Inc. Apparatus and methods for efficient updates in spiking neuron network
US9542643B2 (en) 2013-05-21 2017-01-10 Qualcomm Incorporated Efficient hardware implementation of spiking networks
US9460382B2 (en) * 2013-12-23 2016-10-04 Qualcomm Incorporated Neural watchdog
US10204301B2 (en) * 2015-03-18 2019-02-12 International Business Machines Corporation Implementing a neural network algorithm on a neurosynaptic substrate based on criteria related to the neurosynaptic substrate
FR3038997A1 (fr) 2015-07-13 2017-01-20 Univ Pierre Et Marie Curie (Paris 6) Dispositif de traitement de donnees avec representation de valeurs par des intervalles de temps entre evenements
CN105488565A (zh) * 2015-11-17 2016-04-13 中国科学院计算技术研究所 加速深度神经网络算法的加速芯片的运算装置及方法
US10990872B2 (en) 2016-03-31 2021-04-27 International Business Machines Corporation Energy-efficient time-multiplexed neurosynaptic core for implementing neural networks spanning power- and area-efficiency
US20170330069A1 (en) * 2016-05-11 2017-11-16 Kneron Inc. Multi-layer artificial neural network and controlling method thereof
US10846590B2 (en) * 2016-12-20 2020-11-24 Intel Corporation Autonomous navigation using spiking neuromorphic computers
US11037054B2 (en) * 2016-12-20 2021-06-15 Intel Corporation Trace-based neuromorphic architecture for advanced learning
US10824937B2 (en) * 2016-12-20 2020-11-03 Intel Corporation Scalable neuromorphic core with shared synaptic memory and variable precision synaptic memory
CN108154228B (zh) * 2016-12-28 2022-04-12 上海寒武纪信息科技有限公司 一种人工神经网络计算装置和方法

Also Published As

Publication number Publication date
CN113196299A (zh) 2021-07-30
JP7453229B2 (ja) 2024-03-19
US20210319295A1 (en) 2021-10-14
EP3605401A1 (en) 2020-02-05
JP2021533517A (ja) 2021-12-02
WO2020025680A1 (en) 2020-02-06
EP3830763A1 (en) 2021-06-09

Similar Documents

Publication Publication Date Title
US11410017B2 (en) Synaptic, dendritic, somatic, and axonal plasticity in a network of neural cores using a plastic multi-stage crossbar switching
US11295201B2 (en) Time-division multiplexed neurosynaptic module with implicit memory addressing for implementing a neural network
US20160260008A1 (en) Time-division multiplexed neurosynaptic module with implicit memory addressing for implementing a universal substrate of adaptation
US20200034687A1 (en) Multi-compartment neurons with neural cores
US8843425B2 (en) Hierarchical routing for two-way information flow and structural plasticity in neural networks
CN104685516B (zh) 用于在尖峰神经元网络中实现基于事件的更新的装置和方法
US20160323143A1 (en) Method and apparatus for neuroplastic internet of things by cloud computing infrastructure as a service incorporating reconfigurable hardware
CN109426647A (zh) 用于协调解聚的加速器装置资源的技术
CN106951926A (zh) 一种混合架构的深度学习系统方法及装置
US9020867B2 (en) Cortical simulator for object-oriented simulation of a neural network
JP2015534172A (ja) ニューラル・コア回路
CN108111335A (zh) 一种调度和链接虚拟网络功能的方法及系统
CN114327399B (zh) 分布式训练方法、装置、计算机设备、存储介质和产品
Davies et al. Population-based routing in the SpiNNaker neuromorphic architecture
Luo et al. Low cost interconnected architecture for the hardware spiking neural networks
Karthik et al. Choosing among heterogeneous server clouds
CN113240100B (zh) 基于离散Hopfield神经网络的并行计算方法及系统
KR20210091688A (ko) 데이터 처리 모듈, 데이터 처리 시스템 및 데이터 처리 방법
Ueno et al. VCSN: Virtual circuit-switching network for flexible and simple-to-operate communication in HPC FPGA cluster
Sadeghi et al. Hardware Implementation of a Resource-Efficient Router for Multi-Core Spiking Neural Networks
EP3640862A1 (en) Neural network evaluation tool and method
Lim et al. Evolvable hardware using context switchable fuzzy inference processor
US20230206048A1 (en) Crossbar-based neuromorphic computing apparatus capable of processing large input neurons and method using the same
CN116775553A (zh) 拟态设备的构件池分配方法、设备及可读存储介质
CN117709402A (zh) 模型构建方法、装置、平台、电子设备及存储介质

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal