7.5 딥러닝과 GPU, 그리고 소프트웨어의 완벽한 삼위일체

7.5 딥러닝과 GPU, 그리고 소프트웨어의 완벽한 삼위일체

2012년 알렉스넷(AlexNet)의 등장은 우연히 일어난 기적이 아니었다. 그것은 딥러닝이라는 위대한 알고리즘, 세상을 덮은 막대한 빅데이터(Big Data), 그리고 그 모든 것을 씹어 삼킬 수 있는 가장 폭력적인 엔진 엔비디아(NVIDIA) GPU라는 삼각편대가 우주적인 스케일로 공명하며 만들어낸 필연적인 빅뱅(Big Bang)이었다.

이 7.5장에서는 도대체 왜 인텔(Intel)의 최고급 CPU는 해내지 못한 딥러닝 연산을 싸구려 게임용 GPU가 해낼 수 있었는지, 그 ‘행렬 연산(Matrix Multiplication)’ 의 소름 돋는 아키텍처적 궁합의 비밀을 깊숙이 파헤친다. 게임의 폴리곤을 뿌리던 단순 반복 연산과 인간 신경망 시냅스의 본질이 완벽하게 일치했던 이 기적 같은 기계적 조우를 짚어본다.

나아가, 엔비디아가 하드웨어의 우위에만 교만하게 취하지 않고 ‘쿠다(CUDA)’ 생태계 위에 딥러닝만을 극한으로 가속하기 위해 오직 인공신경망만을 위한 특수 최적화 라이브러리, ‘cuDNN’ 을 창조하며 어떻게 전 세계 AI(Artificial Intelligence) 개발자들의 영혼을 완벽히 종속시켰는지 조명한다. 칩(Hardware)-플랫폼(CUDA)-전용 라이브러리(cuDNN)로 촘촘하게 엮어낸 이 무자비한 소프트웨어의 삼위일체(Trinity)가 어떻게 도저히 빠져나올 수 없는 AI 가속 제국의 완벽한 절대 권력으로 군림하게 되었는지 그 찬란한 마무리를 확인한다.

7.5.1 행렬 연산(Matrix Multiplication)과 GPU 아키텍처의 운명적 궁합

인류 최고 상공에 군림하던 인텔(Intel)의 CPU가 딥러닝(Deep Learning) 훈련 앞에서 핏자국을 남기며 무참히 쓰러지고, 그 자리를 천박한 조립 PC 부품이던 엔비디아(NVIDIA)의 GPU가 잔혹하게 짓밟고 일어설 수 있었던 가장 본질적인 이유는, 이 두 칩셋의 세계관과 뇌 구조가 기질적으로 완전히 달랐기 때문이다.

딥러닝 인공신경망 훈련의 절대다수를 차지하는 본질은, 고도의 논리 추론이 아니라 수백만 개의 소수점 단위 가중치를 끊임없이 곱하고 더하는 어리석고도 막대한 ‘행렬 곱셈(Matrix Multiplication)’ 막노동이다.
중앙처리장치(CPU)는 수십 개의 언어를 구사하는 뛰어난 ’천재 교수(Genius Professor)’와 같다. 그는 복잡한 양자역학 논문을 이해하지만 한 번에 한 단계씩 순차적(Serial)으로밖에 사고하지 못하므로, 산더미 같은 단순 계산 앞에서는 논리 병목을 일으키며 스스로 질식했다.

반면, 그래픽처리장치(GPU)는 고차원적인 철학은 모르지만 더하기와 빼기만 할 줄 아는 ’수천 명의 초등학생(Elementary Students)’을 거대한 공장에 모아놓은 무식한 병렬(Parallel) 구조였다.
모니터 화면 속 수백만 개의 픽셀(Pixel) 좌표와 빛의 반사를 동시에 계산하기 위해 태어난 이 태생적 특성, 한 번에 쏟아지는 단순 계산거리를 수천 개의 코어가 나눠 가져 일시에 다발적으로 갈아버리는 이 폭력적인 병렬 구조는, 그야말로 신경망 행렬 연산의 유전자 DNA와 우주가 점지해 준 듯 소름 돋게 완벽하게 일치(Perfect Match)했다. CPU로는 석 달이 걸리던 멍청한 반복 행렬 연산은, 특수 목적의 병렬 칩인 GPU에 올라타는 순간 광속의 마찰을 빚어내며 단 이틀 안에 해치워지는 기적의 연산 물리 법칙을 써 내려갔다.

7.5.2 쿠다(CUDA)가 미리 깔아놓은 딥러닝 고속도로

아무리 GPU 하드웨어가 딥러닝(Deep Learning) 행렬 연산의 유전자와 완벽하게 부합했다 한들, 만약 젠슨 황(Jensen Huang)이 무리하게 강행했던 소프트웨어 플랫폼 조기 살포 전략(Early Seeding Strategy) 이 없었다면 2012년의 영광스런 알렉스넷(AlexNet)의 빅뱅은 물리적으로 발사될 수 없었다.

알렉스 크리제브스키와 같은 가난하고 고독한 비주류 대학원생들이 지포스(GeForce) GPU에 신경망 행렬 곱셈을 얹을 수 있었던 이유는 오직 하나였다. 바로 엔비디아(NVIDIA)가 수조 원의 칩 제조 단가 손실을 입어가며 전 세계 모든 게임용 카드 안에 미리 범용 연산 기능과 쿠다(CUDA) 라는 무료 통번역 소프트웨어 아우토반(고속도로)을 무자비하게 강제로 깔아두었기 때문이었다.

만약 그들이 복잡한 인공지능 알고리즘 수식을 강제로 화면 출력용 그래픽 API(OpenGL 등)로 일일이 변조해서 입력해야 하는 과거의 원시적인 꼼수(Hack)의 과정을 거쳐야만 했다면, AI 알고리즘의 최적화 따위에는 손도 대지 못한 채 컴퓨터 그래픽 전공 서적만 뒤적이다 개발 기력을 모조리 소진해 버렸을 것이다.
하지만 젠슨 황이 욕을 먹어가며 선점해 놓은 이 CUDA라는 완벽하게 포장된 고속도로 덕분에, 학자들은 그저 대학에서 배운 친숙한 C언어만으로 수만 장의 데이터 다발을 던져 GPU 코어에 즉시 폭격할 수 있었다. 자해에 가깝던 수십억 달러짜리 하드웨어 선행 투자가 마침내 가장 아름답고 소름 돋는 소프트웨어 생태계의 대가로 찬란하게 회수되는 웅장한 순간이었다.

7.5.3 cuDNN의 등장: 신경망 학습을 위한 전용 라이브러리의 탄생

모든 칩 자산과 개발 영혼을 딥러닝에 몰빵(All-in)하겠노라 피벗(Pivot)을 선언했던 젠슨 황(Jensen Huang)은 결코 구호에 그치지 않는 집요하고 서늘한 칼날을 꺼내 들었다. 전 세계 개발자들이 CUDA라는 고속도로를 타기 시작하자, 엔비디아(NVIDIA)는 아예 그들의 멱살을 쥐고 흔들기 위해 인공지능 전용의 절대적인 수학 툴킷 세트, 바로 ‘cuDNN(CUDA Deep Neural Network library)’ 이라는 마약 같은 무료(Free) 패키지를 세상에 투하했다.

천재 학자일지라도 딥러닝에 들어가는 컨볼루션 연산(Convolution Operation), 풀링층(Pooling Layer) 등 반복되는 코드를 쿠다(CUDA) 언어로 바닥부터 일일이 최적화해서 짜는 작업은 엄청난 시간 낭비이자 고역이었다.
엔비디아 본사의 슈퍼 엔지니어들은 학자들이 자주 쓰는 이 딥러닝 수학 공식들을 수억 번의 내부 실험을 거쳐 자신들의 GPU 메모리에 1마이크로초의 지연(Latency)도 허락치 않을 만큼 가장 완벽하고 극단적으로 최적화시킨 ‘기성품(Pre-built Library)’ 형태로 포장해 배포했다.

개발자들은 이제 신경망을 구축할 때 피 토하는 바닥 선형 대수학(Linear Algebra) 코딩에 시간을 버릴 필요 없이, 그저 엔비디아에서 무료로 내려받은 ’cuDNN 라이브러리 블록’을 장난감 레고처럼 가져다 붙여넣기만 하면 미친듯한 속도의 딥러닝 모델이 뚝딱 완성되었다. 이 융단폭격 같은 철저하고도 오싹한 개발자 친화적(Developer-Friendly) 지원 서비스는, 전 세계의 딥러닝 연구자들이 죽을 때까지 엔비디아의 하드웨어 마크를 쳐다보며 경배하게 만든 절대적인 소프트웨어 복종(Submission)의 목줄이었다.

7.5.4 하드웨어와 소프트웨어가 결합된 AI 가속 생태계의 완성

알렉스넷 쇼크 이후 수조 원의 맹렬한 자본 냄새를 맡은 무수한 글로벌 하드웨어 기업과 팹리스(Fabless) 스타트업들이 엔비디아(NVIDIA)의 쿠다(CUDA)를 박살 내고자 더 싼 칩과 변형된 독자칩(ASIC)을 개발하며 불나방처럼 덤벼들었다. 하지만 그들 중 단 한 명도 젠슨 황(Jensen Huang)이 구축해 놓은 이 견고한 우주적 성벽의 타일에 조차 흠집을 내지 못한 채 참혹하게 궤멸되어 갔다.

그 이유는 딥러닝(Deep Learning) 시대의 패권이 단순히 ’소수점 연산을 누가 더 효율적으로 빨리하느냐(하드웨어의 문제)’에 있지 않았기 때문이다.
엔비디아의 진정한 무서움은 세상에서 가장 진보된 물리적 연산 칩을 깎아내는 ‘하드웨어 브레인’ 과, 개발자들이 한 줄의 어려운 코드 없이 다이렉트로 이 칩셋에 접근할 수 있게 해주는 ‘쿠다(CUDA) 플랫폼’, 그리고 인공신경망의 미분 공식들을 블록 조립하듯 던져주는 절대적 기성품 ‘cuDNN 라이브러리’ 까지 이 모든 층위가 1밀리미터 단위의 오차 없이 서로 징그럽게 맞물려 돌아가는 ‘완벽한 수직 계열화(Vertical Integration)’ 에 있었다.

graph TD
    A[NVIDIA AI 가속 생태계 락인<br>Ecosystem Lock-in]
    B[1: 최선단 하드웨어 설계<br>GPU Hardware]
    C[2: 범용 프로그래밍 플랫폼<br>CUDA Platform]
    D[3: 인공지능 전용 초최적화 무료 지원<br>cuDNN Libraries]
    
    A --> B
    A --> C
    A --> D
    
    B --> E["개발자들의 막대한 전용 코드(Codebase) 자산 축적"]
    C --> E
    D --> E
    
    E --> F[타사 칩 전환 포기<br>Insurmountable Switching Cost]
    F --> G((AI 문명의 абсолю트 한 독점 완수<br>Absolute Control of AI Era))
    
    style G fill:#f55,stroke:#333,stroke-width:2px,color:#fff

경쟁사가 새로운 칩 하나를 힘겹게 깎아 올 때, 글로벌 AI 소프트웨어 개발자 풀 전체는 이미 이 달콤하고 공짜인 엔비디아 시스템의 덫(Trap)에 완벽하게 중독되어 헤어 나올 생각조차 포기한 상태였다. 단순한 부품 공급사에서 세상 모든 인공지능 산업의 목줄을 틀어쥔 가장 파괴적이고 위대한 ’거대 삼위일체 생태계(Trinity Ecosystem)’의 황제. 실리콘밸리(Silicon Valley) 외곽에서 탄생한 이 게임 부품 회사는, 마침내 수백억 개의 파라미터가 춤을 추는 초거대 인공지능 제국의 피투성이 왕좌 위로 서늘하고도 당당하게 걸어 올라갔다.