[원문 유형] 네이버 프리미엄 콘텐츠 [채널] 올바른 미국주식 by SAPIENS [게시일] 2026.06.05. 오후 4:10 [원문 URL] https://contents.premium.naver.com/sapiens/sapiensasset/contents/260605161058778xa [제목] AI 가속기 심화편 : GPU vs TPU, 무엇이 칩을 다르게 만드나 (feat. CPU, ASIC, FPGA) [수집 기준] 승인된 구독 열람권으로 실제 본문을 보존했다. 이미지·첨부는 별도 미디어 원장에 보관하며 시각적 의미 검토 여부를 구분한다. [구독 원문 본문] ​ 안녕하세요 올바른입니다. ​ AI 심화편 of 심화편 자료 2편입니다. 이번에는 프로세서의 구조 말단부터 GPU와 TPU의 철학적인 차이까지를 오가는 구조에 대해서 이해할 수 있는 자료로 구성해봤습니다. ​ 지난번 LLM 추론 토큰 가격의 비밀 자료가 도움이 되셨다면, 이번 자료도 전체적인 프로세서 구조 이해에 도움이 되실 거라 생각합니다. 기반을 쌓는 자료입니다. ​ 로직 게이트, 행렬곱, FP4 등 저정밀도 연산이 중요한 이유, AI 칩은 왜 텐서 코어를 만들었는지, 클록, FPGA, ASIC, CPU, GPU, TPU의 차이가 담겨있습니다. ​ 큰 흐름 읽기 (Bird's-eye view) 2026-05-27 LLM 추론 토큰 가격의 비밀 : MoE의 시대, 엔비디아 NVL72가 중요한 이유 (바로가기) 2026-04-22 엔비디아 CEO 젠슨황 인터뷰 : 'TPU도 Trainium도, 그렇게 자신 있으면 공개적으로 붙자' (바로가기) 2026-03-27 앤스로픽 CEO 다리오 아모데이 인터뷰 : "Extremely fast, but not infinitely fast" (바로가기) 2026-03-05 AI 사이클 한 눈에 보기, SemiAnalysis 인터뷰 : "거품은 없다. ARR $100B가 온다" (바로가기) 2025-10-08 오픈AI 퇴사자의 글 #1 : 2027년 AGI가 온다 (바로가기) 엔비디아 (NVDA) 2026-06-03 엔비디아 컴퓨텍스 2026 : 사람을 위한 CPU를 넘어, GPU를 굶기지 않는 CPU 'Vera' (바로가기) 2026-05-21 엔비디아 1Q26 실적발표 : 젠슨황, "하이퍼스케일러 CapEx보다 '더' 빠르게 성장" (바로가기) 2026-03-17 엔비디아 GTC 2026 : 7개의 칩, 5개의 랙 시스템, 그리고 하나의 AI 슈퍼컴퓨터 (바로가기) 2026-01-02 엔비디아가 $20B를 주고 데려온 남자 : Groq 창업자 조나단 로스의 통찰 (바로가기) 광학 (Optics) 2026-04-17 '빛💡'의 시대 : 광학 밸류체인 한 눈에 보기 (바로가기) 2026-03-20 OFC 2026 : 광학이 중요해지고 있는 이유들, 태풍의 눈에 있는 두 가지 기업 분석 (바로가기) 2026-03-13 AI 인프라의 새로운 병목 '광학' : 앞으로의 2~3년 가파른 채택곡선 (트랜시버, OCS, CPO) (바로가기) 2026-03-06 비아비 솔루션스(VIAV) 기업분석 : 광학의 시대, 더 많은 테스트가 필요해 (바로가기) 메모리 (Memory) 2026-03-19 마이크론 1Q26 실적발표 : 흔들릴 이유가 없는 어닝서프라이즈, 구조적 성장주로 거듭나기 (바로가기) 2026-01-21 추론의 시대, 핵심이 된 메모리 : 메모리 쇼티지를 떠받치고 있는 힘 (바로가기) 2026-01-07 엔비디아 CES 2026 : Vera Rubin의 시대, ICMS가 불러올 메모리 지각변동 (바로가기) 네오클라우드 (Neocloud) 2026-02-22 네오클라우드 뜯어보기 #2 : 새로운 시대의 AI 계급도, 전력을 돈으로 바꾼 Powered Shell (바로가기) 2026-02-10 네오클라우드 뜯어보기 : GPU 임대의 경제학, 네오클라우드 BIG 4 비교분석 (바로가기) 투자자문 서비스에 따른 투자 시 원금 손실이 발생할 수 있으며, 투자 손익에 대한 책임은 전적으로 고객에게 귀속됩니다. 또한 과거의 투자수익이 미래의 수익률을 보장하지 않습니다. ​ 신규 구독 전에, 아래 투자자문계약 권유문서의 계약 관련 제반 사항을 반드시 읽으시고 충분히 검토하시기 바랍니다. ​ *투자자문계약 권유문서 : https://naver.me/5ZST47Qf 목차 ​ LLM 해석 자료 : 심화편 of 심화편 #2, 본질을 이해해야 그 위에 지식을 쌓을 수 있다 AI 가속기의 가장 밑단 : 로직 게이트, 행렬곱, 저정밀도 연산이 중요한 이유 데이터 이동 비용을 줄이다 : AI 칩은 왜 Tensor Core를 만들었나? AI 칩이 '박자'를 맞추는 방법 : Clock, Pipeline, Latency ↔ Throughput FPGA vs ASIC : 사실 같은 개념 모델이다 CPU vs TPU vs GPU : Cache 대신 Scratchpad 메모리를 사용하다 라이너 포프 Reiner Pope 2026년 5월 23일, MatX 창업자 겸 CEO LLM 해석자료 #2 심화편 of 심화편 #2, 본질을 이해해야 그 위에 지식을 쌓을 수 있다 ​ 라이너 포프(Reiner Pope)란 누구인가? 라이너 포프는 AI 칩 스타트업인 MatX의 공동 창업자 겸 CEO입니다. ​ 인터뷰가 아닌 '해석자료' 이번 자료는 드와르케시 파텔의 1시간 20분 팟캐스트의 내용만 재구조화하여 정리 및 설명한 자료입니다. ​ 이것도 1편처럼 원래는 평소처럼 구독자분들이 개인적으로도 맥락을 이해하고 뜯어보기 편하시도록, 팟캐스트 내용을 인터뷰 형태로 원문이 어떤지 전해드리고 해석/코멘트를 달고 하려다가 이번 영상은 아예 본격적으로 테크니컬한 내용들로 가득찬 내용인지라 전체적인 해석 부분만 자료로 써봤습니다. AI 가속기의 가장 밑단 로직 게이트, 행렬곱, 저정밀도 연산이 중요한 이유 ​ 지난번 자료 Recap : LLM 추론의 비밀 지난번 자료에서는 LLM을 추론하는 데에 중요한 것들을 다루는 측면에서 를 정리했습니다. ​ batch size와 latency는 어떤 관계인지, 추론 시간은 memory fetch(= weight fetch & KV fetch)과 compute time으로 구분할 수 있으며, KV cache는 어떤 요소들에 의해 영향을 받는지, MoE는 compute time을 줄이기 위해 활성 파라미터의 수를 줄이고자 하는 방식에서 파생된 것이며, Switched Scale-up Network(e.g. NVLink)가 MoE 추론에 가장 TCO 대비 퍼포먼스가 높은 이유, 추론 시 Expert Parellelism을 더 많이 키우기 위해 인터커넥트 도메인을 더 크게 만들고자 하는 것, 랙 스케일이 중요한 이유, Scale-up domain 내의 메모리가 큰 것이 중요한 이유, GPT-4 출시 후 3년간 모델 크기가 생각보다 커지지 않았던 이유와 Gemini 2.5 Pro가 유리했던 이유, API 비용에서 중요하게 살펴볼 수 있는 것들과 KV cache를 생성하는 방법 및 cache hit를 위해 Memory hierarchy를 따라 메모리 용량/대역폭/읽기 속도를 강조한 제품들이 퍼포먼스를 위해 나오는 이유 ​ 이런 요소들을 '왜 그렇게 되는지?'를 위주로 정리해봤습니다. ​ 이번엔 가속기의 구조를 생각해봅니다 이번에는 AI 가속기의 구조를 생각해봅니다. 여기도 조금 복잡하긴 하지만 나중을 위해서 원리부터 차근차근 정리할 필요가 있습니다. 원래는 다 생략하고 저정밀도 연산 및 데이터 이동부터 다룰까 했는데 그렇게 하려니 얘기가 붕떠서 칩 설계 시 가장 작은 단위부터 정리해봅니다. ​ Logic Gate : AI 칩의 가장 작은 계산 단위 칩 안의 가장 기본적인 부품은 논리 게이트입니다. AND, OR, NOT 같은 아주 단순한 회로입니다. 이 게이트들은 0과 1을 입력으로 받아서 다시 0 또는 1을 출력합니다. 즉 칩은 처음부터 복잡한 숫자를 계산하는 것이 아니라, 아주 작은 0과 1 계산을 엄청나게 많이 이어 붙여서 큰 계산을 만들어냅니다. 아무리 거대한 AI 모델을 돌린다고 해도 맨 아래에서는 결국 0과 1을 다루는 논리 게이트들이 움직이고 있습니다. ​ 핵심 연산 = 행렬곱(Matrix multiplication, "Matmul") AI 칩이 하는 핵심 연산은 행렬곱(matmul)입니다. 그리고 그 행렬곱 안으로 들어가보면 진짜 기본 단위는 곱셈-누산(multiply-accumulate, "MAC")입니다. 행렬곱의 안쪽 루프에 있는 게 MAC입니다. 두 수를 곱한 뒤 그 결과를 계속해서 더해서 쌓는 연산을 뜻합니다. 수식으로 보자면 "y = Wx + b(입력값(x)에 가중치(W)를 곱하고 편향(b)을 더해 결괏값(y)를 도출하는 것)"입니다. 숫자를 곱하고 더하는 일이 핵심입니다. ​ 예시를 위해서 이미지를 하나 살펴봅니다: 왼쪽 차트의 처음을 보시면 왼쪽엔 2행 3열의 행렬이, 오른쪽에는 3행 2열의 행렬이 있습니다. 이 둘을 곱하면 그 아래와 같은 2행 2열짜리 결과가 나옵니다. 여기서 가장 간단한 설명을 할 수 있는 건 하이라이트된 숫자들을 쭉 따라갔을 때 어떻게 140이 나오느냐입니다. 왼쪽 행렬의 가로줄과 오른쪽 행렬의 세로줄을 짝지어서 같은 위치끼리 곱한 뒤에 전부 더하는 것입니다. 이것이 행렬곱이고, 곱하고 더하는 이 과정이 행렬곱의 기본 계산 단위라 할 수 있는 핵심인 MAC입니다. ​ AI 칩이 하는 연산도 똑같습니다. 입력값과 가중치를 곱합니다. 그 곱한 결과를 계속 더합니다. 그렇게 새로운 출력값을 만듭니다. 이 작업을 엄청난 규모로 반복하는 것입니다. LLM이건, 이미지 모델이건 내부에서는 입력값과 가중치 행렬을 계속 곱하고 더하면서 다음 값을 만들어내는 과정을 합니다. ​ 칩 안에서는 0과 1로 표현됩니다 그림에서는 1, 2, 3 / 10, 20, 30 등 읽기 쉽고 헷갈리시지 않도록 표현되어 있지만 실제 칩에서는 이 숫자들은 전부 0과 1로 표현됩니다. 칩은 이 비트를 갖고 곱셈을 합니다. 오른쪽의 차트를 보시며 아주 간단하게 정리하자면 ⓐAND 게이트가 부분곱을 만들고(Multiplier), ⓑ이 부분곱을 전부 더할 때 쓰는 것이 가산기(Adder)입니다. 이 MAC 회로로 놓고 보면 이렇습니다. ​ 1단계 : 처음에는 Z(누산값)=0, 행렬 A=1, B=10으로 놓으면, Z = 0 + 1x10 = 10이 나옵니다. 2단계 : A=2, B=20을 곱하고, Z = 10 + 2x20 = 50이 나옵니다. 3단계 : A=3, B=30을 곱하고, Z = 50 + 3x30 = 140이 나옵니다. ​ 3MAC을 통해서 2행 3열의 행렬 x 3행 2열의 행렬이 2행 2열의 행렬의 첫 번째로 나온 것입니다. ​ 왜 저정밀도 연산이 중요한가? 이걸 설명드리는 이유는 '왜 저정밀도 연산이 중요한가?'를 설명드리려 함입니다. ​ 숫자를 더 많은 비트로 표현할수록 계산 회로가 커집니다. 특히 곱셈 회로는 비트 수에 대해 대략 제곱으로 커집니다. 4비트 x 4비트는 4 x 4로 16개의 비트 조합을 봐야하고, 8비트 x 8비트는 64개의 비트 조합을 봐야 하기 때문입니다. 비트 수는 2배인데 조합은 4배가 됩니다. ​ 이걸 원리는 그대로지만 표현만 바꿔서 보시면, ​ FP8보다 FP4가 훨씬 더 연산에 유리한 점이 많다는 의미입니다. FP4는 숫자 하나를 더 적은 비트로 표현하기 때문에 계산 회로가 작아지고, 동일 연산 기준 전력도 줄어들고, 같은 메모리 대역폭으로 더 많은 숫자를 옮길 수 있습니다. 실제 칩에서는 더 다양한 요소들이 추가되기 때문에 4배 개선되진 않지만(4배란? 절반의 비트 표현 → 면적 4분의 1 → 처리량 4배란 의미) 대략 적어도 2~3배 가량은 훨씬 빠르게 처리할 수 있습니다. ​ 곱셈과 누산의 정밀도 요구치가 다르다 앞에서 MAC을 '곱하고 더해서 쌓는다'라고 설명드렸는데 여기에는 좀 더 디테일한 내용이 있습니다. 곱셈과 누산에 필요한 정밀도가 서로 다릅니다. 곱셈은 낮은 정밀도(e.g. FP4)로 해도 괜찮은데 누산은 더 높은 정밀도(e.g. FP8)로 가져가야 합니다. 이유는 두 가지입니다. ​ 첫째, 누산값은 입력값x가중치 하나하나보다 훨씬 더 큰 값이다 : 앞서 1, 2, 3단계에서 Z값이 0 → 10 → 50 → 140으로 나왔던 것을 생각해보시면 됩니다. 실제 행렬곱에서는 이 안쪽 차원이 수천이 넘기 때문에 수천 개의 곱을 같은 칸에 계속해서 더해야 합니다. 위에서는 3개의 항만 더해서 결과를 냈지만 실질적으로 좀 더 자세히 보자면, 어떤 Layer에서 입력 벡터의 길이가 4,096이면 결과값 한 칸을 만들기 위해서 입력1x가중치1 + 입력2x가중치2 + ... + 입력4096x가중치4096을 해야 합니다. 결과값 하나를 만들기 위해서 Z가 수천 번 업데이트된다는 의미입니다. 결과적으로 입력 하나하나는 작은데 누산값은 엄청나게 큰 수가 되고 적은 비트로는 이 큰 값을 정확히 표현을 표현 범위가 다 안 나옵니다. 둘째, 오차 범위가 다르다 : 곱셈에서도 반올림 오차는 생깁니다. 낮은 정밀도로 숫자를 표현하면 실제 값과 표현 가능한 값 사이에는 차이가 생깁니다. 다만 곱셈은 한 MAC 안에서 한 번씩만 일어납니다. 입력1x가중치1이건, 입력4096x가중치4096이건 한 번씩만 곱셈이 일어난단 의미입니다. 그런데 누산은 Z를 계속해서 업데이트해야 하기 때문에 작은 반올림 오차가 다음 누산의 출발점이 되는 만큼 최종 결과물의 정확도를 해칠 수 있는 여지가 더 많아서 누산값은 더 높은 정밀도로 잡습니다. ​ 칩을 설계할 때, FP4/FP8 회로 할당도 고려해야 한다 FP4용 MAC 회로와 FP8용 MAC 회로는 사실상 별개의 회로입니다. 그러면 Hopper → Blackwell → Rubin으로 넘어가며 compute die를 설계할 때에도 이 칩에 FP4 MAC 회로를 얼마나 깔지, FP8 MAC 회로를 얼마나 깔지를 고려하는 게 칩 설계자가 내리는 핵심 결정 중 하나라는 의미입니다. die 면적은 한정되어 있으니 FP4에 많이 배정하면 FP8이 줄고, FP8에 많이 배정하면 FP4이 줄어듭니다. ​ 엔비디아 같은 경우는 여기서 개발자들의 모델을 일선에서 최적화시켜주며 얻는 AI Labs들의 발전 속도 및 방향을 힌트삼아, '이 칩이 양산될 때쯤 이정도의 모델을 굴릴 HW 스펙을 필요로 하겠다' 하는 정도를 정확히 맞춰서 설계하곤 합니다. 일례로 Blackwell 같은 경우는 엔비디아가 처음으로 FP4를 HW상에서 Native로 구현하는 첫 하드웨어였습니다. 덕분에 이러한 이러한 이점이 추론에서 압도적인 TCO 대비 퍼포먼스로 드러나고 있습니다. ​ 예를 들어서, 3Q26에 양산될 TPU v7와 Trainium3은 FP4를 Native로 지원하지 않습니다. 그래서 FP4 워크로드에서는 GB300은 15 PFLOPS인데, TPU v7은 FP8까지만 지원하기에 FP8 기준 4.6 PFLOPS입니다. 전성비로 볼 때에도 FP4 기준 GB300은 10.71 TFLOPS/Watt인데, TPU v7은 5.42 TFLOPS/Watt로 전성비에서 거의 GB300이 2배 가량 우수합니다. GB300은 칩당 1,400W이고 TPU v7는 850W입니다. ​ FP4의 진짜 이득 : 데이터 이동 비용을 줄여준다 위에서는 곱셈 회로를 작게 쓰니 처리량이 크게 늘어난다는 연산쪽 이득을 주로 설명드렸는데, FP4의 이점은 데이터 이동에서 오는 게 더 큽니다. 이것도 사실은 원리는 단순합니다. 4비트 숫자 2개는 8비트 숫자 1개와 같은 저장공간을 차지합니다. 그러면 같은 메모리, 같은 bus, 같은 대역폭으로 FP4 숫자는 FP8보다 2배 더 많이 옮길 수 있다는 의미입니다. ​ 이전 추론편에서 설명드린 것처럼, LLM 추론은 연산보다 메모리 대역폭에서 병목인 경우가 많습니다. 매 토큰을 생성할 때마다 거대한 가중치를 메모리에서 읽어와야 하는데, 이 읽어오는 속도가 병목이기 때문입니다. ​ 그럼 이 두 가지를 적용해보자면, FP8로 쓰던 연산을 FP4로 하면 같은 대역폭으로 2배의 가중치를 읽어올 수 있고, 모델도 절반 크기로 메모리에 담을 수 있습니다. 연산에서의 이득도 보고 메모리에서의 이득도 봅니다. ​ 실제 스펙에서 확인 : B200 → B300 왼쪽의 B200(Blackwell) 스펙을 보시면, FP4가 NVL8 기준 72 PFLOPS입니다. NVL8 서버 1개 기준이므로 GPU의 수로 나누면 B200 GPU 1개당은 9 PFLOPS이고, FP8로는 4.5 PFLOPS란 의미입니다. 여기서 살펴보실 것은 FP4가 FP8의 정확히 2배라는 부분입니다. 비트를 절반으로 줄였더니 Throughput이 2배가 됐습니다. ​ 오른쪽의 B300(Blackwell Ultra) 스펙을 보시면 FP4 기준 15 PFLOPS이고, FP8이 5 PFLOPS입니다. FP4가 FP8의 3배가 된 것입니다. 눈여겨볼 점은 B200 → B300으로 오면서 FP4 성능은 9 → 15로 67% 높였는데, FP8은 4.5 → 5로 11%밖에 높이지 않았다는 점입니다. 새로 확보한 트랜지스터 예산을 B300에서는 거의 FP4에 몰아줬다는 의미입니다. 엔비디아는 FP4 MAC 회로와 FP8 MAC 회로의 할당 비중을 어떻게 배정할까라는 설계 선택상 MoE 모델의 추론에서 훨씬 더 유리하게끔 FP4쪽으로 훨씬 더 기울여서 할당했다는 의미입니다. ​ *이미 2024년 9월 test-time compute(Reasoning, RL *o1-preview부터 시작*)이 자리잡고 사전훈련을 위한 더 높은 지능의 모델 역할을 하기 시작한 순간부터 추론과 훈련의 경계가 흐려졌습니다. 추론이 곧 훈련이고 훈련이 곧 추론인 상태입니다. 그런 점에서 '추론'을 강조하는 게 단편적으로 추론에서만 잘한다는 게 아니라 칩을 구매해서 6년간 사용할 때의 TCO 대비 퍼포먼스에서 '가장 경쟁적이고 중요한 분야에서도 앞선다'고 보시면 됩니다. 당연히 연구 및 훈련은 절대적으로 엔비디아 칩이 '이미' 많이 쓰이고 있기 때문입니다. 데이터 이동 비용을 줄이다 AI 칩은 왜 Tensor Core를 만들었나? 텐서코어(Tensor Core) 이전 : 레지스터 파일 + 연산기(ALU) 텐서코어(= CUDA 코어)가 없던 시절의 GPU는 사실 CPU와 똑같은 방식으로 작동했습니다. ​ 레지스터 파일(Register File) : 숫자 보관함입니다. 예를 들어 8칸짜리 보관함이 있다고 해보면, 각각의 칸마다 4비트 숫자를 담을 수 있다고 가정해봅니다. 연산기(ALU) : 여기에 MAC 회로가 들어있습니다. ​ 작동 방식은 레지스터 파일에서 숫자 3개를 꺼내와서(2개는 서로 곱하고, 1개는 누산값) → MAC를 수행한 뒤 → 다시 레지스터 파일의 어느 칸에 써넣습니다. 대부분의 프로세서가 이런 모양입니다. 여기서 중요한 건, 레지스터 파일에서 연산기로 데이터를 가져갔다가 다시 돌려놓는 데이터 이동에 대한 비용입니다. ​ 데이터를 옮겨주는 회로 "MUX" 위 내용을 소프트웨어 입장에서 구현하자면 간단합니다. "3번 레지스터 값을 읽어라", "5번 레지스터 값을 읽어라", "두 값을 곱해서 7번 레지스터에 써라"이런 식입니다. 그런데 하드웨어 입장에서는 8칸 중 3번째 칸을 읽으려면 실제 8개 값 중 하나를 골라서 연산기로 보내는 회로가 필요합니다. 이를 MUX(Multiplexer)라고 합니다. 여러 입력 중 하나만 골라서 내보내는 선택기입니다. ​ 이걸 어떻게 구현하나 보자면, 8개의 레지스터 값 중에 하나만 '살리고' 나머지는 모두 꺼서 보냅니다. 0과 1로 표현하게 되니, 예를 들어 3번 레지스터 파일만 열어서 꺼낸다고 하면 R1~R8 중에서 R3만 1로 살리고 나머지는 모두 0으로 입력한 뒤 하나의 출력으로 '합쳐서' 보냅니다. 여기서 '살린다'는 AND 게이트가 쓰이고, '합친다'는 OR 게이트가 쓰입니다. ​ 여기서 중요한 건, 레지스터 하나가 1비트가 아니라는 점입니다. MUX 회로는 비트 수만큼 N번 반복됩니다. 그럼 n개의 입력을 받아서, p비트짜리 숫자를 고르는 MUX 회로의 비용을 세어봅니다. ​ 입력이 n칸, 각 칸이 p비트라면, 모든 비트를 AND 게이트로 처리하니 n x p 개의 AND 게이트를 갖습니다. 그리고 전부 OR로 합쳐 하나의 출력으로 합쳐서 보내니 (n-1) x p개의 OR 게이트를 갖습니다. ​ MAC는 위에서 보셨지만 총 3개의 입력이 들어갑니다. 곱할 두 개의 수(1, 2)가 있고 + 누산값(3)이 있기 때문입니다. 이러한 MUX가 총 3세트 필요하단 의미입니다. 긜고 연산에 중요한 MAC 회로의 크기는 p비트(첫 번째 곱셈 입력의 비트 수) x q비트(두 번째 곱셈 입력의 비트 수)입니다. ​ 그러면 숫자로 예시를 들어 레지스터가 8칸(n=8)이고, 곱하는 수가 4비트(q=4)라고 하면, ​ 데이터 이동 : 3 x 8 x 4 = 96 실제 연산 : 4 x 4 = 16입니다. ​ 몇 비트인지를 그냥 p비트라고 계산하자면 ​ 데이터 이동 : 3 x 8 x p = 24p 실제 연산 : 4 x p = 4p입니다. ​ 데이터를 옮기는 회로가 계산하는 회로보다 6배쯤 크단 의미입니다. 그러면 실제로 코어에서 전체 면적의 80~90%가 레지스터를 읽고 쓰는 데 쓰이고 실제 원하는 행렬곱 자체는 매우 작은 면적만 차지하게 된다는 게 데이터 이동에 대해 지불해야 하는 막대한 비용이었습니다. ​ 이것이 엔비디아 입장에서 Volta 이전의 CUDA 코어 안의 구조였습니다. 그리고 풀어야 할 숙제이기도 했습니다. CUDA 프로그래머 눈에는 보이지도 않고 중요하지도 않은 데이터 이동에 면적을 다 쓰고, 정작 실제 퍼포먼스에 중요한 연산 작업에는 거의 할당을 못하고 있었기 때문입니다. 그래서 연산 부분은 더 키우고 데이터 이동은 같은 성능을 더 작게 만드는 작업이 필요했고 이것이 텐서코어가 생겨난 배경입니다. 텐서코어 = 시스톨릭 어레이(Systolic Array) 지금까지는 곱셈-누산 한 줄만 하드웨어에 넣었었는데, 이제 시스톨릭 어레이는 여기서 루프를 더 높여 행렬-벡터 곱 한 판 전체를 하드웨어에 구워넣는 것이 구조의 핵심이었습니다. 한 번에 처리하는 연산곱의 덩어리를 매우 크게 키운 것입니다. 덕분에 레지스터 파일을 한 번 가져올 때마다 훨씬 더 많은 계산을 하게 됐습니다. 매번 레지스터 파일을 들락날락하지 않으니 데이터 이동은 줄이고 곱셈-누산은 크게 늘린 것입니다. ​ 칩 설계 결정의 상당 부분은 결국 크기를 어떻게 배분할 것인가의 문제입니다. AI 칩에는 행렬 연산을 담당하는 텐서코어(시스톨릭 어레이) 같은 연산 블록이 있고, 그 주변에는 연산에 필요한 데이터를 임시로 보관하고 공급하는 레지스터 파일이나 버퍼가 있습니다. ​ 여기서 핵심 질문은 두 가지입니다. 첫째, 실제 곱셈-누산을 수행하는 시스톨릭 어레이를 얼마나 크게 만들 것인가. 둘째, 그 연산 블록에 데이터를 공급하고 결과를 받아 저장할 레지스터 파일을 얼마나 크게 만들 것인가. ​ 시스톨릭 어레이를 크게 만들면 한 번에 더 많은 행렬 연산을 처리할 수 있습니다. 하지만 그만큼 데이터를 충분히 공급해줄 저장공간과 배선도 필요합니다. 반대로 레지스터 파일과 버퍼를 크게 만들면 데이터를 더 유연하게 다룰 수 있지만, 그만큼 실제 연산기에 쓸 수 있는 면적은 줄어듭니다. FP4/FP8에서도 말씀드렸지만 결국은 한정된 면적에서 어떤 기능에 얼마나 더 많은 면적을 할당할 것인가가 중요합니다. AI 칩이 '박자'를 맞추는 방법 Clock, Pipeline, Latency ↔ Throughput 클럭 사이클이란? 칩은 엄청나게 병렬적입니다. 칩 하나에 트랜지스터가 1000억 개씩 들어가 있습니다. 이렇게 많은 부품이 동시에 일하려면 반드시 서로 박자를 맞추는 시스템이 필요합니다. ​ 소프트웨어가 동기화하는 방법을 살펴봅니다: 프로그램 안에는 여러 스레드가 동시에 일합니다. 스레드 A가 계산을 하고, 스레드 B가 그 계산값을 받아서 다음 계산을 해야 한다고 해보면 B 입장에서는 아무 장치없이 그냥 읽어버리면 A가 계산을 하고 있는 도중에 중간값을 받아서 B가 계산을 시작해버릴 수도 있습니다. 그래서 소프트웨어에서는 lock, mutex, semaphore 같은 동기화 장치들을 씁니다. 예를 들어, mutex는 여러 스레드가 같은 메모리 값을 읽고 쓰려고 한다고 해보면 한 스레드가 먼저 공용 메모리에다가 lock을 거는 것입니다. 그러면 스레드 A가 데이터를 다 계산하기 전까지 다른 스레드는 잠시 멈추게 됩니다. 근데 이건, 꽤나 비싼 동기화 방법입니다. 단순히 곱셈-덧셈을 하는 것과 달리 메모리에 있는 lock 값을 읽고, cache 상태를 맞추고, 기다리는 스레드가 있다면 깨우거나 재우고 해야 합니다. 계산 그자체보다 서로 순서를 맞추는 비용이 더 든다는 의미에서 비싸다는 표현이 직관적입니다. ​ 칩은 전혀 다른 방식을 씁니다: 칩 안에서도 수많은 회로가 동시에 움직입니다. 그런데 칩 안의 모든 작은 회로가 매번 서로에게 계산 끝났는지, 이 값 읽어도 되는지 물어보면 굉장히 비효율적일 겁니다. 1000억 개의 트랜지스터가 협업하려면 이런 구조를 하지 못하니 보통 1ns마다 칩 안의 모든 회로가 잠깐 멈췄다가 동시에 다음 동작으로 넘어가는 행동을 반복합니다. 이 한 박자가 바로 클럭 사이클(Clock cycle)입니다. 1GHz라면 1초에 10억 번 박자가 울리는 것입니다. 모든 회로는 이 한 클럭 사이에 계산을 끝내도록 설계됩니다. 이 박자를 회로에서 만들어주는 것이 레지스터입니다. 입력 레지스터 → 계산회로 덩어리(e.g. 곱셈기, 시스톨릭 어레이) → 출력 레지스터 순서로 한 번의 클럭 사이클에 맞춰서 한 번의 작업이 끝납니다. 칩 전체가 한 호흡에 맞춰서 다음 단계로 나아가는 방식입니다. ​ 클럭은 빠르면 빠를수록 좋습니다. 1Ghz보다 2Ghz로 하면 초당 2배 더 많은 연산을 할 수 있습니다. 그런데 함정이 있습니다. 신호가 계산회로를 통과하는 데 걸리는 지연이 문제입니다. 계산회로 덩어리 안의 모든 계산은 다음 클럭이 울리기 전에 끝나있어야 하기 때문입니다. 클럭이 울리는 순간 전체의 값이 그대로 출력 레지스터에 저장되는데 계산이 아직 안 끝났으면 엉뚱한 중간값이 저장됩니다. 그래서 칩 설계의 중요한 것 중 하나는 이러한 지연을 최대한 짧게 만드는 것입니다. ​ 지연을 줄이는 방법 : 파이프라인 레지스터 삽입 지연을 짧게 만드는 쉬운 방법은 계산회로 덩어리를 반으로 쪼개서 그 사이에 레지스터를 하나 끼워넣는 것입니다. 하나의 큰 계산회로 대신 같은 일을 하는 두 개의 작은 회로덩어리를 놓고 가운데를 레지스터로 만듭니다. 이렇게 되면 지연이 절반씩 되니 클럭을 2배 빠르게 만들 수 있습니다. 레지스터 하나를 더 쓰는 댓가로 성능을 2배로 만드는 것입니다. 이걸 파이프라인 레지스터 삽입(Pipeline Register Insertion)이라고 합니다. ​ 그럼 이 중간 레지스터를 어디에 넣을지가 중요합니다. 너무 앞에 넣으면 뒤쪽 계산이 길어지고, 뒤에 넣으면 앞쪽 게산이 길어집니다. 각 단계의 지연시간이 비슷하게 나누는 게 매우 중요한데, 실제 칩 설계 과정을 보면 일단 큰 구조는 설계자가 먼저 정합니다. 이 행렬연산 블록은 몇 단계 파이프라인으로 나눌지 등등은 RTL 설계 단계에서 사람이 많이 개입합니다. ​ 그다음 EDA 도구가 쓰입니다. EDA는 Verilog로 작성된 설계를 실제 논리 게이트, 배선, 배치로 바꿔서 각 경로의 지연시간을 분석합니다. 어떤 경로가 너무 길면 그 경로가 칩 전체의 전체 클럭 속도를 제한합니다. 이런 가장 느린 경로를 임계경로​(critical path)라고 부릅니다. 이를 줄이기 위해 여러 최적화 작업들을 합니다. 회로의 기능과 타이밍을 함께 맞추는 작업들이 필요합니다. ​ 정리하자면, ⓐ계산회로를 너무 길게 뽑으면 클럭을 빠르게 못 올리고, ⓑ레지스터를 너무 많이 넣으면 면적과 전력이 낭비되고 지연시간도 늘어나기에, ⓒ설계자는 계산을 적당한 단계로 쪼개고, 도구는 그 경로들이 칩 설계자가 목표하는 클럭 안에 들어올 수 있도록 계속해서 최적화합니다. 같은 TSMC 3nm 공정을 쓰더라도 어떤 칩은 클럭이 높고, 어떤 칩은 낮은 이유도 이러한 설계 과정상 timing closure를 얼마나 잘하느냐로 갈리기 때문입니다. 임계 경로를 잘 쪼개고 최적화하는 것이 클럭 속도를 좌우합니다. ​ 클럭만 올린다고 일이 더 잘되는 건 아니다 칩의 throughput은 이렇게 나눌 수 있습니다. Throughput = (클럭 한 번에 처리하는 작업량) x (초당 클럭의 수) 앞 항은 면적 효율(로직에 면적을 얼마나 썼나)이고, 뒤 항이 클럭 속도입니다. 클럭만 올리려고 면적을 레지스터에 다 써버리면 앞 항이 쪼그라들어 곱한 throughput은 오히려 나빠집니다. 이거는 LLM 추론자료에서의 batch size와 비슷한 얘기입니다. batch size를 작게 잡으면 한 사용자는 토큰을 매우 빠르게 받지만, 한 시간 동안 나오는 생성되는 전체 토큰의 수는 오히려 줄어듭니다. FPGA vs ASIC 사실 같은 개념 모델이다 같은 재료, 다른 경제성 FPGA와 ASIC은 사실 같은 개념의 모델입니다. AND, OR, XOR 같은 기본 로직 게이트들을 고정된 클럭에 맞춰서 배선으로 연결한 것입니다. 그래서 FPGA로 표현할 수 있는 회로라면 ASIC으로도 전부 표현할 수 있습니다. 그리고 같은 회로라면 ASIC이 FPGA보다 10배 넘게 더 싸고 전력 효율도 좋습니다. ​ 그럼에도 FPGA 시장은 분명히 존재합니다. 초기 비용 때문입니다. ​ 예를 들어, 첫 FPGA 칩은 약 $10,000면 만든다고 하면 첫 ASIC은 약 $30,000,000가 듭니다. tape-out을 하는 전 과정(incl. NRE)이 필요하기 때문입니다. FPGA의 쓰임새는 결정론적인 지연시간을 가지면서 + 실행도 매우 빠르고 + 높은 병렬성이 필요한 작업인데 + 설계를 자주(예를 들어 매달) 바꾸고 싶다는 경우에 적합합니다. ​ 특히 마지막이 중요한데, 매달 칩의 설계를 바꾸고 싶다고 하면 매번 $30M짜리 tape-out을 할 수는 없으니까 이럴 때 FPGA를 씁니다. 대표적인 예가 HFT입니다. throughput보다 지연시간이 훨씬 중요하고 클럭 단위로 동작을 결정론적으로 제어해야 하는데 전략은 시장 색깔에 따라 수시로 바꿔야 하는 사용 사례입니다. ​ FPGA는 어떻게 작동하나? FPGA의 핵심은 고정된 하드웨어로 ASIC의 프로그래밍 모델을 흉내내는 것입니다. ​ 레지스터(Register) : 1비트를 저장하는 소자 LUT​(Look-Up Table)​ : 게이트 역할을 하는 부품 MUX(Multiplexer) : 이 모든 걸 이어주는 부품입니다. ​ 세 가지가 있습니다. 구조를 단순화하자면 칩 위에 레지스터와 LUT가 잔뜩 있고, 그 하나하나의 앞에 MUX가 붙어서 입력을 어느 부품에서 가져올지를 골라주는 식입니다. ​ FPGA의 의미 '현장에서 배선을 다시 프로그래밍할 수 있게 해준다' FPGA는 Field Programmable Gate Array의 약자입니다. 여기서의 Field는 칩이 데이터센터나 엣지 등에 이미 배치된 상태의 필드를 의미합니다. 공장에서 회로를 고정해서 보내는 ASIC과 달리 FPGA는 현장에서도 다시 프로그래밍할 수 있다는 의미에서 Field가 붙습니다. ​ FPGA를 프로그래밍한다는 건 이 부품들 위에 특정한 배선을 덧씌우는 것입니다. 이를 좀 더 자세하게 설명하면 FPGA를 프로그래밍한다는 건 수많은 MUX들을 전부 설정하는 길이 곧 배선을 다시 프로그래밍하는 일입니다. LUT는 상황에 따라 AND/OR/XOR 등 어떤 게이트로건 변신할 수 있습니다. ​ 그런데, 이 구조 때문에 어떤 게이트로건 변신할 수 있는 대가로 특정 워크로드에 고정하는 것에 비해서는 10배의 면적을 쓰게 됩니다. (여기는 자세하게 보시려면 MUX의 구조, LUT 로직 게이트에 대한 비효율을 봐야 하는데...) 편의상 단순하게 대략 여러 범용적인 사례 중에 특정 워크로드가 굳었다면 FPGA를 쓰는 것보다 ASIC이 10배 더 적은 면적으로 구현 가능하다라고 보시면 도움이 되실 것 같습니다. CPU vs TPU vs GPU Cache 대신 Scratchpad 메모리를 사용하다 CPU는 왜 '언제 끝날지' 모르나 CPU도 결정론적 지연시간을 갖도록 설계할 수는 있습니다. 어려운 건 결정론적인 지연시간과 고속을 동시에 잡는 것입니다. CPU의 비결정성은 특정 설계 선택으로 인해서 생깁니다. 그러나 그렇게 만들면 시장에서 매력적이지 않은 CPU가 됩니다. 현대 CPU는 범용 컴퓨터를 위한 칩입니다. 웹브라우저도 돌려야 하고, 엑셀도 돌려야 하고, 게임도 돌려야 하고, 운영체제도 돌려야 합니다. 어떤 일이 들어올지 미리 알 수 없는 환경에서 최대한 많은 종류의 일을 빠르게 처리해야 합니다. ​ 그래서 CPU 설계자들은 단순하고 예측 가능한 구조대신 평균 성능을 높이는 복잡한 구조를 선택했습니다. 대표적으로 추가한 것이 Cache와 Branch Predictor입니다. 훨씬 빠르게 만들어주긴 하는데 문제는 그 대가로 하나의 작업이 정확히 몇 클럭 뒤에 끝날지는 매번 달라집니다. ​ CPU를 비결정적으로 만든 'Cache' CPU die 안에는 Cache라는 작은 고속 메모리가 있습니다. 그리고 CPU 바깥에는 DDR 메모리가 있습니다. DRAM입니다. 문제는 CPU가 바깥의 DDR 메모리로 직접 접근하려면 Cache에 비해서 100배 이상 느립니다. 그러니 CPU는 최근에 사용한 데이터를 Cache에 저장해둡니다. 그리고 다시 같은 데이터가 필요하면 느린 DDR까지 가지 않고 훨씬 빠른 Cache에서 바로 가져옵니다. ​ 그래서 구조상 CPU는 명령을 실행하다가 메모리에 접근할 일이 생기면 먼저 Cache를 확인합니다. Cache에 있으면 'Cache hit'입니다. 바로 쓸 수 있습니다. Cache에 없다면 'Cache miss'입니다. 멀리 DDR까지 가지러 가야합니다. 이처럼 Cache는 CPU 성능에 절대적으로 중요하고 이것이 없으면 거의 모든 프로그램이 이전보다 100배 느려지는 방향으로 수렴하게 됩니다. ​ 그런데 여기에서 CPU의 비결정성이 생깁니다. 어떤 데이터가 캐시에 있을지 없을지는 항상 고정되어 있지 않습니다. 직전에 어떤 프로그램이 실행됐는지, 운영체제가 무엇을 하고 있었는지, 다른 프로세스가 메모리를 어떻게 사용했는지에 따라 결과가 달라집니다. 즉, 같은 코드를 실행해도 어떤 때는 Cache hit가 나고 어떤 때는 Cache miss가 날 수 있습니다. 그래서 CPU는 평균적으로는 매우 빠르지만 매번 정확히 같은 시간에 끝난다고 보장하기 어렵습니다. CPU를 매우 빠르게 만들어주는 구조가 CPU를 비결정적으로 만든 것입니다. ​ TPU의 접근법 : Cache 대신 'Scratchpad'를 택하다 AI 칩은 하드웨어가 알아서 결정하던 걸 소프트웨어나 컴파일러가 데이터 이동을 더 명시적으로 결정하도록 바꿔서 결정론적으로 바꿨습니다. 여기서 나오는 개념이 Scratchpad Memory입니다. 둘 다 비슷하게 칩 안에 있는 빠른 메모리처럼 보일 수 있지만 작동 철학이 다릅니다. ​ CPU는 명령을 '메모리에서 읽어라'라고 내리면, 하드웨어가 알아서 Cache를 먼저 확인하고 없으면 DDR로 갑니다. 반면 Scratchpad 구조는 'Scratchpad에서 읽어라'와 'HBM에서 읽어라'가 더 명확히 구분됩니다. 데이터를 어디에 둘지도 지휘합니다. 결과적으로 하드웨어가 즉석에서 판단하는 일을 줄이고 데이터 이동에 대해서 소프트웨어를 통해 더 계획적으로 관리하는 구조덕에 AI 가속기는 더 결정론적인 성격을 갖습니다. ​ 정리하자면 이렇습니다: ​ FPGA : 정해진 데이터 경로를 예측 가능하게 처리하는 칩 CPU : 복잡한 명령어 흐름을 잘 처리하는 칩 GPU/TPU : 대규모 병렬 연산을 잘 처리하는 칩 사실 이미 Volta 이후로는 GPU가 Tensor Core로 가득찼기 때문에 TPU랑 똑같습니다 ​ CPU와 GPU/TPU 코어 수 차이 CPU는 GPU보다 코어 수가 훨씬 적습니다. CPU 코어의 수가 훨씬 커서 그렇습니다. 그럼 CPU는 어디에 이렇게 면적을 많이 쓰는가가 두 프로세서의 차이를 설명하기에 좋은 요소입니다. 코어 면적에서 정작 연산장치(ALU)는 얼마 안됩니다. ​ CPU 안에서 면적을 많이 차지하는 걸 보면 네 가지입니다: ​ Cache : 느린 메모리 접근을 줄이기 위한 고속 저장공간 Register File : 코어가 즉시 사용할 데이터를 보관 Control Unit : 복잡한 명령어 흐름을 관리하는 장치 Branch Predictor : 앞으로 실행될 명령어 흐름을 미리 예측하는 장치 ​ 특히 이 중에서, GPU/TPU와 비교하기에 CPU에서 가장 두드러지는 요소가 Branch Predictor입니다. ​ GPU는 많은 연산 유닛을 깔아두고 같은 종류의 계산을 병렬로 처리하는 데 초점을 두고 있는데, CPU는 프로그램 흐름이 어디로 튈지 모르는 상태에서도 빠르게 실행해야 하니 '다음 명령어가 어디로 갈지'를 예측하는 장치가 필요합니다. ​ 프로그램에는 수많은 if문이 있습니다. 조건이 참이면 A로 가고, 거짓이면 B로 가라는 식입니다. CPU 입장에서는 굉장히 복잡한 일입니다. 조건을 계산하고, 결과를 확인하고, 다음에 실행할 명령어 주소를 바꾸고, 그 주소에서 명령어를 다시 가져와야 합니다. 라이너 포프는 이 과정이 5ns정도 걸릴 수 있다고 설명했습니다. 클럭으로 보자면 200MHz 수준입니다. ​ 그런데 코어당 1~2GHz 이상으로 빠르게 더 수행하려고 하려면 이 branch 결과를 기다려서는 느립니다. 그래서 '아마 이쪽으로 실행될 것이다'를 미리 예측한 뒤에 그 명령어를 미리 실행합니다. 예측이 맞으면 시간을 번 것이고 예측이 틀리면 미리 실행했던 작업으로 다시 돌아가서 작업을 합니다. ​ Cache와 Branch Predictor는 두 가지 모두 성격이 같습니다. CPU를 빠르게 만들긴 하는데, 실행시간이 매번 같아지기 어렵게(비결정성)으로 만드는 요인입니다. ​ GPU vs TPU : 같은 원리, 다른 '입자 크기' 마지막으로 GPU와 TPU의 차이를 비교해봅니다. ​ 둘 다 AI 연산에 많이 쓰입니다. 둘 다 행렬곱에 능합니다. 하지만 칩 내부의 구성 철학이 다릅니다. ​ GPU : 칩 전체에 걸쳐 수많은 'SM(Streaming Multiprocessor)'을 깔아둔 구조입니다. 각 SM 안에는 벡터 연산유닛, 레지스터, 스케쥴러, 그리고 행렬 연산을 위한 텐서코어 등이 들어가 있습니다. TPU : 상대적으로 더 크고 굵직한 행렬 연산 유닛을 중심으로 설계되어 있습니다. 큰 행렬 유닛(MXU = 시스톨릭 어레이) 몇 개와 가운데의 벡터 연산 유닛으로 이뤄져 있습니다. 대규모 행렬곱을 효율적으로 처리하기 위한 구조입니다. ​ GPU : 작은 연산 유닛을 많이 깔아둔 구조 GPU는 사실 아주 작은 TPU 여러 개를 칩 전체에 타일처럼 깐 것에 가깝습니다. GPU의 장점은 유연성입니다. 각 SM이 독립적인 작은 연산 공장처럼 움직입니다. 작업을 잘개 쪼개 여러 SM에 배분할 수 있고, 하나의 SM 안에서 처리하는 작업은 데이터 이동거리가 매우 짧습니다. ​ 다만, 작은 SM 단위가 많다는 건 각 단위마다 레지스터, 스케쥴러, 제어장치 같은 부가구조가 많다는 의미입니다. 즉, 순수 행렬곱만 놓고 본다면 오버헤드가 생길 수 있습니다. 그리고 작업이 여러 SM을 넘나들 정도로 크다면 데이터 이동이 복잡하고 비용이 커질 수 있습니다. ​ TPU : 큰 행렬 연산 유닛을 세운 구조 TPU는 더 큰 행렬 연산 유닛을 중심으로 구성했습니다. 이 구조의 장점은 대규모 행렬곱에서 오버헤드를 줄일 수 있다는 것입니다. 큰 시스톨릭 어레이를 하나 만들면 개별 작은 연산 유닛마다 필요한 레지스터와 스케쥴러들을 통합해서 줄이니 연산력을 더 키울 수 있는 구조입니다. ​ 하지만, 그래서 작업이 매우 정형화되어 있고 대규모 행렬곱이 필요한 구조에서만 TPU가 강합니다. 작업 형태가 더 다양하고 중간중간 불규칙한 흐름이 있다면 GPU식 AI 가속기 구조가 더 유리합니다. 예를 들어 LLM 추론에서 중요한 MoE 통신 구조 같은 게 대표적인 사례입니다. 이 부분과 관련해서는 4월 27일 주간전략보고에서 드와르케시 파텔과 젠슨 황의 인터뷰를 참고하시면 도움이 되실 것 같습니다. ​ 3. GPU vs TPU 논쟁의 핵심은 변화의 속도 드와르케시의 질문은 "AI가 대부분 행렬곱이라면, 더 단순하고 최적화된 TPU가 GPU보다 유리한 것 아니냐"는 것입니다. 이에 대한 젠슨황의 답은 "AI는 행렬곱만이 아니다"입니다. 새로운 attention, Hybrid-SSM, MoE, diffusion과 autoregressive의 결합, 계속해서 더 많은 데이터를 다루기 위해 길어지고 있는 컨텍스트 윈도우, KV cache, all-to-all 통신, 서빙 최적화 기법들이 계속 바뀌기 때문에, 고정된 ASIC보다 프로그래밍 가능한 시스템이 더 중요하다는 논리입니다. ​ 핵심은 AI 워크로드가 아직 안정화되지 않았다는 것입니다. 모델 아키텍처가 바뀌면 커널이 바뀌고, 커널이 바뀌면 메모리 레이아웃과 런타임 스케줄링이 바뀌며, 분산 환경에서는 통신 라이브러리와 네트워크 토폴로지가 성능을 좌우합니다. 이 변화 속도가 빠를수록 CUDA와 GPU의 유연성이 강한 해자가 됩니다. ​ 물론 사실 이것보다 더 중요한 건 젠슨황 vs 순다르 피차이의 인사이트 및 실행력 경쟁입니다. 모델이 어떤 방향으로 흘러갈지에 맞춰서 공급망을 짜고 HW-SW를 준비해놔야 다음 세대 경쟁에서도 점유율을 잃지 않을 수 있고, 인프라 성능을 크게 끌어올릴 수 있지만 아직은 미성숙한 기술 돌파구들을 어떻게 더 빠르게 상용화시킬 수 있을 것인가를 고민하는 과정이 곧 해자입니다. 그런 의미에서 젠슨황은 인텔의 전성기를 이끌었던 앤디 그로브가 강조했던 "편집광만이 살아남는다"는 교훈을 가장 잘 지키고 있는 CEO입니다. ​ 4. CUDA의 해자는 "못 벗어난다"가 아닌 "가장 빨리 된다" 과거 CUDA 해자는 "CUDA가 아니면 못 한다"에 가까웠습니다. 하지만 지금 젠슨황이 강조하는 CUDA 해자는 "새로운 것을 가장 빨리 만들고, 가장 빨리 디버깅하고, 가장 넓게 배포할 수 있다"입니다. ​ 프론티어 AI 연구에서는 새 아이디어를 얼마나 빨리 실험하고, 실패 원인을 얼마나 빨리 좁히며, 대규모 플릿에서 얼마나 안정적으로 돌리느냐가 중요합니다. 이때 CUDA 생태계, 설치 기반, 검증된 드라이버, 라이브러리, 프레임워크는 강력한 장점이 됩니다. 특히 vLLM, SGLang, Triton, RL 프레임워크처럼 새로운 서빙과 훈련용 스택이 계속 등장하는 환경에서는 기준점이 중요합니다.