전체상품목록 바로가기

본문 바로가기



현재 위치

  1. 기술소개

Technology

당사는 뉴런머신(Neuron Machine; NM)이라는 당사 고유의 하드웨어 구조(설계방법론) 기술을 보유하고 있습니다. 그리고 그 기술을 전파하기 위하여 다수의 해외 학술지에 기고하였으며 또한 하나의 예로서 2014년에는 Deep Belief Network 이라는 딥러닝 계산을 수행하는 시스템을 하드웨어 시뮬레이터 상에서 뉴런머신 기술을 적용하여 개발하고 그 소스코드를 공개한 바 있습니다.

뉴런머신 계산 구조 개요

뉴런머신 계산 구조는 계산집약적 계산을 수행하는 컴퓨터 시스템을 설계하는 특수목적 시스템의 설계 방법론입니다. 범용 컴퓨터가 고정된 하드웨어를 가지고 다양한 유형의 계산을 컴파일과 같은 과정을 통해 소프트웨어를 하드웨어 구조에 맞게 변환하여 실행하는 것과는 반대로 뉴런머신 구조는 계산 모델(알고리즘)에 계산 구조를 맞추어 설계함으로써 하드웨어의 효율을 극대화하는 혁신적인 개발 방법론입니다.

뉴런머신의 구성

일반적으로 뉴런머신 시스템은 다음 그림에서 도시하는 바와 같이 하나의 하드웨어뉴런과 네트워크유닛 이라는 장치로 구성됩니다.

<뉴런머신 시스템의 구성도>

하드웨어 뉴런은 쉽게 말하자면 하나의 뉴런을 디지털 회로로 구현한 것에 불과하다고 말할 수 있습니다.
따라서 시스템이 실행하는 인공신경망의 대표적인 뉴런의 각 부위의 계산 과정을 그대로 회로에 반영하여
설계됩니다. 즉, 하드웨어 뉴런은 뉴런의 시냅스에 해당하는 계산을 수행하는 임의의 복수 P 개의 시냅스유닛(Synapse Unit;SNU)과 뉴런의 덴드라이트 부위의 계산을 수행하는 한 개의 덴드라이트 유닛(Dendrite Unit;DU), 그리고 뉴런의 몸통의 계산을 수행하는 한 개의 소마 유닛(Soma Unit;SU)으로 구성됩니다. SNU와 DU와 SU는 순차적으로 연결되어 SNU의 출력이 DU의 입력이 되고 DU의 출력이 SU의 입력이
되며, SNU의 입력과 SU의 출력은 각각 하드웨어 뉴런의 입력과 출력이 되게 되어 NU의 출력과 입력으로
연결됩니다.

하드웨어 뉴런 내의 모든 유닛들은 시스템 클록에 의해 동기화 되는 파이프라인 회로로 설계되며 따라서 하드웨어 뉴런은 하나의 디지털 뉴런에 불과 하지만 신경망 내의 모든 뉴런을 파이프라인 방식으로 시분할로 계산하게 됩니다. 이와 같이 파이프라인 방식으로 설계된 뉴런머신 시스템은 최대 매 클록 주기마다 하나의 뉴런을 계산할 수 있으며 좀 더 정확하게 이야기 하자면 매 클록 주기당 P 개의 연결선을 동시에 계산합니다. 이와 같은 계산 성능은 별것 아닌듯 보이지만 동일한 계산을 일반 프로세서로 계산하려면 수 백, 수 천개의 프로세서가 필요할 수 있는 계산량이 됩니다.

신경망 모델이 복잡해 지면서 뉴런의 계산량이 늘어나더라도 이와 같은 하드웨어 뉴런의 계산 속도는 변하지 않습니다. 다만 하드웨어 뉴런의 회로가 늘어난 계산량 만큼 더 커질 뿐이지요.

하드웨어 뉴런의 이와 같은 계산 성능은 물론 외부에서 입력 데이터와 출력 데이터를 적절히 제공하고 처리 해 줄때에만 가능한 이야기 입니다. 이 데이터의 순환을 보장해 주는 역할은 네트워크 유닛에서 수행하게 됩니다.

네트워크 유닛은 P 개의 메모리 모듈로 구성되며 메모리 모듈 각각은 MM과 MX라는 두 개의 메모리로 구성됩니다. MX 메모리 각각은 읽기 포트와 쓰기 포트가 따로 구비되어 동시에 읽고 쓸 수 있는 듀얼포트 메모리를 사용합니다. 각 모듈에서 MM의 출력은 MX 메모리의 읽기포트의 주소입력으로 연결되고 MX 메모리의 읽기 포트의 출력은 네트워크 유닛의 출력이 되어 SNU의 입력 중 하나로 연결되게 됩니다.

또한 모든 MX 메모리의 쓰기 포트는 공통으로 연결되어 네트워크 유닛의 입력이 되어 SU의 출력과 연결 됩니다. 쓰기 포트가 공통으로 연결되었으므로 모든 MX메모리는 같은 값을 저장하게 되며, 더 상세하게 설명하자면 SU에 의하여 모든 MX의 i번째 주소에는 i번째 뉴런의 출력 값(yi)이 저장되게 됩니다.
MM 메모리에는 뉴런의 번호가 저장되는데, 조금 단순화하여 설명하자면, 모든 MM 메모리의 j번째 주소에는 j번째 뉴런의 입력이 되는 뉴런의 번호가 저장됩니다.
예를 들어 j번째 뉴런의 입력으로 1, 2, 3, 4 번째 뉴런이 각각 연결되고 P = 4 라고 하면 P 개의 MM의 j번째 주소는 {1, 2, 3, 4}가 되며 MM의 출력은 MX의 주소와 연결되므로 MX의 읽기 포트의 출력의 값은 {y1, y2, y3, y4}가 생성되어 j번째 뉴런의 입력으로 SNU에 제공되는 것입니다.

이와 같은 방법으로 MM 메모리의 값에 따라서 모든 뉴런은 모든 다른 뉴런과 연결할 수 있게 됩니다.
MM과 MX메모리도 파이프라인 레지스터를 추가하여 파이프라인 처리를 하면 시스템 클록 주기로 P 개의 시냅스 입력을 제공하고 동시에 한 개의 새로운 뉴런의 값을 저장할 수 있으며 하드웨어 뉴런의 입출력과 완벽하게 매치됩니다.

따라서 이와 같은 방법으로 데이터를 순환 시키면 중간에 데이터의 이동이나 준비 과정을 위해 계산을 중단하는 일이 없이 지속적으로 계산을 수행할 수 있습니다. 이와 함께 시스템 내 모든 연산회로도 쉬는 시간이 없이 지속적으로 가동되게 되는데 이는 연산회로의 가동률이 통상 1%도 안되는 프로세서의 구조와 대비되는 점이라 할 수 있습니다.

<Hodgkin-Huxley 신경망 모델을 계산하는 뉴런머신 시스템 구성도>

뉴런머신의 장점

프로세서 시스템에서는 다중 프로세서의 통신이 성능의 제약 요인이 되는 경우가 많은데 뉴런머신에서는 그와 같은 통신이 단지 메모리를 순서대로 접근하는 방법으로 대체 되어 통신에 의한 오버헤드가 발생하지 않습니다.

신경망 구조의 정보는 오직 MM 메모리에만 저장되고 모든 뉴런은 모든 다른 뉴런에 제약 없이 연결될 수 있으므로 임의의 망구조(topology)를 용이하게 구현할 수 있고 망구조가 성능에 영향을 주지 않습니다. 이는 물리적인 한계로 인하여 망구조에 제약을 가할 수 밖에 없는 VLSI 기반 신경망 시스템과 대비되는 장점입니다.

시냅스 계산을 위한 weight 등의 데이터, 뉴런 각각의 파라미터 등의 많은 정보는 각각 독립적인 메모리에 저장되어 계산 회로와 밀착 연결되므로 방대한 양의 메모리를 메모리 병목현상 없이 접근할 수 있습니다. 이는 하나의 주메모리를 가진 그래픽처리장치와 비교되는 장점입니다.

범용 프로세서에서 계산은 각각이 모든 연산을 수행할 수 있는 범용 연산회로(ALU 또는 SSE, AVX 등)에 의해 계산되므로 연산회로에 투입하여야 하는 하드웨어 자원이 많이 소요 됩니다. 뉴런머신 구조에서는 계산 알고리즘에서 요구하는 최소한의 계산 회로만 사용할 수 있습니다.
예를 들어 통상 덧셈은 곱셈보다 훨씬 간단한 회로로 구현할 수 있는데 뉴런머신은 이런 용도에 맞추어 설계하지만 프로세서는 곱셈과 덧셈을 함께 할 수 있는 연산회로에서 계산할 수 밖에 없습니다.

특정 시점에 계산은 많은 수의 파이프라인 단계 각각에서 동시에 이루어 지고, 또한 많은 수의 시냅스유닛에서 복수 개의 연결선이 동시에 계산 됨으로 인해서 m x n 개의 방대한 병렬성을 얻을 수 있습니다.

대규모 시스템으로 구현하더라도 전체 회로는 간단하고 Uniform하며 운용하기가 용이합니다. 이에 비해 기존의 멀티프로세서 시스템은 시스템을 동기화 시키고 제어하기 위해 복잡한 제어 체계를 갖추어야 하는 어려움이 있었습니다.

PUBLICATIONS

당사 대표는 2012년에 다중계층 퍼셉트론을 계산하는 뉴런머신 시스템을 논문[1]으로 발표한 것을 시작으로, 2013년에는 복잡한 스파이킹 신경망 모델[2]과 딥러닝 모델의 근간을 이루는 역전파 모델[3], 2014년에는 Deep Belief Network이라는 딥러닝 모델[4]을 각각 확장된 뉴런머신 구조로 구현하여 발표하였습니다.
또한 2015년에는 생물학적 뉴런을 정확하게 시뮬레이션하는 Hodgkin-Huxley 뉴런의 대규모 네트워크를 시뮬레이션[5]하였고 또한 딥러닝 콘볼루션 신경망을 비디오 물체 인식[6]에 적용하여 논문으로 발표한 바 있습니다.

이와 같이 구현한 뉴런머신 시스템의 계산 성능은 놀라움을 금하기 어려운 것이었습니다. 아래는 중급 FPGA 칩을 이용하여 Deep Belief Network를 뉴런머신 하드웨어 구조로 구현한 뉴런머신 시스템을 다른 시스템과 비교한 자료입니다.

<Deep Belief Network 시스템의 성능 비교>

Ref. Type Internal Clock
(Hz)
Speed
(CUPS)
Speedup
over PC
Ours FPGA Xilinx Kintex 7 200M 1.9G 121x
GPU NVIDIA GeForce 460 (336) 720M 721M 46x
GPU NVIDIA GTX 280 (240) 1.3G 672M 43x
CPU Intel i5-2410M (2) 2.3G 15.7M 1x
CPU Intel Core2 Quad core 2.83G 10.2M 0.7x

다음 표는 Hodgkin-Huxley 두뇌시뮬레이션 시스템을 비교한 것입니다.

<HH시스템의 성능 비교>

Ref. Type Internal Clock
(Hz)
Speed
(CUPS)
Speedup
over PC
Ours FPGA Xilinx Kintex 7 200M 196M 1,241x
GPU NVIDIA C2050 1.2G 4.4M 28x
GPU NVIDIA Telsa S1070 602M 2.5M 16x
GPU NVIDIA Telsa S1070 602M 2.3M 15x
FPGA Xilinx Virtex 7 200M 1.9M 12x
CPU Intel Xeon Quad 2.7G 158K 1x

뉴런머신 시스템의 성능은 CPU 뿐 아니라 GPU 조차도 큰 폭으로 앞서고 있는 것을 확인하실 수 있습니다.

저희는 이와 같은 뉴런머신의 구조가 인공신경망에 국한되지 않고 모든 수퍼컴퓨팅 응용에 적용이 가능하다고
믿고 있습니다.

References

[1] B. Ahn, “Neuron machine: Parallel and pipelined digital neurocomputing architecture,” in Computational Intelligence and Cybernetics (CyberneticsCom), 2012 IEEE International Conference on, 2012, pp. 143-147.

[2] B. Ahn, “Extension of neuron machine neurocomputing architecture for spiking neural networks,” presented at the International Joint Conference on Neural Networks (IJCNN2013), 2013.

[3] B. Ahn, “Computation of Backpropagation Learning Algorithm Using Neuron Machine Architecture,” in Computational Intelligence, Modelling and Simulation (CIMSim), 2013 Fifth International Conference on, 2013, pp. 23-28.

[4] B. Ahn, “Computation of Deep Belief Networks Using Special-Purpose Hardware Architecture,” International Joint Conference on Neural Networks, 2014.

[5] B. Ahn, “Neuron-like Digital Hardware Architecture for Large-scale Neuromorphic Computing,” International Joint Conference on Neural Networks, 2015.

[6] B. Ahn, “Real-Time Video Object Recognition Using Convolutional Neural Network,” International Joint Conference on Neural Networks, 2015.