엔비디아 GPU가 AI 컴퓨팅 시장에서 80%를 넘는 점유율을 가져간다. 게임용 그래픽카드를 잘 만들어서? 절반만 맞는 말이다. 진짜 이유는 소프트웨어에 있다. ‘CUDA(쿠다)’라는 플랫폼이 없었다면 지금의 엔비디아도 없었다고 봐도 무방하다.
CUDA를 모르고 엔비디아를 이야기하는 건 OS를 빼고 PC를 설명하는 것과 비슷하다. 하드웨어는 껍데기다. 그 안을 채우는 건 소프트웨어다.
CUDA, 한 줄로 설명하면
CUDA는 ‘Compute Unified Device Architecture’의 약자다. 엔비디아가 만든 GPU를 일반 계산 작업에 쓸 수 있도록 풀어주는 프로그래밍 플랫폼이다. CPU가 한 가지 일을 빠르게 처리하는 단거리 선수라면, GPU는 수천 개의 코어로 같은 일을 동시에 처리하는 대형 공장에 가깝다. 원래 GPU는 그래픽 렌더링 전용이었다. CUDA가 그 빗장을 열었다.
구성 요소는 세 가지다:
- CUDA ISA (명령어 집합): GPU가 알아듣는 언어 체계다.
- CUDA API: C, C++, 포트란 등 익숙한 언어로 GPU를 제어하게 해주는 함수 모음. 이게 없었다면 GPU 프로그래밍은 훨씬 난해한 영역으로 남았을 것이다.
- CUDA 드라이버: OS와 GPU 사이에서 통역을 맡는다.
이 셋이 합쳐지면서 개발자들은 GPU 내부 구조를 속속들이 몰라도 병렬 연산을 끌어다 쓰게 됐다. 솔직히 이게 CUDA 성공의 핵심이다. 쓰기 쉬워야 쓴다. 기술이 아무리 좋아도 진입 장벽이 높으면 개발자들은 딴 길을 찾는다. 좋은 하드웨어가 시장을 먹는 게 아니라, 쓰기 편한 생태계가 시장을 먹는다.
왜 AI 학습에는 GPU가 필수인가
딥러닝 모델 학습의 본질은 행렬 곱셈이다. 수십억 개의 파라미터를 반복해서 곱하고 더하는 작업. CPU로 하면 며칠이 걸릴 일을 GPU+CUDA로 하면 몇 시간으로 줄인다. 이게 AI 붐과 엔비디아가 동시에 폭발한 이유다.
CUDA의 병렬 처리 방식은 세 가지 축으로 작동한다:
- 스레드 수: GPU 코어 수천 개를 이용해 동시에 수만~수십만 개의 연산을 돌린다.
- 데이터 병렬 처리: 이미지 한 장의 픽셀 수백만 개에 같은 필터를 동시 적용하는 식. 순차 처리와는 차원이 다른 속도가 나온다.
- 메모리 계층 관리: GPU 내 고속 공유 메모리와 전역 메모리를 효율적으로 배분해 스레드 간 병목을 줄인다.
이 구조가 AI 연산과 딱 맞아떨어졌다. 타이밍이 좋았던 건지, 엔비디아가 시장을 먼저 읽은 건지. 어쨌든 결과적으로 엄청난 수혜를 입었다.
개발자를 붙잡아 두는 생태계
엔비디아 독점의 실질적인 성벽은 하드웨어가 아니다. 생태계다. CUDA 주변에 쌓인 라이브러리와 도구들이 개발자를 가두는 구조를 만든다.
- cuDNN: 딥러닝 연산 가속 전용 라이브러리. 엔비디아 엔지니어들이 직접 GPU에 맞게 최적화한다.
- cuBLAS: 선형대수 연산 가속. 행렬 곱셈 같은 기초 연산이 놀랍도록 빠르게 돌아간다.
- cuFFT: 고속 푸리에 변환 가속. 신호 처리, 이미지 분석 등에 쓰인다.
결정타는 따로 있다. PyTorch와 TensorFlow가 CUDA를 기본 지원한다. AI 개발자라면 이 두 프레임워크를 피할 수 없다. 결국 엔비디아 GPU를 쓸 수밖에 없는 구조가 완성된다.
한번 CUDA로 코드를 짜놓으면 다른 플랫폼으로 옮기는 비용이 만만치 않다. 코드를 다 뜯어고쳐야 하고, 팀 내 러닝커브도 새로 쌓아야 한다. 이게 락인(Lock-in) 효과다. 의도한 건지 아닌지는 모르겠지만, 엔비디아한테는 최고의 해자(垓字)가 됐다.
AMD ROCm, OpenCL — 대안은 왜 안 먹히나
CUDA 독점에 불만을 품은 진영이 내놓은 대안들이 있다. AMD의 ROCm(라데온 오픈 컴퓨트 플랫폼)과 크로노스 그룹의 OpenCL이 대표적이다. 벤더 종속에서 벗어난다는 명분도 나쁘지 않다.
그런데 아직은 역부족이다. 이유는 세 가지다:
- 최적화 격차: CUDA는 수십 년간 엔비디아 GPU 하드웨어에 맞춰 갈고닦았다. 오픈소스 진영이 단기간에 따라잡기 어려운 수준의 튜닝이 쌓여 있다.
- 생태계 규모 차이: 문서, 튜토리얼, 커뮤니티 답변 수만 봐도 CUDA가 압도한다. 막히는 부분이 생겼을 때 검색 한 번으로 해결되는 CUDA와, 포럼을 뒤져도 답이 없는 ROCm은 개발자 경험이 다르다.
- 레거시의 무게: AI 초기부터 CUDA로 짠 코드들이 인프라 곳곳에 박혀 있다. 다른 플랫폼으로 마이그레이션하는 데 드는 비용과 리스크는 웬만한 기업이 감당하기 어렵다.
엔비디아는 Open-CUDA 같은 개방화 시도에도 강하게 방어선을 친다. 핵심 경쟁력을 공유할 이유가 없다는 거다. 이 고집이 지금의 엔비디아를 만들었다. 틀린 판단은 아니다.
다음 수순 — 양자컴퓨팅까지 CUDA로
CUDA는 엔비디아에게 단순한 개발 도구가 아니다. 미래 컴퓨팅 판에서 주도권을 유지하기 위한 플랫폼이다.
- AI 인프라의 기반: AI 모델이 커질수록 필요한 연산량도 늘어난다. CUDA의 역할도 커진다. GPT 같은 초대형 모델이 계속 나오는 한, 이 흐름은 바뀌지 않는다.
- 하드웨어-소프트웨어 동시 개발: GPU 설계 단계부터 CUDA와의 최적화를 함께 고려한다. 하드웨어와 소프트웨어를 따로 만드는 경쟁사들이 따라잡기 힘든 구조다.
- 양자컴퓨팅 선점: 엔비디아는 이미 CUDA 기반 양자컴퓨팅 플랫폼 cuQuantum을 내놨다. 양자 시대가 와도 CUDA 생태계 위에서 작동하게 만들겠다는 포석이다. 이건 솔직히 좀 대단한 수다.
엔비디아는 GPU를 팔지만, 수익 구조의 뿌리는 CUDA 생태계다. 개발자들이 CUDA에 묶이면 GPU 수요는 자연스럽게 따라온다. 하드웨어 장사처럼 보이지만, 본질은 소프트웨어 비즈니스다.
CUDA 실제로 쓰려면 — 진짜 팁
AI 개발이나 고성능 컴퓨팅 환경을 구성한다면 CUDA는 피하기 어렵다.
- 버전 맞추기가 첫 번째 관문: TensorFlow나 PyTorch가 요구하는 CUDA 버전을 미리 확인해야 한다. GPU 드라이버 버전, CUDA 툴킷 버전, 프레임워크 버전이 삼각형처럼 맞아떨어져야 한다. 이게 어긋나면 설치는 됐는데 작동이 안 되는 황당한 상황이 벌어진다. 실제로 경험자들이 제일 많이 막히는 지점이다.
- 공식 문서가 답이다: 엔비디아 CUDA Zone의 공식 문서가 가장 정확하다. 블로그 글보다 공식 문서를 먼저 펴는 습관을 들이면 시행착오가 줄어든다.
- 커뮤니티는 스택오버플로우와 엔비디아 개발자 포럼: 막히는 지점이 생기면 십중팔구 같은 문제를 먼저 겪은 사람이 있다. 검색만 잘 해도 해결되는 경우가 많다.
- GPU 직접 살 필요 없다: AWS, Google Cloud, Azure 모두 엔비디아 GPU 인스턴스를 제공한다. 필요할 때만 빌려 쓰면 초기 비용 부담이 없다. 고가의 GPU를 당장 구매하지 않아도 된다는 점은 생각보다 큰 장점이다.
결국 CUDA는 엔비디아를 하드웨어 회사가 아닌 컴퓨팅 플랫폼 기업으로 바꿔놓은 핵심이다. AI 시대에 이 생태계를 이해하고 쓸 줄 안다는 건, 단순히 기술 스펙 하나를 아는 것 이상이다.
출처: Wired











