KR20230101577A - 대규모 입력 뉴런 처리가 가능한 크로스바 기반의 뉴로모픽 컴퓨팅 장치 및 이를 이용한 방법 - Google Patents
대규모 입력 뉴런 처리가 가능한 크로스바 기반의 뉴로모픽 컴퓨팅 장치 및 이를 이용한 방법 Download PDFInfo
- Publication number
- KR20230101577A KR20230101577A KR1020210191790A KR20210191790A KR20230101577A KR 20230101577 A KR20230101577 A KR 20230101577A KR 1020210191790 A KR1020210191790 A KR 1020210191790A KR 20210191790 A KR20210191790 A KR 20210191790A KR 20230101577 A KR20230101577 A KR 20230101577A
- Authority
- KR
- South Korea
- Prior art keywords
- node
- group
- input neurons
- input
- neuromorphic computing
- Prior art date
Links
- 210000002364 input neuron Anatomy 0.000 title claims abstract description 83
- 238000000034 method Methods 0.000 title claims abstract description 40
- 238000012545 processing Methods 0.000 title claims abstract description 36
- 210000003050 axon Anatomy 0.000 claims abstract description 49
- 238000004364 calculation method Methods 0.000 claims abstract description 22
- 210000002569 neuron Anatomy 0.000 claims description 42
- 238000013528 artificial neural network Methods 0.000 description 31
- 210000000225 synapse Anatomy 0.000 description 19
- 238000013473 artificial intelligence Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 8
- 210000004556 brain Anatomy 0.000 description 4
- 230000003278 mimic effect Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000003925 brain function Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001242 postsynaptic effect Effects 0.000 description 1
- 210000005215 presynaptic neuron Anatomy 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/049—Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
- G06N3/065—Analogue means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
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)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
대규모 입력 뉴런 처리가 가능한 크로스바 기반의 뉴로모픽 컴퓨팅 장치 및 이를 이용한 방법이 개시된다. 본 발명의 일실시예에 따른 뉴로모픽 컴퓨팅 방법은 크로스바(CROSS-BAR) 기반의 뉴로모픽(NEUROMORPHIC) 컴퓨팅 시스템에서, 하드웨어 기반의 노드(NODE)의 크로스바 크기를 고려한 최대 액손(AXON) 개수와 입력 뉴런(NEURON) 개수를 비교하는 단계; 상기 입력 뉴런 개수가 상기 최대 액손 개수를 초과하는 경우, 상기 최대 액손 개수를 고려하여 입력 뉴런 중 일부를 그룹화하는 단계; 생성된 그룹에 대한 스파이크(SPIKE) 출력을 획득하는 단계; 및 상기 스파이크 출력을 상기 그룹에 포함되지 않은 나머지 입력 뉴런과 함께 어느 하나의 노드로 입력하여 처리하는 단계를 포함한다.
Description
본 발명은 대규모 입력 뉴런 처리가 가능한 크로스바 기반의 뉴로모픽 컴퓨팅 기술에 관한 것으로, 특히 인공지능 분야에서 뉴로모픽 하드웨어 및 소프트웨어를 구성하는 기술에 관한 것이다.
현재 많이 연구 되고 있는 인공지능 분야는 약인공지능과 강인공지능으로 세분화할 수 있다. 약인공지능은 어떤 특정한 한가지 분야의 주어진 일을 인간의 지시에 따라 수행하는 인공지능을 말하는데, 요즘 많이 연구되고 있는 DNN(Deep Neural Network)은 약인공지능의 한 방식이다. 강인공지능의 대표적인 연구분야로는 뉴로모픽 컴퓨팅이 있다. 뉴로모픽 컴퓨팅은 뇌의 동작 방식(뉴런과 시냅스의 상관관계)을 하드웨어 형태로 모방한 회로를 만들어 인간의 뇌 기능을 모사하려는 공학 분야이다. 이렇게 만들어진 회로를 뉴로모픽 회로라고 하며, 이 뉴로모픽 회로를 사용하여 인공지능을 만드는 것을 뉴로모픽 컴퓨팅이라고 부른다.
이 방식은 회로 자체가 뉴런과 시냅스 만으로 구성되기 때문에 기존의 머신러닝 방법보다 적은 면적에서 저전력으로 높은 인공지능 시스템을 구성할 수 있다. 즉, 머신러닝은 뇌의 동작을 추상화시켜 CPU나 GPU에서 전체를 동작시키는 것에 반해, 뉴로모픽 컴퓨팅은 뇌의 뉴런 세포 각각을 흉내내어 입력 신호에 반응하는 뉴런 부분만 동작시키면 되기 때문에 머신러닝 방식에 비해 전력소모가 훨씬 적을 것으로 예상한다.
본 발명의 목적은 뉴런에 대한 입력 시냅스가 크로스바의 크기를 초과하는 경우에도 올바른 결과를 낼 수 있는 뉴로모픽 하드웨어 구성을 제공하는 것이다.
또한, 본 발명의 목적은 뉴로모픽 노드의 크로스바를 여러 개 연동하여 신경망을 처리함으로써 기존의 뉴로모픽 컴퓨팅 하드웨어의 제약을 극복하는 것이다.
또한, 본 발명의 목적은 대규모 입력이 발생하는 뉴런을 처리하는 것이다.
상기한 목적을 달성하기 위한 본 발명에 따른 뉴로모픽 컴퓨팅 방법은 크로스바(CROSS-BAR) 기반의 뉴로모픽(NEUROMORPHIC) 컴퓨팅 시스템에서, 하드웨어 기반의 노드(NODE)의 크로스바 크기를 고려한 최대 액손(AXON) 개수와 입력 뉴런(NEURON) 개수를 비교하는 단계; 상기 입력 뉴런 개수가 상기 최대 액손 개수를 초과하는 경우, 상기 최대 액손 개수를 고려하여 입력 뉴런 중 일부를 그룹화하는 단계; 및 생성된 그룹에 대한 스파이크(SPIKE) 출력을 획득하는 단계; 및 상기 스파이크 출력을 상기 그룹에 포함되지 않은 나머지 입력 뉴런과 함께 어느 하나의 노드로 입력하여 처리하는 단계를 포함한다.
이 때, 스파이크 출력은 상기 노드 내의 입력 버퍼(INPUT BUFFER)나 출력 버퍼(OUTPUT BUFFER)를 거치지 않는 바이패스(BYPASS) 경로를 통해 상기 어느 하나의 노드로 전달될 수 있다.
이 때, 스파이크 출력은 상기 어느 하나의 노드와 라우터(ROUTER)로 연결된 다른 노드에서 상기 그룹에 포함된 입력 노드를 처리한 중간 값에 상응하고, 상기 라우터를 통해 상기 어느 하나의 노드의 크로스바로 전달될 수 있다.
이 때, 스파이크 출력은 상기 그룹에 포함된 입력 뉴런 각각에 대한 스파이크를 합한 값에 상응할 수 있다.
이 때, 뉴로모픽 컴퓨팅 시스템을 구성하는 복수의 노드들 각각의 정보를 고려하여 상기 어느 하나의 노드 및 상기 다른 노드를 결정하는 단계를 더 포함할 수 있다.
이 때, 그룹은 상기 그룹에 포함되지 않은 나머지 입력 뉴런과 상기 그룹을 더한 개수가 상기 최대 액손 개수를 초과하지 않도록 생성될 수 있다.
또한, 본 발명의 일실시예에 따른 뉴로모픽 컴퓨팅 장치는 하드웨어 기반의 노드(NODE)의 크로스바(CROSS-BAR) 크기를 고려한 최대 액손(AXON) 개수와 입력 뉴런(NEURON) 개수를 비교하고, 상기 입력 뉴런 개수가 상기 최대 액손 개수를 초과하는 경우, 상기 최대 액손 개수를 고려하여 입력 뉴런 중 일부를 그룹화하고, 생성된 그룹에 대한 스파이크(SPIKE) 출력을 획득하고, 상기 스파이크 출력을 상기 그룹에 포함되지 않은 나머지 입력 뉴런과 함께 어느 하나의 노드로 입력하여 처리하는 프로세서; 및 입력 뉴런 및 상기 스파이크 출력을 저장하는 메모리를 포함한다.
이 때, 스파이크 출력은 상기 노드 내의 입력 버퍼(INPUT BUFFER)나 출력 버퍼(OUTPUT BUFFER)를 거치지 않는 바이패스(BYPASS) 경로를 통해 상기 어느 하나의 노드로 전달될 수 있다.
이 때, 스파이크 출력은 상기 어느 하나의 노드와 라우터(ROUTER)로 연결된 다른 노드에서 상기 그룹에 포함된 입력 노드를 처리한 중간 값에 상응하고, 상기 라우터를 통해 상기 어느 하나의 노드의 크로스바로 전달될 수 있다.
이 때, 스파이크 출력은 상기 그룹에 포함된 입력 뉴런 각각에 대한 스파이크를 합한 값에 상응할 수 있다.
이 때, 프로세서는 뉴로모픽 컴퓨팅 시스템을 구성하는 복수의 노드들 각각의 정보를 고려하여 상기 어느 하나의 노드 및 상기 다른 노드를 결정할 수 있다.
이 때, 그룹은 상기 그룹에 포함되지 않은 나머지 입력 뉴런과 상기 그룹을 더한 개수가 상기 최대 액손 개수를 초과하지 않도록 생성될 수 있다.
본 발명에 따르면, 뉴런에 대한 입력 시냅스가 크로스바의 크기를 초과하는 경우에도 올바른 결과를 낼 수 있는 뉴로모픽 하드웨어 구성을 제공할 수 있다.
또한, 본 발명은 뉴로모픽 노드의 크로스바를 여러 개 연동하여 신경망을 처리함으로써 기존의 뉴로모픽 컴퓨팅 하드웨어의 제약을 극복할 수 있다.
또한, 본 발명은 대규모 입력이 발생하는 뉴런을 처리할 수 있다.
도 1은 크로스바 형태의 시냅스 구현 방식을 이용한 기존의 노드 구성의 일 예를 나타낸 도면이다.
도 2는 본 발명의 일실시예에 따른 대규모 입력 뉴런 처리가 가능한 크로스바 기반의 뉴로모픽 컴퓨팅 방법을 나타낸 동작 흐름도이다.
도 3은 본 발명에 따른 신경망 컴파일 과정의 일 예를 나타낸 도면이다.
도 4는 신경망(SNN)을 노드에 할당하는 기존 방식의 일 예를 나타낸 도면이다.
도 5는 본 발명에 따라 신경망(SNN)을 그룹으로 나누어 노드에 할당하는 일 예를 나타낸 도면이다.
도 6은 본 발명에 따른 하드웨어 기반의 노드 구성의 일 예를 나타낸 도면이다.
도 7는 본 발명의 일실시예에 따른 뉴로모픽 컴퓨팅 방법을 상세하게 나타낸 동작흐름도이다.
도 8은 본 발명의 일실시예에 따른 대규모 입력 뉴런 처리가 가능한 크로스바 기반의 뉴로모픽 컴퓨팅 장치를 나타낸 도면이다.
도 2는 본 발명의 일실시예에 따른 대규모 입력 뉴런 처리가 가능한 크로스바 기반의 뉴로모픽 컴퓨팅 방법을 나타낸 동작 흐름도이다.
도 3은 본 발명에 따른 신경망 컴파일 과정의 일 예를 나타낸 도면이다.
도 4는 신경망(SNN)을 노드에 할당하는 기존 방식의 일 예를 나타낸 도면이다.
도 5는 본 발명에 따라 신경망(SNN)을 그룹으로 나누어 노드에 할당하는 일 예를 나타낸 도면이다.
도 6은 본 발명에 따른 하드웨어 기반의 노드 구성의 일 예를 나타낸 도면이다.
도 7는 본 발명의 일실시예에 따른 뉴로모픽 컴퓨팅 방법을 상세하게 나타낸 동작흐름도이다.
도 8은 본 발명의 일실시예에 따른 대규모 입력 뉴런 처리가 가능한 크로스바 기반의 뉴로모픽 컴퓨팅 장치를 나타낸 도면이다.
본 발명을 첨부된 도면을 참조하여 상세히 설명하면 다음과 같다. 여기서, 반복되는 설명, 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능, 및 구성에 대한 상세한 설명은 생략한다. 본 발명의 실시형태는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위해서 제공되는 것이다. 따라서, 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 크로스바 형태의 시냅스 구현 방식을 이용한 기존의 노드 구성의 일 예를 나타낸 도면이다.
뉴로모픽 컴퓨팅 시스템은 다양한 연구팀에서 하드웨어적으로 다양한 형태로 만들어지고 있다. 이러한 하드웨어들은 두뇌를 최대한 비슷하게 모사하면서도 전력 소모와 성능 관점에서 효율적으로 동작하도록 구현된다.
현재 연구되고 있는 뉴로모픽 컴퓨팅 시스템을 구성하는 방법 중 시냅스를 구현하는 방법은 크게 2가지 형태로 나뉜다.
첫 번째 방식은, 시냅스를 통한 스파이크 전달을 전부 데이터 통신으로 취급함으로써 스파이크 전달을 버스를 통하여 데이터를 주고받도록 하는 방식이다.
두 번째 방식은, 도 1에 도시된 것처럼, 시냅스의 주요 특징을 반영하여 하드웨어를 구성한 크로스바 형태의 시냅스 구현 방식이다.
예를 들어, 뉴런에서 스파이크가 발생하여 다음 뉴런으로 전달될 때, 각 스파이크가 이동하는 시냅스의 특성에 따라 각각의 다음 뉴런에 다른 강도의 스파이크가 전달되게 되는데, 이를 흉내내기 위하여 메모리 기반 크로스바를 사용하여 뉴런 간의 연결인 시냅스를 구현하게 된다.
이 때, 크로스바의 가로축에는 입력뉴런의 액손(axon)들(시냅스 중 프리 시냅틱 뉴런)을 할당한 뒤 크로스바를 통하여 스파이크를 보내게 되고, 크로스바의 세로축에는 스파이크가 도착할 뉴런들(시냅스의 포스트 시냅틱 뉴런)을 할당하여 전체 시냅스를 구성하게 된다. 또한, 가로축과 세로축의 접합부에 메모리 기반의 저항(memristor)을 넣어서 시냅스마다 다르게 적용되는 스파이크 강도를 표현하게 된다.
이 때, 사용되는 크로스바는 물리적으로 크기를 무한정 늘릴 수 없는 한계가 있다. 일반적으로 디코더(decoder) 사이즈 문제, 누설전류 문제 등으로 인해 최대 256 x 256 크기 이하의 크로스바가 주로 사용된다.
문제는 대규모 신경망의 경우, 하나의 뉴런에 대한 입력으로 들어가는 시냅스의 개수가 256개보다 훨씬 많다는 것이다. 즉, 하나의 뉴런에 대한 스파이크 입력이 256개를 넘어갈 경우에는 기존의 방식으로 크로스바에 해당 뉴런을 매핑할 수 없다.
또한, 뉴로모픽 컴퓨팅 시스템에서 신경망을 동작시키는 경우, 작은 계산자원이 모인 형태의 뉴로모픽 하드웨어에서 잘 동작할 수 있도록 신경망을 작게 나누어서 각 자원에 할당할 필요가 있다. 이를 위해, 신경망을 뉴로모픽 시스템을 구성하는 NoC의 노드(node) 상에 매핑될 수 있는 작은 크기의 신경망 그룹으로 나누게 된다.
기존의 신경망을 소그룹으로 나누는 방식은 노드에 할당할 수 있는 뉴런의 개수만을 고려하여 소그룹화 하였다. 하지만, 대규모의 신경망을 사용하는 경우, 하나의 뉴런으로 들어가는 입력이 하나의 노드에 할당할 수 있는 최대 액손(axon) 개수(크로스바의 크기에 비례)를 초과하게 되어, 입력을 해당 노드에 할당할 수 없는 문제가 발생한다.
본 발명에서는 이러한 문제를 해결하기 위하여 뉴로모픽 하드웨어를 구성하는 새로운 방법과 신경망을 컴파일 하여 뉴로모픽 하드웨어에 맞는 신경망으로 그룹화할 경우에 알고리즘 상에서 고려해야 할 부분을 제안하도록 한다.
도 2는 본 발명의 일실시예에 따른 대규모 입력 뉴런 처리가 가능한 크로스바 기반의 뉴로모픽 컴퓨팅 방법을 나타낸 동작 흐름도이다.
도 2를 참조하면, 본 발명의 일실시예에 따른 대규모 입력 뉴런 처리가 가능한 크로스바 기반의 뉴로모픽 컴퓨팅 방법은 하드웨어 기반의 노드(NODE)의 크로스바 크기를 고려한 최대 액손(AXON) 개수와 입력 뉴런(NEURON) 개수를 비교한다(S210).
이 때, 최대 액손 개수란, 하나의 노드에 들어갈 수 있는 뉴런의 입력값의 최대 개수를 의미할 수 있다.
또한, 본 발명의 일실시예에 따른 대규모 입력 뉴런 처리가 가능한 크로스바 기반의 뉴로모픽 컴퓨팅 방법은, 입력 뉴런 개수가 최대 액손 개수를 초과하는지 여부를 판단하고(S215), 입력 뉴런 개수가 최대 액손 개수를 초과하는 경우, 최대 액손 개수를 고려하여 입력 뉴런 중 일부를 그룹화한다(S220).
이 때, 그룹은 그룹에 포함되지 않은 나머지 입력 뉴런과 상기 그룹을 더한 개수가 최대 액손 개수를 초과하지 않도록 생성될 수 있다.
예를 들어, 도 3을 참조하면, 본 발명에 따른 신경망 컴파일러(300)로 신경망(310)과 사용할 하드웨어의 정보(320)를 입력하면, 신경망 컴파일러(300)는 입력된 데이터를 사용하여 신경망 그래프(330)와 하드웨어 그래프(340)를 생성하게 된다.
이 때, 신경망 그래프(330)는 소그룹화되어 재구성될 수 있는데, 각각 군집화된 신경망 그래프(350)는 하드웨어 노드에 할당될 수 있는 형태로 나뉠 수 있다.
만약, 물리적인 크로스바에서 입력으로 받을 수 있는 개수보다 하나의 뉴런에 상응하는 액손(axon)이 많은 경우, 액손을 하드웨어에 할당할 수 있는 형태로 작게 소그룹화하는 과정이 필요하다.
이 때, 도 3에 도시된 매핑 모듈을 이용한 매핑 단계에서는 각각의 소그룹이 하드웨어의 어느 노드에서 처리되는 것이 가장 적합한지를 계산하여 사용될 하드웨어 노드가 결정될 수 있다.
그리고 마지막 단계에서는, 하드웨어에서 수행될 수 있는 형태의 코드로 생성되어 결과물을 출력할 수 있다.
이와 같이 신경망을 작게 그룹화하는 단계에서는 하드웨어적 특징을 고려하여 그룹화를 수행하여야 한다. 즉, 크로스바 기반의 뉴로모픽 컴퓨팅 시스템을 구성하는 하드웨어 노드의 경우, 크로스바 크기에 의한 제약으로 인하여 하나의 하드웨어 노드에 들어갈 수 있는 뉴런의 입력값(axon)의 개수에 한계가 존재하는데, 이러한 부분을 고려하여 그룹화를 수행할 수 있다.
또한, 본 발명의 일실시예에 따른 대규모 입력 뉴런 처리가 가능한 크로스바 기반의 뉴로모픽 컴퓨팅 방법은, 생성된 그룹에 대한 스파이크(SPIKE) 출력을 획득한다(S230).
이 때, 스파이크 출력은 그룹에 포함된 입력 뉴런 각각에 대한 스파이크를 합한 값에 상응할 수 있다.
또한, 본 발명의 일실시예에 따른 대규모 입력 뉴런 처리가 가능한 크로스바 기반의 뉴로모픽 컴퓨팅 방법은, 스파이크 출력을 그룹에 포함되지 않은 나머지 입력 뉴런과 함께 어느 하나의 노드로 입력하여 처리한다(S240).
예를 들어, 도 4는 신경망(SNN)을 노드에 할당하는 기존 방식의 일 예를 나타낸 것이고, 도 5는 본 발명에 따라 신경망(SNN)을 그룹으로 나누어 노드에 할당하는 일 예를 나타낸 것이다.
만약, 도 4에 도시된 것처럼, 뉴런 e(=노드 e)에 연결된 입력 뉴런의 개수 K개가 도 1에 도시된 것처럼 크로스바의 입력 최대치인 M(axon)보다 큰 경우, 해당 뉴런은 노드의 크로스바에 할당할 수 없다.
따라서, 본 발명에서는 도 5에 도시된 것처럼 입력 뉴런의 일부(a~b)를 분할하여 Group 1로 그룹화하고, Group 1을 뉴런 L(=노드 L)에서 처리한 스파이크 값의 합을 중간 값인 t1으로 모아서 나머지 입력 뉴런들로 구성된 Group 2가 있는 뉴런 e로 전달하는 형태로 동작할 수 있다.
이 때, 스파이크 출력은 노드 내의 입력 버퍼(INPUT BUFFER)나 출력 버퍼(OUTPUT BUFFER)를 거치지 않는 바이패스(BYPASS) 경로를 통해 어느 하나의 노드로 전달될 수 있다.
이 때, 스파이크 출력은 어느 하나의 노드와 라우터(ROUTER)로 연결된 다른 노드에서 그룹에 포함된 입력 노드를 처리한 중간 값에 상응하고, 라우터를 통해 어느 하나의 노드의 크로스바로 전달될 수 있다.
예를 들어, 도 6을 참조하면, 본 발명의 일실시예에 따른 뉴로모픽 하드웨어의 노드는 기존 방식에서 사용되는 노드와는 다르게 크로스바의 입력과 출력에 해당하는 각각의 부분에 바이패스(bypass) 경로(610, 620)가 추가되어 라우터(router)와 입력과 출력을 바로 주고받을 수 있는 구조에 상응할 수 있다.
따라서, 본 발명의 일실시예에 따른 노드에 의한 실행 방식은 2가지 형태로 나뉠 수 있다.
첫 번째 형태는, 입력 뉴런 개수가 최대 액손 개수를 초과하지 않아서, 일반적인 신경망의 소그룹을 수행하는 경우로, 이 경우에는 도 6에 도시된 바이패스 경로(610, 620)를 사용하지 않는다.
즉, 첫 번째 형태에서는 SNN cycle마다 입력 버퍼(Input buffer)에서 크로스바로 입력 뉴런을 전달하고, 입력 뉴런이 내부 계산을 거치게 되면서 스파이크가 발생하면 출력 버퍼(Output buffer)에 저장된 이후 라우터(router)를 통해서 외부의 다른 노드로 전달될 수 있다.
하지만, 입력 뉴런 개수가 최대 액손 개수를 초과하는 경우, 다시 말해서 크로스바의 최대 액손 수용량을 초과하여 생성된 신경망의 소그룹을 처리하는 경우에는 도 6에 도시된 바이패스 경로(610, 620)가 사용되는 두 번째 형태로 노드가 실행될 수 있다.
이 때, 원래 신경망에서는 하나의 뉴런으로 입력이 전달되어 처리되므로, 노드로 입력되는 입력 뉴런들도 같은 SNN cycle을 통해 처리되어야 한다. 다시 말해서, 도 5에 도시된 Group 1과 Group 2는 한번의 SNN cycle에서 함께 처리되어야 한다.
이를 위해서는, Group1을 처리하여 생성된 스파이크 출력 t1이 도 6에 도시된 spike outputs으로 모여서 Neural computation, Output buffer(출력 버퍼) 등을 거치지 않고, 바이패스 경로(610)를 통해 바로 라우터(router)로 이동한 뒤 Group2가 할당되어 있는 노드 K-L(=뉴런 K-L)로 전달될 수 있다. 이 후, 노드 K-L(=뉴런 K-L)에서는 라우터를 통해 도착한 t1이 Input buffer(입력 버퍼)를 거치지 않고 바이패스 경로(620)를 통해 바로 크로스바로 전달될 수 있다.
이와 같은 과정을 통해 Group1과 Group2를 한 번의 SNN cycle만으로 계산할 수 있다. 즉, 노드 K-L(=뉴런 K-L)로 t1과 입력 뉴런 c, d의 입력이 다 모이면, 노드 e(=뉴런 e)의 계산을 처리함으로써 해당 뉴런에서 스파이크가 발생하는지 여부에 대해 계산할 수 있다.
또한, 도 2에는 도시하지 아니하였으나, 본 발명의 일실시예에 따른 대규모 입력 뉴런 처리가 가능한 크로스바 기반의 뉴로모픽 컴퓨팅 방법은, 뉴로모픽 컴퓨팅 시스템을 구성하는 복수의 노드들 각각의 정보를 고려하여 어느 하나의 노드 및 다른 노드를 결정한다.
또한, 본 발명의 일실시예에 따른 대규모 입력 뉴런 처리가 가능한 크로스바 기반의 뉴로모픽 컴퓨팅 방법은, 단계(S215)의 판단결과 입력 뉴런 개수가 최대 액손 개수를 초과하지 않으면, 입력 뉴런을 노드의 크로스바로 전달하여 처리함으로써 스파이크가 발생하는지 여부에 대해 계산할 수 있다.
이와 같은 대규모 입력 뉴런 처리가 가능한 크로스바 기반의 뉴로모픽 컴퓨팅 방법을 통해 뉴런에 대한 입력 시냅스가 크로스바의 크기를 초과하는 경우에도 올바른 결과를 낼 수 있다.
또한, 뉴로모픽 노드의 크로스바를 여러 개 연동하여 신경망을 처리함으로써 기존의 뉴로모픽 컴퓨팅 하드웨어의 제약을 극복할 수 있다.
도 7는 본 발명의 일실시예에 따른 뉴로모픽 컴퓨팅 방법을 상세하게 나타낸 동작흐름도이다.
도 7을 참조하면, 본 발명의 일실시예에 따른 뉴로모픽 컴퓨팅 방법은 먼저, 입력 뉴런의 개수를 확인하고(S710), 입력 뉴런의 개수가 노드의 크로스바 크기를 고려한 최대 액손 개수를 초과하는지 여부를 판단할 수 있다(S715).
단계(S715)의 판단결과, 입력 뉴런의 개수가 최대 액손 개수를 초과하면, 최대 액손 개수를 고려하여 입력 뉴런의 일부를 그룹화할 수 있다(S720).
이 후, 노드 A(=뉴런 A)의 크로스바로 그룹에 포함된 입력 뉴런을 전달하여 계산함으로써 그룹에 포함된 입력 뉴런에 의해 발생한 스파이크의 합에 상응하는 스파이크 출력을 생성할 수 있다(S730).
이 후, 노드 A에서 출력 버퍼를 거치지 않는 바이패스 경로를 통해 스파이크 출력을 라우터로 전달하고, 라우터를 통해 그룹에 포함되지 않은 나머지 입력 뉴런이 할당된 노드 B로 스파이크 출력을 전달할 수 있다(S740).
이 후, 노드 B에서 입력 버퍼를 거치지 않는 바이패스 경로를 통해 라우터로 전달된 스파이크 출력을 노드 B의 크로스바로 입력하고(S750), 노드 B의 크로스바로 전달된 모든 값들을 계산 및 처리하여 노드 B에 해당하는 뉴런에서 스파이크가 발생하는지 여부를 확인할 수 있다(S760).
또한, 단계(S715)의 판단결과, 입력 뉴런의 개수가 최대 액손 개수를 초과하지 않으면, 입력 뉴런을 노드의 크로스바로 전달하여 처리함으로써 스파이크가 발생하는지 여부에 대해 계산할 수 있다(S770, S780).
도 8은 본 발명의 일실시예에 따른 대규모 입력 뉴런 처리가 가능한 크로스바 기반의 뉴로모픽 컴퓨팅 장치를 나타낸 도면이다.
도 8을 참조하면, 본 발명의 실시예에 따른 대규모 입력 뉴런 처리가 가능한 크로스바 기반의 뉴로모픽 컴퓨팅 장치는 컴퓨터로 읽을 수 있는 기록매체와 같은 컴퓨터 시스템에서 구현될 수 있다. 도 8에 도시된 바와 같이, 컴퓨터 시스템(800)은 버스(820)를 통하여 서로 통신하는 하나 이상의 프로세서(810), 메모리(830), 사용자 입력 장치(840), 사용자 출력 장치(850) 및 스토리지(860)를 포함할 수 있다. 또한, 컴퓨터 시스템(800)은 네트워크(880)에 연결되는 네트워크 인터페이스(870)를 더 포함할 수 있다. 프로세서(810)는 중앙 처리 장치 또는 메모리(830)나 스토리지(860)에 저장된 프로세싱 인스트럭션들을 실행하는 반도체 장치일 수 있다. 메모리(830) 및 스토리지(860)는 다양한 형태의 휘발성 또는 비휘발성 저장 매체일 수 있다. 예를 들어, 메모리는 ROM(831)이나 RAM(832)을 포함할 수 있다.
따라서, 본 발명의 실시예는 컴퓨터로 구현된 방법이나 컴퓨터에서 실행 가능한 명령어들이 기록된 비일시적인 컴퓨터에서 읽을 수 있는 매체로 구현될 수 있다. 컴퓨터에서 읽을 수 있는 명령어들이 프로세서에 의해서 수행될 때, 컴퓨터에서 읽을 수 있는 명령어들은 본 발명의 적어도 한 가지 측면에 따른 방법을 수행할 수 있다.
프로세서(820)는 하드웨어 기반의 노드(NODE)의 크로스바 크기를 고려한 최대 액손(AXON) 개수와 입력 뉴런(NEURON) 개수를 비교한다.
또한, 프로세서(820)는 입력 뉴런 개수가 최대 액손 개수를 초과하는 경우, 최대 액손 개수를 고려하여 입력 뉴런 중 일부를 그룹화한다.
이 때, 그룹은 그룹에 포함되지 않은 나머지 입력 뉴런과 상기 그룹을 더한 개수가 최대 액손 개수를 초과하지 않도록 생성될 수 있다.
또한, 프로세서(820)는 생성된 그룹에 대한 스파이크(SPIKE) 출력을 획득한다.
이 때, 스파이크 출력은 그룹에 포함된 입력 뉴런 각각에 대한 스파이크를 합한 값에 상응할 수 있다.
또한, 프로세서(820)는 스파이크 출력을 그룹에 포함되지 않은 나머지 입력 뉴런과 함께 어느 하나의 노드로 입력하여 처리한다.
이 때, 스파이크 출력은 노드 내의 입력 버퍼(INPUT BUFFER)나 출력 버퍼(OUTPUT BUFFER)를 거치지 않는 바이패스(BYPASS) 경로를 통해 어느 하나의 노드로 전달될 수 있다.
이 때, 스파이크 출력은 어느 하나의 노드와 라우터(ROUTER)로 연결된 다른 노드에서 그룹에 포함된 입력 노드를 처리한 중간 값에 상응하고, 라우터를 통해 어느 하나의 노드의 크로스바로 전달될 수 있다.
또한, 프로세서(820)는 뉴로모픽 컴퓨팅 시스템을 구성하는 복수의 노드들 각각의 정보를 고려하여 어느 하나의 노드 및 다른 노드를 결정한다.
메모리(830)는 입력 뉴런 및 스파이크 출력을 저장하는
이와 같은 대규모 입력 뉴런 처리가 가능한 크로스바 기반의 뉴로모픽 컴퓨팅 장치를 이용함으로써 뉴런에 대한 입력 시냅스가 크로스바의 크기를 초과하는 경우에도 올바른 결과를 낼 수 있다.
또한, 뉴로모픽 노드의 크로스바를 여러 개 연동하여 신경망을 처리함으로써 기존의 뉴로모픽 컴퓨팅 하드웨어의 제약을 극복할 수 있다.
이상에서와 같이 본 발명에 따른 대규모 입력 뉴런 처리가 가능한 크로스바 기반의 뉴로모픽 컴퓨팅 장치 및 이를 이용한 방법은 상기한 바와 같이 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상기 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.
300: SNN 컴파일러
310: 신경망
320: 하드웨어 정보 330: 신경망 그래프
340: 하드웨어 그래프 350: 군집화된 신경망 그래프
800: 컴퓨터 시스템 810: 프로세서
820: 버스 830: 메모리
831: 롬 832: 램
840: 사용자 입력 장치 850: 사용자 출력 장치
860: 스토리지 870: 네트워크 인터페이스
880: 네트워크
320: 하드웨어 정보 330: 신경망 그래프
340: 하드웨어 그래프 350: 군집화된 신경망 그래프
800: 컴퓨터 시스템 810: 프로세서
820: 버스 830: 메모리
831: 롬 832: 램
840: 사용자 입력 장치 850: 사용자 출력 장치
860: 스토리지 870: 네트워크 인터페이스
880: 네트워크
Claims (12)
- 크로스바(CROSS-BAR) 기반의 뉴로모픽(NEUROMORPHIC) 컴퓨팅 시스템에서,
하드웨어 기반의 노드(NODE)의 크로스바 크기를 고려한 최대 액손(AXON) 개수와 입력 뉴런(NEURON) 개수를 비교하는 단계;
상기 입력 뉴런 개수가 상기 최대 액손 개수를 초과하는 경우, 상기 최대 액손 개수를 고려하여 입력 뉴런 중 일부를 그룹화하는 단계; 및
생성된 그룹에 대한 스파이크(SPIKE) 출력을 획득하는 단계; 및
상기 스파이크 출력을 상기 그룹에 포함되지 않은 나머지 입력 뉴런과 함께 어느 하나의 노드로 입력하여 처리하는 단계
를 포함하는 것을 특징으로 하는 뉴로모픽 컴퓨팅 방법. - 청구항 1에 있어서,
상기 스파이크 출력은
상기 노드 내의 입력 버퍼(INPUT BUFFER)나 출력 버퍼(OUTPUT BUFFER)를 거치지 않는 바이패스(BYPASS) 경로를 통해 상기 어느 하나의 노드로 전달되는 것을 특징으로 하는 뉴로모픽 컴퓨팅 방법. - 청구항 1에 있어서,
상기 스파이크 출력은
상기 어느 하나의 노드와 라우터(ROUTER)로 연결된 다른 노드에서 상기 그룹에 포함된 입력 노드를 처리한 중간 값에 상응하고, 상기 라우터를 통해 상기 어느 하나의 노드의 크로스바로 전달되는 것을 특징으로 하는 뉴로모픽 컴퓨팅 방법. - 청구항 1에 있어서,
상기 스파이크 출력은
상기 그룹에 포함된 입력 뉴런 각각에 대한 스파이크를 합한 값에 상응하는 것을 특징으로 하는 뉴로모픽 컴퓨팅 방법. - 청구항 3에 있어서,
상기 뉴로모픽 컴퓨팅 시스템을 구성하는 복수의 노드들 각각의 정보를 고려하여 상기 어느 하나의 노드 및 상기 다른 노드를 결정하는 단계를 더 포함하는 것을 특징으로 하는 뉴로모픽 컴퓨팅 방법. - 청구항 1에 있어서,
상기 그룹은
상기 그룹에 포함되지 않은 나머지 입력 뉴런과 상기 그룹을 더한 개수가 상기 최대 액손 개수를 초과하지 않도록 생성되는 것을 특징으로 하는 뉴로모픽 컴퓨팅 방법. - 하드웨어 기반의 노드(NODE)의 크로스바(CROSS-BAR) 크기를 고려한 최대 액손(AXON) 개수와 입력 뉴런(NEURON) 개수를 비교하고, 상기 입력 뉴런 개수가 상기 최대 액손 개수를 초과하는 경우, 상기 최대 액손 개수를 고려하여 입력 뉴런 중 일부를 그룹화하고, 생성된 그룹에 대한 스파이크(SPIKE) 출력을 획득하고, 상기 스파이크 출력을 상기 그룹에 포함되지 않은 나머지 입력 뉴런과 함께 어느 하나의 노드로 입력하여 처리하는 프로세서; 및
입력 뉴런 및 상기 스파이크 출력을 저장하는 메모리
를 포함하는 것을 특징으로 하는 뉴로모픽 컴퓨팅 장치. - 청구항 7에 있어서,
상기 스파이크 출력은
상기 노드 내의 입력 버퍼(INPUT BUFFER)나 출력 버퍼(OUTPUT BUFFER)를 거치지 않는 바이패스(BYPASS) 경로를 통해 상기 어느 하나의 노드로 전달되는 것을 특징으로 하는 뉴로모픽 컴퓨팅 장치. - 청구항 7에 있어서,
상기 스파이크 출력은
상기 어느 하나의 노드와 라우터(ROUTER)로 연결된 다른 노드에서 상기 그룹에 포함된 입력 노드를 처리한 중간 값에 상응하고, 상기 라우터를 통해 상기 어느 하나의 노드의 크로스바로 전달되는 것을 특징으로 하는 뉴로모픽 컴퓨팅 장치. - 청구항 7에 있어서,
상기 스파이크 출력은
상기 그룹에 포함된 입력 뉴런 각각에 대한 스파이크를 합한 값에 상응하는 것을 특징으로 하는 뉴로모픽 컴퓨팅 장치. - 청구항 9에 있어서,
상기 프로세서는
상기 뉴로모픽 컴퓨팅 시스템을 구성하는 복수의 노드들 각각의 정보를 고려하여 상기 어느 하나의 노드 및 상기 다른 노드를 결정하는 것을 특징으로 하는 뉴로모픽 컴퓨팅 장치. - 청구항 7에 있어서,
상기 그룹은
상기 그룹에 포함되지 않은 나머지 입력 뉴런과 상기 그룹을 더한 개수가 상기 최대 액손 개수를 초과하지 않도록 생성되는 것을 특징으로 하는 뉴로모픽 컴퓨팅 장치.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210191790A KR20230101577A (ko) | 2021-12-29 | 2021-12-29 | 대규모 입력 뉴런 처리가 가능한 크로스바 기반의 뉴로모픽 컴퓨팅 장치 및 이를 이용한 방법 |
US18/077,099 US20230206048A1 (en) | 2021-12-29 | 2022-12-07 | Crossbar-based neuromorphic computing apparatus capable of processing large input neurons and method using the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210191790A KR20230101577A (ko) | 2021-12-29 | 2021-12-29 | 대규모 입력 뉴런 처리가 가능한 크로스바 기반의 뉴로모픽 컴퓨팅 장치 및 이를 이용한 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20230101577A true KR20230101577A (ko) | 2023-07-06 |
Family
ID=86896760
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020210191790A KR20230101577A (ko) | 2021-12-29 | 2021-12-29 | 대규모 입력 뉴런 처리가 가능한 크로스바 기반의 뉴로모픽 컴퓨팅 장치 및 이를 이용한 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20230206048A1 (ko) |
KR (1) | KR20230101577A (ko) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200026626A (ko) | 2018-09-03 | 2020-03-11 | 성균관대학교산학협력단 | 크로스바 메모리 구조를 이용한 뉴로모픽 소자 |
-
2021
- 2021-12-29 KR KR1020210191790A patent/KR20230101577A/ko not_active Application Discontinuation
-
2022
- 2022-12-07 US US18/077,099 patent/US20230206048A1/en active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200026626A (ko) | 2018-09-03 | 2020-03-11 | 성균관대학교산학협력단 | 크로스바 메모리 구조를 이용한 뉴로모픽 소자 |
Also Published As
Publication number | Publication date |
---|---|
US20230206048A1 (en) | 2023-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Gholami et al. | Integrated model, batch, and domain parallelism in training neural networks | |
US11544539B2 (en) | Hardware neural network conversion method, computing device, compiling method and neural network software and hardware collaboration system | |
Ghosh et al. | Mapping neural networks onto message-passing multicomputers | |
US20190087708A1 (en) | Neural network processor with direct memory access and hardware acceleration circuits | |
US12118453B2 (en) | Neural processing unit capable of reusing data and method thereof | |
US11416737B2 (en) | NPU for generating kernel of artificial neural network model and method thereof | |
Castelló et al. | Analysis of model parallelism for distributed neural networks | |
CN113986816A (zh) | 可重构计算芯片 | |
Véstias | Processing systems for deep learning inference on edge devices | |
Wang et al. | LinSATNet: the positive linear satisfiability neural networks | |
Pu et al. | Block-based spiking neural network hardware with deme genetic algorithm | |
US11461662B1 (en) | Compilation time reduction for memory and compute bound neural networks | |
KR20230101577A (ko) | 대규모 입력 뉴런 처리가 가능한 크로스바 기반의 뉴로모픽 컴퓨팅 장치 및 이를 이용한 방법 | |
Ascia et al. | Networks-on-chip based deep neural networks accelerators for iot edge devices | |
Javaheripi et al. | Swann: Small-world architecture for fast convergence of neural networks | |
Li et al. | Liquid state machine applications mapping for noc-based neuromorphic platforms | |
KR102714536B1 (ko) | 신경 프로세싱 유닛 및 이의 동작 방법 | |
CN118520936B (zh) | 一种面向边缘计算服务器的深度学习优化方法 | |
RamaDevi et al. | Machine learning techniques for the energy and performance improvement in Network-on-Chip (NoC) | |
US20240152738A1 (en) | Neural processing unit and method of operation thereof | |
Su | A binary relation inference network for constrained optimization | |
US20230289563A1 (en) | Multi-node neural network constructed from pre-trained small networks | |
Yousefzadeh et al. | Performance comparison of time-step-driven versus event-driven neural state update approaches in spinnaker | |
Amezcua et al. | Optimization of modular neural networks with the LVQ algorithm for classification of arrhythmias using particle swarm optimization | |
Ghosh et al. | Optically connected multiprocessors for simulating artificial neural networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal |