뉴로모픽 컴퓨팅(Neuromorphic Computing)은 인간 뇌의 신경망 구조를 하드웨어로 모방해 에너지 효율적인 AI 연산을 수행하는 컴퓨팅 패러다임이다.
뉴로모픽 vs 폰 노이만 아키텍처
| 구분 | 폰 노이만 | 뉴로모픽 |
|---|
| 구조 | CPU+메모리 분리 | 메모리-연산 통합 |
| 병목 | 메모리 버스 | 거의 없음 |
| 에너지 | mW~W (유휴 시도) | μW 수준 |
| 연산 방식 | 동기식 클럭 | 비동기 이벤트 (스파이크) |
| 학습 | 소프트웨어 | 하드웨어 내 STDP |
스파이킹 신경망 (SNN)
생물학적 뉴런 모방:
- 평소: 막전위(membrane potential) 충전
- 임계값 도달: 스파이크 발사 (1-bit 이벤트)
- 발사 후: 불응기 (refractory period)
에너지 효율:
- 스파이크가 발생할 때만 연산 수행
- 희소 활성화 → 낮은 에너지 소모
STDP (Spike-Timing-Dependent Plasticity):
- 전처리 뉴런이 후처리 뉴런보다 먼저 발사: 연결 강화
- 후처리가 먼저 발사: 연결 약화
→ 비지도 학습 메커니즘
주요 뉴로모픽 칩
| 칩 | 제조사 | 뉴런 수 | 에너지 | 특징 |
|---|
| Loihi 2 | Intel | 1M | ~1mW | 128코어, LSNN 지원 |
| TrueNorth | IBM | 1M | 70mW | 4096코어, 병렬 처리 |
| BrainScaleS | Heidelberg | 512 | ~1W | 아날로그 회로 |
| SpiNNaker2 | Manchester | 152M | 1W | ARM 기반 |
PyNN (뉴로모픽 시뮬레이션)
python
import pyNN.nest as sim
sim.setup(timestep=0.1)
# 뉴런 집단 생성
excitatory = sim.Population(100, sim.IF_cond_exp,
{'tau_m': 20.0, 'v_thresh': -50.0})
inhibitory = sim.Population(25, sim.IF_cond_exp,
{'tau_m': 20.0, 'v_thresh': -50.0})
# 시냅스 연결 (STDP)
stdp = sim.STDPMechanism(
timing_dependence=sim.SpikePairRule(tau_plus=20.0, tau_minus=20.0),
weight_dependence=sim.AdditiveWeightDependence(w_min=0, w_max=0.04))
sim.Projection(excitatory, inhibitory,
sim.FixedProbabilityConnector(0.1), synapse_type=stdp)
sim.run(1000) # 1초 시뮬레이션
관련 문서