인공신경망 – SK hynix Newsroom 'SK하이닉스 뉴스룸'은 SK하이닉스의 다양한 소식과 반도체 시장의 변화하는 트렌드를 전달합니다 Mon, 17 Feb 2025 04:09:11 +0000 ko-KR hourly 1 https://wordpress.org/?v=6.7.1 https://skhynix-prd-data.s3.ap-northeast-2.amazonaws.com/wp-content/uploads/2024/12/ico_favi-150x150.png 인공신경망 – SK hynix Newsroom 32 32 [제3시선, 최고가 최고를 만나다 with 김범준 교수] 보이지 않아도 모든 곳에 존재하는 물리학과 반도체 (4/4, 완결) /thirds-eyes-kimbeomjun-4/ /thirds-eyes-kimbeomjun-4/#respond Thu, 14 Dec 2023 15:00:00 +0000 http://localhost:8080/thirds-eyes-kimbeomjun-4/

제3시선, 최고가 최고를 만나다

‘제3시선, 최고가 최고를 만나다’는 과학·기술 분야 최고의 전문가들이 서로의 분야에서 공통의 주제를 이야기하며 세상을 바라보는 새로운 시선을 넓혀가는 연재 콘텐츠입니다. 과학계의 최고 전문가와 최고의 ICT 기술을 만들어 내는 SK하이닉스 구성원 간의 대담을 통해 어렵게만 느껴졌던 반도체를 더욱 쉽게 만나볼 수 있습니다.

이번 시리즈에서는 국내 최고의 물리학 전문가인 김범준 성균관대학교 물리학과 교수와 SK하이닉스 구성원(김환영 TL, 민태원 TL, 임경선 TL, 조상혁 TL)들이 만나 정보의 기본단위가 0과 1로 처리되는 현재의 반도체를 물리학의 관점에서 이야기할 예정입니다. 이와 함께, 두 개 이상의 양자 상태가 합쳐진 ‘양자 중첩’ 현상을 활용해 0과 1이 동시에 처리되는 양자컴퓨터 등 미래 반도체 기술에 적용되는 물리학에 대한 다양한 이야기까지, 총 4편에 걸쳐 다룰 예정입니다. 김범준 교수와 SK하이닉스 구성원들이 나누는 반도체, 물리학 그리고 양자역학에 대한 마지막 이야기. 지금부터 함께하겠습니다. (편집자 주)

지금까지 김범준 교수와 SK하이닉스 구성원들이 나눈 물리학과 반도체에 관한 이야기를 함께 살펴봤다. 인류는 물리학을 통해 도체와 부도체, 반도체, 초전도체의 물성을 정립할 수 있었으며 양자역학을 통해 원자와 전자 단위의 미시세계의 운동을 파악할 수 있었다. 또한, 물리학을 통해 반도체와 컴퓨터를 만들었고, 이러한 것들은 인류의 역사를 바꾸었다. 인류 문명의 발전 그 모든 과정에서 핵심적인 역할을 해왔던 물리학은 우리의 미래를 만들어가는 데도 여전히 핵심적인 역할을 하게 될 것이다. 김범준 교수와 SK하이닉스 구성원들의 대담 그 마지막 이야기는 이들이 생각하고 있는 물리학과 반도체의 관계 그리고 미래 반도체를 새롭게 만들어갈 물리학 후배들에게 전하고자 하는 메시지를 담았다.

▲ 뉴로모픽 반도체의 원리에 대해 이야기를 나누고 있는 임경선 TL, 김환영 TL, 민태원 TL, 김범준 교수, 조상혁 TL(왼쪽부터)

인공지능을 위한 뉴로모픽 반도체

김범준 교수 과학 기술의 발전은 컴퓨터의 성능을 비약적으로 향상시켰는데요. 앞서 우리가 이야기 나눴던 양자컴퓨터[관련기사]의 등장 역시 과학 기술의 발전이 없었다면 불가능했을 것입니다. 양자컴퓨터는 분명 우리의 미래를 변화시킬 중요한 기술이 되겠지만, 이러한 기대를 받는 것이 양자컴퓨터만은 아니죠?

민태원 TL 챗GPT를 중심으로 다양한 형태의 인공지능(Artificial Intelligence, AI)이 큰 관심을 끌고 있는 최근에는 더 효율적인 인공지능 학습을 위한 반도체들이 개발되고 있습니다. 앞서 양자컴퓨터를 이야기하면서 간단히 언급되긴 했지만, 인공지능을 구현하기 위해서는 병렬 연산을 통한 빠른 연산이 중요해지고 있거든요. 이 때문에 챗GPT와 같은 생성형 AI 모델은 대부분 GPU(Graphic Processor Unit, 그래픽 처리 장치)를 통한 병렬 연산 방식을 채택하고 있습니다. SK하이닉스가 개발하고 생산하는 HBM(High Bandwidth Memory)*은 초고성능 GPU에 탑재돼 연산 속도 향상에 중요한 역할을 하고 있습니다. 이외에도 PIM(Processing in Memory)*과 같이 메모리 반도체에 연산 능력을 더한 제품들도 인공지능에 활용될 것으로 기대하고 있죠.

* HBM(High Bandwidth Memory, 고대역폭메모리): 여러 개의 D램을 수직으로 연결해 기존 D램보다 데이터 처리 속도를 혁신적으로 끌어올린 고부가가치, 고성능 제품. HBM은 1세대(HBM)-2세대(HBM2)-3세대(HBM2E)-4세대(HBM3)-5세대(HBM3E) 순으로 개발됨. HBM3E는 HBM3의 확장(Extended) 버전
* PIM(Processing in Memory, 지능형 반도체): 메모리 반도체에 연산 기능을 더해 인공지능(AI)과 빅데이터 처리 분야에서 데이터 이동 정체 문제를 풀 수 있는 차세대 기술

임경선 TL 현재의 인공지능 수준을 구현하기 위한 새로운 방법으로 등장한 것이 바로 인공신경망[관련기사]인데요. 챗GPT를 개발한 오픈AI(Open AI)를 비롯해 구글 등 글로벌 빅테크 기업들은 저마다 HBM이 탑재된 고성능 GPU나 인공지능을 위한 자체 연산장치를 개발, 적용하고 있습니다. 현재 구글의 경우를 보면, 인공지능 연산장치인 TPU*(Tensor Processing Units) 등을 활용해 인공지능을 구현하고 있습니다.

* TPU(Tensor Processing Units): 구글의 AI(머신러닝) 엔진인 텐서 플로우에 최적화된 인공지능 반도체로 구글이 자체 개발했다.

▲ 각종 반도체의 종류별 포함 관계

김범준 교수 맞습니다. 마침 제가 신경과학*도 연구하고 있어 인공신경망을 활용하는 인공지능에도 관심이 많은데요. 최근 인공지능이 비약적으로 발전하게 된 이유는 사람의 신경망을 모방한 인공신경망을 활용했기 때문입니다. 우리의 뇌에는 약 천억 개 정도의 신경세포가 다른 신경세포와 연결돼 신호를 주고받는데요. 이러한 구조를 우리는 흔히 ‘시냅스(Synapse)’라고 부릅니다.

뇌가 신경망을 통해 각 신경세포에 전기를 통하게 하거나(디지털 회로값 ‘1’) 통하게 하지 않는(디지털 회로값 ‘0’) 방식을 통해 정보를 전달하는 것인데, 약 천억 개의 신경세포를 통해 연산을 수행하죠. 방대한 양의 신경세포가 동시에 서로 전기 신호를 주고받으며 정보를 처리하는 것이 핵심인데요. 인공신경망도 이와 유사한 방법으로 GPU나 TPU와 같이 병렬 연산에 유리한 연산장치를 통해 동시에 정보를 처리하게 됩니다.

* 신경과학(神經科學, Neuroscience): 뇌를 포함한 모든 신경계에 대해 연구하는 학문으로 생물학의 일부로 분류되고 있지만 현재 인공지능 분야에서 물리학을 기반으로 관련 다양한 주제가 연구되고 있다.

김환영 TL 물론 GPU나 TPU와 같은 연산장치가 병렬 연산에 유리하기 때문에 인공신경망 구현에 적합한 장치입니다. 하지만 폰노이만 구조로서의 한계가 있는데요. 폰노이만 구조에서는 메모리 간의 정보 이동 과정 중 오버헤드* 문제가 발생하며 연산 속도가 느려지기도 합니다. 최근 이 문제를 해결하기 위한 방안으로 개발되고 있는 것이 뉴로모픽(Neuromorphic) 반도체입니다. 아직은 기술적으로 완벽하진 않지만 과학 기술의 발전으로 가까운 미래에 뉴로모픽 반도체가 상용화될 것이라는 전망이 나오고 있습니다.

최근 뉴로모픽 반도체와 관련해 다양한 물리적 현상에 기반하여 개발되고 있는데요. 대표적으로 가중치를 저장했다가 읽어오는 방식을 구현하는 실리콘 기반 CMOS(Complementary Metal-Oxide Semiconductor) 트랜지스터 뉴로모픽 반도체와 메모리와 가변 레지스터 두 가지 기능을 동시에 가지고 있는 멤리스터(Memristor)* 소자를 활용하는 방식 등이 있습니다. 이중 멤리스터 방식은 세분화된 가중치를 위해 점진적인 스위칭 저항 특성을 가지는 것이 특징입니다. 이렇게 각각의 소자는 기능적인 차이가 존재하고 요구 특성이 다릅니다. 이에 업계의 연구원들은 필요한 특성을 잘 활용할 수 있는 다양한 소자들을 연구하고 있습니다. 결국 저는 연구되고 있는 다양한 소자들이 서로 다른 물리적 현상을 기반으로 성능에 차이가 있기 때문에 물리적 현상을 이해하고 접근하는 것이 중요하다고 생각합니다.

* 오버헤드(Overhead): 특정한 목표를 달성하기 위해 간접적 혹은 추가로 요구되는 시간, 메모리, 대역폭 혹은 다른 컴퓨터 자원을 말한다.
* 멤리스터(Memristor): 메모리(Memory)와 레지스터(Resistor)의 합성어로 전하량에 따라 변화하는 유도 자속에 관련된 기억 저항(Memristance) 소자

미래를 바꿀 물리학과 반도체

김범준 교수 이번 대담을 통해 SK하이닉스 구성원분들과 이야기해 보니 물리학이라는 것은 인류의 발전에서도 아주 중요한 역할을 했고, 앞으로도 계속 아주 중요한 역할을 할 것이라는 확신이 드네요. 끝으로 물리학과 반도체에 관해 다양한 주제로 이야기 나눈 것에 대한 소감 한마디씩 나눠보도록 할까요?

김환영 TL 반도체를 이해하기 위해서는 물리학은 필수적이라 생각합니다. 그 이유는 반도체는 공정, 소자, 설계 이 모든 것들이 물리로 얽혀 있는 정말 많은 물리적 현상의 종합 작품이기 때문입니다. 반도체를 발전시킨다는 것은 현재의 물리적 상태의 위치에서 새로운 물리적 상태의 위치로 옮기는 것이고, 우리가 원하는 방향으로 원하는 시간 내에 대상을 정확하게 제어하기 위해서는 물리학이라는 언어로 반도체를 제대로 이해하는 것이 필요합니다. 마찬가지로 양자컴퓨터, 뉴로모픽 반도체 또한 모두 동일합니다. 다만 정보의 물리적 형태와 이를 구현하기 위한 물리적 상태의 위치가 다른 곳에 있는 것 뿐 입니다. 따라서 반도체 기술뿐 아니라 미래를 바꿀 반도체 기술을 알기 위해서도 결국엔 물리를 이해해야 한다고 생각합니다.

이번 대담은 저에겐 새로운 관점의 물리학에 대해 생각해 볼 수 있었던 시간이었습니다. 특히, 물리학이라는 학문을 배운 우리 구성원들이 저마다 다른 부서에서 서로 다른 업무를 하고 있다는 것과 다른 구성원들이 생각하는 물리학과 반도체에 관한 의견을 들어볼 수 있어서 정말 뜻깊은 시간이었다고 생각합니다.

민태원 TL 반도체를 비롯해 미래를 만들어 나갈 핵심 기술에 물리학이 얼마나 중요한지 다시 한번 느낄 수 있었습니다. 특히 메모리 반도체는 컴퓨터의 성능 향상을 위해 더 작은 크기와 더 많은 트랜지스터를 집적하는 것이 중요한데, 이러한 부분은 언젠간 한계에 부딪히게 될 것이거든요. 결국엔 완전히 새로운 개념의 반도체가 필요하게 될 것이고, 새로운 반도체를 만들기 위해선 물리학에 대한 충분한 이해가 반드시 필요하다는 것을 느꼈습니다.

SK하이닉스의 HBM은 이러한 새로운 콘셉트의 대표적인 모델이라고 생각하는데요. HBM뿐 아니라 321단 낸드플래시 등 우리가 개발하고 생산하는 모든 제품들이 세계 최고의 기술력을 확보하는 데도 결국에는 물리학적 이해와 활용이 아주 큰 역할을 했다고 생각합니다. 앞으로도 SK하이닉스는 물리학적 이해와 활용을 통해 반도체 산업을 이끌어가는 리더가 될 것이라고 생각합니다.

조상혁 TL 이번 대담 덕분에 양자컴퓨터와 뉴로모픽 반도체 등 미래 컴퓨팅 기술에 관해 정말 많은 것들을 알 수 있었습니다. 제가 실제로 업무 과정에서 다루는 물리학 이론과는 또 크게 다른 내용들이다 보니 더 넓은 관점에서 물리학을 이해할 수 있어서 정말 좋았습니다.

그리고 물리학을 배울지 말지 고민하거나 반도체 업계에 종사하고 싶은 학생들에게 꼭 한마디 전하고 싶은 게 있는데요. 반도체를 비롯해 미래 기술을 개발하기 위해 물리학의 학문적인 내용이 반드시 필요한 것도 맞지만, 물리학은 이보다 더 큰 도움이 될 것이라고 말씀드리고 싶어요. 제 경험상 물리학을 배우면서 다양한 실험을 했던 것이 실제로 반도체 업계 현장에서 정말 많은 도움이 됐거든요. 특히 물리학적 관점에서의 실험과 새로운 반도체를 개발하기 위해 테스트하는 과정들은 매우 닮았습니다. 새로운 반도체를 개발해 세상을 바꾸고 싶다면, 물리학을 배워 다양한 실험을 해보는 것도 아주 좋을 것 같습니다.

임경선 TL 사실 물리학은 굳이 반도체 산업이 아니더라도 아주 중요한 학문이라고 생각하는데요. 특히 물리학을 좋아하는 사람들은 평소 가지고 있는 수많은 호기심들을 해결하기 위해 어떻게 문제를 정의하고 해결해 나갈지 결정하는 능력이 탁월하다고 생각합니다. 또한 물리학을 배우다 보면 무한한 자연의 이치에 겸손해지는 마음을 갖게 되는데요. 이러한 것들은 다양한 분야에서 굉장한 도움이 될 수 있을 것 같다고 생각하고 있습니다.

이번 대담을 통해 양자컴퓨터나 뉴로모픽 반도체와 관련해 SK하이닉스에서 많은 관심을 두고 연구와 개발을 이어가고 있다는 것을 느꼈는데요. 미래를 바꿀 다양한 반도체를 개발하고, 미래 기술에 우리의 반도체를 어떻게 활용할 수 있을지 고민하는 것이 얼마나 중요한지를 다시 한번 생각해 볼 수 있는 계기가 됐습니다. 또한, 학교와 기업이 긴밀히 소통하면서 더 발전된 형태의 연구와 개발이 좀 더 확대되었으면 좋겠다는 생각도 했습니다.

김범준 교수 물리학을 배우면 자연의 이치에 겸손해진다는 말은 정말 크게 공감이 되네요. 물리학을 배우는 사람들의 특징 중 하나가 본인이 어느 정도 열심히 공부했다고 하더라도 아직 모르는 게 많다고 느낀다는 점인데요. 무한한 물리학의 세계를 접한 사람들은 끊임없이 배워도 부족하다는 겸허한 마음을 갖게 되는 것이죠. 이번에 저희가 나눈 대담에서도 마찬가지였습니다. 양자컴퓨터를 비롯해 반도체와 관련된 다양한 물리학 내용들을 정말 잘 설명해 주셔서 저도 많은 것들을 배워가는 시간이었습니다.

SK하이닉스 구성원들을 보면서 물리학을 배우고 싶어 하는 학생들이 더 늘어났으면 좋겠다는 생각이 드네요. 특히 물리학을 전공한 선배들이 미래를 바꿀 기술을 개발하고 있다는 것을 더 많은 물리학과 학생이 알게 되고, 본인이 직접 미래를 바꿀 새로운 기술들을 개발할 수 있기를 진심으로 바랍니다. 이번 대담 정말 즐거웠고 많은 의견 주셔서 감사했습니다.

지금까지 김범준 성균관대학교 물리학과 교수와 SK하이닉스 김환영 TL, 민태원 TL, 임경선 TL, 조상혁 TL의 대담을 살펴봤다. 이번 대담을 통해 우리는 인류의 운명을 바꾼 컴퓨팅 기술이 물리학에서부터 시작되었고, 미래를 바꿀 기술 역시 물리학을 통해 개발될 것이라는 사실을 확인했다. 앞으로도 물리학의 연구가 반도체를 어떻게 발전시키고, 이러한 변화의 중심에 서있는 SK하이닉스는 또 어떤 새로운 반도체로 세상을 바꿔나갈지 함께 기대해 보자.

sk하이닉스_뉴스룸_추천_시리즈

]]>
/thirds-eyes-kimbeomjun-4/feed/ 0
[DGIST 시리즈 1편] 메모리 기반 연산 가속기: 저장과 연산을 동시에 하는 진정한 두뇌로 /dgist-series-1/ /dgist-series-1/#respond Wed, 22 Mar 2023 21:00:00 +0000 http://localhost:8080/dgist-series-1/ 뉴스룸에서는 대구경북과학기술원 교수 7명과 함께 반도체 기본 모듈과 반도체 적용 사례, 메모리, 인터페이스 회로 등을 주제로 총 7편의 칼럼을 연재하고자 한다.
 첫 순서는 전기전자컴퓨터공학과 윤종혁 교수로부터 컴퓨팅 프로세스의 발전과 이러한 발전이 인공지능(AI, Artificial Intelligence)기술에 어떤 기여를 하고 있는지를 알아보고 CPU, GPU, 그리고 메모리 반도체의 역할과 성능이 어떻게 컴퓨팅 프로세스의 발전에 기여하는지 알아볼 것이다.
 

※ 대구경북과학기술원(DGIST, Daegu Gyeongbuk Institute of Science and Technology): 반도체 융합기술, 뇌공학, 마이크로레이저 등 다양한 첨단 과학 기술을 연구하고 있다. 특히 반도체 분야에서는 전문적인 연구개발(R&D)과 함께 캠퍼스 내 반도체 제조 시설을 구축 운영하고 있다.

일상으로 스며든 인공지능 기술

멀게만 느껴지던 인공지능이 점차 우리에게 가까워지고 있다. 최근에 뉴스에서 끊임없이 언급되고 있는 챗GPT도 인공지능 기반의 기술이니 말이다. 하지만 20년 전만 하더라도, 인터넷을 통한 자연어 검색 등 큰 규모의 서버에서 구현한 인공지능 정도만이 그나마 유용했다(엄밀하게 말하면 이러한 것들을 인공지능이라고 부르기도 전의 시대다). 이에 비해 당시 컴퓨터, 스마트폰 등 말단 장치(엣지 디바이스*)에서의 인공지능은 아주 미흡한 수준이었다. 1990년대 말에서 2000년대 초까지 마이크로소프트 오피스(Microsoft Office) 프로그램에 등장하던 길잡이 강아지를 기억하는 사람들은 이해할 것이다. 이 길잡이는 도움말 색인에 겹치는 일부 정보만 보여주거나 전혀 다른 정보로 응답했고, 심지어 기능을 끄는 것조차 쉽지 않아 사용자들에게 도움을 주기는커녕 불편하고 귀찮은 존재로 인식되곤 했다.

* 엣지 디바이스 (Edge Device) : 데이터 처리가 네트워크 중심에 위치한 클라우드가 아닌 엣지(가장자리)에서 이루어진다는 점에서, 기존 스마트 디바이스들과 구분해 ‘엣지 디바이스’라 지칭한다.

그렇다면 현재의 인공지능 수준은 어떠한가? 스마트폰의 사진 및 카메라 앱의 사례만 들어도 쉽게 확인할 수 있다. 지금은 스마트폰에도 신경망을 모사한 NPU* 등의 인공지능 칩들이 탑재돼, 굳이 서버의 힘을 빌리지 않아도 검색어만 입력하면 관련 사진을 분류해 볼 수 있고, 손쉽게 사진 내 객체를 편집할 수 있는 기능까지 기본적으로 지원하고 있다.

과거에는 왜 이러한 진보된 인공지능 기술이 없었을까? 2016년에 인공지능의 진보를 전 세계 사람들에게 각인시킨 ‘구글 딥마인드 챌린지 매치(이세돌-알파고의 바둑 대국)’ 이전에는 사람들이 인공지능 응용 분야에 대해 생각하지 않았던 것일까? 인공지능이 숨 쉬듯 주위에 존재하는 요즘엔 많은 사람이 알고 있을 이야기지만, 인공지능의 근본 원리는 1940년대에 제안됐으며, 그 실용성은 1970년대부터 2000년대 초까지 제프리 힌턴(Geoffrey Hinton) 연구 그룹에서 발표한 제한된 볼츠만 머신*, 역전파 알고리즘* 이론 등으로 이미 확보됐다. 오래전부터 인공지능의 이론은 확립돼 있었으나 그 응용 분야가 비교적 최근에야 발전하기 시작한 이유는, 인공지능 구현을 위한 연산 기능의 한계 및 데이터(신경망 가중치 및 결과값 등) 저장에 필요한 하드웨어 리소스의 한계 때문이었다.

* NPU(Neural Processing Unit, 신경망처리장치) : 머신러닝 구동에 최적화된 프로세서. 소프트웨어를 통해 인공신경망을 만들어 학습해야 하는 GPU와 달리 하드웨어 칩 단위에서 인공신경망을 구현하고자 했다는 특징이 있다.
* 제한된 볼츠만 머신(Restricted Boltzmann Machine, RBM) : 가시층 노드와 은닉층 간에 간선이 없는 볼츠만 머신으로 입력 집합에 대한 확률 분포를 학습할 수 있는 생성 확률적 인공 신경망이다.
* 역전파 알고리즘(Backpropagation algorithm) : 다층 구조를 가진 신경망의 머신 러닝에 활용되는 통계적 기법의 하나로, 예측값과 실제값의 차이인 오차를 계산해 이를 다시 반영해 가중치를 다시 설정하는 학습 방식

▲ 연산 및 메모리 접근에 따른 에너지 소모

우리가 흔하게 알고 있는 CPU와 GPU가 결국 최적의 MVM 연산을 지원하지 못하므로, 학계 및 산업계에서는 신속하고 에너지 효율적인 연산을 지원하기 위해 ASIC* 설계를 기반으로 한 연산 가속기들을 개발하고 있다. ASIC 칩들은 주로 디지털 연산 가속기이다. 큰 크기의 MVM에 특화된 연산 유닛을 많이 구현하고, 인공지능 네트워크 구조에 따라 가변 크기 MVM도 쉽게 지원할 수 있다.

그렇다면 디지털 연산 가속기는 인공지능 연산 하드웨어 자원을 확보할 수 있는 궁극적 해결책일까? 앞서 언급했듯, 인공지능 하드웨어의 요점은 MVM을 얼마나 효율적으로 빠르게 연산하는지에 달려있다. CPU, GPU, ASIC 기반 디지털 연산 가속기로 넘어오면서 연산 유닛의 효율성과 연산 속도는 증가했는데, 전체 시스템의 연산 효율성도 그에 정비례해 증가했을까? 이를 계산하기 위해서는 연산 전체 동작에 어떤 에너지가 얼마나 드는지 알아볼 필요가 있다.

컴퓨터의 일반적 구조인 폰 노이만 구조*에서는 연산 장치가 메모리에서 데이터를 읽어와 처리하고 다시 메모리로 보내는 방식으로 동작한다. MVM 연산은 인공지능 신경망의 입력과 메모리에 저장된 가중치 간의 곱 연산이므로, 1) 입력과 가중치를 연산 유닛까지 전달하는 에너지2) 이를 이용한 연산 에너지가 전체 시스템의 연산 효율성을 결정한다. 이때, 입력은 외부에서 연산 유닛으로 직접 전달되므로 에너지 비중이 낮은 편이지만, 가중치의 경우 외부 D램에서 연산 유닛까지 데이터를 전달하는 데 연산 에너지 대비 약 500배 이상을 소모한다. 2020년 11월 미국 DARPA 워크숍에서 필립 웡(Philip Wong) 스탠퍼드대학교 교수도 메모리에서의 에너지 소모가 최대 연산 에너지 효율성을 제한한다고 했다. 즉, 우리가 연산 에너지를 줄이는 등 연산 효율성을 높이기 위해 노력했으나, 사실은 가중치를 메모리에서 읽고 쓰는 데 대부분의 에너지가 쓰이고 있었다. 이는 전체 시스템의 연산 효율성을 개선하기 위해 메모리의 읽기/쓰기 횟수가 줄어야 함을 의미한다.

* ASIC (Application Specific Integrated Circuit) : 일반적인 집적회로와 달리 특정한 제품에 사용할 목적으로 설계된 비메모리 반도체 칩
* 폰 노이만 구조 (Von Neumann Architecture) : 주기억 장치, 중앙 처리 장치, 입출력 장치의 전형적인 3단계 구조로 이루어진 프로그램 내장형 컴퓨터 구조. 오늘날 사용하고 있는 대부분의 컴퓨터가 이 기본 구조를 따르고 있지만, 병목 현상으로 인해 고속 컴퓨터의 설계에서 한계를 보인다.

▲ 폰 노이만 구조에서 PIM 연산 구조로의 변화

연산 효율성을 위한 PIM 기반 가속기의 두 가지 구조: IMC, NMC

이에 착안해 등장한 것이 폰 노이만 구조를 탈피한 PIM(Processing In Memory) 기반 연산 가속기다. PIM은 메모리 내에서 연산을 수행하는 구조로, 가중치는 메모리 내에 그대로 존재하고 입력이 전달돼, 연산을 메모리에서 수행 후 그 결괏값만을 출력해주는 방식이다. 그리고 이러한 방식은 크게 메모리 내 연산(IMC)*과 메모리 인접 연산(NMC)*으로 나뉜다. 이는 PIM의 의미를 메모리 회로 내 연산으로 볼 것이냐, 메모리 모듈 내 연산으로 볼 것이냐의 차이로 구분할 수 있다. IMC는 메모리 회로를 연산이 가능하도록 수정 설계해 ASIC으로 구현하는 것이고, NMC는 메모리 모듈(메모리 칩을 포함한 반도체 기판) 내에서 HBM* 등 가중치를 위한 고집적 메모리와 MVM에 특화된 ASIC이 같이 집적된 것을 말한다. 참고로 설명하자면, 학계에서 PIM은 주로 IMC의 의미로 사용하며, 산업계에서는 NMC의 의미로 사용된다.

▲ 메모리 내 연산(IMC, In-Memory Computing) 모델 예시

기존 폰 노이만 구조의 경우 CPU와 메모리 간 연결이 메인보드-커넥터-메모리 모듈(DIMM)* 등 다수의 PCB*로 구성돼 있다. 반면 NMC의 경우 SiP*, 3D IC 등을 활용해 PCB 레벨이 아닌 단일 패키지 내에서 메모리와 연산 ASIC이 연결돼 가중치 접근을 위한 메모리 읽기/쓰기에 소모되는 에너지 및 지연시간을 크게 줄였다. IMC의 경우 NMC 방식에서 더 나아가 메모리 내에서 연산을 수행함으로써 앞서 말한 에너지 소모와 지연시간을 획기적으로 줄인 연산 방식이다.

그렇다면 IMC 방식이 더 효율적으로 보이는데 왜 IMC와 NMC 방식은 공존하고 있을까? 여기에는 연산 크기의 가변성, 연산 및 메모리 집적도, 대역폭 등의 이유가 작용한다. NMC는 한국의 강점인 고집적 메모리 반도체를 그대로 활용하면서 MVM 크기를 가변적으로 지원하는 연산 ASIC을 인접 배치 및 추가하는 것만으로 PIM 연산 구조를 지원할 수 있다. 반면 IMC는 효율성은 뛰어나지만 기존 메모리 회로를 연산에 용이하도록 수정 설계할 필요가 있어 높은 연산 효율성 대비 집적도 면에서 손해를 보고, 이는 가중치 저장 용량의 손실 및 대역폭의 하락으로도 이어진다.

▲ 메모리 인접 연산(NMC, Near-Memory Computing)의 모델 예시

* 메모리 내 연산(IMC, In-Memory Computing) : 메모리가 직접 연산하는 기술, 주 연산 장치로 데이터를 이동하지 않고도 연산이 가능하기 때문에 매우 빠른 데이터 처리가 가능하며, 방대한 데이터를 빠르게 처리하고 분석하는 데 유리하다.
* 메모리 인접 연산(NMC, Near-Memory Computing) : IC패키지에 메모리와 연산 장치를 통합해 더 빠른 데이터 처리를 가능하게 하는 방법
* HBM(High Bandwidth Memory) : 여러 개의 D램을 수직으로 연결해 기존 D램보다 데이터 처리 속도를 혁신적으로 끌어올린 고부가가치, 고성능 제품
* 메인보드-커넥터-메모리 모듈(Dual In-line Memory Module, DIMM) : 여러 개의 DRAM 칩을 회로 기판 위에 탑재한 메모리 모듈로, 컴퓨터의 주기억 메모리로 쓰인다.
* PCB((Printed Circuit Board) : 전자 회로로 구성된 반도체 기판. 대부분의 전자 기기에 사용된다.
* SiP(System in Package) : 여러 블록을 개별적인 칩으로 구현한 후 수동 소자들까지 한꺼번에 단일 패키지에 결합한 하나의 완전한 시스템

PIM 성능을 결정짓는 가중치 용량과 이에 따른 연산 가속기 개발

한편, 연산 효율 외에도 저장 용량은 PIM에서의 중요한 성능 지표 중 하나다. 최근 오픈AI에서 GPT-3.5를 기반으로 개발한 챗GPT는 1,750억 개 이상의 가중치로 구성돼 있다. 그리고 각 가중치가 16비트 부동소수점(FP16)을 사용하므로 가중치 저장 용량에만 350GB 정도가 필요하다. 연산에 필요한 350GB의 가중치를 동시에 로드한 채로 연산할 수 없으므로, 결국 NMC의 연산 ASIC 또는 IMC 회로에서 많은 가중치를 활용할 수 있어야 가중치 업데이트 및 중간 결괏값 저장 횟수를 줄일 수 있다. 이에 따라 전체 동작 중 연산 동작을 수행하는 비율이 높아지고, 데이터 전송에 쓰이는 에너지는 줄어들게 되는 것이다. 이것만 고려하면 고집적 HBM을 활용한 NMC 기반 PIM 시스템이 더 주효한 접근으로 보인다.

그렇다면 큰 규모의 인공지능 시스템 외에, 엣지 AI에서는 어떨까? 엣지 AI에서는 단일 칩 내 모든 가중치를 탑재할 수 있는 응용 분야가 많이 존재한다. 엣지 AI는 배터리 기반으로 동작하는 경우가 많으며 초저전력 동작을 요구하기 때문에 메모리-연산 유닛 간의 데이터 이동에 소모되는 전력을 수용할 수 없는 경우가 많다. 따라서 말단 장치에서는 IMC와 같이 연산 에너지 효율이 높은 회로에 모든 가중치를 선탑재한 말단 엣지 AI 구현이 필요하다. 이때, 엣지 AI의 고도화를 위해서는 IMC 기반 PIM 시스템의 연산 효율성과 더불어 선탑재가 가능한 가중치 용량이 중요한 역할을 한다.

업계에서의 고도 인공지능을 위한 NMC 기반 PIM 시스템 연구 개발에 발맞춰, 학계에서는 엣지 디바이스 및 인공지능의 고도화를 위해 SRAM*, eDRAM*, D램 등의 휘발성 메모리 기반 PIM 연산 가속기와 RRAM*, PCRAM*, MRAM* 등의 차세대 비휘발성 메모리 기반 PIM 연산 가속기 설계 연구를 진행하고 있다. 휘발성 메모리 중 SRAM의 경우 CMOS 공정의 접근 용이성으로 인해 활발한 연구가 수행되고 있다. 전류 방식 연산부터 저항비, 전하 공유(Charge Sharing), 용량성 결합(capacitive coupling) 방식 등이 활용되고 있으며, 그중 커패시터*의 낮은 공정 편차를 활용하는 전하 공유 및 용량성 결합 방식이 SRAM-PIM 연산 가속기의 주된 연구 흐름이라고 할 수 있다.

▲ SRAM 기반 PIM 연산 가속기의 연산 방식 종류 (출처: B. Zhang et al., “PIMCA: A Programmable In-Memory Computing Accelerator for Energy-Efficient DNN Inference” IEEE Journal of Solid-State Circuits, pp. 1–14, 2022, doi: 10.1109/JSSC.2022.3211290)

비휘발성 메모리는 휘발성 메모리 대비 높은 집적도와 연산 효율성을 가지고 있고, 가중치 유지를 위한 전원 유지의 필요가 없어, 초저전력 엣지 디바이스에 더 적합하다. 비휘발성 메모리 중 MRAM은 다른 비휘발성 메모리 대비 낮은 ON/OFF Ratio(1과 0을 표현할 때의 저항값 비율)로 인해 다중 비트 인코딩 등에 불리한 편이어서, RRAM과 PCRAM 등의 높은 ON/OFF Ratio를 활용한 PIM 연산 가속기들이 많이 연구되고 있다. 다만 비휘발성 메모리는 소자별 저항값 편차가 크다는 점 등의 낮은 기술 성숙도로 인해 부속 회로 구현이 추가로 필요하다. 이 때문에 PIM 연산 가속기의 전체 면적당 집적도 및 연산 효율성 면에서 SRAM 등 휘발성 메모리 기반 PIM 연산 가속기에 뒤처지고 있으나, 소자의 기술 성숙도 측면에서 발전 가능성이 높다. 이를 반영해 한국에서도 많은 연구개발(R&D) 사업을 진행 중이다.

* SRAM (Static Random-Access Memory) : 전원이 공급되는 동안 데이터를 온전히 저장하는 메모리, 단 몇 초 만에 데이터가 사라지는 DRAM과 차이점이 있다.
* eDRAM (Embedded DRAM) : ASIC 또는 마이크로프로세서의 동일한 다이 또는 멀티 치프 모듈 (MCM)에 통합된 DRAM
* RRAM (Resistive Random-Access Memory, 저항성 메모리) : 유전체 고형 상태 재료에 대한 저항을 변경해 작동하는 비휘발성 RAM의 유형
* PCRAM (Phase-Change RAM, 상변화메모리) : 일부 재료의 변화를 이용해 데이터를 저장하는 반도체 메모리. PCM은 플래시 메모리와 DRAM의 특성을 모두 갖추고 있으며, 플래시 메모리와 마찬가지로 비휘발성이므로 전원이 차단돼도 정보가 손실되지 않는다. DRAM과 마찬가지로 PCM은 데이터를 빠르게 처리하고 전력 효율이 높다는 특징이 있다.
* MRAM (Magnetoresistive Random-Access Memory, 자기저항성 메모리) : 데이터 저장에 대한 자기 저항을 이용하는 비휘발성 반도체 메모리의 일종. 플래시 메모리처럼 MRAM은 전원이 차단돼도 정보가 손실되지 않고, DRAM처럼 데이터를 빠르게 처리해 전력 효율이 높다.
* 커패시터 (capacitor): 메모리 반도체에서 데이터가 저장되는 장치를 지칭하며, 데이터가 담기는 방이라고 볼 수 있다.

더 나은 인공지능 실현을 위한 과제

과거 인공지능 개발은 앞서간 이론과 그것을 실현하기에는 부족한 하드웨어 간의 간극에 의해 발목이 잡혔다. 시간이 지남에 따라 하드웨어에서 CPU, GPU, 구글의 TPU* 등의 디지털 연산 가속기가 개발돼 오면서 인공지능 실현에 걸림돌이 되던 연산량 부분에서 획기적인 개선이 이뤄졌다. 여기에 더 나아가 PIM 연산 가속기의 등장으로 기존에 데이터 저장만을 담당하던 메모리가 이제는 연산을 포함한 두뇌의 역할에 다가서고 있다. 하지만 연산 분해능, 저장 용량, 지연 시간, 전력 소모 등 회로의 특성이 명확하지 않아, 지금까지 PIM 연산 가속기 연구는 갈 길이 멀다. 이를 극복하기 위해 앞으로는 하드웨어 영역에서 인공지능 알고리즘 지원을 위한 성능 개선 연구가 꾸준히 이뤄져야 한다. 또한 알고리즘 영역에서도 PIM 연산 가속기 특성을 고려한 인공지능 신경망의 최적화가 필요하며, 이를 기반으로 회로와 알고리즘의 결합이 PIM 연산 가속기 연구에서의 중요한 축이 될 것이다.

* TPU(Tensor Processing Units) : 구글이 자체 개발한 인공지능 전문 칩으로, 구글의 AI 기계 학습 엔진인 텐서 플로우에 최적화돼 있다. 2016년 1세대, 2017년 2세대 TPU가 공개됐다.

 

※ 본 칼럼은 반도체에 관한 인사이트를 제공하는 외부 전문가 칼럼으로, SK하이닉스의 공식 입장과는 다를 수 있습니다.

]]>
/dgist-series-1/feed/ 0
[인공지능과 반도체 2편] 챗GPT 등 인공지능의 연산을 높여준 세계 최고 성능 D램, HBM의 등장(2/7) /jeonginseong-column-ai-2/ /jeonginseong-column-ai-2/#respond Mon, 13 Mar 2023 15:00:00 +0000 http://localhost:8080/jeonginseong-column-ai-2/ 인공지능(AI, Artificial Intelligence)은 최근 전 세계를 가장 뜨겁게 달구는 키워드다. 그래서 SK하이닉스 뉴스룸에서는 [인공지능 반도체] 코너를 마련, 인공지능 전문가 정인성 작가와 함께 총 일곱 편의 기고문을 연재할 예정이다.

이번 연재는 컴퓨터와 반도체의 관점에서 인공지능을 살펴볼 것이다. 기존의 프로그램이 인공지능으로 바뀌면서 0과 1의 세계가 구체적으로 어떻게 변화하는 것인지 알아보고, 이를 실행하는 데 필수적인 반도체는 어떤 중요한 역할을 해야 하는지 확인해볼 것이다. 이를 통해 반도체는 인공지능을 포함한 새로운 ICT 기술의 등장에도 두려워하기보다는 세상을 변화시킬 혁명의 주인공이 될 것이다. (필자 주)

인공지능 시대의 개막

2012년, 사물 인식 대회였던 이미지넷 챌린지(ImageNet Challenge)에서 이변이 일어난다. 이미지넷 챌린지는 전 세계에 있는 사물 인식 알고리즘에 동일한 데이터를 준 뒤, 주어진 데이터 내에서 누가 더 정확하게 사물을 분류하는지 겨루는 대회다. 2012년 전까지 이 대회는 매해 극히 적은 수준의 정확도 개선이 일어나고 있었지만, 인공신경망 알렉스넷(AlexNet)이 대회에 등장하면서 그 흐름이 바뀐다.

알렉스넷은 수많은 사물 데이터를 인공신경망에 투입함으로써 신경망을 학습시키는 방식으로 만들어졌다. 알렉스넷은 기존의 사물인식 알고리즘과는 다르게 동작했다. 사진에 복잡한 처리를 하고 각종 특징을 뽑아내어 알고리즘에 전해주는 대신, 사진을 그대로 투입하면 인공신경망이 결괏값을 스스로 판단해내는 방식으로 동작했다. 알렉스넷은 대회에서 압도적인 차이로 우승했고, 이후 이미지넷 챌린지의 승자는 전부 인공신경망으로 변화하게 된다. 인공지능의 시대가 열렸음을 보여주는 상징적이고 결정적인 사건이었다.

인공지능이 메모리에 던진 과제

알렉스넷은 처음부터 GPU* 사용을 염두에 두고 만들어진 인공신경망이었다. 앞서 설명했듯 사물 인식 프로그램(인공지능)을 만들기 위해서는 수십억 개의 인공 뉴런 사이 연결 강도를 올바른 값으로 지정해줄 필요가 있다. 하지만 올바른 값은 단 한 번에 찾아낼 수 없다.

* GPU(Graphics Processing Unit) : 각종 대규모 병렬 연산에 강점을 가진 반도체. 본래 그래픽 처리에 사용되었으나, 인공지능 기술이 대규모 병렬 연산을 통해 구현 가능하다는 사실이 알려지면서 최근 인공지능 분야에서 큰 인기를 끌고 있다. GPU와 인공지능의 관계를 더욱 자세히 알고 싶다면 지난 칼럼을 참고바란다.

jung_in_sung2-2_1

▲ 이미지넷 챌린지 TOP5 모델의 정확도는 2011년 73.8%를 기록했으나, 2012년 알렉스넷이 등장함에 따라 가파르게 상승, 2016년 93.95%에 다다르게 된다.

연구원들이 찾아낸 방법은 수없이 많은 데이터를 투입해가며 서서히 올바른 값을 찾아가는, 연산이 매우 많이 필요한 과정이었다. 이 과정에서 정확도가 50%에서 51%, 그리고 90% 이상까지 서서히 높아졌다. ‘프로그래밍’이라는 단어보다는 ‘학습’이라는 단어가 더 어울리는 이유이기도 하다.

한편, 인공신경망이 더 많은 사물을 정확하게 구분하기 위해서는 주어진 사진 내에서 더욱 다양한 정보를 뽑아낼 수 있어야 한다. 그렇게 하려면 신경망의 크기를 키우고, 더 많은 데이터를 투입해 학습시켜야 한다. 그러기 위해서는 더 큰 메모리가 필요하다. 실제 알렉스넷 논문에도 메모리 용량의 중요성을 언급하는 부분이 있음을 알 수 있다.

In the end, the network’s size is limited mainly by the amount of memory available on current GPUs and by the amount of training time that we are willing to tolerate.*
* 출처. ImageNet Classification with Deep Convolutional Neural Networks (nips.cc)

이 글에서 알 수 있듯, 네트워크(신경망) 크기를 키우지 못한 이유 중 하나로 메모리 용량을 언급하고 있다. 당시에도 연구팀은 더 큰 메모리와 학습 시간만 주어졌다면, 더 높은 점수를 낼 수 있다고 생각했을 것이다. 메모리가 인공지능 시대에 중요한 역할을 한다는 사실은 이미 11년 전부터 알려져 있던 것이다.

실제로 알렉스넷은 이런 한계를 뛰어넘기 위해 GPU 2개(GTX 580)를 결합하는 테크닉을 사용하는 등 다양한 연구를 해야 했다. 이 문제에 대해 메모리 회사가 내놓은 답은 무엇이었을까?

HBM : 고대역폭 메모리의 부상

메모리는 다양한 특성을 가졌다. 이중 메모리 구매자가 중요하게 살펴보는 특성은 대역폭(Bandwidth), 반응 속도(Latency), 용량(Capacity)이다. 대역폭은 메모리에서 한 번에 빼낼 수 있는 데이터의 양을 의미한다. 반응 속도는 CPU나 GPU의 요청이 들어왔을 때 얼마나 빨리 첫 반응을 할 수 있는지를 뜻한다. 용량은 메모리 안에 얼마나 많은 데이터를 담을 수 있는지를 말한다.

jung_in_sung2-2_2

▲ 데이터가 메모리에서 CPU/GPU로 이동하는 모습을 적재물(데이터), 창고(메모리), 공장(CPU/GPU), 그리고 도로의 너비(대역폭)에 비유

메모리를 일종의 데이터 창고라고 한다면, 대역폭은 창고로 들어오는 도로의 너비다. 도로가 넓다면 한 번에 지나다닐 수 있는 자동차 수가 많음으로, 창고에서 많은 양의 데이터를 한 번에 빼낼 수 있다. 반응 속도는 도로 위에서 돌아다니는 자동차들의 속도다. 용량은 창고의 총 크기라고 생각하면 된다.

jung_in_sung2-2_3

HBM*은 대역폭과 용량에 중점을 두고, 반응 속도를 다소 양보한 제품이다. 따로 제조된 D램 칩을 여러 개 적층한 뒤, D램에 TSV* 공법을 이용해 칩을 관통하는 전극을 생성하는 것이다.

* HBM(High Bandwidth Memory) : 여러 개의 D램을 수직으로 연결해 기존 D램보다 데이터 처리 속도를 혁신적으로 끌어올린 고부가가치, 고성능 제품
* TSV(Through Silicon Via) : 수천 개의 미세한 구멍을 뚫고 이를 관통하는 전극으로 여러 개의 칩을 연결해 데이터를 전달한다. 기존 방식 대비 신호 전달 속도가 빠르고, 집적도(Density)를 확보하기도 훨씬 용이함

HBM은 일반 PC용 D램과는 매우 구분되는 장점이 있다. 일단, D램을 여러 개 적층했으므로 기반 면적당 높은 용량을 확보할 수 있다. 그뿐만 아니라 반도체 제조에 가까운 방식인 TSV를 사용하기에 좁은 면적에 여러 D램의 데이터 연결 통로를 촘촘하게 밀집시켜 만들 수 있다. 덕분에 고작 칩 하나 면적 수준에서 메모리 4개 이상의 대역폭을 가진다. 4차선 도로를 짓는 대신 4개 층을 가진 1차선 도로를 만드는 셈이다. 다만, 칩을 적층한 이유로 발열 해소에 문제가 생길 수 있어, 개별 칩의 동작 속도는 약간 줄었다. 이로 인해 반응 속도에서 약간의 손해가 발생한다.

jung_in_sung2-2_4

▲ 더 많은 대역폭을 가지는 HBM의 장점

본래 HBM은 고성능 그래픽 처리를 위해 탄생한 제품이다. 그래픽 처리는 모니터에 표시될 수백만 개의 픽셀(Pixel)을 계산해야 하기에 매우 높은 대역폭과 실수 연산 능력을 필요로 했다. 이로 인해 그래픽 처리는 컴퓨터 역사에서 일찌감치 CPU에서 독립하여 GPU, 혹은 VGA라는 이름의 그래픽 전용 가속 카드가 처리하게 발전했다.

메모리 회사들 역시 GPU가 요구하는 고대역폭 메모리를 GDDR(Graphics Double Data Rate)이란 이름으로 꾸준히 공급해 왔다. 그리고 인공지능학자들이 GPU를 이용해 돌파구를 열면서, GPU의 든든한 동반자였던 고대역폭 메모리 역시 날아오르게 된 것이다. 여기에 그래픽 처리를 능가할 정도로 높은 메모리 용량을 요구하게 되면서 HBM이 더욱 빛을 보게 된 것이다.

인공지능에 HBM이 필요한 이유: 학습

인공지능을 만드는 첫 단계는 학습이다. 학습은 과거의 프로그래밍으로 따지면 프로그램 자체를 구현하는 매우 중요한 작업이다. 연구원들은 신경망을 구성하고 난 뒤, 신경망을 초기화하고 본격적으로 학습 작업에 들어간다.

신경망 학습을 위해서 연구원들은 수만~수백만 개의 데이터를 준비한다. 이 데이터는 단순한 사진, 글자 등의 조합이 아니다. 연구원들은 문제-정답으로 한 쌍을 갖춰준 뒤 신경망이 특정 문제를 풀었을 때 오답을 내면 에러를 줄이는 방향으로, 신경망 내부 수백~수백억 개의 뉴런 연결 강도를 조정해 주고, 정답이 나왔을 경우 정답을 더 말하는 방향으로 연결 강도를 조정해 준다. 이는 24시간 내내 GPU를 구동해도 수시간, 수개월이 걸리는 매우 고된 작업이다. 학습 과정에서 각 인공 뉴런 사이의 연결 강도는 수십만 번 이상 변화한다.

당연하지만 이 작업을 빠르게 하기 위해서는 학습 데이터가 최대한 연산 장치에 가까이 있어야 한다. 먼 곳에 있는 학습 데이터를 가져와야 할 경우 학습 데이터를 전송하는 데 너무나 많은 시간이 들기 때문이다. 당연히 GPU 칩과 최대한 가까운 곳에 메모리를 두려 하게 된다. GPU 회사가 HBM의 큰 고객이 될 수밖에 없는 이유다.

또한 짐작할 수 있겠지만, 학습 과정에서 사용되는 메모리 용량은 추론* 시에 사용되는 메모리보다 훨씬 크다. GPU 내부 메모리에는 학습 대상 인공신경망 + 학습시킬 데이터 배치(Batch)* + 각종 연구 개발용 정보 등 다양한 데이터가 들어가야 하기 때문이다. GPU 내부에 한 번에 배치를 많이 넣을수록 학습이 안정적으로 진행될 수 있다. 실제로 신경망의 크기가 1이라고 하면, 학습 데이터에 사용되는 메모리가 4~5 이상 되는 경우도 있다.

* 추론 : 인공신경망이 실제로 문제를 푸는 행위
* 배치(Batch) : 일종의 인공신경망 학습 단위. 데이터의 묶음으로 구성됨

jung_in_sung2-2_5

▲ GPU와 메모리가 하는 일, GPU는 메모리에 저장된 인공신경망 일부와 데이터 일부를 지속적으로 가져와 연산(학습 및 추론)하고 중간 산출물과 최종 결과 등을 메모리에 저장하는 과정을 반복한다.

고성능 GPU는 한 번에 처리 가능한 연산량도 크기 때문에, 한 번에 많은 데이터가 GPU 코어에 투입되어야 제 성능을 발휘할 수 있다. 거대한 재고 창고와 공장을 자전거 도로로 연결하면 공장이 쉴 수밖에 없다. 따라서 거대한 공장에는 넓은 도로가 필요하듯, 고성능 GPU 역시 큰 대역폭을 필요로 하는 것이다.

인공지능에 HBM이 필요한 이유 : 추론

한편, HBM은 학습뿐만 아니라 추론에서도 강력한 힘을 발휘하고 있다. 최근 챗GPT 등 초거대 언어 모델이 대두하기 시작했는데, 이들은 추론에도 매우 큰 메모리가 필요하다. 일반적으로 추론용 GPU는 NVIDIA T4 등 학습용 GPU보다는 메모리가 적은 GPU 모델이 사용된다. 하지만 초거대 모델의 경우 8~16GB 정도의 메모리로는 추론을 돌릴 수 없다.

지금 유행하는 챗GPT의 경우 자료형 선택에 따라 320~640GB 정도의 메모리를 사용할 것으로 예상된다. 이는 현재 필자의 작업용 컴퓨터 메모리의 10배 이상인 어마어마한 수치다. 컴퓨터 본체도 아니고, 부속으로 달리는 GPU가 이런 큰 용량을 감당해야 하는 것이다.

혹자는 GPU 대신, 거대한 서버 컴퓨터에 CPU를 탑재한 뒤 일반 메모리를 대량으로 탑재해 추론에 사용하면 되지 않느냐고 생각할지 모른다. 실제로 메모리 용량만 놓고 비교할 경우, CPU에 메모리 640GB가 탑재된 서버가 GPU로 640GB를 확보한 것보다 더 싸다. 하지만 이 경우 추론 속도가 너무 느려 사용하기 힘들어진다. Hugging Face*에 공개된 GPT-2 알고리즘 기준 CPU에서 추론 시 처리당 0.05~0.1초의 시간이 필요했다. 이보다 100배 이상 거대한 GPT-3 모델의 경우, CPU에서 처리당 10초 이상이 소요된다는 의미다. 이는 상업적으로 사용하기 힘든 속도다. 결국 GPU를 엮어서 쓸 수밖에 없는 것이다.
* 참고. Accelerated Inference with Optimum and Transformers Pipelines (huggingface.co)

당연히 이런 대용량 메모리를 GPU에 탑재하기 위해서는, 면적당 메모리 집적도가 매우 높아야 한다. 현실적으로 메모리 회사가 1~2년 만에 D램 칩 자체 밀도를 3~4배 늘리는 것은 불가능하다. 그 때문에 HBM과 같은 면적 대비 밀도가 높은 칩이 필요한 것이다. 물론 HBM을 사용할 경우 GB당 가격은 일반 DDR 메모리보다 훨씬 높아지게 되지만, 인공지능 기술이 가져다주는 매우 높은 부가가치 덕분에 칩의 인기는 매우 높다.

HBM을 사용하는 NVIDIA A100 카드와 GDDR을 사용하는 NVIDIA A6000 카드의 메모리가 사용하는 면적 차이를 보면 그 힘을 알 수 있다. 두 그래픽 카드의 물리적 크기는 동일하지만, 사용 가능한 메모리 용량은 A6000이 24~48GB, A100이 40~80GB다. A100이 2배 가까이 더 크다. 대역폭 역시 A600은 약 800GB/s이지만, A100은 1,900GB/s로 2배 가까이 크다. A6000 대신 A100을 사용할 경우, 동일 컴퓨터에 신경망을 2배 집적할 수 있을 뿐만 아니라 개별 신경망 작동 속도까지 2배로 상승하게 되는 것이다.

jung_in_sung2-2_7

▲ 일반 메모리와 HBM 메모리의 인공신경망 구동 비교, GDDR 메모리 등 일반 메모리는 물리적 공간을 크게 차지하기에 GPU 카드 하나의 메모리 용량을 늘리는 데 한계가 있다. 반면 HBM은 동일 면적에서 더 높은 밀도를 가지기에 GPU 카드당 더 많은 메모리를 부착할 수 있고, 더욱 큰 용량의 인공신경망을 담을 수 있다.

HBM은 복잡한 카드 간 연결을 줄여주는 역할도 한다. 이미 알렉스넷에서 봤듯이, GPU 메모리 용량이 부족하면 신경망을 둘로 쪼개 각기 다른 GPU 카드에 탑재해야 한다. 최근 유행하는 초거대신경망은 A100 카드 한 장에 들어가지 못해 동일 카드를 여러 장 묶어 사용해야만 한다. 이로 인해 인공지능 초반에 알렉스넷이 해야 했던 것 이상으로 번거로운 일을 해주어야 할 것이다. 수백 GB의 신경망을 여러 개의 GPU에 나눠 담는 동시에 추론 속도에 큰 영향을 받지 않게 하는 등 여러 테크닉을 구사해야만 한다.

만약 단일 GPU에 탑재된 메모리가 더욱 크다면 이런 번거로움이 줄어든다. HBM은 동일 GPU 카드 면적에 더 높은 메모리를 제공할 수 있기에 꾸준히 인공지능학자들에게 큰 도움이 될 것이다. NVIDIA의 차기 학습용 GPU인 H100의 경우 80GB 메모리부터 시작한다. A100 역시 40GB에서 출발하여 80GB 카드를 출시했으므로 더 큰 메모리를 가진 H100 제품이 나올 것도 예상할 수 있다.

결론

HBM은 인공지능 시대가 열리면서 가장 주목받은 메모리다. 우리는 HBM이 대두하는 과정을 분명하게 이해해야 할 필요가 있다. 본래 메모리 비즈니스의 덕목은 ‘매해 같은 용량을 더 싸게 파는 비즈니스’가 핵심이었다. CPU 기반의 프로그램은 예측할 수 있는 방식으로 발전해 왔고, 매해 더 큰 용량의 메모리를 제공하면 되는 것이었다. 메모리 회사가 해야 할 일은 더 많은 프로그램을, 혹은 용량이 더 큰 동영상을 동시에 수행할 수 있게 하는 것이었다. CPU의 동작 방식상, 이 모든 데이터를 한 번에 접근하려 하진 않을 것이기 때문이다.

하지만 인공지능 기술이 나타나면서 상황이 바뀐다. 인공신경망 기반의 프로그램, 인공지능은 메모리 공간을 크게 차지할 뿐만 아니라, 주어진 시간 내에 접근해야 하는 메모리의 총량도 압도적으로 컸다. 이로 인해 용량 대비 가격이 비싸더라도, 더 큰 용량과 더 큰 대역폭을 제공하는 메모리를 원하게 된 것이다. 본래 메모리에 수백~수천만 원의 지출을 하는 것은 어마어마한 비용이었지만, 부가가치가 높은 인공지능 입장에서는 HBM 가격은 ‘고작 수백만 원’에 불과하다.

우리는 이런 사실을 잘 이해할 필요가 있다. 프로그램, 나아가 IT 환경의 변화는 비즈니스의 가정 자체를 뒤집어 놓을 수 있다는 것이다. 신기술로 인해 ‘대역폭과 총용량’의 가치가 ‘용량당 가격’의 가치를 넘어섰다. 앞으로 새로운 기술들이 나타날 때마다 이 기술은 과연 메모리에 무엇을 요구하게 될지 고민해 봐야 할 시대다.

※ 본 칼럼은 반도체에 관한 인사이트를 제공하는 외부 전문가 칼럼으로, SK하이닉스의 공식 입장과는 다를 수 있습니다.

]]>
/jeonginseong-column-ai-2/feed/ 0
[인공지능과 반도체 1편] 챗GPT 등 인공지능의 시대 : 프로그래밍과 인공지능, 그리고 GPU의 등장 (1/7) /jeonginseong-column-ai-1/ /jeonginseong-column-ai-1/#respond Thu, 23 Feb 2023 15:00:00 +0000 http://localhost:8080/jeonginseong-column-ai-1/ 인공지능(AI, Artificial Intelligence)은 최근 전 세계를 가장 뜨겁게 달구는 키워드다. 그래서 SK하이닉스 뉴스룸에서는 [인공지능 반도체] 코너를 마련, 인공지능 전문가 정인성 작가와 함께 총 일곱 편의 기고문을 연재할 예정이다.

이번 연재는 컴퓨터와 반도체의 관점에서 인공지능을 살펴볼 것이다. 기존의 프로그램이 인공지능으로 바뀌면서 0과 1의 세계가 구체적으로 어떻게 변화하는 것인지 알아보고, 이를 실행하는 데 필수적인 반도체는 어떤 중요한 역할을 해야 하는지 확인해볼 것이다. 이를 통해 반도체는 인공지능을 포함한 새로운 ICT 기술의 등장에도 두려워하기보다는 세상을 변화시킬 혁명의 주인공이 될 것이다. (필자 주)

전통적 프로그램이 동작하는 방식

우리는 이미 20년 전에도 컴퓨터 없는 세상을 상상할 수 없었다. 21세기 초, 인터넷 뱅킹이 생겨나기 시작했고, 각종 인터넷 쇼핑몰이 생겨났다. 수많은 회사가 엑셀과 같은 스프레드시트 프로그램을 사용해 회계 작업의 효율성을 높였고, 워드프로세서 프로그램들을 통해 수기 작업을 대체했다. 이후에는 개별 컴퓨터에 보관되던 작업물이 중앙 서버에 집중되기 시작했고, 각 직원은 자신의 물리적 위치에 구애받지 않고 일할 수 있게 됐다. 그렇다면 의문이 하나 생길 것이다. 대체 프로그램이란 무엇인가?

간단한 예를 들어 보자. 한 직원이 문서 내의 모든 행에 있는 숫자를 합하는 프로그램을 만들고 싶어 한다고 가정해보겠다. 그리고 현재 문서가 다섯 줄이라면 어떻게 해야 할까? 제일 첫 단계는 일단 ‘사람이라면 어떻게 하는지’ 고민하는 것이다. 아마도 마음속에 제일 먼저 떠오르는 것은 무언가를 ‘다섯 번 반복’하면 된다는 사실일 것이다.

▲ 그림 1 : 무언가를 다섯 번 반복하기 위한 코드의 흐름

하지만 이렇게 다섯 번 반복해서는 의미가 없다. 수를 모두 합해야 하기 때문이다. 반복할 때마다 사라지지 않고 누적되는 어떤 값을 만들어야 한다. 따라서 프로그램을 다음과 같이 개조할 수 있다.

▲ 그림 2 : 다섯 줄의 숫자를 합하는 프로그램의 흐름

해냈다! 드디어 프로그램의 구조를 만들었다. 이제 이 순서도에 맞춰서 프로그래밍 언어로 코드를 만들면 된다. 파이썬(Python)*이라는 프로그래밍 언어로 만든다면 아래와 같은 모습이 될 것이다. 프로그래밍 언어를 모르는 사람이라도, 아래 코드를 읽는 것에는 큰 어려움이 없을 것이다.

* 파이썬(Python) : 귀도 반 로썸(Guido van Rossum)이 개발한 프로그래밍 언어. 초보자도 사용하기 편하다는 특징이 있다.

▲ 그림 3 : 완성된 다섯 줄의 숫자를 합하는 파이썬 프로그램 코드

만약 지금 만든 프로그램을 다섯 줄의 한계 없이, 어떤 데이터가 입력되더라도 파일의 끝까지 더하는 프로그램으로 개선하고 싶다면 어떻게 해야 할까? 아마도 ‘다섯 번 반복’을 무언가 다른 것으로 바꿔야 한다는 짐작이 가능할 것이다. 다행히도 이미 ‘누군가’가 파일을 읽을 때 EOF(End of File)을 알려주는 기능을 추가했다. 이 기능을 활용하면 된다. 위 그림에서 빨간 네모 친 부분을 바꾸면 된다는 의미다.

이렇게 우리는 전통적 프로그램을 완성하고, 개선까지 해냈다. 우리는 이 과정에서 여러 가지 사실을 알 수 있다. 가장 중요한 것은 순서도를 만드는 것이다. 시키고 싶은 작업이 있다면, 프로그래밍 언어는 달라도 순서도의 모습 자체는 동일하다는 것을 명심해야 한다. 다시 말하면, 순서도를 떠올리지 못하면 프로그램을 만들 수 없다는 의미다.

또, 한 가지 사실은 프로그램을 만드는 과정에서 ‘누군가’ 다른 사람이 만든 코드에 크게 의존하게 된다는 것이다. 사실 위에서 구체적으로 언급하지는 않았지만, EOF 확인 이외에도 ‘파일을 읽는 것’, ‘모니터에 출력하는 것’ 등 역시 다른 누군가가 만든 함수다. 이런 기능들은 운영체제(OS, Operating System)가 제공하기도 하며, 누군가 다른 사람이 특정 프로그래밍 언어로 만들어 두기도 한다. 프로그래머들은 프로그래밍을 시작하기 전 이런 다양한 요소들을 고려한다. 예를 들어, 만약 내가 만들고 싶은 프로그램을 개발하기 위해선 데이터를 매우 특별한 방식으로 바꿔야 하는데, 그 기능이 자바(Java)*에 이미 존재한다면 자바로 코드를 만드는 것이 효율적이다.

우리가 매일 사용하는 워드프로세서, 스프레드시트, 웹 브라우저 등 대부분의 프로그램이 위와 같은 작업을 통해 만들어진 것이다. 그렇다면 인공지능 시대에는 무엇이 바뀌는 것일까?

* 자바(Java) : 오라클(Oracle)사가 개발한 프로그래밍 언어의 일종

신경망과 인공지능

위에서 우리가 살펴본 프로그래밍 방법은 완벽한 것 같지만 사실은 그렇지 않다. 여기에는 두 가지 문제가 있다. 하나는 프로그램이 스스로 배우지 못한다는 것이다. 우리는 프로그램을 고치기 위해 순서도를 고쳐야 했다. ‘다섯 번 루프’를 ‘EOF로 대체하지 않는 이상, 프로그램은 영원히 파일의 첫 다섯 줄만을 가져와 처리했을 것이다.

더 큰 문제는 따로 있다. 바로 인간이 순서도를 만들지 못하는 프로그램은 만들 수 없다는 것이다. 프로그래밍의 첫 단계를 해내지 못하니 다음 단계로 가지 못하는 것이다.

사진이 입력되면 동물의 종류(개와 고양이)를 구분하는 프로그램을 만들어야 한다고 해 보자. 여러분은 개와 고양이를 어떻게 구분하는가? 아마 바로 떠오르는 것은 주둥이의 모습일 것이다. 그래서 아래와 같은 순서도를 만들었다고 해 보자.

▲ 그림 4 : 개와 고양이를 구분하는 간단한 프로그램의 흐름

그런데 문제가 생긴다. 누군가 동물 주둥이가 가려진 사진을 두 개 가지고 온 것이다. 이제 프로그램이 작동하지 않는다. 프로그래머는 놀라 허겁지겁 새로운 알고리즘을 만들기로 한다. 눈동자의 모양을 확인하는 코드를 추가하면 개와 고양이의 구분이 가능할 것이다. 하지만 새로운 개, 고양이 사진을 가지고 올 때마다 이런 일이 계속 생겨날 것이다. 위와 같은 순서도 기반의 프로그램으로는 도저히 개와 고양이를 구분하는 안정적인 프로그램을 만들 수 없을 것이다. 현실에서는 개와 고양이를 구분하는 눈, 코 등의 요소들을 찾아내는 것도 힘든데, ‘주둥이, 눈동자 모양’만 골라내는 코드를 만드는 것 역시 매우 힘들다. 특정 사진에서는 쉽게 찾아낼 수도 있지만, 수백만 개의 다양한 사진에서 특정 요소를 골라내기는 매우 어려운 일이다.

▲ 그림 5 : 개와 고양이 구분하는 프로그램을 구성하기란 매우 어렵다.

하지만 인간은 사진을 보면 ‘척 보면 딱’ 개와 고양이를 구분해낸다. 스스로 어떻게 구분했는지는 잘 모르지만, 할 수 있다. 그렇다면, 인간과 비슷한 구조의 프로그램을 만든다면 어떻게 동작하는지는 몰라도, 개와 고양이를 잘 구분할 수 있게 될 것이라는 가정이 가능하다. 따라서 아래의 구조와 같은 프로그램을 만들어 보게 된다. 이제 프로그램에는 순서도가 없고, 수 없이 연결된 인공적인 신경세포가 가득하다. 이를 ‘인공신경망’이라 부른다.

인공신경망의 입력 부분에 사진을 투입하면, 출력 부분에서는 개인지 고양이인지가 출력되는 것이다. 이제 프로그래머가 해야 하는 일은 저 수많은(수백만~수백억 개) 신경세포들 사이의 연결 강도를 지정해 주는 것이다. 하지만 순서도가 없으니 각 세포가 뭘 하는 것인지 하는지 알 수가 없다. 개와 고양이를 구분하기위해 첫 번째, 두 번째… 백만 번째 인공 뇌세포는 무엇을 해야 하는 건지 어떻게 알 수 있겠는가? 이 문제로 인해 인공신경망이라는 개념은 1960년대에 처음 등장했음에도 50년 가까운 세월 동안 빛을 보지 못했다. 우리가 학습이라고 부르는 것은 일종의 프로그래밍 방법이다.

▲ 그림 6 : 인공신경망이 동작하는 방식

* 입력층 : 입력을 받아들이는 층
* 은닉층 : 입력층으로부터 입력값을 받아 가중치를 계산하는 부분으로 가중치의 수정으로 인한 학습이 진행되는 층
* 출력층 : 결과를 출력하는 층

오랜 연구 끝에, 과학자들은 역전파(Backpropagation)*, 초깃값 세팅 등 다양한 방법을 개발했다. 위 방법들과 함께 대량의 학습 데이터를 투입할 경우, 우리들이 개별 세포들의 역할을 모르더라도 잘 동작하는 프로그램, 즉 인공지능을 만들 수 있게 된 것이다. 이렇게 해서 새로운 세상이 열리게 됐다. 새로운 이론들을 통해 신경망을 학습시키자, 신경망 내 다양한 은닉층은 각자의 역할을 가질 수 있게 됐다.

* 역전파(Backpropagation) : 맨 마지막 층의 값부터 비교하는 방법으로 학습하면서 차례차례 역으로 원하는 곳까지의 결과값을 얻어내는 과정

이 대목에서 우리는 반도체 엔지니어들이 인공지능 기술을 어떻게 접근해야 하는지 알 수 있다. 예를 들면, 우리가 인공지능의 ‘학습’이라고 부르는 것은 결국 수백만 개가 넘는 인공 뉴런 사이의 연결 세기를 ‘제대로’ 지정해 주는 일이었을 뿐이다. 반도체 엔지니어가 인공지능에 접근하는 방법에 대해 다음 예를 통해 설명해보겠다.

▲ 그림 7 : 인간의 얼굴을 찾아내는 가상의 인공신경망 예

<그림7>의 예는 사람의 얼굴만을 골라내 출력하는 가상의 인공신경망이다. 우리가 이 신경망을 구성한 뒤 학습시키게 되면, 각 층은 대략 위와 같은 역할을 가지게 된다. 일단 입력층에 가까운 은닉층이 원, 가로선, 세로선, 대각선 등 특정 도형들에 활성화가 되게 학습된다. 그다음 은닉층은 인간의 얼굴을 찾기 위해, 눈 코 입 등을 찾으려 한다. 이때 사진 원본 대신 그 전 단계 은닉층이 제공해준 정보를 사용하는 것이다.

눈을 탐지하는 은닉층은 눈이라는 신체 부위의 특징상, 원에는 크게 반응해야 하지만, 세로선에는 거의 반응하지 않아야 할 것이다. 만약 입을 찾아야 한다면, 가로선이 가장 중요하고 세로선은 별로 중요하지 않을 것이다. 과학자들이 발견한 학습 방법론의 의의는 사람이 일일이 눈, 코, 입 등을 얼굴 구분에 중요한 요소를 지정해주지 않아도 데이터만 투입해 주면 자동으로 내부의 신경망이 층을 나눠 위와 같은 역할을 가지게 만들 수 있다는 것이었다.

당연하지만 인공신경망을 키우고 은닉층이 깊어질수록 더욱 세밀한 분석을 할 수 있게 된다. 더 많은 은닉층이 있다면, 대각선에 반응하는 선이 학습 과정에서 생겨날 수 있고, 눈과 코 출력 결과를 또 모아서 눈과 코 사이의 거리를 확인하는 세 번째 은닉층이 생길 수도 있다. 이 과정에서 점점 인간 얼굴을 구성하는 더 많은 요소를 고려할 수 있게 되며, 정확도가 높아지게 되는 것이다.

현재 인공지능의 학습이란 것은 수많은 소수점을 변경하고 저장하는 것을 반복하는 것이다.’

이것이 여러분이 반도체를 알기 위해서 프로그램을 이해해야 하는 이유다. 위와 같은 이해를 해야만 이후 중요한 변화가 생겼을 때 대응할 수 있다. 만약 인공지능 기술의 트렌드가 바뀌어, 신경망의 크기가 매우 작아지면? 역전파를 대체할 학습 방법론이 생겨나면? 이런 세세한 트렌드 변화는 프로그램들이 원하는 반도체의 특성을 바꾼다. 만약 ‘인공지능은 큰 메모리가 필요하다’라고 암기식으로 접근한다면, 이때 잘못된 결론을 내리게 될 것이다.

프로그램을 위해 진화해 온 CPU

반도체 입장에서의 프로그램을 조금 더 자세하게 살펴보자. 앞서 우리는 순서도 기반으로 만들어진 프로그램을 살펴봤다. 이런 프로그램들은 그 자체로는 의미가 없으며, CPU(Central Processing Unit, 중앙처리장치)가 있어야만 의미를 가진다. 프로그래머는 앞서 만든 순서도를 컴퓨터가 이해하는 기계어로 변환한 뒤, 메모리에 저장한 다음 CPU에 프로그램을 실행해 달라고 요청하는 것이다.

위 예에서 알 수 있지만, 프로그램을 수행하기 위해서는 크게 세 가지의 연산 종류가 필요함을 알 수 있다. 하나는 덧셈, 뺄셈 등의 사칙연산, 메모리 입출력, 비교와 분기다. 분기라는 것은 조건에 맞춰 선택지를 택하는 것을 의미한다. 인간 입장에서 ‘1부터 5까지 더한다’라는 작업은 컴퓨터 입장에선 아래와 같이 보이게 된다. 일반적으로 CPU 내부에 레지스터라는 고속 저장소가 있으므로, 변수 2개(N, S) 정도는 메모리 접근 없이 처리할 수 있지만 설명을 간단히 하기 위해 이런 부분은 과감히 생략하겠다.

▲ 그림 8 : 연산 칩 입장에서 1에서 5까지 더하는 프로그램의 흐름과 CPU와 메모리의 역할

위 작업을 분석해 보면 메모리 접근과 산술 연산이 매우 빈번하지만, 분기 역시 자주 발생함을 알 수 있다. 이와 마찬가지로 현대 컴퓨터 프로그램의 상당 부분은 분기 처리로 이뤄져 있다. “ESC 버튼을 입력하면 → 현재 프로그램을 종료하라”와 같은 간단한 명령조차 분기다. “출금 버튼을 누르고 대상 계좌가 입력되면, 돈을 송금하라”와 같은 명령도 분기가 필요하다.

그렇다면 CPU가 계속 활용되기 위해서는 어떻게 해야 할까? 위 순서도에 따르면 세 가지 성능이 개선되면 된다. 산술 연산 속도, 분기 처리 속도, 메모리 접근 속도가 높아지면 된다. 위 예에서는 연산을 한 바퀴 돌 때 메모리 접근 6회, 산술 연산 2회, 비교 및 분기 1회가 포함돼 있다. 여기서 만약 메모리 접근과 산술 연산이 회당 1의 시간이 필요하고, 비교 및 분기에 10의 시간이 필요하다고 가정하면, 현재 작업 한 바퀴 수행에 걸리는 시간은 18(6*1+2*1+1*10)이다. 그런데 CPU가 비교 및 분기에 시간이 5로 개선된다면, 이 시간은 13으로 줄어 30% 가까이 빨라질 것이다.

CPU는 다양한 연산 종류와 분기 등이 섞여 있는 프로그램을 처리해야 했기 때문에 이 3가지 능력을 골고루 발전시키는 방향으로 발전했다. CPU 회사들은 미세화의 힘으로 얻어낸 새로운 트랜지스터들을 이런 능력을 향상하기 위해 아낌없이 투자했다. 기존 프로그램이 CPU만 바꾸면 빨라지게 되니, 새로운 수요는 계속 창출될 수 있었다. 지난 수십 년간 인텔의 CPU가 세계를 지배한 이유가 이것이다.

GPU의 등장과 인공지능

하지만 인공지능 기술이 크게 발전하면서 완전히 다른 형태의 프로그래밍이 생겨났다. 인공지능, 정확하게는 인공신경망 기반의 프로그램은 아래와 같은 구조로 움직인다. 과연 프로그램과 반도체의 입장에서 인공지능은 어떤 모습으로 보일까?

▲ 그림 9 : 연산 칩 입장에서 인공신경망의 구성

이 안에는 분기라는 것이 없다. 대신 산술 연산과 메모리 접근이 압도적으로 많다. 위에서 살펴본 CPU 기반 프로그램의 경우, 고작 몇 번의 연산과 분기만 처리하면 결괏값이 출력됐다. 하지만 인공신경망은 수백~수억 번의 연산을 거쳐야 결괏값을 출력할 수 있다. 실제로 인공신경망은 CPU 기반의 일반적 프로그램보다 코드의 크기가 매우 크다. 이런 인공신경망을 빠르고 효율적으로 동작시키기 위해서는 당연히 수천 개의 숫자 연산을 동시에 수행할 수 있으면서, 큰 메모리에 빠르게 접근할 수 있는 능력이 중요시된다. 따라서 위와 같은 프로그램은 CPU에서는 효율이 매우 낮다.

이는 인공지능 과학자들에게 큰 문제였다. 1970년대 인공지능 시도가 좌절된 원인 중 하나이기도 했다. 만약 위 문제가 해결되지 않으면, 이론적 돌파가 생겨도 무용지물이 될 것이다. 이 문제는 반도체 기술의 발전이 해결했다. GPU(Graphics Processing Unit, 그래픽처리장치)가 등장한 것이다.

GPU는 본래 컴퓨터의 그래픽 처리를 전담하기 위해 설계된 반도체 칩이다. GPU는 우리가 보는 화면에 그림을 빠르게 그려주는 일을 한다. 그래픽 작업의 경우, 분기가 필요치 않고 픽셀과 픽셀의 선후관계 없이 위치마다 각각의 색상 값을 계산해서 그려주면 된다. 이처럼 분기 없이 동시에 여러 작업이 가능한 GPU는 그래픽을 구현하는 작업에서 CPU보다 압도적인 효율을 보이며, 빠르게 발전했다. 이 과정에서 우리가 아는 NVIDIA가 떠오르게 된다.

NVIDIA는 그래픽 시장을 장악한 뒤에도 지속해서 GPU의 새로운 용도를 찾아다녔다. 이런 과정의 일환으로 2007년, CUDA 등 GPU 기반 프로그램 개발을 도와주는 도구를 만들어왔다. 그리고 인공지능 기술의 이론적 돌파가 진척되자, 과학자들은 더 빠르게 인공지능 개발을 도와줄 수 있는 칩을 찾아 나섰다. 그들은 GPU를 적극적으로 채용했고, GPU를 사용할 경우 5배 이상의 성능 향상을 이룰 수 있음을 확인했다. 인공지능을 구현하기에 CPU는 분기 예측 등 필요치 않은 곳에 트랜지스터를 낭비하는 비효율적인 칩이었다. 이렇게 이론적 돌파와 새로운 반도체가 만나 세상을 바꿀 인공지능(AI) 혁명*이 시작된다.

그리고 이 국면에서 빼놓을 수 없는 반도체가 또 있다. 바로 메모리다. 인공신경망의 크기는 기존 CPU 기반 프로그램보다 매우 거대하다. 인공신경망은 어딘가 저장돼 있어야 하므로, 인공지능에 사용되는 GPU는 큰 메모리가 필요하다. 이 때문에 인공지능 시대에 메모리 반도체 기업들 역시 주목받는 것이다.

* 출처 : Large-scale Deep Unsupervised Learning using Graphics Processors, Stanford Univ, 2009

프로그래밍 방법론에서 반도체까지

이번 편에서는 새로운 프로그래밍 방법론이 반도체 입장에서 어떻게 보이는지를 개략적으로 알아봤다. 프로그램은 인간이 생산적인 일을 하기 위한 수단이다. 프로그램은 순서도를 이용한 전통적인 방법으로도 만들 수 있고, 인공신경망 학습 방식으로 만들 수 있다. 그리고 사용자들은 순서도를 이용해 만든 프로그램과 인공신경망 중, 자신이 원하는 프로그램을 잘 돌리는 반도체를 택하는 것뿐이다. 만약 사용자가 엑셀과 같은 기존의 프로그램을 돌리고 싶다면 고성능 CPU를 이용할 것이고, 인공지능 기반의 언어 생성 등을 하고 싶다면 GPU를 이용하면 될 것이다.

이 글을 통해 후배, 동료 여러분에게 하고 싶은 말은 기술과 기술의 관계를 이해하며 나아갔으면 한다는 것이다. 캐나다의 연구원들은 기존 순서도 형태의 프로그램으로 해낼 수 없던 수많은 일을 인공신경망으로 해냈다. 그리고 인공신경망 구동은 기존 프로그램과 비교해 더 많은 사칙연산 횟수와 메모리가 필요했던 것일 뿐이다. 이러한 개선은 결국 위에서 살펴본 분기 속도를 2배로 올렸더니 전체 프로그램이 수십 퍼센트(%) 빨라졌던 것과 다르지 않다. 이런 사실을 잊지 않는다면, 이후에 새로운 프로그래밍 기술이 생겨났을 때 그 프로그램이 어떤 연산을 요구할지, 어떤 형태의 메모리를 요구할지도 알 수 있을 것이다.

다음 편부터는 인공지능 기술과 그 주변을 이루는 생태계를 살펴볼 것이다. 그리고 그 생태계들이 가지고 있는 한계와 어려움을 찾아보고, 반도체가 이를 어떻게 도와줄 수 있을지 살펴볼 것이다.

※ 본 칼럼은 반도체에 관한 인사이트를 제공하는 외부 전문가 칼럼으로, SK하이닉스의 공식 입장과는 다를 수 있습니다.

]]>
/jeonginseong-column-ai-1/feed/ 0
반도체가 인공지능(AI) 역사를 바꾼 결정적 순간들 /jeonginseong-column-ai/ /jeonginseong-column-ai/#respond Wed, 20 Jul 2022 20:00:00 +0000 http://localhost:8080/jeonginseong-column-ai/ 20세기 초, 컴퓨터가 발명되면서 인류사에 큰 변화가 생겼다. 과거에는 수많은 사람들이 시간을 써야 했던 각종 문제들을 자동으로 처리할 수 있게 된 것이다. 인간은 컴퓨터에게 프로그램이라는 해야 할 일 덩어리를 던져 주기만 하면 되었다. 컴퓨터는 반도체 기술에 힘입어 이 작업을 매우 정확하고 빠르게 처리할 수 있었다. 이러한 변화는 인간을 삶을 충분히 편리하게 만들었다. 하지만 인간은 거기서 멈추지 않았다. 과학자들이 원한 것은 프로그램이 스스로 주변 환경에 맞춰 변하는 것이었다. 스스로 배워서 변하는 프로그램, 즉 인공지능(Artificial Intelligence, AI)이다.

인공지능을 구현하는 길은 험난했다. 의사결정나무(Decision Tree), SVM(Support Vector Machine)*, 회귀(Regression) 등 인공지능을 만들기 위한 다양한 시도가 있었지만, 원하는 수준의 인공지능을 만들지는 못했다.

* SVM : 데이터의 분류를 위해 기준 선을 정의하는 모델. 데이터가 주어졌을 때, SVM 알고리즘은 기존에 주어진 데이터 집합을 바탕으로 새로운 데이터가 어느 카테고리에 속할지 판단합니다.

▲ 상기 이미지는 이해를 돕기 위한 참고용 이미지로 실제로는 더 복잡한 구조를 가졌다.

그러던 2012년, 이변이 일어난다. ‘이미지넷(ImageNet)’ 사물 인식 대회에서 ‘알렉스넷(AlexNet)’이라는 인공지능 기반 알고리즘이 우승한 것이다. 알렉스넷은 인간의 뇌세포 구조를 이용해 제작된 인공지능으로, 기존 프로그램이 보여주지 못한 성능을 보여주었다. 이 성공으로 전 세계는 인공지능의 가능성을 깨닫게 되었고, 지금의 인공지능 붐(Boom)에 이르게 됐다.

▲ 알렉스넷의 구조도. 병렬적인 구조로 설계되었다는 점이 가장 큰 특징이다.(출처 : 원문 확인)

그런데 뭔가 이상하다. 인공지능을 만들려고 했으면 당연히 ‘인간’ 신경망을 본 뜬, 즉 ‘인공’ 신경망을 제일 먼저 만들어 봐야 했던 것 아닐까? 왜 60년이라는 먼 길을 돌아 이제서야 인공지능이 빛을 보게 된 것일까?

인공신경망, 반도체와 만나다

과학자들도 수십 년간 인간의 신경망을 따라 하려 시도했다. 문제는 인공신경망(Artificial Neural Network, ANN) 관련 이론적 발전이 더디고, 원리상 엄청난 연산 능력이 필요하다는 점이었다.

인공신경망 내에는 인간의 뇌세포에 해당하는 수백만 개에서 최대 수조 개의 값이 필요하다. 인공신경망을 학습시킨다는 것은 이 수많은 신경망 내의 값들을 하나하나 바꿔준다는 의미이다. 문제는 이 조정을 매우 자주 반복해야 한다는 것이다. 학습 1회(배치)마다 최대 수백만~수조개의 값을 바꿔줘야 하는데, 학습 횟수도 수만 회가 넘는 경우가 있다. 이러한 연산 능력 부족 문제는 1980년대까지 해결되지 않은 문제였다. 이 때문에, 2,000년대 이전까지는 당시 CPU 수준에서도 작동 가능한 SVM과 같은 대안 기술에 과학자들이 몰리게 되었다. 하지만 SVM과 같은 기술은 인공지능 기술 발전에 큰 성과를 내지 못했고, 인공지능 전반에 대한 관심이 줄어들었다. 연구비 또한 줄어들면서, 인공지능을 연구하는 사람들은 정부가 전폭적으로 인공지능 연구를 지원하는 캐나다로 이동하게 된다.

연산력 문제가 해결된 것은 2,000년대 후반 인공신경망이 반도체와 만나면서부터다. 특히, GPU(Graphics Processing Unit)가 연산 속도 개선에 중요한 역할을 한다. GPU는 원래 그래픽을 표시하는데 사용된다. 그래픽 연산은 CPU가 수행해야 하는 복잡한 연산들보다는 단순했으나, 대신 유사한 작업을 매우 반복해야 했다. 이런 이유 때문에 GPU는 CPU에 필요한 많은 회로들을 덜어내고, 대신 더 많은 연산 코어를 집적하는 방식으로 발전하였다. 연구자들은 이러한 GPU의 연산 능력이 인공신경망의 연산에 활용될 수 있음을 눈치챘다. 때 마침, GPU 제조사였던 엔비디아는 GPU 기반 프로그래밍을 도와주는 프레임워크 CUDA(Compute Unified Device Architecture)를 제공하고 있었다. CUDA는 GPU의 메모리 모델을 추상화해 좀 더 편하게 GPU를 이용할 수 있도록 도왔고, 과학자들은 GPU를 도입해 인공신경망을 수십 배 빠르게 구동할 수 있게 된 것이다.

▲ 인공신경망은 수백만 개의 인공 연결을 시뮬레이션 해야 한다

메모리 반도체 역시 인공신경망 발전에 큰 역할을 한다. 인공신경망 자체는 GPU에 들어갈 수 없으며, 반드시 메모리에 담아야만 한다. 하지만 인공신경망의 크기는 기존 소프트웨어들보다 거대하다. 게다가 빠른 인공지능 학습을 위해서는 신경망과 가까운 곳에 학습 데이터가 저장되어 있어야 한다. 메모리 반도체 회사들이 인공지능을 위한 고용량, 고대역폭 메모리를 제공했다.

반도체가 인공지능 기술의 동반자로 나선 것이다. GPU는 인공신경망 학습과 구동 속도를 높이고, 메모리 반도체는 더 많은 데이터를 담아 더 큰(깊은) 인공신경망을 만들어 볼 수 있게 된다. 이 같은 환경 변화의 결실이 2012년에 나타난 것이다.

인공지능 기술의 발전은 현재진행형이다

인공지능의 첫 성과 후 10년, 인공지능 기술은 우리 삶 곳곳에 자리 잡았다. 이제는 일상화된 안면 인식, 목소리를 통한 스마트폰 제어, 광학 문자판독(OCR), 실시간 번역 모두 인공지능 기술 덕분에 가능했다. 자율주행 자동차 상용화도 마찬가지다. 인공지능 기술의 발전은 여기에 머무르지 않고 창작의 영역에 도전 중이다. 네이버는 웹툰 자동 채색 서비스를 시범적으로 선보이기도 했으며, 오픈AI(OpenAI)는 인간이 요청한 대로 그림을 그릴 수 있는 인공지능 엔진 DALL-E를 공개했다.

▲ 유저가 요청한 “수프 한 그릇 + 괴물처럼 생긴 + 양털로 짠” 내용에 맞춰 그림을 그려 주는 DALL-E 2 (출처: openai.com/dall-e-2)

이처럼 인공지능이 우리 삶에 깊이 파고들자, 다양한 반도체 분야가 인공지능 산업에 뛰어들었다. GPU는 인공지능 성능 향상의 핵심으로 자리 잡으며, 인공지능 반도체 분야에서의 입지를 더욱 키웠다. 현재, 메모리 반도체 회사들은 HBM(High Bandwidth Memory)과 같이 GPU의 잠재력을 끌어낼 수 있는 고용량 고대역폭 메모리 반도체를 만들고 있다. 엔비디아는 로드맵을 확장하여 감시용 카메라 등 더 작은 기기(Edge device)에 들어갈 인공지능 반도체도 만들기 시작했다. 인텔은 자신들이 점유한 CPU 시장 점유율을 바탕으로 CPU와 GPU의 장점을 결합해 연산력을 높인 단일칩을 출시해 시장에 도전장을 내밀기 시작했다.

▲ 세계 최초로 양산에 돌입한 SK하이닉스의 HBM3

인공지능 반도체에 직접적으로 관련이 없던 회사들의 진출도 시작되었다. 스마트폰 AP 회사들은 NPU(Neural Processing Unit)*라고 부르는 인공지능 연산 전용 부위를 추가해, 영상·이미지·음성 인식 등 스마트폰에 활용되는 인공지능 서비스를 고도화시켰을 뿐 아니라, 이미지 합성, AI 지우개 기능 등 기존 스마트폰에서는 가능하지 않던 재미있는 앱 개발을 가능하게 만들었다. 자동차 회사 테슬라는 자체 연산 칩을 설계하여 반(半)자율주행 알고리즘인 오토파일럿* 기능을 구현하였으며, 인공지능 학습에 사용될 자체 슈퍼컴퓨터 도조(Dojo)까지 만들었다.

* NPU : AI 기반 기술이 스마트폰에 필수적으로 쓰이게 되어 도입된 인공지능 처리 전문 반도체, 혹은 특정 칩에서 인공지능 연산을 담당하는 부분을 지칭하는 용어. 모바일 외에도 음성이나 영상 인식, 스마트 공장, 스마트 빌딩, 스마트 시티 등 다양한 곳에서 사용됩니다.
* 오토파일럿 : 테슬라에서 사용되고 있는 ADAS(Advanced Driver Assistance Systems, 첨단 운전자 지원 시스템) 시스템으로서, 자율주행 5단계인 ‘운전자 없는 자동차를 주행’ 하는 것을 목표로 하고 있습니다. 현재 자율주행 2단계에 속해 테슬라의 주행보조기능을 수행하고 있으며, 사람이 기능이 잘 작동하고 있는지 감시하는 단계의 자율주행 기술입니다.

또 다른 동반자를 찾아

반도체 기술과 인공지능 기술은 선순환의 관계를 가지게 되었다. 반도체의 도움으로 인공지능 기술이 꽃 필 수 있었다. 반도체 산업 역시, 인공지능의 가능성을 알게 된 수많은 플레이어들이 뛰어들며 산업 자체의 파이를 키울 수 있었다.

이러한 선순환 관계는 지속되어야 한다. 현재 인공지능 기술에서의 이슈 중 하나는 전력을 최소화할 수 있는 컴퓨팅을 실현하는 것이다. 이 분야에서도 반도체 회사들의 대결이 뜨겁다. 인텔은 현재의 인공신경망보다 좀 더 인간 신경망에 가까운 SNN(Spiking Neural Network)* 기반의 뉴로모픽 칩을 개발하였으며, 메모리 회사들은 AI 개발 속도는 높이면서 전력 소모를 줄이는 PIM 반도체 개발에 나서고 있다.

* SNN : 인간 두뇌의 생물학적 동적 구조를 모방한 컴퓨팅 기술. 뇌를 구성하는 뉴런(neuron) 과 시냅스(synapse)로 이루어진 신경망 구성방식으로 두뇌에서 정보가 전달, 가공, 출력되는 과정을 인공지능으로 구현하는 방식을 말합니다.

위의 수많은 대안 기술들 중, 혁신가가 어떤 정답을 찾을지는 모른다. 하지만 수많은 경쟁자 사이에서 우리의 반도체가 미래의 혁신가들에게 선택받기 위해서는, 엔비디아와 메모리 회사들이 어떻게 인공지능 연구원들을 도와주었는지 되새길 필요가 있다. 날이 갈수록 반도체를 사용하는 방법은 어려워지고 있다. 따라서 앞으로 반도체의 완성은 사용자가 ‘보고 따라 할 수 있는 매뉴얼과 소통 창구’ 등을 갖추는 것을 포함하게 될지도 모른다. 긴 이야기였지만, 결국 역지사지해야 한다는 이야기이다.

※ 본 칼럼은 반도체/ICT에 관한 인사이트를 제공하는 외부 전문가 칼럼으로, SK하이닉스의 공식 입장과는 다를 수 있습니다.

]]>
/jeonginseong-column-ai/feed/ 0