순수 과학 기술 분야에서 시작된 GPU 컴퓨팅

 

GPU가 새로운 광맥을 찾아내고 있습니다. NVIDIA가 주최하는 GPU 컨퍼런스 GTC(GPU Technology Conference)에서는 앞으로 GPU가 쓰이게 될 새로운 분야로 머신 러닝(Machine Learning), 빅 데이터 분석(Big Data Analytics), 컴퓨터 비전(Computer Vision)에 초점을 맞췄습니다. 이 3가지 분야의 공통점은 인식 처리가 중요한 위치를 차지한다는 것과, 기존의 GPU 컴퓨팅 응용에 비해 최종 사용자에게 더욱 친밀한 분야라는 것과, 지금까지 GPU가 쓰이지 않았던 큰 시장에서 사용이 기대된다는 것입니다.

 

컴퓨터 비전은 자동차의 컴퓨터와 로보틱스 등의 분야에도 밀접한 연관이 있으며, 자동차에선 자동 운전 시스템이나 운전 지원 시스템에 관계가 있습니다. 머신 러닝은 영상 인식과 음성 인식의 정확도 향상을 실현합니다. 인식 처리 성능 향상은 대화형의 자연 사용자 인터페이스의 보급으로 이어집니다. 또 IoT(The Internet of Things)를 통해 늘어나는 빅 데이터는 방대한 데이터에서 학습·해석하는 머신 러닝과 시너지 효과가 큽니다. 빅 데이터를 이용해 앞으로 다양한 최종 사용자용 서비스를 내놓을 수도 있습니다.

 

1.jpg

 

2.jpg

 

NVIDIA의 Jen-Hsun Huang(Co-founder, President and CEO)는 GTC의 오프닝 기조연설에서 GTC의 올해 논문 중 그 수가 가장 많이 늘어난 분야가 머신 러닝, 빅 데이터 분석, 컴퓨터 비전의 3가지 분야라고 설명했습니다. 2012년만 해도 생명 과학, 게놈 과학, 분자 동역학, 에너지 탐사 등 과학계 분야의 논문이 늘어났던 것과 대조적이라고 하네요.

 

3.jpg

 

일반 사용자에게 있어 GPU 컴퓨팅은 실 생활과 큰 상관이 없는 기술처럼 보일 수도 있을 것입니다. 이미지나 동영상 처리에서 일부 사용하는 것이 고작이며, GPU는 어디까지나 그래픽 처리를 하하는 물건이라는 게 일반적인 PC 사용자의 생각이라 할 수 있습니다. 이것은 이미 GPU가 중요한 위치에 올라선 HPC(High Performance Computing) 커뮤니티 쪽과 큰 차이가 있습니다.

 

그러나 최종 사용자 PC를 제외한 새로운 분야에선 GPU가 중요한 위치를 차지할 가능성이 있습니다. 자동차나 로봇에 다수의 GPU가 탑재되게고  데이터 센터에도 GPU 서버가 일반화 될 시대가 올지도 모릅니다. 이것은 GPU 컴퓨팅이 보급되려면 기존 애플리케이션에서의 이용이 아니라 새로운 애플리케이션이나 기기가 필요하다는 것을 나타내고 있는지도 모릅니다.

 

 

주도적으로 새로운 시장에 진출하는 NVIDIA

 

GPU 제조 업체라는 틀에서 보면 NVIDIA가 새로운 길을 또다시 찾고 있는 것으로 보입니다. 예를 들어 NVIDIA의 모바일 SoC(System on a Chip)인 테그라 시리즈의 경우 태블릿 시장에서 한때는 상당한 점유율을 자랑했지만 지금은 수세로 몰렸습니다. 그러나 자동차 시장에는 테그라를 잘 보급시켰으며 다음 기회를 노리고 있습니다.

 

4.jpg

 

5.jpg

 

서버용 GPU의 경우 그 사용이 지금까지는 과학 기술 연산이나 탐사 업무 등 일부 시장에만 한정되어 있었습니다. 그러나 머신 러닝과 빅 데이터 분석에서는 보다 일반적인 서버에 GPU를 넣게 될 기회가 생겨나게 됩니다. 머신 러닝의 응용이 진행되어 빅 데이터 분석이 성행하면 NVIDIA는 서버 GPU 시장에서 큰 시장을 잡게 됩니다. 또 GPU 기반 머신 러닝에서 학습한 결과는 같은 GPU를 사용하는 최종 사용자용 시스템으로 옮기는 것도 쉽습니다.

 

이러한 전개를 알고 있기 때문에 NVIDIA도 이들 분야를 중시하고 있습니다. 재미있는 건 머신 러닝이나 컴퓨터 비전, 빅 데이터 분석에 대한 움직임이 GPU 제조 업체의 무리한 마케팅에서 비롯된 것이 아니라 연구 현장에서 나온 요구라는 것입니다. 현재 NVIDIA는 GPU 컴퓨팅 학문 커뮤니티에게서 상당한 지지를 얻고 있는데, 그것이 서서히 효과를 내고 있는 셈입니다.

 

6.jpg

 

컴퓨터 과학의 관점에서 보면 이번 GTC의 주제였던 머신러닝은 뉴런 네트워크(NN)의 재등장이란 측면에서 흥미롭습니다. GTC에서 거론된 머신 러닝은 최근 딥 러닝(Deep Learning)이라 불리는 분야로, 뉴런 네트워크의 알고리즘을 사용합니다.

 

 

뇌의 신경 네트워크를 본뜬 뉴런 네트워크

 

뉴런 네트워크(NN)를 한마디로 설명하면 생물의 뇌 신경계 기능을 시뮬레이트한 알고리즘에 따라 정보 처리를 한다는 아이디어입니다. 더 단적으로 말하면 인간의 뇌와 같은 구조로 동작하는 컴퓨터/소프트웨어를 만드는 것입니다. 물리적으로 신경계를 본뜬 뉴로컴퓨터를 만드려는 움직임도 있지만, 지금의 주류 방식은 기존의 컴퓨터에서 시뮬레이터를 실행해 뉴런 네트워크를 실현하는 것입니다.

 

뇌의 작용을 모방한 NN의 특징은 (1)프로그램을 따로 넣을 필요 없이 자가 학습을 수행하고 (2)병렬 분산 처리가 가능하며 (3)(네트워크의 결합 강도 등을) 자기 조직화하고 (4)뉴런의 움직임이 비선형적이며 (5)이벤트가 피동식으로 비동기 동작한다는 점입니다.

 

뉴런(신경 세포)는 일정한 자극을 받으면 흥분하면서 전기 펄스를 발생합니다. 이 펄스는 다음의 뉴런으로 전파하게 되는데, 수신 쪽의 뉴런에는 돌기가 여럿 있어 송신 쪽과 시냅스로 결합합니다. 1개의 뉴런은 다수의 뉴런과 연결되어 있습니다. 시냅스는 수신의 신경을 흥분하는 것과 억제하는 것의 두가지가 존재합니다.

 

수신 쪽의 뉴런은 시냅스를 거쳐 송신 뉴런에서 보낸 자극의 총량이 일정 수준에 도달한다고 판단하면 활동 전위를 띄게 됩니다. 이것이 전기 펄스가 되어 수신 뉴런을 다음 뉴런으로 전달합니다. 뉴런은 자극을 전달받아 흥분하면 그 자극을 전달한 시냅스와 결합이 강해지는 가소성을 갖추고 있습니다. 그리고 이것이 뉴런의 학습 매커니즘입니다.

 

즉 생물의 신경계는 처리 유닛과 메모리를 일체화하고 네트워크를 구축한 시스템으로 풀이됩니다. 시냅스를 결합하는 힘은 아날로그이며(디지털이란 설도 있음) 메모리는 주소를 통해 관리하는 것이 아니라 신경 세포 사슬의 연상 방식으로 호출됩니다. 사람의 뇌는 현재 최고 성능의 슈퍼 컴퓨터로도 불가능한 방대한 인식 처리를 10~20W 정도의 전력을 소비해 실현하고 있습니다. 사람은 NN에 의한 인식 처리에 폰 노이만 방식의 순차 논리 사고를 사용한다고 볼 수 있습니다. 그리고 지금 사고는 CPU, 인식은 GPU에서 처리하려는 움직임이 일어나고 있으며, 이것이 바로 NVIDIA가 주장하려는 핵심인 것입니다.

 

 

흥망성쇠를 반복하는 뉴런 네트워크의 주기

 

NN의 역사는 흥망과 성쇠를 반복해 왔습니다. 1940년대에 뉴런의 동작 로직 모델이 만들어져 1960년대에 원초적인 NN 모델, 퍼셉트론(perceptron)이 큰 인기를 몰았습니다. 퍼셉트론은 소뇌의 동작 모델로도 실증되었으나, 이후 저명한 인공 지능 학자 마빈과 민스키 등에게 한계를 지적받으며 연구가 줄어들었고, 1970년대엔 NN 연구의 빙하기가 찾아왔습니다.

 

그것이 되살아난 건 80년대에 볼츠만 머신(Boltzmann Machine)이나 역전파 알고리즘(Backpropagation) 등의 새로운 방법이 등장하면서부터 입니다. NN의 뉴런 계층을 깊게 하거나, 보다 상위에 피드백시켜 정확도를 높인다는 아이디어가 상당한 효과를 낸 것이지요. 그러나 그것도 시들시들해지면서 1990년대가 되자 다시 NN 연구의 인기는 식었습니다.

 

지금은 세번째 전성기라고 할 수 있으며 그 인기는 어느때보다도 큽니다. 깊은 계층형 NN을 사용하는 머신 러닝인 딥 러닝(Deep Learning)의 연구 결과가 차례차례 발표됐습니다. 이는 컴퓨터 과학 쪽에서도 큰 화제입니다.

 

실제로 NN의 부활은 2006년경 부터 시작됐지만 지금처럼 인기가 높아진 건 최근 2년 사이에 있었던 일입니다. 이를 주도한 것은 구글과 스탠포드의 화상 인식 연구인 Building High-level Features Using Large Scale Unsupervised Learning입니다.

 

인간은 쉽게 고양이나 개나 사람을 알아볼 수 있습니다. 그러나 지금까지 컴퓨터는 고양이 같은 동물의 특징을 분간하기가 어려웠습니다. 구글과 스탠포드의 연구는 이를 가능하게 하는 것입니다. 머신 러닝의 학회인 International Conference on Machine Learning(ICML)2012에서 발표된 것이 먼저지만, 그보다는 구글의 고양이 인식이 일반 매체에 알려지면서 유명세를 탔습니다.

 

7.jpg

 

8.jpg

 

9.jpg

 

젠슨황의 GTC 기조 연설에선 이 구글의 고양이가 머신 러닝의 대표적인 사례로 꼽혔습니다. 구글과 스탠포드 대학의 연구에선 1000개의 서버를 사용해 16000개의 CPU 코어를 3일 동안 동작시켜, 유튜브나 웹에서 모은 1000만개의 이미지(200x200 해상도)를 해석해 학습시켰습니다. 이 자율 학습(unsupervised)에서 모델의 파라미터 수는 11억 개에 달합니다. 그정도로 학습한 결과 고양이와 사람을 높은 정확도로 인식할 수 있게 됐다고 합니다. 참고로 자율 학습은 NN의 학습에 교사 신호를 사용하지 않는다는 것입니다.

 

10.jpg

 

11.jpg

 

 

생물의 뇌와 가까워지기 위해 GPU를 기계 학습에 사용

 

그러나 젠슨황은 이토록 강력한 NN인 구글 브레인조차도 인간의 뇌엔 미치지 못한다고 지적합니다. 인간의 뇌엔 1000억개의 뉴런이 있으며 각각의 뉴런은 평균 1000개의 커넥션(시냅스)를 갖춥니다. 구글 브레인에서 이 정도의 처리를 하려면 4만년의 시간과 6kW의 전력이 필요하다네요.

 

12.jpg

 

13.jpg  

 

위 모델의 슬라이드는 생물의 뇌와 지금의 컴퓨터를 비교한 것으로, 생물의 뇌와 가까워졌다고는 해도 인간의 뇌와 비교하면 아직 갈 길이 멀다는 것을 알 수 있습니다. 이 그림에서 DBN은 딥 러닝의 선두주자인 Geoffrey Hinton의 Deep Belief Nets(DBN)에서 2006년 연구 당시의 모델입니다. 참고로 왼쪽 끝 부분에 스펀지 밥이 그려져 있는 건 해면 동물은 뉴런이 없기 때문. 동물 중에선 해면 동물과 평판 동물만이 뉴런이 없다네요. 그래서 그림의 왼쪽 끝, 즉 뉴런 수 0을 의미하는 곳이 스펀지 밥이 있다고.

 

이 방대한 차이를 어떻게 하면 줄일 수 있을가요. 물론 뇌와 물리적으로 같은 구조를 갖춘 컴퓨터를 개발하면 해결되지만 그건 너무 먼 방법입니다. 그러나 NN의 특징인 병렬 분산 처리 부분은 병렬화에 특화된 GPU와 잘 어울립니다. GPU는 NN을 낮은 소비 전력과 낮은 비용으로 실현할 수 있다는 게 NVIDIA의 주장입니다. GPU가 궁극적인 답은 아니지만 지금보단 좋은 답이라는 것입니다.

 

실제로 NN 알고리즘을 GPU에서 실현하려는 움직임이 활발해지고 있습니다. 기조 강연의 슬라이드에선 구글의 고양이가 나오고 1년 뒤인 ICML 2013에서 스탠포드 대학/NVIDIA가 내놓은 Deep Learning with COTS HPC Systems를 소개했습니다. Stanford AI Lab의 클러스터는 16서버로 각 서버가 2개의 쿼드 코어 CPU와 4개의 지포스 GTX 680(GK104)를 탑재합니다. 이 중 3개의 서버(12 GPU)만 동원해도 10억 파라미터의 훈련을 2~3일 안에 끝낼 수 있으며, 16개의 서버를 모두 동원하면 110억 파라미터까지 규모를 늘릴 수 있다고 합니다.

 

14.jpg

 

비용으로 환산하면 구글 브레인이 500만 달러인데 비해 GPU시스템은 33000 달러에 전력은 4kW로 끝난다고 NVIDIA는 설명합니다. 위 그림 중 GPU 코어의 수는 부동 소수점 연산 유닛의 수를 센 것이니 CPU의 코어 수와 비교하는 건 무의미합니다(논문에서는 전형적인 NN 워크로드로 1GPU당 1TFLOPS입니다). 어쨌든 GPU 기반 시스템이 훨씬 더 저비용 저전력이라는 건 확실합니다.

 

 

일본의 덴소가 NN을 발표

 

딥 러닝에서 방대한 계산량이 필요한 이유는 NN의 정밀도를 높이기 위해서입니다. 최초의 NN인 퍼셉트론은 뉴런이 3단계의 층에 연결된 모델이었습니다. 그러나 지금의 딥 뉴런 네트워크는 그보다 더 깊은 층을 씁니다. 아래는 기조연설에서 제시한 개념도로 Convolutional NN이 아닌가 싶은데, 왼쪽이 입력 뉴런, 오른쪽 끝이 출력 뉴론, 그 사이에 중간 뉴런이 있습니다. 실제로 뉴런 층 사이의 접속은 선으로 표시한 것보다 더 많아 복잡합니다.

 

15.jpg

 

계산량이 중요합니다. 처리가 단순하과 병렬화와 분산화가 특기인 GPU에는 적용하기 쉬운 구조입니다. GPU가 딥 러닝으로 향하는 건 자연스러운 흐름입니다. GTC의 기조연설에선 NN을 사용한 데모도 공개했습니다. 하나는 매우 단순하게 개념을 설명한 것인데, 2개 층으로 구성된 뉴런 NN으로 빨간색 페라리와 녹색 NVIDIA를 식별하는 것을 선보였습니다. 이 데모에선 PS 비타를 쉴드로 잘못 인식하고 NVIDIA라고 답하게 되는 데모에서 큰 웃음을 불러일으켰다고.

 

16.jpg

 

17.jpg

 

18.jpg

 

또 다른 데모는 GTC 참가자가 사진을 포스팅하면 그걸 뉴욕 대학의 NN 시스템에서 인식시키는 것이었습니다. 이것은 방대한 훈련을 거친 인식 시스템을 사용해 매우 높은 인식률을 보였습니다.

 

19.jpg


젠슨 황은 머신 러닝에 CUDA가 사용중이라고 소개했습니다. 일본의 자동차 부품 회사인 덴소는 GTC에서 보행자 인식을 딥 뉴런 네트워크에서 수행하는 연구 결과를 발표했습니다.

 

20.jpg

 

GTC에서 프레젠테이션을 담당한 덴소의 사토 이쿠오 박사는 이제 신경 회로망의 봄이 왔다고 설명합니다. 80년대엔 연구 단계로 끝났지만 지금처럼 응용 범위가 늘어나면 NN이 정착하게 될 것이며, 앞으로 방대한 계산을 해결할 수 있다는 점에서 GPU의 역할이 크다고 강조했습니다.

기글하드웨어(http://gigglehd.com/zbxe)에 올라온 모든 뉴스와 정보 글은 다른 곳으로 퍼가실 때 작성자의 허락을 받아야 합니다. 번역한 뉴스와 정보 글을 작성자 동의 없이 무단 전재와 무단 수정하는 행위를 금지합니다.