현대 CPU의 분기 예측기가 학습할 수 있는 분기 수를 간단한 벤치마크로 측정해 AMD Zen 5, Apple M4, Intel Emerald Rapids를 비교한다.
Daniel Lemire는 소프트웨어 성능 전문가다. 그는 전 세계 과학자 상위 2%에 속하며(Stanford/Elsevier 2025) GitHub에서 가장 많이 팔로우되는 개발자 상위 1000명 중 한 명이다.
메뉴와 위젯
비즈니스에 도움이 필요하신가요? 연락 주세요. 비공개 강연, 교육, 컨설팅을 제공하며 후원 오픈 소스 프로젝트도 합니다.
저는 어떤 광고도 받지 않습니다. 대신 GitHub에서 제 오픈 소스 작업을 후원할 수 있습니다.
Daniel Lemire는 2004년에 이 블로그를 시작했습니다. 이 블로그에는 2,357개의 글과 16,197개의 승인된 댓글이 있습니다.
Daniel Lemire의 블로그는 Hacker News에서 가장 인기 있는 블로그 상위 50위 안에 듭니다. Hacker News는 대표적인 기술 뉴스 수집 플랫폼입니다.
12,500명 이상의 이메일 구독자와 함께하세요:
GitHub에서 팔로우: X에서 팔로우: @lemire 팔로우
(팔로워 30,000명 이상)이 블로그는 telegram에서도 팔로우할 수 있습니다. 검색어:
아카이브

현대 프로세서는 단일 코어에서 사이클당 많은 명령어를 실행할 수 있습니다. 실제로 사이클당 많은 명령어를 실행하려면, 프로세서는 분기를 예측합니다. 저는 여러 해에 걸쳐 현대 CPU가 분기를 예측하는 능력이 놀랍다는 점을 강조해 왔습니다.
이 때문에 벤치마킹이 어려워집니다. 작은 데이터셋으로 테스트하면 실제 데이터에서는 통하지 않을 수 있는 놀라운 결과가 나올 수 있기 때문입니다.
제가 즐겨 쓰는 벤치마크는 다음과 같은 함수입니다:
while (howmany != 0) {
val = generate_random_value()
if(val is odd) write to buffer
decrement howmany
}
프로세서는 분기(if 절)를 예측하려고 합니다. 난수 값을 사용하므로 프로세서는 두 번 중 한 번은 분기 예측을 실패해야 합니다.
하지만 같은 난수 값을 늘 사용하면서 벤치마크를 여러 번 반복하면, 프로세서는 분기를 학습합니다. 프로세서는 분기를 얼마나 많이 학습할 수 있을까요? 저는 최근 프로세서 세 가지로 테스트했습니다.
이번에도 Intel에는 실망했습니다. AMD는 이 벤치마크에서 정말 훌륭한 성능을 보여 줍니다.
Daniel Lemire, "How many branches can your CPU predict?," in Daniel Lemire's blog, March 18, 2026, https://lemire.me/blog/2026/03/18/how-many-branches-can-your-cpu-predict/.
퀘벡 대학교(TELUQ)의 컴퓨터 과학 교수. Daniel Lemire의 모든 글 보기
게시일: March 18, 2026작성자: Daniel Lemire카테고리:
이메일 주소는 공개되지 않습니다.
댓글 *
이름 *
이메일 *
웹사이트
Δ
이 블로그는 이메일로도 구독할 수 있습니다 (비상업적, 광고 없음, 주간 이메일)
코드를 게시하려면 tohtml 같은 도구로 포맷팅하는 것을 고려해 보세요.