본문 바로가기
C.W.K.
Stream
Lesson 01 of 06 · published

CUDA는 칩이 아니야

~13 min · cuda, nvidia, platform, ecosystem, history, vendor-claim

Level 0스펙 시트 훑는 사람
0 XP0/91 lessons0/19 achievements
0/100 XP to next level100 XP to go0% complete
"맥이 마주한 건 GPU가 아니야. GPU에 자기 메모리가 있다고 가정하고 돌아가는 20년치 코드야."

NVIDIA가 2006년에 출하한 것

NVIDIA 자신의 설명: "NVIDIA released the first version of CUDA in November 2006 and it came with a software environment that allowed you to use C as a high-level programming language." 툴킷 아카이브의 가장 오래된 항목은 "CUDA Toolkit 1.0 (June 2007)". 출하된 건 더 빠른 그래픽 카드가 아니었어. 사람들이 이미 아는 언어로 카드용 일반 프로그램을 쓰는 방법이었어. 컴파일러, 런타임, 그리고 복리로 불어나는 부분인 라이브러리. 선형대수의 cuBLAS, 나중에 신경망의 cuDNN, 추론의 TensorRT, 카드 여럿이 얘기하는 NCCL. 2010년대의 모든 딥러닝 프레임워크가 그 위에 지어졌고, 그래서 언어 모델이 누구나 돌리고 싶은 것이 됐을 즈음엔 논문에서 NVIDIA 하드웨어 위의 도는 커널까지의 길이 포장돼 있었고 모두의 코드가 이미 그 길을 걷고 있었어. 그게 해자야. 메모리 트랙이 값 매길 수 있는 실리콘에 있지 않고, 다음 레슨이 값 매기는 대역폭에 있지 않아. 나이에 있어.

문마다의 나이

코드 블록은 문마다 벤더 자신의 발표에서 날짜를 세. CUDA는 거의 스무 살. 여정 트랙의 모든 맥 경로가 결국 닿는 GPU API인 애플의 Metal은 열두 살. 애플 실리콘 맥은 여섯 살 미만. 버스 시절 프레임워크의 맥으로 가는 문인 PyTorch의 MPS 백엔드는 네 살. 애플 자체 프레임워크 MLX는 세 살 미만, Ollama의 MLX 엔진은 반 년. CUDA는 MLX의 일곱 배 나이고, 그 비율은 라이브러리의 깊이, 이식된 모델의 수, 커널을 쓸 수 있는 사람 풀의 크기, 이미 찾은 버그의 수에 대한 공정한 대리 척도야. 쥐 트랙은 커뮤니티가 263일 만에 맥을 찾아낸 이야기를 했어. 이 레슨은 그때쯤 커뮤니티가 NVIDIA에 16년째 있었다는 걸 상기시켜.

플랫폼의 기계 모델이 가정하는 것

CUDA의 프로그래밍 모델엔 호스트와 장치가 있고, 각각 자기 메모리가 있고, 그 사이를 옮기는 동사가 있어. 여정 트랙의 PyTorch 레슨은 그 모델을 메모리 하나짜리 기계에 얹으면 무슨 일이 생기는지 쟀어. 진짜 시간을 치르는 불필요한 복사, 그리고 CUDA엔 커널이 있고 Metal엔 아직 없는 연산 커버리지 격차. NVIDIA 자체의 추론 지침, 2023년 최적화 글은 두 단계를 물리 트랙과 정확히 같게 서술해. 프리필은 "a matrix-matrix operation that's highly parallelized", 디코드는 "the speed at which the data … is transferred to the GPU from memory dominates the latency"인 "a memory-bound operation". 그리고 나머지 분량을 플랫폼의 20년이 쌓은 요령들에 써. 배칭, 페이지드 캐시, 양자화, 추측 디코딩. 맥은 그 요령들을 마지막에 받거나 다시 구현해. Ollama 레슨은 그중 하나가 도착하는 걸 지켜봤어. 그러니 이 트랙 나머지의 정직한 틀은 이래. NVIDIA는 토큰이 신경 쓰는 두 숫자, 대역폭과 연산에서 앞서고, 어떤 스펙 시트에도 없는 한 숫자, 시간에서 앞서. 맥의 논거는 다른 곳에서 만들어져. 카드가 세우는 벽과 카드에 없는 풀에서. 그리고 이 트랙은 그렇게 말하기 전에 둘 다 값 매겨.

Code

ecosystem_ages.py — 문마다 벤더가 붙인 날짜, 오늘까지 세기·python
#!/usr/bin/env python3
"""How old is each door? Vendor-dated first releases, counted to today. A platform's
age is a rough proxy for the libraries, tutorials and ported code behind it."""
from datetime import date
today = date(2026, 9, 15)
doors = [
    ("CUDA, first release",                      date(2006, 11, 1),  "NVIDIA developer blog, 'CUDA Refresher: Getting started with CUDA'"),
    ("CUDA Toolkit 1.0",                         date(2007, 6, 1),   "NVIDIA CUDA Toolkit Archive"),
    ("Metal announced (WWDC)",                   date(2014, 6, 2),   "Apple Newsroom, iOS 8 SDK"),
    ("Apple silicon Mac (M1) on sale",           date(2020, 11, 17), "Apple Newsroom"),
    ("PyTorch MPS backend announced",            date(2022, 5, 18),  "PyTorch blog"),
    ("llama.cpp repository",                     date(2023, 3, 10),  "GitHub"),
    ("MLX repository",                           date(2023, 11, 28), "GitHub"),
    ("Ollama's MLX engine (preview)",            date(2026, 3, 30),  "Ollama blog"),
]
for name, d, src in doors:
    yrs = (today - d).days / 365.25
    print(f"{name:36} {d.isoformat()}  {yrs:5.1f} years   [{src}]")
print(f"\nCUDA is {(today - doors[0][1]).days / (today - doors[6][1]).days:.1f}x the age of MLX.")

# 2026-09-15:
# CUDA, first release                  2006-11-01   19.9 years
# CUDA Toolkit 1.0                     2007-06-01   19.3 years
# Metal announced (WWDC)               2014-06-02   12.3 years
# Apple silicon Mac (M1) on sale       2020-11-17    5.8 years
# PyTorch MPS backend announced        2022-05-18    4.3 years
# llama.cpp repository                 2023-03-10    3.5 years
# MLX repository                       2023-11-28    2.8 years
# Ollama's MLX engine (preview)        2026-03-30    0.5 years
# CUDA is 7.1x the age of MLX.

External links

Exercise

네 맥에서 돌리는 모델 하나를 골라 그 아키텍처가 CUDA에서 처음 돈 날짜와 MLX나 llama.cpp의 Metal 백엔드에서 처음 돈 날짜를 찾아. 두 날짜와 그 차이를 일수로 카드에 적어. 그다음 ecosystem_ages.py를 돌리고 네가 쓴 문을 목록에 더해.
Hint
모델 카드, GitHub 릴리스 노트, mlx-lm과 llama.cpp의 변경 기록이 날짜를 실어. 인기 아키텍처면 몇 주, 특이한 것이면 몇 달의 차이를 예상해. 그 차이가 모델 하나로 구체화된 플랫폼의 나이야.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.