Performance Ninja 강좌
이 강좌는 CPU 캐시 미스나 분기 예측 실패와 같은 저수준 성능 문제를 찾아 해결하는 방법을 배울 수 있는 온라인 강좌입니다. 핵심은 오로지 실습입니다. 그래서 이 강좌는 실습 과제와 YouTube 동영상 형태로 제공됩니다. 전체 시간 중 최소 90%는 코드의 성능을 분석하고 개선하는 데 쓰게 됩니다.
각 실습 과제는 특정한 성능 문제 하나에 초점을 맞추며, 여러분의 배경 지식과 실습 과제 자체의 난이도에 따라 30분에서 4시간까지 걸릴 수 있습니다. 코드 개선을 마쳤다면 자동 벤치마킹과 검증을 위해 해답을 Github에 제출할 수 있습니다.
Performance Ninja는 Linux, Windows, Mac을 지원하며, Intel 12세대 Alderlake, AMD Zen3, Apple M1 CPU를 비롯한 모든 최신 하드웨어에서 실행됩니다. 다양한 최신 플랫폼에서 최적화의 효과를 확인할 수 있습니다.
사전 요구 사항: 이 강좌를 수강하려면 기본적인 C++ 실력이 반드시 필요합니다. 성능 분석의 기초를 익히는 입문서로 Denis의 책 "Performance Analysis and Tuning on Modern CPUs"를 추천합니다. 컴파일러와 컴퓨터 아키텍처에 대한 지식, 그리고 어셈블리 코드를 읽는 능력이 있으면 도움이 됩니다.
실습 과제를 시작하기 전에 반드시 시작하기 페이지를 읽고 준비 운동 동영상을 시청하십시오.
이 프로젝트의 실습 과제는 C++로 구현되어 있습니다. 또한 Performance Ninja는 다음 언어로도 포팅되었습니다.
- Rust(perf-ninja-rs), @grahamking 님께 감사드립니다.
- Zig(perf-ninja-zig), @JonathanHallstrom 님께 감사드립니다.
실습 과제
- Core Bound:
- Memory Bound:
- Bad Speculation:
- CPU Frontend Bound:
- 데이터 기반 최적화:
- 기타:
프로젝트 후원하기
Performance Ninja는 아직 한창 작업 중인 상태입니다. 새로운 실습 과제와 동영상을 계속 추가할 예정입니다! 이 강좌는 기본적으로 무료이지만, Github Sponsors, Patreon 또는 PayPal을 통해 후원해 주시기를 부탁드립니다. 여러분의 후원은 새로운 실습 과제를 더 빨리 추가하는 데 도움이 됩니다.
현재 후원자:
- Pavel Davydov (@pdavydov108)
- Matias Christensen
- Maya Lekova (@MayaLekova)
- Aaron St. George (@AaronStGeorge)
CI 작업 실행용 AMD 기반 머신을 제공해 주신 Mansur Mavliutov(@Mansur)님께 감사드립니다.
실습 작성자:
- Andrew Evstyukhin (@andrewevstyukhin)
- Ivica Bogosavljevic (@ibogosavljevic)
- René Rahn (@rrahn)
- Adam Folwarczny (@adamf88)
- Jakub Beránek (@Kobzol)
- Jakub Gałecki (@kubagalecki)
- Jonathan Hallstrom (@JonathanHallstrom)
- Oleg Makovski (@0legmak)
- Denis Bakhvalov (@dendibakh)
기여하기
여러분의 기여를 진심으로 환영합니다! 자세한 내용은 Contributing.md를 참고하십시오.
제안 사항이 있으면 dendibakh@gmail.com으로 보내 주십시오.
Copyright © 2025 Denis Bakhvalov. 크리에이티브 커먼즈 라이선스(CC BY 4.0)에 따라 배포됩니다.
