5.5 GPGPU의 상용화 여명과 당면한 한계

5.5 GPGPU의 상용화 여명과 당면한 한계

이안 벅(Ian Buck)의 합류와 ’프로그래머블(Programmable)’이라는 강력한 유연성의 날개를 단 GPU는, 더 이상 게이머들을 위한 단순한 데스크톱 부품이 아니었다. 2000년대 중반에 이르러, 이 괴물 같은 병렬 연산 칩셋은 수백만 달러를 호가하던 거대한 중앙 집중식 컴퓨터들이 독점하던 고급 과학 및 산업의 성역(Sanctuary)을 밑바닥부터 파괴적으로 잠식해 들어가기 시작했다.

이 5.5장에서는 초창기 ‘GPGPU(General-Purpose computing on Graphics Processing Units)’ 가 세상에 실질적으로 던진 첫 번째 파장(Impact), 즉 극도의 고도화된 연산이 필요한 금융 파생상품 모델링, 기상청의 유체 역학, 그리고 병원의 의료 영상 분석 등에서 거둔 충격적인 연산 속도 단축의 초기 성과들을 분석한다.

하지만 동시에, 이 찬란한 여명이 맞닥뜨린 가장 차갑고 견고한 모순적 한계를 직시한다. 극소수의 천재들만이 기괴한 꼼수와 억지 코드를 동원해야만 간신히 다룰 수 있었던 극악의 소프트웨어 접근성(Software Accessibility) 장벽이었다. 결국 이 지독한 난해함의 벽이 젠슨 황(Jensen Huang)으로 하여금, 단순히 빠른 하드웨어를 파는 것을 넘어 세상의 모든 C언어 개발자들이 아무런 그래픽 지식 없이도 GPU에 직접 명령을 내릴 수 있는 궁극의 프로그래밍 플랫폼 ‘CUDA(쿠다)’ 의 창조라는 완벽하게 새로운 세계로 뛰어들게 한 필연성을 예고하며 챕터를 마무리한다.

5.5.1 금융 모델링, 유체 역학, 의료 영상 등 과학 계산 분야에서의 초기 성과

오락실 화면의 권력을 쥐고 있던 GPU가 그래픽 처리라는 좁은 목적을 벗어나 GPGPU(범용 GPU 연산) 로 각성했을 때, 가장 폭발적으로 환호하며 이 괴물을 집어삼킨 곳은 다름 아닌 극강의 징그러운 수학적 처리 속도를 갈구하던 첨단 산업 и 과학 계산 분야였다.

가장 먼저 반응한 곳은 1초의 지연(Latency)이 수십억 달러의 손실로 직결되는 월스트리트(Wall Street)의 금융계였다. 주식의 막대한 파생상품 가격을 시뮬레이션하기 위해, 기존의 금융 공학자들은 밤새도록 수천 대의 CPU 서버를 병렬로 묶어 무거운 몬테카를로(Monte Carlo) 확률 모델 연산을 돌려야만 했다. 하지만 엔비디아(NVIDIA)의 데스크톱 최상위 GPU 단 몇 장의 보드를 꽂자, 수천 대의 CPU가 며칠 동안 끙끙대던 난해한 금융 행렬 계산이 불과 몇 시간, 심지어 몇십 분 만에 소름 돋게 쾌속으로 해체되어 버리는 경이로운 결과를 낳았다.

마찬가지로 입자와 공기 역학의 움직임을 수십만 조각으로 쪼개어 계산해야 하는 항공우주국의 유체 역학(Fluid Dynamics) 시뮬레이션이나, 환자의 거대한 초음파 단층 데이터를 실시간 3D 공간으로 부드럽게 복원해야 하는 의료 영상 기기(Medical Imaging) 부문에서도 상황은 같았다.
단일 코어의 ’논리적 스피드’에서 다중 코어의 ’압도적 물량 공세’로 연산의 철학을 비틀어버리자, 과거에는 예산이나 시간문제로 도저히 시도조차 엄두를 못 내던 우주적 스케일의 빅데이터 문제들이 GPGPU의 무자비한 병렬(Parallel) 화력 앞에서 하나둘씩 처참하게 격파되기 시작했다. 이것은 완벽한 하드웨어의 월권이자 위대한 상용화의 서막이었다.

5.5.2 난해한 프로그래밍 방식: 하드웨어의 잠재력을 가로막는 소프트웨어 장벽

GPGPU가 월스트리트와 과학 연구실에서 기적 같은 연산 속도로 뼈대 있는 산업의 문제들을 타파하며 찬사를 받고 있었지만, 젠슨 황(Jensen Huang)을 비롯한 엔비디아(NVIDIA) 코어 수뇌부의 표정은 마냥 편안하지 않았다. 이 엄청난 잠재력의 이면에는, 이 완벽한 병렬 연산 하드웨어를 통제하기 위해 인간이 치러야 하는 소프트웨어적 접근권(Accessibility)이 사실상 ’고문 수준의 폭력’에 가깝다는 지독한 현실적 장벽이 똬리를 틀고 있었기 때문이다.

이안 벅(Ian Buck)의 브룩(Brook) 같은 초기 시도들이 존재했음에도 불구하고, 여전히 대다수의 과학 분야 코더(Coder)들이 GPU 코어에 직접 다가가기 위해서는 다이렉트X(DirectX)나 OpenGL 같은 본질이 ’그림 그리는 붓’인 그래픽 API의 겉껍질을 뒤집어써야만 했다. 평생을 입자 운동량과 삼각 함수의 정통 수학만 파고들던 엘리트 물리학자들이나 금융 분석가들이, 억지로 3D 화면의 Z-버퍼(Depth Buffer) 투시 기술이나 모니터 픽셀(Pixel) 렌더링 파이프를 밤을 지새우며 배워야 하는 기괴한 상황은 결코 정상적인 생태계 발전이라 볼 수 없었다.

“우리의 기계 덩어리(Hardware)는 완벽하게 진화했다. 하지만 이 기계와 인간이 소통하는 언어 체계(Software)는 여전히 원시적인 꼼수(Hack)의 구시대에 머물러 있다.”

뛰어난 소수의 변태적 해커들만이 다룰 수 있는 도구는 결코 시장의 보편적 헤게모니(Hegemony)를 장악할 수 없다. 성능표 상으로는 현존 최고의 연산 능력을 자랑하면서도, 그 문을 열 열쇠가 너무나 무겁고 기괴하여 대중적인 연구자들을 가로막고 있는 이 거대한 ’소프트웨어 장벽(Software Barrier)’의 타파야말로, 엔비디아가 이 우주적인 병렬 연산 도구를 세상에 온전한 지배자로 올려놓기 위해 넘어야 할 마지막 죽음의 계곡(Death Valley)이었다.

5.5.3 그래픽 지식 없이도 GPU를 다룰 수 있는 범용 플랫폼의 필요성 대두 (CUDA의 탄생 배경)

초기 GPGPU 연구자들이 겪는 우스꽝스럽고도 고통스러운 꼼수 코딩(Hack Coding)의 절망 앞에서, 젠슨 황(Jensen Huang)과 스탠퍼드에서 영입해 온 천재 컴파일러 전문가 이안 벅(Ian Buck)은 마침내 가장 본질적이고도 폭력적인 결단을 내렸다. 그것은 바로 그래픽 칩 제조사인 엔비디아(NVIDIA)가 스스로, 지난 수십 년 동안 철옹성처럼 구축해 온 ’그래픽 전용 언어의 껍질’을 완전히 산산조각 내서 스스로 파괴해 버리는 것이었다.

“세상의 어떤 개발자도 우리 GPU를 쓰기 위해 폴리곤(Polygon)이나 텍스처(Texture) 같은 더러운 그래픽 지식을 배울 필요가 없게 만들어라. 그들이 대학에서 배웠던 가장 아름답고 정통적인 C언어(C/C++) 문법 그대로 컴파일러를 통과시키면, 시스템이 알아서 수천 개의 병렬 코어에 일거리를 던져주는 완벽하게 대중적이고 독립된 응용 프로그램 생태계(Ecosystem)를 창조하라.”

graph TD
    A[문제점: 원시적 GPGPU 한계] --> B[과학자들의 C언어 계산식]
    B --> C["강제로 그래픽 언어로 변환(OpenGL 등)"]
    C --> D[GPU 연산 후 픽셀 색상으로 방출]
    D --> E[다시 역산하여 결괏값 도출 -> 극악의 효율과 장벽]
    
    F[해결책: 쿠다 CUDA의 탄생 비전] --> G[과학자들의 C언어 계산식]
    G --> H[CUDA 컴파일러: 어떠한 그래픽 우회 없이 하드웨어에 직결]
    H --> I[GPU 병렬 코어의 다이렉트 고속 연산]
    I --> J[정확하고 직관적인 수학적 수치 직접 도출 -> 전 산업 장악]
    
    style C fill:#f55,stroke:#333,stroke-width:2px,color:#fff
    style H fill:#f9f,stroke:#333,stroke-width:2px,color:#fff

이 광기 어린 선언은 단순한 소프트웨어 출시가 아니었다. 그것은 인텔(Intel)로 대표되던 기존 컴퓨터 연산의 생태계를 허물고, 전 세계 수백만 명의 소프트웨어 개발자 풀(Developer Pool) 전체를 엔비디아의 자체 하드웨어 규격 안으로 강제로 이주시키려는 사상 초유의 거대한 식민지화(Colonization) 작전이었다.

이 거대한 범용 플랫폼의 필요성에 대한 지독한 깨달음과 통찰은, 곧이어 세상에 공개될 컴퓨팅 역사상 가장 위대한 종교이자 폭력적인 생태계의 족쇄, 즉 ‘CUDA(Compute Unified Device Architecture)’ 라는 전대미문의 괴물을 세상의 뱃속에 잉태시키는 가장 완벽하고도 필연적인 서막이 되었다.