AEGLOSLAB 엔비디아 기술 스택

제0부 개관

0.1 엔비디아 풀스택 전략과 "3개의 컴퓨터"

0.1.1 이 장에서 배우는 것 / 선수 지식

이 책의 출발점이다. 개별 기술에 들어가기 전에, 엔비디아가 왜 "GPU 회사"가 아니라 수직 통합 컴퓨팅 플랫폼 회사로 동작하는지, 그 전략이 어떤 해자(moat)로 굳어지는지, 마케팅 서사를 어디까지 믿어야 하는지를 비판적으로 세운다. 스택을 층으로 분해하고 내 워크로드를 매핑하는 사고틀은 다음 장(0.2)에서 잇는다.

학습 목표:

  • 엔비디아의 풀스택 전략을 한 문장으로 정의하고, "칩이 아니라 스택 누적이 해자"라는 명제를 설명한다.
  • "CUDA 해자" 를 세 겹(언어·런타임 / 라이브러리 생태계 / 도구·인력·관성)으로 분해하고, 경쟁사가 보통 어느 겹만 깨는지 안다.
  • 엔비디아의 "3개의 컴퓨터"(학습·시뮬레이션·배포) 프레임을 그대로 받아들이지 않고, 서사와 실제 제품·워크플로우의 괴리를 구분한다.
  • 경쟁 지형(AMD ROCm·Google TPU·ARM)에서 엔비디아의 포지션을 "어느 층을 공략하나"로 상대화한다.

선수 지식: GPU·딥러닝·컨테이너·리눅스 기초(BK-02 전제). 선행 장은 없다 — 이 장이 첫 장이다. 스택의 6개 층위 해부와 워크로드 매핑은 0.2, 실습 환경은 0.3·A.1에서 다룬다.

정직성 단서(S-5): 이 장의 제품명·SDK 명칭·세대 구분은 세대 교체·리브랜딩이 잦다. 본문은 "집필 시점 기준, 확인 필요"를 전제로 읽는다. 구체 수치(코어·대역폭·TOPS)는 거의 인용하지 않는다 — 이 장은 구조와 전략을 가르치지 사양표가 아니다. 사양은 4.1 이후·공식 데이터시트에서 확인한다.


0.1.2 왜 "풀스택"인가

0.1.2.1 GPU는 제품이 아니라 진입점이다

엔비디아의 매출 다수는 가속 칩에서 나오지만, 그 칩을 팔리게 만드는 것은 칩 위의 소프트웨어 스택이다. 동일한 트랜지스터라도, 위에 CUDA·cuDNN·TensorRT·도메인 프레임워크가 없으면 "빠른 행렬 곱셈기"일 뿐이다. 전략의 핵심을 한 문장으로:

실리콘 한 층만 팔지 않고, 워크로드가 닿는 모든 층을 직접 제공해 전환 비용을 누적시킨다.

이것이 "풀스택(full-stack) 전략"이다. 경쟁사가 더 빠른 칩을 내놓아도, 고객의 코드·파이프라인·운영 도구·인력 숙련이 전부 엔비디아 스택 위에 쌓여 있으면 칩만 바꿀 수 없다. 해자는 실리콘이 아니라 스택 전체의 누적이다.

엔비디아가 직접 만드는 층은 실리콘(GPU·CPU·DPU·SoC)부터 시스템(DGX·DRIVE·Jetson)·네트워킹(NVLink·InfiniBand)·라이브러리(CUDA-X)·도메인 SDK(NeMo·DRIVE·Isaac·Omniverse)·앱 솔루션까지 사실상 전 층이다. 경쟁사는 보통 한두 층(칩, 혹은 칩+일부 SW)만 제공하고 나머지는 오픈소스·파트너에 의존한다. 이 6개 층의 정확한 해부와 층간 계약은 0.2에서 다룬다 — 이 장은 "왜 그것이 해자가 되는가"에 집중한다.

0.1.2.2 "CUDA 해자"는 API 잠금 이상이다 — 세 겹

흔한 오해: "CUDA는 단순한 독점 API라서 못 떠난다." 실제 해자는 세 겹이고, 깊이가 다르다.

해자 1 · 언어·런타임 CUDA C++/PTX · nvcc · 드라이버 ← ROCm/HIP가 부분 복제 가능 (가장 얕음) 해자 2 · 라이브러리 생태계 cuDNN·cuBLAS·CUTLASS·NCCL·TensorRT-LLM· … 세대별 텐서코어에 맞춰 직접 최적화된 커널 ← 수년치 커널 튜닝의 누적 · '재현'이 매우 비쌈 (본체) 해자 3 · 도구·인력·관성 Nsight 프로파일러 · 컨테이너(NGC) · 문서 · 채용시장 프레임워크(PyTorch 등)의 기본 백엔드가 CUDA ← 대체 불가가 아니라 '옮길 이유가 없음'
  • 해자 1(언어) 은 가장 얕다. AMD HIP는 CUDA 소스를 상당 부분 기계 번역한다(0.1.4). 그래서 엔비디아도 여기에만 기대지 않는다.
  • 해자 2(라이브러리) 가 본체다. cuDNN·CUTLASS는 세대마다 새 텐서코어 명령에 맞춰 수년간 누적 튜닝된 커널의 집합이다(3.2·3.4). 경쟁사가 "HIP로 컴파일은 된다"를 달성해도, 같은 칩에서 같은 성능을 내려면 이 커널 자산을 재현해야 하는데 이것이 비용이 크다.
  • 해자 3(관성) 은 PyTorch·JAX 같은 상위 프레임워크의 기본 경로가 CUDA라는 사실, 그리고 엔지니어 채용 시장·문서·예제가 전부 CUDA 중심이라는 점이다. 기술적 우위가 사라져도 "옮길 이유가 없는" 상태를 만든다.

이 세 겹을 구분하면, 경쟁사 벤치마크를 읽을 때 "어느 해자를 깼다고 주장하는가"를 비판적으로 볼 수 있다. 보통은 해자 1(언어 호환)만 깨고 해자 2·3는 못 깬다.

해자의 설계적 토대는 "위 층 코드를 보존한 채 아래 층 성능 향상을 흡수"하는 안정 인터페이스다 — 칩이 Hopper→Blackwell로 바뀌어도 cublasGemmEx 호출은 그대로 두고 라이브러리만 재컴파일하면 새 텐서코어를 쓴다. 이 메커니즘(편익이자 종속)은 0.2.3에서 층간 계약으로 자세히 본다.


0.1.3 "3개의 컴퓨터" — 프레임을 비판적으로 읽기

0.1.3.1 마케팅 서사

엔비디아는 피지컬 AI(로봇·자율주행) 개발을 "세 개의 컴퓨터" 로 설명한다. 발표·키노트에서 반복되는 프레임이다(발표 기준 서사이지 제품 SKU가 아님 — S-5).

컴퓨터 1 · '학습' DGX (DC) · 모델 훈련 대량 GPU 학습 (NeMo·Isaac Lab) 컴퓨터 2 · '시뮬레이션' Omniverse · 가상 검증·합성 물리 시뮬· 합성데이터 (Replicator· Isaac Sim) 컴퓨터 3 · '배포 (런타임)' Jetson/DRIVE · 엣지 추론 전력·열 제약 추론 (TensorRT· DeepStream)

서사의 메시지: "엔비디아는 학습→검증→배포 전 과정의 컴퓨터를 다 판다. 한 회사 스택으로 닫힌 루프를 실행하라." 이 세 꼭짓점은 이 책의 부(部)에 대응한다 — 학습=제6부(6.1~6.11), 시뮬=제10부(10.1~10.11), 배포=제8·9부(8.1~9.14).

0.1.3.2 어디까지가 사실이고 어디부터가 마케팅인가

이 프레임은 유용한 멘탈모델이지만 그대로 믿으면 오해한다. 정직하게 구분한다(S-5).

주장실제비판적 메모
"3개의 분리된 컴퓨터"칩·시스템 관점에선 다 같은 GPU/SoC 계열. "3개"는 역할이지 별개 하드웨어 종류가 아니다학습용 데이터센터 GPU와 배포용 Jetson은 같은 CUDA 계열이지만 메모리·전력·정밀도 제약이 크게 다르다 → 코드 그대로 옮겨지지 않음
"닫힌 루프가 자동"학습→시뮬→배포 사이 데이터·포맷 변환은 수작업·통합 비용이 크다Sim2Real 도메인 갭(10.7)은 미해결 난제. "시뮬에서 됐으니 실차도 된다"는 보장 없음
"Omniverse가 시뮬 표준"강력하지만 도입 비용·러닝커브가 크고, 많은 팀은 다른 시뮬레이터도 병행합성데이터(10.5)가 실데이터를 대체하는 정도는 과제별로 천차만별
"한 스택으로 전부"통합 이점은 실재하나 종속과 동전 양면각 컴퓨터를 다른 벤더로 섞을 수 있다(학습은 엔비디아, 배포는 다른 가속기 등)

실무 결론: "3개의 컴퓨터"는 학습 경로를 설정하는 데는 좋은 지도다. 그러나 제품 결정에서는 "세 컴퓨터가 매끄럽게 이어진다"는 약속을 검증 없이 사지 말고, 특히 시뮬↔실제 갭(10.7)과 학습↔배포 정밀도/메모리 갭(1.13·5.4)을 별도 리스크로 본다. 데모(키노트)와 양산 가용성을 구분하라(S-5).


0.1.4 경쟁 지형 — 엔비디아를 상대화하기

이 책은 경쟁사 제품을 깊이 다루지 않는다(BK-04 경계). 여기서는 엔비디아 스택을 상대화하는 좌표만 제공한다 — 각 대안이 "어느 층을 공략하는가"로 본다.

대안공략 층강점한계(엔비디아 대비)누구에게
AMD ROCm / HIP언어 호환·칩오픈, CUDA 소스 기계 번역(HIP), 가격·가용성해자 2(라이브러리 성숙도)·생태계·도구가 뒤처짐. 프레임워크 지원은 개선 중이나 불균등비용·벤더다양화 우선, 라이브러리 자체 튜닝 여력 있는 팀
Google TPU칩·시스템(수직, 자사 한정)XLA·JAX와 긴밀, 대규모 학습 효율, 클라우드 통합클라우드(GCP) 종속, 범용성·온프렘·엣지 부재JAX 중심·GCP 올인 조직
ARM (CPU IP)명령어 아키텍처전력효율, 라이선스 모델, 모바일·엣지 지배"가속기"가 아닌 CPU IP — AI 가속은 별도. 엔비디아도 Grace·SoC에 ARM을 채택함비교 대상이라기보다 엔비디아가 흡수한 토대
(참고) 클라우드 ASIC·스타트업칩특정 워크로드 효율범용 스택·생태계 부재단일 워크로드 대량 운영자

견해(라벨: 견해): 현시점에서 엔비디아의 결정적 우위는 칩 성능보다 라이브러리 + 도메인 SDK의 폭과 깊이(해자 2)다. 경쟁은 보통 언어·칩 층에서 좁혀지지만, 풀스택(전 층) 대안을 가진 곳은 사실상 없다. 따라서 "벤더 다양화"는 보통 층별 부분 대체(예: 학습은 엔비디아, 특정 추론은 다른 가속기)로 나타나지 ROCm/TPU로의 전면 이전으로 나타나기 어렵다. 이는 시점 판단이며 생태계 성숙도에 따라 변한다(S-5).


0.1.5 중간 점검 (체크포인트)

여기까지 이해했다면 다음을 할 수 있어야 한다.

  • [ ] 풀스택 전략을 한 문장으로 말하고("실리콘만이 아니라 워크로드가 닿는 모든 층을 직접 제공"), "해자는 칩이 아니라 스택 누적"을 설명한다.
  • [ ] "CUDA 해자"를 세 겹(언어·라이브러리·관성)으로 나누고, 경쟁사가 보통 어느 겹만 깨는지 제시한다.
  • [ ] "3개의 컴퓨터"를 역할로 이해하고, 닫힌 루프·Sim2Real을 검증 없이 믿으면 안 되는 이유를 제시한다.
  • [ ] ROCm·TPU·ARM을 "공략 층"으로 상대화한다.

막히는 신호와 의심처:

  • "해자가 단순한 API 잠금 아닌가?"에서 멈췄다면 → 0.1.2.2의 해자 2(라이브러리 누적)를 다시 읽는다. 그것이 핵심이다.
  • "3개의 컴퓨터"를 제품 SKU로 받아들였다면 → 0.1.3.2 표의 첫 행("역할이지 하드웨어 종류가 아니다")으로 교정한다.

0.1.6 흔한 함정

  • 함정 1 — 마케팅 층위를 기술 층위로 착각. "3개의 컴퓨터"·"AI 팩토리" 같은 표현은 서사다. 제품 SKU·아키텍처 경계와 1:1 대응시키면 잘못된 설계 결정을 한다. 항상 0.2의 6개 기술 층으로 환원해 검증하라.
  • 함정 2 — 칩 사양에 매몰. TOPS·TFLOPS 표를 비교하느라 라이브러리·SDK의 성숙도 차이(해자 2)를 놓친다. 실사용 성능은 칩보다 그 칩 위 라이브러리가 얼마나 튜닝됐나가 좌우할 때가 많다.
  • 함정 3 — "닫힌 루프" 과신. 학습(DGX)·시뮬(Omniverse)·배포(Jetson/DRIVE) 사이 전환을 매끄럽다고 가정하면 Sim2Real 갭(10.7)·학습/배포 정밀도 갭(1.13·5.4)에서 깨진다. 각 경계를 별도 리스크로 본다.
  • 함정 4 — SDK 명칭을 영구 고정으로 취급. 엔비디아는 SDK·서비스 명칭 리브랜딩·통폐합이 잦다. 본문 명칭은 "집필 시점, 확인 필요"다(BK-05). 결정 시 그 시점 공식 문서로 재확인하라.
  • 함정 5 — 경쟁사 벤치마크를 액면 그대로 수용. "X가 CUDA 호환 달성"은 보통 해자 1(언어)만 깬 것이다. 같은 칩에서 같은 성능인지, 라이브러리·도구·프레임워크 지원까지 갖췄는지(해자 2·3)를 따로 확인하라.

0.1.7 연습문제

각 문제 아래 정답: 줄에 해설을 둔다. 먼저 스스로 풀고 펼쳐 본다.

연습 1 (해자 분해). 어떤 경쟁사가 "우리 가속기에서 PyTorch 모델이 코드 수정 없이 실행된다"고 발표했다. 이 주장이 CUDA 해자의 세 겹(언어·라이브러리·관성) 중 어디를 깬 것인가? 무엇을 추가로 확인해야 하나?

정답

주로 해자 1(언어·프레임워크 호환)을 겨냥한 주장이다. 해자 2(라이브러리 성숙·같은 칩에서 같은 성능)와 해자 3(도구·프로파일러·운영·인력)은 별개다. 확인할 것: ① 대표 모델의 실측 처리량·지연이 동급 엔비디아 대비 어떤가, ② 양자화·분산·서빙 등 고급 경로 지원 범위, ③ 프로파일링·디버깅 도구와 운영 성숙도, ④ "코드 수정 없이"가 모든 연산자·정밀도에 적용되는지 아니면 일부만인지.

연습 2 ("3개의 컴퓨터" 비판). 한 로보틱스 팀이 "Isaac Sim에서 정책이 잘 학습됐으니 실제 로봇에 그대로 탑재하면 된다"고 말한다. 0.1.3.2를 근거로 두 가지 반론과 보완책을 제시하라.

정답

반론 ① Sim2Real 도메인 갭(10.7) — 시뮬 물리·센서 노이즈·조명이 실제와 다르면 정책이 전이되지 않는다. ② 학습(데이터센터)↔배포(Jetson) 환경 갭 — 정밀도·메모리·전력 제약으로 모델을 양자화·경량화해야 하며(5.4·9.3) 성능·정확도가 달라진다. 보완책: 도메인 랜덤화·합성+실데이터 혼합(10.5·10.6), 실로봇 소량 미세조정, 배포 전 타깃 하드웨어에서 정밀도·지연 검증.

연습 3 (포지셔닝). "우리는 비용 절감을 위해 학습 전체를 ROCm으로 옮기겠다"는 제안을 받았다. 0.1.4를 근거로 점검해야 할 리스크 세 가지를 들어라.

정답

① 해자 2 — 분산 학습 라이브러리(NCCL 대응)·혼합정밀도·프레임워크 백엔드 성숙도가 동급인가, 같은 칩에서 같은 처리량인가. ② 해자 3 — 프로파일링·디버깅 도구, 운영 자동화, 사내 인력 숙련·채용. ③ 전환 비용 — 기존 CUDA 종속 코드(커스텀 커널·TensorRT 등)의 재작성 범위. 결론적으로 전면 이전보다 층별 부분 대체가 현실적인 경우가 많다.


0.1.8 요약 · 다음 장

  • 엔비디아는 실리콘부터 앱까지 거의 전 층을 직접 소유하는 풀스택 전략으로, 칩이 아니라 스택 누적을 해자로 삼는다.
  • CUDA 해자는 언어(얕음)·라이브러리(본체)·관성의 세 겹이다. 경쟁(ROCm·TPU·ARM)은 보통 언어·칩 층만 공략한다.
  • "3개의 컴퓨터"(학습·시뮬·배포)는 좋은 학습 지도이되, 닫힌 루프·Sim2Real을 검증 없이 믿지 말 것.
  • 경쟁은 "공략 층"으로 상대화하면 보인다 — 풀스택 대안을 가진 곳은 사실상 없고, 다양화는 층별 부분 대체로 나타난다.

다음 장: 0.2 수직 통합과 이 책의 학습 지도 — 스택을 6개 층(실리콘→앱)으로 해부하고, 임의의 워크로드를 그 층에 매핑해 "무엇을 배우고 무엇을 건너뛸지"를 정하는 사고틀을 세운다. 그 뒤 0.3에서 실습 환경을 갖춘다.