스케줄링과 튜닝
스케줄링과 튜닝은 올바르게 동작하는 커널을 측정에 근거한 계획으로 바꿉니다. 스케줄을 살펴보고, 성능을 제한하는 의존성이나 자원을 찾아내고, 지원되는 선택지 하나를 변경한 뒤, 동일한 조건에서 비교하십시오.
스케줄링은 컴파일된 커널을 컨텍스트 중첩, 메모리 의존성, 자원 충돌에 관한 검증 가능한 가설로 바꿉니다. 이 장은 다음과 같은 하나의 루프를 따릅니다.
- 스케줄: 컨텍스트, 의존성, 연산 순서를 이해합니다.
- 진단: 덤프된 스케줄을 살펴보고 병목에 대한 가설을 세웁니다.
- 튜닝: 변경 하나를 테스트하고, 동일한 지표를 비교한 뒤, 그 변경을 유지하거나 되돌립니다.
이 장에서는 매핑, 텐서 이동, 연산 엔진 계약을 다시 설명하지 않습니다. 스케줄링 결정이 해당 내용에 의존하는 경우에는 관련 장으로 링크합니다.
네 가지 검증의 의미와 주의 사항은 빠른 시작: 커널 검증을 참조하십시오. 고정된 스케줄 후보를 해석하고 결정을 내리려면 진단과 튜닝을 활용하십시오.