논문요약: TrueNorth: Design and Tool Flow of a 65mW 1Million Neuron Programmable Neurosynaptic Chip
TrueNorth Architecture는 뇌의 구조를 따서 만든
아키텍처로 칩 하나에 64*64개의 코어가 들어가고 코어 하나에
256개의 뉴런이 256개의 axon과 64K개의 시냅스를 형성하는 구조로 이루어져 있다.
하나의 코어는 외부에서 들어온 spike를 받고 코어에서 만든 spike를 내보내는 router와,
외부에서 온 spike를 저장해두고 정해진 타이밍에 발현시키는 scheduler, 뉴런의 상태(potential, synaptic
connectivity, weight value, leak value, threshold value 등)를 저장하는 core SRAM, input spike에 따른 potential을 계산하는 Neuron block, 그리고 모든 block을 제어하는 token controller로 구성되어 있다. Router를 통해 외부, 혹은 같은 코어에서 spike가 들어오게 되면 spike를 scheduler가 저장해둔다. 모든 코어에는 synchronization을 위해 1KHz의 low frequency clock이 들어가는데, tick이 코어에
들어오면 Token Controller는 해당 tick에
활성화할 spike를 scheduler로부터 받아온다. Token Controller는 뉴런 하나하나의 synaptic
connectivity 정보를 가져와서 connection이 있는 axon으로부터 spike가 전달되었나 확인한다. 뉴런과 connection이 있는 axon으로부터 spike가 전달되었다면 그 뉴런의 potential은 spike로 인해 변해야 하므로 Token Controller는 Neuron block에게 high frequency clock signal을 줘서 potential을
계산한다. 계산된 potential은 Core SRAM에 저장하는 한편, Router를 통해 해당 뉴런과
연결된 다른 뉴런의 input으로 전달된다.
이렇듯 모든 코어에는 low frequency global clock만이
들어오고 있지만, input spike가 들어오지 않으면 tick이
들어와도 computation unit(neuron)이 작동하지 않기에 event-driven하다고 할 수 있다. 또한 control signal과 spike는 clock과 상관없이 asynchronous하게 들어오기에 Router, scheduler, token controller는 asynchronous하게
작동하고, Neuron block과 Core SRAM은 Token Controller로부터 받은 clock에 의해 작동하기에
synchronous하다. 이러한 event-driven + sync-async의 조합은 Core의 각
유닛이 꼭 필요한 순간에만 작동하게 하고 따라서 power consumption를 상당히 낮춰준다.
TrueNorth는 power
consumption 측면 말고도 parallelism, scalability 측면에서도
강점을 갖는다. TrueNorth는 폰노이만 아키텍처에서 벗어났기에 각각의 Core는 독립적인 데이터를 사용하고 사실상 dependency 없이
각자 작동하기에 Parallelism을 극대화한다.
또한 TrueNorth는 spike를 다른 뉴런으로 전달하는 network 방식에 있어서 source core와 destination Core의 x, y 평면상 상대좌표를 찍는 방식으로 규모가 커져도 커뮤니케이션 방식에 변화를 줄 필요가 없어 scalability가 높다.
위와 같이 TrueNorth 아키텍처는 낮은 power, 높은 Parallelism 때문에 저전력으로도 높은 퍼포먼스를
낼 수 있고, 확장성 또한 커서 저전력의 모바일용 칩부터 대규모 인공두뇌 구축까지 두루 쓰일 수 있다.
Contribution
l Low-Power
각 코어는 뉴런에 spike가 들어오기 전엔 1kHz의 low speed clock으로 동작하다가 event가 발생했을 때만 local에서 high speed clock signal을 만들어 computation을 실시한다. 이런 event driven한 성격의 아키텍처를 통해 power consumption을 크게 줄였다.
각 코어는 뉴런에 spike가 들어오기 전엔 1kHz의 low speed clock으로 동작하다가 event가 발생했을 때만 local에서 high speed clock signal을 만들어 computation을 실시한다. 이런 event driven한 성격의 아키텍처를 통해 power consumption을 크게 줄였다.
l parallelism
TrueNorth는 각 코어마다 독립적인 memory를 두어 input spike와 local memory의 데이터만을 가지고 동작하고 그렇기에 모든 코어는 같은 순간에 독립적으로 작동한다. 이런 특성을 통해 parallelism을 크게 높이고 아키텍처의 performance를 크게 향상시켰다.
TrueNorth는 각 코어마다 독립적인 memory를 두어 input spike와 local memory의 데이터만을 가지고 동작하고 그렇기에 모든 코어는 같은 순간에 독립적으로 작동한다. 이런 특성을 통해 parallelism을 크게 높이고 아키텍처의 performance를 크게 향상시켰다.
l Scalability
모든 core는 독립적인 memory를 이용하기에 dependency를 갖지 않고, network 방식에 있어서도 source core와 destination Core의 x, y 평면상 상대좌표를 찍는 방식으로 spike를 주고 받기에 규모 커져도 커뮤니케이션 방식에 변화를 줄 필요가 없어서 규모가 커짐에 따른 오버헤드가 작다.
모든 core는 독립적인 memory를 이용하기에 dependency를 갖지 않고, network 방식에 있어서도 source core와 destination Core의 x, y 평면상 상대좌표를 찍는 방식으로 spike를 주고 받기에 규모 커져도 커뮤니케이션 방식에 변화를 줄 필요가 없어서 규모가 커짐에 따른 오버헤드가 작다.
발생 가능한 문제점
l global synchronization clock
TrueNorth에서는 1kHz의 global clock을 쓰는데 여기엔 적어도 모든 spike signal이 1ms안에 다른 코어로 도착해야 함을 내포함.
시스템의 규모가 커져서 path가 길어지거나 네트워크가 혼잡해지는 등의 원인으로 core to core communication의 worst case latency가 1ms를 넘게 되면 global clock의 frequency를 낮춰야 하고 이는 전체 시스템의 성능을 저하시킴
TrueNorth에서는 1kHz의 global clock을 쓰는데 여기엔 적어도 모든 spike signal이 1ms안에 다른 코어로 도착해야 함을 내포함.
시스템의 규모가 커져서 path가 길어지거나 네트워크가 혼잡해지는 등의 원인으로 core to core communication의 worst case latency가 1ms를 넘게 되면 global clock의 frequency를 낮춰야 하고 이는 전체 시스템의 성능을 저하시킴
l Network
TrueNorth는 Core to Core 커뮤니케이션에 있어서 source core와 destination core의 x, y상 상대좌표를 이용해 통신을 함. 이때 패킷은 dx, dy에 각각 9bit씩 할당하는데 이는 -256 ~ +255의 범위를 갖는다. 즉 한쪽 방향으로 최대 4chip (4*64)만큼 이동할 수 있고 더 큰 범위의 network를 형성하려면 중간에 도착한 다른 코어에서 패킷을 새로 만들어 destination에 전송해야 함. 이 때 1tick을 소모하게 되는데 이는 심각한 문제를 발생시킬 수 있음. 예를 들어 한쪽 방향으로 64chip만큼 떨어진 core에 spike를 보낼 경우 16tick 후에 destination에 도착하는데 이는 spike 생성 후 다음 뉴런에 대한 spike의 발현 타이밍을 16tick 안으로 둘 수 없음을 의미함. 이는 scale이 커졌을 때 신경망을 구성하는데 제약이 발생함을 뜻한다. 규모가 더 커졌을 때를 대비한 network가 필요하다고 생각함.
논문링크: http://ieeexplore.ieee.org/document/7229264/
TrueNorth는 Core to Core 커뮤니케이션에 있어서 source core와 destination core의 x, y상 상대좌표를 이용해 통신을 함. 이때 패킷은 dx, dy에 각각 9bit씩 할당하는데 이는 -256 ~ +255의 범위를 갖는다. 즉 한쪽 방향으로 최대 4chip (4*64)만큼 이동할 수 있고 더 큰 범위의 network를 형성하려면 중간에 도착한 다른 코어에서 패킷을 새로 만들어 destination에 전송해야 함. 이 때 1tick을 소모하게 되는데 이는 심각한 문제를 발생시킬 수 있음. 예를 들어 한쪽 방향으로 64chip만큼 떨어진 core에 spike를 보낼 경우 16tick 후에 destination에 도착하는데 이는 spike 생성 후 다음 뉴런에 대한 spike의 발현 타이밍을 16tick 안으로 둘 수 없음을 의미함. 이는 scale이 커졌을 때 신경망을 구성하는데 제약이 발생함을 뜻한다. 규모가 더 커졌을 때를 대비한 network가 필요하다고 생각함.
논문링크: http://ieeexplore.ieee.org/document/7229264/
댓글
댓글 쓰기