~15 min · cpu-soc, microarchitecture, ipc, clock, performance-per-watt, single-thread
Level 0스펙 시트 훑는 사람
0 XP0/91 lessons0/19 achievements
0/100 XP to next level100 XP to go0% complete
"빠른 코어는 한 가지를 더 일찍 끝내. 넓은 코어는 더 많은 걸 한꺼번에 해. 배터리랑 같이 커지는 건 둘 중 하나뿐이야."
코어를 빠르게 만드는 두 가지 방법
코어의 싱글 스레드 처리량은 사이클당 명령어 수 곱하기 초당 사이클 수야. 둘 중 뭐든 올릴 수 있어. 클럭을 올리는 건 x86 전통이야. Intel이랑 AMD의 데스크톱 부품은 제일 빠른 코어를 5 GHz 너머로 돌려. 거기엔 물리적인 값이 있어. 동적 전력은 대략 클럭에 비례하고 그 클럭이 요구하는 전압의 제곱에 비례해서, 마지막 1기가헤르츠가 첫 1기가헤르츠보다 훨씬 많은 에너지를 먹어. 사이클당 명령어를 올리는 건 더 넓은 코어를 만드는 거야. 사이클마다 더 많은 명령어를 디코드하고, 더 많이 진행 중으로 유지하고, 그 폭이 낭비되지 않게 분기를 충분히 잘 예측하고, 큰 캐시로 전부 먹여 살려. 폭은 트랜지스터랑 설계 노력을 먹지, 똑같이 가파른 전력 프리미엄을 먹진 않아.
애플 코어는 넓은 종류야. 미적 선택이 아니라 폰의 선택이었어. 아이폰은 5 GHz 코어를 1초도 못 돌려. 그러니 빠른 코어로 가는 길은 배터리가 버틸 클럭에서 사이클마다 더 많이 하게 만드는 거였어. 같은 설계가 맥으로 오면서 모양을 유지했어. 애플 성능 코어는 3–4 GHz 범위에서 돌고 폭으로 처리량을 얻어. 정확한 디코드 폭은 애플이 공개하는 게 아니야. M1 성능 코어에 대한 독립 마이크로아키텍처 연구들은 사이클당 8명령어로 보는데, 같은 해 x86 코어들은 4에서 6이야. 커뮤니티 측정값이고, 그렇게 라벨 붙여.
폭이 티어에 대해 뜻하는 것
넓은 코어는 다이에 하나가 있든 스물넷이 있든 넓은 코어야. 1번 트랙이 약속한 속성이 이거야. 한 세대 안에서 티어는 싱글 스레드 성능을 안 바꿔. 코드 블록이 함대에서 이걸 재. 두 도구, 둘 다 싱글 스레드. LibreSSL의 openssl speed SHA-256(코어의 암호 유닛과 클럭에 묶인 루프)이랑 평범한 Python 정수 루프(인터프리터의 명령어당 작업에 묶임). 2026-09-15에 실험실 맥 넷에서 한 번에 돌렸고, 기계들은 평소 백그라운드 서비스를 지고 있었어.
별칭
칩
SHA-256, 8 KB 블록 (3회 중 최고)
Python 루프, 2천만 회
증거
air
M3
3.06 GB/s
1.17 s
실측
pro2023
M3 Max
3.06 GB/s
1.14 s
실측
office
M3 Ultra
2.77 GB/s
1.24 s
실측 (집 엔진들을 호스팅 중, 유휴 아님)
music
M2 Ultra
2.75 GB/s
1.25 s
실측 (음악 워크스테이션 열려 있음, 유휴 아님)
위 두 줄부터 읽어. 제일 싼 M3 맥이랑 M3 Max가 두 도구 모두에서 소수점 둘째 자리까지 같은 싱글 스레드 숫자를 찍어. 스레드 하나에서 본 티어 체계 전체가 이거야. Max는 코어가 더 많고 차선이 더 많지, 코어가 더 빠르진 않아. Ultra 줄은 약간 낮게 읽히는데, 솔직한 해석은 그 두 기계가 유휴가 아니었고 싱글 스레드 테스트는 뭐가 같이 돌든 예민하다는 거야. 조용한 Studio에서 통제된 재실행이 연습 문제야. 표가 못 보여주는 건 Ultra가 존재하는 이유야. 같은 루프를 성능 클러스터 전체에서 동시에 돌리면, office의 스물네 코어 대 Air의 네 코어, Studio가 배치를 다섯 배에서 여섯 배 먼저 끝내. 성능 코어당 속도는 비슷한 채로(효율 코어는 이 측정에서 빠졌어). 코어 안의 폭, 그리고 다이 전체의 폭.
이게 추론에 왜 중요한지
맥의 언어 모델 추론에서 이 코어들 위에서 도는 건 거의 없어. 행렬 일은 GPU가 해. 그런데 두 가지는 여기서 돌아. 토큰화, 샘플링, 루프를 굴리는 Python이나 Swift, 그리고 런타임의 CPU 폴백은 전부 성능 코어 하나에서 싱글 스레드로 돌고, 넓은 코어가 그것들을 GPU 앞에서 치워줘. 그리고 실험 트랙이 재는 토큰당 고정 오버헤드(Ultra에선 1.5밀리초쯤, Max에선 그보다 적게)는 부분적으로 이거야. 토큰마다 커널을 띄우는 CPU 쪽 작업. 클럭이 더 높은 코어라면 그걸 깎겠지. 애플은 폭과 배터리를 골랐고, 그 거래는 이 퀘스트의 모든 디코드 숫자에 작은 상수로 나타나.
Code
single_thread.py — 함대 전체에 ssh로 싱글 스레드 도구 둘·python
#!/usr/bin/env python3
"""Single-thread throughput per Mac: LibreSSL SHA-256 (crypto unit + clock) and a
Python integer loop (interpreter work). Same core -> same number, whatever the tier.
Run three times per machine and keep the best; note what else the machine was doing."""
import subprocess
import sys
ALIASES = sys.argv[1:] or ["air", "pro2023", "office", "music"]
SHA = "openssl speed -evp sha256 2>&1 | awk '/^sha256/ {print $NF}'" # 1000s of bytes/s, 8192-byte blocks
PY = ("python3 -c \"import time; t=time.perf_counter(); s=0\n"
"for i in range(20_000_000): s+=i*i\n"
"print(f'{time.perf_counter()-t:.2f}')\"")
print(f"{'alias':8} {'sha256 GB/s (best of 3)':>24} {'py loop s (best of 3)':>22}")
for alias in ALIASES:
sha = max(float(subprocess.run(["ssh", alias, SHA], capture_output=True, text=True).stdout.strip().rstrip("k"))
for _ in range(3)) / 1e6
py = min(float(subprocess.run(["ssh", alias, PY], capture_output=True, text=True).stdout.strip())
for _ in range(3))
print(f"{alias:8} {sha:24.2f} {py:22.2f}")
코어 전부 한꺼번에 쓰기 — Ultra가 이름값 하는 자리·bash
# single thread: the same on an Air and a Studio of the same generation
openssl speed -evp sha256 | awk '/^sha256/ {print $NF}'
# every performance core at once: LibreSSL's -multi forks N benchmarks
openssl speed -multi $(sysctl -n hw.perflevel0.physicalcpu) -evp sha256 | tail -1
# air (4 P-cores) 10.95 GB/s vs office (24 P-cores) 60.5 GB/s, 2026-09-15:
# 5.5x the aggregate at 2.5-2.7 GB/s per core. Width across the die, not a faster core.
닿을 수 있는 맥들에서 single_thread.py를 돌려(아니면 지금 앉아 있는 한 대에서 세 번). 두 숫자를 카드에 추가해. 그다음 네 기계에서 -multi 버전을 돌리고 성능 코어당 합계 처리량을 계산해. 마지막으로, 같은 세대에 티어만 다른 맥이 둘 있으면 싱글 스레드 줄이 증명하는 것과 -multi 줄이 증명하는 것을 한 문장으로 말해봐. 서로 다른 주장이야.
Hint
싱글 스레드 줄은 티어가 달라도 코어가 같다는 걸 증명해. -multi 줄은 티어가 코어당 속도가 아니라 코어 수를 더한다는 걸 증명해. 네 기계 둘이 세대가 다르면 코어 설계 변화까지 같이 재는 거라서, 숫자가 더는 티어를 분리해 주지 않아.
Progress
Progress is local-only — sign in to sync across devices.