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

운이 고치지 못한 것

~14 min · mouse, ceiling, batch-of-one, prefill, isolation, ecosystem, our-judgment

Level 0스펙 시트 훑는 사람
0 XP0/91 lessons0/19 achievements
0/100 XP to next level100 XP to go0% complete
"쥐는 대역폭의 우연이었어. 대역폭이 아닌 모든 건 그 우연이 건드리지 않았어."

우연이 그대로 둔 다섯 가지

'그다음 애플이 기울였다'에서 끝나는 이야기는 팬의 이야기야. 정직한 판엔 후속이 바꾸지 못한 걸 나열하는 마지막 장이 있어. 항목 하나하나가 물리 트랙이 유도한 제약이고 이 집이 치르는 비용이니까. 각각 그걸 잰 트랙의 라벨을 달아.

  1. 천장. 풀 하나는 512 GB에서 그치고, 2025년 3월부터 그래. 2026-08-25에 발표된 M5 Ultra도 같은 수치야(512 GB 구성은 10월 말 출하). 후속은 대역폭(819 → 1,229 GB/s), 가속기, 상호연결을 더했고, 맥 한 대가 담을 수 있는 제일 큰 풀엔 1바이트도 더하지 않았어. 숙제 트랙이 사고 실험으로 왜냐고 묻고, RDMA의 답인 맥 여러 대 풀링은 더 큰 풀이 아니라 다른 가격의 다른 기계야.
  2. 배치 1. 물리 트랙은 office에서 배치 32의 합계 처리량 일곱 배를 쟀어. 한 집의 채팅 창은 배치 1이고, 혼자 가중치를 읽는 단일 사용자의 토큰당 비용은 어떤 칩도 바꾸지 못하는 로컬 추론의 구조적 속성이야. 클라우드는 상각하고, 책상은 못 해.
  3. 프리필. 디코드가 쥐였어. 프리필은 연산에 묶이고 메모리 배치가 전혀 안 건드렸어. 32K 윈도우의 90%에서 27B의 첫 토큰까지 90초(office, 실측)는 애플의 Neural Accelerator가 겨냥한 워크로드의 반쪽이야. 그리고 그 반쪽은 이 퀘스트에 M5 측정이 없는 쪽이라서, 정직한 상태는 이거야. 벤더가 다뤘고, 여기선 미검증.
  4. 없는 울타리. 풀 하나엔 GPU 요청자 사이에 격리가 없어. GPU 트랙이 13년짜리 이야기와 이 집의 운영 규칙을 들려줬어. 후속은 중재 계층을 안 바꿨고, 이 집의 읽기는 안 바꿀 거라는 거야. 같은 계층이 거기 절대 안 부딪히는 수백만 사용자를 서빙하니까.
  5. 생태계. CUDA는 거의 20년치 라이브러리, 도구, 습관이고(경쟁자 트랙이 세) 세상의 모든 프레임워크가 먼저 그걸 위해 쓰였어. Metal엔 MLX, llama.cpp, PyTorch 백엔드, Core ML이 있고, 전부 진짜고 전부 더 어려. 쥐는 애플한테 하드웨어 모양을 줬지, 20년치 소프트웨어를 주진 않았어.

입장, 완성

표현의 세 부분과 이 목록을 나란히 놓으면 AI 시대의 애플 실리콘에 대한 이 집의 시각 전체가 나와. 발은 일부러였고 다른 데를 향했어. 쥐는 진짜였어. 디코드는 프레임이 원하던 모양을 원했어. 후속은 일부러였고 온전히 인정돼. 그리고 제약 다섯이 서 있던 자리에 서 있고, 그중 넷은 이 퀘스트가 이 집의 맥에서 직접 쟀어. 집주인이 모든 걸 돌리는 기계에 대한 그의 요약은 칭찬도 불평도 아니야. 칸 둘짜리 표고, 이 트랙이 이제 둘 다 채웠어.

Code

ledger.py — 칸 둘로 본 쥐 이야기, 줄마다 그걸 잰 트랙을 가리키며·python
#!/usr/bin/env python3
"""What the accident fixed, what it did not, and where in this quest each
claim was measured or sourced. A table, so that neither column can be dropped."""

FIXED = [
    ("decode fits the memory layout",      "physics track: ceiling = bandwidth / bytes per token; ladder measured on 4 Macs"),
    ("large models fit at all",            "memory track: 512 GB pool; big-models track: five real checkpoints"),
    ("a first-party runtime",              "MLX, 2023-12-05; measured throughout"),
    ("bandwidth kept rising",              "vendor: 819 -> 1,229 GB/s (M5 Ultra, unmeasured here)"),
]
NOT_FIXED = [
    ("the 512 GB ceiling",                  "vendor: 512 GB in 2025-03 and 2026-08; homework track"),
    ("batch-of-one economics",             "measured: 75 -> 528 tok/s aggregate at batch 1 -> 32 (office)"),
    ("prefill is compute-bound",           "measured: 90 s TTFT at 90% of 32K on the 27B (office)"),
    ("no fence between GPU claimants",     "GPU track: 13-year lineage; operating rules"),
    ("twenty years of CUDA",               "rivals track: the library count"),
]

print("FIXED BY THE ACCIDENT (and the follow-through)")
for what, where in FIXED:
    print(f"  + {what:36} {where}")
print("\nNOT FIXED")
for what, where in NOT_FIXED:
    print(f"  - {what:36} {where}")
print(f"\n{len(FIXED)} fixed, {len(NOT_FIXED)} standing. Both columns are the position.")

External links

Exercise

ledger.py를 돌려. 그다음 서 있는 다섯 항목마다 그게 네가 실제로 맥에서 돌리는 워크로드에 영향을 주는지, 어떻게 알 수 있는지 한 줄씩 써. 마지막으로 다섯을 너한테 개인적으로 비용이 큰 순서로 매기고, 이 집의 암묵적 순위(천장 첫째, 배치 둘째)와 비교해.
Hint
컨텍스트를 30K 토큰 넘게 붙든 적이 없으면 프리필은 너한텐 작은 비용이야. 한 사람을 위해 모델 하나를 돌리면 배치 경제가 네 비용 전부야. 네 모델이 24 GB에 들어가면 천장은 남의 문제야. 목록은 보편적이고, 순위는 네 거야.

Progress

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

댓글 0

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

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