2018.09.27

김진철의 How-to-Big Data | 빅데이터와 인공지능 (4)

김진철 | CIO KR

LHC 실험과 뉴로모픽 엔지니어링
LHC 실험과 같은 거대과학 실험 장치는 건설에만 10~20년이 걸리고, 대량 생산을 위한 물건이나 장치를 만드는 일이 아닌 세계에서 하나뿐인 실험 장치를 만드는 일이다 보니 큰 비용이 들고 그에 따르는 위험 부담도 크다. 이런 거대과학 실험에서는 종종 이 실험 장치의 건설과 운영에 필요한 긴 기간이 새로운 과학적, 기술적 발견과 진보의 계기가 되기도 한다.

LHC 실험의 요구사항도 실험 계획 초반과 LHC 가속기 완공 시점, 그리고 지금의 요구사항이 모두 다르다. 사실은 LHC 가속기가 건설되고 운영되는 과정에서 가속기와 검출기, 그리고 실험에서 요구되는 기술적인 요구 사항의 수준이 계속 높아져 왔다. 특히 실험 데이터 분석에 필요한 데이터의 양과 처리 속도, 복잡성의 정도는 크게 높아지고 있다. 지난 연재에서도 소개했듯이 고광도 LHC(High-Luminosity LHC; HL-LHC)로 LHC 가속기가 업그레이드되면 검출기에서 발생하는 데이터의 양이 기하급수적으로 증가하게 되는데, 2019년에는 2016년에 생성된 데이터의 4배에 이르는 293PB, 2028년에는 2016년에 생성된 데이터의 52배에 이르는 3.8EB에 이를 것으로 추정된다. 이는 LHC 실험이 계획되던 1992년에는 검출기 데이터가 1PB, 그리고 LHC 가속기가 완공되던 시점인 2008년도에는 연간 15PB로 데이터양이 추정되던 것에 비교하면 급격하게 빅데이터 요구 사항의 수준이 높아지고 있다.

LHC 실험의 요구 사항이 이렇게 지속해서 높아지는 배경에는 여러 가지 요소가 있는데, 그중에서 중요한 것은 실험이 진행되면서 근본 입자들에 조사해야 할 물리학적 질문들이 더 많아지고 복잡해지는 것과, LHC 가속기에 쓰이는 기술이 정체되어 있지 않고 더 향상되고 발전한다는 것이다.

1992년 당시에도 통계적 패턴 인식 기술을 포함해 사람의 두뇌를 모방하려는 뉴로모픽 VLSI 프로세서 기술이 있었으나 딥러닝과 딥러닝 전용 프로세서, 새로운 뉴로모픽 프로세서들이 쏟아져 나오는 요즘과 비교하면 그 기술의 수준과 복잡도가 매우 낮았다. LHC 실험이 계획되던 1992년의 컴퓨팅 기술과 딥러닝 및 인공지능 기술, 새로운 프로세서와 메모리 기술이 급격하게 발전하는 2018년을 비교해보면, 현재의 기술로 LHC 실험에서 탐구할 수 있는 물리학적 현상의 범위와 깊이가 훨씬 더 넓고 깊다. 이런 이유로 LHC 가속기와 검출기들은 3단계에 걸쳐서 업그레이드되고, 이런 장치 업그레이드를 통해 탐구하려는 입자 물리학적 현상과 그 원리의 범위를 더 넓혀가고 있다.

최근 컴퓨팅 프로세서 기술의 발전은 다양화되고 그 발전 정도도 급격하게 빨라지고 있다. 딥러닝 때문에 주목받기 시작한 GPGPU 기술은 엔비디아의 주도로 1~2년 만에 GPGPU 프로세서 안에 집적되는 연산 코어가 2배 가까이 증가하여 현재 출시된 볼타(Volta)아키텍처 기반의 GPGPU는 테슬라(TESLA) 제품의 경우 GPU 하나당 32비트 유동 연산 코어가 5120개로 그 이전 제품인 파스칼(Pascal) GPU의 3584개에 비해 2배 가까이 많아졌다. 비록 최근에 생산이 중지되기는 했지만, GPGPU에 맞서 인텔이 내놓았던 나이츠 랜딩(Knights Landing) CPU의 경우에는 옴니패스(OmniPath)라는 고성능 네트워크 인터페이스가 내장되고 72코어의 연산 코어가 집적되었다.

딥러닝 연산을 모바일 장치에서 가속하여 다양한 인공지능 응용 프로그램을 지원하기 위한 프로세서들이 개발되었는데, 대표적인 것으로 무선통신 칩기술로 유명한 퀄컴의 신경 처리 유닛(Neural Processing Unit; NPU)이 스냅드래곤 칩에 적용되기 시작하였으며, 구글은 딥러닝에 많이 쓰이는 텐서 연산을 가속하기 위한 텐서 프로세싱 유닛(Tensor Processing Unit; TPU)이라는 딥러닝 전용 프로세서를 개발하였다. 이번 연재에서 소개할 IBM의 트루노스(TrueNorth) 프로세서와 MIT에서 개발한 저전력 딥러닝 전용 프로세서인 아이리스(Eyeriss)는 딥러닝 연산에 적합하도록 아예 집적회로 수준의 아키텍처를 새롭게 설계한 프로세서 기술이다(그림 1).

IBM의 트루노스와 MIT 아이리스 프로세서와 함께 딥러닝의 선구자인 뉴욕대의 얀 르쿤 교수는 컨볼루션 신경망 연산 전용 프로세서인 뉴플로우(NeuFlow)라는 프로세서를 개발하기도 하였다. 스탠포드 대학교에서는 뉴로모프(Neuromorph)와 브레인스톰(Brainstrom)이라는 뉴로모픽 프로세서 기술을, 영국 맨체스터 대학이 주도하는 인간 브레인 프로젝트(Human Brain Project)는 스피네이커(Spinnaker)라는 뉴로모픽 프로세서를 개발하였다. 독일의 하이델베르그 대학에서는 신경망 회로에 유연성을 제공할 수 있는 신경가소성(neuroplasticity)을 모델링한 아날로그 뉴로모픽 프로세서인 스파이키(Spikey)를 개발하기도 하였다(그림 2).

최근에는 구글을 중심으로 양자 컴퓨팅 프로세서를 기계 학습 기술에 적용하려는 연구도 진행되고 있다. 양자 컴퓨터를 처음으로 상용화하여 판매하기 시작한 캐나다의 디웨이브 시스템즈(D-Wave Systems)의 양자 컴퓨터는 2010년 출시한 첫 제품 D-Wave One 시스템 때에는 256큐빗 연산을 할 수 있었으나, 현재 제품인 D-Wave 2000Q 시스템은 2048큐빗 연산을 수행할 수 있다. 양자 컴퓨팅을 이용한 딥러닝 및 기계 학습 기술의 급격한 발전이 곧 눈앞에 현실이 될 것으로 보인다.



최근 LHC 연구자들은 이렇게 급격하게 발전하는 컴퓨팅 프로세서 기술들을 LHC 빅데이터 처리에 활용하기 위한 연구를 진행하고 있다. 특히, 딥러닝을 이용한 이벤트 데이터 필터와 재구성 연산을 위해 인텔 제온 파이 프로세서와 같은 매니코어 CPU와 엔비디아의 GPGPU를 활용하는 연구는 매우 활발하게 진행되고 있다. 최근에는 뉴로모픽 프로세서를 검출기의 레벨 1(Level-1) 트리거에 적용하여 중요한 입자 물리학적 이벤트의 검출 확률을 높이려는 연구도 수행하고 있다. 이번 글에서는 IBM에서 개발한 트루노스(TrueNorth) 뉴로모픽 프로세서를 이용해 레벨 1(Level-1) 트리거의 이벤트 재구성 연산에서 중요하게 쓰이고 있는 칼만 필터(Kalman Filter)의 성능을 높이려는 연구를 한 결과를 간단하게 소개해보려고 한다[13-14].



LHC 가속기의 네 개의 대표적인 검출기 중 하나인 아틀라스(ATLAS) 검출기는 CMS와 함께 LHC 검출기를 대표하는 두 대의 다목적 범용검출기이다. 예전의 다섯번째, 열두번째 글에서 소개한 바와 같이, 입자의 궤적을 기록하기 위해 ATLAS 및 CMS 검출기에서 실리콘 픽셀 검출 장치를 사용한다. ATLAS 검출기의 경우 트래커의 구조는 조금 더 복잡해서, 픽셀 검출기(pixel tracker), 실리콘 스트립 검출기(semiconductor silicon-strip tracker; SCT), 전이 방사 추적기(Transition Radiation Tracker; TRT)로 구성되어 있으며, 이들 세 트래커 구성요소를 합쳐 배럴 내부 트래커(Barrel Inner Tracker)라고 한다[13].

이들 트래커 센서에 입자들이 지나면서 발생하는 전기 신호를 수집한 데이터는 단순한 점들의 집합이다. 이들 점들을 클러스터링하여 같은 입자에서 발생한 궤적, 이벤트로 재구성하고 연결하는 작업을 레벨-1(Level-1) 트리거의 전자회로와 임베디드 컴퓨팅 장비에서 수행하게 된다. 픽셀 검출기, 실리콘 스트립 검출기의 세 개의 점들을 이용해 입자의 이벤트를 재구성하기 위한 씨앗(seed) 이벤트 신호를 구성하게 되는데, 이때 만드는 씨앗 이벤트 데이터를 세 개의 데이터 포인트로 구성된다고 해서 트리플렛(triplet)이라고 한다.

트리플렛으로 구성된 씨앗 데이터를 이용해 픽셀 검출기, 실리콘 스트립 검출기, 전이 방사 추적기의 배럴 내부 트래커의 모든 센서 레이어에 기록된 데이터 점들을 이어 이벤트로 재구성하게 되는데, 이때 씨앗 데이터를 이용해 데이터 점들을 이어 이벤트로 재구성하기 위해 조합 칼만 필터(combinatorial Kalman filter)를 사용하게 된다.

칼만 필터는 선형 매트릭스 연산을 통해 재귀적으로 정의되어 임베디드 시스템에서 구현되어도 연산에 많은 리소스가 필요하지 않다는 장점이 있으며, 요즘 딥러닝으로 다시 알려진 신경망 알고리즘과의 관계가 명확하고 신경망을 칼만 필터 알고리즘으로 표현하기 쉽다는 장점이 있어서 임베디드 시스템에서 고급 신호 처리에 많이 쓰이는 알고리즘이다.

스톡홀름 대학의 레베카 카니(Rebecca Carney) 박사는 미국 로런스 버클리 국립 연구소(Lawrance Berkeley National Laboratory)의 ATLAS 실험 그룹과 IBM 트루노스(TrueNorth) 개발팀의 지원으로 IBM에서 개발한 뉴로모픽 프로세서인 트루노스(TrueNorth)를 이용해 위에서 설명한 ATLAS 검출기의 배럴 내부 트래커의 이벤트 재구성에 쓰이는 조합 칼만 필터 연산을 구현하는 프로젝트를 진행하였다. 그 결과가 최근 그녀의 학위 논문과 2017년 프랑스 오르세이 소재 국립 선형 가속기 연구소에서 열린 지능형 트래커 검출기 공동 학술회의(Connecting the Dots/Intelligent Tracker 2017)에서 발표되었는데, 그 결과를 간단하게 소개하면서 뉴로모픽 프로세서가 LHC 빅데이터 처리에 가지는 의미를 간단하게 살펴보자.



IBM의 트루노스 뉴로모픽 프로세서는 미국 방위고등연구계획국(Defense Advanced Research Projects Agency; DARPA)의 '시냅스(SyNAPSE)' 프로그램을 통해 IBM에서 개발되었다. 트루노스 프로세서는 인간의 두뇌가 수행하는 연산을 좀더 효율적으로 저전력으로 수행하는 신경모방(neuromorphic) 연산 아키텍처를 새롭게 만들어보고자 하는 목표로 디자인되고 만들어졌으며, 이런 이유로 최근 많이 나오고 있는 딥러닝 전용 가속 프로세서와 유사한 용어를 사용하기는 하지만, 그 구현 아키텍처는 전혀 다른 모습을 가지고 있다.

IBM의 트루노스 프로세서는 그림 3과 4에서 보이는 것과 같이 NS1e 보드에 장착되어 하나의 컴퓨터 모듈로서 동작하며, 연산과 모듈을 제어하는 로직이 탑재된 ZYNQ SoC FPGA 칩과 Ethernet, USB, UART 등의 통신 인터페이스, 그리고 트루노스 프로세서와 트루노스 프로세서가 구동하기 위해 필요한 기타 회로와 버스로 구성되어 있다.

트루노스 프로세서는 트루노스 코어가 가로 64개, 세로 64개의 정방형 격자 형태로 배치되어 있고, 각 트루노스 코어는 내부 통신 패브릭을 통해 서로 연결되어 있다. 하나의 트루노스 코어는 연산 결과를 저장하기 위한 메모리 모듈, 연산 과정을 제어하기 위한 제어 모듈(Controller), 연산 명령 수행에 필요한 자원(resource)를 할당해주는 스케줄러(Scheduler) 모듈, 그리고 신경계의 동작을 모방한 뉴런(Neuron) 모듈과 뉴런 간 데이터 교환 경로를 만들고 스위치해주는 라우터(Router)로 구성되어 있다. 하나의 트루노스 코어에서 통 256개의 뉴런과 축색돌기 또는 액손(Axon)만을 만들 수 있기 때문에, 이보다 큰 신경망을 트루노스에서 연산시키기 위해서는 트루노스 코어 간에 신경망 연산 모델을 병렬로 배치하고 병렬 연산을 하도록 특별하게 프로그래밍해주어야 한다.

보통 뉴로모픽 프로세서는 신경 세포가 만드는 전기 신호인 활동 전위(action potential)와 그 활동 전위가 신호로서 다루어지게 되는 스파이크(spike) 신호의 생성 및 처리를 아날로그 회로로 구현하는 경우가 많다. 그러나, 트루노스 프로세서는 신경계의 작동 기전(mechanism)중 스파이크 신호의 기전만을 차용해 신호는 스파이크 형태의 신호로 내보내고, 신경회로는 뉴런, 액손, 그리고 뉴런과 액손을 연결해서 시냅스를 구현하는 크로스바(cross-bar)라고 불리는 요소들을 디지털 회로로 구현해 신경계의 정보처리를 모방하도록 설계하였다(그림 5).



스톡홀름 대학의 레베카 카니 박사는 트루노스 프로세서 개발 도구인 “코어렛 개발 환경(Corelet Programming Environment; CPE)”라 불리는 하드웨어 기술 언어(Hardware Description Language; HDL)와 트루노스 뉴로-시냅틱 시뮬레이터(TrueNorth Neuro-Synaptic Simulator; NCSC), 그리고 MATLAB을 사용하여 프로그램하였다.

트루노스는 원래 딥러닝을 지원하기 위해 딥러닝 개발 프레임워크로 잘 알려진 Caffe의 확장 버전인 Tea를 지원하였으나, 2016년부터는 Tea에 대한 지원을 중단하고 “에너지 효율적인 심층 뉴로모픽 네트워크(Energy-Efficient Deep Neuromorphic Network; Eedn)”이라 불리는 새로운 딥러닝 개발 도구를 이용해 심층신경망과 딥러닝을 트루노스 프로세서에서 연산할 수 있도록 지원하기 시작하였다. 레베카 카니 박사는 이 Eedn이라 불리는 딥러닝 개발 도구는 사용하지 않았다. 트루노스의 특성상 Eedn을 통한 딥러닝 연산 성능을 평가하는 연구도 흥미로운 주제였을 것으로 보이지만 앞으로 후속 연구가 진행될 것으로 보인다[14].


 


레베카 카니 박사는 ATLAS 검출기에서 사용하는 칼만 필터 모델을 아주 단순화한 모델로 표현하여 그림 5에 나타난 칼만 필터 연산을 위에서 소개한 CPE와 NCSC를 이용해 개발, 평가하였다. 그 결과를 요약하면 다음과 같다[13].

1. 칼만 필터 연산을 트루노스 아키텍처로 구현하고, 칼만 필터가 병렬 연산이 되도록 구현하는 것까지는 성공하였으나, 트루노스로 구현된 칼만 필터가 ATLAS 검출기의 Level-1 트리거에서 요구되는 성능을 발휘하기에는 연산 시간(latency)과 데이터 표현 정밀도 측면에서 많이 부족하였다. 연산 시간을 줄이기 위해서는 어쩔 수 없이 입력 데이터 및 시냅스 가중치 표현의 정밀도를 줄일 수밖에 없는데, 이렇게 되면 구현된 칼만 필터의 연산 정확도가 떨어지게 된다.

2. 트루노스 프로세서는 신경세포의 활동전위에 해당하는 스파이크 신호를 디지털 값으로 표현하게 되어 있는데, 트루노스 프로세서에서 처리할 신호를 디지털 스파이크 신호로 바꾸어 처리하게 되면 연산 시간(latency)과 데이터 표현 정밀도 측면에서 불리한 점이 많았다. 디지털 스파이크 신호보다는 아날로그 방식으로 스파이크 신호를 처리하는 뉴로모픽 프로세서들이 처리 시간과 데이터 표현 정밀도 측면에서 더 유리하다.

3. 트루노스의 내재된 병렬 연산 아키텍처를 활용해 칼만 필터 연산을 병렬화해서 연산 시간을 줄일 수 있었으나, 2배 이상 연산 시간을 줄이는 것은 어려웠다. 병렬화로 인한 연산 성능 향상은 근본적으로 한계가 있다. 또한 병렬 연산을 하도록 프로그램하면 트루노스 프로세서의 아키텍처 상 필연적으로 데이터 표현 정밀도를 낮출 수밖에 없어서 병렬화로 인한 연산 시간 단축과 데이터 표현 정밀도 향상의 두 가지 측면을 적절하게 타협하여 개발자가 칼만 필터 디자인을 선택해야 한다.

위와 같은 측면에서 레베카 카니 박사는 트루노스 뉴로모픽 프로세서가 흥미로운 새로운 아키텍처의 프로세서 기술이기는 하지만, 앞으로 다가올 HL-LHC 시대의 ATLAS 검출기에서 더 많은 이벤트 데이터의 재구성과 필터링에 사용하기에는 성능과 정확도 모든 측면에서 부족하다고 결론을 내렸다[13].

트루노스 프로세서와 같은 새로운 아키텍처의 컴퓨팅 하드웨어 기술들이 앞으로도 개발되어 나오게 되면, LHC 연구자들은 이런 새로운 컴퓨팅 하드웨어 기술들을 이용해 HL-LHC 빅데이터 처리의 난제를 풀기 위해 노력할 것이다. LHC 빅데이터 처리 과정에는 인공지능 기술을 활용하는 데이터 처리 자동화 과정이 많기 때문에, 앞으로 트루노스와 같은 뉴로모픽 프로세서나 엔비디아의 GPGPU 기반의 테슬라, 인텔의 제온 파이(Xeon Phi) FPGA와 같은 딥러닝 전용 연산 가속 프로세서에 대한 필요성이 LHC 실험에서도 높아질 것으로 보인다. LHC 빅데이터 문제를 해결할 새로운 컴퓨팅 아키텍처가 앞으로 어떤 것이 등장하게 될지 독자 여러분들도 같이 흥미롭게 지켜보면 좋을 듯하다.

 

2018.09.27

김진철의 How-to-Big Data | 빅데이터와 인공지능 (4)

김진철 | CIO KR

LHC 실험과 뉴로모픽 엔지니어링
LHC 실험과 같은 거대과학 실험 장치는 건설에만 10~20년이 걸리고, 대량 생산을 위한 물건이나 장치를 만드는 일이 아닌 세계에서 하나뿐인 실험 장치를 만드는 일이다 보니 큰 비용이 들고 그에 따르는 위험 부담도 크다. 이런 거대과학 실험에서는 종종 이 실험 장치의 건설과 운영에 필요한 긴 기간이 새로운 과학적, 기술적 발견과 진보의 계기가 되기도 한다.

LHC 실험의 요구사항도 실험 계획 초반과 LHC 가속기 완공 시점, 그리고 지금의 요구사항이 모두 다르다. 사실은 LHC 가속기가 건설되고 운영되는 과정에서 가속기와 검출기, 그리고 실험에서 요구되는 기술적인 요구 사항의 수준이 계속 높아져 왔다. 특히 실험 데이터 분석에 필요한 데이터의 양과 처리 속도, 복잡성의 정도는 크게 높아지고 있다. 지난 연재에서도 소개했듯이 고광도 LHC(High-Luminosity LHC; HL-LHC)로 LHC 가속기가 업그레이드되면 검출기에서 발생하는 데이터의 양이 기하급수적으로 증가하게 되는데, 2019년에는 2016년에 생성된 데이터의 4배에 이르는 293PB, 2028년에는 2016년에 생성된 데이터의 52배에 이르는 3.8EB에 이를 것으로 추정된다. 이는 LHC 실험이 계획되던 1992년에는 검출기 데이터가 1PB, 그리고 LHC 가속기가 완공되던 시점인 2008년도에는 연간 15PB로 데이터양이 추정되던 것에 비교하면 급격하게 빅데이터 요구 사항의 수준이 높아지고 있다.

LHC 실험의 요구 사항이 이렇게 지속해서 높아지는 배경에는 여러 가지 요소가 있는데, 그중에서 중요한 것은 실험이 진행되면서 근본 입자들에 조사해야 할 물리학적 질문들이 더 많아지고 복잡해지는 것과, LHC 가속기에 쓰이는 기술이 정체되어 있지 않고 더 향상되고 발전한다는 것이다.

1992년 당시에도 통계적 패턴 인식 기술을 포함해 사람의 두뇌를 모방하려는 뉴로모픽 VLSI 프로세서 기술이 있었으나 딥러닝과 딥러닝 전용 프로세서, 새로운 뉴로모픽 프로세서들이 쏟아져 나오는 요즘과 비교하면 그 기술의 수준과 복잡도가 매우 낮았다. LHC 실험이 계획되던 1992년의 컴퓨팅 기술과 딥러닝 및 인공지능 기술, 새로운 프로세서와 메모리 기술이 급격하게 발전하는 2018년을 비교해보면, 현재의 기술로 LHC 실험에서 탐구할 수 있는 물리학적 현상의 범위와 깊이가 훨씬 더 넓고 깊다. 이런 이유로 LHC 가속기와 검출기들은 3단계에 걸쳐서 업그레이드되고, 이런 장치 업그레이드를 통해 탐구하려는 입자 물리학적 현상과 그 원리의 범위를 더 넓혀가고 있다.

최근 컴퓨팅 프로세서 기술의 발전은 다양화되고 그 발전 정도도 급격하게 빨라지고 있다. 딥러닝 때문에 주목받기 시작한 GPGPU 기술은 엔비디아의 주도로 1~2년 만에 GPGPU 프로세서 안에 집적되는 연산 코어가 2배 가까이 증가하여 현재 출시된 볼타(Volta)아키텍처 기반의 GPGPU는 테슬라(TESLA) 제품의 경우 GPU 하나당 32비트 유동 연산 코어가 5120개로 그 이전 제품인 파스칼(Pascal) GPU의 3584개에 비해 2배 가까이 많아졌다. 비록 최근에 생산이 중지되기는 했지만, GPGPU에 맞서 인텔이 내놓았던 나이츠 랜딩(Knights Landing) CPU의 경우에는 옴니패스(OmniPath)라는 고성능 네트워크 인터페이스가 내장되고 72코어의 연산 코어가 집적되었다.

딥러닝 연산을 모바일 장치에서 가속하여 다양한 인공지능 응용 프로그램을 지원하기 위한 프로세서들이 개발되었는데, 대표적인 것으로 무선통신 칩기술로 유명한 퀄컴의 신경 처리 유닛(Neural Processing Unit; NPU)이 스냅드래곤 칩에 적용되기 시작하였으며, 구글은 딥러닝에 많이 쓰이는 텐서 연산을 가속하기 위한 텐서 프로세싱 유닛(Tensor Processing Unit; TPU)이라는 딥러닝 전용 프로세서를 개발하였다. 이번 연재에서 소개할 IBM의 트루노스(TrueNorth) 프로세서와 MIT에서 개발한 저전력 딥러닝 전용 프로세서인 아이리스(Eyeriss)는 딥러닝 연산에 적합하도록 아예 집적회로 수준의 아키텍처를 새롭게 설계한 프로세서 기술이다(그림 1).

IBM의 트루노스와 MIT 아이리스 프로세서와 함께 딥러닝의 선구자인 뉴욕대의 얀 르쿤 교수는 컨볼루션 신경망 연산 전용 프로세서인 뉴플로우(NeuFlow)라는 프로세서를 개발하기도 하였다. 스탠포드 대학교에서는 뉴로모프(Neuromorph)와 브레인스톰(Brainstrom)이라는 뉴로모픽 프로세서 기술을, 영국 맨체스터 대학이 주도하는 인간 브레인 프로젝트(Human Brain Project)는 스피네이커(Spinnaker)라는 뉴로모픽 프로세서를 개발하였다. 독일의 하이델베르그 대학에서는 신경망 회로에 유연성을 제공할 수 있는 신경가소성(neuroplasticity)을 모델링한 아날로그 뉴로모픽 프로세서인 스파이키(Spikey)를 개발하기도 하였다(그림 2).

최근에는 구글을 중심으로 양자 컴퓨팅 프로세서를 기계 학습 기술에 적용하려는 연구도 진행되고 있다. 양자 컴퓨터를 처음으로 상용화하여 판매하기 시작한 캐나다의 디웨이브 시스템즈(D-Wave Systems)의 양자 컴퓨터는 2010년 출시한 첫 제품 D-Wave One 시스템 때에는 256큐빗 연산을 할 수 있었으나, 현재 제품인 D-Wave 2000Q 시스템은 2048큐빗 연산을 수행할 수 있다. 양자 컴퓨팅을 이용한 딥러닝 및 기계 학습 기술의 급격한 발전이 곧 눈앞에 현실이 될 것으로 보인다.



최근 LHC 연구자들은 이렇게 급격하게 발전하는 컴퓨팅 프로세서 기술들을 LHC 빅데이터 처리에 활용하기 위한 연구를 진행하고 있다. 특히, 딥러닝을 이용한 이벤트 데이터 필터와 재구성 연산을 위해 인텔 제온 파이 프로세서와 같은 매니코어 CPU와 엔비디아의 GPGPU를 활용하는 연구는 매우 활발하게 진행되고 있다. 최근에는 뉴로모픽 프로세서를 검출기의 레벨 1(Level-1) 트리거에 적용하여 중요한 입자 물리학적 이벤트의 검출 확률을 높이려는 연구도 수행하고 있다. 이번 글에서는 IBM에서 개발한 트루노스(TrueNorth) 뉴로모픽 프로세서를 이용해 레벨 1(Level-1) 트리거의 이벤트 재구성 연산에서 중요하게 쓰이고 있는 칼만 필터(Kalman Filter)의 성능을 높이려는 연구를 한 결과를 간단하게 소개해보려고 한다[13-14].



LHC 가속기의 네 개의 대표적인 검출기 중 하나인 아틀라스(ATLAS) 검출기는 CMS와 함께 LHC 검출기를 대표하는 두 대의 다목적 범용검출기이다. 예전의 다섯번째, 열두번째 글에서 소개한 바와 같이, 입자의 궤적을 기록하기 위해 ATLAS 및 CMS 검출기에서 실리콘 픽셀 검출 장치를 사용한다. ATLAS 검출기의 경우 트래커의 구조는 조금 더 복잡해서, 픽셀 검출기(pixel tracker), 실리콘 스트립 검출기(semiconductor silicon-strip tracker; SCT), 전이 방사 추적기(Transition Radiation Tracker; TRT)로 구성되어 있으며, 이들 세 트래커 구성요소를 합쳐 배럴 내부 트래커(Barrel Inner Tracker)라고 한다[13].

이들 트래커 센서에 입자들이 지나면서 발생하는 전기 신호를 수집한 데이터는 단순한 점들의 집합이다. 이들 점들을 클러스터링하여 같은 입자에서 발생한 궤적, 이벤트로 재구성하고 연결하는 작업을 레벨-1(Level-1) 트리거의 전자회로와 임베디드 컴퓨팅 장비에서 수행하게 된다. 픽셀 검출기, 실리콘 스트립 검출기의 세 개의 점들을 이용해 입자의 이벤트를 재구성하기 위한 씨앗(seed) 이벤트 신호를 구성하게 되는데, 이때 만드는 씨앗 이벤트 데이터를 세 개의 데이터 포인트로 구성된다고 해서 트리플렛(triplet)이라고 한다.

트리플렛으로 구성된 씨앗 데이터를 이용해 픽셀 검출기, 실리콘 스트립 검출기, 전이 방사 추적기의 배럴 내부 트래커의 모든 센서 레이어에 기록된 데이터 점들을 이어 이벤트로 재구성하게 되는데, 이때 씨앗 데이터를 이용해 데이터 점들을 이어 이벤트로 재구성하기 위해 조합 칼만 필터(combinatorial Kalman filter)를 사용하게 된다.

칼만 필터는 선형 매트릭스 연산을 통해 재귀적으로 정의되어 임베디드 시스템에서 구현되어도 연산에 많은 리소스가 필요하지 않다는 장점이 있으며, 요즘 딥러닝으로 다시 알려진 신경망 알고리즘과의 관계가 명확하고 신경망을 칼만 필터 알고리즘으로 표현하기 쉽다는 장점이 있어서 임베디드 시스템에서 고급 신호 처리에 많이 쓰이는 알고리즘이다.

스톡홀름 대학의 레베카 카니(Rebecca Carney) 박사는 미국 로런스 버클리 국립 연구소(Lawrance Berkeley National Laboratory)의 ATLAS 실험 그룹과 IBM 트루노스(TrueNorth) 개발팀의 지원으로 IBM에서 개발한 뉴로모픽 프로세서인 트루노스(TrueNorth)를 이용해 위에서 설명한 ATLAS 검출기의 배럴 내부 트래커의 이벤트 재구성에 쓰이는 조합 칼만 필터 연산을 구현하는 프로젝트를 진행하였다. 그 결과가 최근 그녀의 학위 논문과 2017년 프랑스 오르세이 소재 국립 선형 가속기 연구소에서 열린 지능형 트래커 검출기 공동 학술회의(Connecting the Dots/Intelligent Tracker 2017)에서 발표되었는데, 그 결과를 간단하게 소개하면서 뉴로모픽 프로세서가 LHC 빅데이터 처리에 가지는 의미를 간단하게 살펴보자.



IBM의 트루노스 뉴로모픽 프로세서는 미국 방위고등연구계획국(Defense Advanced Research Projects Agency; DARPA)의 '시냅스(SyNAPSE)' 프로그램을 통해 IBM에서 개발되었다. 트루노스 프로세서는 인간의 두뇌가 수행하는 연산을 좀더 효율적으로 저전력으로 수행하는 신경모방(neuromorphic) 연산 아키텍처를 새롭게 만들어보고자 하는 목표로 디자인되고 만들어졌으며, 이런 이유로 최근 많이 나오고 있는 딥러닝 전용 가속 프로세서와 유사한 용어를 사용하기는 하지만, 그 구현 아키텍처는 전혀 다른 모습을 가지고 있다.

IBM의 트루노스 프로세서는 그림 3과 4에서 보이는 것과 같이 NS1e 보드에 장착되어 하나의 컴퓨터 모듈로서 동작하며, 연산과 모듈을 제어하는 로직이 탑재된 ZYNQ SoC FPGA 칩과 Ethernet, USB, UART 등의 통신 인터페이스, 그리고 트루노스 프로세서와 트루노스 프로세서가 구동하기 위해 필요한 기타 회로와 버스로 구성되어 있다.

트루노스 프로세서는 트루노스 코어가 가로 64개, 세로 64개의 정방형 격자 형태로 배치되어 있고, 각 트루노스 코어는 내부 통신 패브릭을 통해 서로 연결되어 있다. 하나의 트루노스 코어는 연산 결과를 저장하기 위한 메모리 모듈, 연산 과정을 제어하기 위한 제어 모듈(Controller), 연산 명령 수행에 필요한 자원(resource)를 할당해주는 스케줄러(Scheduler) 모듈, 그리고 신경계의 동작을 모방한 뉴런(Neuron) 모듈과 뉴런 간 데이터 교환 경로를 만들고 스위치해주는 라우터(Router)로 구성되어 있다. 하나의 트루노스 코어에서 통 256개의 뉴런과 축색돌기 또는 액손(Axon)만을 만들 수 있기 때문에, 이보다 큰 신경망을 트루노스에서 연산시키기 위해서는 트루노스 코어 간에 신경망 연산 모델을 병렬로 배치하고 병렬 연산을 하도록 특별하게 프로그래밍해주어야 한다.

보통 뉴로모픽 프로세서는 신경 세포가 만드는 전기 신호인 활동 전위(action potential)와 그 활동 전위가 신호로서 다루어지게 되는 스파이크(spike) 신호의 생성 및 처리를 아날로그 회로로 구현하는 경우가 많다. 그러나, 트루노스 프로세서는 신경계의 작동 기전(mechanism)중 스파이크 신호의 기전만을 차용해 신호는 스파이크 형태의 신호로 내보내고, 신경회로는 뉴런, 액손, 그리고 뉴런과 액손을 연결해서 시냅스를 구현하는 크로스바(cross-bar)라고 불리는 요소들을 디지털 회로로 구현해 신경계의 정보처리를 모방하도록 설계하였다(그림 5).



스톡홀름 대학의 레베카 카니 박사는 트루노스 프로세서 개발 도구인 “코어렛 개발 환경(Corelet Programming Environment; CPE)”라 불리는 하드웨어 기술 언어(Hardware Description Language; HDL)와 트루노스 뉴로-시냅틱 시뮬레이터(TrueNorth Neuro-Synaptic Simulator; NCSC), 그리고 MATLAB을 사용하여 프로그램하였다.

트루노스는 원래 딥러닝을 지원하기 위해 딥러닝 개발 프레임워크로 잘 알려진 Caffe의 확장 버전인 Tea를 지원하였으나, 2016년부터는 Tea에 대한 지원을 중단하고 “에너지 효율적인 심층 뉴로모픽 네트워크(Energy-Efficient Deep Neuromorphic Network; Eedn)”이라 불리는 새로운 딥러닝 개발 도구를 이용해 심층신경망과 딥러닝을 트루노스 프로세서에서 연산할 수 있도록 지원하기 시작하였다. 레베카 카니 박사는 이 Eedn이라 불리는 딥러닝 개발 도구는 사용하지 않았다. 트루노스의 특성상 Eedn을 통한 딥러닝 연산 성능을 평가하는 연구도 흥미로운 주제였을 것으로 보이지만 앞으로 후속 연구가 진행될 것으로 보인다[14].


 


레베카 카니 박사는 ATLAS 검출기에서 사용하는 칼만 필터 모델을 아주 단순화한 모델로 표현하여 그림 5에 나타난 칼만 필터 연산을 위에서 소개한 CPE와 NCSC를 이용해 개발, 평가하였다. 그 결과를 요약하면 다음과 같다[13].

1. 칼만 필터 연산을 트루노스 아키텍처로 구현하고, 칼만 필터가 병렬 연산이 되도록 구현하는 것까지는 성공하였으나, 트루노스로 구현된 칼만 필터가 ATLAS 검출기의 Level-1 트리거에서 요구되는 성능을 발휘하기에는 연산 시간(latency)과 데이터 표현 정밀도 측면에서 많이 부족하였다. 연산 시간을 줄이기 위해서는 어쩔 수 없이 입력 데이터 및 시냅스 가중치 표현의 정밀도를 줄일 수밖에 없는데, 이렇게 되면 구현된 칼만 필터의 연산 정확도가 떨어지게 된다.

2. 트루노스 프로세서는 신경세포의 활동전위에 해당하는 스파이크 신호를 디지털 값으로 표현하게 되어 있는데, 트루노스 프로세서에서 처리할 신호를 디지털 스파이크 신호로 바꾸어 처리하게 되면 연산 시간(latency)과 데이터 표현 정밀도 측면에서 불리한 점이 많았다. 디지털 스파이크 신호보다는 아날로그 방식으로 스파이크 신호를 처리하는 뉴로모픽 프로세서들이 처리 시간과 데이터 표현 정밀도 측면에서 더 유리하다.

3. 트루노스의 내재된 병렬 연산 아키텍처를 활용해 칼만 필터 연산을 병렬화해서 연산 시간을 줄일 수 있었으나, 2배 이상 연산 시간을 줄이는 것은 어려웠다. 병렬화로 인한 연산 성능 향상은 근본적으로 한계가 있다. 또한 병렬 연산을 하도록 프로그램하면 트루노스 프로세서의 아키텍처 상 필연적으로 데이터 표현 정밀도를 낮출 수밖에 없어서 병렬화로 인한 연산 시간 단축과 데이터 표현 정밀도 향상의 두 가지 측면을 적절하게 타협하여 개발자가 칼만 필터 디자인을 선택해야 한다.

위와 같은 측면에서 레베카 카니 박사는 트루노스 뉴로모픽 프로세서가 흥미로운 새로운 아키텍처의 프로세서 기술이기는 하지만, 앞으로 다가올 HL-LHC 시대의 ATLAS 검출기에서 더 많은 이벤트 데이터의 재구성과 필터링에 사용하기에는 성능과 정확도 모든 측면에서 부족하다고 결론을 내렸다[13].

트루노스 프로세서와 같은 새로운 아키텍처의 컴퓨팅 하드웨어 기술들이 앞으로도 개발되어 나오게 되면, LHC 연구자들은 이런 새로운 컴퓨팅 하드웨어 기술들을 이용해 HL-LHC 빅데이터 처리의 난제를 풀기 위해 노력할 것이다. LHC 빅데이터 처리 과정에는 인공지능 기술을 활용하는 데이터 처리 자동화 과정이 많기 때문에, 앞으로 트루노스와 같은 뉴로모픽 프로세서나 엔비디아의 GPGPU 기반의 테슬라, 인텔의 제온 파이(Xeon Phi) FPGA와 같은 딥러닝 전용 연산 가속 프로세서에 대한 필요성이 LHC 실험에서도 높아질 것으로 보인다. LHC 빅데이터 문제를 해결할 새로운 컴퓨팅 아키텍처가 앞으로 어떤 것이 등장하게 될지 독자 여러분들도 같이 흥미롭게 지켜보면 좋을 듯하다.

 

X